Repository navigation
depara
Formato:
-
módulo / arquivo / linha -
antigo: variável, cor -
novo: variável, cor -
ui-login / src/react/pages/sign-in/index.styles.js / 1-41 -
antigo: resolveThemePalette(themeColors, colors) + fallbacks locais, varios conteudos hardcoded -
novo: resolveThemePalette(themeColors, {}) + tokens vindos somente de themeColors -
ui-login / src/react/pages/sign-in/index.js / 234, 371-390 -
antigo: fallbackLogo local + background visual com brandCompany?.theme?.background || brandCompany?.background -
novo: logo remota somente via brandCompany.logo e sem background por imagem -
ui-login / src/react/pages/reset-password/index.js / 77, 144-166 -
antigo: fallbackLogo local + background visual com brandCompany?.theme?.background || brandCompany?.background -
novo: logo remota somente via brandCompany.logo e sem background por imagem -
ui-login / src/react/pages/confirm-account/index.js / 72, 144-164 -
antigo: fallbackLogo local + background visual com brandCompany?.theme?.background || brandCompany?.background -
novo: logo remota somente via brandCompany.logo e sem background por imagem -
ui-manager / src/react/pages/FinancialHubPage.js / 36-179 -
antigo: resolveThemePalette(themeTokens, colors), currentCompany.theme e fallbacks locais -
novo: palette vinda diretamente de themeStore.getters.colors com tokens canônicos e sem fallback -
app-community / DOCS/themes/themes-map.md / 88-102, 151-163 -
antigo: mapa canônico sem tokens específicos para fundo de wrapper de ícone dentro e fora de card -
novo: mapa canônico com cardIconBackground e iconBackground -
app-community / DOCS/themes/themes-new.md / 75-83, 121-129 -
antigo: proposta consolidada ainda nao trazia cardIconBackground e iconBackground -
novo: proposta consolidada passa a registrar cardIconBackground e iconBackground -
app-community / src/styles/colors.js / 6-19 -
antigo: defaults locais nao expunham iconBackground e cardIconBackground e liam CSS vars com nome diferente do runtime -
novo: defaults locais passam a expor iconBackground e cardIconBackground usando os mesmos nomes de CSS var aplicados pelo runtime -
app-community / src/styles/branding.js / 142-164 -
antigo: resolveThemePalette nao promovia iconBackground e cardIconBackground vindos do tema ativo -
novo: resolveThemePalette promove iconBackground/icon-background e cardIconBackground/card-icon-background do tema ativo para a palette final -
ui-default / src/react/components/errors/DefaultErrors.js / 36-107, 185-334 -
antigo: modal de erro usava pickThemeColor com fallback '#DC2626', '#FFFFFF', 'rgba(15, 23, 42, 0.55)', '#B91C1C', '#334155' e botao retry com fundo transparente local -
novo: modal usa somente inputErrorBorder, inputErrorText, modalBackground, modalBorder, modalOverlay, modalText, modalCloseIcon, buttonBackground, buttonBorder e buttonText vindos de themeStore.getters.colors -
ui-default / src/react/components/form/DefaultForm.js / 57-84, 162-209 -
antigo: form dependia de accentColor='#2563EB' e aplicava o botao primario por prop local, sem palette canônica do tema -
novo: form monta palette com buttonBackground, buttonBackgroundSecondary, buttonBorderSecondary, buttonDisabledBackground, buttonDisabledText, buttonText, buttonTextSecondary, dividerBorder e textSecondary vindos de themeStore.getters.colors -
ui-default / src/react/components/form/DefaultForm.styles.js / 3-75 -
antigo: emptyText '#64748B', actions '#E2E8F0', secondaryButton '#CBD5E1/#FFFFFF/#334155', primaryButtonText '#FFFFFF' e disabled opacity 0.62 -
novo: styles usam textSecondary, dividerBorder, buttonBorderSecondary, buttonBackgroundSecondary, buttonTextSecondary, buttonDisabledBackground, buttonDisabledText e buttonText -
ui-default / src/react/components/help/DefaultTooltip.js, src/react/components/help/DefaultTooltip.styles.js / DefaultTooltip 8-43, 64-95; DefaultTooltip.styles 3-59 -
antigo: tooltip usava accentColor com fallback '#0EA5E9', background derivado por transparencia local, overlay 'rgba(15, 23, 42, 0.55)', card '#FFFFFF' e mensagem '#334155' -
novo: tooltip usa themeStore.getters.colors com iconInfo, iconBackground, iconDisabled, buttonBackground, buttonBorder, buttonDisabledBackground, buttonIcon, modalBackground, modalBorder, modalHeaderText, modalOverlay e modalText; fechamento da janela usa Feather x -
ui-manager / src/react/pages/PdvPage.js / 12-87 -
antigo: headerRight da liquidacao com borderColor '#BFDBFE', backgroundColor '#EFF6FF' e icon/text '#0369A1' -
novo: headerRight da liquidacao com buttonBackgroundSecondary, buttonBorderSecondary, buttonIconSecondary e buttonTextSecondary vindos de themeStore.getters.colors -
ui-manager / src/react/pages/ConfiguratorPage.js / 12-169 -
antigo: hero e cards do configurador dependiam de style estatico com palette local baseada em colors.js, usando primary/text/white como fonte final e icones sem seguir o mapa cardIcon/iconColor -
novo: configurador resolve a palette da empresa ativa e aplica cardIconBackground no fundo do wrapper interno e iconColor na cor do icone, preservando cardBackground, cardBorder, cardText e mutedText -
ui-manager / src/react/pages/ConfiguratorPage.styles.js / 1-119 -
antigo: hero, cards e textos usavam colors.js e opacidades locais como cor final do componente -
novo: createStyles(palette) recebe a palette resolvida pela tela e usa apenas tokens semanticos como actionBackground, actionText, cardBackground, cardBorder, cardIconBackground, cardText e mutedText -
ui-layout / src/react/components/AppMenuGrid.js / 15-136 -
antigo: grid de menus calculava cor/fundo do icone com variacao local por modulo e transparencia derivada por withAlpha -
novo: grid de menus usa iconBackground no wrapper fora de card, cardIconBackground no wrapper dentro de card e iconColor na cor do icone -
ui-layout / src/react/components/AppMenuGrid.styles.js / 3-116 -
antigo: sectionIcon e cardIcon usavam withAlpha(actionText, ...) para gerar fundo translúcido local -
novo: sectionTone usa iconBackground e segmentTone usa cardIconBackground, sem transparencia local -
ui-manager / src/react/pages/home/index.js / 50-68 -
antigo: mutedText vinha de withOpacity(text, 0.68), statIconBackground de withOpacity(actionText, 0.7) e os icones dos cards usavam actionBackground -
novo: mutedText vem de textMuted/textSecondary do tema, wrappers internos usam cardIconBackground e os icones usam iconColor -
ui-manager / src/react/pages/home/index.styles.js / 4-14, 70-107 -
antigo: home usava withOpacity no boxShadow web, no actionSub e no fundo do icone estatistico -
novo: home usa cardShadow/buttonShadow do tema para sombra web e cardIconBackground no fundo dos wrappers de icone internos -
ui-manager / src/react/pages/ThemeManagerPage.js / 220-303 -
antigo: editor de tema nao listava cardIconBackground e iconBackground -
novo: editor de tema lista cardIconBackground no grupo card e iconBackground no grupo icon -
ui-manager / src/react/pages/ThemePreviewPage.js / 74-94 -
antigo: preview default nao tinha cardIconBackground e iconBackground -
novo: preview default registra cardIconBackground e iconBackground -
ui-manager / src/react/pages/FinancialHubPage.styles.js / 1-64 -
antigo: createStyles baseado em colors e chip com base visual padrão -
novo: createStyles baseado em palette do tema ativo, sem cores hardcoded -
ui-manager / src/react/pages/ThemeManagerPage.js / 280-323, 1410-1495 -
antigo: listItem sem campos próprios para linhas pares e impares -
novo: listItemOddRow e listItemEvenRow adicionados ao mapa do tema e ao editor fixo -
ui-manager / src/react/pages/ThemeManagerPage.js / 1922-2038, 2620-2800 -
antigo: editor de cor mostrava apenas HEX e listagem sem rgba -
novo: editor aceita rgb/rgba no paste, mostra rgba nos cards e traz tooltip ampliada no HEX -
ui-default / src/react/components/table/DefaultTable.js / 475-476, 1356 -
antigo: zebra da tabela dependia apenas de bg-odd-light e bg-even-light -
novo: zebra da tabela prioriza listItemOddRow e listItemEvenRow -
ui-contracts / src/react/theme/contractsTheme.js / 1-120 -
antigo: status aberto=#3B82F6, ativo=#4CAF50, inativo=#F44336, pendente=#FF9800, fechado=#64748B espalhados no modulo -
novo: getContractsStatusColor(palette, status) usando info, success, error, warning e textMuted do tema -
ui-contracts / src/react/components/contracts.js / 18-179 -
antigo: Icon color="#666", ActivityIndicator color="#2529a1", empty/error com "#CCCCCC" e "#F44336" -
novo: icones, loading e estados vazios usando palette.listItemIcon, palette.loadingSpinner, palette.iconDisabled e palette.iconDanger -
ui-contracts / src/react/components/contracts.styles.js / 1-169 -
antigo: backgroundColor '#F8F9FA', '#FFFFFF', border '#E9ECEF', botao '#2529a1', textos '#212529' e '#6C757D' -
novo: createStyles(palette) com pageBackground, cardBackground, headerBorder, buttonBackground, cardText e textMuted -
ui-contracts / src/react/components/CreateContractModal.js / 50-601 -
antigo: close '#666666', destaque '#2529a1', sucesso '#4CAF50', vazio '#CCCCCC', placeholder '#999999' -
novo: modal consumindo palette.modalCloseIcon, palette.iconInfo, palette.iconSuccess, palette.iconDisabled e palette.selectPlaceholderText -
ui-contracts / src/react/components/CreateContractModal.styles.js / 1-253 -
antigo: modal '#FFFFFF', overlay 'rgba(0,0,0,0.5)', bordas '#E9ECEF', CTA '#007BFF', disabled '#94A3B8' -
novo: createStyles(palette) com modalBackground, modalOverlay, modalBorder, buttonBackground e buttonDisabledBackground -
ui-contracts / src/react/pages/ContractsPage.js / 29-652 -
antigo: colors.js, chips '#DCE3EC/#F8FAFC/#E7F3FF', placeholder '#94A3B8', vazio '#bdc3c7', erro '#e74c3c' -
novo: palette do tema ativo com chipBorder, chipBackground, chipSelectedBackground, inputPlaceholderText, iconDisabled e iconDanger -
ui-contracts / src/react/pages/ContractsPage.styles.js / 1-219 -
antigo: cards '#fff', shadow '#0F172A', skeleton '#E2E8F0', textos '#212529/#94A3B8' -
novo: createStyles(palette) com cardBackground, cardShadow, loadingBorder, cardText e textDisabled -
ui-contracts / src/react/pages/ContractDetails.js / 19-608 -
antigo: back/acoes usando colors.primary e '#fff', picker '#64748b', status baseado em contract.status.color -
novo: detalhes usando palette.navigationActiveIcon, palette.buttonIcon, palette.selectIcon e status resolvido por getContractsStatusColor -
ui-contracts / src/react/pages/ContractDetails.styles.js / 1-321 -
antigo: page '#f8fafc', header '#fff', tabs '#64748b', listagem '#e2e8f0', disabled '#cbd5e1' -
novo: createStyles(palette) com pageBackground, headerBackground, navigationText, listItemBorder e buttonDisabledBackground -
app-community / src/styles/branding.js / 142-155 -
antigo: resolveThemePalette derivava footerBackground, footerBorder, footerIcon, footerLink e footerText a partir de background, border, primary e accent -
novo: resolveThemePalette nao deriva tokens de footer e deixa o componente depender apenas do token presente no tema -
ui-common / src/react/components/BottomNavigationBar.js / 21-29, 49-85, 117-156 -
antigo: navegacao inferior usava footer* e herdava azul por footerLink vindo da palette -
novo: navegacao inferior usa navigationBackground, navigationBorder, navigationIcon, navigationText, navigationActiveBackground, navigationActiveBorder, navigationActiveIcon e navigationActiveText sem fallback -
ui-common / src/react/components/BottomNavigationBar.styles.js / 3-83 -
antigo: withAlpha calculava o destaque localmente e a sombra herdava cor local -
novo: estilo usa navigationBackground, navigationBorder, navigationShadow, navigationActiveBackground e navigationActiveBorder sem derivacao local -
ui-common / src/react/components/RuntimeInfoFooter.js / 112-166 -
antigo: backgroundColor=colors?.background || runtimeColors.background, borderColor=colors?.border || runtimeColors.border, textColor=colors?.textSecondary || runtimeColors.textSecondary, loadingColor=colors?.primary || runtimeColors.primary || textColor e socketEntry.indicatorColor hardcoded -
novo: backgroundColor=colors?.footerBackground, borderColor=colors?.footerBorder, textColor=colors?.footerText, loadingColor=colors?.footerLink e socketEntry.indicatorTone resolvido por colors.success / colors.warning / colors.error -
ui-common / src/react/utils/socketRuntimePipeline.js / 107-127 -
antigo: indicatorColor '#10b981' / '#e67e22' / '#c10015' -
novo: indicatorTone 'success' / 'warning' / 'error' -
ui-common / src/react/components/WebsocketListener.native.js / 77-93 -
antigo: indicatorColor '#10b981' / '#e67e22' / '#c10015' -
novo: indicatorTone 'success' / 'warning' / 'error' -
ui-common / src/react/components/DefaultProvider.web.js / 887-892 -
antigo: colors={resolveThemePalette(colors, runtimeColors)} -
novo: colors={colors} -
ui-common / src/react/components/DefaultProvider.native.js / 820-825 -
antigo: colors={resolveThemePalette(colors, runtimeColors)} -
novo: colors={colors} -
ui-config / src/react/pages/MenuAccessConfigPage.js / 322-357, 632-650, 881-892 -
antigo: chips de perfis de acesso usavam estados visuais com '#2563EB' e '#94A3B8' no JSX -
novo: chips de perfis de acesso usam buttonBackground, buttonBackgroundSecondary, buttonBorder, buttonBorderSecondary, buttonIcon, buttonIconSecondary, buttonText e buttonTextSecondary vindos de themeStore.getters.colors -
ui-config / src/react/pages/MenuAccessConfigPage.styles.js / 280-290 -
antigo: linkButton/linkText definiam backgroundColor '#F8FAFC', borderColor '#E2E8F0', text '#64748B' e ativos '#EFF6FF/#93C5FD/#1D4ED8' -
novo: linkButton/linkText preservam apenas layout e tipografia; cores entram via palette do tema no JSX -
ui-products / src/react/components/products/ProductItem.js / 14-72, 128-223, 235-514 -
antigo: PRODUCT_TYPE_CONFIG com color/bg hardcoded por tipo, preco verde local e acao do card dependente de seletor com vermelho/verde/cinza hardcoded -
novo: chips de tipo, preco e acao do card resolvidos por chipSelectedBackground, chipSelectedText, buttonBackgroundSecondary, buttonTextSecondary, chipBackground, textWarning, textSuccess, textMuted, iconDisabled e buttonBackground/buttonText -
ui-products / src/react/pages/Products.js / 1110-1133, 1191-1215 -
antigo: atalhos e cabecalhos por tipo reutilizavam bg/color hardcoded do PRODUCT_TYPE_CONFIG e ainda aplicavam borda com opacidade local -
novo: atalhos e cabecalhos por tipo usam resolveProductTypeTheme com tokens canonicos do tema, sem hex e sem opacidade local -
ui-orders / src/react/components/cart/ProductTotem.js / 31-74, 202-221 -
antigo: radio-button-unchecked vermelho, check-circle verde e label '#666' -
novo: seletor usa iconDisabled, iconSuccess e textMuted vindos da palette de tema recebida pelo card -
ui-orders / src/react/pages/CashRegister/index.js / 21-269 -
antigo: retirada em vermelho hardcoded e botoes do rodape com icone/texto '#fff' -
novo: cash-register-index usa textDanger para retirada e buttonBackground/buttonIcon/buttonText para os botoes, com cardText e footerText nos blocos de resumo -
ui-orders / src/react/pages/CashRegister/index.styles.js / 1-10 -
antigo: labels auxiliares dos botoes com color '#fff' -
novo: arquivo preserva apenas o deslocamento horizontal; a cor do label vem do tema na tela -
ui-orders / src/react/css/orders.js / 11-15, 37-39, 92-99, 332-352 -
antigo: cash-register-index usava colors.background, wallet '#fff', footer '#f8f8f8/#ddd' e texto base '#000000/#333' -
novo: cash-register-index usa pageBackground, cardBackground, cardBorder, cardText, footerBackground, footerBorder e footerText -
ui-orders / src/react/components/OrderHeader.js / 4-24, 64-108, 154-360 -
antigo: WAITING_RULES '#10b981/#FACC15/#c10015', truck '#D97706', repeat '#7C3AED', trending-down '#DC2626', calendar '#475569' e badge preso a status.color -
novo: palette do tema ativo com textSuccess, textWarning, textDanger, textMuted, iconInfo, iconWarning, iconDanger e chipText para waiting chip, icones e badge semantico -
ui-orders / src/react/components/OrderHeader.styles.js / 1-257 -
antigo: backgroundColor '#F8FAFC', border '#E2E8F0/#CBD5E1', textos '#0F172A/#475569/#64748B' e preco '#16A34A/#D97706/#7C3AED/#DC2626' -
novo: createStyles(palette, isKds) com chipBackground, chipBorder, chipSelectedBackground, chipSelectedBorder, chipSelectedText, cardText, textMuted, textSuccess, textWarning e textDanger -
ui-orders / src/react/pages/orders/OrderHistoryPage.js / 91-99, 173-177, 637-666 -
antigo: styles importavam objeto estatico e o contexto visual do card nao lia tokens semanticos do themeStore -
novo: buildOrderHistoryPalette(themeColors) e createStyles(orderHistoryPalette) para o card renderer e fundo da tela -
ui-orders / src/react/pages/orders/OrderHistoryPage.styles.js / 1-69 -
antigo: orderCard '#fff', shadow '#0F172A', cardMetaRow '#F1F5F9' e channelText '#475569' -
novo: createStyles(palette) com cardBackground, cardBorder, cardShadow, dividerBorder e textSecondary -
ui-customers / src/react/components/tabs/GeneralTab.js / 14-25, 138-142, 340-479 -
antigo: aba geral de cadastro usava colors.js, placeholders hardcoded, switch nativo com track/thumb locais e botao salvar com hex locais -
novo: aba usa somente themeStore.getters.colors com inputBackground, inputBorder, inputText, inputPlaceholderText, inputIcon, textSecondary, switchOnTrack, switchOffTrack, switchOnThumb, switchOffThumb, buttonBackground, buttonDisabledBackground, buttonText e buttonDisabledText -
ui-customers / src/react/components/tabs/GeneralTab.styles.js / 1-84 -
antigo: estilos inline com '#fff', '#334155', '#E2E8F0', '#0F172A', '#F8FAFC', '#475569', '#CBD5E1' e dependencia de colors.primary -
novo: createGeneralTabStyles(themeColors) usando apenas pageBackground, textSecondary, inputBorder, inputText, inputBackground, buttonBackground, buttonDisabledBackground, buttonText e buttonDisabledText -
ui-people / src/react/pages/People.js / 36-154, 238-261 -
antigo: renderClientCard usava '#CBD5E1' no chevron e dependia de styles com card/avatar/textos fora dos tokens canonicos -
novo: palette vinda de themeStore.getters.colors com cardBackground, cardBorder, cardShadow, cardIcon, iconInverse, listItemText, listItemSubtitleText e listItemIcon aplicada no renderClientCard -
ui-people / src/react/pages/People.styles.js / 76-114, 144 -
antigo: card, avatar e textos do renderClientCard traziam '#fff', '#F1F5F9', '#64748B', '#1E293B' e '#94A3B8' no style estatico -
novo: styles preservam apenas layout/espacamento do card e deixam as cores do renderClientCard entrarem pela palette do tema ativo -
ui-people / src/react/components/address/PeopleAddressesPanel.js / 22-43, 104-139, 146-181, 220-267 -
antigo: botao Novo textual e painel com '#1D4ED8', '#fff', '#E2E8F0', '#0F172A', '#64748B', '#B91C1C', 'rgba(15,23,42,0.45)' e '#F8FAFC' -
novo: botao de adicionar com Feather plus, acao de apagar endereco com trash-2 e cores via buttonBackground, buttonIcon, cardBackground, cardBorder, cardText, loadingSpinner, modalBackground, modalOverlay, textDanger, textPrimary e textSecondary -
ui-crm / src/react/pages/settings/GeneralSettings.js / 11-15, 138-155, 254-294 -
antigo: tela resolvia palette com resolveThemePalette + defaultThemeColors + currentCompany.theme.colors e usava styles estaticos -
novo: tela usa buildGeneralSettingsPalette(themeStore.getters.colors) + useGeneralSettingsStyles(), sem currentCompany.theme e sem fallback local -
ui-crm / src/react/pages/settings/GeneralSettingsSection.js / 10-24, 26-45 -
antigo: card da secao usava styles estaticos e tooltip com accentColor vindo de colors.js -
novo: secao usa useGeneralSettingsStyles() e tooltip com accentColor vindo de themeStore.getters.colors.info -
ui-crm / src/react/pages/settings/GeneralSettingsSection.js / 40-41 -
antigo: botoes de ajuda (?) do general-settings usavam accentColor vindo de themeStore.getters.colors.info -
novo: botoes de ajuda (?) do general-settings usam accentColor vindo de themeStore.getters.colors.iconInfo -
ui-crm / src/react/pages/settings/GeneralSettings.styles.js / 10-562 -
antigo: pageTitle, tabBar, cards, inputs, listas, modal e chips do general-settings dependiam de #HEX e transparent locais -
novo: buildGeneralSettingsPalette/createGeneralSettingsStyles/useGeneralSettingsStyles leem apenas tokens canonicos como navigation*, card*, input*, listItem*, modal*, badge* e text* -
ui-crm / src/react/pages/settings/GeneralSettings.styles.js, GeneralSettings.js, GeneralSettingsSection.js, sections/ShopSection.js / hooks e leituras de palette -
antigo: general-settings lia apenas themeStore.getters.colors, entao alguns icones da shop caiam no preto padrao quando a cor existia apenas em currentCompany.theme.colors no banco -
novo: general-settings passa a mesclar themeStore.getters.colors com currentCompany.theme.colors antes de montar a palette, refletindo iconActive e iconDisabled da empresa ativa -
ui-crm / src/react/pages/settings/sections/*.js / icones de secao, chips, seletores, loading e placeholders -
antigo: abas fora da shop ainda misturavam localStyles estatico, HEX hardcoded, wrappers de icone por cor local, chips verdes/vermelhos fixos, seletores azuis/roxos fixos e placeholder/loading fora do tema -
novo: demais abas do general-settings usam useGeneralSettingsStyles/useGeneralSettingsPalette com cardIconBackground/cardIconColor, badgeSelectedText/badgeDisabledText, iconActive/iconDisabled, loadingSpinner e inputPlaceholderText -
DOCS/themes/themes-patterns.md / arquivo novo -
antigo: nao existia documento global consolidando o map por papel visual -
novo: themes-patterns.md registra o padrao global de contador, card de secao, tooltip, icone de cabecalho, seletor, exclusao, loading, placeholder e chip de status -
ui-crm / src/react/pages/settings/GeneralSettings.styles.js / 159-167 -
antigo: sectionIconWrap dos cards internos do general-settings usava cardIconBackground sem borda -
novo: sectionIconWrap dos cards internos do general-settings usa cardIconBackground com cardIconBorder -
ui-crm / src/react/pages/settings/GeneralSettings.styles.js, sections/LogSection.js, sections/MaintenanceSection.js / palette e switches -
antigo: switches de logs e rotinas usavam a cor nativa do React Native, sem map do tema -
novo: switches de logs e rotinas usam switchOnTrack, switchOffTrack, switchOnThumb, switchOffThumb, switchDisabledTrack e switchDisabledThumb -
DOCS/themes/themes-map.md, DOCS/themes/themes-new.md, ui-manager/src/react/pages/ThemeManagerPage.js, ui-manager/src/react/pages/ThemePreviewPage.js, ui-crm/src/react/pages/settings/GeneralSettings.styles.js / tokens de switch -
antigo: switchBorder e switchFocusBorder ainda existiam no mapa e nos previews, embora nao fossem usados pelo switch nativo real -
novo: switchBorder e switchFocusBorder sao removidos do mapa, do preview/manager de tema e da palette compartilhada do general-settings -
ui-manager / src/react/pages/ThemeManagerPage.js / 2270-2334 -
antigo: preview de switch no theme manager era desenhado manualmente com View, thumb e track simulados -
novo: preview de switch no theme manager usa o componente Switch real do React Native com switchOnTrack, switchOffTrack, switchOnThumb, switchOffThumb, switchDisabledTrack e switchDisabledThumb -
ui-crm / src/react/pages/settings/sections/ShopSection.js / 194-515, 519-1958 -
antigo: toggles, modais de selecao, placeholders, loaders, icones e secoes da aba shop usavam #166534, #991B1B, #0F766E, #94A3B8, #B45309, #FFFFFF e similares -
novo: aba shop usa palette do tema ativo com badgeSelectedText/badgeDisabledText, inputPlaceholderText, loadingSpinner, iconActive/iconDisabled/iconSuccess/iconWarning, buttonIcon, primary, success, warning e cardIconBackground -
ui-crm / src/react/pages/settings/GeneralSettings.styles.js / 23-27, 579-583 -
antigo: palette compartilhada do general-settings expunha cardIconBackground/cardIconBorder, mas nao cardIconColor -
novo: palette compartilhada passa a expor cardIconColor para os icones dos grupos de preferencias -
ui-crm / src/react/pages/settings/sections/ShopSection.js / 1158-1163, 1178-1183, 1542-1547, 1578-1583, 1645-1650 -
antigo: icones dos grupos da aba shop misturavam cardIconBackground com success/info/primary/warning -
novo: icones dos grupos da aba shop usam exatamente cardIconBackground e cardIconColor -
ui-crm / src/react/pages/settings/sections/ShopSection.js / 1345-1349, 1394-1398, 1445-1447, 1757-1761, 1812-1816, 1886-1890, 1904-1908 -
antigo: icones internos dos cards/listas da aba shop usavam iconSuccess e iconWarning fora do padrao visual da pagina -
novo: icones internos dos cards/listas da aba shop usam cardIconColor; apenas controles de estado continuam com iconActive/iconDisabled -
ui-crm / src/react/pages/settings/GeneralSettings.styles.js / 10-61, 579-610 -
antigo: buildGeneralSettingsPalette e o fallback local do general-settings nao expunham iconDanger, entao os icones de remocao da aba shop nao refletiam a cor configurada no banco -
novo: buildGeneralSettingsPalette e o fallback local do general-settings passam a expor iconDanger -
ui-crm / src/react/pages/settings/GeneralSettings.js / header de abas -
antigo: header do general-settings usava colorToken por aba, navigationActiveBackground/navigationText e borderBottomColor por contexto -
novo: header do general-settings usa buttonBackground/buttonBorder/buttonIcon/buttonText na aba selecionada e buttonBackgroundSecondary/buttonBorderSecondary/buttonIconSecondary/buttonTextSecondary nas demais -
ui-crm / src/react/pages/settings/GeneralSettings.styles.js / tabBarContent/tabItem/tabLabel e palette -
antigo: estilos das abas fixavam underline de selecao e palette nao expunha buttonBorder/buttonIconSecondary -
novo: abas preservam layout de botao com borda/raio/gap, palette expoe buttonBorder/buttonIconSecondary e as cores entram pelo JSX -
ui-crm / src/react/pages/settings/sections/CrmSection.js / 241-244 -
antigo: icone delete do crm usava themePalette.error -
novo: icone delete do crm usa themePalette.iconDanger -
ui-crm / src/react/pages/settings/sections/CrmSection.js / 245-260 -
antigo: botao Add Profile dependia apenas de globalStyles.button/local primaryButton e nao aplicava explicitamente buttonBackground/buttonIcon no padrao -
novo: botao Add Profile usa themePalette.buttonBackground, themePalette.buttonIcon e themePalette.buttonText -
ui-crm / src/react/pages/settings/sections/CrmSection.js / 236-247 -
antigo: botao delete dos perfis CRM usava removeProfileButton simples e icone themePalette.iconDanger -
novo: botao delete dos perfis CRM segue o padrao dos botoes de acao da carteira com buttonBackground/buttonIcon e icone Feather trash-2 -
ui-crm / src/react/pages/settings/GeneralSettings.styles.js / removeProfileButton -
antigo: removeProfileButton tinha apenas marginLeft e padding local -
novo: removeProfileButton preserva layout de botao iconico 34x34 com borda/raio/alinhamento; cores entram por themePalette no JSX -
ui-crm / src/react/pages/settings/sections/ShopSection.js / 1568-1576 -
antigo: checkbox do catalogo do shop usava themePalette.primary quando marcado -
novo: checkbox do catalogo do shop usa iconActive quando marcado e iconDisabled quando desmarcado -
ui-default / src/react/components/table/DefaultTable.styles.js / 531-537 -
antigo: footerCountPill mantinha backgroundColor '#EFF6FF' como fallback local no contador do rodape -
novo: footerCountPill preserva apenas layout; a cor final do contador vem somente de themeColors.badgeBackground em DefaultTable.js -
ui-orders / src/react/pages/orders/OrderHistoryPage.js / 166-198, 280-287, 708-760, 907-954 -
antigo: palette e accentColor misturavam themeStore + currentCompany.theme + colors.js via resolveThemePalette, e acoes de cancelamento/details dependiam de fallbacks locais fora do tema canonico -
novo: OrderHistoryPage monta palette apenas com themeStore.getters.colors usando tokens canonicos como primary, iconInfo, iconDanger, modalBackground, modalBorder, inputText e buttonTextSecondary, e repassa accentColor/acoes sem currentCompany.theme nem colors.js -
ui-orders / src/react/pages/orders/OrderHistoryPage.styles.js / 3-24, 47-58, 96-261 -
antigo: estilos do modal e dos cards usavam pickColor com fallbacks locais como '#FFFFFF', '#E2E8F0', '#0F172A', '#64748B', '#DC2626', 'rgba(15, 23, 42, 0.42)' e opacity fixa 0.55 -
novo: createStyles/createModalStyles usam somente tokens canonicos do tema ativo como pageBackground, cardBackground, cardBorder, cardText, modalOverlay, modalBackground, modalBorder, modalHeaderText, modalText, inputBackground, inputBorder, buttonBackgroundSecondary, buttonTextSecondary e buttonDisabledOpacity -
ui-customers / src/react/styles/details.js / 5-37, 119-157 -
antigo: details expunha apenas o conjunto base da pagina e os icones auxiliares da aba geral acabavam usando estilos secundarios fora do padrao visual da tela de perfil -
novo: details expõe tokens canonicos cardIcon, buttonBorder, buttonBackground e buttonText para compor os tres padroes da tela de perfil: addButton, botao circular com borda e editNameButton -
ui-customers / src/react/components/tabs/ContactTab.js / 482-490, 503-520, 537-545, 556-573 -
antigo: botoes de adicionar/editar e icones de telefone/email estavam usando o estilo secundario anterior da client-details -
novo: ContactTab segue o padrao da tela de perfil com addButton para "+" , editNameButton para o lapis e cardIcon para os icones dos cards -
ui-customers / src/react/components/tabs/DocumentsTab.js / 370-378, 389-413 -
antigo: "+" e lapis usavam colors.primary, e o icone de descricao tambem ficava preso ao legado fora do theme map -
novo: DocumentsTab usa addButton para "+", editNameButton para o lapis e cardIcon para o icone do documento, todos vindos do themeStore sem fallback -
ui-customers / src/react/components/tabs/AddressesTab.js / 475-481, 492-501, 523-529 -
antigo: "+", pin e lapis usavam colors.primary sem respeitar o padrao visual da tela de perfil -
novo: AddressesTab usa addButton para "+", botao circular com borda para o pin e editNameButton para o lapis, todos mapeados pelos tokens canonicos do tema ativo -
ui-customers / src/react/styles/details.js / 14-25, 254-291 -
antigo: a base compartilhada de client-details nao expunha avatar, chevron e loader no mesmo padrao visual da tela de perfil -
novo: details passa a expor loadingSpinner, listAvatarBrand, listAvatarText e itemChevronIcon para que vendedores e contatos usem avatar inicial, seta e loader derivados apenas do tema ativo -
ui-customers / src/react/components/tabs/SalesmanTab.js / 75-119 -
antigo: vendedores usavam loader com colors.primary, icone MaterialIcons simple e chevron com cor legada -
novo: SalesmanTab usa loadingSpinner do tema, UserAvatar no padrao da tela de perfil e chevron vindo de listItemSubtitleText -
ui-customers / src/react/components/tabs/EmployeesTab.js / 284-343 -
antigo: contatos usavam "+" com colors.primary, loader legado, icone person simples e chevron hardcoded -
novo: EmployeesTab usa addButton para "+", loadingSpinner do tema, UserAvatar no padrao da tela de perfil e chevron derivado do map compartilhado -
ui-customers / src/react/components/tabs/SalesmanTab.js, EmployeesTab.js, src/react/styles/details.js / cards de vendedores e contatos com botao lapis -
antigo: vendedor usava chevron-right simples e contato/vendedor mantinham paddingRight 16, deixando a acao recuada em relacao ao + -
novo: vendedor e contato usam Feather edit-2 no iconButtonGhost e listItemWithEndAction com paddingRight 0 para alinhar ao limite direito do + -
ui-customers / src/react/components/tabs/SalesmanTab.js, EmployeesTab.js / avatar dos cards de vendedores e contatos -
antigo: UserAvatar recebia apenas name, entao mesmo pessoas/empresas com midia cadastrada em people_media caiam para iniciais -
novo: contatos buscam people_media mediaType.type=avatar e vendedores buscam mediaType.type=logo, passando imageUrl para UserAvatar com fallback para iniciais -
ui-customers / src/react/pages/details.js / avatar do header da client-details -
antigo: UserAvatar recebia apenas name, entao contato/empresa aberta no detalhe caia para iniciais mesmo com people_media -
novo: header busca people_media mediaType.type=avatar para PF e logo para PJ, passando imageUrl para UserAvatar com fallback para iniciais -
ui-customers / src/react/components/tabs/DocumentsTab.js, DocumentsTab.styles.js / botao Salvar do modal de documentos -
antigo: Salvar usava inlineStyle_353_14/inlineStyle_360_20 com '#007bff' e '#fff' -
novo: Salvar usa customStyles.saveButton/saveButtonText e icone buttonIcon, seguindo o padrao do client-details -
ui-customers / src/react/pages/details.js / 380-389 -
antigo: o cabecalho de client-details montava o avatar manualmente com inicial em um circulo separado do componente canonico de perfil -
novo: client-details usa UserAvatar no cabecalho com buttonBackground e buttonText, seguindo o mesmo padrao visual da tela de perfil -
ui-contracts / src/react/components/contracts.js / 17-99 -
antigo: contratos ainda tinha fallback local para themeStore e mostrava o beneficiario com icone person simples -
novo: contracts usa somente themeStore.getters.colors e renderiza o beneficiario com UserAvatar no padrao da tela de perfil -
ui-contracts / src/react/components/contracts.styles.js / 58-72 -
antigo: a linha de beneficiario do card de contrato era estruturada para um icone simples inline -
novo: contracts.styles passa a suportar avatar e bloco textual alinhado na linha de beneficiario -
ui-default / src/react/components/inputs/DefaultInput.js / 44-66, 177-216 -
antigo: DefaultInput usava estilo estatico com cores hardcoded para label, borda, texto, placeholder, icone de editar e botao de fechar -
novo: DefaultInput passa a montar palette via themeStore.getters.colors e aplica tokens canonicos como inputBackground, inputBorder, inputFocusBorder, inputText, inputPlaceholderText, inputIcon, buttonBackgroundSecondary, buttonBorderSecondary e buttonIconSecondary -
ui-default / src/react/components/inputs/DefaultDateInput.js / 46-68, 130-170 -
antigo: DefaultDateInput usava o mesmo pacote de cores hardcoded do input base, inclusive calendario, placeholder e botao de fechar -
novo: DefaultDateInput passa a usar os tokens canonicos inputBackground, inputBorder, inputFocusBorder, inputText, inputPlaceholderText, inputIcon, inputErrorText, buttonBackgroundSecondary, buttonBorderSecondary e buttonIconSecondary -
ui-default / src/react/components/inputs/DefaultInput.styles.js / 1-101 -
antigo: os estilos compartilhados de inputs do ui-default fixavam #CBD5E1, #FFFFFF, #0F172A, #94A3B8, #64748B e #DC2626 -
novo: DefaultInput.styles exporta createStyles com tokens canonicos do tema ativo para campos, labels, placeholders, acoes secundarias e mensagens de erro -
ui-default / src/react/components/inputs/DefaultSelect.js / 117-148, 325-374 -
antigo: DefaultSelect usava modal, busca, chevron, close e estado de selecao com cores hardcoded e fallback visual local -
novo: DefaultSelect passa a usar themeStore.getters.colors com tokens modalOverlay, modalBackground, modalBorder, modalCloseIcon, modalHeaderText, dividerBorder, inputBackground, inputBorder, inputText, inputPlaceholderText e inputIcon -
ui-default / src/react/components/inputs/DefaultSelect.styles.js / 1-69 -
antigo: os estilos do seletor generico fixavam rgba(15,23,42,0.38), #FFFFFF, #E2E8F0, #F1F5F9, #0F172A e #64748B -
novo: DefaultSelect.styles exporta createStyles com tokens canonicos do tema ativo para overlay, card modal, header, divisores e textos -
ui-orders / src/react/pages/orders/OrderHistoryPage.styles.js / 83-314 -
antigo: createModalStyles do order-history-page ainda misturava fallback local e literais para background, border, texto, danger, placeholder e overlay -
novo: createModalStyles passa a usar somente tokens canonicos do tema ativo como modalOverlay, modalBackground, modalBorder, modalHeaderText, modalText, modalShadow, buttonBackground, buttonBorder, buttonText, buttonBackgroundSecondary, buttonBorderSecondary, buttonTextSecondary, buttonDisabledBackground, buttonDisabledText, inputPlaceholderText e textDanger -
ui-orders / src/react/pages/orders/OrderCancellationModals.js / 110-116, 157-164, 193-219, 286-293, 420-427 -
antigo: a tela Order Cancellation Reasons e os modais relacionados ainda instanciavam estilos com fallback e o botao "+ Add Cancel Reason" dependia de accentColor local -
novo: OrderCancellationModals usa somente themeStore.getters.colors para createModalStyles, e o botao "+ Add Cancel Reason" segue diretamente buttonBackground, buttonBorder, buttonText e os estados disabled do tema ativo -
ui-financial / src/react/pages/InvoiceCategoriesPage.js / 213-215 -
antigo: botao "Nova categoria" usava backgroundColor palette.primary, icon color '#fff' e texto herdando '#fff' do style estatico -
novo: botao "Nova categoria" usa themeStore.getters.colors.buttonBackground, buttonIcon e buttonText -
ui-financial / src/react/pages/InvoiceCategoriesPage.styles.js / 17 -
antigo: addBtnText fixava color '#fff' -
novo: addBtnText preserva apenas tipografia; a cor vem de themeStore.getters.colors.buttonText no JSX -
ui-financial / src/react/pages/WalletsPage.js / 308-317 -
antigo: botao "Nova carteira" usava withOpacity(palette.primary), icon color palette.primary e texto em palette.primary -
novo: botao "Nova carteira" usa themeStore.getters.colors.buttonBackground, buttonIcon e buttonText -
ui-financial / src/react/pages/WalletsPage.styles.js / 22-30 -
antigo: addBtn tinha borderWidth/backgroundColor '#FFFFFF'/borderRadius 999 e addBtnText fixava color '#64748B' -
novo: addBtn usa o mesmo formato do "Nova categoria" e addBtnText preserva apenas tipografia -
ui-financial / src/react/pages/WalletsPage.js / 344-378 -
antigo: botoes link/editar/trash usavam icon color '#64748B'/'#c10015' e trash com borderColor '#FCA5A5' -
novo: botoes link/editar/trash usam themeStore.getters.colors.buttonBackground e buttonIcon -
ui-financial / src/react/pages/WalletsPage.styles.js / 52-55 -
antigo: iconBtn fixava borderColor '#E2E8F0' e backgroundColor '#F8FAFC' -
novo: iconBtn preserva apenas layout; as cores vem de themeStore.getters.colors no JSX -
ui-manager / src/react/pages/DeviceDetailPage.js / 1808-1845 -
antigo: abas PDV usavam withOpacity(brandColors.primary), brandColors.primary e '#64748B' para diferenciar ativo/inativo -
novo: aba ativa usa themeStore.getters.colors.buttonBackground/buttonBorder/buttonIcon/buttonText; abas inativas usam buttonBackgroundSecondary/buttonBorderSecondary/buttonIconSecondary/buttonTextSecondary -
ui-manager / src/react/pages/DeviceDetailPage.styles.js / 72-87 -
antigo: tabButton fixava borderColor 'transparent', backgroundColor '#F8FAFC' e tabButtonText fixava color '#64748B' -
novo: tabButton/tabButtonText preservam apenas layout e tipografia; as cores vem de themeStore.getters.colors no JSX -
ui-manager / src/react/pages/DeviceDetailPage.js / 1918-1931 -
antigo: botoes Comanda/Garçom/Totem/Single Item Sale/Caixa herdavam optionButton com cores hardcoded para ativo e inativo -
novo: botoes Comanda/Garçom/Totem/Single Item Sale/Caixa passam optionColors; selecionado usa buttonBackground/buttonBorder/buttonText e demais usam buttonBackgroundSecondary/buttonBorderSecondary/buttonTextSecondary -
ui-manager / src/react/pages/DeviceDetailPage.js / 196-240, 1722-1750, 1990-2021 -
antigo: botoes None/Tab/Table/Stamp herdavam optionButton com cores hardcoded para ativo e inativo -
novo: botoes None/Tab/Table/Stamp passam optionColors; selecionado usa buttonBackground/buttonBorder/buttonText e demais usam buttonBackgroundSecondary/buttonBorderSecondary/buttonTextSecondary -
ui-manager / src/react/pages/DeviceDetailPage.js / 2116-2130 -
antigo: botoes Pedido/Fichas herdavam optionButton com cores hardcoded para ativo e inativo -
novo: botoes Pedido/Fichas passam optionColors; selecionado usa buttonBackground/buttonBorder/buttonText e demais usam buttonBackgroundSecondary/buttonBorderSecondary/buttonTextSecondary -
ui-manager / src/react/pages/DeviceDetailPage.js / 2141-2160 -
antigo: botoes Abertura e fechamento de caixa/Fechamento diario herdavam optionButton com cores hardcoded para ativo e inativo -
novo: botoes Abertura e fechamento de caixa/Fechamento diario passam optionColors; selecionado usa buttonBackground/buttonBorder/buttonText e demais usam buttonBackgroundSecondary/buttonBorderSecondary/buttonTextSecondary -
ui-manager / src/react/pages/DeviceDetailPage.js / 2244-2258 -
antigo: botoes Nenhum/Infinite Pay/Cielo herdavam optionButton com cores hardcoded para ativo e inativo -
novo: botoes Nenhum/Infinite Pay/Cielo passam optionColors; selecionado usa buttonBackground/buttonBorder/buttonText e demais usam buttonBackgroundSecondary/buttonBorderSecondary/buttonTextSecondary -
ui-manager / src/react/pages/DeviceDetailPage.js / 2330-2355 -
antigo: botoes Somente deste device/Todos da empresa herdavam optionButton com cores hardcoded para ativo e inativo -
novo: botoes Somente deste device/Todos da empresa passam optionColors; selecionado usa buttonBackground/buttonBorder/buttonText e demais usam buttonBackgroundSecondary/buttonBorderSecondary/buttonTextSecondary -
ui-manager / src/react/pages/DeviceDetailPage.js / switches do device-detail -
antigo: switches da tela eram TouchableOpacity com icones toggle-left/toggle-right e cores hex/brandColors para ligado/desligado -
novo: switches usam o componente Switch nativo com switchOnTrack, switchOffTrack, switchOnThumb, switchOffThumb, switchDisabledTrack e switchDisabledThumb -
ui-manager / src/react/pages/DeviceDetailPage.styles.js / toggleRow/toggleRowLabel/toggleRowValue -
antigo: estilos dos switches fixavam borderColor/backgroundColor/textos e estado ativo com sucesso hardcoded -
novo: estilos preservam apenas layout; cores de linha e textos entram por listItemBackground, listItemBorder, listItemText e listItemSubtitleText no JSX -
ui-manager / src/react/pages/DeviceDetailPage.js / 2618-2633 -
antigo: botao Limpar cache de produtos usava background '#0EA5E9', icone trash-2 tamanho 14 e cor '#fff' -
novo: botao usa o padrao de cor/icone dos botoes de acao da carteira com buttonBackground, buttonIcon, buttonText e icone Feather trash-2 tamanho 16 -
ui-manager / src/react/pages/DeviceDetailPage.styles.js / configButton/configButtonText -
antigo: configButton/configButtonText fixavam backgroundColor '#0EA5E9' e texto '#fff' -
novo: estilos preservam apenas layout; cores entram por themeStore.getters.colors no JSX -
ui-manager / src/react/pages/DeviceDetailPage.styles.js / editAliasBtn -
antigo: botao de edicao do alias usava 26x26, borderRadius 13 e backgroundColor '#E2E8F0' -
novo: botao de edicao do alias usa o mesmo formato dos botoes de acao da carteira: 34x34, borderRadius 8, borderWidth 1; cores e icone edit-2 vem do JSX com buttonBackground/buttonIcon -
ui-manager / src/react/pages/DeviceDetailPage.js / renderHelpButton -
antigo: botoes de ajuda "?" usavam accentColor brandColors.primary e formato padrao pequeno do DefaultTooltip -
novo: botoes de ajuda "?" usam o mesmo formato dos botoes de acao da carteira: 34x34, borderRadius 8, buttonBackground e buttonIcon -
ui-config / src/react/pages/MenuAccessConfigPage.js / 119-152 -
antigo: tela nao lia themeStore.getters.colors para botoes Ativo/Inativo e Salvar menu -
novo: tela monta palette com buttonBackground, buttonBackgroundSecondary, buttonBorder, buttonBorderSecondary, buttonIcon, buttonIconSecondary, buttonText e buttonTextSecondary -
ui-config / src/react/pages/MenuAccessConfigPage.js / 584-598, 810-827 -
antigo: Salvar novo menu e Salvar menu herdavam saveButton com backgroundColor '#0F766E' e icon/text '#FFFFFF' -
novo: Salvar novo menu e Salvar menu usam backgroundColor palette.buttonBackground, borderColor palette.buttonBorder, icon palette.buttonIcon e texto palette.buttonText -
ui-config / src/react/pages/MenuAccessConfigPage.js / 684-716 -
antigo: Ativo/Inativo usava enabledButton com '#F1F5F9', enabledButtonActive '#16A34A', icone '#FFFFFF'/'#64748B' e texto '#64748B'/'#FFFFFF' -
novo: Ativo usa buttonBackground/buttonBorder/buttonIcon/buttonText; Inativo usa buttonBackgroundSecondary/buttonBorderSecondary/buttonIconSecondary/buttonTextSecondary -
ui-config / src/react/pages/MenuAccessConfigPage.styles.js / 244-256, 316-328 -
antigo: enabledButton/enabledText/saveButton/saveButtonText fixavam cores locais -
novo: enabledButton/saveButton preservam layout com borderWidth; enabledText/saveButtonText preservam tipografia e recebem cor do tema no JSX -
ui-config / src/react/pages/MenuAccessConfigPage.js / 422-435 -
antigo: Adicionar rota usava primaryButton com backgroundColor '#2563EB' e icon/text '#FFFFFF' -
novo: Adicionar rota usa backgroundColor palette.buttonBackground, borderColor palette.buttonBorder, icon palette.buttonIcon e texto palette.buttonText -
ui-config / src/react/pages/MenuAccessConfigPage.js / 632-660 -
antigo: Adicionar e Salvar categoria usavam secondaryButton com backgroundColor '#EFF6FF', borderColor '#BFDBFE' e icon/text '#2563EB' -
novo: Adicionar e Salvar categoria usam buttonBackground, buttonBorder, buttonIcon e buttonText -
ui-config / src/react/pages/MenuAccessConfigPage.styles.js / 285-310 -
antigo: primaryButton/primaryButtonText/secondaryButton/secondaryButtonText fixavam cores locais -
novo: primaryButton/primaryButtonText/categoryButton/categoryButtonText preservam apenas layout e tipografia; cores entram por themeStore.getters.colors no JSX -
ui-common / src/react/components/ConfirmModal.js / full -
antigo: componente usava StyleSheet estatico com cores hardcoded no styles -
novo: useStore('theme') + palette canônica (modalOverlay, modalBackground, modalBorder, modalHeaderText, modalText, buttonBackground, buttonBorder, buttonText, buttonTextSecondary) e createStyles(palette) -
ui-common / src/react/components/ConfirmModal.styles.js / full -
antigo: StyleSheet estatico com backgroundColor 'rgba(0,0,0,0.5)', '#fff', '#007AFF', color '#fff' -
novo: createStyles(palette) usando somente tokens canônicos modal* e button* -
ui-common / src/react/components/SystemErrorToast.js / full -
antigo: Icon color="#DC2626" hardcoded; estilos com cores literais -
novo: useStore('theme') + palette toastDanger* e Icon color={palette.toastDangerIcon} -
ui-common / src/react/components/SystemErrorToast.styles.js / full -
antigo: StyleSheet estatico com backgroundColor '#FEE2E2', borderColor '#FCA5A5', color '#111827' -
novo: createStyles(palette) usando toastDangerBackground, toastDangerBorder, toastDangerText