code7-leia 0.1.29 → 0.1.31

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.
@@ -271,20 +271,15 @@ Table$1.propTypes = {
271
271
 
272
272
  var SearchInput = function SearchInput(_ref) {
273
273
  var placeholder = _ref.placeholder,
274
- files = _ref.files,
275
274
  setFiles = _ref.setFiles,
276
275
  initialFiles = _ref.initialFiles;
277
276
  var searchName = function searchName(e) {
278
277
  var searchTerm = e.target.value.trim();
279
278
  var normalizedSearchTerm = unorm.nfkd(searchTerm).toLowerCase();
280
- console.log('searchTerm: ', searchTerm);
281
- console.log('initialFiles: ', initialFiles);
282
- var newFiles = files.filter(function (file) {
279
+ var newFiles = initialFiles.filter(function (file) {
283
280
  var normalizedFileName = unorm.nfkd(file.name).toLowerCase();
284
281
  return normalizedFileName.includes(normalizedSearchTerm);
285
282
  });
286
- console.log('newFiles: ', newFiles);
287
- console.log('searchTerm !== "" ? newFiles : initialFiles: ', searchTerm !== '' ? newFiles : initialFiles);
288
283
  setFiles(searchTerm !== '' ? newFiles : initialFiles);
289
284
  };
290
285
  return React__default.createElement("div", {
@@ -315,6 +310,67 @@ var SearchInput = function SearchInput(_ref) {
315
310
  }, React__default.createElement(fa.FaSearch, null)));
316
311
  };
317
312
 
313
+ var _templateObject$4;
314
+ var Container$1 = /*#__PURE__*/styled.div(_templateObject$4 || (_templateObject$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\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 & img {\n width: 72px;\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 (_ref) {
315
+ var hasBorder = _ref.hasBorder;
316
+ return 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%)";
317
+ }, function (_ref2) {
318
+ var backgroundColor = _ref2.backgroundColor;
319
+ return backgroundColor;
320
+ }, function (_ref3) {
321
+ var backgroundIcon = _ref3.backgroundIcon;
322
+ return backgroundIcon;
323
+ });
324
+
325
+ var _excluded$2 = ["icon", "title", "description", "activeButton", "iconButton", "descriptionButton", "widthButton", "button", "backgroundIcon", "backgroundColor", "hasBorder"];
326
+ var EmptyState = function EmptyState(_ref) {
327
+ var icon = _ref.icon,
328
+ title = _ref.title,
329
+ description = _ref.description,
330
+ activeButton = _ref.activeButton,
331
+ descriptionButton = _ref.descriptionButton,
332
+ button = _ref.button,
333
+ backgroundIcon = _ref.backgroundIcon,
334
+ backgroundColor = _ref.backgroundColor,
335
+ hasBorder = _ref.hasBorder,
336
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
337
+ return React__default.createElement(Container$1, Object.assign({
338
+ backgroundIcon: backgroundIcon,
339
+ backgroundColor: backgroundColor,
340
+ hasBorder: hasBorder
341
+ }, rest), React__default.createElement("div", {
342
+ className: "content"
343
+ }, React__default.createElement("div", {
344
+ className: "icon"
345
+ }, icon), React__default.createElement("div", {
346
+ className: "description"
347
+ }, React__default.createElement("h5", null, " ", title), React__default.createElement("p", null, description), activeButton ? React__default.createElement("button", null, descriptionButton) : null, button)));
348
+ };
349
+ EmptyState.propTypes = {
350
+ icon: /*#__PURE__*/PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
351
+ title: PropTypes.string,
352
+ description: PropTypes.string,
353
+ activeButton: PropTypes.bool,
354
+ iconButton: PropTypes.element,
355
+ descriptionButton: PropTypes.string,
356
+ widthButton: PropTypes.string,
357
+ button: PropTypes.element,
358
+ backgroundIcon: PropTypes.string,
359
+ backgroundColor: PropTypes.string,
360
+ hasBorder: PropTypes.bool
361
+ };
362
+ EmptyState.defaultProps = {
363
+ icon: '',
364
+ title: '',
365
+ description: '',
366
+ activeButton: false,
367
+ descriptionButton: '',
368
+ widthButton: '140px',
369
+ backgroundIcon: 'var(--neutral-0)',
370
+ backgroundColor: 'var(--absolute-white)',
371
+ hasBorder: true
372
+ };
373
+
318
374
  var FileArea = function FileArea() {
319
375
  var _useState = React.useState([]),
320
376
  files = _useState[0],
@@ -367,7 +423,20 @@ var FileArea = function FileArea() {
367
423
  };
368
424
  var renderFiles = function renderFiles() {
369
425
  if (files.length === 0) {
370
- return null;
426
+ return React__default.createElement(EmptyState, {
427
+ icon: React__default.createElement(fa.FaList, null),
428
+ title: t.fileArea.emptyState.title,
429
+ description: t.fileArea.emptyState.description,
430
+ activeButton: true,
431
+ iconButton: React__default.createElement(fa.FaPlus, {
432
+ style: {
433
+ width: '15px',
434
+ height: '15px'
435
+ }
436
+ }),
437
+ descriptionButton: t.fileArea.modal.chooseFile,
438
+ widthButton: "230px"
439
+ });
371
440
  }
372
441
  return React__default.createElement(Container, null, React__default.createElement(Header, null, React__default.createElement("div", {
373
442
  className: 'infos'
@@ -375,7 +444,6 @@ var FileArea = function FileArea() {
375
444
  className: 'actions'
376
445
  }, React__default.createElement(SearchInput, {
377
446
  placeholder: t.fileArea.search,
378
- files: files,
379
447
  setFiles: setFiles,
380
448
  initialFiles: initialFiles
381
449
  }), React__default.createElement("button", null, React__default.createElement(fa.FaUpload, null), " ", t.fileArea.fileUpload))), React__default.createElement(Table$1, null, React__default.createElement("thead", null, React__default.createElement("tr", null, React__default.createElement("th", {
@@ -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/FileArea/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: 'bla bla bla bla bla',\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 files: FileData[]\n initialFiles: FileData[]\n setFiles: React.Dispatch<React.SetStateAction<FileData[]>>;\n}\n\nconst SearchInput: React.FC<SearchInputProps> = ({ placeholder, files, 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 console.log('searchTerm: ', searchTerm)\n console.log('initialFiles: ', initialFiles)\n \n const newFiles = files.filter(file => {\n const normalizedFileName = unorm.nfkd(file.name).toLowerCase();\n return normalizedFileName.includes(normalizedSearchTerm);\n });\n\n console.log('newFiles: ', newFiles)\n console.log('searchTerm !== \"\" ? newFiles : initialFiles: ', searchTerm !== '' ? newFiles : initialFiles)\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 React, { useEffect, useState} from 'react';\n\nimport { FaUpload } 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';\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 if (files.length === 0) {\n return null;\n }\n \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} files={files} setFiles={setFiles} initialFiles={initialFiles}></Search>\n <button><FaUpload /> {t.fileArea.fileUpload}</button>\n </div>\n </S.Header>\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 </S.Container>\n );\n }\n\n return (\n <S.Container>\n {renderFiles()}\n </S.Container>\n );\n};","import React from 'react';\n\nexport const TestArea = () => {\n return (\n <div>\n <p>Teste Area</p>\n \n </div>\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","console","log","newFiles","filter","file","normalizedFileName","name","includes","style","position","width","type","paddingLeft","borderRadius","border","height","top","left","pointerEvents","FaSearch","FileArea","_useState","useState","_useState2","setInitialFiles","_useLocation","useLocation","pathname","id","split","t","useEffect","tags","tagsSplit","html","tag","join","renderFiles","length","Search","FaUpload","object","dangerouslySetInnerHTML","__html","TestArea","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/FileArea/components/EmptyState/styles.tsx","../src/components/FileArea/components/EmptyState/index.tsx","../src/components/FileArea/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: 'bla bla bla bla bla',\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 & img {\n width: 72px;\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 './components/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 if (files.length === 0) {\n return <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 }\n \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 <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 </S.Container>\n );\n }\n\n return (\n <S.Container>\n {renderFiles()}\n </S.Container>\n );\n};","import React from 'react';\n\nexport const TestArea = () => {\n return (\n <div>\n <p>Teste Area</p>\n \n </div>\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","length","FaList","FaPlus","Search","FaUpload","object","dangerouslySetInnerHTML","__html","TestArea","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"),l=e(a),r=require("react-router-dom"),i=e(require("prop-types")),o=e(require("classcat")),s=e(require("styled-components")),c=require("react-icons/fa"),d=e(require("unorm"));function p(){return(p=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 u(e,n){if(null==e)return{};var t,a,l={},r=Object.keys(e);for(a=0;a<r.length;a++)n.indexOf(t=r[a])>=0||(l[t]=e[t]);return l}function m(e,n){return n||(n=e.slice(0)),e.raw=n,e}var f=s.ul(n||(n=m(["\n width: max-content;\n display: flex;\n align-items: center;\n border-bottom: 1px solid var(--neutral-1);\n"]))),h=s.li(t||(t=m(["\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"]))),b=["active","children"],g=["children","value","onChange"],v=function(e){var n=e.active,t=e.children,a=u(e,b);return l.createElement(h,Object.assign({className:o({active:n})},a),t)};v.propTypes={children:i.oneOfType([i.string,i.element,i.node]).isRequired,onChange:i.func,value:i.string,active:i.bool},v.defaultProps={onChange:function(){},value:"",active:!1};var x=function(e){var n=e.children,t=e.value,a=e.onChange,r=u(e,g),i=l.Children.map(n,(function(e){var n,r,i;return l.isValidElement(e)?Array.isArray(null==(n=e.props)?void 0:n.children)?l.cloneElement(e,{active:(null==(i=e.props)?void 0:i.value)===t,value:t,onChange:a}):l.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 l.createElement(f,Object.assign({},r),i)};x.propTypes={children:i.node.isRequired,value:i.oneOfType([i.string,i.number]).isRequired,onChange:i.func.isRequired};var E,y,A,S,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.'}}},k=function(e){return{en:N,"pt-br":{files:"Arquivos",test:"Teste",fileArea:p({},N.fileArea,{fileName:"Nome do arquivo",presset:"Presset",actions:"Ações",search:"Pesquisar",fileUpload:"Upload de arquivo",emptyState:p({},N.fileArea.emptyState,{title:"Sem dados"}),modal:p({},N.fileArea.modal,{descriptionUpload:"Arraste e solte os arquivos aqui ou",chooseFile:"Escolha um arquivo"})}),buttons:p({},N.buttons,{cancel:"Cancelar",send:"Enviar",delete:"Excluir",test:"Testar"}),testArea:p({},N.testArea,{description:"bla bla bla bla bla",typeSentence:"Digite uma frase",selectPersona:"Selecione uma Persona",selectPresset:"Selecione uma predefinição",emptyState:p({},N.testArea.emptyState,{title:"Sem dados para análise",description:'Faça uma pesquisa, clique no botão "Teste".'})})},es:p({},N,{files:"Archivos",test:"Prueba",fileArea:p({},N.fileArea,{fileName:"Nombre del archivo",presset:"Presset",actions:"Acciones",search:"Buscar",fileUpload:"Carga de archivos",emptyState:p({},N.fileArea.emptyState,{title:"Sin datos"}),modal:p({},N.fileArea.modal,{descriptionUpload:"Arrastre y suelte los archivos aquí o",chooseFile:"Elegir un archivo"})}),buttons:p({},N.buttons,{cancel:"Cancelar",send:"Enviar",delete:"Eliminar",test:"Probar"}),testArea:p({},N.testArea,{description:"bla bla bla bla bla",typeSentence:"Escribe una oración",selectPersona:"Seleccionar una Persona",selectPresset:"Seleccionar una configuración preestablecida",emptyState:p({},N.testArea.emptyState,{title:"Sin datos para el análisis",description:'Realiza una búsqueda, haz clic en el botón "Prueba".'})})})}[e]||N},q=s.div(E||(E=m(["\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"]))),w=s.div(y||(y=m(["\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(A||(A=m(["\n width: 100%;\n height: max-content;\n min-height: 50px;\n position: relative;\n"]))),T=s.table(S||(S=m(["\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"]))),_=s.div(C||(C=m(["\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"]))),j=s.span(P||(P=m(["\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+")"})),O=function(e){var n=e.color,t=e.size;return l.createElement(j,{color:void 0===n?"neutral-3":n,className:o(["spinner--"+(void 0===t?"md":t),e.className])},l.createElement("span",null),l.createElement("span",null),l.createElement("span",null),l.createElement("span",null))},R=["size","children","isLoading","className"],z=a.forwardRef((function(e,n){var t=e.size,a=void 0===t?"medium":t,r=e.children,i=e.isLoading,s=void 0!==i&&i,c=e.className,d=void 0===c?"":c,p=u(e,R);return l.createElement(F,{className:d},s?l.createElement(_,null,l.createElement(O,null)):null,l.createElement(T,Object.assign({className:o([a]),ref:n},p),r))}));z.propTypes={children:i.node.isRequired,className:i.string,size:i.oneOf(["small","medium","large"]),isLoading:i.bool};var D=function(e){var n=e.files,t=e.setFiles,a=e.initialFiles;return l.createElement("div",{style:{position:"relative",width:"300px"}},l.createElement("input",{type:"text",onChange:function(e){return function(e){var l=e.target.value.trim(),r=d.nfkd(l).toLowerCase();console.log("searchTerm: ",l),console.log("initialFiles: ",a);var i=n.filter((function(e){return d.nfkd(e.name).toLowerCase().includes(r)}));console.log("newFiles: ",i),console.log('searchTerm !== "" ? newFiles : initialFiles: ',""!==l?i:a),t(""!==l?i:a)}(e)},placeholder:e.placeholder,style:{paddingLeft:"40px",borderRadius:"5px",border:"1px solid #ccc",height:"40px",width:"100%"}}),l.createElement("div",{style:{position:"absolute",top:"10px",left:"10px",pointerEvents:"none"}},l.createElement(c.FaSearch,null)))},U=function(){var e=a.useState([]),n=e[0],t=e[1],i=a.useState([]),o=i[0],s=i[1],d=r.useLocation().pathname.split("/")[4],p=k("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]),l.createElement(q,null,0===n.length?null:l.createElement(q,null,l.createElement(w,null,l.createElement("div",{className:"infos"},l.createElement("h2",null,p.files),l.createElement("p",null,p.fileArea.description)),l.createElement("div",{className:"actions"},l.createElement(D,{placeholder:p.fileArea.search,files:n,setFiles:t,initialFiles:o}),l.createElement("button",null,l.createElement(c.FaUpload,null)," ",p.fileArea.fileUpload))),l.createElement(z,null,l.createElement("thead",null,l.createElement("tr",null,l.createElement("th",{className:"th_file_name"},p.fileArea.fileName),l.createElement("th",{className:"th_pressets"},p.fileArea.presset),l.createElement("th",{className:"th_actions"},p.fileArea.actions))),l.createElement("tbody",null,n.map((function(e){return l.createElement("tr",null,l.createElement("td",null,e.name),l.createElement("td",{className:"tags",dangerouslySetInnerHTML:{__html:(n=e.tags,t="",t+=n.split(",").map((function(e){return"<p class='tag'>"+e+"</p>"})).join(""))}}),l.createElement("td",null,l.createElement("div",{className:"divDelete"},l.createElement("button",{className:"buttonDelete"},p.buttons.delete))));var n,t}))))))},L=function(){return l.createElement("div",null,l.createElement("p",null,"Teste Area"))},I=function(e){var n=r.useRouteMatch(),t=r.useLocation().pathname,i=r.useHistory(),o=k(e.language),s=a.useMemo((function(){return t.split("/")[5]||"files"}),[t]);return l.createElement(l.Fragment,null,l.createElement(x,{value:s,onChange:function(e){return i.push(n.url+"/"+e)}},l.createElement(v,{value:"files"},o.files),l.createElement(v,{value:"test"},o.test)),l.createElement(a.Suspense,{fallback:e.loading},l.createElement(r.Switch,null,l.createElement(r.Route,{path:""+n.path,exact:!0,component:U}),l.createElement(r.Route,{path:n.path+"/files",component:U}),l.createElement(r.Route,{path:n.path+"/test",component:L}))))};exports.Code7=function(e){return l.createElement(I,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"),r=e(a),i=require("react-router-dom"),l=e(require("prop-types")),o=e(require("classcat")),s=e(require("styled-components")),c=require("react-icons/fa"),d=e(require("unorm"));function u(){return(u=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 p(e,n){if(null==e)return{};var t,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n.indexOf(t=i[a])>=0||(r[t]=e[t]);return r}function m(e,n){return n||(n=e.slice(0)),e.raw=n,e}var f=s.ul(n||(n=m(["\n width: max-content;\n display: flex;\n align-items: center;\n border-bottom: 1px solid var(--neutral-1);\n"]))),g=s.li(t||(t=m(["\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"]))),b=["active","children"],h=["children","value","onChange"],v=function(e){var n=e.active,t=e.children,a=p(e,b);return r.createElement(g,Object.assign({className:o({active:n})},a),t)};v.propTypes={children:l.oneOfType([l.string,l.element,l.node]).isRequired,onChange:l.func,value:l.string,active:l.bool},v.defaultProps={onChange:function(){},value:"",active:!1};var x=function(e){var n=e.children,t=e.value,a=e.onChange,i=p(e,h),l=r.Children.map(n,(function(e){var n,i,l;return r.isValidElement(e)?Array.isArray(null==(n=e.props)?void 0:n.children)?r.cloneElement(e,{active:(null==(l=e.props)?void 0:l.value)===t,value:t,onChange:a}):r.cloneElement(e,{active:(null==(i=e.props)?void 0:i.value)===t,onClick:function(){var n;return a(null==(n=e.props)?void 0:n.value)}}):null}));return r.createElement(f,Object.assign({},i),l)};x.propTypes={children:l.node.isRequired,value:l.oneOfType([l.string,l.number]).isRequired,onChange:l.func.isRequired};var E,y,A,k,S,w,C={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.'}}},N=function(e){return{en:C,"pt-br":{files:"Arquivos",test:"Teste",fileArea:u({},C.fileArea,{fileName:"Nome do arquivo",presset:"Presset",actions:"Ações",search:"Pesquisar",fileUpload:"Upload de arquivo",emptyState:u({},C.fileArea.emptyState,{title:"Sem dados"}),modal:u({},C.fileArea.modal,{descriptionUpload:"Arraste e solte os arquivos aqui ou",chooseFile:"Escolha um arquivo"})}),buttons:u({},C.buttons,{cancel:"Cancelar",send:"Enviar",delete:"Excluir",test:"Testar"}),testArea:u({},C.testArea,{description:"bla bla bla bla bla",typeSentence:"Digite uma frase",selectPersona:"Selecione uma Persona",selectPresset:"Selecione uma predefinição",emptyState:u({},C.testArea.emptyState,{title:"Sem dados para análise",description:'Faça uma pesquisa, clique no botão "Teste".'})})},es:u({},C,{files:"Archivos",test:"Prueba",fileArea:u({},C.fileArea,{fileName:"Nombre del archivo",presset:"Presset",actions:"Acciones",search:"Buscar",fileUpload:"Carga de archivos",emptyState:u({},C.fileArea.emptyState,{title:"Sin datos"}),modal:u({},C.fileArea.modal,{descriptionUpload:"Arrastre y suelte los archivos aquí o",chooseFile:"Elegir un archivo"})}),buttons:u({},C.buttons,{cancel:"Cancelar",send:"Enviar",delete:"Eliminar",test:"Probar"}),testArea:u({},C.testArea,{description:"bla bla bla bla bla",typeSentence:"Escribe una oración",selectPersona:"Seleccionar una Persona",selectPresset:"Seleccionar una configuración preestablecida",emptyState:u({},C.testArea.emptyState,{title:"Sin datos para el análisis",description:'Realiza una búsqueda, haz clic en el botón "Prueba".'})})})}[e]||C},P=s.div(E||(E=m(["\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(y||(y=m(["\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"]))),q=s.div(A||(A=m(["\n width: 100%;\n height: max-content;\n min-height: 50px;\n position: relative;\n"]))),j=s.table(k||(k=m(["\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"]))),F=s.div(S||(S=m(["\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(w||(w=m(["\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+")"})),T=function(e){var n=e.color,t=e.size;return r.createElement(O,{color:void 0===n?"neutral-3":n,className:o(["spinner--"+(void 0===t?"md":t),e.className])},r.createElement("span",null),r.createElement("span",null),r.createElement("span",null),r.createElement("span",null))},_=["size","children","isLoading","className"],z=a.forwardRef((function(e,n){var t=e.size,a=void 0===t?"medium":t,i=e.children,l=e.isLoading,s=void 0!==l&&l,c=e.className,d=void 0===c?"":c,u=p(e,_);return r.createElement(q,{className:d},s?r.createElement(F,null,r.createElement(T,null)):null,r.createElement(j,Object.assign({className:o([a]),ref:n},u),i))}));z.propTypes={children:l.node.isRequired,className:l.string,size:l.oneOf(["small","medium","large"]),isLoading:l.bool};var R,D=function(e){var n=e.setFiles,t=e.initialFiles;return r.createElement("div",{style:{position:"relative",width:"300px"}},r.createElement("input",{type:"text",onChange:function(e){return function(e){var a=e.target.value.trim(),r=d.nfkd(a).toLowerCase(),i=t.filter((function(e){return d.nfkd(e.name).toLowerCase().includes(r)}));n(""!==a?i:t)}(e)},placeholder:e.placeholder,style:{paddingLeft:"40px",borderRadius:"5px",border:"1px solid #ccc",height:"40px",width:"100%"}}),r.createElement("div",{style:{position:"absolute",top:"10px",left:"10px",pointerEvents:"none"}},r.createElement(c.FaSearch,null)))},I=s.div(R||(R=m(["\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 & img {\n width: 72px;\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})),U=["icon","title","description","activeButton","iconButton","descriptionButton","widthButton","button","backgroundIcon","backgroundColor","hasBorder"],L=function(e){var n=e.icon,t=e.title,a=e.description,i=e.activeButton,l=e.descriptionButton,o=e.button,s=e.backgroundIcon,c=e.backgroundColor,d=e.hasBorder,u=p(e,U);return r.createElement(I,Object.assign({backgroundIcon:s,backgroundColor:c,hasBorder:d},u),r.createElement("div",{className:"content"},r.createElement("div",{className:"icon"},n),r.createElement("div",{className:"description"},r.createElement("h5",null," ",t),r.createElement("p",null,a),i?r.createElement("button",null,l):null,o)))};L.propTypes={icon:l.oneOfType([l.string,l.element]),title:l.string,description:l.string,activeButton:l.bool,iconButton:l.element,descriptionButton:l.string,widthButton:l.string,button:l.element,backgroundIcon:l.string,backgroundColor:l.string,hasBorder:l.bool},L.defaultProps={icon:"",title:"",description:"",activeButton:!1,descriptionButton:"",widthButton:"140px",backgroundIcon:"var(--neutral-0)",backgroundColor:"var(--absolute-white)",hasBorder:!0};var M=function(){var e=a.useState([]),n=e[0],t=e[1],l=a.useState([]),o=l[0],s=l[1],d=i.useLocation().pathname.split("/")[4],u=N("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,u)}),[n]),r.createElement(P,null,0===n.length?r.createElement(L,{icon:r.createElement(c.FaList,null),title:u.fileArea.emptyState.title,description:u.fileArea.emptyState.description,activeButton:!0,iconButton:r.createElement(c.FaPlus,{style:{width:"15px",height:"15px"}}),descriptionButton:u.fileArea.modal.chooseFile,widthButton:"230px"}):r.createElement(P,null,r.createElement(B,null,r.createElement("div",{className:"infos"},r.createElement("h2",null,u.files),r.createElement("p",null,u.fileArea.description)),r.createElement("div",{className:"actions"},r.createElement(D,{placeholder:u.fileArea.search,setFiles:t,initialFiles:o}),r.createElement("button",null,r.createElement(c.FaUpload,null)," ",u.fileArea.fileUpload))),r.createElement(z,null,r.createElement("thead",null,r.createElement("tr",null,r.createElement("th",{className:"th_file_name"},u.fileArea.fileName),r.createElement("th",{className:"th_pressets"},u.fileArea.presset),r.createElement("th",{className:"th_actions"},u.fileArea.actions))),r.createElement("tbody",null,n.map((function(e){return r.createElement("tr",null,r.createElement("td",null,e.name),r.createElement("td",{className:"tags",dangerouslySetInnerHTML:{__html:(n=e.tags,t="",t+=n.split(",").map((function(e){return"<p class='tag'>"+e+"</p>"})).join(""))}}),r.createElement("td",null,r.createElement("div",{className:"divDelete"},r.createElement("button",{className:"buttonDelete"},u.buttons.delete))));var n,t}))))))},V=function(){return r.createElement("div",null,r.createElement("p",null,"Teste Area"))},G=function(e){var n=i.useRouteMatch(),t=i.useLocation().pathname,l=i.useHistory(),o=N(e.language),s=a.useMemo((function(){return t.split("/")[5]||"files"}),[t]);return r.createElement(r.Fragment,null,r.createElement(x,{value:s,onChange:function(e){return l.push(n.url+"/"+e)}},r.createElement(v,{value:"files"},o.files),r.createElement(v,{value:"test"},o.test)),r.createElement(a.Suspense,{fallback:e.loading},r.createElement(i.Switch,null,r.createElement(i.Route,{path:""+n.path,exact:!0,component:M}),r.createElement(i.Route,{path:n.path+"/files",component:M}),r.createElement(i.Route,{path:n.path+"/test",component:V}))))};exports.Code7=function(e){return r.createElement(G,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/FileArea/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: 'bla bla bla bla bla',\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 files: FileData[]\n initialFiles: FileData[]\n setFiles: React.Dispatch<React.SetStateAction<FileData[]>>;\n}\n\nconst SearchInput: React.FC<SearchInputProps> = ({ placeholder, files, 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 console.log('searchTerm: ', searchTerm)\n console.log('initialFiles: ', initialFiles)\n \n const newFiles = files.filter(file => {\n const normalizedFileName = unorm.nfkd(file.name).toLowerCase();\n return normalizedFileName.includes(normalizedSearchTerm);\n });\n\n console.log('newFiles: ', newFiles)\n console.log('searchTerm !== \"\" ? newFiles : initialFiles: ', searchTerm !== '' ? newFiles : initialFiles)\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 React, { useEffect, useState} from 'react';\n\nimport { FaUpload } 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';\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 if (files.length === 0) {\n return null;\n }\n \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} files={files} setFiles={setFiles} initialFiles={initialFiles}></Search>\n <button><FaUpload /> {t.fileArea.fileUpload}</button>\n </div>\n </S.Header>\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 </S.Container>\n );\n }\n\n return (\n <S.Container>\n {renderFiles()}\n </S.Container>\n );\n};","import React from 'react';\n\nexport const TestArea = () => {\n return (\n <div>\n <p>Teste Area</p>\n \n </div>\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","console","log","newFiles","filter","file","name","includes","searchName","placeholder","paddingLeft","borderRadius","border","height","top","left","pointerEvents","FaSearch","FileArea","_useState","useState","_useState2","setInitialFiles","id","useLocation","pathname","split","t","useEffect","tags","length","Search","FaUpload","object","dangerouslySetInnerHTML","__html","html","tag","join","TestArea","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/FileArea/components/EmptyState/styles.tsx","../src/components/FileArea/components/EmptyState/index.tsx","../src/components/FileArea/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: 'bla bla bla bla bla',\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 & img {\n width: 72px;\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 './components/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 if (files.length === 0) {\n return <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 }\n \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 <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 </S.Container>\n );\n }\n\n return (\n <S.Container>\n {renderFiles()}\n </S.Container>\n );\n};","import React from 'react';\n\nexport const TestArea = () => {\n return (\n <div>\n <p>Teste Area</p>\n \n </div>\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","length","FaList","FaPlus","Search","FaUpload","object","dangerouslySetInnerHTML","__html","html","tag","join","TestArea","Leia","match","useRouteMatch","history","useHistory","activeTab","useMemo","push","url","Suspense","fallback","loading","SwitchRoute","Route","path","exact","component"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { useLocation, useRouteMatch, useHistory, Switch, Route } from 'react-rou
3
3
  import PropTypes from 'prop-types';
4
4
  import cc from 'classcat';
5
5
  import styled from 'styled-components';
6
- import { FaSearch, FaUpload } from 'react-icons/fa';
6
+ import { FaSearch, FaList, FaPlus, FaUpload } from 'react-icons/fa';
7
7
  import unorm from 'unorm';
8
8
 
9
9
  function _extends() {
@@ -264,20 +264,15 @@ Table$1.propTypes = {
264
264
 
265
265
  var SearchInput = function SearchInput(_ref) {
266
266
  var placeholder = _ref.placeholder,
267
- files = _ref.files,
268
267
  setFiles = _ref.setFiles,
269
268
  initialFiles = _ref.initialFiles;
270
269
  var searchName = function searchName(e) {
271
270
  var searchTerm = e.target.value.trim();
272
271
  var normalizedSearchTerm = unorm.nfkd(searchTerm).toLowerCase();
273
- console.log('searchTerm: ', searchTerm);
274
- console.log('initialFiles: ', initialFiles);
275
- var newFiles = files.filter(function (file) {
272
+ var newFiles = initialFiles.filter(function (file) {
276
273
  var normalizedFileName = unorm.nfkd(file.name).toLowerCase();
277
274
  return normalizedFileName.includes(normalizedSearchTerm);
278
275
  });
279
- console.log('newFiles: ', newFiles);
280
- console.log('searchTerm !== "" ? newFiles : initialFiles: ', searchTerm !== '' ? newFiles : initialFiles);
281
276
  setFiles(searchTerm !== '' ? newFiles : initialFiles);
282
277
  };
283
278
  return React.createElement("div", {
@@ -308,6 +303,67 @@ var SearchInput = function SearchInput(_ref) {
308
303
  }, React.createElement(FaSearch, null)));
309
304
  };
310
305
 
306
+ var _templateObject$4;
307
+ var Container$1 = /*#__PURE__*/styled.div(_templateObject$4 || (_templateObject$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\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 & img {\n width: 72px;\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 (_ref) {
308
+ var hasBorder = _ref.hasBorder;
309
+ return 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%)";
310
+ }, function (_ref2) {
311
+ var backgroundColor = _ref2.backgroundColor;
312
+ return backgroundColor;
313
+ }, function (_ref3) {
314
+ var backgroundIcon = _ref3.backgroundIcon;
315
+ return backgroundIcon;
316
+ });
317
+
318
+ var _excluded$2 = ["icon", "title", "description", "activeButton", "iconButton", "descriptionButton", "widthButton", "button", "backgroundIcon", "backgroundColor", "hasBorder"];
319
+ var EmptyState = function EmptyState(_ref) {
320
+ var icon = _ref.icon,
321
+ title = _ref.title,
322
+ description = _ref.description,
323
+ activeButton = _ref.activeButton,
324
+ descriptionButton = _ref.descriptionButton,
325
+ button = _ref.button,
326
+ backgroundIcon = _ref.backgroundIcon,
327
+ backgroundColor = _ref.backgroundColor,
328
+ hasBorder = _ref.hasBorder,
329
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
330
+ return React.createElement(Container$1, Object.assign({
331
+ backgroundIcon: backgroundIcon,
332
+ backgroundColor: backgroundColor,
333
+ hasBorder: hasBorder
334
+ }, rest), React.createElement("div", {
335
+ className: "content"
336
+ }, React.createElement("div", {
337
+ className: "icon"
338
+ }, icon), React.createElement("div", {
339
+ className: "description"
340
+ }, React.createElement("h5", null, " ", title), React.createElement("p", null, description), activeButton ? React.createElement("button", null, descriptionButton) : null, button)));
341
+ };
342
+ EmptyState.propTypes = {
343
+ icon: /*#__PURE__*/PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
344
+ title: PropTypes.string,
345
+ description: PropTypes.string,
346
+ activeButton: PropTypes.bool,
347
+ iconButton: PropTypes.element,
348
+ descriptionButton: PropTypes.string,
349
+ widthButton: PropTypes.string,
350
+ button: PropTypes.element,
351
+ backgroundIcon: PropTypes.string,
352
+ backgroundColor: PropTypes.string,
353
+ hasBorder: PropTypes.bool
354
+ };
355
+ EmptyState.defaultProps = {
356
+ icon: '',
357
+ title: '',
358
+ description: '',
359
+ activeButton: false,
360
+ descriptionButton: '',
361
+ widthButton: '140px',
362
+ backgroundIcon: 'var(--neutral-0)',
363
+ backgroundColor: 'var(--absolute-white)',
364
+ hasBorder: true
365
+ };
366
+
311
367
  var FileArea = function FileArea() {
312
368
  var _useState = useState([]),
313
369
  files = _useState[0],
@@ -360,7 +416,20 @@ var FileArea = function FileArea() {
360
416
  };
361
417
  var renderFiles = function renderFiles() {
362
418
  if (files.length === 0) {
363
- return null;
419
+ return React.createElement(EmptyState, {
420
+ icon: React.createElement(FaList, null),
421
+ title: t.fileArea.emptyState.title,
422
+ description: t.fileArea.emptyState.description,
423
+ activeButton: true,
424
+ iconButton: React.createElement(FaPlus, {
425
+ style: {
426
+ width: '15px',
427
+ height: '15px'
428
+ }
429
+ }),
430
+ descriptionButton: t.fileArea.modal.chooseFile,
431
+ widthButton: "230px"
432
+ });
364
433
  }
365
434
  return React.createElement(Container, null, React.createElement(Header, null, React.createElement("div", {
366
435
  className: 'infos'
@@ -368,7 +437,6 @@ var FileArea = function FileArea() {
368
437
  className: 'actions'
369
438
  }, React.createElement(SearchInput, {
370
439
  placeholder: t.fileArea.search,
371
- files: files,
372
440
  setFiles: setFiles,
373
441
  initialFiles: initialFiles
374
442
  }), React.createElement("button", null, React.createElement(FaUpload, null), " ", t.fileArea.fileUpload))), React.createElement(Table$1, null, React.createElement("thead", null, React.createElement("tr", null, React.createElement("th", {
@@ -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/FileArea/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: 'bla bla bla bla bla',\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 files: FileData[]\n initialFiles: FileData[]\n setFiles: React.Dispatch<React.SetStateAction<FileData[]>>;\n}\n\nconst SearchInput: React.FC<SearchInputProps> = ({ placeholder, files, 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 console.log('searchTerm: ', searchTerm)\n console.log('initialFiles: ', initialFiles)\n \n const newFiles = files.filter(file => {\n const normalizedFileName = unorm.nfkd(file.name).toLowerCase();\n return normalizedFileName.includes(normalizedSearchTerm);\n });\n\n console.log('newFiles: ', newFiles)\n console.log('searchTerm !== \"\" ? newFiles : initialFiles: ', searchTerm !== '' ? newFiles : initialFiles)\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 React, { useEffect, useState} from 'react';\n\nimport { FaUpload } 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';\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 if (files.length === 0) {\n return null;\n }\n \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} files={files} setFiles={setFiles} initialFiles={initialFiles}></Search>\n <button><FaUpload /> {t.fileArea.fileUpload}</button>\n </div>\n </S.Header>\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 </S.Container>\n );\n }\n\n return (\n <S.Container>\n {renderFiles()}\n </S.Container>\n );\n};","import React from 'react';\n\nexport const TestArea = () => {\n return (\n <div>\n <p>Teste Area</p>\n \n </div>\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","console","log","newFiles","filter","file","normalizedFileName","name","includes","style","position","width","type","paddingLeft","borderRadius","border","height","top","left","pointerEvents","FaSearch","FileArea","_useState","useState","_useState2","setInitialFiles","_useLocation","useLocation","pathname","id","split","t","useEffect","tags","tagsSplit","html","tag","join","renderFiles","length","Search","FaUpload","object","dangerouslySetInnerHTML","__html","TestArea","Leia","match","useRouteMatch","history","useHistory","activeTab","useMemo","push","url","Suspense","fallback","loading","SwitchRoute","Route","path","exact","component","Code7"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,IAAMA,QAAQ,gBAAGC,MAAM,CAACC,EAAE,CAAAC,eAAA,KAAAA,eAAA,gBAAAC,2BAAA,yHAKhC;AAEM,IAAMC,GAAG,gBAAGJ,MAAM,CAACK,EAAE,CAAAC,gBAAA,KAAAA,gBAAA,gBAAAH,2BAAA,8lBAkC3B;;;;ACrDD,AAkBO,IAAMC,KAAG,GAAG,SAANA,KAAGA,CAAAG,IAAA;MAAMC,MAAM,GAAAD,IAAA,CAANC,MAAM;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAKC,IAAI,GAAAC,6BAAA,CAAAJ,IAAA,EAAAK,SAAA;EAC7C,OACEC,oBAACC,GAAK;IAACC,SAAS,EAAEC,EAAE,CAAC;MAAER,MAAM,EAANA;KAAQ;KAAOE,IAAI,GACvCD,QAAQ,CACH;AAEZ,CAAC;AAEDL,KAAG,CAACa,SAAS,GAAG;EACdR,QAAQ,eAAES,SAAS,CAACC,SAAS,CAAC,CAC5BD,SAAS,CAACE,MAAM,EAChBF,SAAS,CAACG,OAAO,EACjBH,SAAS,CAACI,IAAI,CACf,CAAC,CAACC,UAAU;EACbC,QAAQ,EAAEN,SAAS,CAACO,IAAI;EACxBC,KAAK,EAAER,SAAS,CAACE,MAAM;EACvBZ,MAAM,EAAEU,SAAS,CAACS;CACnB;AAEDvB,KAAG,CAACwB,YAAY,GAAG;EACjBJ,QAAQ,EAAE,SAAAA,aAAQ;EAClBE,KAAK,EAAE,EAAE;EACTlB,MAAM,EAAE;CACT;AAED,AAAO,IAAMqB,IAAI,GAAG,SAAPA,IAAIA,CAAAC,KAAA;MAAgBC,YAAY,GAAAD,KAAA,CAAtBrB,QAAQ;IAAgBiB,KAAK,GAAAI,KAAA,CAALJ,KAAK;IAAEF,QAAQ,GAAAM,KAAA,CAARN,QAAQ;IAAKd,IAAI,GAAAC,6BAAA,CAAAmB,KAAA,EAAAE,UAAA;EACrE,IAAMvB,QAAQ,GAAGI,KAAK,CAACoB,QAAQ,CAACC,GAAG,CAACH,YAAY,EAAE,UAACI,KAAK;;IACtD,IAAI,CAACtB,KAAK,CAACuB,cAAc,CAACD,KAAK,CAAC,EAAE;MAChC,OAAO,IAAI;;IAGb,IAAIE,KAAK,CAACC,OAAO,EAAAC,YAAA,GAACJ,KAAK,CAACK,KAAK,qBAAXD,YAAA,CAAa9B,QAAQ,CAAC,EAAE;MAAA,IAAAgC,aAAA;MACxC,OAAO5B,KAAK,CAAC6B,YAAY,CAACP,KAAgC,EAAE;QAC1D3B,MAAM,EAAE,EAAAiC,aAAA,GAAAN,KAAK,CAACK,KAAK,qBAAXC,aAAA,CAAaf,KAAK,MAAKA,KAAK;QACpCA,KAAK,EAALA,KAAK;QACLF,QAAQ,EAARA;OACD,CAAC;;IAGJ,OAAOX,KAAK,CAAC6B,YAAY,CAACP,KAAgC,EAAE;MAC1D3B,MAAM,EAAE,EAAAmC,aAAA,GAAAR,KAAK,CAACK,KAAK,qBAAXG,aAAA,CAAajB,KAAK,MAAKA,KAAK;MACpCkB,OAAO,EAAE,SAAAA;QAAA,IAAAC,aAAA;QAAA,OAAMrB,QAAQ,EAAAqB,aAAA,GAACV,KAAK,CAACK,KAAK,qBAAXK,aAAA,CAAanB,KAAK,CAAC;;KAC5C,CAAC;GACH,CAAC;EAEF,OAAOb,oBAACC,QAAU,oBAAKJ,IAAI,GAAGD,QAAQ,CAAc;AACtD,CAAC;AAEDoB,IAAI,CAACZ,SAAS,GAAG;EACfR,QAAQ,EAAES,SAAS,CAACI,IAAI,CAACC,UAAU;EACnCG,KAAK,eAAER,SAAS,CAACC,SAAS,CAAC,CAACD,SAAS,CAACE,MAAM,EAAEF,SAAS,CAAC4B,MAAM,CAAC,CAAC,CAACvB,UAAU;EAC3EC,QAAQ,EAAEN,SAAS,CAACO,IAAI,CAACF;CAC1B;;ACnED,IAAMwB,eAAe,GAAa;EAChCC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,QAAQ,EAAE;IACRC,WAAW,EAAE,qBAAqB;IAClCC,QAAQ,EAAE,WAAW;IACrBC,OAAO,EAAE,SAAS;IAClBC,OAAO,EAAE,SAAS;IAClBC,MAAM,EAAE,QAAQ;IAChBC,UAAU,EAAE,aAAa;IACzBC,UAAU,EAAE;MACVC,KAAK,EAAE,SAAS;MAChBP,WAAW,EAAE;KACd;IACDQ,KAAK,EAAE;MACLC,iBAAiB,EAAE,6BAA6B;MAChDC,UAAU,EAAE;;GAEf;EACDC,OAAO,EAAE;IACPC,MAAM,EAAE,QAAQ;IAChBC,IAAI,EAAE,MAAM;IACZ,UAAQ,QAAQ;IAChBf,IAAI,EAAE;GACP;EACDgB,QAAQ,EAAE;IACRd,WAAW,EAAE,qBAAqB;IAClCe,YAAY,EAAE,iBAAiB;IAC/BC,aAAa,EAAE,kBAAkB;IACjCC,aAAa,EAAE,kBAAkB;IACjCX,UAAU,EAAE;MACVC,KAAK,EAAE,sBAAsB;MAC7BP,WAAW,EAAE;;;CAGlB;AAED,AAAO,IAAMkB,WAAW,GAAG,SAAdA,WAAWA,CAAIC,QAAuD;EACjF,IAAMC,SAAS,GAAG;IAChBC,EAAE,EAAEzB,eAAe;IACnB,OAAO,EAAE;MACPC,KAAK,EAAE,UAAU;MACjBC,IAAI,EAAE,OAAO;MACbC,QAAQ,EAAAuB,QAAA,KACH1B,eAAe,CAACG,QAAQ;QAC3BE,QAAQ,EAAE,iBAAiB;QAC3BC,OAAO,EAAE,SAAS;QAClBC,OAAO,EAAE,OAAO;QAChBC,MAAM,EAAE,WAAW;QACnBC,UAAU,EAAE,mBAAmB;QAC/BC,UAAU,EAAAgB,QAAA,KACL1B,eAAe,CAACG,QAAQ,CAACO,UAAU;UACtCC,KAAK,EAAE;UACR;QACDC,KAAK,EAAAc,QAAA,KACA1B,eAAe,CAACG,QAAQ,CAACS,KAAK;UACjCC,iBAAiB,EAAE,qCAAqC;UACxDC,UAAU,EAAE;;QAEf;MACDC,OAAO,EAAAW,QAAA,KACF1B,eAAe,CAACe,OAAO;QAC1BC,MAAM,EAAE,UAAU;QAClBC,IAAI,EAAE,QAAQ;QACd,UAAQ,SAAS;QACjBf,IAAI,EAAE;QACP;MACDgB,QAAQ,EAAAQ,QAAA,KACH1B,eAAe,CAACkB,QAAQ;QAC3Bd,WAAW,EAAE,qBAAqB;QAClCe,YAAY,EAAE,kBAAkB;QAChCC,aAAa,EAAE,uBAAuB;QACtCC,aAAa,EAAE,4BAA4B;QAC3CX,UAAU,EAAAgB,QAAA,KACL1B,eAAe,CAACkB,QAAQ,CAACR,UAAU;UACtCC,KAAK,EAAE,wBAAwB;UAC/BP,WAAW,EAAE;;;KAGlB;IACDuB,EAAE,EAAAD,QAAA,KACG1B,eAAe;MAClBC,KAAK,EAAE,UAAU;MACjBC,IAAI,EAAE,QAAQ;MACdC,QAAQ,EAAAuB,QAAA,KACH1B,eAAe,CAACG,QAAQ;QAC3BE,QAAQ,EAAE,oBAAoB;QAC9BC,OAAO,EAAE,SAAS;QAClBC,OAAO,EAAE,UAAU;QACnBC,MAAM,EAAE,QAAQ;QAChBC,UAAU,EAAE,mBAAmB;QAC/BC,UAAU,EAAAgB,QAAA,KACL1B,eAAe,CAACG,QAAQ,CAACO,UAAU;UACtCC,KAAK,EAAE;UACR;QACDC,KAAK,EAAAc,QAAA,KACA1B,eAAe,CAACG,QAAQ,CAACS,KAAK;UACjCC,iBAAiB,EAAE,uCAAuC;UAC1DC,UAAU,EAAE;;QAEf;MACDC,OAAO,EAAAW,QAAA,KACF1B,eAAe,CAACe,OAAO;QAC1BC,MAAM,EAAE,UAAU;QAClBC,IAAI,EAAE,QAAQ;QACd,UAAQ,UAAU;QAClBf,IAAI,EAAE;QACP;MACDgB,QAAQ,EAAAQ,QAAA,KACH1B,eAAe,CAACkB,QAAQ;QAC3Bd,WAAW,EAAE,qBAAqB;QAClCe,YAAY,EAAE,qBAAqB;QACnCC,aAAa,EAAE,yBAAyB;QACxCC,aAAa,EAAE,8CAA8C;QAC7DX,UAAU,EAAAgB,QAAA,KACL1B,eAAe,CAACkB,QAAQ,CAACR,UAAU;UACtCC,KAAK,EAAE,4BAA4B;UACnCP,WAAW,EAAE;;;;GAIpB;EAED,OAAOoB,SAAS,CAACD,QAAQ,CAAC,IAAIvB,eAAe;AAC/C,CAAC;;;AC/HD,AAEO,IAAM4B,SAAS,gBAAG3E,MAAM,CAAC4E,GAAG,CAAA1E,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,qeA8BlC;AAED,AAAO,IAAM0E,MAAM,gBAAG7E,MAAM,CAAC4E,GAAG,CAAAtE,kBAAA,KAAAA,kBAAA,gBAAAH,2BAAA,6cA+B/B;;;ACjED,AAEO,IAAM2E,YAAY,gBAAG9E,MAAM,CAAC4E,GAAG,CAAA1E,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,8FAKrC;AAED,AAAO,IAAM4E,KAAK,gBAAG/E,MAAM,CAACgF,KAAK,CAAA1E,kBAAA,KAAAA,kBAAA,gBAAAH,2BAAA,wjBAsChC;AAED,AAAO,IAAM8E,mBAAmB,gBAAGjF,MAAM,CAAC4E,GAAG,CAAAM,gBAAA,KAAAA,gBAAA,gBAAA/E,2BAAA,yLAU5C;;;AC3DD,AAEO,IAAMgF,cAAc,gBAAGnF,MAAM,CAACoF,IAAI,CAAAlF,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,09BAgCrB,UAACqC,KAAK;EAAA,kBAAcA,KAAK,CAAC6C,KAAK;AAAA,CAAG,CAwBrD;;ACnDD,IAAMC,OAAO,GAA2B,SAAlCA,OAAOA,CAAA/E,IAAA;wBAA8B8E,KAAK;IAALA,KAAK,GAAAE,UAAA,cAAG,WAAW,GAAAA,UAAA;IAAAC,SAAA,GAAAjF,IAAA,CAAEkF,IAAI;IAAJA,IAAI,GAAAD,SAAA,cAAG,IAAI,GAAAA,SAAA;IAAEzE,SAAS,GAAAR,IAAA,CAATQ,SAAS;EACpF,OACEF,oBAACC,cAAgB;IACfuE,KAAK,EAAEA,KAAK;IACZtE,SAAS,EAAEC,EAAE,CAAC,eAAayE,IAAI,EAAI1E,SAAS,CAAC;KAE7CF,iCAAQ,EACRA,iCAAQ,EACRA,iCAAQ,EACRA,iCAAQ,CACS;AAEvB,CAAC;;;ACnBD,AASA,IAAMkE,OAAK,gBAAGW,UAAU,CACtB,UAAAnF,IAAA,EAAyFoF,GAA0B;uBAAhHF,IAAI;IAAJA,IAAI,GAAAD,SAAA,cAAG,QAAQ,GAAAA,SAAA;IAAE/E,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAAmF,cAAA,GAAArF,IAAA,CAAEsF,SAAS;IAATA,SAAS,GAAAD,cAAA,cAAG,KAAK,GAAAA,cAAA;IAAAE,cAAA,GAAAvF,IAAA,CAAEQ,SAAS;IAATA,SAAS,GAAA+E,cAAA,cAAG,EAAE,GAAAA,cAAA;IAAKtD,KAAK,GAAA7B,6BAAA,CAAAJ,IAAA,EAAAK,WAAA;EACvE,OACEC,oBAACC,YAAc;IAACC,SAAS,EAAEA;KACxB8E,SAAS,GACRhF,oBAACC,mBAAqB,QACpBD,oBAACyE,OAAO,OAAG,CACW,GACtB,IAAI,EACRzE,oBAACC,KAAO;IAACC,SAAS,EAAEC,EAAE,CAAC,CAACyE,IAAI,CAAC,CAAC;IAAEE,GAAG,EAAEA;KAASnD,KAAK,GAChD/B,QAAQ,CACD,CACK;AAErB,CAAC,CACF;AAEDsE,OAAK,CAAC9D,SAAS,GAAG;EAChBR,QAAQ,EAAES,SAAS,CAACI,IAAI,CAACC,UAAU;EACnCR,SAAS,EAAEG,SAAS,CAACE,MAAM;EAC3BqE,IAAI,eAAEvE,SAAS,CAAC6E,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;EACnDF,SAAS,EAAE3E,SAAS,CAACS;CACtB;;ACnBD,IAAMqE,WAAW,GAA+B,SAA1CA,WAAWA,CAAAzF,IAAA;MAAkC0F,WAAW,GAAA1F,IAAA,CAAX0F,WAAW;IAAEjD,KAAK,GAAAzC,IAAA,CAALyC,KAAK;IAAEkD,QAAQ,GAAA3F,IAAA,CAAR2F,QAAQ;IAAEC,YAAY,GAAA5F,IAAA,CAAZ4F,YAAY;EAE3F,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAIC,CAAsC;IACxD,IAAMC,UAAU,GAAGD,CAAC,CAACE,MAAM,CAAC7E,KAAK,CAAC8E,IAAI,EAAE;IACxC,IAAMC,oBAAoB,GAAGC,KAAK,CAACC,IAAI,CAACL,UAAU,CAAC,CAACM,WAAW,EAAE;IAEjEC,OAAO,CAACC,GAAG,CAAC,cAAc,EAAER,UAAU,CAAC;IACvCO,OAAO,CAACC,GAAG,CAAC,gBAAgB,EAAEX,YAAY,CAAC;IAE3C,IAAMY,QAAQ,GAAG/D,KAAK,CAACgE,MAAM,CAAC,UAAAC,IAAI;MAC9B,IAAMC,kBAAkB,GAAGR,KAAK,CAACC,IAAI,CAACM,IAAI,CAACE,IAAI,CAAC,CAACP,WAAW,EAAE;MAC9D,OAAOM,kBAAkB,CAACE,QAAQ,CAACX,oBAAoB,CAAC;KAC3D,CAAC;IAEFI,OAAO,CAACC,GAAG,CAAC,YAAY,EAAEC,QAAQ,CAAC;IACnCF,OAAO,CAACC,GAAG,CAAC,+CAA+C,EAAER,UAAU,KAAK,EAAE,GAAGS,QAAQ,GAAGZ,YAAY,CAAC;IAEzGD,QAAQ,CAACI,UAAU,KAAK,EAAE,GAAGS,QAAQ,GAAGZ,YAAY,CAAC;GACxD;EAGC,OACEtF;IAAKwG,KAAK,EAAE;MAAEC,QAAQ,EAAE,UAAU;MAAEC,KAAK,EAAE;;KACzC1G;IACE2G,IAAI,EAAC,MAAM;IACXhG,QAAQ,EAAE,SAAAA,SAAC6E,CAAC;MAAA,OAAKD,UAAU,CAACC,CAAC,CAAC;;IAC9BJ,WAAW,EAAEA,WAAW;IACxBoB,KAAK,EAAE;MACLI,WAAW,EAAE,MAAM;MACnBC,YAAY,EAAE,KAAK;MACnBC,MAAM,EAAE,gBAAgB;MACxBC,MAAM,EAAE,MAAM;MACdL,KAAK,EAAE;;IAET,EACF1G;IACEwG,KAAK,EAAE;MACLC,QAAQ,EAAE,UAAU;MACpBO,GAAG,EAAE,MAAM;MACXC,IAAI,EAAE,MAAM;MACZC,aAAa,EAAE;;KAGjBlH,oBAACmH,QAAQ,OAAG,CACR,CACF;AAEV,CAAC;;AC3CM,IAAMC,QAAQ,GAAG,SAAXA,QAAQA;EACnB,IAAAC,SAAA,GAA0BC,QAAQ,CAAa,EAAE,CAAC;IAA3CnF,KAAK,GAAAkF,SAAA;IAAEhC,QAAQ,GAAAgC,SAAA;EACtB,IAAAE,UAAA,GAAwCD,QAAQ,CAAa,EAAE,CAAC;IAAzDhC,YAAY,GAAAiC,UAAA;IAAEC,eAAe,GAAAD,UAAA;EACpC,IAAAE,YAAA,GAAqBC,WAAW,EAAE;IAA1BC,QAAQ,GAAAF,YAAA,CAARE,QAAQ;EAChB,IAAMC,EAAE,GAAGD,QAAQ,CAACE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EACjC,IAAMC,CAAC,GAAGtE,WAAW,CAAC,OAAO,CAAC;EAE9BuE,SAAS,CAAC;IACR1C,QAAQ,CAAC,CACL;MACE,MAAM,EAAE,kCAAkC;MAC1C,MAAM,EAAE;KACT,EACD;MACE,MAAM,EAAE,iCAAiC;MACzC,MAAM,EAAE;KACT,EACD;MACE,MAAM,EAAE,UAAU;MAClB,MAAM,EAAE;KACT,EACD;MACE,MAAM,EAAE,8CAA8C;MACtD,MAAM,EAAE;KACT,CACF,CAAC;IAEJmC,eAAe,CAAC,CACd;MACE,MAAM,EAAE,kCAAkC;MAC1C,MAAM,EAAE;KACT,EACD;MACE,MAAM,EAAE,iCAAiC;MACzC,MAAM,EAAE;KACT,EACD;MACE,MAAM,EAAE,UAAU;MAClB,MAAM,EAAE;KACT,EACD;MACE,MAAM,EAAE,8CAA8C;MACtD,MAAM,EAAE;KACT,CACF,CAAC;GACH,EAAE,EAAE,CAAC;EAENO,SAAS,CAAC;IACR/B,OAAO,CAACC,GAAG,CAAC,gBAAgB,EAAE9D,KAAK,EAAEyF,EAAE,EAAEE,CAAC,CAAC;GAC5C,EAAE,CAAC3F,KAAK,CAAC,CAAC;EAEX,IAAMK,OAAO,GAAG,SAAVA,OAAOA,CAAIwF,IAAY;IAC3B,IAAMC,SAAS,GAAGD,IAAI,CAACH,KAAK,CAAC,GAAG,CAAC;IACjC,IAAIK,IAAI,GAAG,EAAE;IAEbA,IAAI,IAAID,SAAS,CAAC5G,GAAG,CAAC,UAAA8G,GAAG;MACvB,2BAAyBA,GAAG;KAC7B,CAAC,CAACC,IAAI,CAAC,EAAE,CAAC;IAEX,OAAOF,IAAI;GACd;EAEC,IAAMG,WAAW,GAAG,SAAdA,WAAWA;IACf,IAAIlG,KAAK,CAACmG,MAAM,KAAK,CAAC,EAAE;MACtB,OAAO,IAAI;;IAGb,OACEtI,oBAACC,SAAW,QACVD,oBAACC,MAAQ,QACPD;MAAKE,SAAS,EAAC;OACbF,gCAAK8H,CAAC,CAAC3F,KAAK,CAAM,EAClBnC,+BAAI8H,CAAC,CAACzF,QAAQ,CAACC,WAAW,CAAK,CAC3B,EACNtC;MAAKE,SAAS,EAAC;OACbF,oBAACuI,WAAM;MAACnD,WAAW,EAAE0C,CAAC,CAACzF,QAAQ,CAACK,MAAM;MAAEP,KAAK,EAAEA,KAAK;MAAEkD,QAAQ,EAAEA,QAAQ;MAAEC,YAAY,EAAEA;MAAuB,EAC/GtF,oCAAQA,oBAACwI,QAAQ,OAAG,OAAEV,CAAC,CAACzF,QAAQ,CAACM,UAAU,CAAU,CACjD,CACG,EACX3C,oBAACkE,OAAK,QACJlE,mCACEA,gCACEA;MAAIE,SAAS,EAAC;OACX4H,CAAC,CAACzF,QAAQ,CAACE,QAAQ,CACjB,EACLvC;MAAIE,SAAS,EAAC;OACb4H,CAAC,CAACzF,QAAQ,CAACG,OAAO,CACd,EACLxC;MAAIE,SAAS,EAAC;OACb4H,CAAC,CAACzF,QAAQ,CAACI,OAAO,CACd,CACF,CACC,EAERzC,mCACGmC,KAAK,CAACd,GAAG,CAAC,UAACoH,MAAM;MAAA,OAChBzI,gCACEA,gCAAKyI,MAAM,CAACnC,IAAI,CAAM,EACtBtG;QAAIE,SAAS,EAAC,MAAM;QAACwI,uBAAuB,EAAE;UAAEC,MAAM,EAAEnG,OAAO,CAACiG,MAAM,CAACT,IAAI;;QAAO,EAClFhI,gCACEA;QAAKE,SAAS,EAAC;SACbF;QAAQE,SAAS,EAAC;SAAgB4H,CAAC,CAAC7E,OAAO,UAAO,CAAU,CACxD,CACH,CACF;KACN,CAAC,CACI,CACF,CACI;GAEjB;EAED,OACEjD,oBAACC,SAAW,QACToI,WAAW,EAAE,CACF;AAElB,CAAC;;ACnIM,IAAMO,QAAQ,GAAG,SAAXA,QAAQA;EACnB,OACE5I,iCACEA,4CAAiB,CAEb;AAEV,CAAC;;ACGM,IAAM6I,IAAI,GAAG,SAAPA,IAAIA,CAAIlH,KAAY;EAC/B,IAAMmH,KAAK,GAAGC,aAAa,EAAE;EAC7B,IAAAtB,YAAA,GAAqBC,WAAW,EAAE;IAA1BC,QAAQ,GAAAF,YAAA,CAARE,QAAQ;EAChB,IAAMqB,OAAO,GAAGC,UAAU,EAAE;EAE5B,IAAMnB,CAAC,GAAGtE,WAAW,CAAC7B,KAAK,CAAC8B,QAAQ,CAAC;EAErC,IAAMyF,SAAS,GAAGC,OAAO,CAAC;IACxB,OAAOxB,QAAQ,CAACE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO;GACzC,EAAE,CAACF,QAAQ,CAAC,CAAC;EAEd,OACE3H,0CACEA,oBAACgB,IAAI;IACHH,KAAK,EAAEqI,SAAS;IAChBvI,QAAQ,EAAE,SAAAA,SAACE,KAAK;MAAA,OAAKmI,OAAO,CAACI,IAAI,CAAIN,KAAK,CAACO,GAAG,SAAIxI,KAAO,CAAC;;KAE1Db,oBAACT,KAAG;IAACsB,KAAK,EAAC;KAASiH,CAAC,CAAC3F,KAAK,CAAO,EAClCnC,oBAACT,KAAG;IAACsB,KAAK,EAAC;KAAQiH,CAAC,CAAC1F,IAAI,CAAO,CAC3B,EACPpC,oBAACsJ,QAAQ;IAACC,QAAQ,EAAE5H,KAAK,CAAC6H;KACxBxJ,oBAACyJ,MAAW,QACVzJ,oBAAC0J,KAAK;IAACC,IAAI,OAAKb,KAAK,CAACa,IAAM;IAAEC,KAAK;IAACC,SAAS,EAAEzC;IAAY,EAC3DpH,oBAAC0J,KAAK;IAACC,IAAI,EAAKb,KAAK,CAACa,IAAI,WAAQ;IAAEE,SAAS,EAAEzC;IAAY,EAC3DpH,oBAAC0J,KAAK;IAACC,IAAI,EAAKb,KAAK,CAACa,IAAI,UAAO;IAAEE,SAAS,EAAEjB;IAAY,CAC9C,CACL,CACV;AAEP,CAAC;;SC9BekB,KAAKA,CAACnI,KAAY;EAChC,OAAO3B,oBAAC6I,IAAI,oBAAKlH,KAAK,EAAI;AAC5B;;;;"}
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/FileArea/components/EmptyState/styles.tsx","../src/components/FileArea/components/EmptyState/index.tsx","../src/components/FileArea/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: 'bla bla bla bla bla',\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 & img {\n width: 72px;\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 './components/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 if (files.length === 0) {\n return <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 }\n \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 <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 </S.Container>\n );\n }\n\n return (\n <S.Container>\n {renderFiles()}\n </S.Container>\n );\n};","import React from 'react';\n\nexport const TestArea = () => {\n return (\n <div>\n <p>Teste Area</p>\n \n </div>\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","length","FaList","FaPlus","Search","FaUpload","object","dangerouslySetInnerHTML","__html","TestArea","Leia","match","useRouteMatch","history","useHistory","activeTab","useMemo","push","url","Suspense","fallback","loading","SwitchRoute","Route","path","exact","component","Code7"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { FC, ReactElement } from 'react';
2
+ interface EmptyStateProps {
3
+ icon?: string | ReactElement;
4
+ title?: string;
5
+ description?: string;
6
+ activeButton?: boolean;
7
+ iconButton?: ReactElement;
8
+ descriptionButton?: string;
9
+ widthButton?: string;
10
+ button?: ReactElement;
11
+ backgroundIcon?: string;
12
+ backgroundColor?: string;
13
+ hasBorder?: boolean;
14
+ }
15
+ declare const EmptyState: FC<EmptyStateProps>;
16
+ export default EmptyState;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ interface ContainerProps {
3
+ hasBorder?: boolean;
4
+ backgroundColor?: string;
5
+ backgroundIcon?: string;
6
+ }
7
+ export declare const Container: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, ContainerProps>>;
8
+ export {};
@@ -2,7 +2,6 @@ import React from 'react';
2
2
  import type { FileData } from '../../../../interface/FileData';
3
3
  interface SearchInputProps {
4
4
  placeholder: string;
5
- files: FileData[];
6
5
  initialFiles: FileData[];
7
6
  setFiles: React.Dispatch<React.SetStateAction<FileData[]>>;
8
7
  }
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.29",
2
+ "version": "0.1.31",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -0,0 +1,88 @@
1
+ import React, { FC, ReactElement } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import * as S from './styles';
4
+
5
+ interface EmptyStateProps {
6
+ icon?: string | ReactElement;
7
+ title?: string;
8
+ description?: string;
9
+ activeButton?: boolean;
10
+ iconButton?: ReactElement;
11
+ descriptionButton?: string;
12
+ widthButton?: string;
13
+ button?: ReactElement;
14
+ backgroundIcon?: string;
15
+ backgroundColor?: string;
16
+ hasBorder?: boolean;
17
+ }
18
+
19
+ const EmptyState: FC<EmptyStateProps> = ({
20
+ icon,
21
+ title,
22
+ description,
23
+ activeButton,
24
+ iconButton,
25
+ descriptionButton,
26
+ widthButton,
27
+ button,
28
+ backgroundIcon,
29
+ backgroundColor,
30
+ hasBorder,
31
+ ...rest
32
+ }) => {
33
+ return (
34
+ <S.Container
35
+ backgroundIcon={backgroundIcon}
36
+ backgroundColor={backgroundColor}
37
+ hasBorder={hasBorder}
38
+ {...rest}
39
+ >
40
+ <div className="content">
41
+ <div className="icon">
42
+ {icon}
43
+ </div>
44
+ <div className="description">
45
+ <h5> {title}</h5>
46
+
47
+ <p>{description}</p>
48
+
49
+ {activeButton ? (
50
+ <button>
51
+ {descriptionButton}
52
+ </button>
53
+ ) : null}
54
+
55
+ {button}
56
+ </div>
57
+ </div>
58
+ </S.Container>
59
+ );
60
+ };
61
+
62
+ EmptyState.propTypes = {
63
+ icon: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
64
+ title: PropTypes.string,
65
+ description: PropTypes.string,
66
+ activeButton: PropTypes.bool,
67
+ iconButton: PropTypes.element,
68
+ descriptionButton: PropTypes.string,
69
+ widthButton: PropTypes.string,
70
+ button: PropTypes.element,
71
+ backgroundIcon: PropTypes.string,
72
+ backgroundColor: PropTypes.string,
73
+ hasBorder: PropTypes.bool,
74
+ };
75
+
76
+ EmptyState.defaultProps = {
77
+ icon: '',
78
+ title: '',
79
+ description: '',
80
+ activeButton: false,
81
+ descriptionButton: '',
82
+ widthButton: '140px',
83
+ backgroundIcon: 'var(--neutral-0)',
84
+ backgroundColor: 'var(--absolute-white)',
85
+ hasBorder: true,
86
+ };
87
+
88
+ export default EmptyState;
@@ -0,0 +1,67 @@
1
+ import styled from 'styled-components';
2
+
3
+ interface ContainerProps {
4
+ hasBorder?: boolean;
5
+ backgroundColor?: string;
6
+ backgroundIcon?: string;
7
+ }
8
+
9
+ export const Container = styled.div<ContainerProps>`
10
+ width: 100%;
11
+ display: flex;
12
+ justify-content: center;
13
+ padding: 24px 0;
14
+ height: 193px;
15
+
16
+ background: ${({ hasBorder }) =>
17
+ hasBorder &&
18
+ `linear-gradient(
19
+ to right,
20
+ #dadce3 50%,
21
+ rgba(255, 255, 255, 0) 0%
22
+ ),
23
+ linear-gradient(#dadce3 50%, rgba(255, 255, 255, 0) 0%),
24
+ linear-gradient(to right, #dadce3 50%, rgba(255, 255, 255, 0) 0%),
25
+ linear-gradient(#dadce3 50%, rgba(255, 255, 255, 0) 0%)`};
26
+ background-position: top, right, bottom, left;
27
+ background-repeat: repeat-x, repeat-y;
28
+ background-size: 40px 1px, 1px 40px;
29
+ background-color: ${({ backgroundColor }) => backgroundColor};
30
+
31
+ & .content {
32
+ display: flex;
33
+ justify-content: space-between;
34
+ align-items: center;
35
+
36
+ & > .icon {
37
+ background-color: ${({ backgroundIcon }) => backgroundIcon};
38
+ border-radius: 16px;
39
+ width: 145px;
40
+ height: 145px;
41
+
42
+ display: flex;
43
+ justify-content: center;
44
+
45
+ & img {
46
+ width: 72px;
47
+ }
48
+ }
49
+
50
+ & .description {
51
+ max-width: 600px;
52
+ display: flex;
53
+ flex-direction: column;
54
+ justify-content: space-between;
55
+ padding: 8px 0 8px 24px;
56
+
57
+ .button-add {
58
+ cursor: pointer;
59
+ }
60
+
61
+ .start-icon {
62
+ display: flex;
63
+ align-items: center;
64
+ }
65
+ }
66
+ }
67
+ `;
@@ -5,27 +5,20 @@ import type { FileData } from '../../../../interface/FileData'
5
5
 
6
6
  interface SearchInputProps {
7
7
  placeholder: string;
8
- files: FileData[]
9
8
  initialFiles: FileData[]
10
9
  setFiles: React.Dispatch<React.SetStateAction<FileData[]>>;
11
10
  }
12
11
 
13
- const SearchInput: React.FC<SearchInputProps> = ({ placeholder, files, setFiles, initialFiles }) => {
12
+ const SearchInput: React.FC<SearchInputProps> = ({ placeholder, setFiles, initialFiles }) => {
14
13
 
15
14
  const searchName = (e: React.ChangeEvent<HTMLInputElement>) => {
16
15
  const searchTerm = e.target.value.trim();
17
16
  const normalizedSearchTerm = unorm.nfkd(searchTerm).toLowerCase();
18
-
19
- console.log('searchTerm: ', searchTerm)
20
- console.log('initialFiles: ', initialFiles)
21
17
 
22
- const newFiles = files.filter(file => {
18
+ const newFiles = initialFiles.filter(file => {
23
19
  const normalizedFileName = unorm.nfkd(file.name).toLowerCase();
24
20
  return normalizedFileName.includes(normalizedSearchTerm);
25
21
  });
26
-
27
- console.log('newFiles: ', newFiles)
28
- console.log('searchTerm !== "" ? newFiles : initialFiles: ', searchTerm !== '' ? newFiles : initialFiles)
29
22
 
30
23
  setFiles(searchTerm !== '' ? newFiles : initialFiles);
31
24
  }
@@ -1,6 +1,6 @@
1
1
  import React, { useEffect, useState} from 'react';
2
2
 
3
- import { FaUpload } from 'react-icons/fa';
3
+ import { FaUpload, FaList, FaPlus } from 'react-icons/fa';
4
4
 
5
5
  // import { formatAxios } from '../../utils/formatAxios'
6
6
 
@@ -13,6 +13,7 @@ import { getLanguage } from '../../utils/getLanguage'
13
13
  import * as S from './styles';
14
14
  import Table from './components/Table';
15
15
  import Search from './components/Search';
16
+ import EmptyState from './components/EmptyState';
16
17
 
17
18
  export const FileArea = () => {
18
19
  const [files, setFiles] = useState<FileData[]>([]);
@@ -78,7 +79,15 @@ export const FileArea = () => {
78
79
 
79
80
  const renderFiles = () => {
80
81
  if (files.length === 0) {
81
- return null;
82
+ return <EmptyState
83
+ icon={<FaList></FaList>}
84
+ title={t.fileArea.emptyState.title}
85
+ description={t.fileArea.emptyState.description}
86
+ activeButton
87
+ iconButton={<FaPlus style={{ width: '15px', height: '15px' }} />}
88
+ descriptionButton={t.fileArea.modal.chooseFile}
89
+ widthButton="230px"
90
+ />
82
91
  }
83
92
 
84
93
  return (
@@ -89,7 +98,7 @@ export const FileArea = () => {
89
98
  <p>{t.fileArea.description}</p>
90
99
  </div>
91
100
  <div className='actions'>
92
- <Search placeholder={t.fileArea.search} files={files} setFiles={setFiles} initialFiles={initialFiles}></Search>
101
+ <Search placeholder={t.fileArea.search} setFiles={setFiles} initialFiles={initialFiles}></Search>
93
102
  <button><FaUpload /> {t.fileArea.fileUpload}</button>
94
103
  </div>
95
104
  </S.Header>