From 37a6aba5644c87732cbfbc2604f30a69940ff8b3 Mon Sep 17 00:00:00 2001 From: WillianLomeu Date: Wed, 28 Jun 2023 13:00:58 -0300 Subject: [PATCH 1/6] feat(accordion): added storybook examples and openAll method --- .storybook/manager.js | 2 +- src/components.d.ts | 5 + src/components/accordion/accordion-group.tsx | 16 + .../accordion/accordion.stories.jsx | 277 +++++++++++++++++- src/components/accordion/accordion.tsx | 2 + 5 files changed, 288 insertions(+), 14 deletions(-) diff --git a/.storybook/manager.js b/.storybook/manager.js index c2c92111..334e74bd 100644 --- a/.storybook/manager.js +++ b/.storybook/manager.js @@ -6,7 +6,7 @@ addons.setConfig({ showPanel: true, panelPosition: 'bottom', enableShortcuts: true, - showToolbar: false, + showToolbar: true, theme: undefined, selectedPanel: undefined, initialActive: 'sidebar', diff --git a/src/components.d.ts b/src/components.d.ts index 3ca7c492..7822e638 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -73,6 +73,7 @@ export namespace Components { * Focus Selected. Used to add title in header accordion. */ "collapse"?: collapses; + "openAll": (actNumber: any) => Promise; } interface BdsAccordionHeader { /** @@ -2643,6 +2644,10 @@ declare namespace LocalJSX { * bdsAccordionCloseAll. Event to return value when accordion is closed. */ "onBdsAccordionCloseAll"?: (event: BdsAccordionGroupCustomEvent) => void; + /** + * bdsAccordionOpenAll. Event to return value when accordion is opend. + */ + "onBdsAccordionOpenAll"?: (event: BdsAccordionGroupCustomEvent) => void; } interface BdsAccordionHeader { /** diff --git a/src/components/accordion/accordion-group.tsx b/src/components/accordion/accordion-group.tsx index 1620686c..0ae9bcca 100644 --- a/src/components/accordion/accordion-group.tsx +++ b/src/components/accordion/accordion-group.tsx @@ -20,6 +20,10 @@ export class AccordionGroup { * bdsAccordionCloseAll. Event to return value when accordion is closed. */ @Event() bdsAccordionCloseAll?: EventEmitter; + /** + * bdsAccordionOpenAll. Event to return value when accordion is opend. + */ + @Event() bdsAccordionOpenAll?: EventEmitter; @Method() async closeAll(actNumber) { @@ -33,6 +37,18 @@ export class AccordionGroup { } } + @Method() + async openAll(actNumber) { + this.bdsAccordionOpenAll.emit(); + for (let i = 0; i < this.accordionsElement.length; i++) { + if (this.collapse != 'multiple') { + if (actNumber != i) this.accordionsElement[i].open(); + } else { + this.accordionsElement[i].open(); + } + } + } + componentWillRender() { this.accordionsElement = this.element.getElementsByTagName( 'bds-accordion' diff --git a/src/components/accordion/accordion.stories.jsx b/src/components/accordion/accordion.stories.jsx index 9acade61..9963bebf 100644 --- a/src/components/accordion/accordion.stories.jsx +++ b/src/components/accordion/accordion.stories.jsx @@ -1,8 +1,10 @@ import React from 'react'; +import { useEffect } from 'react'; import readme from './readme.md'; export default { title: 'Accordion', + tags: ['autodocs'], parameters: { notes: { markdown: readme }, }, @@ -11,21 +13,272 @@ export default { const paragraph = 'Um accordion é uma lista de cabeçalhos empilhados verticalmente que revelam ou ocultam seções de conteúdo associados.'; -export const accordionDefault = (args) => { +export const accordionProps = (args) => { return ( - - - + + + + {paragraph} + + + ); +}; + +accordionProps.argTypes = { + accordionTitle: { + table: { + defaultValue: { summary: 'vazio' }, + }, + description: 'Coloque o titulo do cabeçalho.', + control: 'text', + }, + icon: { + table: { + defaultValue: { summary: 'vazio' }, + }, + description: 'Defina o ícone que será utilizado no botão (Apenas outline).', + control: 'text', + }, + avatarName: { + table: { + defaultValue: { summary: 'vazio' }, + }, + description: 'Defina o nome aplicado no avatar.', + control: 'text', + }, + avatarThumb: { + table: { + defaultValue: { summary: 'vazio' }, + }, + description: 'Insira o link da imagem.', + control: 'text', + }, + startOpen: { + table: { + defaultValue: { summary: 'false' }, + }, + description: 'Escolha se o accordion será iniciado aberto.', + control: 'boolean', + }, +}; + +accordionProps.args = { + accordionTitle: 'Título do accordion', + avatarName: '', + avatarThumb: '', + icon: '', + startOpen: false, +}; + +export const accordionMethod = () => { + const btToggle = async (id) => { + const acc = document.getElementById(id); + await acc.toggle(); + }; + const btOpen = async (id) => { + const acc = document.getElementById(id); + await acc.open(); + }; + const btClose = async (id) => { + const acc = document.getElementById(id); + await acc.close(); + }; + return ( + + + btToggle('accordion')} variant="primary" size="short"> + Toggle + + btOpen('accordion')} variant="primary" size="short"> + Open + + btClose('accordion')} variant="primary" size="short"> + Close + + + + + + {paragraph} + + + + ); +}; + +export const accordionEvent = () => { + useEffect(() => { + const accToggle = document.getElementById('accEvent'); + accToggle.addEventListener('bdsToggle', () => { + console.log('Evento toggle funcionando'); + }); + const accOpen = document.getElementById('accEvent'); + accOpen.addEventListener('bdsAccordionOpen', () => { + console.log('Evento Open funcionando'); + }); + const accClose = document.getElementById('accEvent'); + accClose.addEventListener('bdsAccordionClose', () => { + console.log('Evento Close funcionando'); + }); + }); + return ( + + + + {paragraph} + + + ); +}; + +export const accordionGroupProps = (args) => { + return ( + + + + + {paragraph} + + + + + + {paragraph} + + + + ); +}; +accordionGroupProps.argTypes = { + ...accordionProps.argTypes, + collapse: { + table: { + defaultValue: { summary: 'single' }, + }, + description: 'Escolha o comportamento de abertura do accordion.', + options: ['single', 'multiple'], + control: 'select', + }, +}; +accordionGroupProps.args = { + accordionTitle: 'Título do accordion', + avatarName: '', + avatarThumb: '', + collapse: 'single', + icon: '', + startOpen: false, +}; + +export const accordionGroupMethod = () => { + const handleOpen = async (id) => { + const acc = document.getElementById(id); + await acc.openAll(); + }; + + const handleClose = async (id) => { + const acc = document.getElementById(id); + await acc.closeAll(); + }; + + return ( + + + + handleOpen('gp')} variant="primary" size="short"> + OpenAll + + handleClose('gp')} variant="primary" size="short"> + CloseAll + + + + + - {args.content} + {paragraph} - + + + + {paragraph} + + + + + + ); +}; + +export const accordionGroupEvent = () => { + useEffect(() => { + const accGroupEvent = document.getElementById('accGroupEvent'); + accGroupEvent.addEventListener('bdsAccordionCloseAll', () => { + console.log('Evento do accordion group funcionando'); + }); + }); + const handleCloseAll = (id) => { + const close = document.getElementById(id); + close.closeAll(); + }; + return ( + + handleCloseAll('accGroupEvent')} variant="primary" size="short"> + Close All + + + + + + {paragraph} + + + + + + {paragraph} + + + + + ); +}; + +export const accordionDefault = (args) => { + return ( + + + + + {args.content} + + + ); }; @@ -103,8 +356,6 @@ const groupTemplate = (args) => { ); }; - - export const AccordionSingle = groupTemplate.bind({}); AccordionSingle.args = { collapse: 'single', diff --git a/src/components/accordion/accordion.tsx b/src/components/accordion/accordion.tsx index 21cfba6d..1c5a7bfe 100644 --- a/src/components/accordion/accordion.tsx +++ b/src/components/accordion/accordion.tsx @@ -51,11 +51,13 @@ export class AccordionGroup { this.accBodies?.close(); } + // Método interno @Method() async notStart() { this.startOpen = false; } + // Método interno @Method() async reciveNumber(number) { this.numberElement = number; From 40bb0ec6af81d483bddd1d28356634c4356aa3b3 Mon Sep 17 00:00:00 2001 From: WillianLomeu Date: Tue, 4 Jul 2023 23:38:59 -0300 Subject: [PATCH 2/6] feat(storybook): created theme --- .storybook/preview-body.html | 1 + .storybook/preview.css | 34 ++++++++ .storybook/preview.js | 80 ++++++++++++++----- .../accordion/accordion.stories.jsx | 21 +++-- src/components/tabs/tabs.tsx | 4 +- 5 files changed, 108 insertions(+), 32 deletions(-) create mode 100644 .storybook/preview.css diff --git a/.storybook/preview-body.html b/.storybook/preview-body.html index 8bfd750b..a0550ca2 100644 --- a/.storybook/preview-body.html +++ b/.storybook/preview-body.html @@ -12,5 +12,6 @@ body #storybook-root { width: 100%; height: 100%; + padding: 0 !important; } \ No newline at end of file diff --git a/.storybook/preview.css b/.storybook/preview.css new file mode 100644 index 00000000..dd81c8bf --- /dev/null +++ b/.storybook/preview.css @@ -0,0 +1,34 @@ +.open-functions { + background-color: #0096fa; + width: 56px; + height: 56px; + margin: 16px; + align-items: center; + border-radius: 8px; + position: absolute; + transition: width 0.3s ease; + overflow: hidden; +} + +#themes { + visibility: hidden; + display: none; + padding-right: 16px; + transition: visibility 1.6s ease 1s; +} + +.open-functions:hover { + width: 268px; + padding-right: 0; + overflow: visible; +} + +.open-functions:hover #themes { + visibility: visible; + display: block; +} + +bds-icon { + padding: 0 16px; + color: #ffffff; +} diff --git a/.storybook/preview.js b/.storybook/preview.js index ba052931..08884784 100644 --- a/.storybook/preview.js +++ b/.storybook/preview.js @@ -1,18 +1,21 @@ import { defineCustomElements } from '../dist/esm/loader'; import { withConsole } from '@storybook/addon-console'; +import { useEffect, useState } from 'react'; +import './preview.css'; + defineCustomElements(); export const globalTypes = { - theme: { + hasTheme: { name: 'Theme', description: 'Defina o tema que o componente será aplicado', - defaultValue: 'light', + defaultValue: 'on', toolbar: { icon: 'paintbrush', - items: ['light', 'dark'], - } - } -} + items: ['on', 'off'], + }, + }, +}; export const parameters = { decorators: [(storyFn, context) => withConsole()(storyFn)(context)], actions: { argTypesRegex: '^on[A-Z].*' }, @@ -25,31 +28,64 @@ export const parameters = { }, layout: 'centered', backgrounds: { - disable: true + disable: true, }, }; export const decorators = [ (Story, context) => { - const {theme} = context.globals; + const {hasTheme} = context.globals; + const [theme, setTheme] = useState('light'); const colors = { - light: {backgroundColor: '#ffffff', height: '100%', width: '100%'}, - dark: {backgroundColor: '#292929', height: '100%', width: '100%'}, + light: { backgroundColor: '#ffffff', height: '100%', width: '100%' }, + dark: { backgroundColor: '#292929', height: '100%', width: '100%' }, + }; + const display = { + on: {display: 'flex'}, + off: {display: 'none'}, } - const handleBg = () => { - if(theme == 'light') { - return colors.light - } else if(theme== 'dark') { - return colors.dark; + const [bg, setBg] = useState(colors.light); + + const handleTheme = () => { + if(hasTheme == 'on') { + return display.on; + } else if(hasTheme == 'off') { + return display.off; } } + + useEffect(() => { + const select = document.getElementById('themes'); + select.addEventListener('bdsChange', (obj) => { + const color = obj.detail.value; + if (color == 'light') { + setTheme('light'); + setBg(colors.light); + } else if (color == 'dark') { + setTheme('dark'); + setBg(colors.dark); + } + }); + }); + return ( - - - + + + + handleBg(event)}> + Light + Dark + - - ) - } -] \ No newline at end of file + + + + + + + + + ); + }, +]; diff --git a/src/components/accordion/accordion.stories.jsx b/src/components/accordion/accordion.stories.jsx index 9963bebf..ae3e4401 100644 --- a/src/components/accordion/accordion.stories.jsx +++ b/src/components/accordion/accordion.stories.jsx @@ -1,12 +1,17 @@ import React from 'react'; import { useEffect } from 'react'; import readme from './readme.md'; +import { BdsAccordion, BdsAccordionBody, BdsAccordionHeader, BdsTypo } from '../../../blip-ds-react/dist/components'; export default { title: 'Accordion', tags: ['autodocs'], parameters: { notes: { markdown: readme }, + docs: { + canvas: { sourceState: 'shown'}, + source: { type: 'code'} + } }, }; @@ -15,7 +20,7 @@ const paragraph = export const accordionProps = (args) => { return ( - + { {paragraph} - + ); }; @@ -132,12 +137,12 @@ export const accordionEvent = () => { }); }); return ( - - - - {paragraph} - - + + + + {paragraph} + + ); }; diff --git a/src/components/tabs/tabs.tsx b/src/components/tabs/tabs.tsx index 9d01c35c..15631a69 100644 --- a/src/components/tabs/tabs.tsx +++ b/src/components/tabs/tabs.tsx @@ -1,12 +1,12 @@ /* eslint-disable no-console */ import { ScrollDirection, Display, Overflow } from './tabs-interface'; -import { Component, ComponentInterface, Element, h, Host, Event, EventEmitter, Listen, Prop } from '@stencil/core'; +import { Component, Element, h, Host, Event, EventEmitter, Listen, Prop } from '@stencil/core'; @Component({ tag: 'bds-tabs', styleUrl: 'tabs.scss', }) -export class Tabs implements ComponentInterface { +export class Tabs { tabsHeaderChildElement: HTMLElement; leftButtonChildElement: HTMLElement; rightButtonChildElement: HTMLElement; From 10c6e79777490659e75594b0aead73e6a3a7ea1d Mon Sep 17 00:00:00 2001 From: Lucas Murta Date: Mon, 10 Jul 2023 11:26:52 -0300 Subject: [PATCH 3/6] feat(icon): add new icons actions --- src/components/icon/icon.stories.jsx | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/components/icon/icon.stories.jsx b/src/components/icon/icon.stories.jsx index 10e54887..04996a1a 100755 --- a/src/components/icon/icon.stories.jsx +++ b/src/components/icon/icon.stories.jsx @@ -24,22 +24,28 @@ const solidIconsName = [ 'automation', 'barcode', 'bill', + 'blip-chat', 'blip-forum', 'builder-http', 'builder-java-script', 'builder-redirect', 'builder-tracking', 'builder-variable', + 'cart-shop', 'checkball', 'contact', 'command', 'email', + 'emoji', + 'emoji-negative', + 'emoji-neutral', 'error', 'faq', 'favorite', 'filter-table', 'folder-save', 'folder', + 'heart', 'http', 'info', 'javascript', @@ -49,18 +55,23 @@ const solidIconsName = [ 'message-unread', 'organize-blocks', 'organize-list', + 'pause', 'pin', 'pix', + 'play', 'qrcode', 'question', 'redirect', 'save', 'send', 'sms', + 'store', 'target', + 'ticket', 'tracking', 'unpin', 'variable', + 'verified', 'video', 'voip', 'whatsapp', @@ -110,6 +121,7 @@ const outlineIconsName = [ 'button', 'calendar', 'camera', + 'cart-shop', 'channels', 'chart-bar', 'chart-column', @@ -139,6 +151,8 @@ const outlineIconsName = [ 'edit', 'email', 'emoji', + 'emoji-negative', + 'emoji-neutral', 'error', 'external-file', 'eye-closed', @@ -172,6 +186,7 @@ const outlineIconsName = [ 'filter', 'folder', 'guide', + 'heart', 'home', 'info', 'integration', @@ -211,10 +226,12 @@ const outlineIconsName = [ 'order-elements', 'paint', 'paperplane', + 'pause', 'payment-card', 'payment-card-cvc', 'pin', 'pix', + 'play', 'plugin', 'plus', 'primeiro-acesso', @@ -245,6 +262,7 @@ const outlineIconsName = [ 'speaker', 'sso', 'status', + 'store', 'tag', 'target', 'team', @@ -266,6 +284,7 @@ const outlineIconsName = [ 'user-active', 'user-default', 'user-engaged', + 'verified', 'video-broken', 'video', 'voip', From 8735440fc2062cf0f2028ca13b74054b404d8c97 Mon Sep 17 00:00:00 2001 From: Lucas Murta Date: Mon, 10 Jul 2023 11:29:15 -0300 Subject: [PATCH 4/6] feat(icon): update blip-tokens --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bb72581b..cfc55210 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "@storybook/addon-console": "^2.0.0", "@storybook/manager-api": "^7.0.23", "autoprefixer": "^10.4.7", - "blip-tokens": "^1.64.0", + "blip-tokens": "^1.65.0", "react": "^18.1.0", "react-dom": "^18.1.0" }, From 744b1026f1be8a5dc85ca2768d85bb2f9d945650 Mon Sep 17 00:00:00 2001 From: WillianLomeu Date: Tue, 11 Jul 2023 14:25:43 -0300 Subject: [PATCH 5/6] feat(accordion): update storybook examples --- .storybook/main.js | 3 +- .storybook/manager.js | 8 +- .storybook/preview.css | 4 +- .storybook/preview.js | 49 +++++++----- .../accordion/accordion-docs.stories.jsx | 79 +++++++++++++++++++ .../accordion/accordion.stories.jsx | 17 +++- 6 files changed, 133 insertions(+), 27 deletions(-) create mode 100644 src/components/accordion/accordion-docs.stories.jsx diff --git a/.storybook/main.js b/.storybook/main.js index 8a444b7f..8d5ec98d 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -1,9 +1,10 @@ module.exports = { stories: ['../src/**/*.stories.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'], addons: [ + '@storybook/addon-actions', '@storybook/addon-links', '@storybook/addon-essentials', - '@storybook/addon-actions', + '@storybook/addon-console', ], typescript: { diff --git a/.storybook/manager.js b/.storybook/manager.js index 334e74bd..48d1bff6 100644 --- a/.storybook/manager.js +++ b/.storybook/manager.js @@ -2,14 +2,14 @@ import { addons } from '@storybook/manager-api'; addons.setConfig({ isFullscreen: false, - showNav: true, + showNav: false, showPanel: true, panelPosition: 'bottom', enableShortcuts: true, - showToolbar: true, + showToolbar: false, theme: undefined, - selectedPanel: undefined, - initialActive: 'sidebar', + selectedPanel: 'actions', + initialActive: 'canvas', sidebar: { showRoots: false, collapsedRoots: ['other'], diff --git a/.storybook/preview.css b/.storybook/preview.css index dd81c8bf..4e4f2ef7 100644 --- a/.storybook/preview.css +++ b/.storybook/preview.css @@ -2,7 +2,7 @@ background-color: #0096fa; width: 56px; height: 56px; - margin: 16px; + margin: 4px; align-items: center; border-radius: 8px; position: absolute; @@ -28,7 +28,7 @@ display: block; } -bds-icon { +.open-config { padding: 0 16px; color: #ffffff; } diff --git a/.storybook/preview.js b/.storybook/preview.js index 08884784..53a66e3a 100644 --- a/.storybook/preview.js +++ b/.storybook/preview.js @@ -9,7 +9,7 @@ export const globalTypes = { hasTheme: { name: 'Theme', description: 'Defina o tema que o componente será aplicado', - defaultValue: 'on', + defaultValue: 'off', toolbar: { icon: 'paintbrush', items: ['on', 'off'], @@ -20,7 +20,7 @@ export const parameters = { decorators: [(storyFn, context) => withConsole()(storyFn)(context)], actions: { argTypesRegex: '^on[A-Z].*' }, controls: { - expanded: true, + expanded: false, matchers: { color: /(background|color)$/i, date: /Date$/, @@ -34,28 +34,39 @@ export const parameters = { export const decorators = [ (Story, context) => { - const {hasTheme} = context.globals; + const { hasTheme } = context.globals; const [theme, setTheme] = useState('light'); const colors = { light: { backgroundColor: '#ffffff', height: '100%', width: '100%' }, dark: { backgroundColor: '#292929', height: '100%', width: '100%' }, }; const display = { - on: {display: 'flex'}, - off: {display: 'none'}, - } + on: { display: 'flex' }, + off: { display: 'none' }, + }; + const height = { + on: { height: '120px' }, + off: { height: '0' }, + }; const [bg, setBg] = useState(colors.light); const handleTheme = () => { - if(hasTheme == 'on') { - return display.on; - } else if(hasTheme == 'off') { - return display.off; - } - } + if (hasTheme == 'on') { + return display.on; + } else if (hasTheme == 'off') { + return display.off; + } + }; + + const handleHeight = () => { + if (hasTheme == 'on') { + return height.on; + } else if (hasTheme == 'off') { + return height.off; + } + }; useEffect(() => { - const select = document.getElementById('themes'); select.addEventListener('bdsChange', (obj) => { const color = obj.detail.value; @@ -70,9 +81,9 @@ export const decorators = [ }); return ( - + - + handleBg(event)}> Light Dark @@ -80,9 +91,11 @@ export const decorators = [ - - - + + + + + diff --git a/src/components/accordion/accordion-docs.stories.jsx b/src/components/accordion/accordion-docs.stories.jsx new file mode 100644 index 00000000..0866d7d2 --- /dev/null +++ b/src/components/accordion/accordion-docs.stories.jsx @@ -0,0 +1,79 @@ +import readme from './readme.md'; + +export default { + title: 'Accordion Live Code', + parameters: { + notes: { markdown: readme }, + }, +}; + +export const accordionDocs = (args) => { + return ( + + + + {args.accordionText} + + + ); +}; + +accordionDocs.argTypes = { + accordionTitle: { + table: { + defaultValue: { summary: 'vazio' }, + }, + description: 'Coloque o titulo do cabeçalho.', + control: 'text', + }, + accordionText: { + table: { + defaultValue: { summary: 'vazio' }, + }, + description: 'Coloque o texto de exemplo aqui.', + control: 'text', + }, + icon: { + table: { + defaultValue: { summary: 'vazio' }, + }, + description: 'Defina o ícone que será utilizado no botão (Apenas outline).', + control: 'text', + }, + avatarName: { + table: { + defaultValue: { summary: 'vazio' }, + }, + description: 'Defina o nome aplicado no avatar.', + control: 'text', + }, + avatarThumb: { + table: { + defaultValue: { summary: 'vazio' }, + }, + description: 'Insira o link da imagem.', + control: 'text', + }, + startOpen: { + table: { + defaultValue: { summary: 'false' }, + }, + description: 'Escolha se o accordion será iniciado aberto.', + control: 'boolean', + }, +}; + +accordionDocs.args = { + accordionTitle: 'Título do accordion', + accordionText: `Um accordion é uma lista de cabeçalhos empilhados verticalmente que revelam ou ocultam + seções de conteúdo associados.`, + avatarName: '', + avatarThumb: '', + icon: '', + startOpen: false, +}; \ No newline at end of file diff --git a/src/components/accordion/accordion.stories.jsx b/src/components/accordion/accordion.stories.jsx index ae3e4401..fdf09e2e 100644 --- a/src/components/accordion/accordion.stories.jsx +++ b/src/components/accordion/accordion.stories.jsx @@ -137,12 +137,14 @@ export const accordionEvent = () => { }); }); return ( - + + {paragraph} + ); }; @@ -247,7 +249,7 @@ export const accordionGroupEvent = () => { close.closeAll(); }; return ( - + handleCloseAll('accGroupEvent')} variant="primary" size="short"> Close All @@ -269,6 +271,17 @@ export const accordionGroupEvent = () => { ); }; + + + + + +// discontinued examples + + + + + export const accordionDefault = (args) => { return ( From d0bc89710e02063512520efed82385ac22fbcd1a Mon Sep 17 00:00:00 2001 From: WillianLomeu Date: Sun, 16 Jul 2023 18:16:02 -0300 Subject: [PATCH 6/6] feat(merge): merge the developer into master --- src/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.html b/src/index.html index de2ef9b3..286b1f2f 100644 --- a/src/index.html +++ b/src/index.html @@ -20,7 +20,7 @@ - Versão blip-ds 1.256.0 + Versão blip-ds 1.259.0