code7-leia 0.1.41 → 0.1.42

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.
@@ -474,7 +474,7 @@ var Inputs = /*#__PURE__*/styled.div(_templateObject3$1 || (_templateObject3$1 =
474
474
  var Result = /*#__PURE__*/styled.div(_templateObject4 || (_templateObject4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n justify-content: left;\n background: #F3F5F9;\n padding: 15px;\n border-radius: 5px;\n margin-top: 15px;\n\n .text{\n margin-left: 5px;\n font-size: 14px;\n }\n\n .icon {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 5px;\n\n svg {\n width: 35px;\n height: 35px;\n }\n }\n\n"])));
475
475
 
476
476
  var _templateObject$6;
477
- var Container$3 = /*#__PURE__*/styled.div(_templateObject$6 || (_templateObject$6 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n width: 50%;\n margin-right: 5px;\n select {\n padding: 12px;\n border-radius: 4px;\n border: 1px solid #979AA5;\n width: 100%;\n height: 40px;\n :active {\n border: 2px #1939b7 solid;\n }\n }\n"])));
477
+ var Container$3 = /*#__PURE__*/styled.div(_templateObject$6 || (_templateObject$6 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n width: 50%;\n margin-right: 5px;\n select {\n padding: 12px;\n border-radius: 4px;\n border: 1px solid #979AA5;\n width: 100%;\n height: 40px;\n \n &:focus {\n outline: none;\n box-shadow: 0 0 0 3px #6690ff;\n }\n }\n"])));
478
478
 
479
479
  var Select = function Select(_ref) {
480
480
  var options = _ref.options,
@@ -505,7 +505,7 @@ var Select = function Select(_ref) {
505
505
 
506
506
  var _templateObject$7, _templateObject2$4, _templateObject3$2, _templateObject4$1;
507
507
  var Container$4 = /*#__PURE__*/styled.div(_templateObject$7 || (_templateObject$7 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n width: 100%;\n margin-right: 5px;\n"])));
508
- var StyledInput = /*#__PURE__*/styled.input(_templateObject2$4 || (_templateObject2$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n padding-left: 10px;\n padding-right: 40px;\n border-radius: 5px;\n border: 1px solid #ccc;\n height: 40px;\n width: 100%;\n\n :active {\n border: 2px #1939b7 solid;\n }\n"])));
508
+ var StyledInput = /*#__PURE__*/styled.input(_templateObject2$4 || (_templateObject2$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n padding-left: 10px;\n padding-right: 40px;\n border-radius: 5px;\n border: 1px solid #ccc;\n height: 40px;\n width: 100%;\n\n &:focus {\n outline: none;\n box-shadow: 0 0 0 3px #6690ff;\n }\n"])));
509
509
  var RecordAudioButton = /*#__PURE__*/styled.div(_templateObject3$2 || (_templateObject3$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: absolute;\n top: 10px;\n right: 10px;\n cursor: pointer;\n"])));
510
510
  var StyledMicrophoneIcon = /*#__PURE__*/styled(fa.FaMicrophone)(_templateObject4$1 || (_templateObject4$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n pointer-events: none;\n"])));
511
511
 
@@ -1 +1 @@
1
- {"version":3,"file":"code7-leia.cjs.development.js","sources":["../src/components/Tabs/styles.tsx","../src/components/Tabs/index.tsx","../src/utils/getLanguage.tsx","../src/components/FileArea/styles.tsx","../src/components/FileArea/components/Table/styles.tsx","../src/components/FileArea/components/Spinner/styles.tsx","../src/components/FileArea/components/Spinner/index.tsx","../src/components/FileArea/components/Table/index.tsx","../src/components/FileArea/components/Search/index.tsx","../src/components/EmptyState/styles.tsx","../src/components/EmptyState/index.tsx","../src/components/FileArea/index.tsx","../src/components/TestArea/styles.tsx","../src/components/TestArea/components/Select/styles.tsx","../src/components/TestArea/components/Select/index.tsx","../src/components/TestArea/components/InputTest/styles.tsx","../src/components/TestArea/components/InputTest/index.tsx","../src/components/TestArea/index.tsx","../src/Leia.tsx","../src/index.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { ReactNode } from 'react';\n\ninterface TabProps {\n children: ReactNode;\n}\n\ninterface OptionProps {\n children: ReactNode;\n onClick: () => void;\n}\n\nexport const TabsPane = styled.ul`\n width: max-content;\n display: flex;\n align-items: center;\n border-bottom: 1px solid var(--neutral-1);\n`;\n\nexport const Tab = styled.li<TabProps>`\n padding: 12px;\n color: var(--neutral-3);\n font-size: 0.875rem;\n font-weight: normal;\n position: relative;\n cursor: pointer;\n\n svg {\n fill: var(--neutral-3) !important;\n margin-left: 8px;\n }\n\n &.active {\n color: var(--primary-700-light);\n\n svg {\n fill: var(--primary-700-light) !important;\n }\n\n ::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 2px;\n background-color: var(--primary-700-light);\n }\n }\n\n &:not(:last-child) {\n margin-right: 8px;\n }\n`;\n\nexport const DropdownContainer = styled.div`\n position: absolute;\n left: 0px;\n top: 40px;\n display: flex;\n flex-direction: column;\n\n background: #ffffff;\n\n border: 1px solid #979aa5;\n box-sizing: border-box;\n box-shadow: 0px 6px 12px -6px rgba(24, 39, 75, 0.12),\n 0px 8px 24px -4px rgba(24, 39, 75, 0.08);\n border-radius: 4px;\n padding: 8px;\n z-index: 2;\n`;\n\nexport const Option = styled.div<OptionProps>`\n padding: 8px;\n font-size: 14px;\n border-radius: 4px;\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover {\n background-color: var(--primary-800-light);\n color: white;\n }\n`;\n","import React, { ReactNode } from 'react';\nimport PropTypes from 'prop-types';\nimport cc from 'classcat';\n\nimport * as S from './styles';\n\ninterface TabProps {\n children: ReactNode;\n active?: boolean;\n}\n\ninterface ITabsProps {\n children: ReactNode;\n value: string | number;\n onChange: (e: any) => void;\n active?: boolean;\n}\n\nexport const Tab = ({ active, children, ...rest }: TabProps) => {\n return (\n <S.Tab className={cc({ active })} {...rest}>\n {children}\n </S.Tab>\n );\n};\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]).isRequired,\n onChange: PropTypes.func,\n value: PropTypes.string,\n active: PropTypes.bool,\n};\n\nTab.defaultProps = {\n onChange: () => {},\n value: '',\n active: false,\n};\n\nexport const Tabs = ({ children: childrenProp, value, onChange, ...rest }: ITabsProps) => {\n const children = React.Children.map(childrenProp, (child) => {\n if (!React.isValidElement(child)) {\n return null;\n }\n\n if (Array.isArray(child.props?.children)) {\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n value,\n onChange,\n });\n }\n\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n onClick: () => onChange(child.props?.value),\n });\n });\n\n return <S.TabsPane {...rest}>{children}</S.TabsPane>;\n};\n\nTabs.propTypes = {\n children: PropTypes.node.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n onChange: PropTypes.func.isRequired,\n};\n","\nimport { Language } from '../interface/Language'\n\nconst defaultLanguage: Language = {\n files: 'Files',\n test: 'Test',\n fileArea: {\n description: 'bla bla bla bla bla',\n fileName: 'File name',\n presset: 'Presset',\n actions: 'Actions',\n search: 'Search',\n fileUpload: 'File upload',\n emptyState: {\n title: 'No data',\n description: 'bla bla bla bla bla',\n },\n modal: {\n descriptionUpload: 'Drag and drop files here or',\n chooseFile: 'Choose a file',\n },\n },\n buttons: {\n cancel: 'Cancel',\n send: 'Send',\n delete: 'Delete',\n test: 'Test',\n },\n testArea: {\n description: 'bla bla bla bla bla',\n typeSentence: 'Type a sentence',\n selectPersona: 'Select a Persona',\n selectPresset: 'Select a presset',\n emptyState: {\n title: 'No data for analysis',\n description: 'Do a search, click the \"Test\" button.',\n },\n },\n};\n\nexport const getLanguage = (language: keyof Record<'en' | 'pt-br' | 'es', Language>): Language => {\n const languages = {\n en: defaultLanguage,\n 'pt-br': {\n files: 'Arquivos',\n test: 'Teste',\n fileArea: {\n ...defaultLanguage.fileArea,\n fileName: 'Nome do arquivo',\n presset: 'Presset',\n actions: 'Ações',\n search: 'Pesquisar',\n fileUpload: 'Upload de arquivo',\n emptyState: {\n ...defaultLanguage.fileArea.emptyState,\n title: 'Sem dados',\n },\n modal: {\n ...defaultLanguage.fileArea.modal,\n descriptionUpload: 'Arraste e solte os arquivos aqui ou',\n chooseFile: 'Escolha um arquivo',\n },\n },\n buttons: {\n ...defaultLanguage.buttons,\n cancel: 'Cancelar',\n send: 'Enviar',\n delete: 'Excluir',\n test: 'Testar',\n },\n testArea: {\n ...defaultLanguage.testArea,\n description: 'Digite uma frase para testar a inteligência artificial.',\n typeSentence: 'Digite uma frase',\n selectPersona: 'Selecione uma Persona',\n selectPresset: 'Selecione uma predefinição',\n emptyState: {\n ...defaultLanguage.testArea.emptyState,\n title: 'Sem dados para análise',\n description: 'Faça uma pesquisa, clique no botão \"Teste\".',\n },\n },\n },\n es: {\n ...defaultLanguage,\n files: 'Archivos',\n test: 'Prueba',\n fileArea: {\n ...defaultLanguage.fileArea,\n fileName: 'Nombre del archivo',\n presset: 'Presset',\n actions: 'Acciones',\n search: 'Buscar',\n fileUpload: 'Carga de archivos',\n emptyState: {\n ...defaultLanguage.fileArea.emptyState,\n title: 'Sin datos',\n },\n modal: {\n ...defaultLanguage.fileArea.modal,\n descriptionUpload: 'Arrastre y suelte los archivos aquí o',\n chooseFile: 'Elegir un archivo',\n },\n },\n buttons: {\n ...defaultLanguage.buttons,\n cancel: 'Cancelar',\n send: 'Enviar',\n delete: 'Eliminar',\n test: 'Probar',\n },\n testArea: {\n ...defaultLanguage.testArea,\n description: 'bla bla bla bla bla',\n typeSentence: 'Escribe una oración',\n selectPersona: 'Seleccionar una Persona',\n selectPresset: 'Seleccionar una configuración preestablecida',\n emptyState: {\n ...defaultLanguage.testArea.emptyState,\n title: 'Sin datos para el análisis',\n description: 'Realiza una búsqueda, haz clic en el botón \"Prueba\".',\n },\n },\n },\n };\n\n return languages[language] || defaultLanguage;\n};\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n .tag {\n padding: 4px 8px 4px 8px;\n background: #C7F9ED;\n border-radius: 4px;\n }\n\n .tags {\n display: flex;\n justify-content: left;\n gap: 4px;\n }\n\n .divDelete {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n }\n\n .buttonDelete {\n color: #5b0a1f;\n background: #fae0d2;\n padding: 12px 20px;\n border-radius: 4px;\n }\n\n .buttonDelete:hover {\n background: #f5bba7;\n }\n`;\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n\n .infos {\n display: flex;\n flex-direction: column;\n padding: 14px 0;\n\n h2 {\n font-size: 20px\n }\n\n p {\n font-size: 14px\n }\n }\n\n .actions {\n display: flex;\n justify-content: space-between;\n padding-bottom: 14px;\n\n button {\n background: #102693;\n padding: 10px 20px;\n color: white;\n border-radius: 4px;\n }\n }\n\n`\n","import styled from 'styled-components';\n\nexport const TableWrapper = styled.div`\n width: 100%;\n height: max-content;\n min-height: 50px;\n position: relative;\n`;\n\nexport const Table = styled.table`\n font-size: 14px;\n line-height: 143%;\n color: black;\n width: 100%;\n border-collapse: collapse;\n border-radius: 4px;\n\n th {\n font-weight: 600;\n font-size: 14px;\n line-height: 143%;\n letter-spacing: 0.018em;\n color: #5A5D68;\n text-align: left;\n padding: 8px;\n border-radius: 4px;\n }\n\n thead tr {\n background: #dadce3;\n }\n\n tbody tr {\n border: 1px solid #dadce3;\n }\n\n &.small td {\n padding: 4px;\n }\n\n &.medium td {\n padding: 8px;\n }\n\n &.large td {\n padding: 16px;\n }\n`;\n\nexport const TableLoadingWrapper = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: #f3f5f961;\n`;\n","import styled from 'styled-components';\n\nexport const SpinnerWrapper = styled.span`\n display: inline-block;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &.spinner--sm {\n width: 24px;\n height: 24px;\n }\n\n &.spinner--md {\n width: 32px;\n height: 32px;\n }\n\n &.spinner--lg {\n width: 60px;\n height: 60px;\n }\n\n span {\n box-sizing: border-box;\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n margin: 8px;\n border: 4px solid #fff;\n border-radius: 50%;\n animation: rotateSpinner 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n border-color: ${(props) => `var(--${props.color})`} transparent transparent\n transparent;\n }\n\n & span:nth-child(1) {\n animation-delay: -0.45s;\n }\n\n & span:nth-child(2) {\n animation-delay: -0.3s;\n }\n\n & span:nth-child(3) {\n animation-delay: -0.15s;\n }\n\n @keyframes rotateSpinner {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n`;\n","import React from 'react';\nimport cc from 'classcat';\n\nimport * as S from './styles';\n\nimport { SpinnerProps } from '../../../../interface/Table'\n\nconst Spinner: React.FC<SpinnerProps> = ({ color = 'neutral-3', size = 'md', className }) => {\n return (\n <S.SpinnerWrapper\n color={color}\n className={cc([`spinner--${size}`, className])}\n >\n <span />\n <span />\n <span />\n <span />\n </S.SpinnerWrapper>\n );\n};\n\nexport default Spinner;\n","import React, { forwardRef, Ref } from 'react';\nimport PropTypes from 'prop-types';\nimport cc from 'classcat';\n\nimport * as S from './styles';\nimport Spinner from '../Spinner';\n\nimport { TableProps } from '../../../../interface/Table'\n\nconst Table = forwardRef(\n ({ size = 'medium', children, isLoading = false, className = '', ...props }: TableProps, ref: Ref<HTMLTableElement>) => {\n return (\n <S.TableWrapper className={className}>\n {isLoading ? (\n <S.TableLoadingWrapper>\n <Spinner />\n </S.TableLoadingWrapper>\n ) : null}\n <S.Table className={cc([size])} ref={ref} {...props}>\n {children}\n </S.Table>\n </S.TableWrapper>\n );\n }\n);\n\nTable.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n isLoading: PropTypes.bool,\n};\n\nexport default Table;\n","import React from 'react';\nimport unorm from 'unorm';\nimport { FaSearch } from 'react-icons/fa';\nimport type { FileData } from '../../../../interface/FileData'\n\ninterface SearchInputProps {\n placeholder: string;\n initialFiles: FileData[]\n setFiles: React.Dispatch<React.SetStateAction<FileData[]>>;\n}\n\nconst SearchInput: React.FC<SearchInputProps> = ({ placeholder, setFiles, initialFiles }) => {\n\n const searchName = (e: React.ChangeEvent<HTMLInputElement>) => {\n const searchTerm = e.target.value.trim();\n const normalizedSearchTerm = unorm.nfkd(searchTerm).toLowerCase();\n \n const newFiles = initialFiles.filter(file => {\n const normalizedFileName = unorm.nfkd(file.name).toLowerCase();\n return normalizedFileName.includes(normalizedSearchTerm);\n });\n \n setFiles(searchTerm !== '' ? newFiles : initialFiles);\n}\n \n\n return (\n <div style={{ position: 'relative', width: '300px' }}>\n <input\n type=\"text\"\n onChange={(e) => searchName(e)}\n placeholder={placeholder}\n style={{\n paddingLeft: '40px',\n borderRadius: '5px',\n border: '1px solid #ccc',\n height: '40px',\n width: '100%',\n }}\n />\n <div\n style={{\n position: 'absolute',\n top: '10px',\n left: '10px',\n pointerEvents: 'none', \n }}\n >\n <FaSearch />\n </div>\n </div>\n );\n};\n\nexport default SearchInput;\n","import styled from 'styled-components';\n\ninterface ContainerProps {\n hasBorder?: boolean;\n backgroundColor?: string;\n backgroundIcon?: string;\n}\n\nexport const Container = styled.div<ContainerProps>`\n width: 100%;\n display: flex;\n justify-content: center;\n padding: 24px 0;\n height: 193px;\n\n background: ${({ hasBorder }) =>\n hasBorder &&\n `linear-gradient(\n to right,\n #dadce3 50%,\n rgba(255, 255, 255, 0) 0%\n ),\n linear-gradient(#dadce3 50%, rgba(255, 255, 255, 0) 0%),\n linear-gradient(to right, #dadce3 50%, rgba(255, 255, 255, 0) 0%),\n linear-gradient(#dadce3 50%, rgba(255, 255, 255, 0) 0%)`};\n background-position: top, right, bottom, left;\n background-repeat: repeat-x, repeat-y;\n background-size: 40px 1px, 1px 40px;\n background-color: ${({ backgroundColor }) => backgroundColor};\n\n & .content {\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n & > .icon {\n background-color: ${({ backgroundIcon }) => backgroundIcon};\n border-radius: 16px;\n width: 145px;\n height: 145px;\n\n display: flex;\n justify-content: center;\n\n & svg {\n width: 100%;\n height: 70%;\n margin: 20px;\n }\n }\n\n & .description {\n max-width: 600px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n padding: 8px 0 8px 24px;\n\n .button-add {\n cursor: pointer;\n }\n\n .start-icon {\n display: flex;\n align-items: center;\n }\n }\n }\n`;\n","import React, { FC, ReactElement } from 'react';\nimport PropTypes from 'prop-types';\nimport * as S from './styles';\n\ninterface EmptyStateProps {\n icon?: string | ReactElement;\n title?: string;\n description?: string;\n activeButton?: boolean;\n iconButton?: ReactElement;\n descriptionButton?: string;\n widthButton?: string;\n button?: ReactElement;\n backgroundIcon?: string;\n backgroundColor?: string;\n hasBorder?: boolean;\n}\n\nconst EmptyState: FC<EmptyStateProps> = ({\n icon,\n title,\n description,\n activeButton,\n iconButton,\n descriptionButton,\n widthButton,\n button,\n backgroundIcon,\n backgroundColor,\n hasBorder,\n ...rest\n}) => {\n return (\n <S.Container\n backgroundIcon={backgroundIcon}\n backgroundColor={backgroundColor}\n hasBorder={hasBorder}\n {...rest}\n >\n <div className=\"content\">\n <div className=\"icon\">\n {icon}\n </div>\n <div className=\"description\">\n <h5> {title}</h5>\n\n <p>{description}</p>\n\n {activeButton ? (\n <button>\n {descriptionButton}\n </button>\n ) : null}\n\n {button}\n </div>\n </div>\n </S.Container>\n );\n};\n\nEmptyState.propTypes = {\n icon: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n title: PropTypes.string,\n description: PropTypes.string,\n activeButton: PropTypes.bool,\n iconButton: PropTypes.element,\n descriptionButton: PropTypes.string,\n widthButton: PropTypes.string,\n button: PropTypes.element,\n backgroundIcon: PropTypes.string,\n backgroundColor: PropTypes.string,\n hasBorder: PropTypes.bool,\n};\n\nEmptyState.defaultProps = {\n icon: '',\n title: '',\n description: '',\n activeButton: false,\n descriptionButton: '',\n widthButton: '140px',\n backgroundIcon: 'var(--neutral-0)',\n backgroundColor: 'var(--absolute-white)',\n hasBorder: true,\n};\n\nexport default EmptyState;\n","import React, { useEffect, useState} from 'react';\n\nimport { FaUpload, FaList, FaPlus } from 'react-icons/fa';\n\n// import { formatAxios } from '../../utils/formatAxios'\n\nimport { useLocation } from 'react-router-dom';\n\nimport type { FileData } from '../../interface/FileData'\n\nimport { getLanguage } from '../../utils/getLanguage'\n\nimport * as S from './styles';\nimport Table from './components/Table';\nimport Search from './components/Search';\nimport EmptyState from '../EmptyState';\n\nexport const FileArea = () => {\n const [files, setFiles] = useState<FileData[]>([]);\n const [initialFiles, setInitialFiles] = useState<FileData[]>([]);\n const { pathname } = useLocation();\n const id = pathname.split('/')[4]\n const t = getLanguage('pt-br')\n\n useEffect(() => {\n setFiles([\n {\n \"name\": \"Documentação conceitual Code7_v3\",\n \"tags\": \"boteria, code7\"\n },\n {\n \"name\": \"PAE_Programa_Apoio_ao_Empregado\",\n \"tags\": \"pae, vr\"\n },\n {\n \"name\": \"Vidalink\",\n \"tags\": \"vidalink, vr\"\n },\n {\n \"name\": \"[GUIA PRÁTICO] Como criar o chatbot perfeito\",\n \"tags\": \"ebook, code7\"\n }\n ])\n\n setInitialFiles([\n {\n \"name\": \"Documentação conceitual Code7_v3\",\n \"tags\": \"boteria, code7\"\n },\n {\n \"name\": \"PAE_Programa_Apoio_ao_Empregado\",\n \"tags\": \"pae, vr\"\n },\n {\n \"name\": \"Vidalink\",\n \"tags\": \"vidalink, vr\"\n },\n {\n \"name\": \"[GUIA PRÁTICO] Como criar o chatbot perfeito\",\n \"tags\": \"ebook, code7\"\n }\n ])\n }, [])\n\n useEffect(() => {\n console.log('files, id, t: ', files, id, t)\n }, [files])\n\n const presset = (tags: string) => {\n const tagsSplit = tags.split(',');\n let html = '';\n\n html += tagsSplit.map(tag => {\n return `<p class='tag'>${tag}</p>`;\n }).join('');\n\n return html;\n}\n\n const renderFiles = () => { \n return (\n <S.Container>\n <S.Header>\n <div className='infos'>\n <h2>{t.files}</h2>\n <p>{t.fileArea.description}</p>\n </div>\n <div className='actions'>\n <Search placeholder={t.fileArea.search} setFiles={setFiles} initialFiles={initialFiles}></Search>\n <button><FaUpload /> {t.fileArea.fileUpload}</button>\n </div>\n </S.Header>\n {\n files.length === 0 ? (\n <EmptyState\n icon={<FaList></FaList>}\n title={t.fileArea.emptyState.title}\n description={t.fileArea.emptyState.description}\n activeButton\n iconButton={<FaPlus style={{ width: '15px', height: '15px' }} />}\n descriptionButton={t.fileArea.modal.chooseFile}\n widthButton=\"230px\"\n />\n ) : <Table>\n <thead>\n <tr>\n <th className=\"th_file_name\">\n {t.fileArea.fileName}\n </th>\n <th className=\"th_pressets\">\n {t.fileArea.presset}\n </th>\n <th className=\"th_actions\">\n {t.fileArea.actions}\n </th>\n </tr>\n </thead>\n\n <tbody>\n {files.map((object) => (\n <tr>\n <td>{object.name}</td>\n <td className='tags' dangerouslySetInnerHTML={{ __html: presset(object.tags) }} />\n <td>\n <div className='divDelete'>\n <button className='buttonDelete'>{t.buttons.delete}</button>\n </div>\n </td>\n </tr>\n ))}\n </tbody>\n </Table>\n }\n \n </S.Container>\n );\n }\n\n return (\n <S.Container>\n {renderFiles()}\n </S.Container>\n );\n};","import styled from 'styled-components';\n\nexport const Container = styled.div`\n\n`;\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n .infos {\n display: flex;\n flex-direction: column;\n padding: 14px 0;\n\n h2 {\n font-size: 20px\n }\n\n p {\n font-size: 14px\n }\n }\n`\n\nexport const Inputs = styled.div`\n display: flex;\n justify-content: space-between;\n margin-bottom: 10px;\n\n button {\n background: #102693;\n padding: 10px 20px;\n color: white;\n border-radius: 4px;\n width: 190px;\n height: 40px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n svg {\n width: 23px;\n height: 23px;\n }\n }\n`\n\nexport const Result = styled.div`\n display: flex;\n justify-content: left;\n background: #F3F5F9;\n padding: 15px;\n border-radius: 5px;\n margin-top: 15px;\n\n .text{\n margin-left: 5px;\n font-size: 14px;\n }\n\n .icon {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 5px;\n\n svg {\n width: 35px;\n height: 35px;\n }\n }\n\n`","import styled from 'styled-components';\n\nexport const Container = styled.div`\n position: relative;\n width: 50%;\n margin-right: 5px;\n select {\n padding: 12px;\n border-radius: 4px;\n border: 1px solid #979AA5;\n width: 100%;\n height: 40px;\n :active {\n border: 2px #1939b7 solid;\n }\n }\n`;\n","import React, { useState } from 'react';\nimport * as S from './styles';\n\ninterface SelectOption {\n value: string | number;\n label: string;\n}\n\ninterface SelectProps {\n options: SelectOption[];\n onSelect: (value: string | number) => void;\n placeholder?: string;\n}\n\nconst Select: React.FC<SelectProps> = ({ options, onSelect, placeholder }) => {\n const [selectedValue, setSelectedValue] = useState<string | number>('');\n\n const handleSelectChange = (event: React.ChangeEvent<HTMLSelectElement>) => {\n const selectedOption = event.target.value;\n setSelectedValue(selectedOption);\n onSelect(selectedOption);\n };\n\n return (\n <S.Container>\n <select value={selectedValue} onChange={handleSelectChange}>\n <option value=\"\" disabled hidden>\n {placeholder}\n </option>\n {options.map(option => (\n <option key={option.value} value={option.value}>\n {option.label}\n </option>\n ))}\n </select>\n </S.Container>\n );\n};\n\nexport default Select;\n","import styled from 'styled-components';\nimport { FaMicrophone } from 'react-icons/fa';\n\nexport const Container = styled.div`\n position: relative;\n width: 100%;\n margin-right: 5px;\n`;\n\nexport const StyledInput = styled.input`\n padding-left: 10px;\n padding-right: 40px;\n border-radius: 5px;\n border: 1px solid #ccc;\n height: 40px;\n width: 100%;\n\n :active {\n border: 2px #1939b7 solid;\n }\n`;\n\nexport const RecordAudioButton = styled.div`\n position: absolute;\n top: 10px;\n right: 10px;\n cursor: pointer;\n`;\n\nexport const StyledMicrophoneIcon = styled(FaMicrophone)`\n pointer-events: none;\n`;\n","import React from 'react';\nimport * as S from './styles';\n\ninterface InputTestProps {\n placeholder: string;\n onChange: (value: string) => void;\n onRecordAudio: () => void;\n}\n\nconst InputTest: React.FC<InputTestProps> = ({ placeholder, onChange, onRecordAudio }) => {\n return (\n <S.Container>\n <S.StyledInput\n type=\"text\"\n onChange={(e: any) => onChange(e.target.value)}\n placeholder={placeholder}\n />\n <S.RecordAudioButton onClick={onRecordAudio}>\n <S.StyledMicrophoneIcon />\n </S.RecordAudioButton>\n </S.Container>\n );\n};\n\nexport default InputTest;\n","import React, { useState } from 'react';\nimport { getLanguage } from '../../utils/getLanguage'\nimport * as S from './styles';\nimport Select from './components/Select'\nimport InputTest from './components/InputTest'\nimport { PiWaveformBold } from 'react-icons/pi';\nimport { FaList } from 'react-icons/fa';\nimport EmptyState from '../EmptyState';\n// import IconLeia from '../../assets/icon_leia.svg';\nimport { MdPerson2 } from \"react-icons/md\";\n\nexport const TestArea = () => {\n const t = getLanguage('pt-br')\n const [results, setResults] = useState({ \"message\": \"\" });\n const [search, setSearch] = useState('');\n const tags = [\n \"pae\",\n \"boteria\",\n \"vr\",\n \"code7\",\n \"vidalink\"\n ]\n const personas = [\n {\n \"description\": \"Seriedade e profundidade ao explicar. Usa linguagem acadêmica e é preciso em temas específicos da área.\",\n \"name\": \"College professor\"\n },\n {\n \"description\": \"Abordagem descontraída, direto ao ponto. Linguagem simples, exemplos práticos para facilitar compreensão rápida.\",\n \"name\": \"School Teacher\"\n },\n {\n \"description\": \"Estilo descontraído, senso de humor único. Piadas e trocadilhos até em assuntos sérios.\",\n \"name\": \"Humorist\"\n },\n {\n \"description\": \"Postura centrada, comunicação direta e focada em resultados. Prioriza eficiência e precisão.\",\n \"name\": \"Military\"\n },\n {\n \"description\": \"Estilo único e carismático. Usa linguagem moderna, compartilha informações cativantes de forma descontraída.\",\n \"name\": \"Digital Influencer\"\n }\n ]\n\n const optionsPersona = personas.map(persona => {\n return { label: persona.name, value: persona.description }\n })\n\n const optionsPresset = tags.map(tag => {\n return { label: tag, value: tag }\n })\n\n const handleSelect = (value: string | number) => {\n console.log(value);\n };\n\n const handleSearch = (value: string) => {\n setSearch(value);\n };\n\n const handleRecordAudio = () => {\n console.log('Iniciando gravação de áudio...');\n };\n\n const handleTest = () => {\n console.log('Pesquisa: ', search)\n setResults({\n \"message\": \"Você precisa seguir algumas etapas importantes para ter um chatbot perfeito. Primeiro, defina claramente o objetivo do seu chatbot. Em seguida, crie uma mensagem de saudação cativante para atrair a atenção dos usuários. Não se esqueça de pedir feedbacks para melhorar constantemente o desempenho do seu chatbot. Além disso, construa um fluxo de conversa simples e utilize respostas curtas para manter a interação rápida e eficiente. Também é importante incorporar inteligência artificial para tornar o seu chatbot especialista em determinado assunto. Teste o seu bot antes de lançá-lo e personalize-o de acordo com as necessidades dos usuários. Por fim, direcione os usuários para um atendimento humano quando necessário. Seguindo essas dicas, você estará no caminho certo para ter um chatbot perfeito!\"\n })\n };\n\n return (\n <S.Container>\n <S.Header>\n <div className='infos'>\n <h2>{t.test}</h2>\n <p>{t.testArea.description}</p>\n </div>\n </S.Header>\n <S.Inputs>\n <InputTest placeholder={t.testArea.typeSentence} onChange={handleSearch} onRecordAudio={handleRecordAudio} />\n <Select placeholder={t.testArea.selectPersona} options={optionsPersona} onSelect={handleSelect} />\n <Select placeholder={t.testArea.selectPresset} options={optionsPresset} onSelect={handleSelect} />\n <button onClick={handleTest}><PiWaveformBold /> {t.buttons.test}</button>\n </S.Inputs>\n {\n results.message === '' ? (\n <EmptyState\n icon={<FaList></FaList>}\n title={t.testArea.emptyState.title}\n description={t.testArea.emptyState.description}\n activeButton={false}\n />\n ) : <S.Result>\n <div className='icon'>\n <MdPerson2 />\n </div>\n <div className='text'>{results.message}</div>\n </S.Result>\n }\n </S.Container>\n );\n};","import React, { useMemo, Suspense } from 'react';\n\nimport { Route, useLocation, useRouteMatch, useHistory, Switch as SwitchRoute } from 'react-router-dom';\n\nimport type { Props } from './index';\nimport { Tab, Tabs } from './components/Tabs'\n\nimport { getLanguage } from './utils/getLanguage'\n\nimport { FileArea } from './components/FileArea';\nimport { TestArea } from './components/TestArea';\n\nexport const Leia = (props: Props) => {\n const match = useRouteMatch();\n const { pathname } = useLocation();\n const history = useHistory();\n\n const t = getLanguage(props.language)\n\n const activeTab = useMemo(() => {\n return pathname.split('/')[5] || 'files';\n }, [pathname]);\n\n return (\n <>\n <Tabs\n value={activeTab}\n onChange={(value) => history.push(`${match.url}/${value}`)}\n >\n <Tab value=\"files\">{t.files}</Tab>\n <Tab value=\"test\">{t.test}</Tab>\n </Tabs>\n <Suspense fallback={props.loading}>\n <SwitchRoute>\n <Route path={`${match.path}`} exact component={FileArea} />\n <Route path={`${match.path}/files`} component={FileArea} />\n <Route path={`${match.path}/test`} component={TestArea} />\n </SwitchRoute>\n </Suspense>\n </>\n );\n};","import type { PropsWithChildren, ReactElement } from 'react';\nimport React from 'react';\nimport { Leia } from './Leia';\n\nexport type Props = PropsWithChildren<{\n id: string;\n activeTab: string;\n language: \"en\" | \"pt-br\" | \"es\";\n loading: ReactElement\n}>;\n\nexport function Code7(props: Props) {\n return <Leia {...props} />;\n}"],"names":["TabsPane","styled","ul","_templateObject","_taggedTemplateLiteralLoose","Tab","li","_templateObject2","_ref","active","children","rest","_objectWithoutPropertiesLoose","_excluded","React","S","className","cc","propTypes","PropTypes","oneOfType","string","element","node","isRequired","onChange","func","value","bool","defaultProps","Tabs","_ref2","childrenProp","_excluded2","Children","map","child","isValidElement","Array","isArray","_child$props","props","_child$props2","cloneElement","_child$props3","onClick","_child$props4","number","defaultLanguage","files","test","fileArea","description","fileName","presset","actions","search","fileUpload","emptyState","title","modal","descriptionUpload","chooseFile","buttons","cancel","send","testArea","typeSentence","selectPersona","selectPresset","getLanguage","language","languages","en","_extends","es","Container","div","Header","TableWrapper","Table","table","TableLoadingWrapper","_templateObject3","SpinnerWrapper","span","color","Spinner","_ref$color","_ref$size","size","forwardRef","ref","_ref$isLoading","isLoading","_ref$className","oneOf","SearchInput","placeholder","setFiles","initialFiles","searchName","e","searchTerm","target","trim","normalizedSearchTerm","unorm","nfkd","toLowerCase","newFiles","filter","file","normalizedFileName","name","includes","style","position","width","type","paddingLeft","borderRadius","border","height","top","left","pointerEvents","FaSearch","hasBorder","backgroundColor","_ref3","backgroundIcon","EmptyState","icon","activeButton","iconButton","descriptionButton","widthButton","button","FileArea","_useState","useState","_useState2","setInitialFiles","_useLocation","useLocation","pathname","id","split","t","useEffect","console","log","tags","tagsSplit","html","tag","join","renderFiles","Search","FaUpload","length","FaList","FaPlus","object","dangerouslySetInnerHTML","__html","Inputs","Result","_templateObject4","Select","options","onSelect","selectedValue","setSelectedValue","handleSelectChange","event","selectedOption","disabled","hidden","option","key","label","StyledInput","input","RecordAudioButton","StyledMicrophoneIcon","FaMicrophone","InputTest","onRecordAudio","TestArea","results","setResults","setSearch","personas","optionsPersona","persona","optionsPresset","handleSelect","handleSearch","handleRecordAudio","handleTest","PiWaveformBold","message","MdPerson2","Leia","match","useRouteMatch","history","useHistory","activeTab","useMemo","push","url","Suspense","fallback","loading","SwitchRoute","Route","path","exact","component","Code7"],"mappings":"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"}
1
+ {"version":3,"file":"code7-leia.cjs.development.js","sources":["../src/components/Tabs/styles.tsx","../src/components/Tabs/index.tsx","../src/utils/getLanguage.tsx","../src/components/FileArea/styles.tsx","../src/components/FileArea/components/Table/styles.tsx","../src/components/FileArea/components/Spinner/styles.tsx","../src/components/FileArea/components/Spinner/index.tsx","../src/components/FileArea/components/Table/index.tsx","../src/components/FileArea/components/Search/index.tsx","../src/components/EmptyState/styles.tsx","../src/components/EmptyState/index.tsx","../src/components/FileArea/index.tsx","../src/components/TestArea/styles.tsx","../src/components/TestArea/components/Select/styles.tsx","../src/components/TestArea/components/Select/index.tsx","../src/components/TestArea/components/InputTest/styles.tsx","../src/components/TestArea/components/InputTest/index.tsx","../src/components/TestArea/index.tsx","../src/Leia.tsx","../src/index.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { ReactNode } from 'react';\n\ninterface TabProps {\n children: ReactNode;\n}\n\ninterface OptionProps {\n children: ReactNode;\n onClick: () => void;\n}\n\nexport const TabsPane = styled.ul`\n width: max-content;\n display: flex;\n align-items: center;\n border-bottom: 1px solid var(--neutral-1);\n`;\n\nexport const Tab = styled.li<TabProps>`\n padding: 12px;\n color: var(--neutral-3);\n font-size: 0.875rem;\n font-weight: normal;\n position: relative;\n cursor: pointer;\n\n svg {\n fill: var(--neutral-3) !important;\n margin-left: 8px;\n }\n\n &.active {\n color: var(--primary-700-light);\n\n svg {\n fill: var(--primary-700-light) !important;\n }\n\n ::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 2px;\n background-color: var(--primary-700-light);\n }\n }\n\n &:not(:last-child) {\n margin-right: 8px;\n }\n`;\n\nexport const DropdownContainer = styled.div`\n position: absolute;\n left: 0px;\n top: 40px;\n display: flex;\n flex-direction: column;\n\n background: #ffffff;\n\n border: 1px solid #979aa5;\n box-sizing: border-box;\n box-shadow: 0px 6px 12px -6px rgba(24, 39, 75, 0.12),\n 0px 8px 24px -4px rgba(24, 39, 75, 0.08);\n border-radius: 4px;\n padding: 8px;\n z-index: 2;\n`;\n\nexport const Option = styled.div<OptionProps>`\n padding: 8px;\n font-size: 14px;\n border-radius: 4px;\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover {\n background-color: var(--primary-800-light);\n color: white;\n }\n`;\n","import React, { ReactNode } from 'react';\nimport PropTypes from 'prop-types';\nimport cc from 'classcat';\n\nimport * as S from './styles';\n\ninterface TabProps {\n children: ReactNode;\n active?: boolean;\n}\n\ninterface ITabsProps {\n children: ReactNode;\n value: string | number;\n onChange: (e: any) => void;\n active?: boolean;\n}\n\nexport const Tab = ({ active, children, ...rest }: TabProps) => {\n return (\n <S.Tab className={cc({ active })} {...rest}>\n {children}\n </S.Tab>\n );\n};\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]).isRequired,\n onChange: PropTypes.func,\n value: PropTypes.string,\n active: PropTypes.bool,\n};\n\nTab.defaultProps = {\n onChange: () => {},\n value: '',\n active: false,\n};\n\nexport const Tabs = ({ children: childrenProp, value, onChange, ...rest }: ITabsProps) => {\n const children = React.Children.map(childrenProp, (child) => {\n if (!React.isValidElement(child)) {\n return null;\n }\n\n if (Array.isArray(child.props?.children)) {\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n value,\n onChange,\n });\n }\n\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n onClick: () => onChange(child.props?.value),\n });\n });\n\n return <S.TabsPane {...rest}>{children}</S.TabsPane>;\n};\n\nTabs.propTypes = {\n children: PropTypes.node.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n onChange: PropTypes.func.isRequired,\n};\n","\nimport { Language } from '../interface/Language'\n\nconst defaultLanguage: Language = {\n files: 'Files',\n test: 'Test',\n fileArea: {\n description: 'bla bla bla bla bla',\n fileName: 'File name',\n presset: 'Presset',\n actions: 'Actions',\n search: 'Search',\n fileUpload: 'File upload',\n emptyState: {\n title: 'No data',\n description: 'bla bla bla bla bla',\n },\n modal: {\n descriptionUpload: 'Drag and drop files here or',\n chooseFile: 'Choose a file',\n },\n },\n buttons: {\n cancel: 'Cancel',\n send: 'Send',\n delete: 'Delete',\n test: 'Test',\n },\n testArea: {\n description: 'bla bla bla bla bla',\n typeSentence: 'Type a sentence',\n selectPersona: 'Select a Persona',\n selectPresset: 'Select a presset',\n emptyState: {\n title: 'No data for analysis',\n description: 'Do a search, click the \"Test\" button.',\n },\n },\n};\n\nexport const getLanguage = (language: keyof Record<'en' | 'pt-br' | 'es', Language>): Language => {\n const languages = {\n en: defaultLanguage,\n 'pt-br': {\n files: 'Arquivos',\n test: 'Teste',\n fileArea: {\n ...defaultLanguage.fileArea,\n fileName: 'Nome do arquivo',\n presset: 'Presset',\n actions: 'Ações',\n search: 'Pesquisar',\n fileUpload: 'Upload de arquivo',\n emptyState: {\n ...defaultLanguage.fileArea.emptyState,\n title: 'Sem dados',\n },\n modal: {\n ...defaultLanguage.fileArea.modal,\n descriptionUpload: 'Arraste e solte os arquivos aqui ou',\n chooseFile: 'Escolha um arquivo',\n },\n },\n buttons: {\n ...defaultLanguage.buttons,\n cancel: 'Cancelar',\n send: 'Enviar',\n delete: 'Excluir',\n test: 'Testar',\n },\n testArea: {\n ...defaultLanguage.testArea,\n description: 'Digite uma frase para testar a inteligência artificial.',\n typeSentence: 'Digite uma frase',\n selectPersona: 'Selecione uma Persona',\n selectPresset: 'Selecione uma predefinição',\n emptyState: {\n ...defaultLanguage.testArea.emptyState,\n title: 'Sem dados para análise',\n description: 'Faça uma pesquisa, clique no botão \"Teste\".',\n },\n },\n },\n es: {\n ...defaultLanguage,\n files: 'Archivos',\n test: 'Prueba',\n fileArea: {\n ...defaultLanguage.fileArea,\n fileName: 'Nombre del archivo',\n presset: 'Presset',\n actions: 'Acciones',\n search: 'Buscar',\n fileUpload: 'Carga de archivos',\n emptyState: {\n ...defaultLanguage.fileArea.emptyState,\n title: 'Sin datos',\n },\n modal: {\n ...defaultLanguage.fileArea.modal,\n descriptionUpload: 'Arrastre y suelte los archivos aquí o',\n chooseFile: 'Elegir un archivo',\n },\n },\n buttons: {\n ...defaultLanguage.buttons,\n cancel: 'Cancelar',\n send: 'Enviar',\n delete: 'Eliminar',\n test: 'Probar',\n },\n testArea: {\n ...defaultLanguage.testArea,\n description: 'bla bla bla bla bla',\n typeSentence: 'Escribe una oración',\n selectPersona: 'Seleccionar una Persona',\n selectPresset: 'Seleccionar una configuración preestablecida',\n emptyState: {\n ...defaultLanguage.testArea.emptyState,\n title: 'Sin datos para el análisis',\n description: 'Realiza una búsqueda, haz clic en el botón \"Prueba\".',\n },\n },\n },\n };\n\n return languages[language] || defaultLanguage;\n};\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n .tag {\n padding: 4px 8px 4px 8px;\n background: #C7F9ED;\n border-radius: 4px;\n }\n\n .tags {\n display: flex;\n justify-content: left;\n gap: 4px;\n }\n\n .divDelete {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n }\n\n .buttonDelete {\n color: #5b0a1f;\n background: #fae0d2;\n padding: 12px 20px;\n border-radius: 4px;\n }\n\n .buttonDelete:hover {\n background: #f5bba7;\n }\n`;\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n\n .infos {\n display: flex;\n flex-direction: column;\n padding: 14px 0;\n\n h2 {\n font-size: 20px\n }\n\n p {\n font-size: 14px\n }\n }\n\n .actions {\n display: flex;\n justify-content: space-between;\n padding-bottom: 14px;\n\n button {\n background: #102693;\n padding: 10px 20px;\n color: white;\n border-radius: 4px;\n }\n }\n\n`\n","import styled from 'styled-components';\n\nexport const TableWrapper = styled.div`\n width: 100%;\n height: max-content;\n min-height: 50px;\n position: relative;\n`;\n\nexport const Table = styled.table`\n font-size: 14px;\n line-height: 143%;\n color: black;\n width: 100%;\n border-collapse: collapse;\n border-radius: 4px;\n\n th {\n font-weight: 600;\n font-size: 14px;\n line-height: 143%;\n letter-spacing: 0.018em;\n color: #5A5D68;\n text-align: left;\n padding: 8px;\n border-radius: 4px;\n }\n\n thead tr {\n background: #dadce3;\n }\n\n tbody tr {\n border: 1px solid #dadce3;\n }\n\n &.small td {\n padding: 4px;\n }\n\n &.medium td {\n padding: 8px;\n }\n\n &.large td {\n padding: 16px;\n }\n`;\n\nexport const TableLoadingWrapper = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: #f3f5f961;\n`;\n","import styled from 'styled-components';\n\nexport const SpinnerWrapper = styled.span`\n display: inline-block;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &.spinner--sm {\n width: 24px;\n height: 24px;\n }\n\n &.spinner--md {\n width: 32px;\n height: 32px;\n }\n\n &.spinner--lg {\n width: 60px;\n height: 60px;\n }\n\n span {\n box-sizing: border-box;\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n margin: 8px;\n border: 4px solid #fff;\n border-radius: 50%;\n animation: rotateSpinner 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n border-color: ${(props) => `var(--${props.color})`} transparent transparent\n transparent;\n }\n\n & span:nth-child(1) {\n animation-delay: -0.45s;\n }\n\n & span:nth-child(2) {\n animation-delay: -0.3s;\n }\n\n & span:nth-child(3) {\n animation-delay: -0.15s;\n }\n\n @keyframes rotateSpinner {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n`;\n","import React from 'react';\nimport cc from 'classcat';\n\nimport * as S from './styles';\n\nimport { SpinnerProps } from '../../../../interface/Table'\n\nconst Spinner: React.FC<SpinnerProps> = ({ color = 'neutral-3', size = 'md', className }) => {\n return (\n <S.SpinnerWrapper\n color={color}\n className={cc([`spinner--${size}`, className])}\n >\n <span />\n <span />\n <span />\n <span />\n </S.SpinnerWrapper>\n );\n};\n\nexport default Spinner;\n","import React, { forwardRef, Ref } from 'react';\nimport PropTypes from 'prop-types';\nimport cc from 'classcat';\n\nimport * as S from './styles';\nimport Spinner from '../Spinner';\n\nimport { TableProps } from '../../../../interface/Table'\n\nconst Table = forwardRef(\n ({ size = 'medium', children, isLoading = false, className = '', ...props }: TableProps, ref: Ref<HTMLTableElement>) => {\n return (\n <S.TableWrapper className={className}>\n {isLoading ? (\n <S.TableLoadingWrapper>\n <Spinner />\n </S.TableLoadingWrapper>\n ) : null}\n <S.Table className={cc([size])} ref={ref} {...props}>\n {children}\n </S.Table>\n </S.TableWrapper>\n );\n }\n);\n\nTable.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n isLoading: PropTypes.bool,\n};\n\nexport default Table;\n","import React from 'react';\nimport unorm from 'unorm';\nimport { FaSearch } from 'react-icons/fa';\nimport type { FileData } from '../../../../interface/FileData'\n\ninterface SearchInputProps {\n placeholder: string;\n initialFiles: FileData[]\n setFiles: React.Dispatch<React.SetStateAction<FileData[]>>;\n}\n\nconst SearchInput: React.FC<SearchInputProps> = ({ placeholder, setFiles, initialFiles }) => {\n\n const searchName = (e: React.ChangeEvent<HTMLInputElement>) => {\n const searchTerm = e.target.value.trim();\n const normalizedSearchTerm = unorm.nfkd(searchTerm).toLowerCase();\n \n const newFiles = initialFiles.filter(file => {\n const normalizedFileName = unorm.nfkd(file.name).toLowerCase();\n return normalizedFileName.includes(normalizedSearchTerm);\n });\n \n setFiles(searchTerm !== '' ? newFiles : initialFiles);\n}\n \n\n return (\n <div style={{ position: 'relative', width: '300px' }}>\n <input\n type=\"text\"\n onChange={(e) => searchName(e)}\n placeholder={placeholder}\n style={{\n paddingLeft: '40px',\n borderRadius: '5px',\n border: '1px solid #ccc',\n height: '40px',\n width: '100%',\n }}\n />\n <div\n style={{\n position: 'absolute',\n top: '10px',\n left: '10px',\n pointerEvents: 'none', \n }}\n >\n <FaSearch />\n </div>\n </div>\n );\n};\n\nexport default SearchInput;\n","import styled from 'styled-components';\n\ninterface ContainerProps {\n hasBorder?: boolean;\n backgroundColor?: string;\n backgroundIcon?: string;\n}\n\nexport const Container = styled.div<ContainerProps>`\n width: 100%;\n display: flex;\n justify-content: center;\n padding: 24px 0;\n height: 193px;\n\n background: ${({ hasBorder }) =>\n hasBorder &&\n `linear-gradient(\n to right,\n #dadce3 50%,\n rgba(255, 255, 255, 0) 0%\n ),\n linear-gradient(#dadce3 50%, rgba(255, 255, 255, 0) 0%),\n linear-gradient(to right, #dadce3 50%, rgba(255, 255, 255, 0) 0%),\n linear-gradient(#dadce3 50%, rgba(255, 255, 255, 0) 0%)`};\n background-position: top, right, bottom, left;\n background-repeat: repeat-x, repeat-y;\n background-size: 40px 1px, 1px 40px;\n background-color: ${({ backgroundColor }) => backgroundColor};\n\n & .content {\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n & > .icon {\n background-color: ${({ backgroundIcon }) => backgroundIcon};\n border-radius: 16px;\n width: 145px;\n height: 145px;\n\n display: flex;\n justify-content: center;\n\n & svg {\n width: 100%;\n height: 70%;\n margin: 20px;\n }\n }\n\n & .description {\n max-width: 600px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n padding: 8px 0 8px 24px;\n\n .button-add {\n cursor: pointer;\n }\n\n .start-icon {\n display: flex;\n align-items: center;\n }\n }\n }\n`;\n","import React, { FC, ReactElement } from 'react';\nimport PropTypes from 'prop-types';\nimport * as S from './styles';\n\ninterface EmptyStateProps {\n icon?: string | ReactElement;\n title?: string;\n description?: string;\n activeButton?: boolean;\n iconButton?: ReactElement;\n descriptionButton?: string;\n widthButton?: string;\n button?: ReactElement;\n backgroundIcon?: string;\n backgroundColor?: string;\n hasBorder?: boolean;\n}\n\nconst EmptyState: FC<EmptyStateProps> = ({\n icon,\n title,\n description,\n activeButton,\n iconButton,\n descriptionButton,\n widthButton,\n button,\n backgroundIcon,\n backgroundColor,\n hasBorder,\n ...rest\n}) => {\n return (\n <S.Container\n backgroundIcon={backgroundIcon}\n backgroundColor={backgroundColor}\n hasBorder={hasBorder}\n {...rest}\n >\n <div className=\"content\">\n <div className=\"icon\">\n {icon}\n </div>\n <div className=\"description\">\n <h5> {title}</h5>\n\n <p>{description}</p>\n\n {activeButton ? (\n <button>\n {descriptionButton}\n </button>\n ) : null}\n\n {button}\n </div>\n </div>\n </S.Container>\n );\n};\n\nEmptyState.propTypes = {\n icon: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n title: PropTypes.string,\n description: PropTypes.string,\n activeButton: PropTypes.bool,\n iconButton: PropTypes.element,\n descriptionButton: PropTypes.string,\n widthButton: PropTypes.string,\n button: PropTypes.element,\n backgroundIcon: PropTypes.string,\n backgroundColor: PropTypes.string,\n hasBorder: PropTypes.bool,\n};\n\nEmptyState.defaultProps = {\n icon: '',\n title: '',\n description: '',\n activeButton: false,\n descriptionButton: '',\n widthButton: '140px',\n backgroundIcon: 'var(--neutral-0)',\n backgroundColor: 'var(--absolute-white)',\n hasBorder: true,\n};\n\nexport default EmptyState;\n","import React, { useEffect, useState} from 'react';\n\nimport { FaUpload, FaList, FaPlus } from 'react-icons/fa';\n\n// import { formatAxios } from '../../utils/formatAxios'\n\nimport { useLocation } from 'react-router-dom';\n\nimport type { FileData } from '../../interface/FileData'\n\nimport { getLanguage } from '../../utils/getLanguage'\n\nimport * as S from './styles';\nimport Table from './components/Table';\nimport Search from './components/Search';\nimport EmptyState from '../EmptyState';\n\nexport const FileArea = () => {\n const [files, setFiles] = useState<FileData[]>([]);\n const [initialFiles, setInitialFiles] = useState<FileData[]>([]);\n const { pathname } = useLocation();\n const id = pathname.split('/')[4]\n const t = getLanguage('pt-br')\n\n useEffect(() => {\n setFiles([\n {\n \"name\": \"Documentação conceitual Code7_v3\",\n \"tags\": \"boteria, code7\"\n },\n {\n \"name\": \"PAE_Programa_Apoio_ao_Empregado\",\n \"tags\": \"pae, vr\"\n },\n {\n \"name\": \"Vidalink\",\n \"tags\": \"vidalink, vr\"\n },\n {\n \"name\": \"[GUIA PRÁTICO] Como criar o chatbot perfeito\",\n \"tags\": \"ebook, code7\"\n }\n ])\n\n setInitialFiles([\n {\n \"name\": \"Documentação conceitual Code7_v3\",\n \"tags\": \"boteria, code7\"\n },\n {\n \"name\": \"PAE_Programa_Apoio_ao_Empregado\",\n \"tags\": \"pae, vr\"\n },\n {\n \"name\": \"Vidalink\",\n \"tags\": \"vidalink, vr\"\n },\n {\n \"name\": \"[GUIA PRÁTICO] Como criar o chatbot perfeito\",\n \"tags\": \"ebook, code7\"\n }\n ])\n }, [])\n\n useEffect(() => {\n console.log('files, id, t: ', files, id, t)\n }, [files])\n\n const presset = (tags: string) => {\n const tagsSplit = tags.split(',');\n let html = '';\n\n html += tagsSplit.map(tag => {\n return `<p class='tag'>${tag}</p>`;\n }).join('');\n\n return html;\n}\n\n const renderFiles = () => { \n return (\n <S.Container>\n <S.Header>\n <div className='infos'>\n <h2>{t.files}</h2>\n <p>{t.fileArea.description}</p>\n </div>\n <div className='actions'>\n <Search placeholder={t.fileArea.search} setFiles={setFiles} initialFiles={initialFiles}></Search>\n <button><FaUpload /> {t.fileArea.fileUpload}</button>\n </div>\n </S.Header>\n {\n files.length === 0 ? (\n <EmptyState\n icon={<FaList></FaList>}\n title={t.fileArea.emptyState.title}\n description={t.fileArea.emptyState.description}\n activeButton\n iconButton={<FaPlus style={{ width: '15px', height: '15px' }} />}\n descriptionButton={t.fileArea.modal.chooseFile}\n widthButton=\"230px\"\n />\n ) : <Table>\n <thead>\n <tr>\n <th className=\"th_file_name\">\n {t.fileArea.fileName}\n </th>\n <th className=\"th_pressets\">\n {t.fileArea.presset}\n </th>\n <th className=\"th_actions\">\n {t.fileArea.actions}\n </th>\n </tr>\n </thead>\n\n <tbody>\n {files.map((object) => (\n <tr>\n <td>{object.name}</td>\n <td className='tags' dangerouslySetInnerHTML={{ __html: presset(object.tags) }} />\n <td>\n <div className='divDelete'>\n <button className='buttonDelete'>{t.buttons.delete}</button>\n </div>\n </td>\n </tr>\n ))}\n </tbody>\n </Table>\n }\n \n </S.Container>\n );\n }\n\n return (\n <S.Container>\n {renderFiles()}\n </S.Container>\n );\n};","import styled from 'styled-components';\n\nexport const Container = styled.div`\n\n`;\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n .infos {\n display: flex;\n flex-direction: column;\n padding: 14px 0;\n\n h2 {\n font-size: 20px\n }\n\n p {\n font-size: 14px\n }\n }\n`\n\nexport const Inputs = styled.div`\n display: flex;\n justify-content: space-between;\n margin-bottom: 10px;\n\n button {\n background: #102693;\n padding: 10px 20px;\n color: white;\n border-radius: 4px;\n width: 190px;\n height: 40px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n svg {\n width: 23px;\n height: 23px;\n }\n }\n`\n\nexport const Result = styled.div`\n display: flex;\n justify-content: left;\n background: #F3F5F9;\n padding: 15px;\n border-radius: 5px;\n margin-top: 15px;\n\n .text{\n margin-left: 5px;\n font-size: 14px;\n }\n\n .icon {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 5px;\n\n svg {\n width: 35px;\n height: 35px;\n }\n }\n\n`","import styled from 'styled-components';\n\nexport const Container = styled.div`\n position: relative;\n width: 50%;\n margin-right: 5px;\n select {\n padding: 12px;\n border-radius: 4px;\n border: 1px solid #979AA5;\n width: 100%;\n height: 40px;\n \n &:focus {\n outline: none;\n box-shadow: 0 0 0 3px #6690ff;\n }\n }\n`;\n","import React, { useState } from 'react';\nimport * as S from './styles';\n\ninterface SelectOption {\n value: string | number;\n label: string;\n}\n\ninterface SelectProps {\n options: SelectOption[];\n onSelect: (value: string | number) => void;\n placeholder?: string;\n}\n\nconst Select: React.FC<SelectProps> = ({ options, onSelect, placeholder }) => {\n const [selectedValue, setSelectedValue] = useState<string | number>('');\n\n const handleSelectChange = (event: React.ChangeEvent<HTMLSelectElement>) => {\n const selectedOption = event.target.value;\n setSelectedValue(selectedOption);\n onSelect(selectedOption);\n };\n\n return (\n <S.Container>\n <select value={selectedValue} onChange={handleSelectChange}>\n <option value=\"\" disabled hidden>\n {placeholder}\n </option>\n {options.map(option => (\n <option key={option.value} value={option.value}>\n {option.label}\n </option>\n ))}\n </select>\n </S.Container>\n );\n};\n\nexport default Select;\n","import styled from 'styled-components';\nimport { FaMicrophone } from 'react-icons/fa';\n\nexport const Container = styled.div`\n position: relative;\n width: 100%;\n margin-right: 5px;\n`;\n\nexport const StyledInput = styled.input`\n padding-left: 10px;\n padding-right: 40px;\n border-radius: 5px;\n border: 1px solid #ccc;\n height: 40px;\n width: 100%;\n\n &:focus {\n outline: none;\n box-shadow: 0 0 0 3px #6690ff;\n }\n`;\n\nexport const RecordAudioButton = styled.div`\n position: absolute;\n top: 10px;\n right: 10px;\n cursor: pointer;\n`;\n\nexport const StyledMicrophoneIcon = styled(FaMicrophone)`\n pointer-events: none;\n`;\n","import React from 'react';\nimport * as S from './styles';\n\ninterface InputTestProps {\n placeholder: string;\n onChange: (value: string) => void;\n onRecordAudio: () => void;\n}\n\nconst InputTest: React.FC<InputTestProps> = ({ placeholder, onChange, onRecordAudio }) => {\n return (\n <S.Container>\n <S.StyledInput\n type=\"text\"\n onChange={(e: any) => onChange(e.target.value)}\n placeholder={placeholder}\n />\n <S.RecordAudioButton onClick={onRecordAudio}>\n <S.StyledMicrophoneIcon />\n </S.RecordAudioButton>\n </S.Container>\n );\n};\n\nexport default InputTest;\n","import React, { useState } from 'react';\nimport { getLanguage } from '../../utils/getLanguage'\nimport * as S from './styles';\nimport Select from './components/Select'\nimport InputTest from './components/InputTest'\nimport { PiWaveformBold } from 'react-icons/pi';\nimport { FaList } from 'react-icons/fa';\nimport EmptyState from '../EmptyState';\n// import IconLeia from '../../assets/icon_leia.svg';\nimport { MdPerson2 } from \"react-icons/md\";\n\nexport const TestArea = () => {\n const t = getLanguage('pt-br')\n const [results, setResults] = useState({ \"message\": \"\" });\n const [search, setSearch] = useState('');\n const tags = [\n \"pae\",\n \"boteria\",\n \"vr\",\n \"code7\",\n \"vidalink\"\n ]\n const personas = [\n {\n \"description\": \"Seriedade e profundidade ao explicar. Usa linguagem acadêmica e é preciso em temas específicos da área.\",\n \"name\": \"College professor\"\n },\n {\n \"description\": \"Abordagem descontraída, direto ao ponto. Linguagem simples, exemplos práticos para facilitar compreensão rápida.\",\n \"name\": \"School Teacher\"\n },\n {\n \"description\": \"Estilo descontraído, senso de humor único. Piadas e trocadilhos até em assuntos sérios.\",\n \"name\": \"Humorist\"\n },\n {\n \"description\": \"Postura centrada, comunicação direta e focada em resultados. Prioriza eficiência e precisão.\",\n \"name\": \"Military\"\n },\n {\n \"description\": \"Estilo único e carismático. Usa linguagem moderna, compartilha informações cativantes de forma descontraída.\",\n \"name\": \"Digital Influencer\"\n }\n ]\n\n const optionsPersona = personas.map(persona => {\n return { label: persona.name, value: persona.description }\n })\n\n const optionsPresset = tags.map(tag => {\n return { label: tag, value: tag }\n })\n\n const handleSelect = (value: string | number) => {\n console.log(value);\n };\n\n const handleSearch = (value: string) => {\n setSearch(value);\n };\n\n const handleRecordAudio = () => {\n console.log('Iniciando gravação de áudio...');\n };\n\n const handleTest = () => {\n console.log('Pesquisa: ', search)\n setResults({\n \"message\": \"Você precisa seguir algumas etapas importantes para ter um chatbot perfeito. Primeiro, defina claramente o objetivo do seu chatbot. Em seguida, crie uma mensagem de saudação cativante para atrair a atenção dos usuários. Não se esqueça de pedir feedbacks para melhorar constantemente o desempenho do seu chatbot. Além disso, construa um fluxo de conversa simples e utilize respostas curtas para manter a interação rápida e eficiente. Também é importante incorporar inteligência artificial para tornar o seu chatbot especialista em determinado assunto. Teste o seu bot antes de lançá-lo e personalize-o de acordo com as necessidades dos usuários. Por fim, direcione os usuários para um atendimento humano quando necessário. Seguindo essas dicas, você estará no caminho certo para ter um chatbot perfeito!\"\n })\n };\n\n return (\n <S.Container>\n <S.Header>\n <div className='infos'>\n <h2>{t.test}</h2>\n <p>{t.testArea.description}</p>\n </div>\n </S.Header>\n <S.Inputs>\n <InputTest placeholder={t.testArea.typeSentence} onChange={handleSearch} onRecordAudio={handleRecordAudio} />\n <Select placeholder={t.testArea.selectPersona} options={optionsPersona} onSelect={handleSelect} />\n <Select placeholder={t.testArea.selectPresset} options={optionsPresset} onSelect={handleSelect} />\n <button onClick={handleTest}><PiWaveformBold /> {t.buttons.test}</button>\n </S.Inputs>\n {\n results.message === '' ? (\n <EmptyState\n icon={<FaList></FaList>}\n title={t.testArea.emptyState.title}\n description={t.testArea.emptyState.description}\n activeButton={false}\n />\n ) : <S.Result>\n <div className='icon'>\n <MdPerson2 />\n </div>\n <div className='text'>{results.message}</div>\n </S.Result>\n }\n </S.Container>\n );\n};","import React, { useMemo, Suspense } from 'react';\n\nimport { Route, useLocation, useRouteMatch, useHistory, Switch as SwitchRoute } from 'react-router-dom';\n\nimport type { Props } from './index';\nimport { Tab, Tabs } from './components/Tabs'\n\nimport { getLanguage } from './utils/getLanguage'\n\nimport { FileArea } from './components/FileArea';\nimport { TestArea } from './components/TestArea';\n\nexport const Leia = (props: Props) => {\n const match = useRouteMatch();\n const { pathname } = useLocation();\n const history = useHistory();\n\n const t = getLanguage(props.language)\n\n const activeTab = useMemo(() => {\n return pathname.split('/')[5] || 'files';\n }, [pathname]);\n\n return (\n <>\n <Tabs\n value={activeTab}\n onChange={(value) => history.push(`${match.url}/${value}`)}\n >\n <Tab value=\"files\">{t.files}</Tab>\n <Tab value=\"test\">{t.test}</Tab>\n </Tabs>\n <Suspense fallback={props.loading}>\n <SwitchRoute>\n <Route path={`${match.path}`} exact component={FileArea} />\n <Route path={`${match.path}/files`} component={FileArea} />\n <Route path={`${match.path}/test`} component={TestArea} />\n </SwitchRoute>\n </Suspense>\n </>\n );\n};","import type { PropsWithChildren, ReactElement } from 'react';\nimport React from 'react';\nimport { Leia } from './Leia';\n\nexport type Props = PropsWithChildren<{\n id: string;\n activeTab: string;\n language: \"en\" | \"pt-br\" | \"es\";\n loading: ReactElement\n}>;\n\nexport function Code7(props: Props) {\n return <Leia {...props} />;\n}"],"names":["TabsPane","styled","ul","_templateObject","_taggedTemplateLiteralLoose","Tab","li","_templateObject2","_ref","active","children","rest","_objectWithoutPropertiesLoose","_excluded","React","S","className","cc","propTypes","PropTypes","oneOfType","string","element","node","isRequired","onChange","func","value","bool","defaultProps","Tabs","_ref2","childrenProp","_excluded2","Children","map","child","isValidElement","Array","isArray","_child$props","props","_child$props2","cloneElement","_child$props3","onClick","_child$props4","number","defaultLanguage","files","test","fileArea","description","fileName","presset","actions","search","fileUpload","emptyState","title","modal","descriptionUpload","chooseFile","buttons","cancel","send","testArea","typeSentence","selectPersona","selectPresset","getLanguage","language","languages","en","_extends","es","Container","div","Header","TableWrapper","Table","table","TableLoadingWrapper","_templateObject3","SpinnerWrapper","span","color","Spinner","_ref$color","_ref$size","size","forwardRef","ref","_ref$isLoading","isLoading","_ref$className","oneOf","SearchInput","placeholder","setFiles","initialFiles","searchName","e","searchTerm","target","trim","normalizedSearchTerm","unorm","nfkd","toLowerCase","newFiles","filter","file","normalizedFileName","name","includes","style","position","width","type","paddingLeft","borderRadius","border","height","top","left","pointerEvents","FaSearch","hasBorder","backgroundColor","_ref3","backgroundIcon","EmptyState","icon","activeButton","iconButton","descriptionButton","widthButton","button","FileArea","_useState","useState","_useState2","setInitialFiles","_useLocation","useLocation","pathname","id","split","t","useEffect","console","log","tags","tagsSplit","html","tag","join","renderFiles","Search","FaUpload","length","FaList","FaPlus","object","dangerouslySetInnerHTML","__html","Inputs","Result","_templateObject4","Select","options","onSelect","selectedValue","setSelectedValue","handleSelectChange","event","selectedOption","disabled","hidden","option","key","label","StyledInput","input","RecordAudioButton","StyledMicrophoneIcon","FaMicrophone","InputTest","onRecordAudio","TestArea","results","setResults","setSearch","personas","optionsPersona","persona","optionsPresset","handleSelect","handleSearch","handleRecordAudio","handleTest","PiWaveformBold","message","MdPerson2","Leia","match","useRouteMatch","history","useHistory","activeTab","useMemo","push","url","Suspense","fallback","loading","SwitchRoute","Route","path","exact","component","Code7"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var n,t,a=require("react"),i=e(a),r=require("react-router-dom"),o=e(require("prop-types")),l=e(require("classcat")),s=e(require("styled-components")),c=require("react-icons/fa"),d=e(require("unorm")),p=require("react-icons/pi"),u=require("react-icons/md");function m(){return(m=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e}).apply(this,arguments)}function f(e,n){if(null==e)return{};var t,a,i={},r=Object.keys(e);for(a=0;a<r.length;a++)n.indexOf(t=r[a])>=0||(i[t]=e[t]);return i}function g(e,n){return n||(n=e.slice(0)),e.raw=n,e}var h=s.ul(n||(n=g(["\n width: max-content;\n display: flex;\n align-items: center;\n border-bottom: 1px solid var(--neutral-1);\n"]))),b=s.li(t||(t=g(["\n padding: 12px;\n color: var(--neutral-3);\n font-size: 0.875rem;\n font-weight: normal;\n position: relative;\n cursor: pointer;\n\n svg {\n fill: var(--neutral-3) !important;\n margin-left: 8px;\n }\n\n &.active {\n color: var(--primary-700-light);\n\n svg {\n fill: var(--primary-700-light) !important;\n }\n\n ::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 2px;\n background-color: var(--primary-700-light);\n }\n }\n\n &:not(:last-child) {\n margin-right: 8px;\n }\n"]))),v=["active","children"],x=["children","value","onChange"],E=function(e){var n=e.active,t=e.children,a=f(e,v);return i.createElement(b,Object.assign({className:l({active:n})},a),t)};E.propTypes={children:o.oneOfType([o.string,o.element,o.node]).isRequired,onChange:o.func,value:o.string,active:o.bool},E.defaultProps={onChange:function(){},value:"",active:!1};var y=function(e){var n=e.children,t=e.value,a=e.onChange,r=f(e,x),o=i.Children.map(n,(function(e){var n,r,o;return i.isValidElement(e)?Array.isArray(null==(n=e.props)?void 0:n.children)?i.cloneElement(e,{active:(null==(o=e.props)?void 0:o.value)===t,value:t,onChange:a}):i.cloneElement(e,{active:(null==(r=e.props)?void 0:r.value)===t,onClick:function(){var n;return a(null==(n=e.props)?void 0:n.value)}}):null}));return i.createElement(h,Object.assign({},r),o)};y.propTypes={children:o.node.isRequired,value:o.oneOfType([o.string,o.number]).isRequired,onChange:o.func.isRequired};var A,k,S,w,C,P,N={files:"Files",test:"Test",fileArea:{description:"bla bla bla bla bla",fileName:"File name",presset:"Presset",actions:"Actions",search:"Search",fileUpload:"File upload",emptyState:{title:"No data",description:"bla bla bla bla bla"},modal:{descriptionUpload:"Drag and drop files here or",chooseFile:"Choose a file"}},buttons:{cancel:"Cancel",send:"Send",delete:"Delete",test:"Test"},testArea:{description:"bla bla bla bla bla",typeSentence:"Type a sentence",selectPersona:"Select a Persona",selectPresset:"Select a presset",emptyState:{title:"No data for analysis",description:'Do a search, click the "Test" button.'}}},q=function(e){return{en:N,"pt-br":{files:"Arquivos",test:"Teste",fileArea:m({},N.fileArea,{fileName:"Nome do arquivo",presset:"Presset",actions:"Ações",search:"Pesquisar",fileUpload:"Upload de arquivo",emptyState:m({},N.fileArea.emptyState,{title:"Sem dados"}),modal:m({},N.fileArea.modal,{descriptionUpload:"Arraste e solte os arquivos aqui ou",chooseFile:"Escolha um arquivo"})}),buttons:m({},N.buttons,{cancel:"Cancelar",send:"Enviar",delete:"Excluir",test:"Testar"}),testArea:m({},N.testArea,{description:"Digite uma frase para testar a inteligência artificial.",typeSentence:"Digite uma frase",selectPersona:"Selecione uma Persona",selectPresset:"Selecione uma predefinição",emptyState:m({},N.testArea.emptyState,{title:"Sem dados para análise",description:'Faça uma pesquisa, clique no botão "Teste".'})})},es:m({},N,{files:"Archivos",test:"Prueba",fileArea:m({},N.fileArea,{fileName:"Nombre del archivo",presset:"Presset",actions:"Acciones",search:"Buscar",fileUpload:"Carga de archivos",emptyState:m({},N.fileArea.emptyState,{title:"Sin datos"}),modal:m({},N.fileArea.modal,{descriptionUpload:"Arrastre y suelte los archivos aquí o",chooseFile:"Elegir un archivo"})}),buttons:m({},N.buttons,{cancel:"Cancelar",send:"Enviar",delete:"Eliminar",test:"Probar"}),testArea:m({},N.testArea,{description:"bla bla bla bla bla",typeSentence:"Escribe una oración",selectPersona:"Seleccionar una Persona",selectPresset:"Seleccionar una configuración preestablecida",emptyState:m({},N.testArea.emptyState,{title:"Sin datos para el análisis",description:'Realiza una búsqueda, haz clic en el botón "Prueba".'})})})}[e]||N},j=s.div(A||(A=g(["\n .tag {\n padding: 4px 8px 4px 8px;\n background: #C7F9ED;\n border-radius: 4px;\n }\n\n .tags {\n display: flex;\n justify-content: left;\n gap: 4px;\n }\n\n .divDelete {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n }\n\n .buttonDelete {\n color: #5b0a1f;\n background: #fae0d2;\n padding: 12px 20px;\n border-radius: 4px;\n }\n\n .buttonDelete:hover {\n background: #f5bba7;\n }\n"]))),B=s.div(k||(k=g(["\n display: flex;\n flex-direction: column;\n\n .infos {\n display: flex;\n flex-direction: column;\n padding: 14px 0;\n\n h2 {\n font-size: 20px\n }\n\n p {\n font-size: 14px\n }\n }\n\n .actions {\n display: flex;\n justify-content: space-between;\n padding-bottom: 14px;\n\n button {\n background: #102693;\n padding: 10px 20px;\n color: white;\n border-radius: 4px;\n }\n }\n\n"]))),F=s.div(S||(S=g(["\n width: 100%;\n height: max-content;\n min-height: 50px;\n position: relative;\n"]))),z=s.table(w||(w=g(["\n font-size: 14px;\n line-height: 143%;\n color: black;\n width: 100%;\n border-collapse: collapse;\n border-radius: 4px;\n\n th {\n font-weight: 600;\n font-size: 14px;\n line-height: 143%;\n letter-spacing: 0.018em;\n color: #5A5D68;\n text-align: left;\n padding: 8px;\n border-radius: 4px;\n }\n\n thead tr {\n background: #dadce3;\n }\n\n tbody tr {\n border: 1px solid #dadce3;\n }\n\n &.small td {\n padding: 4px;\n }\n\n &.medium td {\n padding: 8px;\n }\n\n &.large td {\n padding: 16px;\n }\n"]))),T=s.div(C||(C=g(["\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: #f3f5f961;\n"]))),O=s.span(P||(P=g(["\n display: inline-block;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &.spinner--sm {\n width: 24px;\n height: 24px;\n }\n\n &.spinner--md {\n width: 32px;\n height: 32px;\n }\n\n &.spinner--lg {\n width: 60px;\n height: 60px;\n }\n\n span {\n box-sizing: border-box;\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n margin: 8px;\n border: 4px solid #fff;\n border-radius: 50%;\n animation: rotateSpinner 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n border-color: "," transparent transparent\n transparent;\n }\n\n & span:nth-child(1) {\n animation-delay: -0.45s;\n }\n\n & span:nth-child(2) {\n animation-delay: -0.3s;\n }\n\n & span:nth-child(3) {\n animation-delay: -0.15s;\n }\n\n @keyframes rotateSpinner {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n"])),(function(e){return"var(--"+e.color+")"})),_=function(e){var n=e.color,t=e.size;return i.createElement(O,{color:void 0===n?"neutral-3":n,className:l(["spinner--"+(void 0===t?"md":t),e.className])},i.createElement("span",null),i.createElement("span",null),i.createElement("span",null),i.createElement("span",null))},R=["size","children","isLoading","className"],D=a.forwardRef((function(e,n){var t=e.size,a=void 0===t?"medium":t,r=e.children,o=e.isLoading,s=void 0!==o&&o,c=e.className,d=void 0===c?"":c,p=f(e,R);return i.createElement(F,{className:d},s?i.createElement(T,null,i.createElement(_,null)):null,i.createElement(z,Object.assign({className:l([a]),ref:n},p),r))}));D.propTypes={children:o.node.isRequired,className:o.string,size:o.oneOf(["small","medium","large"]),isLoading:o.bool};var I,U=function(e){var n=e.setFiles,t=e.initialFiles;return i.createElement("div",{style:{position:"relative",width:"300px"}},i.createElement("input",{type:"text",onChange:function(e){return function(e){var a=e.target.value.trim(),i=d.nfkd(a).toLowerCase(),r=t.filter((function(e){return d.nfkd(e.name).toLowerCase().includes(i)}));n(""!==a?r:t)}(e)},placeholder:e.placeholder,style:{paddingLeft:"40px",borderRadius:"5px",border:"1px solid #ccc",height:"40px",width:"100%"}}),i.createElement("div",{style:{position:"absolute",top:"10px",left:"10px",pointerEvents:"none"}},i.createElement(c.FaSearch,null)))},L=s.div(I||(I=g(["\n width: 100%;\n display: flex;\n justify-content: center;\n padding: 24px 0;\n height: 193px;\n\n background: ",";\n background-position: top, right, bottom, left;\n background-repeat: repeat-x, repeat-y;\n background-size: 40px 1px, 1px 40px;\n background-color: ",";\n\n & .content {\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n & > .icon {\n background-color: ",";\n border-radius: 16px;\n width: 145px;\n height: 145px;\n\n display: flex;\n justify-content: center;\n\n & svg {\n width: 100%;\n height: 70%;\n margin: 20px;\n }\n }\n\n & .description {\n max-width: 600px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n padding: 8px 0 8px 24px;\n\n .button-add {\n cursor: pointer;\n }\n\n .start-icon {\n display: flex;\n align-items: center;\n }\n }\n }\n"])),(function(e){return e.hasBorder&&"linear-gradient(\n to right,\n #dadce3 50%,\n rgba(255, 255, 255, 0) 0%\n ),\n linear-gradient(#dadce3 50%, rgba(255, 255, 255, 0) 0%),\n linear-gradient(to right, #dadce3 50%, rgba(255, 255, 255, 0) 0%),\n linear-gradient(#dadce3 50%, rgba(255, 255, 255, 0) 0%)"}),(function(e){return e.backgroundColor}),(function(e){return e.backgroundIcon})),M=["icon","title","description","activeButton","iconButton","descriptionButton","widthButton","button","backgroundIcon","backgroundColor","hasBorder"],V=function(e){var n=e.icon,t=e.title,a=e.description,r=e.activeButton,o=e.descriptionButton,l=e.button,s=e.backgroundIcon,c=e.backgroundColor,d=e.hasBorder,p=f(e,M);return i.createElement(L,Object.assign({backgroundIcon:s,backgroundColor:c,hasBorder:d},p),i.createElement("div",{className:"content"},i.createElement("div",{className:"icon"},n),i.createElement("div",{className:"description"},i.createElement("h5",null," ",t),i.createElement("p",null,a),r?i.createElement("button",null,o):null,l)))};V.propTypes={icon:o.oneOfType([o.string,o.element]),title:o.string,description:o.string,activeButton:o.bool,iconButton:o.element,descriptionButton:o.string,widthButton:o.string,button:o.element,backgroundIcon:o.string,backgroundColor:o.string,hasBorder:o.bool},V.defaultProps={icon:"",title:"",description:"",activeButton:!1,descriptionButton:"",widthButton:"140px",backgroundIcon:"var(--neutral-0)",backgroundColor:"var(--absolute-white)",hasBorder:!0};var H,G,W,J,K,Q,X,Y,Z,$=function(){var e=a.useState([]),n=e[0],t=e[1],o=a.useState([]),l=o[0],s=o[1],d=r.useLocation().pathname.split("/")[4],p=q("pt-br");return a.useEffect((function(){t([{name:"Documentação conceitual Code7_v3",tags:"boteria, code7"},{name:"PAE_Programa_Apoio_ao_Empregado",tags:"pae, vr"},{name:"Vidalink",tags:"vidalink, vr"},{name:"[GUIA PRÁTICO] Como criar o chatbot perfeito",tags:"ebook, code7"}]),s([{name:"Documentação conceitual Code7_v3",tags:"boteria, code7"},{name:"PAE_Programa_Apoio_ao_Empregado",tags:"pae, vr"},{name:"Vidalink",tags:"vidalink, vr"},{name:"[GUIA PRÁTICO] Como criar o chatbot perfeito",tags:"ebook, code7"}])}),[]),a.useEffect((function(){console.log("files, id, t: ",n,d,p)}),[n]),i.createElement(j,null,i.createElement(j,null,i.createElement(B,null,i.createElement("div",{className:"infos"},i.createElement("h2",null,p.files),i.createElement("p",null,p.fileArea.description)),i.createElement("div",{className:"actions"},i.createElement(U,{placeholder:p.fileArea.search,setFiles:t,initialFiles:l}),i.createElement("button",null,i.createElement(c.FaUpload,null)," ",p.fileArea.fileUpload))),0===n.length?i.createElement(V,{icon:i.createElement(c.FaList,null),title:p.fileArea.emptyState.title,description:p.fileArea.emptyState.description,activeButton:!0,iconButton:i.createElement(c.FaPlus,{style:{width:"15px",height:"15px"}}),descriptionButton:p.fileArea.modal.chooseFile,widthButton:"230px"}):i.createElement(D,null,i.createElement("thead",null,i.createElement("tr",null,i.createElement("th",{className:"th_file_name"},p.fileArea.fileName),i.createElement("th",{className:"th_pressets"},p.fileArea.presset),i.createElement("th",{className:"th_actions"},p.fileArea.actions))),i.createElement("tbody",null,n.map((function(e){return i.createElement("tr",null,i.createElement("td",null,e.name),i.createElement("td",{className:"tags",dangerouslySetInnerHTML:{__html:(n=e.tags,t="",t+=n.split(",").map((function(e){return"<p class='tag'>"+e+"</p>"})).join(""))}}),i.createElement("td",null,i.createElement("div",{className:"divDelete"},i.createElement("button",{className:"buttonDelete"},p.buttons.delete))));var n,t}))))))},ee=s.div(H||(H=g(["\n\n"]))),ne=s.div(G||(G=g(["\n display: flex;\n flex-direction: column;\n .infos {\n display: flex;\n flex-direction: column;\n padding: 14px 0;\n\n h2 {\n font-size: 20px\n }\n\n p {\n font-size: 14px\n }\n }\n"]))),te=s.div(W||(W=g(["\n display: flex;\n justify-content: space-between;\n margin-bottom: 10px;\n\n button {\n background: #102693;\n padding: 10px 20px;\n color: white;\n border-radius: 4px;\n width: 190px;\n height: 40px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n svg {\n width: 23px;\n height: 23px;\n }\n }\n"]))),ae=s.div(J||(J=g(["\n display: flex;\n justify-content: left;\n background: #F3F5F9;\n padding: 15px;\n border-radius: 5px;\n margin-top: 15px;\n\n .text{\n margin-left: 5px;\n font-size: 14px;\n }\n\n .icon {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 5px;\n\n svg {\n width: 35px;\n height: 35px;\n }\n }\n\n"]))),ie=s.div(K||(K=g(["\n position: relative;\n width: 50%;\n margin-right: 5px;\n select {\n padding: 12px;\n border-radius: 4px;\n border: 1px solid #979AA5;\n width: 100%;\n height: 40px;\n :active {\n border: 2px #1939b7 solid;\n }\n }\n"]))),re=function(e){var n=e.options,t=e.onSelect,r=e.placeholder,o=a.useState(""),l=o[1];return i.createElement(ie,null,i.createElement("select",{value:o[0],onChange:function(e){var n=e.target.value;l(n),t(n)}},i.createElement("option",{value:"",disabled:!0,hidden:!0},r),n.map((function(e){return i.createElement("option",{key:e.value,value:e.value},e.label)}))))},oe=s.div(Q||(Q=g(["\n position: relative;\n width: 100%;\n margin-right: 5px;\n"]))),le=s.input(X||(X=g(["\n padding-left: 10px;\n padding-right: 40px;\n border-radius: 5px;\n border: 1px solid #ccc;\n height: 40px;\n width: 100%;\n\n :active {\n border: 2px #1939b7 solid;\n }\n"]))),se=s.div(Y||(Y=g(["\n position: absolute;\n top: 10px;\n right: 10px;\n cursor: pointer;\n"]))),ce=s(c.FaMicrophone)(Z||(Z=g(["\n pointer-events: none;\n"]))),de=function(e){var n=e.onChange,t=e.onRecordAudio;return i.createElement(oe,null,i.createElement(le,{type:"text",onChange:function(e){return n(e.target.value)},placeholder:e.placeholder}),i.createElement(se,{onClick:t},i.createElement(ce,null)))},pe=function(){var e=q("pt-br"),n=a.useState({message:""}),t=n[0],r=n[1],o=a.useState(""),l=o[0],s=o[1],d=[{description:"Seriedade e profundidade ao explicar. Usa linguagem acadêmica e é preciso em temas específicos da área.",name:"College professor"},{description:"Abordagem descontraída, direto ao ponto. Linguagem simples, exemplos práticos para facilitar compreensão rápida.",name:"School Teacher"},{description:"Estilo descontraído, senso de humor único. Piadas e trocadilhos até em assuntos sérios.",name:"Humorist"},{description:"Postura centrada, comunicação direta e focada em resultados. Prioriza eficiência e precisão.",name:"Military"},{description:"Estilo único e carismático. Usa linguagem moderna, compartilha informações cativantes de forma descontraída.",name:"Digital Influencer"}].map((function(e){return{label:e.name,value:e.description}})),m=["pae","boteria","vr","code7","vidalink"].map((function(e){return{label:e,value:e}})),f=function(e){console.log(e)};return i.createElement(ee,null,i.createElement(ne,null,i.createElement("div",{className:"infos"},i.createElement("h2",null,e.test),i.createElement("p",null,e.testArea.description))),i.createElement(te,null,i.createElement(de,{placeholder:e.testArea.typeSentence,onChange:function(e){s(e)},onRecordAudio:function(){console.log("Iniciando gravação de áudio...")}}),i.createElement(re,{placeholder:e.testArea.selectPersona,options:d,onSelect:f}),i.createElement(re,{placeholder:e.testArea.selectPresset,options:m,onSelect:f}),i.createElement("button",{onClick:function(){console.log("Pesquisa: ",l),r({message:"Você precisa seguir algumas etapas importantes para ter um chatbot perfeito. Primeiro, defina claramente o objetivo do seu chatbot. Em seguida, crie uma mensagem de saudação cativante para atrair a atenção dos usuários. Não se esqueça de pedir feedbacks para melhorar constantemente o desempenho do seu chatbot. Além disso, construa um fluxo de conversa simples e utilize respostas curtas para manter a interação rápida e eficiente. Também é importante incorporar inteligência artificial para tornar o seu chatbot especialista em determinado assunto. Teste o seu bot antes de lançá-lo e personalize-o de acordo com as necessidades dos usuários. Por fim, direcione os usuários para um atendimento humano quando necessário. Seguindo essas dicas, você estará no caminho certo para ter um chatbot perfeito!"})}},i.createElement(p.PiWaveformBold,null)," ",e.buttons.test)),""===t.message?i.createElement(V,{icon:i.createElement(c.FaList,null),title:e.testArea.emptyState.title,description:e.testArea.emptyState.description,activeButton:!1}):i.createElement(ae,null,i.createElement("div",{className:"icon"},i.createElement(u.MdPerson2,null)),i.createElement("div",{className:"text"},t.message)))},ue=function(e){var n=r.useRouteMatch(),t=r.useLocation().pathname,o=r.useHistory(),l=q(e.language),s=a.useMemo((function(){return t.split("/")[5]||"files"}),[t]);return i.createElement(i.Fragment,null,i.createElement(y,{value:s,onChange:function(e){return o.push(n.url+"/"+e)}},i.createElement(E,{value:"files"},l.files),i.createElement(E,{value:"test"},l.test)),i.createElement(a.Suspense,{fallback:e.loading},i.createElement(r.Switch,null,i.createElement(r.Route,{path:""+n.path,exact:!0,component:$}),i.createElement(r.Route,{path:n.path+"/files",component:$}),i.createElement(r.Route,{path:n.path+"/test",component:pe}))))};exports.Code7=function(e){return i.createElement(ue,Object.assign({},e))};
1
+ "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var n,t,a=require("react"),i=e(a),r=require("react-router-dom"),o=e(require("prop-types")),l=e(require("classcat")),s=e(require("styled-components")),c=require("react-icons/fa"),d=e(require("unorm")),p=require("react-icons/pi"),u=require("react-icons/md");function m(){return(m=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e}).apply(this,arguments)}function f(e,n){if(null==e)return{};var t,a,i={},r=Object.keys(e);for(a=0;a<r.length;a++)n.indexOf(t=r[a])>=0||(i[t]=e[t]);return i}function g(e,n){return n||(n=e.slice(0)),e.raw=n,e}var h=s.ul(n||(n=g(["\n width: max-content;\n display: flex;\n align-items: center;\n border-bottom: 1px solid var(--neutral-1);\n"]))),b=s.li(t||(t=g(["\n padding: 12px;\n color: var(--neutral-3);\n font-size: 0.875rem;\n font-weight: normal;\n position: relative;\n cursor: pointer;\n\n svg {\n fill: var(--neutral-3) !important;\n margin-left: 8px;\n }\n\n &.active {\n color: var(--primary-700-light);\n\n svg {\n fill: var(--primary-700-light) !important;\n }\n\n ::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 2px;\n background-color: var(--primary-700-light);\n }\n }\n\n &:not(:last-child) {\n margin-right: 8px;\n }\n"]))),v=["active","children"],x=["children","value","onChange"],E=function(e){var n=e.active,t=e.children,a=f(e,v);return i.createElement(b,Object.assign({className:l({active:n})},a),t)};E.propTypes={children:o.oneOfType([o.string,o.element,o.node]).isRequired,onChange:o.func,value:o.string,active:o.bool},E.defaultProps={onChange:function(){},value:"",active:!1};var y=function(e){var n=e.children,t=e.value,a=e.onChange,r=f(e,x),o=i.Children.map(n,(function(e){var n,r,o;return i.isValidElement(e)?Array.isArray(null==(n=e.props)?void 0:n.children)?i.cloneElement(e,{active:(null==(o=e.props)?void 0:o.value)===t,value:t,onChange:a}):i.cloneElement(e,{active:(null==(r=e.props)?void 0:r.value)===t,onClick:function(){var n;return a(null==(n=e.props)?void 0:n.value)}}):null}));return i.createElement(h,Object.assign({},r),o)};y.propTypes={children:o.node.isRequired,value:o.oneOfType([o.string,o.number]).isRequired,onChange:o.func.isRequired};var A,k,S,w,C,P,N={files:"Files",test:"Test",fileArea:{description:"bla bla bla bla bla",fileName:"File name",presset:"Presset",actions:"Actions",search:"Search",fileUpload:"File upload",emptyState:{title:"No data",description:"bla bla bla bla bla"},modal:{descriptionUpload:"Drag and drop files here or",chooseFile:"Choose a file"}},buttons:{cancel:"Cancel",send:"Send",delete:"Delete",test:"Test"},testArea:{description:"bla bla bla bla bla",typeSentence:"Type a sentence",selectPersona:"Select a Persona",selectPresset:"Select a presset",emptyState:{title:"No data for analysis",description:'Do a search, click the "Test" button.'}}},q=function(e){return{en:N,"pt-br":{files:"Arquivos",test:"Teste",fileArea:m({},N.fileArea,{fileName:"Nome do arquivo",presset:"Presset",actions:"Ações",search:"Pesquisar",fileUpload:"Upload de arquivo",emptyState:m({},N.fileArea.emptyState,{title:"Sem dados"}),modal:m({},N.fileArea.modal,{descriptionUpload:"Arraste e solte os arquivos aqui ou",chooseFile:"Escolha um arquivo"})}),buttons:m({},N.buttons,{cancel:"Cancelar",send:"Enviar",delete:"Excluir",test:"Testar"}),testArea:m({},N.testArea,{description:"Digite uma frase para testar a inteligência artificial.",typeSentence:"Digite uma frase",selectPersona:"Selecione uma Persona",selectPresset:"Selecione uma predefinição",emptyState:m({},N.testArea.emptyState,{title:"Sem dados para análise",description:'Faça uma pesquisa, clique no botão "Teste".'})})},es:m({},N,{files:"Archivos",test:"Prueba",fileArea:m({},N.fileArea,{fileName:"Nombre del archivo",presset:"Presset",actions:"Acciones",search:"Buscar",fileUpload:"Carga de archivos",emptyState:m({},N.fileArea.emptyState,{title:"Sin datos"}),modal:m({},N.fileArea.modal,{descriptionUpload:"Arrastre y suelte los archivos aquí o",chooseFile:"Elegir un archivo"})}),buttons:m({},N.buttons,{cancel:"Cancelar",send:"Enviar",delete:"Eliminar",test:"Probar"}),testArea:m({},N.testArea,{description:"bla bla bla bla bla",typeSentence:"Escribe una oración",selectPersona:"Seleccionar una Persona",selectPresset:"Seleccionar una configuración preestablecida",emptyState:m({},N.testArea.emptyState,{title:"Sin datos para el análisis",description:'Realiza una búsqueda, haz clic en el botón "Prueba".'})})})}[e]||N},j=s.div(A||(A=g(["\n .tag {\n padding: 4px 8px 4px 8px;\n background: #C7F9ED;\n border-radius: 4px;\n }\n\n .tags {\n display: flex;\n justify-content: left;\n gap: 4px;\n }\n\n .divDelete {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n }\n\n .buttonDelete {\n color: #5b0a1f;\n background: #fae0d2;\n padding: 12px 20px;\n border-radius: 4px;\n }\n\n .buttonDelete:hover {\n background: #f5bba7;\n }\n"]))),B=s.div(k||(k=g(["\n display: flex;\n flex-direction: column;\n\n .infos {\n display: flex;\n flex-direction: column;\n padding: 14px 0;\n\n h2 {\n font-size: 20px\n }\n\n p {\n font-size: 14px\n }\n }\n\n .actions {\n display: flex;\n justify-content: space-between;\n padding-bottom: 14px;\n\n button {\n background: #102693;\n padding: 10px 20px;\n color: white;\n border-radius: 4px;\n }\n }\n\n"]))),F=s.div(S||(S=g(["\n width: 100%;\n height: max-content;\n min-height: 50px;\n position: relative;\n"]))),z=s.table(w||(w=g(["\n font-size: 14px;\n line-height: 143%;\n color: black;\n width: 100%;\n border-collapse: collapse;\n border-radius: 4px;\n\n th {\n font-weight: 600;\n font-size: 14px;\n line-height: 143%;\n letter-spacing: 0.018em;\n color: #5A5D68;\n text-align: left;\n padding: 8px;\n border-radius: 4px;\n }\n\n thead tr {\n background: #dadce3;\n }\n\n tbody tr {\n border: 1px solid #dadce3;\n }\n\n &.small td {\n padding: 4px;\n }\n\n &.medium td {\n padding: 8px;\n }\n\n &.large td {\n padding: 16px;\n }\n"]))),T=s.div(C||(C=g(["\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: #f3f5f961;\n"]))),O=s.span(P||(P=g(["\n display: inline-block;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &.spinner--sm {\n width: 24px;\n height: 24px;\n }\n\n &.spinner--md {\n width: 32px;\n height: 32px;\n }\n\n &.spinner--lg {\n width: 60px;\n height: 60px;\n }\n\n span {\n box-sizing: border-box;\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n margin: 8px;\n border: 4px solid #fff;\n border-radius: 50%;\n animation: rotateSpinner 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n border-color: "," transparent transparent\n transparent;\n }\n\n & span:nth-child(1) {\n animation-delay: -0.45s;\n }\n\n & span:nth-child(2) {\n animation-delay: -0.3s;\n }\n\n & span:nth-child(3) {\n animation-delay: -0.15s;\n }\n\n @keyframes rotateSpinner {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n"])),(function(e){return"var(--"+e.color+")"})),_=function(e){var n=e.color,t=e.size;return i.createElement(O,{color:void 0===n?"neutral-3":n,className:l(["spinner--"+(void 0===t?"md":t),e.className])},i.createElement("span",null),i.createElement("span",null),i.createElement("span",null),i.createElement("span",null))},R=["size","children","isLoading","className"],D=a.forwardRef((function(e,n){var t=e.size,a=void 0===t?"medium":t,r=e.children,o=e.isLoading,s=void 0!==o&&o,c=e.className,d=void 0===c?"":c,p=f(e,R);return i.createElement(F,{className:d},s?i.createElement(T,null,i.createElement(_,null)):null,i.createElement(z,Object.assign({className:l([a]),ref:n},p),r))}));D.propTypes={children:o.node.isRequired,className:o.string,size:o.oneOf(["small","medium","large"]),isLoading:o.bool};var I,U=function(e){var n=e.setFiles,t=e.initialFiles;return i.createElement("div",{style:{position:"relative",width:"300px"}},i.createElement("input",{type:"text",onChange:function(e){return function(e){var a=e.target.value.trim(),i=d.nfkd(a).toLowerCase(),r=t.filter((function(e){return d.nfkd(e.name).toLowerCase().includes(i)}));n(""!==a?r:t)}(e)},placeholder:e.placeholder,style:{paddingLeft:"40px",borderRadius:"5px",border:"1px solid #ccc",height:"40px",width:"100%"}}),i.createElement("div",{style:{position:"absolute",top:"10px",left:"10px",pointerEvents:"none"}},i.createElement(c.FaSearch,null)))},L=s.div(I||(I=g(["\n width: 100%;\n display: flex;\n justify-content: center;\n padding: 24px 0;\n height: 193px;\n\n background: ",";\n background-position: top, right, bottom, left;\n background-repeat: repeat-x, repeat-y;\n background-size: 40px 1px, 1px 40px;\n background-color: ",";\n\n & .content {\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n & > .icon {\n background-color: ",";\n border-radius: 16px;\n width: 145px;\n height: 145px;\n\n display: flex;\n justify-content: center;\n\n & svg {\n width: 100%;\n height: 70%;\n margin: 20px;\n }\n }\n\n & .description {\n max-width: 600px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n padding: 8px 0 8px 24px;\n\n .button-add {\n cursor: pointer;\n }\n\n .start-icon {\n display: flex;\n align-items: center;\n }\n }\n }\n"])),(function(e){return e.hasBorder&&"linear-gradient(\n to right,\n #dadce3 50%,\n rgba(255, 255, 255, 0) 0%\n ),\n linear-gradient(#dadce3 50%, rgba(255, 255, 255, 0) 0%),\n linear-gradient(to right, #dadce3 50%, rgba(255, 255, 255, 0) 0%),\n linear-gradient(#dadce3 50%, rgba(255, 255, 255, 0) 0%)"}),(function(e){return e.backgroundColor}),(function(e){return e.backgroundIcon})),M=["icon","title","description","activeButton","iconButton","descriptionButton","widthButton","button","backgroundIcon","backgroundColor","hasBorder"],V=function(e){var n=e.icon,t=e.title,a=e.description,r=e.activeButton,o=e.descriptionButton,l=e.button,s=e.backgroundIcon,c=e.backgroundColor,d=e.hasBorder,p=f(e,M);return i.createElement(L,Object.assign({backgroundIcon:s,backgroundColor:c,hasBorder:d},p),i.createElement("div",{className:"content"},i.createElement("div",{className:"icon"},n),i.createElement("div",{className:"description"},i.createElement("h5",null," ",t),i.createElement("p",null,a),r?i.createElement("button",null,o):null,l)))};V.propTypes={icon:o.oneOfType([o.string,o.element]),title:o.string,description:o.string,activeButton:o.bool,iconButton:o.element,descriptionButton:o.string,widthButton:o.string,button:o.element,backgroundIcon:o.string,backgroundColor:o.string,hasBorder:o.bool},V.defaultProps={icon:"",title:"",description:"",activeButton:!1,descriptionButton:"",widthButton:"140px",backgroundIcon:"var(--neutral-0)",backgroundColor:"var(--absolute-white)",hasBorder:!0};var H,G,W,J,K,Q,X,Y,Z,$=function(){var e=a.useState([]),n=e[0],t=e[1],o=a.useState([]),l=o[0],s=o[1],d=r.useLocation().pathname.split("/")[4],p=q("pt-br");return a.useEffect((function(){t([{name:"Documentação conceitual Code7_v3",tags:"boteria, code7"},{name:"PAE_Programa_Apoio_ao_Empregado",tags:"pae, vr"},{name:"Vidalink",tags:"vidalink, vr"},{name:"[GUIA PRÁTICO] Como criar o chatbot perfeito",tags:"ebook, code7"}]),s([{name:"Documentação conceitual Code7_v3",tags:"boteria, code7"},{name:"PAE_Programa_Apoio_ao_Empregado",tags:"pae, vr"},{name:"Vidalink",tags:"vidalink, vr"},{name:"[GUIA PRÁTICO] Como criar o chatbot perfeito",tags:"ebook, code7"}])}),[]),a.useEffect((function(){console.log("files, id, t: ",n,d,p)}),[n]),i.createElement(j,null,i.createElement(j,null,i.createElement(B,null,i.createElement("div",{className:"infos"},i.createElement("h2",null,p.files),i.createElement("p",null,p.fileArea.description)),i.createElement("div",{className:"actions"},i.createElement(U,{placeholder:p.fileArea.search,setFiles:t,initialFiles:l}),i.createElement("button",null,i.createElement(c.FaUpload,null)," ",p.fileArea.fileUpload))),0===n.length?i.createElement(V,{icon:i.createElement(c.FaList,null),title:p.fileArea.emptyState.title,description:p.fileArea.emptyState.description,activeButton:!0,iconButton:i.createElement(c.FaPlus,{style:{width:"15px",height:"15px"}}),descriptionButton:p.fileArea.modal.chooseFile,widthButton:"230px"}):i.createElement(D,null,i.createElement("thead",null,i.createElement("tr",null,i.createElement("th",{className:"th_file_name"},p.fileArea.fileName),i.createElement("th",{className:"th_pressets"},p.fileArea.presset),i.createElement("th",{className:"th_actions"},p.fileArea.actions))),i.createElement("tbody",null,n.map((function(e){return i.createElement("tr",null,i.createElement("td",null,e.name),i.createElement("td",{className:"tags",dangerouslySetInnerHTML:{__html:(n=e.tags,t="",t+=n.split(",").map((function(e){return"<p class='tag'>"+e+"</p>"})).join(""))}}),i.createElement("td",null,i.createElement("div",{className:"divDelete"},i.createElement("button",{className:"buttonDelete"},p.buttons.delete))));var n,t}))))))},ee=s.div(H||(H=g(["\n\n"]))),ne=s.div(G||(G=g(["\n display: flex;\n flex-direction: column;\n .infos {\n display: flex;\n flex-direction: column;\n padding: 14px 0;\n\n h2 {\n font-size: 20px\n }\n\n p {\n font-size: 14px\n }\n }\n"]))),te=s.div(W||(W=g(["\n display: flex;\n justify-content: space-between;\n margin-bottom: 10px;\n\n button {\n background: #102693;\n padding: 10px 20px;\n color: white;\n border-radius: 4px;\n width: 190px;\n height: 40px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n svg {\n width: 23px;\n height: 23px;\n }\n }\n"]))),ae=s.div(J||(J=g(["\n display: flex;\n justify-content: left;\n background: #F3F5F9;\n padding: 15px;\n border-radius: 5px;\n margin-top: 15px;\n\n .text{\n margin-left: 5px;\n font-size: 14px;\n }\n\n .icon {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 5px;\n\n svg {\n width: 35px;\n height: 35px;\n }\n }\n\n"]))),ie=s.div(K||(K=g(["\n position: relative;\n width: 50%;\n margin-right: 5px;\n select {\n padding: 12px;\n border-radius: 4px;\n border: 1px solid #979AA5;\n width: 100%;\n height: 40px;\n \n &:focus {\n outline: none;\n box-shadow: 0 0 0 3px #6690ff;\n }\n }\n"]))),re=function(e){var n=e.options,t=e.onSelect,r=e.placeholder,o=a.useState(""),l=o[1];return i.createElement(ie,null,i.createElement("select",{value:o[0],onChange:function(e){var n=e.target.value;l(n),t(n)}},i.createElement("option",{value:"",disabled:!0,hidden:!0},r),n.map((function(e){return i.createElement("option",{key:e.value,value:e.value},e.label)}))))},oe=s.div(Q||(Q=g(["\n position: relative;\n width: 100%;\n margin-right: 5px;\n"]))),le=s.input(X||(X=g(["\n padding-left: 10px;\n padding-right: 40px;\n border-radius: 5px;\n border: 1px solid #ccc;\n height: 40px;\n width: 100%;\n\n &:focus {\n outline: none;\n box-shadow: 0 0 0 3px #6690ff;\n }\n"]))),se=s.div(Y||(Y=g(["\n position: absolute;\n top: 10px;\n right: 10px;\n cursor: pointer;\n"]))),ce=s(c.FaMicrophone)(Z||(Z=g(["\n pointer-events: none;\n"]))),de=function(e){var n=e.onChange,t=e.onRecordAudio;return i.createElement(oe,null,i.createElement(le,{type:"text",onChange:function(e){return n(e.target.value)},placeholder:e.placeholder}),i.createElement(se,{onClick:t},i.createElement(ce,null)))},pe=function(){var e=q("pt-br"),n=a.useState({message:""}),t=n[0],r=n[1],o=a.useState(""),l=o[0],s=o[1],d=[{description:"Seriedade e profundidade ao explicar. Usa linguagem acadêmica e é preciso em temas específicos da área.",name:"College professor"},{description:"Abordagem descontraída, direto ao ponto. Linguagem simples, exemplos práticos para facilitar compreensão rápida.",name:"School Teacher"},{description:"Estilo descontraído, senso de humor único. Piadas e trocadilhos até em assuntos sérios.",name:"Humorist"},{description:"Postura centrada, comunicação direta e focada em resultados. Prioriza eficiência e precisão.",name:"Military"},{description:"Estilo único e carismático. Usa linguagem moderna, compartilha informações cativantes de forma descontraída.",name:"Digital Influencer"}].map((function(e){return{label:e.name,value:e.description}})),m=["pae","boteria","vr","code7","vidalink"].map((function(e){return{label:e,value:e}})),f=function(e){console.log(e)};return i.createElement(ee,null,i.createElement(ne,null,i.createElement("div",{className:"infos"},i.createElement("h2",null,e.test),i.createElement("p",null,e.testArea.description))),i.createElement(te,null,i.createElement(de,{placeholder:e.testArea.typeSentence,onChange:function(e){s(e)},onRecordAudio:function(){console.log("Iniciando gravação de áudio...")}}),i.createElement(re,{placeholder:e.testArea.selectPersona,options:d,onSelect:f}),i.createElement(re,{placeholder:e.testArea.selectPresset,options:m,onSelect:f}),i.createElement("button",{onClick:function(){console.log("Pesquisa: ",l),r({message:"Você precisa seguir algumas etapas importantes para ter um chatbot perfeito. Primeiro, defina claramente o objetivo do seu chatbot. Em seguida, crie uma mensagem de saudação cativante para atrair a atenção dos usuários. Não se esqueça de pedir feedbacks para melhorar constantemente o desempenho do seu chatbot. Além disso, construa um fluxo de conversa simples e utilize respostas curtas para manter a interação rápida e eficiente. Também é importante incorporar inteligência artificial para tornar o seu chatbot especialista em determinado assunto. Teste o seu bot antes de lançá-lo e personalize-o de acordo com as necessidades dos usuários. Por fim, direcione os usuários para um atendimento humano quando necessário. Seguindo essas dicas, você estará no caminho certo para ter um chatbot perfeito!"})}},i.createElement(p.PiWaveformBold,null)," ",e.buttons.test)),""===t.message?i.createElement(V,{icon:i.createElement(c.FaList,null),title:e.testArea.emptyState.title,description:e.testArea.emptyState.description,activeButton:!1}):i.createElement(ae,null,i.createElement("div",{className:"icon"},i.createElement(u.MdPerson2,null)),i.createElement("div",{className:"text"},t.message)))},ue=function(e){var n=r.useRouteMatch(),t=r.useLocation().pathname,o=r.useHistory(),l=q(e.language),s=a.useMemo((function(){return t.split("/")[5]||"files"}),[t]);return i.createElement(i.Fragment,null,i.createElement(y,{value:s,onChange:function(e){return o.push(n.url+"/"+e)}},i.createElement(E,{value:"files"},l.files),i.createElement(E,{value:"test"},l.test)),i.createElement(a.Suspense,{fallback:e.loading},i.createElement(r.Switch,null,i.createElement(r.Route,{path:""+n.path,exact:!0,component:$}),i.createElement(r.Route,{path:n.path+"/files",component:$}),i.createElement(r.Route,{path:n.path+"/test",component:pe}))))};exports.Code7=function(e){return i.createElement(ue,Object.assign({},e))};
2
2
  //# sourceMappingURL=code7-leia.cjs.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"code7-leia.cjs.production.min.js","sources":["../src/components/Tabs/styles.tsx","../src/components/Tabs/index.tsx","../src/utils/getLanguage.tsx","../src/components/FileArea/styles.tsx","../src/components/FileArea/components/Table/styles.tsx","../src/components/FileArea/components/Spinner/styles.tsx","../src/components/FileArea/components/Spinner/index.tsx","../src/components/FileArea/components/Table/index.tsx","../src/components/FileArea/components/Search/index.tsx","../src/components/EmptyState/styles.tsx","../src/components/EmptyState/index.tsx","../src/components/FileArea/index.tsx","../src/components/TestArea/styles.tsx","../src/components/TestArea/components/Select/styles.tsx","../src/components/TestArea/components/Select/index.tsx","../src/components/TestArea/components/InputTest/styles.tsx","../src/components/TestArea/components/InputTest/index.tsx","../src/components/TestArea/index.tsx","../src/Leia.tsx","../src/index.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { ReactNode } from 'react';\n\ninterface TabProps {\n children: ReactNode;\n}\n\ninterface OptionProps {\n children: ReactNode;\n onClick: () => void;\n}\n\nexport const TabsPane = styled.ul`\n width: max-content;\n display: flex;\n align-items: center;\n border-bottom: 1px solid var(--neutral-1);\n`;\n\nexport const Tab = styled.li<TabProps>`\n padding: 12px;\n color: var(--neutral-3);\n font-size: 0.875rem;\n font-weight: normal;\n position: relative;\n cursor: pointer;\n\n svg {\n fill: var(--neutral-3) !important;\n margin-left: 8px;\n }\n\n &.active {\n color: var(--primary-700-light);\n\n svg {\n fill: var(--primary-700-light) !important;\n }\n\n ::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 2px;\n background-color: var(--primary-700-light);\n }\n }\n\n &:not(:last-child) {\n margin-right: 8px;\n }\n`;\n\nexport const DropdownContainer = styled.div`\n position: absolute;\n left: 0px;\n top: 40px;\n display: flex;\n flex-direction: column;\n\n background: #ffffff;\n\n border: 1px solid #979aa5;\n box-sizing: border-box;\n box-shadow: 0px 6px 12px -6px rgba(24, 39, 75, 0.12),\n 0px 8px 24px -4px rgba(24, 39, 75, 0.08);\n border-radius: 4px;\n padding: 8px;\n z-index: 2;\n`;\n\nexport const Option = styled.div<OptionProps>`\n padding: 8px;\n font-size: 14px;\n border-radius: 4px;\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover {\n background-color: var(--primary-800-light);\n color: white;\n }\n`;\n","import React, { ReactNode } from 'react';\nimport PropTypes from 'prop-types';\nimport cc from 'classcat';\n\nimport * as S from './styles';\n\ninterface TabProps {\n children: ReactNode;\n active?: boolean;\n}\n\ninterface ITabsProps {\n children: ReactNode;\n value: string | number;\n onChange: (e: any) => void;\n active?: boolean;\n}\n\nexport const Tab = ({ active, children, ...rest }: TabProps) => {\n return (\n <S.Tab className={cc({ active })} {...rest}>\n {children}\n </S.Tab>\n );\n};\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]).isRequired,\n onChange: PropTypes.func,\n value: PropTypes.string,\n active: PropTypes.bool,\n};\n\nTab.defaultProps = {\n onChange: () => {},\n value: '',\n active: false,\n};\n\nexport const Tabs = ({ children: childrenProp, value, onChange, ...rest }: ITabsProps) => {\n const children = React.Children.map(childrenProp, (child) => {\n if (!React.isValidElement(child)) {\n return null;\n }\n\n if (Array.isArray(child.props?.children)) {\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n value,\n onChange,\n });\n }\n\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n onClick: () => onChange(child.props?.value),\n });\n });\n\n return <S.TabsPane {...rest}>{children}</S.TabsPane>;\n};\n\nTabs.propTypes = {\n children: PropTypes.node.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n onChange: PropTypes.func.isRequired,\n};\n","\nimport { Language } from '../interface/Language'\n\nconst defaultLanguage: Language = {\n files: 'Files',\n test: 'Test',\n fileArea: {\n description: 'bla bla bla bla bla',\n fileName: 'File name',\n presset: 'Presset',\n actions: 'Actions',\n search: 'Search',\n fileUpload: 'File upload',\n emptyState: {\n title: 'No data',\n description: 'bla bla bla bla bla',\n },\n modal: {\n descriptionUpload: 'Drag and drop files here or',\n chooseFile: 'Choose a file',\n },\n },\n buttons: {\n cancel: 'Cancel',\n send: 'Send',\n delete: 'Delete',\n test: 'Test',\n },\n testArea: {\n description: 'bla bla bla bla bla',\n typeSentence: 'Type a sentence',\n selectPersona: 'Select a Persona',\n selectPresset: 'Select a presset',\n emptyState: {\n title: 'No data for analysis',\n description: 'Do a search, click the \"Test\" button.',\n },\n },\n};\n\nexport const getLanguage = (language: keyof Record<'en' | 'pt-br' | 'es', Language>): Language => {\n const languages = {\n en: defaultLanguage,\n 'pt-br': {\n files: 'Arquivos',\n test: 'Teste',\n fileArea: {\n ...defaultLanguage.fileArea,\n fileName: 'Nome do arquivo',\n presset: 'Presset',\n actions: 'Ações',\n search: 'Pesquisar',\n fileUpload: 'Upload de arquivo',\n emptyState: {\n ...defaultLanguage.fileArea.emptyState,\n title: 'Sem dados',\n },\n modal: {\n ...defaultLanguage.fileArea.modal,\n descriptionUpload: 'Arraste e solte os arquivos aqui ou',\n chooseFile: 'Escolha um arquivo',\n },\n },\n buttons: {\n ...defaultLanguage.buttons,\n cancel: 'Cancelar',\n send: 'Enviar',\n delete: 'Excluir',\n test: 'Testar',\n },\n testArea: {\n ...defaultLanguage.testArea,\n description: 'Digite uma frase para testar a inteligência artificial.',\n typeSentence: 'Digite uma frase',\n selectPersona: 'Selecione uma Persona',\n selectPresset: 'Selecione uma predefinição',\n emptyState: {\n ...defaultLanguage.testArea.emptyState,\n title: 'Sem dados para análise',\n description: 'Faça uma pesquisa, clique no botão \"Teste\".',\n },\n },\n },\n es: {\n ...defaultLanguage,\n files: 'Archivos',\n test: 'Prueba',\n fileArea: {\n ...defaultLanguage.fileArea,\n fileName: 'Nombre del archivo',\n presset: 'Presset',\n actions: 'Acciones',\n search: 'Buscar',\n fileUpload: 'Carga de archivos',\n emptyState: {\n ...defaultLanguage.fileArea.emptyState,\n title: 'Sin datos',\n },\n modal: {\n ...defaultLanguage.fileArea.modal,\n descriptionUpload: 'Arrastre y suelte los archivos aquí o',\n chooseFile: 'Elegir un archivo',\n },\n },\n buttons: {\n ...defaultLanguage.buttons,\n cancel: 'Cancelar',\n send: 'Enviar',\n delete: 'Eliminar',\n test: 'Probar',\n },\n testArea: {\n ...defaultLanguage.testArea,\n description: 'bla bla bla bla bla',\n typeSentence: 'Escribe una oración',\n selectPersona: 'Seleccionar una Persona',\n selectPresset: 'Seleccionar una configuración preestablecida',\n emptyState: {\n ...defaultLanguage.testArea.emptyState,\n title: 'Sin datos para el análisis',\n description: 'Realiza una búsqueda, haz clic en el botón \"Prueba\".',\n },\n },\n },\n };\n\n return languages[language] || defaultLanguage;\n};\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n .tag {\n padding: 4px 8px 4px 8px;\n background: #C7F9ED;\n border-radius: 4px;\n }\n\n .tags {\n display: flex;\n justify-content: left;\n gap: 4px;\n }\n\n .divDelete {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n }\n\n .buttonDelete {\n color: #5b0a1f;\n background: #fae0d2;\n padding: 12px 20px;\n border-radius: 4px;\n }\n\n .buttonDelete:hover {\n background: #f5bba7;\n }\n`;\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n\n .infos {\n display: flex;\n flex-direction: column;\n padding: 14px 0;\n\n h2 {\n font-size: 20px\n }\n\n p {\n font-size: 14px\n }\n }\n\n .actions {\n display: flex;\n justify-content: space-between;\n padding-bottom: 14px;\n\n button {\n background: #102693;\n padding: 10px 20px;\n color: white;\n border-radius: 4px;\n }\n }\n\n`\n","import styled from 'styled-components';\n\nexport const TableWrapper = styled.div`\n width: 100%;\n height: max-content;\n min-height: 50px;\n position: relative;\n`;\n\nexport const Table = styled.table`\n font-size: 14px;\n line-height: 143%;\n color: black;\n width: 100%;\n border-collapse: collapse;\n border-radius: 4px;\n\n th {\n font-weight: 600;\n font-size: 14px;\n line-height: 143%;\n letter-spacing: 0.018em;\n color: #5A5D68;\n text-align: left;\n padding: 8px;\n border-radius: 4px;\n }\n\n thead tr {\n background: #dadce3;\n }\n\n tbody tr {\n border: 1px solid #dadce3;\n }\n\n &.small td {\n padding: 4px;\n }\n\n &.medium td {\n padding: 8px;\n }\n\n &.large td {\n padding: 16px;\n }\n`;\n\nexport const TableLoadingWrapper = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: #f3f5f961;\n`;\n","import styled from 'styled-components';\n\nexport const SpinnerWrapper = styled.span`\n display: inline-block;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &.spinner--sm {\n width: 24px;\n height: 24px;\n }\n\n &.spinner--md {\n width: 32px;\n height: 32px;\n }\n\n &.spinner--lg {\n width: 60px;\n height: 60px;\n }\n\n span {\n box-sizing: border-box;\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n margin: 8px;\n border: 4px solid #fff;\n border-radius: 50%;\n animation: rotateSpinner 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n border-color: ${(props) => `var(--${props.color})`} transparent transparent\n transparent;\n }\n\n & span:nth-child(1) {\n animation-delay: -0.45s;\n }\n\n & span:nth-child(2) {\n animation-delay: -0.3s;\n }\n\n & span:nth-child(3) {\n animation-delay: -0.15s;\n }\n\n @keyframes rotateSpinner {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n`;\n","import React from 'react';\nimport cc from 'classcat';\n\nimport * as S from './styles';\n\nimport { SpinnerProps } from '../../../../interface/Table'\n\nconst Spinner: React.FC<SpinnerProps> = ({ color = 'neutral-3', size = 'md', className }) => {\n return (\n <S.SpinnerWrapper\n color={color}\n className={cc([`spinner--${size}`, className])}\n >\n <span />\n <span />\n <span />\n <span />\n </S.SpinnerWrapper>\n );\n};\n\nexport default Spinner;\n","import React, { forwardRef, Ref } from 'react';\nimport PropTypes from 'prop-types';\nimport cc from 'classcat';\n\nimport * as S from './styles';\nimport Spinner from '../Spinner';\n\nimport { TableProps } from '../../../../interface/Table'\n\nconst Table = forwardRef(\n ({ size = 'medium', children, isLoading = false, className = '', ...props }: TableProps, ref: Ref<HTMLTableElement>) => {\n return (\n <S.TableWrapper className={className}>\n {isLoading ? (\n <S.TableLoadingWrapper>\n <Spinner />\n </S.TableLoadingWrapper>\n ) : null}\n <S.Table className={cc([size])} ref={ref} {...props}>\n {children}\n </S.Table>\n </S.TableWrapper>\n );\n }\n);\n\nTable.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n isLoading: PropTypes.bool,\n};\n\nexport default Table;\n","import React from 'react';\nimport unorm from 'unorm';\nimport { FaSearch } from 'react-icons/fa';\nimport type { FileData } from '../../../../interface/FileData'\n\ninterface SearchInputProps {\n placeholder: string;\n initialFiles: FileData[]\n setFiles: React.Dispatch<React.SetStateAction<FileData[]>>;\n}\n\nconst SearchInput: React.FC<SearchInputProps> = ({ placeholder, setFiles, initialFiles }) => {\n\n const searchName = (e: React.ChangeEvent<HTMLInputElement>) => {\n const searchTerm = e.target.value.trim();\n const normalizedSearchTerm = unorm.nfkd(searchTerm).toLowerCase();\n \n const newFiles = initialFiles.filter(file => {\n const normalizedFileName = unorm.nfkd(file.name).toLowerCase();\n return normalizedFileName.includes(normalizedSearchTerm);\n });\n \n setFiles(searchTerm !== '' ? newFiles : initialFiles);\n}\n \n\n return (\n <div style={{ position: 'relative', width: '300px' }}>\n <input\n type=\"text\"\n onChange={(e) => searchName(e)}\n placeholder={placeholder}\n style={{\n paddingLeft: '40px',\n borderRadius: '5px',\n border: '1px solid #ccc',\n height: '40px',\n width: '100%',\n }}\n />\n <div\n style={{\n position: 'absolute',\n top: '10px',\n left: '10px',\n pointerEvents: 'none', \n }}\n >\n <FaSearch />\n </div>\n </div>\n );\n};\n\nexport default SearchInput;\n","import styled from 'styled-components';\n\ninterface ContainerProps {\n hasBorder?: boolean;\n backgroundColor?: string;\n backgroundIcon?: string;\n}\n\nexport const Container = styled.div<ContainerProps>`\n width: 100%;\n display: flex;\n justify-content: center;\n padding: 24px 0;\n height: 193px;\n\n background: ${({ hasBorder }) =>\n hasBorder &&\n `linear-gradient(\n to right,\n #dadce3 50%,\n rgba(255, 255, 255, 0) 0%\n ),\n linear-gradient(#dadce3 50%, rgba(255, 255, 255, 0) 0%),\n linear-gradient(to right, #dadce3 50%, rgba(255, 255, 255, 0) 0%),\n linear-gradient(#dadce3 50%, rgba(255, 255, 255, 0) 0%)`};\n background-position: top, right, bottom, left;\n background-repeat: repeat-x, repeat-y;\n background-size: 40px 1px, 1px 40px;\n background-color: ${({ backgroundColor }) => backgroundColor};\n\n & .content {\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n & > .icon {\n background-color: ${({ backgroundIcon }) => backgroundIcon};\n border-radius: 16px;\n width: 145px;\n height: 145px;\n\n display: flex;\n justify-content: center;\n\n & svg {\n width: 100%;\n height: 70%;\n margin: 20px;\n }\n }\n\n & .description {\n max-width: 600px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n padding: 8px 0 8px 24px;\n\n .button-add {\n cursor: pointer;\n }\n\n .start-icon {\n display: flex;\n align-items: center;\n }\n }\n }\n`;\n","import React, { FC, ReactElement } from 'react';\nimport PropTypes from 'prop-types';\nimport * as S from './styles';\n\ninterface EmptyStateProps {\n icon?: string | ReactElement;\n title?: string;\n description?: string;\n activeButton?: boolean;\n iconButton?: ReactElement;\n descriptionButton?: string;\n widthButton?: string;\n button?: ReactElement;\n backgroundIcon?: string;\n backgroundColor?: string;\n hasBorder?: boolean;\n}\n\nconst EmptyState: FC<EmptyStateProps> = ({\n icon,\n title,\n description,\n activeButton,\n iconButton,\n descriptionButton,\n widthButton,\n button,\n backgroundIcon,\n backgroundColor,\n hasBorder,\n ...rest\n}) => {\n return (\n <S.Container\n backgroundIcon={backgroundIcon}\n backgroundColor={backgroundColor}\n hasBorder={hasBorder}\n {...rest}\n >\n <div className=\"content\">\n <div className=\"icon\">\n {icon}\n </div>\n <div className=\"description\">\n <h5> {title}</h5>\n\n <p>{description}</p>\n\n {activeButton ? (\n <button>\n {descriptionButton}\n </button>\n ) : null}\n\n {button}\n </div>\n </div>\n </S.Container>\n );\n};\n\nEmptyState.propTypes = {\n icon: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n title: PropTypes.string,\n description: PropTypes.string,\n activeButton: PropTypes.bool,\n iconButton: PropTypes.element,\n descriptionButton: PropTypes.string,\n widthButton: PropTypes.string,\n button: PropTypes.element,\n backgroundIcon: PropTypes.string,\n backgroundColor: PropTypes.string,\n hasBorder: PropTypes.bool,\n};\n\nEmptyState.defaultProps = {\n icon: '',\n title: '',\n description: '',\n activeButton: false,\n descriptionButton: '',\n widthButton: '140px',\n backgroundIcon: 'var(--neutral-0)',\n backgroundColor: 'var(--absolute-white)',\n hasBorder: true,\n};\n\nexport default EmptyState;\n","import React, { useEffect, useState} from 'react';\n\nimport { FaUpload, FaList, FaPlus } from 'react-icons/fa';\n\n// import { formatAxios } from '../../utils/formatAxios'\n\nimport { useLocation } from 'react-router-dom';\n\nimport type { FileData } from '../../interface/FileData'\n\nimport { getLanguage } from '../../utils/getLanguage'\n\nimport * as S from './styles';\nimport Table from './components/Table';\nimport Search from './components/Search';\nimport EmptyState from '../EmptyState';\n\nexport const FileArea = () => {\n const [files, setFiles] = useState<FileData[]>([]);\n const [initialFiles, setInitialFiles] = useState<FileData[]>([]);\n const { pathname } = useLocation();\n const id = pathname.split('/')[4]\n const t = getLanguage('pt-br')\n\n useEffect(() => {\n setFiles([\n {\n \"name\": \"Documentação conceitual Code7_v3\",\n \"tags\": \"boteria, code7\"\n },\n {\n \"name\": \"PAE_Programa_Apoio_ao_Empregado\",\n \"tags\": \"pae, vr\"\n },\n {\n \"name\": \"Vidalink\",\n \"tags\": \"vidalink, vr\"\n },\n {\n \"name\": \"[GUIA PRÁTICO] Como criar o chatbot perfeito\",\n \"tags\": \"ebook, code7\"\n }\n ])\n\n setInitialFiles([\n {\n \"name\": \"Documentação conceitual Code7_v3\",\n \"tags\": \"boteria, code7\"\n },\n {\n \"name\": \"PAE_Programa_Apoio_ao_Empregado\",\n \"tags\": \"pae, vr\"\n },\n {\n \"name\": \"Vidalink\",\n \"tags\": \"vidalink, vr\"\n },\n {\n \"name\": \"[GUIA PRÁTICO] Como criar o chatbot perfeito\",\n \"tags\": \"ebook, code7\"\n }\n ])\n }, [])\n\n useEffect(() => {\n console.log('files, id, t: ', files, id, t)\n }, [files])\n\n const presset = (tags: string) => {\n const tagsSplit = tags.split(',');\n let html = '';\n\n html += tagsSplit.map(tag => {\n return `<p class='tag'>${tag}</p>`;\n }).join('');\n\n return html;\n}\n\n const renderFiles = () => { \n return (\n <S.Container>\n <S.Header>\n <div className='infos'>\n <h2>{t.files}</h2>\n <p>{t.fileArea.description}</p>\n </div>\n <div className='actions'>\n <Search placeholder={t.fileArea.search} setFiles={setFiles} initialFiles={initialFiles}></Search>\n <button><FaUpload /> {t.fileArea.fileUpload}</button>\n </div>\n </S.Header>\n {\n files.length === 0 ? (\n <EmptyState\n icon={<FaList></FaList>}\n title={t.fileArea.emptyState.title}\n description={t.fileArea.emptyState.description}\n activeButton\n iconButton={<FaPlus style={{ width: '15px', height: '15px' }} />}\n descriptionButton={t.fileArea.modal.chooseFile}\n widthButton=\"230px\"\n />\n ) : <Table>\n <thead>\n <tr>\n <th className=\"th_file_name\">\n {t.fileArea.fileName}\n </th>\n <th className=\"th_pressets\">\n {t.fileArea.presset}\n </th>\n <th className=\"th_actions\">\n {t.fileArea.actions}\n </th>\n </tr>\n </thead>\n\n <tbody>\n {files.map((object) => (\n <tr>\n <td>{object.name}</td>\n <td className='tags' dangerouslySetInnerHTML={{ __html: presset(object.tags) }} />\n <td>\n <div className='divDelete'>\n <button className='buttonDelete'>{t.buttons.delete}</button>\n </div>\n </td>\n </tr>\n ))}\n </tbody>\n </Table>\n }\n \n </S.Container>\n );\n }\n\n return (\n <S.Container>\n {renderFiles()}\n </S.Container>\n );\n};","import styled from 'styled-components';\n\nexport const Container = styled.div`\n\n`;\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n .infos {\n display: flex;\n flex-direction: column;\n padding: 14px 0;\n\n h2 {\n font-size: 20px\n }\n\n p {\n font-size: 14px\n }\n }\n`\n\nexport const Inputs = styled.div`\n display: flex;\n justify-content: space-between;\n margin-bottom: 10px;\n\n button {\n background: #102693;\n padding: 10px 20px;\n color: white;\n border-radius: 4px;\n width: 190px;\n height: 40px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n svg {\n width: 23px;\n height: 23px;\n }\n }\n`\n\nexport const Result = styled.div`\n display: flex;\n justify-content: left;\n background: #F3F5F9;\n padding: 15px;\n border-radius: 5px;\n margin-top: 15px;\n\n .text{\n margin-left: 5px;\n font-size: 14px;\n }\n\n .icon {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 5px;\n\n svg {\n width: 35px;\n height: 35px;\n }\n }\n\n`","import styled from 'styled-components';\n\nexport const Container = styled.div`\n position: relative;\n width: 50%;\n margin-right: 5px;\n select {\n padding: 12px;\n border-radius: 4px;\n border: 1px solid #979AA5;\n width: 100%;\n height: 40px;\n :active {\n border: 2px #1939b7 solid;\n }\n }\n`;\n","import React, { useState } from 'react';\nimport * as S from './styles';\n\ninterface SelectOption {\n value: string | number;\n label: string;\n}\n\ninterface SelectProps {\n options: SelectOption[];\n onSelect: (value: string | number) => void;\n placeholder?: string;\n}\n\nconst Select: React.FC<SelectProps> = ({ options, onSelect, placeholder }) => {\n const [selectedValue, setSelectedValue] = useState<string | number>('');\n\n const handleSelectChange = (event: React.ChangeEvent<HTMLSelectElement>) => {\n const selectedOption = event.target.value;\n setSelectedValue(selectedOption);\n onSelect(selectedOption);\n };\n\n return (\n <S.Container>\n <select value={selectedValue} onChange={handleSelectChange}>\n <option value=\"\" disabled hidden>\n {placeholder}\n </option>\n {options.map(option => (\n <option key={option.value} value={option.value}>\n {option.label}\n </option>\n ))}\n </select>\n </S.Container>\n );\n};\n\nexport default Select;\n","import styled from 'styled-components';\nimport { FaMicrophone } from 'react-icons/fa';\n\nexport const Container = styled.div`\n position: relative;\n width: 100%;\n margin-right: 5px;\n`;\n\nexport const StyledInput = styled.input`\n padding-left: 10px;\n padding-right: 40px;\n border-radius: 5px;\n border: 1px solid #ccc;\n height: 40px;\n width: 100%;\n\n :active {\n border: 2px #1939b7 solid;\n }\n`;\n\nexport const RecordAudioButton = styled.div`\n position: absolute;\n top: 10px;\n right: 10px;\n cursor: pointer;\n`;\n\nexport const StyledMicrophoneIcon = styled(FaMicrophone)`\n pointer-events: none;\n`;\n","import React from 'react';\nimport * as S from './styles';\n\ninterface InputTestProps {\n placeholder: string;\n onChange: (value: string) => void;\n onRecordAudio: () => void;\n}\n\nconst InputTest: React.FC<InputTestProps> = ({ placeholder, onChange, onRecordAudio }) => {\n return (\n <S.Container>\n <S.StyledInput\n type=\"text\"\n onChange={(e: any) => onChange(e.target.value)}\n placeholder={placeholder}\n />\n <S.RecordAudioButton onClick={onRecordAudio}>\n <S.StyledMicrophoneIcon />\n </S.RecordAudioButton>\n </S.Container>\n );\n};\n\nexport default InputTest;\n","import React, { useState } from 'react';\nimport { getLanguage } from '../../utils/getLanguage'\nimport * as S from './styles';\nimport Select from './components/Select'\nimport InputTest from './components/InputTest'\nimport { PiWaveformBold } from 'react-icons/pi';\nimport { FaList } from 'react-icons/fa';\nimport EmptyState from '../EmptyState';\n// import IconLeia from '../../assets/icon_leia.svg';\nimport { MdPerson2 } from \"react-icons/md\";\n\nexport const TestArea = () => {\n const t = getLanguage('pt-br')\n const [results, setResults] = useState({ \"message\": \"\" });\n const [search, setSearch] = useState('');\n const tags = [\n \"pae\",\n \"boteria\",\n \"vr\",\n \"code7\",\n \"vidalink\"\n ]\n const personas = [\n {\n \"description\": \"Seriedade e profundidade ao explicar. Usa linguagem acadêmica e é preciso em temas específicos da área.\",\n \"name\": \"College professor\"\n },\n {\n \"description\": \"Abordagem descontraída, direto ao ponto. Linguagem simples, exemplos práticos para facilitar compreensão rápida.\",\n \"name\": \"School Teacher\"\n },\n {\n \"description\": \"Estilo descontraído, senso de humor único. Piadas e trocadilhos até em assuntos sérios.\",\n \"name\": \"Humorist\"\n },\n {\n \"description\": \"Postura centrada, comunicação direta e focada em resultados. Prioriza eficiência e precisão.\",\n \"name\": \"Military\"\n },\n {\n \"description\": \"Estilo único e carismático. Usa linguagem moderna, compartilha informações cativantes de forma descontraída.\",\n \"name\": \"Digital Influencer\"\n }\n ]\n\n const optionsPersona = personas.map(persona => {\n return { label: persona.name, value: persona.description }\n })\n\n const optionsPresset = tags.map(tag => {\n return { label: tag, value: tag }\n })\n\n const handleSelect = (value: string | number) => {\n console.log(value);\n };\n\n const handleSearch = (value: string) => {\n setSearch(value);\n };\n\n const handleRecordAudio = () => {\n console.log('Iniciando gravação de áudio...');\n };\n\n const handleTest = () => {\n console.log('Pesquisa: ', search)\n setResults({\n \"message\": \"Você precisa seguir algumas etapas importantes para ter um chatbot perfeito. Primeiro, defina claramente o objetivo do seu chatbot. Em seguida, crie uma mensagem de saudação cativante para atrair a atenção dos usuários. Não se esqueça de pedir feedbacks para melhorar constantemente o desempenho do seu chatbot. Além disso, construa um fluxo de conversa simples e utilize respostas curtas para manter a interação rápida e eficiente. Também é importante incorporar inteligência artificial para tornar o seu chatbot especialista em determinado assunto. Teste o seu bot antes de lançá-lo e personalize-o de acordo com as necessidades dos usuários. Por fim, direcione os usuários para um atendimento humano quando necessário. Seguindo essas dicas, você estará no caminho certo para ter um chatbot perfeito!\"\n })\n };\n\n return (\n <S.Container>\n <S.Header>\n <div className='infos'>\n <h2>{t.test}</h2>\n <p>{t.testArea.description}</p>\n </div>\n </S.Header>\n <S.Inputs>\n <InputTest placeholder={t.testArea.typeSentence} onChange={handleSearch} onRecordAudio={handleRecordAudio} />\n <Select placeholder={t.testArea.selectPersona} options={optionsPersona} onSelect={handleSelect} />\n <Select placeholder={t.testArea.selectPresset} options={optionsPresset} onSelect={handleSelect} />\n <button onClick={handleTest}><PiWaveformBold /> {t.buttons.test}</button>\n </S.Inputs>\n {\n results.message === '' ? (\n <EmptyState\n icon={<FaList></FaList>}\n title={t.testArea.emptyState.title}\n description={t.testArea.emptyState.description}\n activeButton={false}\n />\n ) : <S.Result>\n <div className='icon'>\n <MdPerson2 />\n </div>\n <div className='text'>{results.message}</div>\n </S.Result>\n }\n </S.Container>\n );\n};","import React, { useMemo, Suspense } from 'react';\n\nimport { Route, useLocation, useRouteMatch, useHistory, Switch as SwitchRoute } from 'react-router-dom';\n\nimport type { Props } from './index';\nimport { Tab, Tabs } from './components/Tabs'\n\nimport { getLanguage } from './utils/getLanguage'\n\nimport { FileArea } from './components/FileArea';\nimport { TestArea } from './components/TestArea';\n\nexport const Leia = (props: Props) => {\n const match = useRouteMatch();\n const { pathname } = useLocation();\n const history = useHistory();\n\n const t = getLanguage(props.language)\n\n const activeTab = useMemo(() => {\n return pathname.split('/')[5] || 'files';\n }, [pathname]);\n\n return (\n <>\n <Tabs\n value={activeTab}\n onChange={(value) => history.push(`${match.url}/${value}`)}\n >\n <Tab value=\"files\">{t.files}</Tab>\n <Tab value=\"test\">{t.test}</Tab>\n </Tabs>\n <Suspense fallback={props.loading}>\n <SwitchRoute>\n <Route path={`${match.path}`} exact component={FileArea} />\n <Route path={`${match.path}/files`} component={FileArea} />\n <Route path={`${match.path}/test`} component={TestArea} />\n </SwitchRoute>\n </Suspense>\n </>\n );\n};","import type { PropsWithChildren, ReactElement } from 'react';\nimport React from 'react';\nimport { Leia } from './Leia';\n\nexport type Props = PropsWithChildren<{\n id: string;\n activeTab: string;\n language: \"en\" | \"pt-br\" | \"es\";\n loading: ReactElement\n}>;\n\nexport function Code7(props: Props) {\n return <Leia {...props} />;\n}"],"names":["TabsPane","styled","ul","_templateObject","_taggedTemplateLiteralLoose","Tab","li","_templateObject2","_ref","active","children","rest","_objectWithoutPropertiesLoose","_excluded","React","S","className","cc","propTypes","PropTypes","oneOfType","string","element","node","isRequired","onChange","func","value","bool","defaultProps","Tabs","_ref2","childrenProp","_excluded2","Children","map","child","_child$props2","isValidElement","Array","isArray","_child$props","props","cloneElement","_child$props3","onClick","_child$props4","number","defaultLanguage","files","test","fileArea","description","fileName","presset","actions","search","fileUpload","emptyState","title","modal","descriptionUpload","chooseFile","buttons","cancel","send","delete","testArea","typeSentence","selectPersona","selectPresset","getLanguage","language","en","pt-br","_extends","es","Container","div","Header","TableWrapper","Table","table","TableLoadingWrapper","_templateObject3","SpinnerWrapper","span","color","Spinner","_ref$size","size","_ref$color","forwardRef","ref","_ref$isLoading","isLoading","_ref$className","oneOf","SearchInput","setFiles","initialFiles","style","position","width","type","e","searchTerm","target","trim","normalizedSearchTerm","unorm","nfkd","toLowerCase","newFiles","filter","file","name","includes","searchName","placeholder","paddingLeft","borderRadius","border","height","top","left","pointerEvents","FaSearch","hasBorder","backgroundColor","_ref3","backgroundIcon","EmptyState","icon","activeButton","iconButton","descriptionButton","widthButton","button","FileArea","_useState","useState","_useState2","setInitialFiles","id","useLocation","pathname","split","t","useEffect","tags","console","log","Search","FaUpload","length","FaList","FaPlus","object","dangerouslySetInnerHTML","__html","html","tag","join","Inputs","Result","_templateObject4","Select","options","onSelect","setSelectedValue","event","selectedOption","disabled","hidden","option","key","label","StyledInput","input","RecordAudioButton","StyledMicrophoneIcon","FaMicrophone","InputTest","onRecordAudio","TestArea","message","results","setResults","setSearch","optionsPersona","persona","optionsPresset","handleSelect","PiWaveformBold","MdPerson2","Leia","match","useRouteMatch","history","useHistory","activeTab","useMemo","push","url","Suspense","fallback","loading","SwitchRoute","Route","path","exact","component"],"mappings":"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"}
1
+ {"version":3,"file":"code7-leia.cjs.production.min.js","sources":["../src/components/Tabs/styles.tsx","../src/components/Tabs/index.tsx","../src/utils/getLanguage.tsx","../src/components/FileArea/styles.tsx","../src/components/FileArea/components/Table/styles.tsx","../src/components/FileArea/components/Spinner/styles.tsx","../src/components/FileArea/components/Spinner/index.tsx","../src/components/FileArea/components/Table/index.tsx","../src/components/FileArea/components/Search/index.tsx","../src/components/EmptyState/styles.tsx","../src/components/EmptyState/index.tsx","../src/components/FileArea/index.tsx","../src/components/TestArea/styles.tsx","../src/components/TestArea/components/Select/styles.tsx","../src/components/TestArea/components/Select/index.tsx","../src/components/TestArea/components/InputTest/styles.tsx","../src/components/TestArea/components/InputTest/index.tsx","../src/components/TestArea/index.tsx","../src/Leia.tsx","../src/index.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { ReactNode } from 'react';\n\ninterface TabProps {\n children: ReactNode;\n}\n\ninterface OptionProps {\n children: ReactNode;\n onClick: () => void;\n}\n\nexport const TabsPane = styled.ul`\n width: max-content;\n display: flex;\n align-items: center;\n border-bottom: 1px solid var(--neutral-1);\n`;\n\nexport const Tab = styled.li<TabProps>`\n padding: 12px;\n color: var(--neutral-3);\n font-size: 0.875rem;\n font-weight: normal;\n position: relative;\n cursor: pointer;\n\n svg {\n fill: var(--neutral-3) !important;\n margin-left: 8px;\n }\n\n &.active {\n color: var(--primary-700-light);\n\n svg {\n fill: var(--primary-700-light) !important;\n }\n\n ::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 2px;\n background-color: var(--primary-700-light);\n }\n }\n\n &:not(:last-child) {\n margin-right: 8px;\n }\n`;\n\nexport const DropdownContainer = styled.div`\n position: absolute;\n left: 0px;\n top: 40px;\n display: flex;\n flex-direction: column;\n\n background: #ffffff;\n\n border: 1px solid #979aa5;\n box-sizing: border-box;\n box-shadow: 0px 6px 12px -6px rgba(24, 39, 75, 0.12),\n 0px 8px 24px -4px rgba(24, 39, 75, 0.08);\n border-radius: 4px;\n padding: 8px;\n z-index: 2;\n`;\n\nexport const Option = styled.div<OptionProps>`\n padding: 8px;\n font-size: 14px;\n border-radius: 4px;\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover {\n background-color: var(--primary-800-light);\n color: white;\n }\n`;\n","import React, { ReactNode } from 'react';\nimport PropTypes from 'prop-types';\nimport cc from 'classcat';\n\nimport * as S from './styles';\n\ninterface TabProps {\n children: ReactNode;\n active?: boolean;\n}\n\ninterface ITabsProps {\n children: ReactNode;\n value: string | number;\n onChange: (e: any) => void;\n active?: boolean;\n}\n\nexport const Tab = ({ active, children, ...rest }: TabProps) => {\n return (\n <S.Tab className={cc({ active })} {...rest}>\n {children}\n </S.Tab>\n );\n};\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]).isRequired,\n onChange: PropTypes.func,\n value: PropTypes.string,\n active: PropTypes.bool,\n};\n\nTab.defaultProps = {\n onChange: () => {},\n value: '',\n active: false,\n};\n\nexport const Tabs = ({ children: childrenProp, value, onChange, ...rest }: ITabsProps) => {\n const children = React.Children.map(childrenProp, (child) => {\n if (!React.isValidElement(child)) {\n return null;\n }\n\n if (Array.isArray(child.props?.children)) {\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n value,\n onChange,\n });\n }\n\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n onClick: () => onChange(child.props?.value),\n });\n });\n\n return <S.TabsPane {...rest}>{children}</S.TabsPane>;\n};\n\nTabs.propTypes = {\n children: PropTypes.node.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n onChange: PropTypes.func.isRequired,\n};\n","\nimport { Language } from '../interface/Language'\n\nconst defaultLanguage: Language = {\n files: 'Files',\n test: 'Test',\n fileArea: {\n description: 'bla bla bla bla bla',\n fileName: 'File name',\n presset: 'Presset',\n actions: 'Actions',\n search: 'Search',\n fileUpload: 'File upload',\n emptyState: {\n title: 'No data',\n description: 'bla bla bla bla bla',\n },\n modal: {\n descriptionUpload: 'Drag and drop files here or',\n chooseFile: 'Choose a file',\n },\n },\n buttons: {\n cancel: 'Cancel',\n send: 'Send',\n delete: 'Delete',\n test: 'Test',\n },\n testArea: {\n description: 'bla bla bla bla bla',\n typeSentence: 'Type a sentence',\n selectPersona: 'Select a Persona',\n selectPresset: 'Select a presset',\n emptyState: {\n title: 'No data for analysis',\n description: 'Do a search, click the \"Test\" button.',\n },\n },\n};\n\nexport const getLanguage = (language: keyof Record<'en' | 'pt-br' | 'es', Language>): Language => {\n const languages = {\n en: defaultLanguage,\n 'pt-br': {\n files: 'Arquivos',\n test: 'Teste',\n fileArea: {\n ...defaultLanguage.fileArea,\n fileName: 'Nome do arquivo',\n presset: 'Presset',\n actions: 'Ações',\n search: 'Pesquisar',\n fileUpload: 'Upload de arquivo',\n emptyState: {\n ...defaultLanguage.fileArea.emptyState,\n title: 'Sem dados',\n },\n modal: {\n ...defaultLanguage.fileArea.modal,\n descriptionUpload: 'Arraste e solte os arquivos aqui ou',\n chooseFile: 'Escolha um arquivo',\n },\n },\n buttons: {\n ...defaultLanguage.buttons,\n cancel: 'Cancelar',\n send: 'Enviar',\n delete: 'Excluir',\n test: 'Testar',\n },\n testArea: {\n ...defaultLanguage.testArea,\n description: 'Digite uma frase para testar a inteligência artificial.',\n typeSentence: 'Digite uma frase',\n selectPersona: 'Selecione uma Persona',\n selectPresset: 'Selecione uma predefinição',\n emptyState: {\n ...defaultLanguage.testArea.emptyState,\n title: 'Sem dados para análise',\n description: 'Faça uma pesquisa, clique no botão \"Teste\".',\n },\n },\n },\n es: {\n ...defaultLanguage,\n files: 'Archivos',\n test: 'Prueba',\n fileArea: {\n ...defaultLanguage.fileArea,\n fileName: 'Nombre del archivo',\n presset: 'Presset',\n actions: 'Acciones',\n search: 'Buscar',\n fileUpload: 'Carga de archivos',\n emptyState: {\n ...defaultLanguage.fileArea.emptyState,\n title: 'Sin datos',\n },\n modal: {\n ...defaultLanguage.fileArea.modal,\n descriptionUpload: 'Arrastre y suelte los archivos aquí o',\n chooseFile: 'Elegir un archivo',\n },\n },\n buttons: {\n ...defaultLanguage.buttons,\n cancel: 'Cancelar',\n send: 'Enviar',\n delete: 'Eliminar',\n test: 'Probar',\n },\n testArea: {\n ...defaultLanguage.testArea,\n description: 'bla bla bla bla bla',\n typeSentence: 'Escribe una oración',\n selectPersona: 'Seleccionar una Persona',\n selectPresset: 'Seleccionar una configuración preestablecida',\n emptyState: {\n ...defaultLanguage.testArea.emptyState,\n title: 'Sin datos para el análisis',\n description: 'Realiza una búsqueda, haz clic en el botón \"Prueba\".',\n },\n },\n },\n };\n\n return languages[language] || defaultLanguage;\n};\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n .tag {\n padding: 4px 8px 4px 8px;\n background: #C7F9ED;\n border-radius: 4px;\n }\n\n .tags {\n display: flex;\n justify-content: left;\n gap: 4px;\n }\n\n .divDelete {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n }\n\n .buttonDelete {\n color: #5b0a1f;\n background: #fae0d2;\n padding: 12px 20px;\n border-radius: 4px;\n }\n\n .buttonDelete:hover {\n background: #f5bba7;\n }\n`;\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n\n .infos {\n display: flex;\n flex-direction: column;\n padding: 14px 0;\n\n h2 {\n font-size: 20px\n }\n\n p {\n font-size: 14px\n }\n }\n\n .actions {\n display: flex;\n justify-content: space-between;\n padding-bottom: 14px;\n\n button {\n background: #102693;\n padding: 10px 20px;\n color: white;\n border-radius: 4px;\n }\n }\n\n`\n","import styled from 'styled-components';\n\nexport const TableWrapper = styled.div`\n width: 100%;\n height: max-content;\n min-height: 50px;\n position: relative;\n`;\n\nexport const Table = styled.table`\n font-size: 14px;\n line-height: 143%;\n color: black;\n width: 100%;\n border-collapse: collapse;\n border-radius: 4px;\n\n th {\n font-weight: 600;\n font-size: 14px;\n line-height: 143%;\n letter-spacing: 0.018em;\n color: #5A5D68;\n text-align: left;\n padding: 8px;\n border-radius: 4px;\n }\n\n thead tr {\n background: #dadce3;\n }\n\n tbody tr {\n border: 1px solid #dadce3;\n }\n\n &.small td {\n padding: 4px;\n }\n\n &.medium td {\n padding: 8px;\n }\n\n &.large td {\n padding: 16px;\n }\n`;\n\nexport const TableLoadingWrapper = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: #f3f5f961;\n`;\n","import styled from 'styled-components';\n\nexport const SpinnerWrapper = styled.span`\n display: inline-block;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &.spinner--sm {\n width: 24px;\n height: 24px;\n }\n\n &.spinner--md {\n width: 32px;\n height: 32px;\n }\n\n &.spinner--lg {\n width: 60px;\n height: 60px;\n }\n\n span {\n box-sizing: border-box;\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n margin: 8px;\n border: 4px solid #fff;\n border-radius: 50%;\n animation: rotateSpinner 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n border-color: ${(props) => `var(--${props.color})`} transparent transparent\n transparent;\n }\n\n & span:nth-child(1) {\n animation-delay: -0.45s;\n }\n\n & span:nth-child(2) {\n animation-delay: -0.3s;\n }\n\n & span:nth-child(3) {\n animation-delay: -0.15s;\n }\n\n @keyframes rotateSpinner {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n`;\n","import React from 'react';\nimport cc from 'classcat';\n\nimport * as S from './styles';\n\nimport { SpinnerProps } from '../../../../interface/Table'\n\nconst Spinner: React.FC<SpinnerProps> = ({ color = 'neutral-3', size = 'md', className }) => {\n return (\n <S.SpinnerWrapper\n color={color}\n className={cc([`spinner--${size}`, className])}\n >\n <span />\n <span />\n <span />\n <span />\n </S.SpinnerWrapper>\n );\n};\n\nexport default Spinner;\n","import React, { forwardRef, Ref } from 'react';\nimport PropTypes from 'prop-types';\nimport cc from 'classcat';\n\nimport * as S from './styles';\nimport Spinner from '../Spinner';\n\nimport { TableProps } from '../../../../interface/Table'\n\nconst Table = forwardRef(\n ({ size = 'medium', children, isLoading = false, className = '', ...props }: TableProps, ref: Ref<HTMLTableElement>) => {\n return (\n <S.TableWrapper className={className}>\n {isLoading ? (\n <S.TableLoadingWrapper>\n <Spinner />\n </S.TableLoadingWrapper>\n ) : null}\n <S.Table className={cc([size])} ref={ref} {...props}>\n {children}\n </S.Table>\n </S.TableWrapper>\n );\n }\n);\n\nTable.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n isLoading: PropTypes.bool,\n};\n\nexport default Table;\n","import React from 'react';\nimport unorm from 'unorm';\nimport { FaSearch } from 'react-icons/fa';\nimport type { FileData } from '../../../../interface/FileData'\n\ninterface SearchInputProps {\n placeholder: string;\n initialFiles: FileData[]\n setFiles: React.Dispatch<React.SetStateAction<FileData[]>>;\n}\n\nconst SearchInput: React.FC<SearchInputProps> = ({ placeholder, setFiles, initialFiles }) => {\n\n const searchName = (e: React.ChangeEvent<HTMLInputElement>) => {\n const searchTerm = e.target.value.trim();\n const normalizedSearchTerm = unorm.nfkd(searchTerm).toLowerCase();\n \n const newFiles = initialFiles.filter(file => {\n const normalizedFileName = unorm.nfkd(file.name).toLowerCase();\n return normalizedFileName.includes(normalizedSearchTerm);\n });\n \n setFiles(searchTerm !== '' ? newFiles : initialFiles);\n}\n \n\n return (\n <div style={{ position: 'relative', width: '300px' }}>\n <input\n type=\"text\"\n onChange={(e) => searchName(e)}\n placeholder={placeholder}\n style={{\n paddingLeft: '40px',\n borderRadius: '5px',\n border: '1px solid #ccc',\n height: '40px',\n width: '100%',\n }}\n />\n <div\n style={{\n position: 'absolute',\n top: '10px',\n left: '10px',\n pointerEvents: 'none', \n }}\n >\n <FaSearch />\n </div>\n </div>\n );\n};\n\nexport default SearchInput;\n","import styled from 'styled-components';\n\ninterface ContainerProps {\n hasBorder?: boolean;\n backgroundColor?: string;\n backgroundIcon?: string;\n}\n\nexport const Container = styled.div<ContainerProps>`\n width: 100%;\n display: flex;\n justify-content: center;\n padding: 24px 0;\n height: 193px;\n\n background: ${({ hasBorder }) =>\n hasBorder &&\n `linear-gradient(\n to right,\n #dadce3 50%,\n rgba(255, 255, 255, 0) 0%\n ),\n linear-gradient(#dadce3 50%, rgba(255, 255, 255, 0) 0%),\n linear-gradient(to right, #dadce3 50%, rgba(255, 255, 255, 0) 0%),\n linear-gradient(#dadce3 50%, rgba(255, 255, 255, 0) 0%)`};\n background-position: top, right, bottom, left;\n background-repeat: repeat-x, repeat-y;\n background-size: 40px 1px, 1px 40px;\n background-color: ${({ backgroundColor }) => backgroundColor};\n\n & .content {\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n & > .icon {\n background-color: ${({ backgroundIcon }) => backgroundIcon};\n border-radius: 16px;\n width: 145px;\n height: 145px;\n\n display: flex;\n justify-content: center;\n\n & svg {\n width: 100%;\n height: 70%;\n margin: 20px;\n }\n }\n\n & .description {\n max-width: 600px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n padding: 8px 0 8px 24px;\n\n .button-add {\n cursor: pointer;\n }\n\n .start-icon {\n display: flex;\n align-items: center;\n }\n }\n }\n`;\n","import React, { FC, ReactElement } from 'react';\nimport PropTypes from 'prop-types';\nimport * as S from './styles';\n\ninterface EmptyStateProps {\n icon?: string | ReactElement;\n title?: string;\n description?: string;\n activeButton?: boolean;\n iconButton?: ReactElement;\n descriptionButton?: string;\n widthButton?: string;\n button?: ReactElement;\n backgroundIcon?: string;\n backgroundColor?: string;\n hasBorder?: boolean;\n}\n\nconst EmptyState: FC<EmptyStateProps> = ({\n icon,\n title,\n description,\n activeButton,\n iconButton,\n descriptionButton,\n widthButton,\n button,\n backgroundIcon,\n backgroundColor,\n hasBorder,\n ...rest\n}) => {\n return (\n <S.Container\n backgroundIcon={backgroundIcon}\n backgroundColor={backgroundColor}\n hasBorder={hasBorder}\n {...rest}\n >\n <div className=\"content\">\n <div className=\"icon\">\n {icon}\n </div>\n <div className=\"description\">\n <h5> {title}</h5>\n\n <p>{description}</p>\n\n {activeButton ? (\n <button>\n {descriptionButton}\n </button>\n ) : null}\n\n {button}\n </div>\n </div>\n </S.Container>\n );\n};\n\nEmptyState.propTypes = {\n icon: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n title: PropTypes.string,\n description: PropTypes.string,\n activeButton: PropTypes.bool,\n iconButton: PropTypes.element,\n descriptionButton: PropTypes.string,\n widthButton: PropTypes.string,\n button: PropTypes.element,\n backgroundIcon: PropTypes.string,\n backgroundColor: PropTypes.string,\n hasBorder: PropTypes.bool,\n};\n\nEmptyState.defaultProps = {\n icon: '',\n title: '',\n description: '',\n activeButton: false,\n descriptionButton: '',\n widthButton: '140px',\n backgroundIcon: 'var(--neutral-0)',\n backgroundColor: 'var(--absolute-white)',\n hasBorder: true,\n};\n\nexport default EmptyState;\n","import React, { useEffect, useState} from 'react';\n\nimport { FaUpload, FaList, FaPlus } from 'react-icons/fa';\n\n// import { formatAxios } from '../../utils/formatAxios'\n\nimport { useLocation } from 'react-router-dom';\n\nimport type { FileData } from '../../interface/FileData'\n\nimport { getLanguage } from '../../utils/getLanguage'\n\nimport * as S from './styles';\nimport Table from './components/Table';\nimport Search from './components/Search';\nimport EmptyState from '../EmptyState';\n\nexport const FileArea = () => {\n const [files, setFiles] = useState<FileData[]>([]);\n const [initialFiles, setInitialFiles] = useState<FileData[]>([]);\n const { pathname } = useLocation();\n const id = pathname.split('/')[4]\n const t = getLanguage('pt-br')\n\n useEffect(() => {\n setFiles([\n {\n \"name\": \"Documentação conceitual Code7_v3\",\n \"tags\": \"boteria, code7\"\n },\n {\n \"name\": \"PAE_Programa_Apoio_ao_Empregado\",\n \"tags\": \"pae, vr\"\n },\n {\n \"name\": \"Vidalink\",\n \"tags\": \"vidalink, vr\"\n },\n {\n \"name\": \"[GUIA PRÁTICO] Como criar o chatbot perfeito\",\n \"tags\": \"ebook, code7\"\n }\n ])\n\n setInitialFiles([\n {\n \"name\": \"Documentação conceitual Code7_v3\",\n \"tags\": \"boteria, code7\"\n },\n {\n \"name\": \"PAE_Programa_Apoio_ao_Empregado\",\n \"tags\": \"pae, vr\"\n },\n {\n \"name\": \"Vidalink\",\n \"tags\": \"vidalink, vr\"\n },\n {\n \"name\": \"[GUIA PRÁTICO] Como criar o chatbot perfeito\",\n \"tags\": \"ebook, code7\"\n }\n ])\n }, [])\n\n useEffect(() => {\n console.log('files, id, t: ', files, id, t)\n }, [files])\n\n const presset = (tags: string) => {\n const tagsSplit = tags.split(',');\n let html = '';\n\n html += tagsSplit.map(tag => {\n return `<p class='tag'>${tag}</p>`;\n }).join('');\n\n return html;\n}\n\n const renderFiles = () => { \n return (\n <S.Container>\n <S.Header>\n <div className='infos'>\n <h2>{t.files}</h2>\n <p>{t.fileArea.description}</p>\n </div>\n <div className='actions'>\n <Search placeholder={t.fileArea.search} setFiles={setFiles} initialFiles={initialFiles}></Search>\n <button><FaUpload /> {t.fileArea.fileUpload}</button>\n </div>\n </S.Header>\n {\n files.length === 0 ? (\n <EmptyState\n icon={<FaList></FaList>}\n title={t.fileArea.emptyState.title}\n description={t.fileArea.emptyState.description}\n activeButton\n iconButton={<FaPlus style={{ width: '15px', height: '15px' }} />}\n descriptionButton={t.fileArea.modal.chooseFile}\n widthButton=\"230px\"\n />\n ) : <Table>\n <thead>\n <tr>\n <th className=\"th_file_name\">\n {t.fileArea.fileName}\n </th>\n <th className=\"th_pressets\">\n {t.fileArea.presset}\n </th>\n <th className=\"th_actions\">\n {t.fileArea.actions}\n </th>\n </tr>\n </thead>\n\n <tbody>\n {files.map((object) => (\n <tr>\n <td>{object.name}</td>\n <td className='tags' dangerouslySetInnerHTML={{ __html: presset(object.tags) }} />\n <td>\n <div className='divDelete'>\n <button className='buttonDelete'>{t.buttons.delete}</button>\n </div>\n </td>\n </tr>\n ))}\n </tbody>\n </Table>\n }\n \n </S.Container>\n );\n }\n\n return (\n <S.Container>\n {renderFiles()}\n </S.Container>\n );\n};","import styled from 'styled-components';\n\nexport const Container = styled.div`\n\n`;\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n .infos {\n display: flex;\n flex-direction: column;\n padding: 14px 0;\n\n h2 {\n font-size: 20px\n }\n\n p {\n font-size: 14px\n }\n }\n`\n\nexport const Inputs = styled.div`\n display: flex;\n justify-content: space-between;\n margin-bottom: 10px;\n\n button {\n background: #102693;\n padding: 10px 20px;\n color: white;\n border-radius: 4px;\n width: 190px;\n height: 40px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n svg {\n width: 23px;\n height: 23px;\n }\n }\n`\n\nexport const Result = styled.div`\n display: flex;\n justify-content: left;\n background: #F3F5F9;\n padding: 15px;\n border-radius: 5px;\n margin-top: 15px;\n\n .text{\n margin-left: 5px;\n font-size: 14px;\n }\n\n .icon {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 5px;\n\n svg {\n width: 35px;\n height: 35px;\n }\n }\n\n`","import styled from 'styled-components';\n\nexport const Container = styled.div`\n position: relative;\n width: 50%;\n margin-right: 5px;\n select {\n padding: 12px;\n border-radius: 4px;\n border: 1px solid #979AA5;\n width: 100%;\n height: 40px;\n \n &:focus {\n outline: none;\n box-shadow: 0 0 0 3px #6690ff;\n }\n }\n`;\n","import React, { useState } from 'react';\nimport * as S from './styles';\n\ninterface SelectOption {\n value: string | number;\n label: string;\n}\n\ninterface SelectProps {\n options: SelectOption[];\n onSelect: (value: string | number) => void;\n placeholder?: string;\n}\n\nconst Select: React.FC<SelectProps> = ({ options, onSelect, placeholder }) => {\n const [selectedValue, setSelectedValue] = useState<string | number>('');\n\n const handleSelectChange = (event: React.ChangeEvent<HTMLSelectElement>) => {\n const selectedOption = event.target.value;\n setSelectedValue(selectedOption);\n onSelect(selectedOption);\n };\n\n return (\n <S.Container>\n <select value={selectedValue} onChange={handleSelectChange}>\n <option value=\"\" disabled hidden>\n {placeholder}\n </option>\n {options.map(option => (\n <option key={option.value} value={option.value}>\n {option.label}\n </option>\n ))}\n </select>\n </S.Container>\n );\n};\n\nexport default Select;\n","import styled from 'styled-components';\nimport { FaMicrophone } from 'react-icons/fa';\n\nexport const Container = styled.div`\n position: relative;\n width: 100%;\n margin-right: 5px;\n`;\n\nexport const StyledInput = styled.input`\n padding-left: 10px;\n padding-right: 40px;\n border-radius: 5px;\n border: 1px solid #ccc;\n height: 40px;\n width: 100%;\n\n &:focus {\n outline: none;\n box-shadow: 0 0 0 3px #6690ff;\n }\n`;\n\nexport const RecordAudioButton = styled.div`\n position: absolute;\n top: 10px;\n right: 10px;\n cursor: pointer;\n`;\n\nexport const StyledMicrophoneIcon = styled(FaMicrophone)`\n pointer-events: none;\n`;\n","import React from 'react';\nimport * as S from './styles';\n\ninterface InputTestProps {\n placeholder: string;\n onChange: (value: string) => void;\n onRecordAudio: () => void;\n}\n\nconst InputTest: React.FC<InputTestProps> = ({ placeholder, onChange, onRecordAudio }) => {\n return (\n <S.Container>\n <S.StyledInput\n type=\"text\"\n onChange={(e: any) => onChange(e.target.value)}\n placeholder={placeholder}\n />\n <S.RecordAudioButton onClick={onRecordAudio}>\n <S.StyledMicrophoneIcon />\n </S.RecordAudioButton>\n </S.Container>\n );\n};\n\nexport default InputTest;\n","import React, { useState } from 'react';\nimport { getLanguage } from '../../utils/getLanguage'\nimport * as S from './styles';\nimport Select from './components/Select'\nimport InputTest from './components/InputTest'\nimport { PiWaveformBold } from 'react-icons/pi';\nimport { FaList } from 'react-icons/fa';\nimport EmptyState from '../EmptyState';\n// import IconLeia from '../../assets/icon_leia.svg';\nimport { MdPerson2 } from \"react-icons/md\";\n\nexport const TestArea = () => {\n const t = getLanguage('pt-br')\n const [results, setResults] = useState({ \"message\": \"\" });\n const [search, setSearch] = useState('');\n const tags = [\n \"pae\",\n \"boteria\",\n \"vr\",\n \"code7\",\n \"vidalink\"\n ]\n const personas = [\n {\n \"description\": \"Seriedade e profundidade ao explicar. Usa linguagem acadêmica e é preciso em temas específicos da área.\",\n \"name\": \"College professor\"\n },\n {\n \"description\": \"Abordagem descontraída, direto ao ponto. Linguagem simples, exemplos práticos para facilitar compreensão rápida.\",\n \"name\": \"School Teacher\"\n },\n {\n \"description\": \"Estilo descontraído, senso de humor único. Piadas e trocadilhos até em assuntos sérios.\",\n \"name\": \"Humorist\"\n },\n {\n \"description\": \"Postura centrada, comunicação direta e focada em resultados. Prioriza eficiência e precisão.\",\n \"name\": \"Military\"\n },\n {\n \"description\": \"Estilo único e carismático. Usa linguagem moderna, compartilha informações cativantes de forma descontraída.\",\n \"name\": \"Digital Influencer\"\n }\n ]\n\n const optionsPersona = personas.map(persona => {\n return { label: persona.name, value: persona.description }\n })\n\n const optionsPresset = tags.map(tag => {\n return { label: tag, value: tag }\n })\n\n const handleSelect = (value: string | number) => {\n console.log(value);\n };\n\n const handleSearch = (value: string) => {\n setSearch(value);\n };\n\n const handleRecordAudio = () => {\n console.log('Iniciando gravação de áudio...');\n };\n\n const handleTest = () => {\n console.log('Pesquisa: ', search)\n setResults({\n \"message\": \"Você precisa seguir algumas etapas importantes para ter um chatbot perfeito. Primeiro, defina claramente o objetivo do seu chatbot. Em seguida, crie uma mensagem de saudação cativante para atrair a atenção dos usuários. Não se esqueça de pedir feedbacks para melhorar constantemente o desempenho do seu chatbot. Além disso, construa um fluxo de conversa simples e utilize respostas curtas para manter a interação rápida e eficiente. Também é importante incorporar inteligência artificial para tornar o seu chatbot especialista em determinado assunto. Teste o seu bot antes de lançá-lo e personalize-o de acordo com as necessidades dos usuários. Por fim, direcione os usuários para um atendimento humano quando necessário. Seguindo essas dicas, você estará no caminho certo para ter um chatbot perfeito!\"\n })\n };\n\n return (\n <S.Container>\n <S.Header>\n <div className='infos'>\n <h2>{t.test}</h2>\n <p>{t.testArea.description}</p>\n </div>\n </S.Header>\n <S.Inputs>\n <InputTest placeholder={t.testArea.typeSentence} onChange={handleSearch} onRecordAudio={handleRecordAudio} />\n <Select placeholder={t.testArea.selectPersona} options={optionsPersona} onSelect={handleSelect} />\n <Select placeholder={t.testArea.selectPresset} options={optionsPresset} onSelect={handleSelect} />\n <button onClick={handleTest}><PiWaveformBold /> {t.buttons.test}</button>\n </S.Inputs>\n {\n results.message === '' ? (\n <EmptyState\n icon={<FaList></FaList>}\n title={t.testArea.emptyState.title}\n description={t.testArea.emptyState.description}\n activeButton={false}\n />\n ) : <S.Result>\n <div className='icon'>\n <MdPerson2 />\n </div>\n <div className='text'>{results.message}</div>\n </S.Result>\n }\n </S.Container>\n );\n};","import React, { useMemo, Suspense } from 'react';\n\nimport { Route, useLocation, useRouteMatch, useHistory, Switch as SwitchRoute } from 'react-router-dom';\n\nimport type { Props } from './index';\nimport { Tab, Tabs } from './components/Tabs'\n\nimport { getLanguage } from './utils/getLanguage'\n\nimport { FileArea } from './components/FileArea';\nimport { TestArea } from './components/TestArea';\n\nexport const Leia = (props: Props) => {\n const match = useRouteMatch();\n const { pathname } = useLocation();\n const history = useHistory();\n\n const t = getLanguage(props.language)\n\n const activeTab = useMemo(() => {\n return pathname.split('/')[5] || 'files';\n }, [pathname]);\n\n return (\n <>\n <Tabs\n value={activeTab}\n onChange={(value) => history.push(`${match.url}/${value}`)}\n >\n <Tab value=\"files\">{t.files}</Tab>\n <Tab value=\"test\">{t.test}</Tab>\n </Tabs>\n <Suspense fallback={props.loading}>\n <SwitchRoute>\n <Route path={`${match.path}`} exact component={FileArea} />\n <Route path={`${match.path}/files`} component={FileArea} />\n <Route path={`${match.path}/test`} component={TestArea} />\n </SwitchRoute>\n </Suspense>\n </>\n );\n};","import type { PropsWithChildren, ReactElement } from 'react';\nimport React from 'react';\nimport { Leia } from './Leia';\n\nexport type Props = PropsWithChildren<{\n id: string;\n activeTab: string;\n language: \"en\" | \"pt-br\" | \"es\";\n loading: ReactElement\n}>;\n\nexport function Code7(props: Props) {\n return <Leia {...props} />;\n}"],"names":["TabsPane","styled","ul","_templateObject","_taggedTemplateLiteralLoose","Tab","li","_templateObject2","_ref","active","children","rest","_objectWithoutPropertiesLoose","_excluded","React","S","className","cc","propTypes","PropTypes","oneOfType","string","element","node","isRequired","onChange","func","value","bool","defaultProps","Tabs","_ref2","childrenProp","_excluded2","Children","map","child","_child$props2","isValidElement","Array","isArray","_child$props","props","cloneElement","_child$props3","onClick","_child$props4","number","defaultLanguage","files","test","fileArea","description","fileName","presset","actions","search","fileUpload","emptyState","title","modal","descriptionUpload","chooseFile","buttons","cancel","send","delete","testArea","typeSentence","selectPersona","selectPresset","getLanguage","language","en","pt-br","_extends","es","Container","div","Header","TableWrapper","Table","table","TableLoadingWrapper","_templateObject3","SpinnerWrapper","span","color","Spinner","_ref$size","size","_ref$color","forwardRef","ref","_ref$isLoading","isLoading","_ref$className","oneOf","SearchInput","setFiles","initialFiles","style","position","width","type","e","searchTerm","target","trim","normalizedSearchTerm","unorm","nfkd","toLowerCase","newFiles","filter","file","name","includes","searchName","placeholder","paddingLeft","borderRadius","border","height","top","left","pointerEvents","FaSearch","hasBorder","backgroundColor","_ref3","backgroundIcon","EmptyState","icon","activeButton","iconButton","descriptionButton","widthButton","button","FileArea","_useState","useState","_useState2","setInitialFiles","id","useLocation","pathname","split","t","useEffect","tags","console","log","Search","FaUpload","length","FaList","FaPlus","object","dangerouslySetInnerHTML","__html","html","tag","join","Inputs","Result","_templateObject4","Select","options","onSelect","setSelectedValue","event","selectedOption","disabled","hidden","option","key","label","StyledInput","input","RecordAudioButton","StyledMicrophoneIcon","FaMicrophone","InputTest","onRecordAudio","TestArea","message","results","setResults","setSearch","optionsPersona","persona","optionsPresset","handleSelect","PiWaveformBold","MdPerson2","Leia","match","useRouteMatch","history","useHistory","activeTab","useMemo","push","url","Suspense","fallback","loading","SwitchRoute","Route","path","exact","component"],"mappings":"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"}
@@ -467,7 +467,7 @@ var Inputs = /*#__PURE__*/styled.div(_templateObject3$1 || (_templateObject3$1 =
467
467
  var Result = /*#__PURE__*/styled.div(_templateObject4 || (_templateObject4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n justify-content: left;\n background: #F3F5F9;\n padding: 15px;\n border-radius: 5px;\n margin-top: 15px;\n\n .text{\n margin-left: 5px;\n font-size: 14px;\n }\n\n .icon {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 5px;\n\n svg {\n width: 35px;\n height: 35px;\n }\n }\n\n"])));
468
468
 
469
469
  var _templateObject$6;
470
- var Container$3 = /*#__PURE__*/styled.div(_templateObject$6 || (_templateObject$6 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n width: 50%;\n margin-right: 5px;\n select {\n padding: 12px;\n border-radius: 4px;\n border: 1px solid #979AA5;\n width: 100%;\n height: 40px;\n :active {\n border: 2px #1939b7 solid;\n }\n }\n"])));
470
+ var Container$3 = /*#__PURE__*/styled.div(_templateObject$6 || (_templateObject$6 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n width: 50%;\n margin-right: 5px;\n select {\n padding: 12px;\n border-radius: 4px;\n border: 1px solid #979AA5;\n width: 100%;\n height: 40px;\n \n &:focus {\n outline: none;\n box-shadow: 0 0 0 3px #6690ff;\n }\n }\n"])));
471
471
 
472
472
  var Select = function Select(_ref) {
473
473
  var options = _ref.options,
@@ -498,7 +498,7 @@ var Select = function Select(_ref) {
498
498
 
499
499
  var _templateObject$7, _templateObject2$4, _templateObject3$2, _templateObject4$1;
500
500
  var Container$4 = /*#__PURE__*/styled.div(_templateObject$7 || (_templateObject$7 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n width: 100%;\n margin-right: 5px;\n"])));
501
- var StyledInput = /*#__PURE__*/styled.input(_templateObject2$4 || (_templateObject2$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n padding-left: 10px;\n padding-right: 40px;\n border-radius: 5px;\n border: 1px solid #ccc;\n height: 40px;\n width: 100%;\n\n :active {\n border: 2px #1939b7 solid;\n }\n"])));
501
+ var StyledInput = /*#__PURE__*/styled.input(_templateObject2$4 || (_templateObject2$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n padding-left: 10px;\n padding-right: 40px;\n border-radius: 5px;\n border: 1px solid #ccc;\n height: 40px;\n width: 100%;\n\n &:focus {\n outline: none;\n box-shadow: 0 0 0 3px #6690ff;\n }\n"])));
502
502
  var RecordAudioButton = /*#__PURE__*/styled.div(_templateObject3$2 || (_templateObject3$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: absolute;\n top: 10px;\n right: 10px;\n cursor: pointer;\n"])));
503
503
  var StyledMicrophoneIcon = /*#__PURE__*/styled(FaMicrophone)(_templateObject4$1 || (_templateObject4$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n pointer-events: none;\n"])));
504
504
 
@@ -1 +1 @@
1
- {"version":3,"file":"code7-leia.esm.js","sources":["../src/components/Tabs/styles.tsx","../src/components/Tabs/index.tsx","../src/utils/getLanguage.tsx","../src/components/FileArea/styles.tsx","../src/components/FileArea/components/Table/styles.tsx","../src/components/FileArea/components/Spinner/styles.tsx","../src/components/FileArea/components/Spinner/index.tsx","../src/components/FileArea/components/Table/index.tsx","../src/components/FileArea/components/Search/index.tsx","../src/components/EmptyState/styles.tsx","../src/components/EmptyState/index.tsx","../src/components/FileArea/index.tsx","../src/components/TestArea/styles.tsx","../src/components/TestArea/components/Select/styles.tsx","../src/components/TestArea/components/Select/index.tsx","../src/components/TestArea/components/InputTest/styles.tsx","../src/components/TestArea/components/InputTest/index.tsx","../src/components/TestArea/index.tsx","../src/Leia.tsx","../src/index.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { ReactNode } from 'react';\n\ninterface TabProps {\n children: ReactNode;\n}\n\ninterface OptionProps {\n children: ReactNode;\n onClick: () => void;\n}\n\nexport const TabsPane = styled.ul`\n width: max-content;\n display: flex;\n align-items: center;\n border-bottom: 1px solid var(--neutral-1);\n`;\n\nexport const Tab = styled.li<TabProps>`\n padding: 12px;\n color: var(--neutral-3);\n font-size: 0.875rem;\n font-weight: normal;\n position: relative;\n cursor: pointer;\n\n svg {\n fill: var(--neutral-3) !important;\n margin-left: 8px;\n }\n\n &.active {\n color: var(--primary-700-light);\n\n svg {\n fill: var(--primary-700-light) !important;\n }\n\n ::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 2px;\n background-color: var(--primary-700-light);\n }\n }\n\n &:not(:last-child) {\n margin-right: 8px;\n }\n`;\n\nexport const DropdownContainer = styled.div`\n position: absolute;\n left: 0px;\n top: 40px;\n display: flex;\n flex-direction: column;\n\n background: #ffffff;\n\n border: 1px solid #979aa5;\n box-sizing: border-box;\n box-shadow: 0px 6px 12px -6px rgba(24, 39, 75, 0.12),\n 0px 8px 24px -4px rgba(24, 39, 75, 0.08);\n border-radius: 4px;\n padding: 8px;\n z-index: 2;\n`;\n\nexport const Option = styled.div<OptionProps>`\n padding: 8px;\n font-size: 14px;\n border-radius: 4px;\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover {\n background-color: var(--primary-800-light);\n color: white;\n }\n`;\n","import React, { ReactNode } from 'react';\nimport PropTypes from 'prop-types';\nimport cc from 'classcat';\n\nimport * as S from './styles';\n\ninterface TabProps {\n children: ReactNode;\n active?: boolean;\n}\n\ninterface ITabsProps {\n children: ReactNode;\n value: string | number;\n onChange: (e: any) => void;\n active?: boolean;\n}\n\nexport const Tab = ({ active, children, ...rest }: TabProps) => {\n return (\n <S.Tab className={cc({ active })} {...rest}>\n {children}\n </S.Tab>\n );\n};\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]).isRequired,\n onChange: PropTypes.func,\n value: PropTypes.string,\n active: PropTypes.bool,\n};\n\nTab.defaultProps = {\n onChange: () => {},\n value: '',\n active: false,\n};\n\nexport const Tabs = ({ children: childrenProp, value, onChange, ...rest }: ITabsProps) => {\n const children = React.Children.map(childrenProp, (child) => {\n if (!React.isValidElement(child)) {\n return null;\n }\n\n if (Array.isArray(child.props?.children)) {\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n value,\n onChange,\n });\n }\n\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n onClick: () => onChange(child.props?.value),\n });\n });\n\n return <S.TabsPane {...rest}>{children}</S.TabsPane>;\n};\n\nTabs.propTypes = {\n children: PropTypes.node.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n onChange: PropTypes.func.isRequired,\n};\n","\nimport { Language } from '../interface/Language'\n\nconst defaultLanguage: Language = {\n files: 'Files',\n test: 'Test',\n fileArea: {\n description: 'bla bla bla bla bla',\n fileName: 'File name',\n presset: 'Presset',\n actions: 'Actions',\n search: 'Search',\n fileUpload: 'File upload',\n emptyState: {\n title: 'No data',\n description: 'bla bla bla bla bla',\n },\n modal: {\n descriptionUpload: 'Drag and drop files here or',\n chooseFile: 'Choose a file',\n },\n },\n buttons: {\n cancel: 'Cancel',\n send: 'Send',\n delete: 'Delete',\n test: 'Test',\n },\n testArea: {\n description: 'bla bla bla bla bla',\n typeSentence: 'Type a sentence',\n selectPersona: 'Select a Persona',\n selectPresset: 'Select a presset',\n emptyState: {\n title: 'No data for analysis',\n description: 'Do a search, click the \"Test\" button.',\n },\n },\n};\n\nexport const getLanguage = (language: keyof Record<'en' | 'pt-br' | 'es', Language>): Language => {\n const languages = {\n en: defaultLanguage,\n 'pt-br': {\n files: 'Arquivos',\n test: 'Teste',\n fileArea: {\n ...defaultLanguage.fileArea,\n fileName: 'Nome do arquivo',\n presset: 'Presset',\n actions: 'Ações',\n search: 'Pesquisar',\n fileUpload: 'Upload de arquivo',\n emptyState: {\n ...defaultLanguage.fileArea.emptyState,\n title: 'Sem dados',\n },\n modal: {\n ...defaultLanguage.fileArea.modal,\n descriptionUpload: 'Arraste e solte os arquivos aqui ou',\n chooseFile: 'Escolha um arquivo',\n },\n },\n buttons: {\n ...defaultLanguage.buttons,\n cancel: 'Cancelar',\n send: 'Enviar',\n delete: 'Excluir',\n test: 'Testar',\n },\n testArea: {\n ...defaultLanguage.testArea,\n description: 'Digite uma frase para testar a inteligência artificial.',\n typeSentence: 'Digite uma frase',\n selectPersona: 'Selecione uma Persona',\n selectPresset: 'Selecione uma predefinição',\n emptyState: {\n ...defaultLanguage.testArea.emptyState,\n title: 'Sem dados para análise',\n description: 'Faça uma pesquisa, clique no botão \"Teste\".',\n },\n },\n },\n es: {\n ...defaultLanguage,\n files: 'Archivos',\n test: 'Prueba',\n fileArea: {\n ...defaultLanguage.fileArea,\n fileName: 'Nombre del archivo',\n presset: 'Presset',\n actions: 'Acciones',\n search: 'Buscar',\n fileUpload: 'Carga de archivos',\n emptyState: {\n ...defaultLanguage.fileArea.emptyState,\n title: 'Sin datos',\n },\n modal: {\n ...defaultLanguage.fileArea.modal,\n descriptionUpload: 'Arrastre y suelte los archivos aquí o',\n chooseFile: 'Elegir un archivo',\n },\n },\n buttons: {\n ...defaultLanguage.buttons,\n cancel: 'Cancelar',\n send: 'Enviar',\n delete: 'Eliminar',\n test: 'Probar',\n },\n testArea: {\n ...defaultLanguage.testArea,\n description: 'bla bla bla bla bla',\n typeSentence: 'Escribe una oración',\n selectPersona: 'Seleccionar una Persona',\n selectPresset: 'Seleccionar una configuración preestablecida',\n emptyState: {\n ...defaultLanguage.testArea.emptyState,\n title: 'Sin datos para el análisis',\n description: 'Realiza una búsqueda, haz clic en el botón \"Prueba\".',\n },\n },\n },\n };\n\n return languages[language] || defaultLanguage;\n};\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n .tag {\n padding: 4px 8px 4px 8px;\n background: #C7F9ED;\n border-radius: 4px;\n }\n\n .tags {\n display: flex;\n justify-content: left;\n gap: 4px;\n }\n\n .divDelete {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n }\n\n .buttonDelete {\n color: #5b0a1f;\n background: #fae0d2;\n padding: 12px 20px;\n border-radius: 4px;\n }\n\n .buttonDelete:hover {\n background: #f5bba7;\n }\n`;\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n\n .infos {\n display: flex;\n flex-direction: column;\n padding: 14px 0;\n\n h2 {\n font-size: 20px\n }\n\n p {\n font-size: 14px\n }\n }\n\n .actions {\n display: flex;\n justify-content: space-between;\n padding-bottom: 14px;\n\n button {\n background: #102693;\n padding: 10px 20px;\n color: white;\n border-radius: 4px;\n }\n }\n\n`\n","import styled from 'styled-components';\n\nexport const TableWrapper = styled.div`\n width: 100%;\n height: max-content;\n min-height: 50px;\n position: relative;\n`;\n\nexport const Table = styled.table`\n font-size: 14px;\n line-height: 143%;\n color: black;\n width: 100%;\n border-collapse: collapse;\n border-radius: 4px;\n\n th {\n font-weight: 600;\n font-size: 14px;\n line-height: 143%;\n letter-spacing: 0.018em;\n color: #5A5D68;\n text-align: left;\n padding: 8px;\n border-radius: 4px;\n }\n\n thead tr {\n background: #dadce3;\n }\n\n tbody tr {\n border: 1px solid #dadce3;\n }\n\n &.small td {\n padding: 4px;\n }\n\n &.medium td {\n padding: 8px;\n }\n\n &.large td {\n padding: 16px;\n }\n`;\n\nexport const TableLoadingWrapper = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: #f3f5f961;\n`;\n","import styled from 'styled-components';\n\nexport const SpinnerWrapper = styled.span`\n display: inline-block;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &.spinner--sm {\n width: 24px;\n height: 24px;\n }\n\n &.spinner--md {\n width: 32px;\n height: 32px;\n }\n\n &.spinner--lg {\n width: 60px;\n height: 60px;\n }\n\n span {\n box-sizing: border-box;\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n margin: 8px;\n border: 4px solid #fff;\n border-radius: 50%;\n animation: rotateSpinner 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n border-color: ${(props) => `var(--${props.color})`} transparent transparent\n transparent;\n }\n\n & span:nth-child(1) {\n animation-delay: -0.45s;\n }\n\n & span:nth-child(2) {\n animation-delay: -0.3s;\n }\n\n & span:nth-child(3) {\n animation-delay: -0.15s;\n }\n\n @keyframes rotateSpinner {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n`;\n","import React from 'react';\nimport cc from 'classcat';\n\nimport * as S from './styles';\n\nimport { SpinnerProps } from '../../../../interface/Table'\n\nconst Spinner: React.FC<SpinnerProps> = ({ color = 'neutral-3', size = 'md', className }) => {\n return (\n <S.SpinnerWrapper\n color={color}\n className={cc([`spinner--${size}`, className])}\n >\n <span />\n <span />\n <span />\n <span />\n </S.SpinnerWrapper>\n );\n};\n\nexport default Spinner;\n","import React, { forwardRef, Ref } from 'react';\nimport PropTypes from 'prop-types';\nimport cc from 'classcat';\n\nimport * as S from './styles';\nimport Spinner from '../Spinner';\n\nimport { TableProps } from '../../../../interface/Table'\n\nconst Table = forwardRef(\n ({ size = 'medium', children, isLoading = false, className = '', ...props }: TableProps, ref: Ref<HTMLTableElement>) => {\n return (\n <S.TableWrapper className={className}>\n {isLoading ? (\n <S.TableLoadingWrapper>\n <Spinner />\n </S.TableLoadingWrapper>\n ) : null}\n <S.Table className={cc([size])} ref={ref} {...props}>\n {children}\n </S.Table>\n </S.TableWrapper>\n );\n }\n);\n\nTable.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n isLoading: PropTypes.bool,\n};\n\nexport default Table;\n","import React from 'react';\nimport unorm from 'unorm';\nimport { FaSearch } from 'react-icons/fa';\nimport type { FileData } from '../../../../interface/FileData'\n\ninterface SearchInputProps {\n placeholder: string;\n initialFiles: FileData[]\n setFiles: React.Dispatch<React.SetStateAction<FileData[]>>;\n}\n\nconst SearchInput: React.FC<SearchInputProps> = ({ placeholder, setFiles, initialFiles }) => {\n\n const searchName = (e: React.ChangeEvent<HTMLInputElement>) => {\n const searchTerm = e.target.value.trim();\n const normalizedSearchTerm = unorm.nfkd(searchTerm).toLowerCase();\n \n const newFiles = initialFiles.filter(file => {\n const normalizedFileName = unorm.nfkd(file.name).toLowerCase();\n return normalizedFileName.includes(normalizedSearchTerm);\n });\n \n setFiles(searchTerm !== '' ? newFiles : initialFiles);\n}\n \n\n return (\n <div style={{ position: 'relative', width: '300px' }}>\n <input\n type=\"text\"\n onChange={(e) => searchName(e)}\n placeholder={placeholder}\n style={{\n paddingLeft: '40px',\n borderRadius: '5px',\n border: '1px solid #ccc',\n height: '40px',\n width: '100%',\n }}\n />\n <div\n style={{\n position: 'absolute',\n top: '10px',\n left: '10px',\n pointerEvents: 'none', \n }}\n >\n <FaSearch />\n </div>\n </div>\n );\n};\n\nexport default SearchInput;\n","import styled from 'styled-components';\n\ninterface ContainerProps {\n hasBorder?: boolean;\n backgroundColor?: string;\n backgroundIcon?: string;\n}\n\nexport const Container = styled.div<ContainerProps>`\n width: 100%;\n display: flex;\n justify-content: center;\n padding: 24px 0;\n height: 193px;\n\n background: ${({ hasBorder }) =>\n hasBorder &&\n `linear-gradient(\n to right,\n #dadce3 50%,\n rgba(255, 255, 255, 0) 0%\n ),\n linear-gradient(#dadce3 50%, rgba(255, 255, 255, 0) 0%),\n linear-gradient(to right, #dadce3 50%, rgba(255, 255, 255, 0) 0%),\n linear-gradient(#dadce3 50%, rgba(255, 255, 255, 0) 0%)`};\n background-position: top, right, bottom, left;\n background-repeat: repeat-x, repeat-y;\n background-size: 40px 1px, 1px 40px;\n background-color: ${({ backgroundColor }) => backgroundColor};\n\n & .content {\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n & > .icon {\n background-color: ${({ backgroundIcon }) => backgroundIcon};\n border-radius: 16px;\n width: 145px;\n height: 145px;\n\n display: flex;\n justify-content: center;\n\n & svg {\n width: 100%;\n height: 70%;\n margin: 20px;\n }\n }\n\n & .description {\n max-width: 600px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n padding: 8px 0 8px 24px;\n\n .button-add {\n cursor: pointer;\n }\n\n .start-icon {\n display: flex;\n align-items: center;\n }\n }\n }\n`;\n","import React, { FC, ReactElement } from 'react';\nimport PropTypes from 'prop-types';\nimport * as S from './styles';\n\ninterface EmptyStateProps {\n icon?: string | ReactElement;\n title?: string;\n description?: string;\n activeButton?: boolean;\n iconButton?: ReactElement;\n descriptionButton?: string;\n widthButton?: string;\n button?: ReactElement;\n backgroundIcon?: string;\n backgroundColor?: string;\n hasBorder?: boolean;\n}\n\nconst EmptyState: FC<EmptyStateProps> = ({\n icon,\n title,\n description,\n activeButton,\n iconButton,\n descriptionButton,\n widthButton,\n button,\n backgroundIcon,\n backgroundColor,\n hasBorder,\n ...rest\n}) => {\n return (\n <S.Container\n backgroundIcon={backgroundIcon}\n backgroundColor={backgroundColor}\n hasBorder={hasBorder}\n {...rest}\n >\n <div className=\"content\">\n <div className=\"icon\">\n {icon}\n </div>\n <div className=\"description\">\n <h5> {title}</h5>\n\n <p>{description}</p>\n\n {activeButton ? (\n <button>\n {descriptionButton}\n </button>\n ) : null}\n\n {button}\n </div>\n </div>\n </S.Container>\n );\n};\n\nEmptyState.propTypes = {\n icon: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n title: PropTypes.string,\n description: PropTypes.string,\n activeButton: PropTypes.bool,\n iconButton: PropTypes.element,\n descriptionButton: PropTypes.string,\n widthButton: PropTypes.string,\n button: PropTypes.element,\n backgroundIcon: PropTypes.string,\n backgroundColor: PropTypes.string,\n hasBorder: PropTypes.bool,\n};\n\nEmptyState.defaultProps = {\n icon: '',\n title: '',\n description: '',\n activeButton: false,\n descriptionButton: '',\n widthButton: '140px',\n backgroundIcon: 'var(--neutral-0)',\n backgroundColor: 'var(--absolute-white)',\n hasBorder: true,\n};\n\nexport default EmptyState;\n","import React, { useEffect, useState} from 'react';\n\nimport { FaUpload, FaList, FaPlus } from 'react-icons/fa';\n\n// import { formatAxios } from '../../utils/formatAxios'\n\nimport { useLocation } from 'react-router-dom';\n\nimport type { FileData } from '../../interface/FileData'\n\nimport { getLanguage } from '../../utils/getLanguage'\n\nimport * as S from './styles';\nimport Table from './components/Table';\nimport Search from './components/Search';\nimport EmptyState from '../EmptyState';\n\nexport const FileArea = () => {\n const [files, setFiles] = useState<FileData[]>([]);\n const [initialFiles, setInitialFiles] = useState<FileData[]>([]);\n const { pathname } = useLocation();\n const id = pathname.split('/')[4]\n const t = getLanguage('pt-br')\n\n useEffect(() => {\n setFiles([\n {\n \"name\": \"Documentação conceitual Code7_v3\",\n \"tags\": \"boteria, code7\"\n },\n {\n \"name\": \"PAE_Programa_Apoio_ao_Empregado\",\n \"tags\": \"pae, vr\"\n },\n {\n \"name\": \"Vidalink\",\n \"tags\": \"vidalink, vr\"\n },\n {\n \"name\": \"[GUIA PRÁTICO] Como criar o chatbot perfeito\",\n \"tags\": \"ebook, code7\"\n }\n ])\n\n setInitialFiles([\n {\n \"name\": \"Documentação conceitual Code7_v3\",\n \"tags\": \"boteria, code7\"\n },\n {\n \"name\": \"PAE_Programa_Apoio_ao_Empregado\",\n \"tags\": \"pae, vr\"\n },\n {\n \"name\": \"Vidalink\",\n \"tags\": \"vidalink, vr\"\n },\n {\n \"name\": \"[GUIA PRÁTICO] Como criar o chatbot perfeito\",\n \"tags\": \"ebook, code7\"\n }\n ])\n }, [])\n\n useEffect(() => {\n console.log('files, id, t: ', files, id, t)\n }, [files])\n\n const presset = (tags: string) => {\n const tagsSplit = tags.split(',');\n let html = '';\n\n html += tagsSplit.map(tag => {\n return `<p class='tag'>${tag}</p>`;\n }).join('');\n\n return html;\n}\n\n const renderFiles = () => { \n return (\n <S.Container>\n <S.Header>\n <div className='infos'>\n <h2>{t.files}</h2>\n <p>{t.fileArea.description}</p>\n </div>\n <div className='actions'>\n <Search placeholder={t.fileArea.search} setFiles={setFiles} initialFiles={initialFiles}></Search>\n <button><FaUpload /> {t.fileArea.fileUpload}</button>\n </div>\n </S.Header>\n {\n files.length === 0 ? (\n <EmptyState\n icon={<FaList></FaList>}\n title={t.fileArea.emptyState.title}\n description={t.fileArea.emptyState.description}\n activeButton\n iconButton={<FaPlus style={{ width: '15px', height: '15px' }} />}\n descriptionButton={t.fileArea.modal.chooseFile}\n widthButton=\"230px\"\n />\n ) : <Table>\n <thead>\n <tr>\n <th className=\"th_file_name\">\n {t.fileArea.fileName}\n </th>\n <th className=\"th_pressets\">\n {t.fileArea.presset}\n </th>\n <th className=\"th_actions\">\n {t.fileArea.actions}\n </th>\n </tr>\n </thead>\n\n <tbody>\n {files.map((object) => (\n <tr>\n <td>{object.name}</td>\n <td className='tags' dangerouslySetInnerHTML={{ __html: presset(object.tags) }} />\n <td>\n <div className='divDelete'>\n <button className='buttonDelete'>{t.buttons.delete}</button>\n </div>\n </td>\n </tr>\n ))}\n </tbody>\n </Table>\n }\n \n </S.Container>\n );\n }\n\n return (\n <S.Container>\n {renderFiles()}\n </S.Container>\n );\n};","import styled from 'styled-components';\n\nexport const Container = styled.div`\n\n`;\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n .infos {\n display: flex;\n flex-direction: column;\n padding: 14px 0;\n\n h2 {\n font-size: 20px\n }\n\n p {\n font-size: 14px\n }\n }\n`\n\nexport const Inputs = styled.div`\n display: flex;\n justify-content: space-between;\n margin-bottom: 10px;\n\n button {\n background: #102693;\n padding: 10px 20px;\n color: white;\n border-radius: 4px;\n width: 190px;\n height: 40px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n svg {\n width: 23px;\n height: 23px;\n }\n }\n`\n\nexport const Result = styled.div`\n display: flex;\n justify-content: left;\n background: #F3F5F9;\n padding: 15px;\n border-radius: 5px;\n margin-top: 15px;\n\n .text{\n margin-left: 5px;\n font-size: 14px;\n }\n\n .icon {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 5px;\n\n svg {\n width: 35px;\n height: 35px;\n }\n }\n\n`","import styled from 'styled-components';\n\nexport const Container = styled.div`\n position: relative;\n width: 50%;\n margin-right: 5px;\n select {\n padding: 12px;\n border-radius: 4px;\n border: 1px solid #979AA5;\n width: 100%;\n height: 40px;\n :active {\n border: 2px #1939b7 solid;\n }\n }\n`;\n","import React, { useState } from 'react';\nimport * as S from './styles';\n\ninterface SelectOption {\n value: string | number;\n label: string;\n}\n\ninterface SelectProps {\n options: SelectOption[];\n onSelect: (value: string | number) => void;\n placeholder?: string;\n}\n\nconst Select: React.FC<SelectProps> = ({ options, onSelect, placeholder }) => {\n const [selectedValue, setSelectedValue] = useState<string | number>('');\n\n const handleSelectChange = (event: React.ChangeEvent<HTMLSelectElement>) => {\n const selectedOption = event.target.value;\n setSelectedValue(selectedOption);\n onSelect(selectedOption);\n };\n\n return (\n <S.Container>\n <select value={selectedValue} onChange={handleSelectChange}>\n <option value=\"\" disabled hidden>\n {placeholder}\n </option>\n {options.map(option => (\n <option key={option.value} value={option.value}>\n {option.label}\n </option>\n ))}\n </select>\n </S.Container>\n );\n};\n\nexport default Select;\n","import styled from 'styled-components';\nimport { FaMicrophone } from 'react-icons/fa';\n\nexport const Container = styled.div`\n position: relative;\n width: 100%;\n margin-right: 5px;\n`;\n\nexport const StyledInput = styled.input`\n padding-left: 10px;\n padding-right: 40px;\n border-radius: 5px;\n border: 1px solid #ccc;\n height: 40px;\n width: 100%;\n\n :active {\n border: 2px #1939b7 solid;\n }\n`;\n\nexport const RecordAudioButton = styled.div`\n position: absolute;\n top: 10px;\n right: 10px;\n cursor: pointer;\n`;\n\nexport const StyledMicrophoneIcon = styled(FaMicrophone)`\n pointer-events: none;\n`;\n","import React from 'react';\nimport * as S from './styles';\n\ninterface InputTestProps {\n placeholder: string;\n onChange: (value: string) => void;\n onRecordAudio: () => void;\n}\n\nconst InputTest: React.FC<InputTestProps> = ({ placeholder, onChange, onRecordAudio }) => {\n return (\n <S.Container>\n <S.StyledInput\n type=\"text\"\n onChange={(e: any) => onChange(e.target.value)}\n placeholder={placeholder}\n />\n <S.RecordAudioButton onClick={onRecordAudio}>\n <S.StyledMicrophoneIcon />\n </S.RecordAudioButton>\n </S.Container>\n );\n};\n\nexport default InputTest;\n","import React, { useState } from 'react';\nimport { getLanguage } from '../../utils/getLanguage'\nimport * as S from './styles';\nimport Select from './components/Select'\nimport InputTest from './components/InputTest'\nimport { PiWaveformBold } from 'react-icons/pi';\nimport { FaList } from 'react-icons/fa';\nimport EmptyState from '../EmptyState';\n// import IconLeia from '../../assets/icon_leia.svg';\nimport { MdPerson2 } from \"react-icons/md\";\n\nexport const TestArea = () => {\n const t = getLanguage('pt-br')\n const [results, setResults] = useState({ \"message\": \"\" });\n const [search, setSearch] = useState('');\n const tags = [\n \"pae\",\n \"boteria\",\n \"vr\",\n \"code7\",\n \"vidalink\"\n ]\n const personas = [\n {\n \"description\": \"Seriedade e profundidade ao explicar. Usa linguagem acadêmica e é preciso em temas específicos da área.\",\n \"name\": \"College professor\"\n },\n {\n \"description\": \"Abordagem descontraída, direto ao ponto. Linguagem simples, exemplos práticos para facilitar compreensão rápida.\",\n \"name\": \"School Teacher\"\n },\n {\n \"description\": \"Estilo descontraído, senso de humor único. Piadas e trocadilhos até em assuntos sérios.\",\n \"name\": \"Humorist\"\n },\n {\n \"description\": \"Postura centrada, comunicação direta e focada em resultados. Prioriza eficiência e precisão.\",\n \"name\": \"Military\"\n },\n {\n \"description\": \"Estilo único e carismático. Usa linguagem moderna, compartilha informações cativantes de forma descontraída.\",\n \"name\": \"Digital Influencer\"\n }\n ]\n\n const optionsPersona = personas.map(persona => {\n return { label: persona.name, value: persona.description }\n })\n\n const optionsPresset = tags.map(tag => {\n return { label: tag, value: tag }\n })\n\n const handleSelect = (value: string | number) => {\n console.log(value);\n };\n\n const handleSearch = (value: string) => {\n setSearch(value);\n };\n\n const handleRecordAudio = () => {\n console.log('Iniciando gravação de áudio...');\n };\n\n const handleTest = () => {\n console.log('Pesquisa: ', search)\n setResults({\n \"message\": \"Você precisa seguir algumas etapas importantes para ter um chatbot perfeito. Primeiro, defina claramente o objetivo do seu chatbot. Em seguida, crie uma mensagem de saudação cativante para atrair a atenção dos usuários. Não se esqueça de pedir feedbacks para melhorar constantemente o desempenho do seu chatbot. Além disso, construa um fluxo de conversa simples e utilize respostas curtas para manter a interação rápida e eficiente. Também é importante incorporar inteligência artificial para tornar o seu chatbot especialista em determinado assunto. Teste o seu bot antes de lançá-lo e personalize-o de acordo com as necessidades dos usuários. Por fim, direcione os usuários para um atendimento humano quando necessário. Seguindo essas dicas, você estará no caminho certo para ter um chatbot perfeito!\"\n })\n };\n\n return (\n <S.Container>\n <S.Header>\n <div className='infos'>\n <h2>{t.test}</h2>\n <p>{t.testArea.description}</p>\n </div>\n </S.Header>\n <S.Inputs>\n <InputTest placeholder={t.testArea.typeSentence} onChange={handleSearch} onRecordAudio={handleRecordAudio} />\n <Select placeholder={t.testArea.selectPersona} options={optionsPersona} onSelect={handleSelect} />\n <Select placeholder={t.testArea.selectPresset} options={optionsPresset} onSelect={handleSelect} />\n <button onClick={handleTest}><PiWaveformBold /> {t.buttons.test}</button>\n </S.Inputs>\n {\n results.message === '' ? (\n <EmptyState\n icon={<FaList></FaList>}\n title={t.testArea.emptyState.title}\n description={t.testArea.emptyState.description}\n activeButton={false}\n />\n ) : <S.Result>\n <div className='icon'>\n <MdPerson2 />\n </div>\n <div className='text'>{results.message}</div>\n </S.Result>\n }\n </S.Container>\n );\n};","import React, { useMemo, Suspense } from 'react';\n\nimport { Route, useLocation, useRouteMatch, useHistory, Switch as SwitchRoute } from 'react-router-dom';\n\nimport type { Props } from './index';\nimport { Tab, Tabs } from './components/Tabs'\n\nimport { getLanguage } from './utils/getLanguage'\n\nimport { FileArea } from './components/FileArea';\nimport { TestArea } from './components/TestArea';\n\nexport const Leia = (props: Props) => {\n const match = useRouteMatch();\n const { pathname } = useLocation();\n const history = useHistory();\n\n const t = getLanguage(props.language)\n\n const activeTab = useMemo(() => {\n return pathname.split('/')[5] || 'files';\n }, [pathname]);\n\n return (\n <>\n <Tabs\n value={activeTab}\n onChange={(value) => history.push(`${match.url}/${value}`)}\n >\n <Tab value=\"files\">{t.files}</Tab>\n <Tab value=\"test\">{t.test}</Tab>\n </Tabs>\n <Suspense fallback={props.loading}>\n <SwitchRoute>\n <Route path={`${match.path}`} exact component={FileArea} />\n <Route path={`${match.path}/files`} component={FileArea} />\n <Route path={`${match.path}/test`} component={TestArea} />\n </SwitchRoute>\n </Suspense>\n </>\n );\n};","import type { PropsWithChildren, ReactElement } from 'react';\nimport React from 'react';\nimport { Leia } from './Leia';\n\nexport type Props = PropsWithChildren<{\n id: string;\n activeTab: string;\n language: \"en\" | \"pt-br\" | \"es\";\n loading: ReactElement\n}>;\n\nexport function Code7(props: Props) {\n return <Leia {...props} />;\n}"],"names":["TabsPane","styled","ul","_templateObject","_taggedTemplateLiteralLoose","Tab","li","_templateObject2","_ref","active","children","rest","_objectWithoutPropertiesLoose","_excluded","React","S","className","cc","propTypes","PropTypes","oneOfType","string","element","node","isRequired","onChange","func","value","bool","defaultProps","Tabs","_ref2","childrenProp","_excluded2","Children","map","child","isValidElement","Array","isArray","_child$props","props","_child$props2","cloneElement","_child$props3","onClick","_child$props4","number","defaultLanguage","files","test","fileArea","description","fileName","presset","actions","search","fileUpload","emptyState","title","modal","descriptionUpload","chooseFile","buttons","cancel","send","testArea","typeSentence","selectPersona","selectPresset","getLanguage","language","languages","en","_extends","es","Container","div","Header","TableWrapper","Table","table","TableLoadingWrapper","_templateObject3","SpinnerWrapper","span","color","Spinner","_ref$color","_ref$size","size","forwardRef","ref","_ref$isLoading","isLoading","_ref$className","oneOf","SearchInput","placeholder","setFiles","initialFiles","searchName","e","searchTerm","target","trim","normalizedSearchTerm","unorm","nfkd","toLowerCase","newFiles","filter","file","normalizedFileName","name","includes","style","position","width","type","paddingLeft","borderRadius","border","height","top","left","pointerEvents","FaSearch","hasBorder","backgroundColor","_ref3","backgroundIcon","EmptyState","icon","activeButton","iconButton","descriptionButton","widthButton","button","FileArea","_useState","useState","_useState2","setInitialFiles","_useLocation","useLocation","pathname","id","split","t","useEffect","console","log","tags","tagsSplit","html","tag","join","renderFiles","Search","FaUpload","length","FaList","FaPlus","object","dangerouslySetInnerHTML","__html","Inputs","Result","_templateObject4","Select","options","onSelect","selectedValue","setSelectedValue","handleSelectChange","event","selectedOption","disabled","hidden","option","key","label","StyledInput","input","RecordAudioButton","StyledMicrophoneIcon","FaMicrophone","InputTest","onRecordAudio","TestArea","results","setResults","setSearch","personas","optionsPersona","persona","optionsPresset","handleSelect","handleSearch","handleRecordAudio","handleTest","PiWaveformBold","message","MdPerson2","Leia","match","useRouteMatch","history","useHistory","activeTab","useMemo","push","url","Suspense","fallback","loading","SwitchRoute","Route","path","exact","component","Code7"],"mappings":"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"}
1
+ {"version":3,"file":"code7-leia.esm.js","sources":["../src/components/Tabs/styles.tsx","../src/components/Tabs/index.tsx","../src/utils/getLanguage.tsx","../src/components/FileArea/styles.tsx","../src/components/FileArea/components/Table/styles.tsx","../src/components/FileArea/components/Spinner/styles.tsx","../src/components/FileArea/components/Spinner/index.tsx","../src/components/FileArea/components/Table/index.tsx","../src/components/FileArea/components/Search/index.tsx","../src/components/EmptyState/styles.tsx","../src/components/EmptyState/index.tsx","../src/components/FileArea/index.tsx","../src/components/TestArea/styles.tsx","../src/components/TestArea/components/Select/styles.tsx","../src/components/TestArea/components/Select/index.tsx","../src/components/TestArea/components/InputTest/styles.tsx","../src/components/TestArea/components/InputTest/index.tsx","../src/components/TestArea/index.tsx","../src/Leia.tsx","../src/index.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { ReactNode } from 'react';\n\ninterface TabProps {\n children: ReactNode;\n}\n\ninterface OptionProps {\n children: ReactNode;\n onClick: () => void;\n}\n\nexport const TabsPane = styled.ul`\n width: max-content;\n display: flex;\n align-items: center;\n border-bottom: 1px solid var(--neutral-1);\n`;\n\nexport const Tab = styled.li<TabProps>`\n padding: 12px;\n color: var(--neutral-3);\n font-size: 0.875rem;\n font-weight: normal;\n position: relative;\n cursor: pointer;\n\n svg {\n fill: var(--neutral-3) !important;\n margin-left: 8px;\n }\n\n &.active {\n color: var(--primary-700-light);\n\n svg {\n fill: var(--primary-700-light) !important;\n }\n\n ::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 2px;\n background-color: var(--primary-700-light);\n }\n }\n\n &:not(:last-child) {\n margin-right: 8px;\n }\n`;\n\nexport const DropdownContainer = styled.div`\n position: absolute;\n left: 0px;\n top: 40px;\n display: flex;\n flex-direction: column;\n\n background: #ffffff;\n\n border: 1px solid #979aa5;\n box-sizing: border-box;\n box-shadow: 0px 6px 12px -6px rgba(24, 39, 75, 0.12),\n 0px 8px 24px -4px rgba(24, 39, 75, 0.08);\n border-radius: 4px;\n padding: 8px;\n z-index: 2;\n`;\n\nexport const Option = styled.div<OptionProps>`\n padding: 8px;\n font-size: 14px;\n border-radius: 4px;\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover {\n background-color: var(--primary-800-light);\n color: white;\n }\n`;\n","import React, { ReactNode } from 'react';\nimport PropTypes from 'prop-types';\nimport cc from 'classcat';\n\nimport * as S from './styles';\n\ninterface TabProps {\n children: ReactNode;\n active?: boolean;\n}\n\ninterface ITabsProps {\n children: ReactNode;\n value: string | number;\n onChange: (e: any) => void;\n active?: boolean;\n}\n\nexport const Tab = ({ active, children, ...rest }: TabProps) => {\n return (\n <S.Tab className={cc({ active })} {...rest}>\n {children}\n </S.Tab>\n );\n};\n\nTab.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n ]).isRequired,\n onChange: PropTypes.func,\n value: PropTypes.string,\n active: PropTypes.bool,\n};\n\nTab.defaultProps = {\n onChange: () => {},\n value: '',\n active: false,\n};\n\nexport const Tabs = ({ children: childrenProp, value, onChange, ...rest }: ITabsProps) => {\n const children = React.Children.map(childrenProp, (child) => {\n if (!React.isValidElement(child)) {\n return null;\n }\n\n if (Array.isArray(child.props?.children)) {\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n value,\n onChange,\n });\n }\n\n return React.cloneElement(child as React.ReactElement<any>, {\n active: child.props?.value === value,\n onClick: () => onChange(child.props?.value),\n });\n });\n\n return <S.TabsPane {...rest}>{children}</S.TabsPane>;\n};\n\nTabs.propTypes = {\n children: PropTypes.node.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n onChange: PropTypes.func.isRequired,\n};\n","\nimport { Language } from '../interface/Language'\n\nconst defaultLanguage: Language = {\n files: 'Files',\n test: 'Test',\n fileArea: {\n description: 'bla bla bla bla bla',\n fileName: 'File name',\n presset: 'Presset',\n actions: 'Actions',\n search: 'Search',\n fileUpload: 'File upload',\n emptyState: {\n title: 'No data',\n description: 'bla bla bla bla bla',\n },\n modal: {\n descriptionUpload: 'Drag and drop files here or',\n chooseFile: 'Choose a file',\n },\n },\n buttons: {\n cancel: 'Cancel',\n send: 'Send',\n delete: 'Delete',\n test: 'Test',\n },\n testArea: {\n description: 'bla bla bla bla bla',\n typeSentence: 'Type a sentence',\n selectPersona: 'Select a Persona',\n selectPresset: 'Select a presset',\n emptyState: {\n title: 'No data for analysis',\n description: 'Do a search, click the \"Test\" button.',\n },\n },\n};\n\nexport const getLanguage = (language: keyof Record<'en' | 'pt-br' | 'es', Language>): Language => {\n const languages = {\n en: defaultLanguage,\n 'pt-br': {\n files: 'Arquivos',\n test: 'Teste',\n fileArea: {\n ...defaultLanguage.fileArea,\n fileName: 'Nome do arquivo',\n presset: 'Presset',\n actions: 'Ações',\n search: 'Pesquisar',\n fileUpload: 'Upload de arquivo',\n emptyState: {\n ...defaultLanguage.fileArea.emptyState,\n title: 'Sem dados',\n },\n modal: {\n ...defaultLanguage.fileArea.modal,\n descriptionUpload: 'Arraste e solte os arquivos aqui ou',\n chooseFile: 'Escolha um arquivo',\n },\n },\n buttons: {\n ...defaultLanguage.buttons,\n cancel: 'Cancelar',\n send: 'Enviar',\n delete: 'Excluir',\n test: 'Testar',\n },\n testArea: {\n ...defaultLanguage.testArea,\n description: 'Digite uma frase para testar a inteligência artificial.',\n typeSentence: 'Digite uma frase',\n selectPersona: 'Selecione uma Persona',\n selectPresset: 'Selecione uma predefinição',\n emptyState: {\n ...defaultLanguage.testArea.emptyState,\n title: 'Sem dados para análise',\n description: 'Faça uma pesquisa, clique no botão \"Teste\".',\n },\n },\n },\n es: {\n ...defaultLanguage,\n files: 'Archivos',\n test: 'Prueba',\n fileArea: {\n ...defaultLanguage.fileArea,\n fileName: 'Nombre del archivo',\n presset: 'Presset',\n actions: 'Acciones',\n search: 'Buscar',\n fileUpload: 'Carga de archivos',\n emptyState: {\n ...defaultLanguage.fileArea.emptyState,\n title: 'Sin datos',\n },\n modal: {\n ...defaultLanguage.fileArea.modal,\n descriptionUpload: 'Arrastre y suelte los archivos aquí o',\n chooseFile: 'Elegir un archivo',\n },\n },\n buttons: {\n ...defaultLanguage.buttons,\n cancel: 'Cancelar',\n send: 'Enviar',\n delete: 'Eliminar',\n test: 'Probar',\n },\n testArea: {\n ...defaultLanguage.testArea,\n description: 'bla bla bla bla bla',\n typeSentence: 'Escribe una oración',\n selectPersona: 'Seleccionar una Persona',\n selectPresset: 'Seleccionar una configuración preestablecida',\n emptyState: {\n ...defaultLanguage.testArea.emptyState,\n title: 'Sin datos para el análisis',\n description: 'Realiza una búsqueda, haz clic en el botón \"Prueba\".',\n },\n },\n },\n };\n\n return languages[language] || defaultLanguage;\n};\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n .tag {\n padding: 4px 8px 4px 8px;\n background: #C7F9ED;\n border-radius: 4px;\n }\n\n .tags {\n display: flex;\n justify-content: left;\n gap: 4px;\n }\n\n .divDelete {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n }\n\n .buttonDelete {\n color: #5b0a1f;\n background: #fae0d2;\n padding: 12px 20px;\n border-radius: 4px;\n }\n\n .buttonDelete:hover {\n background: #f5bba7;\n }\n`;\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n\n .infos {\n display: flex;\n flex-direction: column;\n padding: 14px 0;\n\n h2 {\n font-size: 20px\n }\n\n p {\n font-size: 14px\n }\n }\n\n .actions {\n display: flex;\n justify-content: space-between;\n padding-bottom: 14px;\n\n button {\n background: #102693;\n padding: 10px 20px;\n color: white;\n border-radius: 4px;\n }\n }\n\n`\n","import styled from 'styled-components';\n\nexport const TableWrapper = styled.div`\n width: 100%;\n height: max-content;\n min-height: 50px;\n position: relative;\n`;\n\nexport const Table = styled.table`\n font-size: 14px;\n line-height: 143%;\n color: black;\n width: 100%;\n border-collapse: collapse;\n border-radius: 4px;\n\n th {\n font-weight: 600;\n font-size: 14px;\n line-height: 143%;\n letter-spacing: 0.018em;\n color: #5A5D68;\n text-align: left;\n padding: 8px;\n border-radius: 4px;\n }\n\n thead tr {\n background: #dadce3;\n }\n\n tbody tr {\n border: 1px solid #dadce3;\n }\n\n &.small td {\n padding: 4px;\n }\n\n &.medium td {\n padding: 8px;\n }\n\n &.large td {\n padding: 16px;\n }\n`;\n\nexport const TableLoadingWrapper = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: #f3f5f961;\n`;\n","import styled from 'styled-components';\n\nexport const SpinnerWrapper = styled.span`\n display: inline-block;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &.spinner--sm {\n width: 24px;\n height: 24px;\n }\n\n &.spinner--md {\n width: 32px;\n height: 32px;\n }\n\n &.spinner--lg {\n width: 60px;\n height: 60px;\n }\n\n span {\n box-sizing: border-box;\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n margin: 8px;\n border: 4px solid #fff;\n border-radius: 50%;\n animation: rotateSpinner 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n border-color: ${(props) => `var(--${props.color})`} transparent transparent\n transparent;\n }\n\n & span:nth-child(1) {\n animation-delay: -0.45s;\n }\n\n & span:nth-child(2) {\n animation-delay: -0.3s;\n }\n\n & span:nth-child(3) {\n animation-delay: -0.15s;\n }\n\n @keyframes rotateSpinner {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n`;\n","import React from 'react';\nimport cc from 'classcat';\n\nimport * as S from './styles';\n\nimport { SpinnerProps } from '../../../../interface/Table'\n\nconst Spinner: React.FC<SpinnerProps> = ({ color = 'neutral-3', size = 'md', className }) => {\n return (\n <S.SpinnerWrapper\n color={color}\n className={cc([`spinner--${size}`, className])}\n >\n <span />\n <span />\n <span />\n <span />\n </S.SpinnerWrapper>\n );\n};\n\nexport default Spinner;\n","import React, { forwardRef, Ref } from 'react';\nimport PropTypes from 'prop-types';\nimport cc from 'classcat';\n\nimport * as S from './styles';\nimport Spinner from '../Spinner';\n\nimport { TableProps } from '../../../../interface/Table'\n\nconst Table = forwardRef(\n ({ size = 'medium', children, isLoading = false, className = '', ...props }: TableProps, ref: Ref<HTMLTableElement>) => {\n return (\n <S.TableWrapper className={className}>\n {isLoading ? (\n <S.TableLoadingWrapper>\n <Spinner />\n </S.TableLoadingWrapper>\n ) : null}\n <S.Table className={cc([size])} ref={ref} {...props}>\n {children}\n </S.Table>\n </S.TableWrapper>\n );\n }\n);\n\nTable.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n isLoading: PropTypes.bool,\n};\n\nexport default Table;\n","import React from 'react';\nimport unorm from 'unorm';\nimport { FaSearch } from 'react-icons/fa';\nimport type { FileData } from '../../../../interface/FileData'\n\ninterface SearchInputProps {\n placeholder: string;\n initialFiles: FileData[]\n setFiles: React.Dispatch<React.SetStateAction<FileData[]>>;\n}\n\nconst SearchInput: React.FC<SearchInputProps> = ({ placeholder, setFiles, initialFiles }) => {\n\n const searchName = (e: React.ChangeEvent<HTMLInputElement>) => {\n const searchTerm = e.target.value.trim();\n const normalizedSearchTerm = unorm.nfkd(searchTerm).toLowerCase();\n \n const newFiles = initialFiles.filter(file => {\n const normalizedFileName = unorm.nfkd(file.name).toLowerCase();\n return normalizedFileName.includes(normalizedSearchTerm);\n });\n \n setFiles(searchTerm !== '' ? newFiles : initialFiles);\n}\n \n\n return (\n <div style={{ position: 'relative', width: '300px' }}>\n <input\n type=\"text\"\n onChange={(e) => searchName(e)}\n placeholder={placeholder}\n style={{\n paddingLeft: '40px',\n borderRadius: '5px',\n border: '1px solid #ccc',\n height: '40px',\n width: '100%',\n }}\n />\n <div\n style={{\n position: 'absolute',\n top: '10px',\n left: '10px',\n pointerEvents: 'none', \n }}\n >\n <FaSearch />\n </div>\n </div>\n );\n};\n\nexport default SearchInput;\n","import styled from 'styled-components';\n\ninterface ContainerProps {\n hasBorder?: boolean;\n backgroundColor?: string;\n backgroundIcon?: string;\n}\n\nexport const Container = styled.div<ContainerProps>`\n width: 100%;\n display: flex;\n justify-content: center;\n padding: 24px 0;\n height: 193px;\n\n background: ${({ hasBorder }) =>\n hasBorder &&\n `linear-gradient(\n to right,\n #dadce3 50%,\n rgba(255, 255, 255, 0) 0%\n ),\n linear-gradient(#dadce3 50%, rgba(255, 255, 255, 0) 0%),\n linear-gradient(to right, #dadce3 50%, rgba(255, 255, 255, 0) 0%),\n linear-gradient(#dadce3 50%, rgba(255, 255, 255, 0) 0%)`};\n background-position: top, right, bottom, left;\n background-repeat: repeat-x, repeat-y;\n background-size: 40px 1px, 1px 40px;\n background-color: ${({ backgroundColor }) => backgroundColor};\n\n & .content {\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n & > .icon {\n background-color: ${({ backgroundIcon }) => backgroundIcon};\n border-radius: 16px;\n width: 145px;\n height: 145px;\n\n display: flex;\n justify-content: center;\n\n & svg {\n width: 100%;\n height: 70%;\n margin: 20px;\n }\n }\n\n & .description {\n max-width: 600px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n padding: 8px 0 8px 24px;\n\n .button-add {\n cursor: pointer;\n }\n\n .start-icon {\n display: flex;\n align-items: center;\n }\n }\n }\n`;\n","import React, { FC, ReactElement } from 'react';\nimport PropTypes from 'prop-types';\nimport * as S from './styles';\n\ninterface EmptyStateProps {\n icon?: string | ReactElement;\n title?: string;\n description?: string;\n activeButton?: boolean;\n iconButton?: ReactElement;\n descriptionButton?: string;\n widthButton?: string;\n button?: ReactElement;\n backgroundIcon?: string;\n backgroundColor?: string;\n hasBorder?: boolean;\n}\n\nconst EmptyState: FC<EmptyStateProps> = ({\n icon,\n title,\n description,\n activeButton,\n iconButton,\n descriptionButton,\n widthButton,\n button,\n backgroundIcon,\n backgroundColor,\n hasBorder,\n ...rest\n}) => {\n return (\n <S.Container\n backgroundIcon={backgroundIcon}\n backgroundColor={backgroundColor}\n hasBorder={hasBorder}\n {...rest}\n >\n <div className=\"content\">\n <div className=\"icon\">\n {icon}\n </div>\n <div className=\"description\">\n <h5> {title}</h5>\n\n <p>{description}</p>\n\n {activeButton ? (\n <button>\n {descriptionButton}\n </button>\n ) : null}\n\n {button}\n </div>\n </div>\n </S.Container>\n );\n};\n\nEmptyState.propTypes = {\n icon: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n title: PropTypes.string,\n description: PropTypes.string,\n activeButton: PropTypes.bool,\n iconButton: PropTypes.element,\n descriptionButton: PropTypes.string,\n widthButton: PropTypes.string,\n button: PropTypes.element,\n backgroundIcon: PropTypes.string,\n backgroundColor: PropTypes.string,\n hasBorder: PropTypes.bool,\n};\n\nEmptyState.defaultProps = {\n icon: '',\n title: '',\n description: '',\n activeButton: false,\n descriptionButton: '',\n widthButton: '140px',\n backgroundIcon: 'var(--neutral-0)',\n backgroundColor: 'var(--absolute-white)',\n hasBorder: true,\n};\n\nexport default EmptyState;\n","import React, { useEffect, useState} from 'react';\n\nimport { FaUpload, FaList, FaPlus } from 'react-icons/fa';\n\n// import { formatAxios } from '../../utils/formatAxios'\n\nimport { useLocation } from 'react-router-dom';\n\nimport type { FileData } from '../../interface/FileData'\n\nimport { getLanguage } from '../../utils/getLanguage'\n\nimport * as S from './styles';\nimport Table from './components/Table';\nimport Search from './components/Search';\nimport EmptyState from '../EmptyState';\n\nexport const FileArea = () => {\n const [files, setFiles] = useState<FileData[]>([]);\n const [initialFiles, setInitialFiles] = useState<FileData[]>([]);\n const { pathname } = useLocation();\n const id = pathname.split('/')[4]\n const t = getLanguage('pt-br')\n\n useEffect(() => {\n setFiles([\n {\n \"name\": \"Documentação conceitual Code7_v3\",\n \"tags\": \"boteria, code7\"\n },\n {\n \"name\": \"PAE_Programa_Apoio_ao_Empregado\",\n \"tags\": \"pae, vr\"\n },\n {\n \"name\": \"Vidalink\",\n \"tags\": \"vidalink, vr\"\n },\n {\n \"name\": \"[GUIA PRÁTICO] Como criar o chatbot perfeito\",\n \"tags\": \"ebook, code7\"\n }\n ])\n\n setInitialFiles([\n {\n \"name\": \"Documentação conceitual Code7_v3\",\n \"tags\": \"boteria, code7\"\n },\n {\n \"name\": \"PAE_Programa_Apoio_ao_Empregado\",\n \"tags\": \"pae, vr\"\n },\n {\n \"name\": \"Vidalink\",\n \"tags\": \"vidalink, vr\"\n },\n {\n \"name\": \"[GUIA PRÁTICO] Como criar o chatbot perfeito\",\n \"tags\": \"ebook, code7\"\n }\n ])\n }, [])\n\n useEffect(() => {\n console.log('files, id, t: ', files, id, t)\n }, [files])\n\n const presset = (tags: string) => {\n const tagsSplit = tags.split(',');\n let html = '';\n\n html += tagsSplit.map(tag => {\n return `<p class='tag'>${tag}</p>`;\n }).join('');\n\n return html;\n}\n\n const renderFiles = () => { \n return (\n <S.Container>\n <S.Header>\n <div className='infos'>\n <h2>{t.files}</h2>\n <p>{t.fileArea.description}</p>\n </div>\n <div className='actions'>\n <Search placeholder={t.fileArea.search} setFiles={setFiles} initialFiles={initialFiles}></Search>\n <button><FaUpload /> {t.fileArea.fileUpload}</button>\n </div>\n </S.Header>\n {\n files.length === 0 ? (\n <EmptyState\n icon={<FaList></FaList>}\n title={t.fileArea.emptyState.title}\n description={t.fileArea.emptyState.description}\n activeButton\n iconButton={<FaPlus style={{ width: '15px', height: '15px' }} />}\n descriptionButton={t.fileArea.modal.chooseFile}\n widthButton=\"230px\"\n />\n ) : <Table>\n <thead>\n <tr>\n <th className=\"th_file_name\">\n {t.fileArea.fileName}\n </th>\n <th className=\"th_pressets\">\n {t.fileArea.presset}\n </th>\n <th className=\"th_actions\">\n {t.fileArea.actions}\n </th>\n </tr>\n </thead>\n\n <tbody>\n {files.map((object) => (\n <tr>\n <td>{object.name}</td>\n <td className='tags' dangerouslySetInnerHTML={{ __html: presset(object.tags) }} />\n <td>\n <div className='divDelete'>\n <button className='buttonDelete'>{t.buttons.delete}</button>\n </div>\n </td>\n </tr>\n ))}\n </tbody>\n </Table>\n }\n \n </S.Container>\n );\n }\n\n return (\n <S.Container>\n {renderFiles()}\n </S.Container>\n );\n};","import styled from 'styled-components';\n\nexport const Container = styled.div`\n\n`;\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n .infos {\n display: flex;\n flex-direction: column;\n padding: 14px 0;\n\n h2 {\n font-size: 20px\n }\n\n p {\n font-size: 14px\n }\n }\n`\n\nexport const Inputs = styled.div`\n display: flex;\n justify-content: space-between;\n margin-bottom: 10px;\n\n button {\n background: #102693;\n padding: 10px 20px;\n color: white;\n border-radius: 4px;\n width: 190px;\n height: 40px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n svg {\n width: 23px;\n height: 23px;\n }\n }\n`\n\nexport const Result = styled.div`\n display: flex;\n justify-content: left;\n background: #F3F5F9;\n padding: 15px;\n border-radius: 5px;\n margin-top: 15px;\n\n .text{\n margin-left: 5px;\n font-size: 14px;\n }\n\n .icon {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 5px;\n\n svg {\n width: 35px;\n height: 35px;\n }\n }\n\n`","import styled from 'styled-components';\n\nexport const Container = styled.div`\n position: relative;\n width: 50%;\n margin-right: 5px;\n select {\n padding: 12px;\n border-radius: 4px;\n border: 1px solid #979AA5;\n width: 100%;\n height: 40px;\n \n &:focus {\n outline: none;\n box-shadow: 0 0 0 3px #6690ff;\n }\n }\n`;\n","import React, { useState } from 'react';\nimport * as S from './styles';\n\ninterface SelectOption {\n value: string | number;\n label: string;\n}\n\ninterface SelectProps {\n options: SelectOption[];\n onSelect: (value: string | number) => void;\n placeholder?: string;\n}\n\nconst Select: React.FC<SelectProps> = ({ options, onSelect, placeholder }) => {\n const [selectedValue, setSelectedValue] = useState<string | number>('');\n\n const handleSelectChange = (event: React.ChangeEvent<HTMLSelectElement>) => {\n const selectedOption = event.target.value;\n setSelectedValue(selectedOption);\n onSelect(selectedOption);\n };\n\n return (\n <S.Container>\n <select value={selectedValue} onChange={handleSelectChange}>\n <option value=\"\" disabled hidden>\n {placeholder}\n </option>\n {options.map(option => (\n <option key={option.value} value={option.value}>\n {option.label}\n </option>\n ))}\n </select>\n </S.Container>\n );\n};\n\nexport default Select;\n","import styled from 'styled-components';\nimport { FaMicrophone } from 'react-icons/fa';\n\nexport const Container = styled.div`\n position: relative;\n width: 100%;\n margin-right: 5px;\n`;\n\nexport const StyledInput = styled.input`\n padding-left: 10px;\n padding-right: 40px;\n border-radius: 5px;\n border: 1px solid #ccc;\n height: 40px;\n width: 100%;\n\n &:focus {\n outline: none;\n box-shadow: 0 0 0 3px #6690ff;\n }\n`;\n\nexport const RecordAudioButton = styled.div`\n position: absolute;\n top: 10px;\n right: 10px;\n cursor: pointer;\n`;\n\nexport const StyledMicrophoneIcon = styled(FaMicrophone)`\n pointer-events: none;\n`;\n","import React from 'react';\nimport * as S from './styles';\n\ninterface InputTestProps {\n placeholder: string;\n onChange: (value: string) => void;\n onRecordAudio: () => void;\n}\n\nconst InputTest: React.FC<InputTestProps> = ({ placeholder, onChange, onRecordAudio }) => {\n return (\n <S.Container>\n <S.StyledInput\n type=\"text\"\n onChange={(e: any) => onChange(e.target.value)}\n placeholder={placeholder}\n />\n <S.RecordAudioButton onClick={onRecordAudio}>\n <S.StyledMicrophoneIcon />\n </S.RecordAudioButton>\n </S.Container>\n );\n};\n\nexport default InputTest;\n","import React, { useState } from 'react';\nimport { getLanguage } from '../../utils/getLanguage'\nimport * as S from './styles';\nimport Select from './components/Select'\nimport InputTest from './components/InputTest'\nimport { PiWaveformBold } from 'react-icons/pi';\nimport { FaList } from 'react-icons/fa';\nimport EmptyState from '../EmptyState';\n// import IconLeia from '../../assets/icon_leia.svg';\nimport { MdPerson2 } from \"react-icons/md\";\n\nexport const TestArea = () => {\n const t = getLanguage('pt-br')\n const [results, setResults] = useState({ \"message\": \"\" });\n const [search, setSearch] = useState('');\n const tags = [\n \"pae\",\n \"boteria\",\n \"vr\",\n \"code7\",\n \"vidalink\"\n ]\n const personas = [\n {\n \"description\": \"Seriedade e profundidade ao explicar. Usa linguagem acadêmica e é preciso em temas específicos da área.\",\n \"name\": \"College professor\"\n },\n {\n \"description\": \"Abordagem descontraída, direto ao ponto. Linguagem simples, exemplos práticos para facilitar compreensão rápida.\",\n \"name\": \"School Teacher\"\n },\n {\n \"description\": \"Estilo descontraído, senso de humor único. Piadas e trocadilhos até em assuntos sérios.\",\n \"name\": \"Humorist\"\n },\n {\n \"description\": \"Postura centrada, comunicação direta e focada em resultados. Prioriza eficiência e precisão.\",\n \"name\": \"Military\"\n },\n {\n \"description\": \"Estilo único e carismático. Usa linguagem moderna, compartilha informações cativantes de forma descontraída.\",\n \"name\": \"Digital Influencer\"\n }\n ]\n\n const optionsPersona = personas.map(persona => {\n return { label: persona.name, value: persona.description }\n })\n\n const optionsPresset = tags.map(tag => {\n return { label: tag, value: tag }\n })\n\n const handleSelect = (value: string | number) => {\n console.log(value);\n };\n\n const handleSearch = (value: string) => {\n setSearch(value);\n };\n\n const handleRecordAudio = () => {\n console.log('Iniciando gravação de áudio...');\n };\n\n const handleTest = () => {\n console.log('Pesquisa: ', search)\n setResults({\n \"message\": \"Você precisa seguir algumas etapas importantes para ter um chatbot perfeito. Primeiro, defina claramente o objetivo do seu chatbot. Em seguida, crie uma mensagem de saudação cativante para atrair a atenção dos usuários. Não se esqueça de pedir feedbacks para melhorar constantemente o desempenho do seu chatbot. Além disso, construa um fluxo de conversa simples e utilize respostas curtas para manter a interação rápida e eficiente. Também é importante incorporar inteligência artificial para tornar o seu chatbot especialista em determinado assunto. Teste o seu bot antes de lançá-lo e personalize-o de acordo com as necessidades dos usuários. Por fim, direcione os usuários para um atendimento humano quando necessário. Seguindo essas dicas, você estará no caminho certo para ter um chatbot perfeito!\"\n })\n };\n\n return (\n <S.Container>\n <S.Header>\n <div className='infos'>\n <h2>{t.test}</h2>\n <p>{t.testArea.description}</p>\n </div>\n </S.Header>\n <S.Inputs>\n <InputTest placeholder={t.testArea.typeSentence} onChange={handleSearch} onRecordAudio={handleRecordAudio} />\n <Select placeholder={t.testArea.selectPersona} options={optionsPersona} onSelect={handleSelect} />\n <Select placeholder={t.testArea.selectPresset} options={optionsPresset} onSelect={handleSelect} />\n <button onClick={handleTest}><PiWaveformBold /> {t.buttons.test}</button>\n </S.Inputs>\n {\n results.message === '' ? (\n <EmptyState\n icon={<FaList></FaList>}\n title={t.testArea.emptyState.title}\n description={t.testArea.emptyState.description}\n activeButton={false}\n />\n ) : <S.Result>\n <div className='icon'>\n <MdPerson2 />\n </div>\n <div className='text'>{results.message}</div>\n </S.Result>\n }\n </S.Container>\n );\n};","import React, { useMemo, Suspense } from 'react';\n\nimport { Route, useLocation, useRouteMatch, useHistory, Switch as SwitchRoute } from 'react-router-dom';\n\nimport type { Props } from './index';\nimport { Tab, Tabs } from './components/Tabs'\n\nimport { getLanguage } from './utils/getLanguage'\n\nimport { FileArea } from './components/FileArea';\nimport { TestArea } from './components/TestArea';\n\nexport const Leia = (props: Props) => {\n const match = useRouteMatch();\n const { pathname } = useLocation();\n const history = useHistory();\n\n const t = getLanguage(props.language)\n\n const activeTab = useMemo(() => {\n return pathname.split('/')[5] || 'files';\n }, [pathname]);\n\n return (\n <>\n <Tabs\n value={activeTab}\n onChange={(value) => history.push(`${match.url}/${value}`)}\n >\n <Tab value=\"files\">{t.files}</Tab>\n <Tab value=\"test\">{t.test}</Tab>\n </Tabs>\n <Suspense fallback={props.loading}>\n <SwitchRoute>\n <Route path={`${match.path}`} exact component={FileArea} />\n <Route path={`${match.path}/files`} component={FileArea} />\n <Route path={`${match.path}/test`} component={TestArea} />\n </SwitchRoute>\n </Suspense>\n </>\n );\n};","import type { PropsWithChildren, ReactElement } from 'react';\nimport React from 'react';\nimport { Leia } from './Leia';\n\nexport type Props = PropsWithChildren<{\n id: string;\n activeTab: string;\n language: \"en\" | \"pt-br\" | \"es\";\n loading: ReactElement\n}>;\n\nexport function Code7(props: Props) {\n return <Leia {...props} />;\n}"],"names":["TabsPane","styled","ul","_templateObject","_taggedTemplateLiteralLoose","Tab","li","_templateObject2","_ref","active","children","rest","_objectWithoutPropertiesLoose","_excluded","React","S","className","cc","propTypes","PropTypes","oneOfType","string","element","node","isRequired","onChange","func","value","bool","defaultProps","Tabs","_ref2","childrenProp","_excluded2","Children","map","child","isValidElement","Array","isArray","_child$props","props","_child$props2","cloneElement","_child$props3","onClick","_child$props4","number","defaultLanguage","files","test","fileArea","description","fileName","presset","actions","search","fileUpload","emptyState","title","modal","descriptionUpload","chooseFile","buttons","cancel","send","testArea","typeSentence","selectPersona","selectPresset","getLanguage","language","languages","en","_extends","es","Container","div","Header","TableWrapper","Table","table","TableLoadingWrapper","_templateObject3","SpinnerWrapper","span","color","Spinner","_ref$color","_ref$size","size","forwardRef","ref","_ref$isLoading","isLoading","_ref$className","oneOf","SearchInput","placeholder","setFiles","initialFiles","searchName","e","searchTerm","target","trim","normalizedSearchTerm","unorm","nfkd","toLowerCase","newFiles","filter","file","normalizedFileName","name","includes","style","position","width","type","paddingLeft","borderRadius","border","height","top","left","pointerEvents","FaSearch","hasBorder","backgroundColor","_ref3","backgroundIcon","EmptyState","icon","activeButton","iconButton","descriptionButton","widthButton","button","FileArea","_useState","useState","_useState2","setInitialFiles","_useLocation","useLocation","pathname","id","split","t","useEffect","console","log","tags","tagsSplit","html","tag","join","renderFiles","Search","FaUpload","length","FaList","FaPlus","object","dangerouslySetInnerHTML","__html","Inputs","Result","_templateObject4","Select","options","onSelect","selectedValue","setSelectedValue","handleSelectChange","event","selectedOption","disabled","hidden","option","key","label","StyledInput","input","RecordAudioButton","StyledMicrophoneIcon","FaMicrophone","InputTest","onRecordAudio","TestArea","results","setResults","setSearch","personas","optionsPersona","persona","optionsPresset","handleSelect","handleSearch","handleRecordAudio","handleTest","PiWaveformBold","message","MdPerson2","Leia","match","useRouteMatch","history","useHistory","activeTab","useMemo","push","url","Suspense","fallback","loading","SwitchRoute","Route","path","exact","component","Code7"],"mappings":"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"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.41",
2
+ "version": "0.1.42",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -15,8 +15,9 @@ export const StyledInput = styled.input`
15
15
  height: 40px;
16
16
  width: 100%;
17
17
 
18
- :active {
19
- border: 2px #1939b7 solid;
18
+ &:focus {
19
+ outline: none;
20
+ box-shadow: 0 0 0 3px #6690ff;
20
21
  }
21
22
  `;
22
23
 
@@ -10,8 +10,10 @@ export const Container = styled.div`
10
10
  border: 1px solid #979AA5;
11
11
  width: 100%;
12
12
  height: 40px;
13
- :active {
14
- border: 2px #1939b7 solid;
13
+
14
+ &:focus {
15
+ outline: none;
16
+ box-shadow: 0 0 0 3px #6690ff;
15
17
  }
16
18
  }
17
19
  `;