acai-ui 1.65.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +795 -0
- package/README.md +64 -0
- package/dist/acai-ui.css +14627 -0
- package/dist/components/actions/acai-ui-actions.d.ts +3 -0
- package/dist/components/async-select/acai-ui-async-select-interface.d.ts +48 -0
- package/dist/components/async-select/acai-ui-async-select-interface.d.ts.map +1 -0
- package/dist/components/async-select/acai-ui-async-select.d.ts +3 -0
- package/dist/components/badge/acai-ui-badge-interface.d.ts +20 -0
- package/dist/components/badge/acai-ui-badge-interface.d.ts.map +1 -0
- package/dist/components/badge/acai-ui-badge.d.ts +3 -0
- package/dist/components/banner/acai-ui-banner-interface.d.ts +16 -0
- package/dist/components/banner/acai-ui-banner-interface.d.ts.map +1 -0
- package/dist/components/banner/acai-ui-banner.d.ts +3 -0
- package/dist/components/button/acai-ui-button-interface.d.ts +21 -0
- package/dist/components/button/acai-ui-button-interface.d.ts.map +1 -0
- package/dist/components/button/acai-ui-button.d.ts +3 -0
- package/dist/components/card/acai-ui-card-interface.d.ts +14 -0
- package/dist/components/card/acai-ui-card-interface.d.ts.map +1 -0
- package/dist/components/card/acai-ui-card.d.ts +3 -0
- package/dist/components/chart/acai-ui-chart-interface.d.ts +190 -0
- package/dist/components/chart/acai-ui-chart-interface.d.ts.map +1 -0
- package/dist/components/chart/acai-ui-chart.d.ts +3 -0
- package/dist/components/chart/chart-a11y.d.ts +40 -0
- package/dist/components/chart/chart-a11y.d.ts.map +1 -0
- package/dist/components/chart/chart-caminhos.d.ts +91 -0
- package/dist/components/chart/chart-caminhos.d.ts.map +1 -0
- package/dist/components/chart/chart-cartesiano.d.ts +3 -0
- package/dist/components/chart/chart-dados.d.ts +74 -0
- package/dist/components/chart/chart-dados.d.ts.map +1 -0
- package/dist/components/chart/chart-escalas.d.ts +45 -0
- package/dist/components/chart/chart-escalas.d.ts.map +1 -0
- package/dist/components/chart/chart-formatar.d.ts +21 -0
- package/dist/components/chart/chart-formatar.d.ts.map +1 -0
- package/dist/components/chart/chart-gauge.d.ts +3 -0
- package/dist/components/chart/chart-headless.d.ts +29 -0
- package/dist/components/chart/chart-headless.d.ts.map +1 -0
- package/dist/components/chart/chart-imagem.d.ts +51 -0
- package/dist/components/chart/chart-imagem.d.ts.map +1 -0
- package/dist/components/chart/chart-layout.d.ts +59 -0
- package/dist/components/chart/chart-layout.d.ts.map +1 -0
- package/dist/components/chart/chart-legenda.d.ts +3 -0
- package/dist/components/chart/chart-pizza.d.ts +3 -0
- package/dist/components/chart/chart-plano.d.ts +201 -0
- package/dist/components/chart/chart-plano.d.ts.map +1 -0
- package/dist/components/chart/chart-rotulos.d.ts +10 -0
- package/dist/components/chart/chart-rotulos.d.ts.map +1 -0
- package/dist/components/chart/chart-tabela.d.ts +3 -0
- package/dist/components/chart/chart-ticks.d.ts +35 -0
- package/dist/components/chart/chart-ticks.d.ts.map +1 -0
- package/dist/components/checkbox/acai-ui-checkbox-interface.d.ts +16 -0
- package/dist/components/checkbox/acai-ui-checkbox-interface.d.ts.map +1 -0
- package/dist/components/checkbox/acai-ui-checkbox.d.ts +3 -0
- package/dist/components/chip/acai-ui-chip-interface.d.ts +17 -0
- package/dist/components/chip/acai-ui-chip-interface.d.ts.map +1 -0
- package/dist/components/chip/acai-ui-chip.d.ts +3 -0
- package/dist/components/code/acai-ui-code-interface.d.ts +44 -0
- package/dist/components/code/acai-ui-code-interface.d.ts.map +1 -0
- package/dist/components/code/acai-ui-code.d.ts +3 -0
- package/dist/components/code/dobras-json.d.ts +14 -0
- package/dist/components/code/dobras-json.d.ts.map +1 -0
- package/dist/components/confirm/acai-ui-confirm.d.ts +3 -0
- package/dist/components/container/acai-ui-container-interface.d.ts +29 -0
- package/dist/components/container/acai-ui-container-interface.d.ts.map +1 -0
- package/dist/components/container/acai-ui-container.d.ts +3 -0
- package/dist/components/date/acai-ui-date-interface.d.ts +19 -0
- package/dist/components/date/acai-ui-date-interface.d.ts.map +1 -0
- package/dist/components/date/acai-ui-date.d.ts +3 -0
- package/dist/components/date-range/acai-ui-date-range-interface.d.ts +27 -0
- package/dist/components/date-range/acai-ui-date-range-interface.d.ts.map +1 -0
- package/dist/components/date-range/acai-ui-date-range.d.ts +3 -0
- package/dist/components/datetime/acai-ui-datetime-interface.d.ts +10 -0
- package/dist/components/datetime/acai-ui-datetime-interface.d.ts.map +1 -0
- package/dist/components/datetime/acai-ui-datetime.d.ts +3 -0
- package/dist/components/dialog/acai-ui-dialog-interface.d.ts +17 -0
- package/dist/components/dialog/acai-ui-dialog-interface.d.ts.map +1 -0
- package/dist/components/dialog/acai-ui-dialog.d.ts +3 -0
- package/dist/components/divider/acai-ui-divider-interface.d.ts +5 -0
- package/dist/components/divider/acai-ui-divider-interface.d.ts.map +1 -0
- package/dist/components/divider/acai-ui-divider.d.ts +3 -0
- package/dist/components/drawer/acai-ui-drawer-interface.d.ts +97 -0
- package/dist/components/drawer/acai-ui-drawer-interface.d.ts.map +1 -0
- package/dist/components/drawer/acai-ui-drawer.d.ts +3 -0
- package/dist/components/drawer/drawer-sidebar-helper.d.ts +4 -0
- package/dist/components/drawer/drawer-sidebar-helper.d.ts.map +1 -0
- package/dist/components/dropdown/acai-ui-dropdown-interface.d.ts +35 -0
- package/dist/components/dropdown/acai-ui-dropdown-interface.d.ts.map +1 -0
- package/dist/components/dropdown/acai-ui-dropdown-item.d.ts +3 -0
- package/dist/components/dropdown/acai-ui-dropdown.d.ts +3 -0
- package/dist/components/error-log/acai-ui-error-log-interface.d.ts +59 -0
- package/dist/components/error-log/acai-ui-error-log-interface.d.ts.map +1 -0
- package/dist/components/error-log/acai-ui-error-log-json-tree.d.ts +3 -0
- package/dist/components/error-log/acai-ui-error-log-redigir.d.ts +28 -0
- package/dist/components/error-log/acai-ui-error-log-redigir.d.ts.map +1 -0
- package/dist/components/error-log/acai-ui-error-log.d.ts +3 -0
- package/dist/components/file/acai-ui-file-interface.d.ts +13 -0
- package/dist/components/file/acai-ui-file-interface.d.ts.map +1 -0
- package/dist/components/file/acai-ui-file.d.ts +3 -0
- package/dist/components/form/acai-ui-form-interface.d.ts +37 -0
- package/dist/components/form/acai-ui-form-interface.d.ts.map +1 -0
- package/dist/components/form/acai-ui-form.d.ts +3 -0
- package/dist/components/help/acai-ui-help-interface.d.ts +184 -0
- package/dist/components/help/acai-ui-help-interface.d.ts.map +1 -0
- package/dist/components/help/acai-ui-help.d.ts +3 -0
- package/dist/components/help/acai-ui-tour.d.ts +3 -0
- package/dist/components/help/tour-escolha.d.ts +62 -0
- package/dist/components/help/tour-escolha.d.ts.map +1 -0
- package/dist/components/help/tour-posicionar.d.ts +39 -0
- package/dist/components/help/tour-posicionar.d.ts.map +1 -0
- package/dist/components/help/tour-registry.d.ts +54 -0
- package/dist/components/help/tour-registry.d.ts.map +1 -0
- package/dist/components/help/use-tour-visto.d.ts +11 -0
- package/dist/components/help/use-tour-visto.d.ts.map +1 -0
- package/dist/components/icon/acai-ui-icon-interface.d.ts +12 -0
- package/dist/components/icon/acai-ui-icon-interface.d.ts.map +1 -0
- package/dist/components/icon/acai-ui-icon.d.ts +3 -0
- package/dist/components/index.d.ts +89 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/input/acai-ui-input-interface.d.ts +20 -0
- package/dist/components/input/acai-ui-input-interface.d.ts.map +1 -0
- package/dist/components/input/acai-ui-input.d.ts +3 -0
- package/dist/components/modal/acai-ui-modal-interface.d.ts +16 -0
- package/dist/components/modal/acai-ui-modal-interface.d.ts.map +1 -0
- package/dist/components/modal/acai-ui-modal.d.ts +3 -0
- package/dist/components/pagination/acai-ui-pagination-interface.d.ts +9 -0
- package/dist/components/pagination/acai-ui-pagination-interface.d.ts.map +1 -0
- package/dist/components/pagination/acai-ui-pagination.d.ts +3 -0
- package/dist/components/preferences/acai-ui-preferences-interface.d.ts +5 -0
- package/dist/components/preferences/acai-ui-preferences-interface.d.ts.map +1 -0
- package/dist/components/preferences/acai-ui-preferences.d.ts +3 -0
- package/dist/components/progress/acai-ui-progress-interface.d.ts +18 -0
- package/dist/components/progress/acai-ui-progress-interface.d.ts.map +1 -0
- package/dist/components/progress/acai-ui-progress.d.ts +3 -0
- package/dist/components/radio/acai-ui-radio-interface.d.ts +13 -0
- package/dist/components/radio/acai-ui-radio-interface.d.ts.map +1 -0
- package/dist/components/radio/acai-ui-radio.d.ts +3 -0
- package/dist/components/section/acai-ui-section.d.ts +3 -0
- package/dist/components/select/acai-ui-select-interface.d.ts +18 -0
- package/dist/components/select/acai-ui-select-interface.d.ts.map +1 -0
- package/dist/components/select/acai-ui-select.d.ts +3 -0
- package/dist/components/session-clock/acai-ui-session-clock.d.ts +3 -0
- package/dist/components/stepper/acai-ui-step-interface.d.ts +18 -0
- package/dist/components/stepper/acai-ui-step-interface.d.ts.map +1 -0
- package/dist/components/stepper/acai-ui-step.d.ts +3 -0
- package/dist/components/stepper/acai-ui-stepper-interface.d.ts +53 -0
- package/dist/components/stepper/acai-ui-stepper-interface.d.ts.map +1 -0
- package/dist/components/stepper/acai-ui-stepper.d.ts +3 -0
- package/dist/components/swagger/acai-ui-swagger-interface.d.ts +53 -0
- package/dist/components/swagger/acai-ui-swagger-interface.d.ts.map +1 -0
- package/dist/components/swagger/acai-ui-swagger-operacao.d.ts +3 -0
- package/dist/components/swagger/acai-ui-swagger-requisicao.d.ts +76 -0
- package/dist/components/swagger/acai-ui-swagger-requisicao.d.ts.map +1 -0
- package/dist/components/swagger/acai-ui-swagger-schema.d.ts +3 -0
- package/dist/components/swagger/acai-ui-swagger.d.ts +3 -0
- package/dist/components/swagger/openapi-normalizar.d.ts +51 -0
- package/dist/components/swagger/openapi-normalizar.d.ts.map +1 -0
- package/dist/components/swagger/openapi-tipos.d.ts +167 -0
- package/dist/components/swagger/openapi-tipos.d.ts.map +1 -0
- package/dist/components/table/acai-ui-table-interface.d.ts +47 -0
- package/dist/components/table/acai-ui-table-interface.d.ts.map +1 -0
- package/dist/components/table/acai-ui-table-justificativa.d.ts +3 -0
- package/dist/components/table/acai-ui-table.d.ts +3 -0
- package/dist/components/tabs/acai-ui-tab.d.ts +3 -0
- package/dist/components/tabs/acai-ui-tabs-interface.d.ts +32 -0
- package/dist/components/tabs/acai-ui-tabs-interface.d.ts.map +1 -0
- package/dist/components/tabs/acai-ui-tabs.d.ts +3 -0
- package/dist/components/time/acai-ui-time-interface.d.ts +15 -0
- package/dist/components/time/acai-ui-time-interface.d.ts.map +1 -0
- package/dist/components/time/acai-ui-time.d.ts +3 -0
- package/dist/components/toggle/acai-ui-toggle-interface.d.ts +12 -0
- package/dist/components/toggle/acai-ui-toggle-interface.d.ts.map +1 -0
- package/dist/components/toggle/acai-ui-toggle.d.ts +3 -0
- package/dist/components/tooltip/acai-ui-tooltip-interface.d.ts +9 -0
- package/dist/components/tooltip/acai-ui-tooltip-interface.d.ts.map +1 -0
- package/dist/components/tooltip/acai-ui-tooltip.d.ts +3 -0
- package/dist/components/user-menu/acai-ui-user-menu-interface.d.ts +14 -0
- package/dist/components/user-menu/acai-ui-user-menu-interface.d.ts.map +1 -0
- package/dist/components/user-menu/acai-ui-user-menu.d.ts +3 -0
- package/dist/components/validation/acai-ui-validation.d.ts +3 -0
- package/dist/constants/chart-paleta.d.ts +47 -0
- package/dist/constants/chart-paleta.d.ts.map +1 -0
- package/dist/constants/efeitos.d.ts +22 -0
- package/dist/constants/efeitos.d.ts.map +1 -0
- package/dist/constants/index.d.ts +13 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/lista-icons.d.ts +156 -0
- package/dist/constants/lista-icons.d.ts.map +1 -0
- package/dist/constants/medidas-espacos.d.ts +15 -0
- package/dist/constants/medidas-espacos.d.ts.map +1 -0
- package/dist/constants/radius.d.ts +15 -0
- package/dist/constants/radius.d.ts.map +1 -0
- package/dist/constants/status-badge.d.ts +17 -0
- package/dist/constants/status-badge.d.ts.map +1 -0
- package/dist/hooks/filtros-url-internos.d.ts +121 -0
- package/dist/hooks/filtros-url-internos.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +18 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/notify.d.ts +8 -0
- package/dist/hooks/notify.d.ts.map +1 -0
- package/dist/hooks/use-contador-sessao.d.ts +22 -0
- package/dist/hooks/use-contador-sessao.d.ts.map +1 -0
- package/dist/hooks/use-filtros-na-url.d.ts +110 -0
- package/dist/hooks/use-filtros-na-url.d.ts.map +1 -0
- package/dist/hooks/use-leitura-voz.d.ts +60 -0
- package/dist/hooks/use-leitura-voz.d.ts.map +1 -0
- package/dist/hooks/use-listagem-na-url.d.ts +185 -0
- package/dist/hooks/use-listagem-na-url.d.ts.map +1 -0
- package/dist/hooks/use-preferencias.d.ts +60 -0
- package/dist/hooks/use-preferencias.d.ts.map +1 -0
- package/dist/hooks/use-repasse-quasar.d.ts +42 -0
- package/dist/hooks/use-repasse-quasar.d.ts.map +1 -0
- package/dist/hooks/use-tamanho-elemento.d.ts +26 -0
- package/dist/hooks/use-tamanho-elemento.d.ts.map +1 -0
- package/dist/hooks/use-tela.d.ts +84 -0
- package/dist/hooks/use-tela.d.ts.map +1 -0
- package/dist/hooks/use-validacao-visual.d.ts +40 -0
- package/dist/hooks/use-validacao-visual.d.ts.map +1 -0
- package/dist/index.cjs +249 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +249 -0
- package/dist/index.mjs.map +1 -0
- package/dist/index10.cjs +24 -0
- package/dist/index10.cjs.map +1 -0
- package/dist/index10.mjs +25 -0
- package/dist/index10.mjs.map +1 -0
- package/dist/index100.cjs +51 -0
- package/dist/index100.cjs.map +1 -0
- package/dist/index100.mjs +51 -0
- package/dist/index100.mjs.map +1 -0
- package/dist/index101.cjs +143 -0
- package/dist/index101.cjs.map +1 -0
- package/dist/index101.mjs +143 -0
- package/dist/index101.mjs.map +1 -0
- package/dist/index102.cjs +137 -0
- package/dist/index102.cjs.map +1 -0
- package/dist/index102.mjs +138 -0
- package/dist/index102.mjs.map +1 -0
- package/dist/index104.cjs +10 -0
- package/dist/index104.cjs.map +1 -0
- package/dist/index104.mjs +11 -0
- package/dist/index104.mjs.map +1 -0
- package/dist/index105.cjs +5 -0
- package/dist/index105.cjs.map +1 -0
- package/dist/index105.mjs +6 -0
- package/dist/index105.mjs.map +1 -0
- package/dist/index106.cjs +5 -0
- package/dist/index106.cjs.map +1 -0
- package/dist/index106.mjs +6 -0
- package/dist/index106.mjs.map +1 -0
- package/dist/index107.cjs +86 -0
- package/dist/index107.cjs.map +1 -0
- package/dist/index107.mjs +87 -0
- package/dist/index107.mjs.map +1 -0
- package/dist/index109.cjs +123 -0
- package/dist/index109.cjs.map +1 -0
- package/dist/index109.mjs +124 -0
- package/dist/index109.mjs.map +1 -0
- package/dist/index111.cjs +121 -0
- package/dist/index111.cjs.map +1 -0
- package/dist/index111.mjs +122 -0
- package/dist/index111.mjs.map +1 -0
- package/dist/index113.cjs +72 -0
- package/dist/index113.cjs.map +1 -0
- package/dist/index113.mjs +73 -0
- package/dist/index113.mjs.map +1 -0
- package/dist/index115.cjs +5 -0
- package/dist/index115.cjs.map +1 -0
- package/dist/index115.mjs +6 -0
- package/dist/index115.mjs.map +1 -0
- package/dist/index116.cjs +56 -0
- package/dist/index116.cjs.map +1 -0
- package/dist/index116.mjs +57 -0
- package/dist/index116.mjs.map +1 -0
- package/dist/index118.cjs +5 -0
- package/dist/index118.cjs.map +1 -0
- package/dist/index118.mjs +6 -0
- package/dist/index118.mjs.map +1 -0
- package/dist/index119.cjs +210 -0
- package/dist/index119.cjs.map +1 -0
- package/dist/index119.mjs +211 -0
- package/dist/index119.mjs.map +1 -0
- package/dist/index12.cjs +606 -0
- package/dist/index12.cjs.map +1 -0
- package/dist/index12.mjs +607 -0
- package/dist/index12.mjs.map +1 -0
- package/dist/index121.cjs +170 -0
- package/dist/index121.cjs.map +1 -0
- package/dist/index121.mjs +171 -0
- package/dist/index121.mjs.map +1 -0
- package/dist/index123.cjs +109 -0
- package/dist/index123.cjs.map +1 -0
- package/dist/index123.mjs +110 -0
- package/dist/index123.mjs.map +1 -0
- package/dist/index125.cjs +5 -0
- package/dist/index125.cjs.map +1 -0
- package/dist/index125.mjs +6 -0
- package/dist/index125.mjs.map +1 -0
- package/dist/index126.cjs +4 -0
- package/dist/index126.cjs.map +1 -0
- package/dist/index126.mjs +5 -0
- package/dist/index126.mjs.map +1 -0
- package/dist/index127.cjs +300 -0
- package/dist/index127.cjs.map +1 -0
- package/dist/index127.mjs +301 -0
- package/dist/index127.mjs.map +1 -0
- package/dist/index130.cjs +5 -0
- package/dist/index130.cjs.map +1 -0
- package/dist/index130.mjs +6 -0
- package/dist/index130.mjs.map +1 -0
- package/dist/index131.cjs +5 -0
- package/dist/index131.cjs.map +1 -0
- package/dist/index131.mjs +6 -0
- package/dist/index131.mjs.map +1 -0
- package/dist/index132.cjs +128 -0
- package/dist/index132.cjs.map +1 -0
- package/dist/index132.mjs +129 -0
- package/dist/index132.mjs.map +1 -0
- package/dist/index134.cjs +4 -0
- package/dist/index134.cjs.map +1 -0
- package/dist/index134.mjs +5 -0
- package/dist/index134.mjs.map +1 -0
- package/dist/index135.cjs +180 -0
- package/dist/index135.cjs.map +1 -0
- package/dist/index135.mjs +181 -0
- package/dist/index135.mjs.map +1 -0
- package/dist/index137.cjs +83 -0
- package/dist/index137.cjs.map +1 -0
- package/dist/index137.mjs +84 -0
- package/dist/index137.mjs.map +1 -0
- package/dist/index139.cjs +284 -0
- package/dist/index139.cjs.map +1 -0
- package/dist/index139.mjs +285 -0
- package/dist/index139.mjs.map +1 -0
- package/dist/index14.cjs +124 -0
- package/dist/index14.cjs.map +1 -0
- package/dist/index14.mjs +125 -0
- package/dist/index14.mjs.map +1 -0
- package/dist/index141.cjs +58 -0
- package/dist/index141.cjs.map +1 -0
- package/dist/index141.mjs +59 -0
- package/dist/index141.mjs.map +1 -0
- package/dist/index143.cjs +5 -0
- package/dist/index143.cjs.map +1 -0
- package/dist/index143.mjs +6 -0
- package/dist/index143.mjs.map +1 -0
- package/dist/index144.cjs +399 -0
- package/dist/index144.cjs.map +1 -0
- package/dist/index144.mjs +400 -0
- package/dist/index144.mjs.map +1 -0
- package/dist/index146.cjs +305 -0
- package/dist/index146.cjs.map +1 -0
- package/dist/index146.mjs +306 -0
- package/dist/index146.mjs.map +1 -0
- package/dist/index149.cjs +109 -0
- package/dist/index149.cjs.map +1 -0
- package/dist/index149.mjs +110 -0
- package/dist/index149.mjs.map +1 -0
- package/dist/index152.cjs +5 -0
- package/dist/index152.cjs.map +1 -0
- package/dist/index152.mjs +6 -0
- package/dist/index152.mjs.map +1 -0
- package/dist/index153.cjs +5 -0
- package/dist/index153.cjs.map +1 -0
- package/dist/index153.mjs +6 -0
- package/dist/index153.mjs.map +1 -0
- package/dist/index154.cjs +4 -0
- package/dist/index154.cjs.map +1 -0
- package/dist/index154.mjs +5 -0
- package/dist/index154.mjs.map +1 -0
- package/dist/index155.cjs +5 -0
- package/dist/index155.cjs.map +1 -0
- package/dist/index155.mjs +6 -0
- package/dist/index155.mjs.map +1 -0
- package/dist/index156.cjs +5 -0
- package/dist/index156.cjs.map +1 -0
- package/dist/index156.mjs +6 -0
- package/dist/index156.mjs.map +1 -0
- package/dist/index157.cjs +5 -0
- package/dist/index157.cjs.map +1 -0
- package/dist/index157.mjs +6 -0
- package/dist/index157.mjs.map +1 -0
- package/dist/index158.cjs +4 -0
- package/dist/index158.cjs.map +1 -0
- package/dist/index158.mjs +5 -0
- package/dist/index158.mjs.map +1 -0
- package/dist/index159.cjs +59 -0
- package/dist/index159.cjs.map +1 -0
- package/dist/index159.mjs +60 -0
- package/dist/index159.mjs.map +1 -0
- package/dist/index16.cjs +89 -0
- package/dist/index16.cjs.map +1 -0
- package/dist/index16.mjs +90 -0
- package/dist/index16.mjs.map +1 -0
- package/dist/index161.cjs +5 -0
- package/dist/index161.cjs.map +1 -0
- package/dist/index161.mjs +6 -0
- package/dist/index161.mjs.map +1 -0
- package/dist/index162.cjs +119 -0
- package/dist/index162.cjs.map +1 -0
- package/dist/index162.mjs +120 -0
- package/dist/index162.mjs.map +1 -0
- package/dist/index164.cjs +33 -0
- package/dist/index164.cjs.map +1 -0
- package/dist/index164.mjs +34 -0
- package/dist/index164.mjs.map +1 -0
- package/dist/index166.cjs +5 -0
- package/dist/index166.cjs.map +1 -0
- package/dist/index166.mjs +6 -0
- package/dist/index166.mjs.map +1 -0
- package/dist/index167.cjs +324 -0
- package/dist/index167.cjs.map +1 -0
- package/dist/index167.mjs +325 -0
- package/dist/index167.mjs.map +1 -0
- package/dist/index17.cjs +419 -0
- package/dist/index17.cjs.map +1 -0
- package/dist/index17.mjs +420 -0
- package/dist/index17.mjs.map +1 -0
- package/dist/index170.cjs +38 -0
- package/dist/index170.cjs.map +1 -0
- package/dist/index170.mjs +39 -0
- package/dist/index170.mjs.map +1 -0
- package/dist/index172.cjs +5 -0
- package/dist/index172.cjs.map +1 -0
- package/dist/index172.mjs +6 -0
- package/dist/index172.mjs.map +1 -0
- package/dist/index173.cjs +202 -0
- package/dist/index173.cjs.map +1 -0
- package/dist/index173.mjs +203 -0
- package/dist/index173.mjs.map +1 -0
- package/dist/index175.cjs +5 -0
- package/dist/index175.cjs.map +1 -0
- package/dist/index175.mjs +6 -0
- package/dist/index175.mjs.map +1 -0
- package/dist/index176.cjs +53 -0
- package/dist/index176.cjs.map +1 -0
- package/dist/index176.mjs +54 -0
- package/dist/index176.mjs.map +1 -0
- package/dist/index178.cjs +13 -0
- package/dist/index178.cjs.map +1 -0
- package/dist/index178.mjs +13 -0
- package/dist/index178.mjs.map +1 -0
- package/dist/index179.cjs +18 -0
- package/dist/index179.cjs.map +1 -0
- package/dist/index179.mjs +18 -0
- package/dist/index179.mjs.map +1 -0
- package/dist/index180.cjs +262 -0
- package/dist/index180.cjs.map +1 -0
- package/dist/index180.mjs +262 -0
- package/dist/index180.mjs.map +1 -0
- package/dist/index181.cjs +108 -0
- package/dist/index181.cjs.map +1 -0
- package/dist/index181.mjs +109 -0
- package/dist/index181.mjs.map +1 -0
- package/dist/index182.cjs +73 -0
- package/dist/index182.cjs.map +1 -0
- package/dist/index182.mjs +73 -0
- package/dist/index182.mjs.map +1 -0
- package/dist/index183.cjs +37 -0
- package/dist/index183.cjs.map +1 -0
- package/dist/index183.mjs +37 -0
- package/dist/index183.mjs.map +1 -0
- package/dist/index184.cjs +16 -0
- package/dist/index184.cjs.map +1 -0
- package/dist/index184.mjs +16 -0
- package/dist/index184.mjs.map +1 -0
- package/dist/index185.cjs +31 -0
- package/dist/index185.cjs.map +1 -0
- package/dist/index185.mjs +31 -0
- package/dist/index185.mjs.map +1 -0
- package/dist/index186.cjs +460 -0
- package/dist/index186.cjs.map +1 -0
- package/dist/index186.mjs +461 -0
- package/dist/index186.mjs.map +1 -0
- package/dist/index187.cjs +154 -0
- package/dist/index187.cjs.map +1 -0
- package/dist/index187.mjs +154 -0
- package/dist/index187.mjs.map +1 -0
- package/dist/index188.cjs +40 -0
- package/dist/index188.cjs.map +1 -0
- package/dist/index188.mjs +40 -0
- package/dist/index188.mjs.map +1 -0
- package/dist/index189.cjs +66 -0
- package/dist/index189.cjs.map +1 -0
- package/dist/index189.mjs +66 -0
- package/dist/index189.mjs.map +1 -0
- package/dist/index19.cjs +135 -0
- package/dist/index19.cjs.map +1 -0
- package/dist/index19.mjs +136 -0
- package/dist/index19.mjs.map +1 -0
- package/dist/index190.cjs +142 -0
- package/dist/index190.cjs.map +1 -0
- package/dist/index190.mjs +143 -0
- package/dist/index190.mjs.map +1 -0
- package/dist/index191.cjs +7 -0
- package/dist/index191.cjs.map +1 -0
- package/dist/index191.mjs +8 -0
- package/dist/index191.mjs.map +1 -0
- package/dist/index192.cjs +7 -0
- package/dist/index192.cjs.map +1 -0
- package/dist/index192.mjs +8 -0
- package/dist/index192.mjs.map +1 -0
- package/dist/index193.cjs +7 -0
- package/dist/index193.cjs.map +1 -0
- package/dist/index193.mjs +8 -0
- package/dist/index193.mjs.map +1 -0
- package/dist/index194.cjs +7 -0
- package/dist/index194.cjs.map +1 -0
- package/dist/index194.mjs +8 -0
- package/dist/index194.mjs.map +1 -0
- package/dist/index195.cjs +7 -0
- package/dist/index195.cjs.map +1 -0
- package/dist/index195.mjs +8 -0
- package/dist/index195.mjs.map +1 -0
- package/dist/index196.cjs +100 -0
- package/dist/index196.cjs.map +1 -0
- package/dist/index196.mjs +100 -0
- package/dist/index196.mjs.map +1 -0
- package/dist/index197.cjs +226 -0
- package/dist/index197.cjs.map +1 -0
- package/dist/index197.mjs +226 -0
- package/dist/index197.mjs.map +1 -0
- package/dist/index198.cjs +66 -0
- package/dist/index198.cjs.map +1 -0
- package/dist/index198.mjs +66 -0
- package/dist/index198.mjs.map +1 -0
- package/dist/index199.cjs +399 -0
- package/dist/index199.cjs.map +1 -0
- package/dist/index199.mjs +399 -0
- package/dist/index199.mjs.map +1 -0
- package/dist/index200.cjs +83 -0
- package/dist/index200.cjs.map +1 -0
- package/dist/index200.mjs +83 -0
- package/dist/index200.mjs.map +1 -0
- package/dist/index201.cjs +4 -0
- package/dist/index201.cjs.map +1 -0
- package/dist/index201.mjs +5 -0
- package/dist/index201.mjs.map +1 -0
- package/dist/index202.cjs +5 -0
- package/dist/index202.cjs.map +1 -0
- package/dist/index202.mjs +6 -0
- package/dist/index202.mjs.map +1 -0
- package/dist/index203.cjs +216 -0
- package/dist/index203.cjs.map +1 -0
- package/dist/index203.mjs +217 -0
- package/dist/index203.mjs.map +1 -0
- package/dist/index205.cjs +112 -0
- package/dist/index205.cjs.map +1 -0
- package/dist/index205.mjs +113 -0
- package/dist/index205.mjs.map +1 -0
- package/dist/index207.cjs +112 -0
- package/dist/index207.cjs.map +1 -0
- package/dist/index207.mjs +113 -0
- package/dist/index207.mjs.map +1 -0
- package/dist/index209.cjs +64 -0
- package/dist/index209.cjs.map +1 -0
- package/dist/index209.mjs +65 -0
- package/dist/index209.mjs.map +1 -0
- package/dist/index21.cjs +268 -0
- package/dist/index21.cjs.map +1 -0
- package/dist/index21.mjs +269 -0
- package/dist/index21.mjs.map +1 -0
- package/dist/index211.cjs +45 -0
- package/dist/index211.cjs.map +1 -0
- package/dist/index211.mjs +46 -0
- package/dist/index211.mjs.map +1 -0
- package/dist/index213.cjs +241 -0
- package/dist/index213.cjs.map +1 -0
- package/dist/index213.mjs +241 -0
- package/dist/index213.mjs.map +1 -0
- package/dist/index214.cjs +63 -0
- package/dist/index214.cjs.map +1 -0
- package/dist/index214.mjs +63 -0
- package/dist/index214.mjs.map +1 -0
- package/dist/index215.cjs +53 -0
- package/dist/index215.cjs.map +1 -0
- package/dist/index215.mjs +53 -0
- package/dist/index215.mjs.map +1 -0
- package/dist/index216.cjs +53 -0
- package/dist/index216.cjs.map +1 -0
- package/dist/index216.mjs +53 -0
- package/dist/index216.mjs.map +1 -0
- package/dist/index217.cjs +4 -0
- package/dist/index217.cjs.map +1 -0
- package/dist/index217.mjs +5 -0
- package/dist/index217.mjs.map +1 -0
- package/dist/index218.cjs +29 -0
- package/dist/index218.cjs.map +1 -0
- package/dist/index218.mjs +30 -0
- package/dist/index218.mjs.map +1 -0
- package/dist/index219.cjs +4 -0
- package/dist/index219.cjs.map +1 -0
- package/dist/index219.mjs +5 -0
- package/dist/index219.mjs.map +1 -0
- package/dist/index23.cjs +41 -0
- package/dist/index23.cjs.map +1 -0
- package/dist/index23.mjs +42 -0
- package/dist/index23.mjs.map +1 -0
- package/dist/index24.cjs +117 -0
- package/dist/index24.cjs.map +1 -0
- package/dist/index24.mjs +118 -0
- package/dist/index24.mjs.map +1 -0
- package/dist/index26.cjs +127 -0
- package/dist/index26.cjs.map +1 -0
- package/dist/index26.mjs +128 -0
- package/dist/index26.mjs.map +1 -0
- package/dist/index28.cjs +39 -0
- package/dist/index28.cjs.map +1 -0
- package/dist/index28.mjs +40 -0
- package/dist/index28.mjs.map +1 -0
- package/dist/index29.cjs +176 -0
- package/dist/index29.cjs.map +1 -0
- package/dist/index29.mjs +177 -0
- package/dist/index29.mjs.map +1 -0
- package/dist/index3.cjs +110 -0
- package/dist/index3.cjs.map +1 -0
- package/dist/index3.mjs +110 -0
- package/dist/index3.mjs.map +1 -0
- package/dist/index31.cjs +361 -0
- package/dist/index31.cjs.map +1 -0
- package/dist/index31.mjs +362 -0
- package/dist/index31.mjs.map +1 -0
- package/dist/index33.cjs +20 -0
- package/dist/index33.cjs.map +1 -0
- package/dist/index33.mjs +21 -0
- package/dist/index33.mjs.map +1 -0
- package/dist/index34.cjs +311 -0
- package/dist/index34.cjs.map +1 -0
- package/dist/index34.mjs +312 -0
- package/dist/index34.mjs.map +1 -0
- package/dist/index36.cjs +132 -0
- package/dist/index36.cjs.map +1 -0
- package/dist/index36.mjs +133 -0
- package/dist/index36.mjs.map +1 -0
- package/dist/index38.cjs +80 -0
- package/dist/index38.cjs.map +1 -0
- package/dist/index38.mjs +81 -0
- package/dist/index38.mjs.map +1 -0
- package/dist/index4.cjs +612 -0
- package/dist/index4.cjs.map +1 -0
- package/dist/index4.mjs +613 -0
- package/dist/index4.mjs.map +1 -0
- package/dist/index40.cjs +600 -0
- package/dist/index40.cjs.map +1 -0
- package/dist/index40.mjs +601 -0
- package/dist/index40.mjs.map +1 -0
- package/dist/index42.cjs +160 -0
- package/dist/index42.cjs.map +1 -0
- package/dist/index42.mjs +160 -0
- package/dist/index42.mjs.map +1 -0
- package/dist/index43.cjs +26 -0
- package/dist/index43.cjs.map +1 -0
- package/dist/index43.mjs +27 -0
- package/dist/index43.mjs.map +1 -0
- package/dist/index44.cjs +20 -0
- package/dist/index44.cjs.map +1 -0
- package/dist/index44.mjs +21 -0
- package/dist/index44.mjs.map +1 -0
- package/dist/index45.cjs +104 -0
- package/dist/index45.cjs.map +1 -0
- package/dist/index45.mjs +104 -0
- package/dist/index45.mjs.map +1 -0
- package/dist/index46.cjs +8 -0
- package/dist/index46.cjs.map +1 -0
- package/dist/index46.mjs +9 -0
- package/dist/index46.mjs.map +1 -0
- package/dist/index47.cjs +7 -0
- package/dist/index47.cjs.map +1 -0
- package/dist/index47.mjs +8 -0
- package/dist/index47.mjs.map +1 -0
- package/dist/index48.cjs +7 -0
- package/dist/index48.cjs.map +1 -0
- package/dist/index48.mjs +8 -0
- package/dist/index48.mjs.map +1 -0
- package/dist/index49.cjs +7 -0
- package/dist/index49.cjs.map +1 -0
- package/dist/index49.mjs +8 -0
- package/dist/index49.mjs.map +1 -0
- package/dist/index50.cjs +7 -0
- package/dist/index50.cjs.map +1 -0
- package/dist/index50.mjs +8 -0
- package/dist/index50.mjs.map +1 -0
- package/dist/index51.cjs +7 -0
- package/dist/index51.cjs.map +1 -0
- package/dist/index51.mjs +8 -0
- package/dist/index51.mjs.map +1 -0
- package/dist/index52.cjs +7 -0
- package/dist/index52.cjs.map +1 -0
- package/dist/index52.mjs +8 -0
- package/dist/index52.mjs.map +1 -0
- package/dist/index53.cjs +7 -0
- package/dist/index53.cjs.map +1 -0
- package/dist/index53.mjs +8 -0
- package/dist/index53.mjs.map +1 -0
- package/dist/index54.cjs +7 -0
- package/dist/index54.cjs.map +1 -0
- package/dist/index54.mjs +8 -0
- package/dist/index54.mjs.map +1 -0
- package/dist/index55.cjs +7 -0
- package/dist/index55.cjs.map +1 -0
- package/dist/index55.mjs +8 -0
- package/dist/index55.mjs.map +1 -0
- package/dist/index56.cjs +7 -0
- package/dist/index56.cjs.map +1 -0
- package/dist/index56.mjs +8 -0
- package/dist/index56.mjs.map +1 -0
- package/dist/index57.cjs +7 -0
- package/dist/index57.cjs.map +1 -0
- package/dist/index57.mjs +8 -0
- package/dist/index57.mjs.map +1 -0
- package/dist/index58.cjs +7 -0
- package/dist/index58.cjs.map +1 -0
- package/dist/index58.mjs +8 -0
- package/dist/index58.mjs.map +1 -0
- package/dist/index59.cjs +8 -0
- package/dist/index59.cjs.map +1 -0
- package/dist/index59.mjs +9 -0
- package/dist/index59.mjs.map +1 -0
- package/dist/index6.cjs +578 -0
- package/dist/index6.cjs.map +1 -0
- package/dist/index6.mjs +579 -0
- package/dist/index6.mjs.map +1 -0
- package/dist/index60.cjs +7 -0
- package/dist/index60.cjs.map +1 -0
- package/dist/index60.mjs +8 -0
- package/dist/index60.mjs.map +1 -0
- package/dist/index61.cjs +7 -0
- package/dist/index61.cjs.map +1 -0
- package/dist/index61.mjs +8 -0
- package/dist/index61.mjs.map +1 -0
- package/dist/index62.cjs +7 -0
- package/dist/index62.cjs.map +1 -0
- package/dist/index62.mjs +8 -0
- package/dist/index62.mjs.map +1 -0
- package/dist/index63.cjs +7 -0
- package/dist/index63.cjs.map +1 -0
- package/dist/index63.mjs +8 -0
- package/dist/index63.mjs.map +1 -0
- package/dist/index64.cjs +7 -0
- package/dist/index64.cjs.map +1 -0
- package/dist/index64.mjs +8 -0
- package/dist/index64.mjs.map +1 -0
- package/dist/index65.cjs +8 -0
- package/dist/index65.cjs.map +1 -0
- package/dist/index65.mjs +9 -0
- package/dist/index65.mjs.map +1 -0
- package/dist/index66.cjs +7 -0
- package/dist/index66.cjs.map +1 -0
- package/dist/index66.mjs +8 -0
- package/dist/index66.mjs.map +1 -0
- package/dist/index67.cjs +7 -0
- package/dist/index67.cjs.map +1 -0
- package/dist/index67.mjs +8 -0
- package/dist/index67.mjs.map +1 -0
- package/dist/index68.cjs +7 -0
- package/dist/index68.cjs.map +1 -0
- package/dist/index68.mjs +8 -0
- package/dist/index68.mjs.map +1 -0
- package/dist/index69.cjs +8 -0
- package/dist/index69.cjs.map +1 -0
- package/dist/index69.mjs +9 -0
- package/dist/index69.mjs.map +1 -0
- package/dist/index70.cjs +7 -0
- package/dist/index70.cjs.map +1 -0
- package/dist/index70.mjs +8 -0
- package/dist/index70.mjs.map +1 -0
- package/dist/index71.cjs +38 -0
- package/dist/index71.cjs.map +1 -0
- package/dist/index71.mjs +38 -0
- package/dist/index71.mjs.map +1 -0
- package/dist/index72.cjs +22 -0
- package/dist/index72.cjs.map +1 -0
- package/dist/index72.mjs +22 -0
- package/dist/index72.mjs.map +1 -0
- package/dist/index73.cjs +40 -0
- package/dist/index73.cjs.map +1 -0
- package/dist/index73.mjs +40 -0
- package/dist/index73.mjs.map +1 -0
- package/dist/index74.cjs +80 -0
- package/dist/index74.cjs.map +1 -0
- package/dist/index74.mjs +80 -0
- package/dist/index74.mjs.map +1 -0
- package/dist/index75.cjs +29 -0
- package/dist/index75.cjs.map +1 -0
- package/dist/index75.mjs +29 -0
- package/dist/index75.mjs.map +1 -0
- package/dist/index76.cjs +157 -0
- package/dist/index76.cjs.map +1 -0
- package/dist/index76.mjs +157 -0
- package/dist/index76.mjs.map +1 -0
- package/dist/index77.cjs +16 -0
- package/dist/index77.cjs.map +1 -0
- package/dist/index77.mjs +16 -0
- package/dist/index77.mjs.map +1 -0
- package/dist/index78.cjs +87 -0
- package/dist/index78.cjs.map +1 -0
- package/dist/index78.mjs +87 -0
- package/dist/index78.mjs.map +1 -0
- package/dist/index79.cjs +16 -0
- package/dist/index79.cjs.map +1 -0
- package/dist/index79.mjs +16 -0
- package/dist/index79.mjs.map +1 -0
- package/dist/index8.cjs +130 -0
- package/dist/index8.cjs.map +1 -0
- package/dist/index8.mjs +131 -0
- package/dist/index8.mjs.map +1 -0
- package/dist/index80.cjs +65 -0
- package/dist/index80.cjs.map +1 -0
- package/dist/index80.mjs +65 -0
- package/dist/index80.mjs.map +1 -0
- package/dist/index81.cjs +69 -0
- package/dist/index81.cjs.map +1 -0
- package/dist/index81.mjs +69 -0
- package/dist/index81.mjs.map +1 -0
- package/dist/index82.cjs +30 -0
- package/dist/index82.cjs.map +1 -0
- package/dist/index82.mjs +30 -0
- package/dist/index82.mjs.map +1 -0
- package/dist/index83.cjs +86 -0
- package/dist/index83.cjs.map +1 -0
- package/dist/index83.mjs +86 -0
- package/dist/index83.mjs.map +1 -0
- package/dist/index84.cjs +102 -0
- package/dist/index84.cjs.map +1 -0
- package/dist/index84.mjs +102 -0
- package/dist/index84.mjs.map +1 -0
- package/dist/index85.cjs +20 -0
- package/dist/index85.cjs.map +1 -0
- package/dist/index85.mjs +20 -0
- package/dist/index85.mjs.map +1 -0
- package/dist/index86.cjs +21 -0
- package/dist/index86.cjs.map +1 -0
- package/dist/index86.mjs +21 -0
- package/dist/index86.mjs.map +1 -0
- package/dist/index87.cjs +191 -0
- package/dist/index87.cjs.map +1 -0
- package/dist/index87.mjs +191 -0
- package/dist/index87.mjs.map +1 -0
- package/dist/index88.cjs +67 -0
- package/dist/index88.cjs.map +1 -0
- package/dist/index88.mjs +67 -0
- package/dist/index88.mjs.map +1 -0
- package/dist/index89.cjs +312 -0
- package/dist/index89.cjs.map +1 -0
- package/dist/index89.mjs +312 -0
- package/dist/index89.mjs.map +1 -0
- package/dist/index90.cjs +10 -0
- package/dist/index90.cjs.map +1 -0
- package/dist/index90.mjs +10 -0
- package/dist/index90.mjs.map +1 -0
- package/dist/index91.cjs +15 -0
- package/dist/index91.cjs.map +1 -0
- package/dist/index91.mjs +15 -0
- package/dist/index91.mjs.map +1 -0
- package/dist/index92.cjs +8 -0
- package/dist/index92.cjs.map +1 -0
- package/dist/index92.mjs +8 -0
- package/dist/index92.mjs.map +1 -0
- package/dist/index93.cjs +81 -0
- package/dist/index93.cjs.map +1 -0
- package/dist/index93.mjs +81 -0
- package/dist/index93.mjs.map +1 -0
- package/dist/index94.cjs +124 -0
- package/dist/index94.cjs.map +1 -0
- package/dist/index94.mjs +124 -0
- package/dist/index94.mjs.map +1 -0
- package/dist/index95.cjs +68 -0
- package/dist/index95.cjs.map +1 -0
- package/dist/index95.mjs +68 -0
- package/dist/index95.mjs.map +1 -0
- package/dist/index96.cjs +29 -0
- package/dist/index96.cjs.map +1 -0
- package/dist/index96.mjs +29 -0
- package/dist/index96.mjs.map +1 -0
- package/dist/index97.cjs +184 -0
- package/dist/index97.cjs.map +1 -0
- package/dist/index97.mjs +184 -0
- package/dist/index97.mjs.map +1 -0
- package/dist/index98.cjs +78 -0
- package/dist/index98.cjs.map +1 -0
- package/dist/index98.mjs +78 -0
- package/dist/index98.mjs.map +1 -0
- package/dist/index99.cjs +55 -0
- package/dist/index99.cjs.map +1 -0
- package/dist/index99.mjs +55 -0
- package/dist/index99.mjs.map +1 -0
- package/dist/plugin.d.ts +37 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/scss/_badge.scss +12 -0
- package/dist/scss/_breakpoints.scss +102 -0
- package/dist/scss/_color-utilities.scss +105 -0
- package/dist/scss/_controls.scss +135 -0
- package/dist/scss/_ds-input-base.scss +302 -0
- package/dist/scss/_ds-picker-m3.scss +179 -0
- package/dist/scss/_effects.scss +42 -0
- package/dist/scss/_overlays.scss +13 -0
- package/dist/scss/_radius.scss +24 -0
- package/dist/scss/_reset.scss +60 -0
- package/dist/scss/_scrollbar.scss +78 -0
- package/dist/scss/_spacing.scss +15 -0
- package/dist/scss/_themes.scss +493 -0
- package/dist/scss/_typography.scss +50 -0
- package/dist/scss/_utilities.scss +75 -0
- package/dist/scss/_variables.scss +143 -0
- package/dist/scss/api.scss +77 -0
- package/dist/scss/tokens.scss +13 -0
- package/dist/utils/date-utils.d.ts +48 -0
- package/dist/utils/date-utils.d.ts.map +1 -0
- package/dist/utils/dialog-utils.d.ts +17 -0
- package/dist/utils/dialog-utils.d.ts.map +1 -0
- package/dist/utils/file-utils.d.ts +20 -0
- package/dist/utils/file-utils.d.ts.map +1 -0
- package/dist/utils/filtro-input.d.ts +19 -0
- package/dist/utils/filtro-input.d.ts.map +1 -0
- package/dist/utils/form-rules.d.ts +74 -0
- package/dist/utils/form-rules.d.ts.map +1 -0
- package/dist/utils/formatadores.d.ts +15 -0
- package/dist/utils/formatadores.d.ts.map +1 -0
- package/dist/utils/gerador-id.d.ts +3 -0
- package/dist/utils/gerador-id.d.ts.map +1 -0
- package/dist/utils/hint-mensagem.d.ts +11 -0
- package/dist/utils/hint-mensagem.d.ts.map +1 -0
- package/dist/utils/index.d.ts +15 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/limpar-campos.d.ts +6 -0
- package/dist/utils/limpar-campos.d.ts.map +1 -0
- package/dist/utils/masks.d.ts +16 -0
- package/dist/utils/masks.d.ts.map +1 -0
- package/dist/utils/medidas-util.d.ts +3 -0
- package/dist/utils/medidas-util.d.ts.map +1 -0
- package/dist/utils/normalizar-label.d.ts +2 -0
- package/dist/utils/normalizar-label.d.ts.map +1 -0
- package/dist/utils/scroll-elemento.d.ts +16 -0
- package/dist/utils/scroll-elemento.d.ts.map +1 -0
- package/dist/utils/validar-campo.d.ts +7 -0
- package/dist/utils/validar-campo.d.ts.map +1 -0
- package/dist/utils/validar-documentos.d.ts +12 -0
- package/dist/utils/validar-documentos.d.ts.map +1 -0
- package/dist/utils/vnode-slot.d.ts +43 -0
- package/dist/utils/vnode-slot.d.ts.map +1 -0
- package/package.json +100 -0
- package/src/components/actions/acai-ui-actions.vue +225 -0
- package/src/components/async-select/acai-ui-async-select-interface.ts +49 -0
- package/src/components/async-select/acai-ui-async-select.vue +409 -0
- package/src/components/badge/acai-ui-badge-interface.ts +19 -0
- package/src/components/badge/acai-ui-badge.vue +40 -0
- package/src/components/banner/acai-ui-banner-interface.ts +17 -0
- package/src/components/banner/acai-ui-banner-styles.scss +47 -0
- package/src/components/banner/acai-ui-banner.vue +85 -0
- package/src/components/button/acai-ui-button-interface.ts +21 -0
- package/src/components/button/acai-ui-button.vue +378 -0
- package/src/components/card/acai-ui-card-interface.ts +14 -0
- package/src/components/card/acai-ui-card-styles.scss +94 -0
- package/src/components/card/acai-ui-card.vue +148 -0
- package/src/components/chart/acai-ui-chart-interface.ts +226 -0
- package/src/components/chart/acai-ui-chart-styles.scss +141 -0
- package/src/components/chart/acai-ui-chart.vue +679 -0
- package/src/components/chart/chart-a11y.ts +184 -0
- package/src/components/chart/chart-caminhos.ts +466 -0
- package/src/components/chart/chart-cartesiano.vue +247 -0
- package/src/components/chart/chart-dados.ts +381 -0
- package/src/components/chart/chart-escalas.ts +141 -0
- package/src/components/chart/chart-formatar.ts +98 -0
- package/src/components/chart/chart-gauge.vue +152 -0
- package/src/components/chart/chart-headless.ts +130 -0
- package/src/components/chart/chart-imagem.ts +247 -0
- package/src/components/chart/chart-layout.ts +184 -0
- package/src/components/chart/chart-legenda.vue +103 -0
- package/src/components/chart/chart-pizza.vue +134 -0
- package/src/components/chart/chart-plano.ts +818 -0
- package/src/components/chart/chart-rotulos.ts +75 -0
- package/src/components/chart/chart-tabela.vue +116 -0
- package/src/components/chart/chart-ticks.ts +116 -0
- package/src/components/checkbox/acai-ui-checkbox-interface.ts +17 -0
- package/src/components/checkbox/acai-ui-checkbox.vue +114 -0
- package/src/components/chip/acai-ui-chip-interface.ts +19 -0
- package/src/components/chip/acai-ui-chip.vue +61 -0
- package/src/components/code/acai-ui-code-interface.ts +43 -0
- package/src/components/code/acai-ui-code-styles.scss +407 -0
- package/src/components/code/acai-ui-code.vue +595 -0
- package/src/components/code/dobras-json.ts +52 -0
- package/src/components/confirm/acai-ui-confirm.vue +230 -0
- package/src/components/container/acai-ui-container-interface.ts +34 -0
- package/src/components/container/acai-ui-container-styles.scss +122 -0
- package/src/components/container/acai-ui-container.vue +140 -0
- package/src/components/date/acai-ui-date-interface.ts +18 -0
- package/src/components/date/acai-ui-date.vue +191 -0
- package/src/components/date-range/acai-ui-date-range-interface.ts +27 -0
- package/src/components/date-range/acai-ui-date-range.vue +300 -0
- package/src/components/datetime/acai-ui-datetime-interface.ts +10 -0
- package/src/components/datetime/acai-ui-datetime.vue +203 -0
- package/src/components/datetime/data-hora-styles.scss +18 -0
- package/src/components/dialog/acai-ui-dialog-interface.ts +18 -0
- package/src/components/dialog/acai-ui-dialog.vue +168 -0
- package/src/components/divider/acai-ui-divider-interface.ts +4 -0
- package/src/components/divider/acai-ui-divider-styles.scss +42 -0
- package/src/components/divider/acai-ui-divider.vue +20 -0
- package/src/components/drawer/acai-ui-drawer-interface.ts +99 -0
- package/src/components/drawer/acai-ui-drawer-styles.scss +586 -0
- package/src/components/drawer/acai-ui-drawer.vue +802 -0
- package/src/components/drawer/drawer-sidebar-helper.ts +117 -0
- package/src/components/dropdown/acai-ui-dropdown-interface.ts +41 -0
- package/src/components/dropdown/acai-ui-dropdown-item.vue +36 -0
- package/src/components/dropdown/acai-ui-dropdown-styles.scss +90 -0
- package/src/components/dropdown/acai-ui-dropdown.vue +77 -0
- package/src/components/error-log/acai-ui-error-log-interface.ts +59 -0
- package/src/components/error-log/acai-ui-error-log-json-tree.vue +426 -0
- package/src/components/error-log/acai-ui-error-log-redigir.ts +74 -0
- package/src/components/error-log/acai-ui-error-log-styles.scss +137 -0
- package/src/components/error-log/acai-ui-error-log.vue +318 -0
- package/src/components/file/acai-ui-file-interface.ts +28 -0
- package/src/components/file/acai-ui-file.vue +85 -0
- package/src/components/file/arquivo-styles.scss +109 -0
- package/src/components/form/acai-ui-form-grid.scss +145 -0
- package/src/components/form/acai-ui-form-interface.ts +37 -0
- package/src/components/form/acai-ui-form-styles.scss +159 -0
- package/src/components/form/acai-ui-form-validation-modal.vue +216 -0
- package/src/components/form/acai-ui-form.vue +410 -0
- package/src/components/help/acai-ui-help-interface.ts +200 -0
- package/src/components/help/acai-ui-help-styles.scss +209 -0
- package/src/components/help/acai-ui-help.vue +259 -0
- package/src/components/help/acai-ui-tour-styles.scss +292 -0
- package/src/components/help/acai-ui-tour.vue +766 -0
- package/src/components/help/tour-escolha.ts +139 -0
- package/src/components/help/tour-posicionar.ts +148 -0
- package/src/components/help/tour-registry.ts +177 -0
- package/src/components/help/use-tour-visto.ts +81 -0
- package/src/components/icon/acai-ui-icon-interface.ts +12 -0
- package/src/components/icon/acai-ui-icon.vue +33 -0
- package/src/components/index.ts +149 -0
- package/src/components/input/acai-ui-input-interface.ts +20 -0
- package/src/components/input/acai-ui-input.vue +146 -0
- package/src/components/modal/acai-ui-modal-interface.ts +19 -0
- package/src/components/modal/acai-ui-modal-styles.scss +131 -0
- package/src/components/modal/acai-ui-modal.vue +83 -0
- package/src/components/pagination/acai-ui-pagination-interface.ts +8 -0
- package/src/components/pagination/acai-ui-pagination.vue +36 -0
- package/src/components/preferences/acai-ui-preferences-interface.ts +4 -0
- package/src/components/preferences/acai-ui-preferences-styles.scss +387 -0
- package/src/components/preferences/acai-ui-preferences.vue +349 -0
- package/src/components/progress/acai-ui-progress-interface.ts +20 -0
- package/src/components/progress/acai-ui-progress.vue +124 -0
- package/src/components/radio/acai-ui-radio-interface.ts +14 -0
- package/src/components/radio/acai-ui-radio.vue +78 -0
- package/src/components/section/acai-ui-section-styles.scss +93 -0
- package/src/components/section/acai-ui-section.vue +134 -0
- package/src/components/select/acai-ui-select-interface.ts +18 -0
- package/src/components/select/acai-ui-select.vue +322 -0
- package/src/components/session-clock/acai-ui-session-clock.vue +111 -0
- package/src/components/stepper/acai-ui-step-interface.ts +18 -0
- package/src/components/stepper/acai-ui-step.vue +37 -0
- package/src/components/stepper/acai-ui-stepper-interface.ts +56 -0
- package/src/components/stepper/acai-ui-stepper-styles.scss +222 -0
- package/src/components/stepper/acai-ui-stepper.vue +231 -0
- package/src/components/swagger/acai-ui-swagger-interface.ts +54 -0
- package/src/components/swagger/acai-ui-swagger-operacao.vue +372 -0
- package/src/components/swagger/acai-ui-swagger-requisicao.ts +272 -0
- package/src/components/swagger/acai-ui-swagger-schema.vue +36 -0
- package/src/components/swagger/acai-ui-swagger-styles.scss +883 -0
- package/src/components/swagger/acai-ui-swagger.vue +349 -0
- package/src/components/swagger/openapi-normalizar.ts +514 -0
- package/src/components/swagger/openapi-tipos.ts +198 -0
- package/src/components/table/acai-ui-table-interface.ts +60 -0
- package/src/components/table/acai-ui-table-justificativa.vue +135 -0
- package/src/components/table/acai-ui-table-styles.scss +293 -0
- package/src/components/table/acai-ui-table.vue +340 -0
- package/src/components/tabs/acai-ui-tab.vue +10 -0
- package/src/components/tabs/acai-ui-tabs-interface.ts +48 -0
- package/src/components/tabs/acai-ui-tabs-styles.scss +78 -0
- package/src/components/tabs/acai-ui-tabs.vue +137 -0
- package/src/components/time/acai-ui-time-interface.ts +14 -0
- package/src/components/time/acai-ui-time.vue +86 -0
- package/src/components/toggle/acai-ui-toggle-interface.ts +13 -0
- package/src/components/toggle/acai-ui-toggle.vue +162 -0
- package/src/components/tooltip/acai-ui-tooltip-interface.ts +11 -0
- package/src/components/tooltip/acai-ui-tooltip-styles.scss +104 -0
- package/src/components/tooltip/acai-ui-tooltip.vue +90 -0
- package/src/components/user-menu/acai-ui-user-menu-interface.ts +13 -0
- package/src/components/user-menu/acai-ui-user-menu-styles.scss +125 -0
- package/src/components/user-menu/acai-ui-user-menu.vue +139 -0
- package/src/components/validation/acai-ui-validation.vue +236 -0
- package/src/constants/chart-paleta.ts +162 -0
- package/src/constants/efeitos.ts +24 -0
- package/src/constants/index.ts +24 -0
- package/src/constants/lista-icons.ts +156 -0
- package/src/constants/medidas-espacos.ts +15 -0
- package/src/constants/radius.ts +15 -0
- package/src/constants/status-badge.ts +44 -0
- package/src/env.d.ts +7 -0
- package/src/hooks/filtros-url-internos.ts +497 -0
- package/src/hooks/index.ts +22 -0
- package/src/hooks/notify.ts +18 -0
- package/src/hooks/use-contador-sessao.ts +95 -0
- package/src/hooks/use-filtros-na-url.ts +174 -0
- package/src/hooks/use-leitura-voz.ts +346 -0
- package/src/hooks/use-listagem-na-url.ts +614 -0
- package/src/hooks/use-preferencias.ts +152 -0
- package/src/hooks/use-repasse-quasar.ts +63 -0
- package/src/hooks/use-tamanho-elemento.ts +107 -0
- package/src/hooks/use-tela.ts +114 -0
- package/src/hooks/use-validacao-visual.ts +189 -0
- package/src/index.ts +30 -0
- package/src/plugin.ts +134 -0
- package/src/scss/_badge.scss +12 -0
- package/src/scss/_breakpoints.scss +102 -0
- package/src/scss/_color-utilities.scss +105 -0
- package/src/scss/_controls.scss +135 -0
- package/src/scss/_ds-input-base.scss +302 -0
- package/src/scss/_ds-picker-m3.scss +179 -0
- package/src/scss/_effects.scss +42 -0
- package/src/scss/_overlays.scss +13 -0
- package/src/scss/_radius.scss +24 -0
- package/src/scss/_reset.scss +60 -0
- package/src/scss/_scrollbar.scss +78 -0
- package/src/scss/_spacing.scss +15 -0
- package/src/scss/_themes.scss +493 -0
- package/src/scss/_typography.scss +50 -0
- package/src/scss/_utilities.scss +75 -0
- package/src/scss/_variables.scss +143 -0
- package/src/scss/api.scss +77 -0
- package/src/scss/tokens.scss +13 -0
- package/src/styles-global.scss +30 -0
- package/src/utils/date-utils.ts +128 -0
- package/src/utils/dialog-utils.ts +59 -0
- package/src/utils/file-utils.ts +85 -0
- package/src/utils/filtro-input.ts +41 -0
- package/src/utils/form-rules.ts +202 -0
- package/src/utils/formatadores.ts +97 -0
- package/src/utils/gerador-id.ts +29 -0
- package/src/utils/hint-mensagem.ts +25 -0
- package/src/utils/index.ts +32 -0
- package/src/utils/limpar-campos.ts +94 -0
- package/src/utils/masks.ts +19 -0
- package/src/utils/medidas-util.ts +5 -0
- package/src/utils/normalizar-label.ts +9 -0
- package/src/utils/scroll-elemento.ts +34 -0
- package/src/utils/validar-campo.ts +27 -0
- package/src/utils/validar-documentos.ts +86 -0
- package/src/utils/vnode-slot.ts +74 -0
|
@@ -0,0 +1,802 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<!--
|
|
3
|
+
A MOLDURA é trocável; o conteúdo é escrito uma vez só.
|
|
4
|
+
|
|
5
|
+
- `q-drawer`: trilho fixo no desktop, gaveta lateral no tablet/celular
|
|
6
|
+
largo. É o comportamento de sempre.
|
|
7
|
+
- `q-dialog maximized` + slide-up: abaixo de `sheetBreakpoint` (600px) o
|
|
8
|
+
menu deixa de ser gaveta e vira FOLHA — sobe de baixo e ocupa a tela
|
|
9
|
+
inteira. Numa tela de 360px uma gaveta lateral nunca foi um bom negócio:
|
|
10
|
+
ou come a tela toda mesmo assim, ou sobra uma faixa inútil de backdrop.
|
|
11
|
+
|
|
12
|
+
Trocar só a moldura (e não duplicar o template em v-if/v-else) importa: a
|
|
13
|
+
árvore de navegação abaixo tem ~120 linhas com grupos, sub-grupos e badges.
|
|
14
|
+
Duas cópias divergiriam no primeiro ajuste.
|
|
15
|
+
-->
|
|
16
|
+
<!-- `ref` fica AQUI e não no `atributosRaiz`: em <script setup> um ref de
|
|
17
|
+
template é uma variável, e `ref: 'drawerRef'` dentro de um v-bind seria
|
|
18
|
+
tratado como string ref — que não existe mais. Na folha ele aponta pro
|
|
19
|
+
QDialog, e o `medirAncora` já se protege com `instanceof HTMLElement`. -->
|
|
20
|
+
<component :is="raiz" ref="drawerRef" v-bind="atributosRaiz">
|
|
21
|
+
<div ref="conteudoRef" class="drawer-container" :class="classesConteudo">
|
|
22
|
+
<!--
|
|
23
|
+
FOLHA — cabeçalho fixo, o único da tela.
|
|
24
|
+
|
|
25
|
+
Ele não some ao trocar de vista: é a mesma barra que muda de título e de
|
|
26
|
+
ícone. Trocar o CONTEÚDO embaixo de um cabeçalho estável é o que faz
|
|
27
|
+
parecer uma tela só com duas abas, em vez de dois painéis empilhados um
|
|
28
|
+
sobre o outro.
|
|
29
|
+
-->
|
|
30
|
+
<!--
|
|
31
|
+
Ações da folha — AO LADO da marca, na mesma linha da logo.
|
|
32
|
+
|
|
33
|
+
Posicionadas em absoluto sobre a linha da marca (mesma âncora do handle
|
|
34
|
+
e do botão de fechar da gaveta) em vez de numa barra própria acima. Uma
|
|
35
|
+
barra separada empurrava a logo pra baixo e deixava uma faixa vazia no
|
|
36
|
+
topo; aqui elas ocupam a quina que a marca cede via `padding-right`.
|
|
37
|
+
|
|
38
|
+
Fora da `<transition>` de propósito: são a parte FIXA da tela. Só o
|
|
39
|
+
conteúdo abaixo troca.
|
|
40
|
+
-->
|
|
41
|
+
<div v-if="ehFolhaMobile" class="drawer-folha__acoes" :style="estiloAcoes">
|
|
42
|
+
<button
|
|
43
|
+
v-if="preferences"
|
|
44
|
+
type="button"
|
|
45
|
+
class="acai-drawer-acao"
|
|
46
|
+
:aria-label="vista === 'menu' ? tituloPreferencias : 'Voltar ao menu'"
|
|
47
|
+
:aria-pressed="vista === 'preferencias'"
|
|
48
|
+
@click="vista = vista === 'menu' ? 'preferencias' : 'menu'"
|
|
49
|
+
>
|
|
50
|
+
<acai-ui-icon :name="vista === 'menu' ? 'tune' : 'menu'" size="20px" decorative />
|
|
51
|
+
</button>
|
|
52
|
+
|
|
53
|
+
<button
|
|
54
|
+
type="button"
|
|
55
|
+
class="acai-drawer-acao"
|
|
56
|
+
aria-label="Fechar menu"
|
|
57
|
+
@click="aberto = false"
|
|
58
|
+
>
|
|
59
|
+
<acai-ui-icon name="close" size="20px" decorative />
|
|
60
|
+
</button>
|
|
61
|
+
</div>
|
|
62
|
+
|
|
63
|
+
<!--
|
|
64
|
+
Fechar — só no modo mobile, e só com a gaveta aberta.
|
|
65
|
+
|
|
66
|
+
DENTRO do drawer, ao contrário do handle logo abaixo. O handle precisa ser
|
|
67
|
+
irmão porque desliza pra FORA ao recolher, e o `.q-drawer__content` é
|
|
68
|
+
`overflow: hidden`. Este nunca sai: fica encostado na borda interna
|
|
69
|
+
direita, então não há o que recortar.
|
|
70
|
+
|
|
71
|
+
E precisa ser dentro: como irmão `position: fixed`, ele exigia um z-index
|
|
72
|
+
acima do drawer sobreposto (3000) — e aí passava por cima de QUALQUER
|
|
73
|
+
outro overlay de mesma camada. Na prática o <acai-ui-preferences>, que é
|
|
74
|
+
um QDrawer à direita também em 3000: abrir as preferências deixava dois
|
|
75
|
+
"X" empilhados na tela, o nosso por cima do painel. Morando dentro, ele
|
|
76
|
+
herda o contexto de empilhamento da própria gaveta e some junto quando
|
|
77
|
+
algo cobre o drawer, sem z-index nenhum.
|
|
78
|
+
|
|
79
|
+
Tocar no backdrop já fecha, mas isso é alvo invisível: quem navega por
|
|
80
|
+
teclado ou leitor de tela não tem como descobrir. Este é o controle
|
|
81
|
+
explícito e rotulado.
|
|
82
|
+
|
|
83
|
+
Não vale na folha: lá o fechar mora no cabeçalho, junto com a troca de
|
|
84
|
+
vista, e dois "fechar" na mesma tela seria ruído.
|
|
85
|
+
-->
|
|
86
|
+
<button
|
|
87
|
+
v-if="comportamento === 'mobile' && !ehFolhaMobile"
|
|
88
|
+
type="button"
|
|
89
|
+
class="acai-drawer-fechar"
|
|
90
|
+
:style="estiloFechar"
|
|
91
|
+
aria-label="Fechar menu"
|
|
92
|
+
@click="aberto = false"
|
|
93
|
+
>
|
|
94
|
+
<acai-ui-icon name="close" size="18px" decorative />
|
|
95
|
+
</button>
|
|
96
|
+
|
|
97
|
+
<!--
|
|
98
|
+
Topo — MONTADO UMA VEZ, nunca trocado.
|
|
99
|
+
|
|
100
|
+
A moldura roxa, esta faixa da marca, os botões e o rodapé são os mesmos
|
|
101
|
+
nas duas vistas. Desmontar e remontar qualquer um deles pra "trocar de
|
|
102
|
+
tela" produz o pisca que não deveria existir: o usuário vê a logo sumir
|
|
103
|
+
e voltar, sendo que ela nunca mudou.
|
|
104
|
+
|
|
105
|
+
Só o MIOLO troca (a `<transition>` mais abaixo).
|
|
106
|
+
|
|
107
|
+
Por isso o slot recebe `vista`: o que muda aqui dentro é decisão do
|
|
108
|
+
consumidor, não da lib. Na documentação, por exemplo, a logo fica parada
|
|
109
|
+
e só o texto ao lado dela vira "Preferências"; o campo de busca, que só
|
|
110
|
+
faz sentido sobre a lista, sai de cena. A lib não tem como fazer esse
|
|
111
|
+
recorte sozinha — logo, título e busca chegam juntos, num slot só.
|
|
112
|
+
-->
|
|
113
|
+
<div v-if="$slots.brand" class="drawer-brand">
|
|
114
|
+
<slot name="brand" :mini="miniAtivo" :vista="vista" />
|
|
115
|
+
</div>
|
|
116
|
+
|
|
117
|
+
<!-- Corpo — a ÚNICA parte que troca. `mode="out-in"`: o que sai termina
|
|
118
|
+
antes do que entra, senão os dois se sobrepõem durante a troca e a
|
|
119
|
+
altura salta. -->
|
|
120
|
+
<transition :name="nomeTransicao" mode="out-in">
|
|
121
|
+
<!-- Vista PREFERÊNCIAS: o mesmo painel de sempre, sem moldura própria. -->
|
|
122
|
+
<div
|
|
123
|
+
v-if="ehFolhaMobile && vista === 'preferencias'"
|
|
124
|
+
key="corpo-pref"
|
|
125
|
+
class="drawer-folha__painel"
|
|
126
|
+
>
|
|
127
|
+
<acai-ui-preferences embutido />
|
|
128
|
+
</div>
|
|
129
|
+
|
|
130
|
+
<q-scroll-area v-else key="corpo-menu" class="drawer-scroll">
|
|
131
|
+
<!-- MINI: trilho só de ícones. Lista própria (e não a de baixo escondida
|
|
132
|
+
por CSS) porque a estrutura é outra — sem expansões, sem badges de
|
|
133
|
+
filho, rótulo em tooltip. Esconder a árvore inteira por CSS deixaria
|
|
134
|
+
itens focáveis invisíveis, que é armadilha de acessibilidade. -->
|
|
135
|
+
<q-list v-if="miniAtivo" class="drawer-mini-list">
|
|
136
|
+
<q-item
|
|
137
|
+
v-for="no in itensVisiveis"
|
|
138
|
+
:key="chaveGrupo(no)"
|
|
139
|
+
:active="ehFolha(no) && ativo(no.name)"
|
|
140
|
+
active-class="item-ativo"
|
|
141
|
+
clickable
|
|
142
|
+
class="drawer-item drawer-mini-item"
|
|
143
|
+
:aria-label="rotuloDe(no)"
|
|
144
|
+
@click="aoClicarMini(no)"
|
|
145
|
+
>
|
|
146
|
+
<acai-ui-icon :name="iconeDe(no)" />
|
|
147
|
+
<acai-ui-tooltip position="right">{{ rotuloDe(no) }}</acai-ui-tooltip>
|
|
148
|
+
</q-item>
|
|
149
|
+
</q-list>
|
|
150
|
+
|
|
151
|
+
<q-list v-else>
|
|
152
|
+
<template v-for="group in itensVisiveis" :key="chaveGrupo(group)">
|
|
153
|
+
<q-expansion-item
|
|
154
|
+
v-if="ehGrupo(group)"
|
|
155
|
+
:header-class="[
|
|
156
|
+
'header-expansao',
|
|
157
|
+
temAtivo(group) ? 'expansion-ativo' : '',
|
|
158
|
+
]"
|
|
159
|
+
expand-icon="chevron_right"
|
|
160
|
+
expand-icon-class="text-white"
|
|
161
|
+
:model-value="expansaoAberta[group.expansionName] ?? false"
|
|
162
|
+
@update:model-value="
|
|
163
|
+
(val: boolean) => (expansaoAberta[group.expansionName] = val)
|
|
164
|
+
"
|
|
165
|
+
>
|
|
166
|
+
<template #header>
|
|
167
|
+
<q-item-section class="content-header-itens">
|
|
168
|
+
<acai-ui-icon
|
|
169
|
+
v-if="group.iconExpansion"
|
|
170
|
+
:name="group.iconExpansion"
|
|
171
|
+
/>
|
|
172
|
+
<span>{{ group.expansionName }}</span>
|
|
173
|
+
</q-item-section>
|
|
174
|
+
</template>
|
|
175
|
+
|
|
176
|
+
<template v-for="item in group.children" :key="chaveFilho(item)">
|
|
177
|
+
<q-expansion-item
|
|
178
|
+
v-if="ehGrupo(item)"
|
|
179
|
+
:label="item.expansionName"
|
|
180
|
+
:header-class="[
|
|
181
|
+
'header-expansao',
|
|
182
|
+
'content-sub-grupo',
|
|
183
|
+
temAtivo(item) ? 'expansion-ativo' : '',
|
|
184
|
+
]"
|
|
185
|
+
expand-icon="chevron_right"
|
|
186
|
+
expand-icon-class="text-white"
|
|
187
|
+
:model-value="expansaoAberta[item.expansionName] ?? false"
|
|
188
|
+
@update:model-value="
|
|
189
|
+
(val: boolean) => (expansaoAberta[item.expansionName] = val)
|
|
190
|
+
"
|
|
191
|
+
>
|
|
192
|
+
<template v-for="sub in item.children" :key="chaveFilho(sub)">
|
|
193
|
+
<q-item
|
|
194
|
+
v-if="ehFolha(sub)"
|
|
195
|
+
:active="ativo(sub.name)"
|
|
196
|
+
active-class="item-ativo"
|
|
197
|
+
clickable
|
|
198
|
+
class="drawer-item content-item sub-grupo"
|
|
199
|
+
@click="aoClicarItem(sub)"
|
|
200
|
+
>
|
|
201
|
+
<q-item-section>
|
|
202
|
+
<q-item-label style="font-size: 0.875rem">{{
|
|
203
|
+
sub.label
|
|
204
|
+
}}</q-item-label>
|
|
205
|
+
<q-item-label v-if="sub.caption" caption>{{
|
|
206
|
+
sub.caption
|
|
207
|
+
}}</q-item-label>
|
|
208
|
+
</q-item-section>
|
|
209
|
+
<q-item-section v-if="sub.badge !== undefined" side>
|
|
210
|
+
<q-badge
|
|
211
|
+
class="badge-lazy"
|
|
212
|
+
:label="sub.badge"
|
|
213
|
+
color="warning" text-color="dark"
|
|
214
|
+
role="status"
|
|
215
|
+
:aria-label="`${sub.badge} notificações em ${sub.label}`"
|
|
216
|
+
/>
|
|
217
|
+
</q-item-section>
|
|
218
|
+
</q-item>
|
|
219
|
+
</template>
|
|
220
|
+
</q-expansion-item>
|
|
221
|
+
|
|
222
|
+
<q-item
|
|
223
|
+
v-else-if="ehFolha(item)"
|
|
224
|
+
:active="ativo(item.name)"
|
|
225
|
+
active-class="item-ativo"
|
|
226
|
+
clickable
|
|
227
|
+
class="drawer-item content-item"
|
|
228
|
+
@click="aoClicarItem(item)"
|
|
229
|
+
>
|
|
230
|
+
<q-item-section>
|
|
231
|
+
<q-item-label>{{ item.label }}</q-item-label>
|
|
232
|
+
<q-item-label v-if="item.caption" caption>{{
|
|
233
|
+
item.caption
|
|
234
|
+
}}</q-item-label>
|
|
235
|
+
</q-item-section>
|
|
236
|
+
<q-item-section v-if="item.badge !== undefined" side>
|
|
237
|
+
<q-badge
|
|
238
|
+
class="badge-lazy"
|
|
239
|
+
:label="item.badge"
|
|
240
|
+
color="warning" text-color="dark"
|
|
241
|
+
role="status"
|
|
242
|
+
:aria-label="`${item.badge} notificações em ${item.label}`"
|
|
243
|
+
/>
|
|
244
|
+
</q-item-section>
|
|
245
|
+
</q-item>
|
|
246
|
+
</template>
|
|
247
|
+
</q-expansion-item>
|
|
248
|
+
|
|
249
|
+
<q-item
|
|
250
|
+
v-else-if="ehFolha(group)"
|
|
251
|
+
:active="ativo(group.name)"
|
|
252
|
+
active-class="item-ativo"
|
|
253
|
+
clickable
|
|
254
|
+
class="drawer-item"
|
|
255
|
+
@click="aoClicarItem(group)"
|
|
256
|
+
>
|
|
257
|
+
<q-item-section class="content-header-itens">
|
|
258
|
+
<acai-ui-icon v-if="group.icon" :name="group.icon" />
|
|
259
|
+
<span>{{ group.label }}</span>
|
|
260
|
+
</q-item-section>
|
|
261
|
+
<q-item-section v-if="group.badge !== undefined" side>
|
|
262
|
+
<q-badge
|
|
263
|
+
:label="group.badge"
|
|
264
|
+
color="warning" text-color="dark"
|
|
265
|
+
role="status"
|
|
266
|
+
:aria-label="`${group.badge} notificações em ${group.label}`"
|
|
267
|
+
/>
|
|
268
|
+
</q-item-section>
|
|
269
|
+
</q-item>
|
|
270
|
+
</template>
|
|
271
|
+
</q-list>
|
|
272
|
+
</q-scroll-area>
|
|
273
|
+
</transition>
|
|
274
|
+
|
|
275
|
+
<!-- Rodapé — também MONTADO UMA VEZ, igual ao topo. Chegou a sair na vista
|
|
276
|
+
de preferências; era o mesmo pisca do topo, só que embaixo.
|
|
277
|
+
Sem versão e sem slot ele não renderiza: um `border-top` sozinho
|
|
278
|
+
desenharia uma linha solta no pé do drawer. -->
|
|
279
|
+
<div v-if="version || $slots.footer" class="footer">
|
|
280
|
+
<!-- Slot `footer` deixa o consumidor (ex: template do CLI) prover o
|
|
281
|
+
próprio rodapé. Recebe `mini` pra encolher o conteúdo no trilho —
|
|
282
|
+
72px não comportam o rodapé expandido. E `vista`, pela mesma razão
|
|
283
|
+
do `#brand`: quem decide o que muda aqui dentro é o consumidor. -->
|
|
284
|
+
<slot name="footer" :mini="miniAtivo" :vista="vista">
|
|
285
|
+
<div v-if="version" class="footer__versao">
|
|
286
|
+
<!-- No trilho sobra só o número: a assinatura não caberia em 72px, e
|
|
287
|
+
o número sozinho já é o que se procura ao conferir versão. -->
|
|
288
|
+
<span v-if="!miniAtivo" class="footer__versao-rotulo">
|
|
289
|
+
© {{ anoAtual }} Açaí UI
|
|
290
|
+
</span>
|
|
291
|
+
<span class="footer__versao-numero">v{{ version }}</span>
|
|
292
|
+
</div>
|
|
293
|
+
</slot>
|
|
294
|
+
</div>
|
|
295
|
+
</div>
|
|
296
|
+
</component>
|
|
297
|
+
|
|
298
|
+
<!--
|
|
299
|
+
Handle de recolher/expandir — IRMÃO do q-drawer, não filho.
|
|
300
|
+
O `.q-drawer__content` é `overflow: hidden`, então qualquer elemento dentro
|
|
301
|
+
dele seria cortado na borda (nem `position: fixed` escapa: o `aside` tem
|
|
302
|
+
`transform`, e transform cria bloco de contenção pra descendentes fixos).
|
|
303
|
+
Como irmão, ele desliza livremente pra fora do drawer ao recolher.
|
|
304
|
+
O `left` é interpolado por CSS transition; o `top` acompanha o topo real do
|
|
305
|
+
drawer (que muda se o app tiver header).
|
|
306
|
+
-->
|
|
307
|
+
<button
|
|
308
|
+
v-if="collapsible && comportamento === 'desktop' && aberto"
|
|
309
|
+
type="button"
|
|
310
|
+
class="acai-drawer-handle"
|
|
311
|
+
:class="{ 'acai-drawer-handle--solto': miniAtivo }"
|
|
312
|
+
:style="estiloHandle"
|
|
313
|
+
:aria-label="miniAtivo ? 'Expandir menu' : 'Recolher menu'"
|
|
314
|
+
:aria-expanded="miniAtivo ? 'false' : 'true'"
|
|
315
|
+
@click="miniAtivo = !miniAtivo"
|
|
316
|
+
>
|
|
317
|
+
<acai-ui-icon :name="miniAtivo ? 'arrow_forward' : 'arrow_back'" size="18px" decorative />
|
|
318
|
+
<acai-ui-tooltip position="right">
|
|
319
|
+
{{ miniAtivo ? 'Expandir menu' : 'Recolher menu' }}
|
|
320
|
+
</acai-ui-tooltip>
|
|
321
|
+
</button>
|
|
322
|
+
|
|
323
|
+
</template>
|
|
324
|
+
|
|
325
|
+
<script setup lang="ts">
|
|
326
|
+
import {
|
|
327
|
+
computed,
|
|
328
|
+
nextTick,
|
|
329
|
+
onBeforeUnmount,
|
|
330
|
+
onMounted,
|
|
331
|
+
reactive,
|
|
332
|
+
ref,
|
|
333
|
+
useAttrs,
|
|
334
|
+
watch,
|
|
335
|
+
} from 'vue'
|
|
336
|
+
import { QDialog, QDrawer } from 'quasar'
|
|
337
|
+
import { useTela } from '../../hooks/use-tela'
|
|
338
|
+
import AcaiUiIcon from '../icon/acai-ui-icon.vue'
|
|
339
|
+
import AcaiUiPreferences from '../preferences/acai-ui-preferences.vue'
|
|
340
|
+
import AcaiUiTooltip from '../tooltip/acai-ui-tooltip.vue'
|
|
341
|
+
import type { MaterialIconValues } from '../../constants/lista-icons'
|
|
342
|
+
import type {
|
|
343
|
+
DrawerProps,
|
|
344
|
+
SidebarGroup,
|
|
345
|
+
SidebarLeaf,
|
|
346
|
+
SidebarRouteConfig,
|
|
347
|
+
} from './acai-ui-drawer-interface'
|
|
348
|
+
import { processarSidebar } from './drawer-sidebar-helper'
|
|
349
|
+
|
|
350
|
+
// O componente tem DOIS nós raiz (drawer + handle). Sem isto o Vue avisa que
|
|
351
|
+
// não sabe em qual deles aplicar os atributos herdados — repassamos ao drawer.
|
|
352
|
+
defineOptions({ inheritAttrs: false })
|
|
353
|
+
|
|
354
|
+
const attrs = useAttrs()
|
|
355
|
+
|
|
356
|
+
const props = withDefaults(defineProps<DrawerProps>(), {
|
|
357
|
+
version: '',
|
|
358
|
+
activeKey: '',
|
|
359
|
+
width: 320,
|
|
360
|
+
// 1024 = `$bp-md` de scss/_breakpoints.scss. Ver o porquê da troca (era 1080)
|
|
361
|
+
// no JSDoc da prop, em acai-ui-drawer-interface.ts.
|
|
362
|
+
breakpoint: 1024,
|
|
363
|
+
// 600 = `$bp-sm` de scss/_breakpoints.scss, o mesmo ponto do mixin
|
|
364
|
+
// `ate-mobile` e da classe `lt-sm` do Quasar. Assim um `@media` do app e a
|
|
365
|
+
// folha do menu viram na MESMA largura.
|
|
366
|
+
sheetBreakpoint: 600,
|
|
367
|
+
preferences: true,
|
|
368
|
+
miniWidth: 72,
|
|
369
|
+
collapsible: false,
|
|
370
|
+
})
|
|
371
|
+
|
|
372
|
+
const emit = defineEmits<{
|
|
373
|
+
/** Disparado quando o usuário clica em um item-folha do drawer.
|
|
374
|
+
* Itens com `href` são abertos em nova aba e NÃO disparam este evento. */
|
|
375
|
+
'item-click': [item: SidebarLeaf]
|
|
376
|
+
}>()
|
|
377
|
+
|
|
378
|
+
const aberto = defineModel<boolean>({ default: false })
|
|
379
|
+
/**
|
|
380
|
+
* Trilho recolhido (`v-model:mini`). Não vale no mobile: lá o drawer é overlay
|
|
381
|
+
* sobre o conteúdo, e um trilho fixo de 72px comeria a tela.
|
|
382
|
+
*/
|
|
383
|
+
const mini = defineModel<boolean>('mini', { default: false })
|
|
384
|
+
|
|
385
|
+
const { largura: larguraTela, medido, abaixoDe } = useTela()
|
|
386
|
+
|
|
387
|
+
/**
|
|
388
|
+
* Desktop (trilho fixo que empurra o conteúdo) ou mobile (gaveta sobreposta com
|
|
389
|
+
* backdrop)?
|
|
390
|
+
*
|
|
391
|
+
* 🔴 Isto era um `ref('desktop')` que NUNCA recebia atribuição — em nenhum
|
|
392
|
+
* commit da história do arquivo. Como o valor ia direto pro `:behavior` do
|
|
393
|
+
* QDrawer, e o Quasar faz
|
|
394
|
+
*
|
|
395
|
+
* behavior === 'mobile' || (behavior !== 'desktop' && totalWidth <= breakpoint)
|
|
396
|
+
*
|
|
397
|
+
* o `'desktop'` fixo curto-circuitava a comparação: o `:breakpoint` nunca era
|
|
398
|
+
* consultado, o drawer nunca virava overlay e num celular de 360px ele seguia
|
|
399
|
+
* como painel fixo de 320px empurrando o conteúdo — sobravam ~40px de página.
|
|
400
|
+
* Era a causa de "o layout quebra no celular" em todos os apps que consomem a
|
|
401
|
+
* lib, e nenhuma regra de CSS resolveria, porque o problema era o valor da prop.
|
|
402
|
+
*
|
|
403
|
+
* A decisão sai do `useTela` e não de `$q.screen` cru porque em SSR a largura é
|
|
404
|
+
* 0 até a hidratação terminar — ver o hook pro porquê e pro que se usa no lugar.
|
|
405
|
+
*/
|
|
406
|
+
const estreito = abaixoDe(() => props.breakpoint)
|
|
407
|
+
|
|
408
|
+
const comportamento = computed<'desktop' | 'mobile'>(() =>
|
|
409
|
+
estreito.value ? 'mobile' : 'desktop',
|
|
410
|
+
)
|
|
411
|
+
|
|
412
|
+
/**
|
|
413
|
+
* Folha de tela cheia (sobe de baixo) em vez de gaveta lateral.
|
|
414
|
+
*
|
|
415
|
+
* Cuidado com o nome: `ehFolha` (sem o sufixo) é o type guard de item-folha da
|
|
416
|
+
* árvore do menu, coisa completamente diferente.
|
|
417
|
+
*/
|
|
418
|
+
const ehFolhaMobile = abaixoDe(() => props.sheetBreakpoint)
|
|
419
|
+
|
|
420
|
+
/** Qual conteúdo a folha mostra. Só existe na folha. */
|
|
421
|
+
const vista = ref<'menu' | 'preferencias'>('menu')
|
|
422
|
+
|
|
423
|
+
/** Rótulo do atalho. Não é mais desenhado como título — o topo é fixo, e quem
|
|
424
|
+
* escreve "Preferências" ali é o slot `#brand`. Aqui serve ao `aria-label`. */
|
|
425
|
+
const tituloPreferencias = 'Preferências'
|
|
426
|
+
|
|
427
|
+
/**
|
|
428
|
+
* Direção da animação de troca: entrando nas preferências o conteúdo AVANÇA
|
|
429
|
+
* (novo entra pela direita), voltando pro menu ele VOLTA (novo entra pela
|
|
430
|
+
* esquerda). Sem a direção, ir e voltar dariam a mesma animação e o gesto
|
|
431
|
+
* perderia a noção de "estou entrando" vs "estou saindo".
|
|
432
|
+
*/
|
|
433
|
+
const nomeTransicao = computed(() =>
|
|
434
|
+
vista.value === 'preferencias' ? 'acai-vista-avanca' : 'acai-vista-volta',
|
|
435
|
+
)
|
|
436
|
+
|
|
437
|
+
/**
|
|
438
|
+
* Ações da folha, alinhadas ao CENTRO da linha da marca — a mesma âncora medida
|
|
439
|
+
* que o handle e o botão de fechar usam. Ver `estiloFechar` pro porquê de medir
|
|
440
|
+
* (a altura dessa linha é conteúdo do consumidor) e por que isso não faz o
|
|
441
|
+
* botão saltar.
|
|
442
|
+
*/
|
|
443
|
+
const ALTURA_ACAO = 44
|
|
444
|
+
|
|
445
|
+
const estiloAcoes = computed(() => ({
|
|
446
|
+
top: `${centroAncora.value - topoDrawer.value - ALTURA_ACAO / 2}px`,
|
|
447
|
+
}))
|
|
448
|
+
|
|
449
|
+
// Sair da folha (girar a tela, redimensionar) tem que voltar pro menu: a gaveta
|
|
450
|
+
// lateral não tem cabeçalho pra trocar de vista, então o usuário ficaria preso
|
|
451
|
+
// nas preferências sem botão de volta.
|
|
452
|
+
watch(ehFolhaMobile, (folha) => {
|
|
453
|
+
if (!folha) vista.value = 'menu'
|
|
454
|
+
})
|
|
455
|
+
|
|
456
|
+
// Fechar e reabrir sempre começa no menu — é o que se espera de um botão de
|
|
457
|
+
// menu. Sem isto, quem saísse com as preferências abertas reabriria nelas.
|
|
458
|
+
watch(aberto, (estaAberto) => {
|
|
459
|
+
if (!estaAberto) vista.value = 'menu'
|
|
460
|
+
})
|
|
461
|
+
|
|
462
|
+
/**
|
|
463
|
+
* A moldura. Ver o comentário no topo do template pro porquê de trocar só ela.
|
|
464
|
+
*
|
|
465
|
+
* `maximized` + `slide-up`/`slide-down` é o jeito documentado do Quasar de
|
|
466
|
+
* fazer folha de tela cheia vinda de baixo. O QDialog ainda entrega Esc pra
|
|
467
|
+
* fechar, trava de foco e bloqueio de scroll do fundo — tudo que teríamos de
|
|
468
|
+
* refazer à mão num `<div fixed>`.
|
|
469
|
+
*/
|
|
470
|
+
const raiz = computed(() => (ehFolhaMobile.value ? QDialog : QDrawer))
|
|
471
|
+
|
|
472
|
+
const atributosRaiz = computed<Record<string, unknown>>(() => {
|
|
473
|
+
const modelo = {
|
|
474
|
+
modelValue: aberto.value,
|
|
475
|
+
'onUpdate:modelValue': (v: boolean) => {
|
|
476
|
+
aberto.value = v
|
|
477
|
+
},
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
if (ehFolhaMobile.value) {
|
|
481
|
+
return {
|
|
482
|
+
...modelo,
|
|
483
|
+
maximized: true,
|
|
484
|
+
transitionShow: 'slide-up',
|
|
485
|
+
transitionHide: 'slide-down',
|
|
486
|
+
class: 'acai-drawer-folha',
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
return {
|
|
491
|
+
...modelo,
|
|
492
|
+
...attrs,
|
|
493
|
+
showIfAbove: true,
|
|
494
|
+
bordered: true,
|
|
495
|
+
breakpoint: props.breakpoint,
|
|
496
|
+
width: larguraEfetiva.value,
|
|
497
|
+
mini: miniAtivo.value,
|
|
498
|
+
miniWidth: props.miniWidth,
|
|
499
|
+
behavior: comportamento.value,
|
|
500
|
+
overlay: comportamento.value === 'mobile',
|
|
501
|
+
}
|
|
502
|
+
})
|
|
503
|
+
|
|
504
|
+
const classesConteudo = computed(() => ({
|
|
505
|
+
'drawer-container--mini': miniAtivo.value,
|
|
506
|
+
'drawer-container--collapsible': props.collapsible,
|
|
507
|
+
'drawer-container--mobile': comportamento.value === 'mobile' && !ehFolhaMobile.value,
|
|
508
|
+
'drawer-container--folha': ehFolhaMobile.value,
|
|
509
|
+
// Sem o atalho de preferências sobra um botão só, e a quina reservada na
|
|
510
|
+
// marca encolhe junto.
|
|
511
|
+
'drawer-container--folha-uma-acao': ehFolhaMobile.value && !props.preferences,
|
|
512
|
+
}))
|
|
513
|
+
|
|
514
|
+
/**
|
|
515
|
+
* No desktop vale a `width` que o consumidor pediu, sem discussão.
|
|
516
|
+
*
|
|
517
|
+
* No celular ela vira um TETO: o default de 320px numa tela de 360px deixaria
|
|
518
|
+
* 40px de backdrop — faixa fina demais pra acertar com o polegar, e a gaveta
|
|
519
|
+
* aberta viraria uma armadilha (só o botão de menu fecharia). Reservando 56px
|
|
520
|
+
* sobra alvo de toque confortável pra fechar tocando fora. O piso de 240px
|
|
521
|
+
* impede que numa tela muito estreita a gaveta encolha até ficar ilegível —
|
|
522
|
+
* aí é melhor o backdrop encolher do que o menu.
|
|
523
|
+
*
|
|
524
|
+
* Sem medição (SSR até hidratar) não há de onde tirar o teto: `larguraTela` é 0
|
|
525
|
+
* e a conta daria o piso de 240px pra QUALQUER aparelho. Aí vale a `width`
|
|
526
|
+
* pedida, e o teto entra junto com a primeira medição.
|
|
527
|
+
*/
|
|
528
|
+
const larguraEfetiva = computed<number>(() =>
|
|
529
|
+
comportamento.value === 'mobile' && medido.value
|
|
530
|
+
? Math.min(props.width, Math.max(larguraTela.value - 56, 240))
|
|
531
|
+
: props.width,
|
|
532
|
+
)
|
|
533
|
+
|
|
534
|
+
const miniAtivo = computed<boolean>({
|
|
535
|
+
get: () => mini.value && comportamento.value === 'desktop',
|
|
536
|
+
set: (v) => {
|
|
537
|
+
mini.value = v
|
|
538
|
+
},
|
|
539
|
+
})
|
|
540
|
+
|
|
541
|
+
|
|
542
|
+
const anoAtual = new Date().getFullYear()
|
|
543
|
+
|
|
544
|
+
const ehGrupo = (n: SidebarRouteConfig): n is SidebarGroup => 'children' in n
|
|
545
|
+
const ehFolha = (n: SidebarRouteConfig): n is SidebarLeaf => 'name' in n
|
|
546
|
+
|
|
547
|
+
function temHref(
|
|
548
|
+
no: SidebarRouteConfig,
|
|
549
|
+
): no is SidebarRouteConfig & { href: string } {
|
|
550
|
+
return (
|
|
551
|
+
'href' in no &&
|
|
552
|
+
typeof (no as { href?: unknown }).href === 'string' &&
|
|
553
|
+
(no as { href: string }).href.length > 0
|
|
554
|
+
)
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
const itensVisiveis = computed<SidebarRouteConfig[]>(() =>
|
|
558
|
+
processarSidebar(props.items),
|
|
559
|
+
)
|
|
560
|
+
|
|
561
|
+
/**
|
|
562
|
+
* Item está ativo? — comparado com a prop `activeKey` que o consumidor
|
|
563
|
+
* controla (geralmente `String(route.name)` no vue-router).
|
|
564
|
+
*/
|
|
565
|
+
const ativo = (nome?: string): boolean =>
|
|
566
|
+
typeof nome === 'string' && nome.length > 0 && nome === props.activeKey
|
|
567
|
+
|
|
568
|
+
function temAtivo(no: SidebarRouteConfig): boolean {
|
|
569
|
+
if (temHref(no)) return false
|
|
570
|
+
if (ehFolha(no)) return ativo(no.name)
|
|
571
|
+
if (ehGrupo(no)) return no.children.some((child) => temAtivo(child))
|
|
572
|
+
return false
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
// Estado reativo das expansões
|
|
576
|
+
const expansaoAberta = reactive<Record<string, boolean>>({})
|
|
577
|
+
|
|
578
|
+
function abrirExpansoesDaRotaAtiva(): void {
|
|
579
|
+
for (const group of itensVisiveis.value) {
|
|
580
|
+
if (ehGrupo(group)) {
|
|
581
|
+
if (temAtivo(group)) {
|
|
582
|
+
expansaoAberta[group.expansionName] = true
|
|
583
|
+
for (const child of group.children) {
|
|
584
|
+
if (ehGrupo(child) && temAtivo(child)) {
|
|
585
|
+
expansaoAberta[child.expansionName] = true
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
// Abre expansões quando a rota ativa muda
|
|
594
|
+
watch(
|
|
595
|
+
() => props.activeKey,
|
|
596
|
+
() => {
|
|
597
|
+
abrirExpansoesDaRotaAtiva()
|
|
598
|
+
},
|
|
599
|
+
{ immediate: true },
|
|
600
|
+
)
|
|
601
|
+
|
|
602
|
+
// =============================================================
|
|
603
|
+
// Handle de recolher/expandir
|
|
604
|
+
// =============================================================
|
|
605
|
+
|
|
606
|
+
const drawerRef = ref<{ $el?: unknown } | null>(null)
|
|
607
|
+
|
|
608
|
+
/**
|
|
609
|
+
* A coluna de conteúdo (`.drawer-container`), que existe igual nas duas
|
|
610
|
+
* molduras. É a referência de medida — ver `medirAncora`.
|
|
611
|
+
*/
|
|
612
|
+
const conteudoRef = ref<HTMLElement | null>(null)
|
|
613
|
+
|
|
614
|
+
/** Altura do handle — usada pra converter "centro desejado" em `top`. */
|
|
615
|
+
const ALTURA_HANDLE = 32
|
|
616
|
+
/** Metade do handle + respiro até a borda interna do drawer. */
|
|
617
|
+
const RECUO_INTERNO = 46
|
|
618
|
+
const FOLGA_EXTERNA = 10
|
|
619
|
+
/** Fallback quando não há slot #brand: alinha com o primeiro item da lista. */
|
|
620
|
+
const CENTRO_PADRAO = 35
|
|
621
|
+
|
|
622
|
+
// O fechar usa EXATAMENTE a mesma geometria do handle (32px, mesmo recuo): os
|
|
623
|
+
// dois nunca aparecem juntos e pousam na mesma âncora, então compartilhar a
|
|
624
|
+
// medida é o que faz a troca parecer o mesmo botão mudando de função. O alvo de
|
|
625
|
+
// toque de 44px vem de uma camada invisível no CSS, sem inchar o desenho.
|
|
626
|
+
|
|
627
|
+
/**
|
|
628
|
+
* Centro vertical (na viewport) da linha em que o handle deve pousar.
|
|
629
|
+
* MEDIDO, não constante: o topo do drawer muda se o app tiver header, e a
|
|
630
|
+
* altura da marca depende inteiramente do que o consumidor põe no slot #brand.
|
|
631
|
+
*/
|
|
632
|
+
const centroAncora = ref(CENTRO_PADRAO)
|
|
633
|
+
|
|
634
|
+
/**
|
|
635
|
+
* Topo do drawer na viewport. O handle é `position: fixed` e usa `centroAncora`
|
|
636
|
+
* cru; o botão de fechar é `absolute` DENTRO do drawer e precisa da mesma
|
|
637
|
+
* âncora convertida pra coordenada local — daí guardar o topo.
|
|
638
|
+
*/
|
|
639
|
+
const topoDrawer = ref(0)
|
|
640
|
+
|
|
641
|
+
function medirAncora(): void {
|
|
642
|
+
// Mede a partir do CONTEÚDO, não da moldura.
|
|
643
|
+
//
|
|
644
|
+
// 🔴 Na folha a moldura é um QDialog, que teleporta o conteúdo pro body: o
|
|
645
|
+
// `$el` dele não contém `.drawer-brand`, então o `querySelector` abaixo dava
|
|
646
|
+
// vazio e a âncora caía no CENTRO_PADRAO. Isso passou despercebido porque no
|
|
647
|
+
// menu o padrão de 35px bate por coincidência com o centro da linha da logo;
|
|
648
|
+
// só ao trocar pro título "Preferências" (24px de altura, centro em 30) o
|
|
649
|
+
// erro apareceu — 5px de desvio, medidos no navegador.
|
|
650
|
+
//
|
|
651
|
+
// O `.drawer-container` preenche a moldura nos dois modos, então usar o topo
|
|
652
|
+
// dele em vez do topo do drawer não muda nada pro handle do desktop.
|
|
653
|
+
const el = conteudoRef.value
|
|
654
|
+
if (!(el instanceof HTMLElement)) return
|
|
655
|
+
|
|
656
|
+
const topo = el.getBoundingClientRect().top
|
|
657
|
+
topoDrawer.value = topo
|
|
658
|
+
const marca = el.querySelector('.drawer-brand')
|
|
659
|
+
|
|
660
|
+
if (!(marca instanceof HTMLElement)) {
|
|
661
|
+
centroAncora.value = topo + CENTRO_PADRAO
|
|
662
|
+
return
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
// Ancora na PRIMEIRA LINHA do slot #brand — a mesma que cede espaço à direita
|
|
666
|
+
// pro handle. Usar o centro do `.drawer-brand` inteiro só funciona enquanto o
|
|
667
|
+
// slot tem uma linha só: assim que o consumidor empilha algo embaixo (um campo
|
|
668
|
+
// de busca, por exemplo), o centro desce e o botão descola da logo.
|
|
669
|
+
const primeiraLinha = marca.firstElementChild
|
|
670
|
+
if (primeiraLinha instanceof HTMLElement) {
|
|
671
|
+
const r = primeiraLinha.getBoundingClientRect()
|
|
672
|
+
centroAncora.value = r.top + r.height / 2
|
|
673
|
+
return
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
// Slot vazio: cai no centro da caixa de conteúdo da marca (descontando o
|
|
677
|
+
// padding, que raramente é simétrico).
|
|
678
|
+
const r = marca.getBoundingClientRect()
|
|
679
|
+
const cs = getComputedStyle(marca)
|
|
680
|
+
const padTopo = Number.parseFloat(cs.paddingTop) || 0
|
|
681
|
+
const padBase = Number.parseFloat(cs.paddingBottom) || 0
|
|
682
|
+
centroAncora.value = r.top + padTopo + (r.height - padTopo - padBase) / 2
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
const estiloHandle = computed(() => ({
|
|
686
|
+
// `top` posiciona a BORDA, então desconta metade da altura pra o CENTRO do
|
|
687
|
+
// handle bater com o centro da marca.
|
|
688
|
+
top: `${centroAncora.value - ALTURA_HANDLE / 2}px`,
|
|
689
|
+
// Recolhido: para FORA do trilho. Expandido: encostado na borda interna, na
|
|
690
|
+
// mesma linha da marca (ao lado do que o consumidor puser no slot #brand).
|
|
691
|
+
left: miniAtivo.value
|
|
692
|
+
? `${props.miniWidth + FOLGA_EXTERNA}px`
|
|
693
|
+
: `${props.width - RECUO_INTERNO}px`,
|
|
694
|
+
}))
|
|
695
|
+
|
|
696
|
+
/**
|
|
697
|
+
* `top` do botão de fechar, RELATIVO ao drawer (ele é filho absoluto de dentro).
|
|
698
|
+
*
|
|
699
|
+
* Por que medir, se ele mora dentro: a altura da primeira linha da marca é
|
|
700
|
+
* conteúdo do consumidor — logo + duas linhas de texto dão 42px aqui, mas outro
|
|
701
|
+
* app pode pôr só um ícone. Um `top` cravado no CSS acerta um caso e erra os
|
|
702
|
+
* outros; medido, o X sempre nasce no centro exato da linha da marca, alinhado
|
|
703
|
+
* com o que o consumidor puser ali ao lado.
|
|
704
|
+
*
|
|
705
|
+
* E medir aqui NÃO reintroduz o "teletransporte" que você viu: aquilo era
|
|
706
|
+
* consequência de ele ser irmão `position: fixed`, que aparecia pronto no
|
|
707
|
+
* destino enquanto a gaveta ainda estava deslizando. Agora ele é parte da
|
|
708
|
+
* gaveta — entra junto com ela — e qualquer ajuste de medida acontece com o
|
|
709
|
+
* drawer ainda fora da tela.
|
|
710
|
+
*
|
|
711
|
+
* `right` fica no CSS: 18px, o mesmo padding lateral da marca, pra a borda
|
|
712
|
+
* direita do botão bater com a do conteúdo (campo de busca, itens da lista).
|
|
713
|
+
*/
|
|
714
|
+
const estiloFechar = computed(() => ({
|
|
715
|
+
top: `${centroAncora.value - topoDrawer.value - ALTURA_HANDLE / 2}px`,
|
|
716
|
+
}))
|
|
717
|
+
|
|
718
|
+
onMounted(() => {
|
|
719
|
+
medirAncora()
|
|
720
|
+
window.addEventListener('resize', medirAncora)
|
|
721
|
+
})
|
|
722
|
+
|
|
723
|
+
onBeforeUnmount(() => {
|
|
724
|
+
window.removeEventListener('resize', medirAncora)
|
|
725
|
+
})
|
|
726
|
+
|
|
727
|
+
// `vista` volta pra cá: o topo não é mais trocado por uma `<transition>`, mas o
|
|
728
|
+
// CONTEÚDO dele pode mudar de altura (na docs, duas linhas de marca viram uma de
|
|
729
|
+
// "Preferências"). Sem remedir, as ações ficariam ancoradas na altura anterior.
|
|
730
|
+
// Um tick basta agora — sem `mode="out-in"` no caminho, o DOM já está no lugar.
|
|
731
|
+
watch([miniAtivo, aberto, vista], () => {
|
|
732
|
+
void nextTick(medirAncora)
|
|
733
|
+
})
|
|
734
|
+
|
|
735
|
+
// =============================================================
|
|
736
|
+
// Trilho mini
|
|
737
|
+
// =============================================================
|
|
738
|
+
|
|
739
|
+
/** Ícone do nó no trilho. Folha usa `icon`; grupo usa `iconExpansion`. */
|
|
740
|
+
function iconeDe(no: SidebarRouteConfig): MaterialIconValues {
|
|
741
|
+
const icone = ehGrupo(no) ? no.iconExpansion : no.icon
|
|
742
|
+
// Sem ícone o item viraria um quadrado vazio e não-clicável aos olhos —
|
|
743
|
+
// melhor um marcador genérico do que um buraco no trilho.
|
|
744
|
+
return icone ?? 'label'
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
function rotuloDe(no: SidebarRouteConfig): string {
|
|
748
|
+
return ehGrupo(no) ? (no.label ?? no.expansionName) : no.label
|
|
749
|
+
}
|
|
750
|
+
|
|
751
|
+
/**
|
|
752
|
+
* Clique no trilho: folha navega direto; grupo não tem como abrir dentro de
|
|
753
|
+
* 72px, então reexpande o drawer já com aquele grupo aberto.
|
|
754
|
+
*/
|
|
755
|
+
function aoClicarMini(no: SidebarRouteConfig): void {
|
|
756
|
+
if (ehGrupo(no)) {
|
|
757
|
+
expansaoAberta[no.expansionName] = true
|
|
758
|
+
miniAtivo.value = false
|
|
759
|
+
return
|
|
760
|
+
}
|
|
761
|
+
aoClicarItem(no)
|
|
762
|
+
}
|
|
763
|
+
|
|
764
|
+
function ehUrlAbsoluta(url: string): boolean {
|
|
765
|
+
return /^https?:\/\//i.test(url)
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
function construirUrl(no: { href: string }): string {
|
|
769
|
+
return ehUrlAbsoluta(no.href)
|
|
770
|
+
? no.href
|
|
771
|
+
: no.href.startsWith('/')
|
|
772
|
+
? no.href
|
|
773
|
+
: `/${no.href}`
|
|
774
|
+
}
|
|
775
|
+
|
|
776
|
+
function aoClicarItem(no: SidebarRouteConfig): void {
|
|
777
|
+
// href tem precedência: lib lida sozinha (abre em nova aba)
|
|
778
|
+
if (temHref(no)) {
|
|
779
|
+
const url = construirUrl(no)
|
|
780
|
+
window.open(url, '_blank', 'noopener')
|
|
781
|
+
return
|
|
782
|
+
}
|
|
783
|
+
// folha sem href: delega a navegação pro consumidor
|
|
784
|
+
if (ehFolha(no)) {
|
|
785
|
+
emit('item-click', no)
|
|
786
|
+
}
|
|
787
|
+
}
|
|
788
|
+
|
|
789
|
+
function chaveGrupo(n: SidebarRouteConfig): string {
|
|
790
|
+
return ehGrupo(n)
|
|
791
|
+
? `g:${n.expansionName}`
|
|
792
|
+
: `f:${(n as SidebarLeaf).name ?? n.label}`
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
function chaveFilho(n: SidebarRouteConfig): string {
|
|
796
|
+
return ehGrupo(n)
|
|
797
|
+
? `g:${n.expansionName}`
|
|
798
|
+
: `f:${(n as SidebarLeaf).name ?? n.label}`
|
|
799
|
+
}
|
|
800
|
+
</script>
|
|
801
|
+
|
|
802
|
+
<style lang="scss" src="./acai-ui-drawer-styles.scss" />
|