brut 0.13.0 → 0.15.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +28 -0
- data/Gemfile.lock +1 -1
- data/brut-css/package-lock.json +57 -106
- data/brut-css/package.json +1 -1
- data/brut-js/package-lock.json +50 -50
- data/brut-js/package.json +1 -1
- data/brut-js/specs/Toast.spec.js +34 -0
- data/brut-js/src/I18nTranslation.js +3 -0
- data/brut-js/src/Message.js +9 -3
- data/brut-js/src/RichString.js +4 -1
- data/brut-js/src/Toast.js +102 -0
- data/brut-js/src/index.js +3 -0
- data/brutrb.com/.vitepress/config.mjs +0 -1
- data/brutrb.com/brut-js.md +1 -0
- data/brutrb.com/layouts.md +70 -12
- data/brutrb.com/package-lock.json +428 -381
- data/docs/404.html +3 -3
- data/docs/adrs.html +7 -7
- data/docs/ai.html +7 -7
- data/docs/api/Brut/BackEnd/SeedData.html +1 -1
- data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server/FlushSpans.html +1 -1
- data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server.html +1 -1
- data/docs/api/Brut/BackEnd/Sidekiq/Middlewares.html +1 -1
- data/docs/api/Brut/BackEnd/Sidekiq.html +1 -1
- data/docs/api/Brut/BackEnd/Validators/FormValidator.html +1 -1
- data/docs/api/Brut/BackEnd/Validators.html +1 -1
- data/docs/api/Brut/BackEnd.html +1 -1
- data/docs/api/Brut/CLI/App.html +1 -1
- data/docs/api/Brut/CLI/AppRunner.html +1 -1
- data/docs/api/Brut/CLI/Apps/BuildAssets/All.html +1 -1
- data/docs/api/Brut/CLI/Apps/BuildAssets/CSS.html +1 -1
- data/docs/api/Brut/CLI/Apps/BuildAssets/Images.html +1 -1
- data/docs/api/Brut/CLI/Apps/BuildAssets/JS.html +1 -1
- data/docs/api/Brut/CLI/Apps/BuildAssets.html +1 -1
- data/docs/api/Brut/CLI/Apps/DB/Create.html +1 -1
- data/docs/api/Brut/CLI/Apps/DB/Drop.html +1 -1
- data/docs/api/Brut/CLI/Apps/DB/Migrate.html +1 -1
- data/docs/api/Brut/CLI/Apps/DB/NewMigration.html +1 -1
- data/docs/api/Brut/CLI/Apps/DB/Rebuild.html +1 -1
- data/docs/api/Brut/CLI/Apps/DB/Seed.html +1 -1
- data/docs/api/Brut/CLI/Apps/DB/Status.html +1 -1
- data/docs/api/Brut/CLI/Apps/DB.html +1 -1
- data/docs/api/Brut/CLI/Apps/DeployBase/GitChecks.html +1 -1
- data/docs/api/Brut/CLI/Apps/DeployBase.html +1 -1
- data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy/Deploy.html +1 -1
- data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/Action/Route.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/Action.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/Component.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/CustomElementTest.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/DbModel.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/E2ETest.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/Form.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/Page/Route.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/Page.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/RoutesEditor.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold/Test.html +1 -1
- data/docs/api/Brut/CLI/Apps/Scaffold.html +1 -1
- data/docs/api/Brut/CLI/Apps/Test/Audit.html +1 -1
- data/docs/api/Brut/CLI/Apps/Test/E2e.html +1 -1
- data/docs/api/Brut/CLI/Apps/Test/JS.html +1 -1
- data/docs/api/Brut/CLI/Apps/Test/Run.html +1 -1
- data/docs/api/Brut/CLI/Apps/Test.html +1 -1
- data/docs/api/Brut/CLI/Apps.html +1 -1
- data/docs/api/Brut/CLI/Command.html +1 -1
- data/docs/api/Brut/CLI/Error.html +1 -1
- data/docs/api/Brut/CLI/ExecutionResults/Result.html +1 -1
- data/docs/api/Brut/CLI/ExecutionResults.html +1 -1
- data/docs/api/Brut/CLI/Executor.html +1 -1
- data/docs/api/Brut/CLI/InvalidOption.html +1 -1
- data/docs/api/Brut/CLI/Options.html +1 -1
- data/docs/api/Brut/CLI/Output.html +1 -1
- data/docs/api/Brut/CLI/SystemExecError.html +1 -1
- data/docs/api/Brut/CLI.html +1 -1
- data/docs/api/Brut/FactoryBot.html +1 -1
- data/docs/api/Brut/Framework/App.html +1 -1
- data/docs/api/Brut/Framework/Config.html +1 -1
- data/docs/api/Brut/Framework/Container.html +1 -1
- data/docs/api/Brut/Framework/Error.html +1 -1
- data/docs/api/Brut/Framework/Errors/AbstractMethod.html +1 -1
- data/docs/api/Brut/Framework/Errors/Bug.html +1 -1
- data/docs/api/Brut/Framework/Errors/MissingConfiguration.html +1 -1
- data/docs/api/Brut/Framework/Errors/MissingParameter.html +1 -1
- data/docs/api/Brut/Framework/Errors/NoClassForPath.html +1 -1
- data/docs/api/Brut/Framework/Errors/NotFound.html +1 -1
- data/docs/api/Brut/Framework/Errors/NotImplemented.html +1 -1
- data/docs/api/Brut/Framework/Errors.html +1 -1
- data/docs/api/Brut/Framework/FussyTypeEnforcement.html +1 -1
- data/docs/api/Brut/Framework/MCP.html +1 -1
- data/docs/api/Brut/Framework/ProjectEnvironment.html +1 -1
- data/docs/api/Brut/Framework.html +1 -1
- data/docs/api/Brut/FrontEnd/AssetPathResolver.html +1 -1
- data/docs/api/Brut/FrontEnd/Component/Helpers.html +1 -1
- data/docs/api/Brut/FrontEnd/Component.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/ConstraintViolations.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/FormTag.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/I18nTranslations.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/Input.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/Inputs/ButtonTag.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/Inputs/CsrfToken.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/Inputs/InputTag.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/Inputs/RadioButton.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/Inputs/SelectTagWithOptions.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/Inputs/TextareaTag.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/Inputs.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/LocaleDetection.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/PageIdentifier.html +37 -18
- data/docs/api/Brut/FrontEnd/Components/TimeTag.html +1 -1
- data/docs/api/Brut/FrontEnd/Components/Traceparent.html +1 -1
- data/docs/api/Brut/FrontEnd/Components.html +1 -1
- data/docs/api/Brut/FrontEnd/CsrfProtector.html +1 -1
- data/docs/api/Brut/FrontEnd/Download.html +1 -1
- data/docs/api/Brut/FrontEnd/Flash.html +1 -1
- data/docs/api/Brut/FrontEnd/Form.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/Button.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/ButtonInputDefinition.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/ConstraintViolation.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/Input/Color.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/Input/TimeOfDay.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/Input.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/InputDeclarations.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/InputDefinition.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInput.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInputDefinition.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/SelectInput.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/SelectInputDefinition.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms/ValidityState.html +1 -1
- data/docs/api/Brut/FrontEnd/Forms.html +1 -1
- data/docs/api/Brut/FrontEnd/GenericResponse.html +1 -1
- data/docs/api/Brut/FrontEnd/Handler.html +1 -1
- data/docs/api/Brut/FrontEnd/Handlers/CspReportingHandler.html +1 -1
- data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler/TraceParent.html +1 -1
- data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler.html +1 -1
- data/docs/api/Brut/FrontEnd/Handlers/LocaleDetectionHandler.html +1 -1
- data/docs/api/Brut/FrontEnd/Handlers/MissingHandler/Form.html +1 -1
- data/docs/api/Brut/FrontEnd/Handlers/MissingHandler.html +1 -1
- data/docs/api/Brut/FrontEnd/Handlers.html +1 -1
- data/docs/api/Brut/FrontEnd/HandlingResults.html +1 -1
- data/docs/api/Brut/FrontEnd/HttpMethod.html +1 -1
- data/docs/api/Brut/FrontEnd/HttpStatus.html +1 -1
- data/docs/api/Brut/FrontEnd/InlineSvgLocator.html +1 -1
- data/docs/api/Brut/FrontEnd/Layout.html +171 -3
- data/docs/api/Brut/FrontEnd/Middleware.html +1 -1
- data/docs/api/Brut/FrontEnd/Middlewares/AnnotateBrutOwnedPaths.html +1 -1
- data/docs/api/Brut/FrontEnd/Middlewares/Favicon.html +1 -1
- data/docs/api/Brut/FrontEnd/Middlewares/OpenTelemetrySpan.html +1 -1
- data/docs/api/Brut/FrontEnd/Middlewares/ReloadApp.html +1 -1
- data/docs/api/Brut/FrontEnd/Middlewares.html +1 -1
- data/docs/api/Brut/FrontEnd/Page.html +1 -1
- data/docs/api/Brut/FrontEnd/Pages/MissingPage.html +1 -1
- data/docs/api/Brut/FrontEnd/Pages.html +1 -1
- data/docs/api/Brut/FrontEnd/RequestContext.html +1 -1
- data/docs/api/Brut/FrontEnd/RouteHook.html +1 -1
- data/docs/api/Brut/FrontEnd/RouteHooks/AgeFlash.html +1 -1
- data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineScripts.html +1 -1
- data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts/ReportOnly.html +1 -1
- data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts.html +1 -1
- data/docs/api/Brut/FrontEnd/RouteHooks/LocaleDetection.html +1 -1
- data/docs/api/Brut/FrontEnd/RouteHooks/SetupRequestContext.html +1 -1
- data/docs/api/Brut/FrontEnd/RouteHooks.html +1 -1
- data/docs/api/Brut/FrontEnd/Routing/FormHandlerRoute.html +1 -1
- data/docs/api/Brut/FrontEnd/Routing/FormRoute.html +1 -1
- data/docs/api/Brut/FrontEnd/Routing/MissingForm.html +1 -1
- data/docs/api/Brut/FrontEnd/Routing/MissingHandler.html +1 -1
- data/docs/api/Brut/FrontEnd/Routing/MissingPage.html +1 -1
- data/docs/api/Brut/FrontEnd/Routing/MissingPath.html +1 -1
- data/docs/api/Brut/FrontEnd/Routing/PageRoute.html +1 -1
- data/docs/api/Brut/FrontEnd/Routing/Route.html +1 -1
- data/docs/api/Brut/FrontEnd/Routing.html +1 -1
- data/docs/api/Brut/FrontEnd/Session.html +1 -1
- data/docs/api/Brut/FrontEnd.html +1 -1
- data/docs/api/Brut/I18n/BaseMethods.html +1 -1
- data/docs/api/Brut/I18n/ForBackEnd.html +1 -1
- data/docs/api/Brut/I18n/ForCLI.html +1 -1
- data/docs/api/Brut/I18n/ForHTML.html +1 -1
- data/docs/api/Brut/I18n/HTTPAcceptLanguage/AlwaysEnglish.html +1 -1
- data/docs/api/Brut/I18n/HTTPAcceptLanguage.html +1 -1
- data/docs/api/Brut/I18n.html +1 -1
- data/docs/api/Brut/Instrumentation/LoggerSpanExporter.html +1 -1
- data/docs/api/Brut/Instrumentation/Methods/ClassMethods.html +1 -1
- data/docs/api/Brut/Instrumentation/Methods.html +1 -1
- data/docs/api/Brut/Instrumentation/OpenTelemetry/NormalizedAttributes.html +1 -1
- data/docs/api/Brut/Instrumentation/OpenTelemetry/Span.html +1 -1
- data/docs/api/Brut/Instrumentation/OpenTelemetry.html +1 -1
- data/docs/api/Brut/Instrumentation.html +1 -1
- data/docs/api/Brut/RubocopConfig.html +1 -1
- data/docs/api/Brut/SinatraHelpers/ClassMethods.html +1 -1
- data/docs/api/Brut/SinatraHelpers.html +1 -1
- data/docs/api/Brut/SpecSupport/ClockSupport.html +1 -1
- data/docs/api/Brut/SpecSupport/ComponentSupport.html +1 -1
- data/docs/api/Brut/SpecSupport/E2ETestServer.html +1 -1
- data/docs/api/Brut/SpecSupport/E2eSupport.html +1 -1
- data/docs/api/Brut/SpecSupport/EnhancedNode.html +1 -1
- data/docs/api/Brut/SpecSupport/FlashSupport.html +1 -1
- data/docs/api/Brut/SpecSupport/GeneralSupport/ClassMethods.html +1 -1
- data/docs/api/Brut/SpecSupport/GeneralSupport.html +1 -1
- data/docs/api/Brut/SpecSupport/HandlerSupport.html +1 -1
- data/docs/api/Brut/SpecSupport/Matchers/BeABug.html +1 -1
- data/docs/api/Brut/SpecSupport/Matchers/BePageFor.html +1 -1
- data/docs/api/Brut/SpecSupport/Matchers/BeRoutingFor.html +1 -1
- data/docs/api/Brut/SpecSupport/Matchers/HaveConstraintViolation.html +1 -1
- data/docs/api/Brut/SpecSupport/Matchers/HaveGenerated.html +1 -1
- data/docs/api/Brut/SpecSupport/Matchers/HaveHTMLAttribute.html +1 -1
- data/docs/api/Brut/SpecSupport/Matchers/HaveI18nString.html +1 -1
- data/docs/api/Brut/SpecSupport/Matchers/HaveLinkTo.html +1 -1
- data/docs/api/Brut/SpecSupport/Matchers/HaveRedirectedTo.html +1 -1
- data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedHttpStatus.html +1 -1
- data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedRackResponse.html +1 -1
- data/docs/api/Brut/SpecSupport/Matchers.html +1 -1
- data/docs/api/Brut/SpecSupport/RSpecSetup/OptionalSidekiqSupport.html +1 -1
- data/docs/api/Brut/SpecSupport/RSpecSetup.html +1 -1
- data/docs/api/Brut/SpecSupport/SessionSupport.html +1 -1
- data/docs/api/Brut/SpecSupport.html +1 -1
- data/docs/api/Brut.html +1 -1
- data/docs/api/Clock.html +1 -1
- data/docs/api/ModuleName.html +1 -1
- data/docs/api/RichString.html +1 -1
- data/docs/api/SemanticLogger/Appender/Async.html +1 -1
- data/docs/api/Sequel/Extensions/BrutInstrumentation.html +1 -1
- data/docs/api/Sequel/Extensions/BrutMigrations.html +1 -1
- data/docs/api/Sequel/Extensions.html +1 -1
- data/docs/api/Sequel/Plugins/CreatedAt/InstanceMethods.html +1 -1
- data/docs/api/Sequel/Plugins/CreatedAt.html +1 -1
- data/docs/api/Sequel/Plugins/ExternalId/ClassMethods.html +1 -1
- data/docs/api/Sequel/Plugins/ExternalId/InstanceMethods.html +1 -1
- data/docs/api/Sequel/Plugins/ExternalId.html +1 -1
- data/docs/api/Sequel/Plugins/FindBang/ClassMethods.html +1 -1
- data/docs/api/Sequel/Plugins/FindBang.html +1 -1
- data/docs/api/Sequel/Plugins.html +1 -1
- data/docs/api/Sequel.html +1 -1
- data/docs/api/_index.html +1 -1
- data/docs/api/file.README.html +1 -1
- data/docs/api/index.html +1 -1
- data/docs/api/method_list.html +157 -141
- data/docs/api/top-level-namespace.html +1 -1
- data/docs/assets/adrs.md.YglbWtQe.js +1 -0
- data/docs/assets/adrs.md.YglbWtQe.lean.js +1 -0
- data/docs/assets/ai.md.ChLnvDAX.js +1 -0
- data/docs/assets/ai.md.ChLnvDAX.lean.js +1 -0
- data/docs/assets/{app.BDtsVxyd.js → app.B0X8upRm.js} +1 -1
- data/docs/assets/{assets.md.7C3HWkga.js → assets.md.BEF6Oz6K.js} +2 -2
- data/docs/assets/assets.md.BEF6Oz6K.lean.js +1 -0
- data/docs/assets/{brut-js.md.B4GYxQVw.js → brut-js.md.CbJAe2Ky.js} +2 -2
- data/docs/assets/brut-js.md.CbJAe2Ky.lean.js +1 -0
- data/docs/assets/business-logic.md.DbuaOYGU.js +1 -0
- data/docs/assets/business-logic.md.DbuaOYGU.lean.js +1 -0
- data/docs/assets/chunks/@localSearchIndexroot.C0s1k0UQ.js +1 -0
- data/docs/assets/chunks/VPLocalSearchBox.jLmhant1.js +8 -0
- data/docs/assets/chunks/framework.C4nOkCZI.js +18 -0
- data/docs/assets/chunks/{theme.DZKmijwi.js → theme.CtVUdCdt.js} +2 -2
- data/docs/assets/{cli.md.CjsktgFz.js → cli.md.DDMar_51.js} +2 -2
- data/docs/assets/cli.md.DDMar_51.lean.js +1 -0
- data/docs/assets/{components.md.rMhQ0WdZ.js → components.md.C6nWgDP0.js} +5 -5
- data/docs/assets/components.md.C6nWgDP0.lean.js +1 -0
- data/docs/assets/{configuration.md.BK42Yjp_.js → configuration.md.CpbYHWPb.js} +2 -2
- data/docs/assets/configuration.md.CpbYHWPb.lean.js +1 -0
- data/docs/assets/{css.md.CltvJqAa.js → css.md.K5rOCOQY.js} +2 -2
- data/docs/assets/css.md.K5rOCOQY.lean.js +1 -0
- data/docs/assets/{custom-element-tests.md.B_rbta32.js → custom-element-tests.md.DiLe-eFw.js} +2 -2
- data/docs/assets/custom-element-tests.md.DiLe-eFw.lean.js +1 -0
- data/docs/assets/{database-access.md.gnluu54N.js → database-access.md.Dc8l2Plf.js} +2 -2
- data/docs/assets/database-access.md.Dc8l2Plf.lean.js +1 -0
- data/docs/assets/{database-schema.md.LpmBPVEU.js → database-schema.md.BJ_JhXmO.js} +2 -2
- data/docs/assets/database-schema.md.BJ_JhXmO.lean.js +1 -0
- data/docs/assets/{deployment.md.BLseERGV.js → deployment.md.C1u5ep0g.js} +2 -2
- data/docs/assets/deployment.md.C1u5ep0g.lean.js +1 -0
- data/docs/assets/{dev-environment.md.DRH2D2-O.js → dev-environment.md.B1S9p5ZK.js} +2 -2
- data/docs/assets/{dev-environment.md.DRH2D2-O.lean.js → dev-environment.md.B1S9p5ZK.lean.js} +1 -1
- data/docs/assets/{dir-structure.md.CWir1pic.js → dir-structure.md.D1T2kGwj.js} +2 -2
- data/docs/assets/dir-structure.md.D1T2kGwj.lean.js +1 -0
- data/docs/assets/doc-conventions.md.CDnWaEFg.js +1 -0
- data/docs/assets/doc-conventions.md.CDnWaEFg.lean.js +1 -0
- data/docs/assets/{end-to-end-tests.md.DzqRpZ43.js → end-to-end-tests.md.BJJdNDYL.js} +2 -2
- data/docs/assets/end-to-end-tests.md.BJJdNDYL.lean.js +1 -0
- data/docs/assets/{features.md.DPFXsy0z.js → features.md.BDWxnyNO.js} +2 -2
- data/docs/assets/features.md.BDWxnyNO.lean.js +1 -0
- data/docs/assets/{flash-and-session.md.nPvUpnUx.js → flash-and-session.md.CUsMxoNl.js} +2 -2
- data/docs/assets/flash-and-session.md.CUsMxoNl.lean.js +1 -0
- data/docs/assets/{form-constraints.md.KTv5cdR4.js → form-constraints.md.KlfXSKm2.js} +2 -2
- data/docs/assets/form-constraints.md.KlfXSKm2.lean.js +1 -0
- data/docs/assets/{forms.md.v9qIbmUM.js → forms.md.Bii91k3E.js} +3 -3
- data/docs/assets/forms.md.Bii91k3E.lean.js +1 -0
- data/docs/assets/{getting-started.md.DTOl4c2g.js → getting-started.md.ChAvueK7.js} +4 -4
- data/docs/assets/getting-started.md.ChAvueK7.lean.js +1 -0
- data/docs/assets/{handlers.md.h84MMB1R.js → handlers.md.C5tUwmmo.js} +2 -2
- data/docs/assets/handlers.md.C5tUwmmo.lean.js +1 -0
- data/docs/assets/{hooks.md.Jmb5VOLA.js → hooks.md.CoiYCKRc.js} +2 -2
- data/docs/assets/hooks.md.CoiYCKRc.lean.js +1 -0
- data/docs/assets/{i18n.md.BAm9t9JJ.js → i18n.md.DxkCKhUw.js} +2 -2
- data/docs/assets/i18n.md.DxkCKhUw.lean.js +1 -0
- data/docs/assets/{index.md.Bn9e0sRJ.js → index.md.DnphWyQd.js} +1 -1
- data/docs/assets/{index.md.Bn9e0sRJ.lean.js → index.md.DnphWyQd.lean.js} +1 -1
- data/docs/assets/{instrumentation.md._lNSriEZ.js → instrumentation.md.BcxjC4jd.js} +2 -2
- data/docs/assets/instrumentation.md.BcxjC4jd.lean.js +1 -0
- data/docs/assets/{javascript.md.DzrMxUmI.js → javascript.md.D6fxhaQb.js} +2 -2
- data/docs/assets/javascript.md.D6fxhaQb.lean.js +1 -0
- data/docs/assets/jobs.md.Bc7Y1YpK.js +1 -0
- data/docs/assets/jobs.md.Bc7Y1YpK.lean.js +1 -0
- data/docs/assets/{keyword-injection.md.95Zgh2eN.js → keyword-injection.md.CqLnnzIz.js} +2 -2
- data/docs/assets/keyword-injection.md.CqLnnzIz.lean.js +1 -0
- data/docs/assets/layouts.md.HEbeK7Jr.js +68 -0
- data/docs/assets/layouts.md.HEbeK7Jr.lean.js +1 -0
- data/docs/assets/lsp.md.bE9dW8n9.js +1 -0
- data/docs/assets/lsp.md.bE9dW8n9.lean.js +1 -0
- data/docs/assets/{markdown-examples.md.CCFEQO44.js → markdown-examples.md.BPmtHlc-.js} +2 -2
- data/docs/assets/markdown-examples.md.BPmtHlc-.lean.js +1 -0
- data/docs/assets/{middleware.md.Czz_UlJN.js → middleware.md.BhOIsg59.js} +2 -2
- data/docs/assets/middleware.md.BhOIsg59.lean.js +1 -0
- data/docs/assets/overview.md.BpWAgPFH.js +1 -0
- data/docs/assets/overview.md.BpWAgPFH.lean.js +1 -0
- data/docs/assets/{pages.md.B7Hc-i6H.js → pages.md.B3sQXpEd.js} +2 -2
- data/docs/assets/pages.md.B3sQXpEd.lean.js +1 -0
- data/docs/assets/{recipes_alternate-layouts.md.BwEytl59.js → recipes_alternate-layouts.md.C1QzVkA7.js} +2 -2
- data/docs/assets/recipes_alternate-layouts.md.C1QzVkA7.lean.js +1 -0
- data/docs/assets/{recipes_authentication.md.nwO6F7Ou.js → recipes_authentication.md.CyvoIW82.js} +2 -2
- data/docs/assets/recipes_authentication.md.CyvoIW82.lean.js +1 -0
- data/docs/assets/{recipes_custom-flash.md.CrQbI5eH.js → recipes_custom-flash.md.6gFqf2uL.js} +2 -2
- data/docs/assets/recipes_custom-flash.md.6gFqf2uL.lean.js +1 -0
- data/docs/assets/{recipes_form-errors.md.Bv5RCKqH.js → recipes_form-errors.md.B5ptSzMO.js} +2 -2
- data/docs/assets/recipes_form-errors.md.B5ptSzMO.lean.js +1 -0
- data/docs/assets/{recipes_indexed-forms.md.CstYyOSo.js → recipes_indexed-forms.md.BYYQGW2C.js} +2 -2
- data/docs/assets/recipes_indexed-forms.md.BYYQGW2C.lean.js +1 -0
- data/docs/assets/{recipes_migrations.md.CTcnWDJF.js → recipes_migrations.md.Cid7-3cu.js} +2 -2
- data/docs/assets/recipes_migrations.md.Cid7-3cu.lean.js +1 -0
- data/docs/assets/{recipes_text-field-component.md.H4wLAK0Z.js → recipes_text-field-component.md.VhOsCtKI.js} +2 -2
- data/docs/assets/recipes_text-field-component.md.VhOsCtKI.lean.js +1 -0
- data/docs/assets/roadmap.md.CJsbUmK_.js +1 -0
- data/docs/assets/roadmap.md.CJsbUmK_.lean.js +1 -0
- data/docs/assets/{routes.md.BD6y2i-f.js → routes.md.C1dgIBtD.js} +2 -2
- data/docs/assets/routes.md.C1dgIBtD.lean.js +1 -0
- data/docs/assets/security.md.Jn4SY1uK.js +1 -0
- data/docs/assets/security.md.Jn4SY1uK.lean.js +1 -0
- data/docs/assets/{seed-data.md.BvFZlqIk.js → seed-data.md.UZW0WxYN.js} +2 -2
- data/docs/assets/seed-data.md.UZW0WxYN.lean.js +1 -0
- data/docs/assets/space-time-continuum.md.D9rYGDFH.js +1 -0
- data/docs/assets/space-time-continuum.md.D9rYGDFH.lean.js +1 -0
- data/docs/assets/{tutorial.md.BM40jnoq.js → tutorial.md.BX6f6l00.js} +2 -2
- data/docs/assets/tutorial.md.BX6f6l00.lean.js +1 -0
- data/docs/assets/{tutorials_01-intro.md.B4sUBY3X.js → tutorials_01-intro.md.CzZ3kpF_.js} +2 -2
- data/docs/assets/{tutorials_01-intro.md.B4sUBY3X.lean.js → tutorials_01-intro.md.CzZ3kpF_.lean.js} +1 -1
- data/docs/assets/{tutorials_02-dialog.md.CPNK1SC_.js → tutorials_02-dialog.md.De6iTsWX.js} +2 -2
- data/docs/assets/{tutorials_02-dialog.md.CPNK1SC_.lean.js → tutorials_02-dialog.md.De6iTsWX.lean.js} +1 -1
- data/docs/assets/{unit-tests.md.DUGrnLj5.js → unit-tests.md.vDsdBbO_.js} +2 -2
- data/docs/assets/unit-tests.md.vDsdBbO_.lean.js +1 -0
- data/docs/assets/why.md.4WpxdrQ2.js +1 -0
- data/docs/assets/why.md.4WpxdrQ2.lean.js +1 -0
- data/docs/assets.html +7 -7
- data/docs/brut-js/api/AjaxSubmit.html +1 -1
- data/docs/brut-js/api/AjaxSubmit.js.html +1 -1
- data/docs/brut-js/api/Autosubmit.html +1 -1
- data/docs/brut-js/api/Autosubmit.js.html +1 -1
- data/docs/brut-js/api/BaseCustomElement.html +1 -1
- data/docs/brut-js/api/BaseCustomElement.js.html +1 -1
- data/docs/brut-js/api/BrutCustomElements.html +1 -1
- data/docs/brut-js/api/BufferedLogger.html +1 -1
- data/docs/brut-js/api/ConfirmSubmit.html +1 -1
- data/docs/brut-js/api/ConfirmSubmit.js.html +1 -1
- data/docs/brut-js/api/ConfirmationDialog.html +1 -1
- data/docs/brut-js/api/ConfirmationDialog.js.html +1 -1
- data/docs/brut-js/api/ConstraintViolationMessage.html +1 -1
- data/docs/brut-js/api/ConstraintViolationMessage.js.html +1 -1
- data/docs/brut-js/api/ConstraintViolationMessages.html +1 -1
- data/docs/brut-js/api/ConstraintViolationMessages.js.html +1 -1
- data/docs/brut-js/api/CopyToClipboard.html +1 -1
- data/docs/brut-js/api/CopyToClipboard.js.html +1 -1
- data/docs/brut-js/api/Form.html +1 -1
- data/docs/brut-js/api/Form.js.html +1 -1
- data/docs/brut-js/api/I18nTranslation.html +1 -1
- data/docs/brut-js/api/I18nTranslation.js.html +1 -1
- data/docs/brut-js/api/LocaleDetection.html +1 -1
- data/docs/brut-js/api/LocaleDetection.js.html +1 -1
- data/docs/brut-js/api/Logger.html +1 -1
- data/docs/brut-js/api/Logger.js.html +1 -1
- data/docs/brut-js/api/Message.html +1 -1
- data/docs/brut-js/api/Message.js.html +1 -1
- data/docs/brut-js/api/PrefixedLogger.html +1 -1
- data/docs/brut-js/api/RichString.html +1 -1
- data/docs/brut-js/api/RichString.js.html +1 -1
- data/docs/brut-js/api/Tabs.html +1 -1
- data/docs/brut-js/api/Tabs.js.html +1 -1
- data/docs/brut-js/api/Tracing.html +1 -1
- data/docs/brut-js/api/Tracing.js.html +1 -1
- data/docs/brut-js/api/external-CustomElementRegistry.html +1 -1
- data/docs/brut-js/api/external-Performance.html +1 -1
- data/docs/brut-js/api/external-Promise.html +1 -1
- data/docs/brut-js/api/external-ValidityState.html +1 -1
- data/docs/brut-js/api/external-Window.html +1 -1
- data/docs/brut-js/api/external-fetch.html +1 -1
- data/docs/brut-js/api/global.html +1 -1
- data/docs/brut-js/api/index.html +1 -1
- data/docs/brut-js/api/index.js.html +1 -1
- data/docs/brut-js/api/module-testing.html +1 -1
- data/docs/brut-js/api/testing.AssetMetadata.html +1 -1
- data/docs/brut-js/api/testing.AssetMetadataLoader.html +1 -1
- data/docs/brut-js/api/testing.CustomElementTest.html +1 -1
- data/docs/brut-js/api/testing.DOMCreator.html +1 -1
- data/docs/brut-js/api/testing_AssetMetadata.js.html +1 -1
- data/docs/brut-js/api/testing_AssetMetadataLoader.js.html +1 -1
- data/docs/brut-js/api/testing_CustomElementTest.js.html +1 -1
- data/docs/brut-js/api/testing_DOMCreator.js.html +1 -1
- data/docs/brut-js/api/testing_index.js.html +1 -1
- data/docs/brut-js.html +7 -7
- data/docs/business-logic.html +7 -7
- data/docs/cli.html +7 -7
- data/docs/components.html +10 -10
- data/docs/configuration.html +7 -7
- data/docs/css.html +7 -7
- data/docs/custom-element-tests.html +7 -7
- data/docs/database-access.html +7 -7
- data/docs/database-schema.html +7 -7
- data/docs/deployment.html +7 -7
- data/docs/dev-environment.html +7 -7
- data/docs/dir-structure.html +7 -7
- data/docs/doc-conventions.html +7 -7
- data/docs/end-to-end-tests.html +7 -7
- data/docs/features.html +7 -7
- data/docs/flash-and-session.html +7 -7
- data/docs/form-constraints.html +7 -7
- data/docs/forms.html +8 -8
- data/docs/getting-started.html +9 -9
- data/docs/handlers.html +7 -7
- data/docs/hashmap.json +1 -1
- data/docs/hooks.html +7 -7
- data/docs/i18n.html +7 -7
- data/docs/index.html +6 -6
- data/docs/instrumentation.html +7 -7
- data/docs/javascript.html +7 -7
- data/docs/jobs.html +7 -7
- data/docs/keyword-injection.html +7 -7
- data/docs/layouts.html +42 -12
- data/docs/lsp.html +7 -7
- data/docs/markdown-examples.html +7 -7
- data/docs/middleware.html +7 -7
- data/docs/overview.html +7 -7
- data/docs/pages.html +7 -7
- data/docs/recipes/alternate-layouts.html +8 -8
- data/docs/recipes/authentication.html +7 -7
- data/docs/recipes/custom-flash.html +8 -8
- data/docs/recipes/form-errors.html +7 -7
- data/docs/recipes/indexed-forms.html +7 -7
- data/docs/recipes/migrations.html +7 -7
- data/docs/recipes/text-field-component.html +7 -7
- data/docs/roadmap.html +7 -7
- data/docs/routes.html +7 -7
- data/docs/security.html +7 -7
- data/docs/seed-data.html +7 -7
- data/docs/space-time-continuum.html +7 -7
- data/docs/tutorial.html +7 -7
- data/docs/tutorials/01-intro.html +7 -7
- data/docs/tutorials/02-dialog.html +7 -7
- data/docs/unit-tests.html +7 -7
- data/docs/why.html +7 -7
- data/lib/brut/front_end/components/page_identifier.rb +7 -4
- data/lib/brut/front_end/layout.rb +11 -0
- data/lib/brut/front_end/page.rb +1 -1
- data/lib/brut/version.rb +1 -1
- data/mkbrut/Gemfile.lock +1 -1
- data/mkbrut/lib/mkbrut/version.rb +1 -1
- data/mkbrut/templates/Base/app/src/front_end/layouts/blank_layout.rb +11 -0
- data/mkbrut/templates/Base/app/src/front_end/layouts/default_layout.rb.erb +3 -6
- metadata +115 -116
- data/brutrb.com/recipes/blank-layouts.md +0 -22
- data/docs/assets/adrs.md.BxjHi9-8.js +0 -1
- data/docs/assets/adrs.md.BxjHi9-8.lean.js +0 -1
- data/docs/assets/ai.md.Cy9GWnER.js +0 -1
- data/docs/assets/ai.md.Cy9GWnER.lean.js +0 -1
- data/docs/assets/assets.md.7C3HWkga.lean.js +0 -1
- data/docs/assets/brut-js.md.B4GYxQVw.lean.js +0 -1
- data/docs/assets/business-logic.md.BY4hGy0m.js +0 -1
- data/docs/assets/business-logic.md.BY4hGy0m.lean.js +0 -1
- data/docs/assets/chunks/@localSearchIndexroot.BWVzhs5N.js +0 -1
- data/docs/assets/chunks/VPLocalSearchBox.DCJk5nAW.js +0 -8
- data/docs/assets/chunks/framework.1L-BeKqY.js +0 -18
- data/docs/assets/cli.md.CjsktgFz.lean.js +0 -1
- data/docs/assets/components.md.rMhQ0WdZ.lean.js +0 -1
- data/docs/assets/configuration.md.BK42Yjp_.lean.js +0 -1
- data/docs/assets/css.md.CltvJqAa.lean.js +0 -1
- data/docs/assets/custom-element-tests.md.B_rbta32.lean.js +0 -1
- data/docs/assets/database-access.md.gnluu54N.lean.js +0 -1
- data/docs/assets/database-schema.md.LpmBPVEU.lean.js +0 -1
- data/docs/assets/deployment.md.BLseERGV.lean.js +0 -1
- data/docs/assets/dir-structure.md.CWir1pic.lean.js +0 -1
- data/docs/assets/doc-conventions.md.DOkAuXlt.js +0 -1
- data/docs/assets/doc-conventions.md.DOkAuXlt.lean.js +0 -1
- data/docs/assets/end-to-end-tests.md.DzqRpZ43.lean.js +0 -1
- data/docs/assets/features.md.DPFXsy0z.lean.js +0 -1
- data/docs/assets/flash-and-session.md.nPvUpnUx.lean.js +0 -1
- data/docs/assets/form-constraints.md.KTv5cdR4.lean.js +0 -1
- data/docs/assets/forms.md.v9qIbmUM.lean.js +0 -1
- data/docs/assets/getting-started.md.DTOl4c2g.lean.js +0 -1
- data/docs/assets/handlers.md.h84MMB1R.lean.js +0 -1
- data/docs/assets/hooks.md.Jmb5VOLA.lean.js +0 -1
- data/docs/assets/i18n.md.BAm9t9JJ.lean.js +0 -1
- data/docs/assets/instrumentation.md._lNSriEZ.lean.js +0 -1
- data/docs/assets/javascript.md.DzrMxUmI.lean.js +0 -1
- data/docs/assets/jobs.md.S-2amAYp.js +0 -1
- data/docs/assets/jobs.md.S-2amAYp.lean.js +0 -1
- data/docs/assets/keyword-injection.md.95Zgh2eN.lean.js +0 -1
- data/docs/assets/layouts.md.CVGl9xIO.js +0 -38
- data/docs/assets/layouts.md.CVGl9xIO.lean.js +0 -1
- data/docs/assets/lsp.md.Dn1rIiW0.js +0 -1
- data/docs/assets/lsp.md.Dn1rIiW0.lean.js +0 -1
- data/docs/assets/markdown-examples.md.CCFEQO44.lean.js +0 -1
- data/docs/assets/middleware.md.Czz_UlJN.lean.js +0 -1
- data/docs/assets/overview.md.DlKiRRG_.js +0 -1
- data/docs/assets/overview.md.DlKiRRG_.lean.js +0 -1
- data/docs/assets/pages.md.B7Hc-i6H.lean.js +0 -1
- data/docs/assets/recipes_alternate-layouts.md.BwEytl59.lean.js +0 -1
- data/docs/assets/recipes_authentication.md.nwO6F7Ou.lean.js +0 -1
- data/docs/assets/recipes_blank-layouts.md.fyAUJyJR.js +0 -15
- data/docs/assets/recipes_blank-layouts.md.fyAUJyJR.lean.js +0 -1
- data/docs/assets/recipes_custom-flash.md.CrQbI5eH.lean.js +0 -1
- data/docs/assets/recipes_form-errors.md.Bv5RCKqH.lean.js +0 -1
- data/docs/assets/recipes_indexed-forms.md.CstYyOSo.lean.js +0 -1
- data/docs/assets/recipes_migrations.md.CTcnWDJF.lean.js +0 -1
- data/docs/assets/recipes_text-field-component.md.H4wLAK0Z.lean.js +0 -1
- data/docs/assets/roadmap.md.C6PRi0DX.js +0 -1
- data/docs/assets/roadmap.md.C6PRi0DX.lean.js +0 -1
- data/docs/assets/routes.md.BD6y2i-f.lean.js +0 -1
- data/docs/assets/security.md.C0G_AZR-.js +0 -1
- data/docs/assets/security.md.C0G_AZR-.lean.js +0 -1
- data/docs/assets/seed-data.md.BvFZlqIk.lean.js +0 -1
- data/docs/assets/space-time-continuum.md.xl44xDos.js +0 -1
- data/docs/assets/space-time-continuum.md.xl44xDos.lean.js +0 -1
- data/docs/assets/tutorial.md.BM40jnoq.lean.js +0 -1
- data/docs/assets/unit-tests.md.DUGrnLj5.lean.js +0 -1
- data/docs/assets/why.md.C-hk5xgJ.js +0 -1
- data/docs/assets/why.md.C-hk5xgJ.lean.js +0 -1
- data/docs/recipes/blank-layouts.html +0 -43
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b85e8f08f4b6505e4eb6b0eccf7954116e843e29a2fe44701510fb48a5453530
|
4
|
+
data.tar.gz: ee48f403522914288e3a6ee5a4c5182907da98102fe0080cd27a6afee4f63b33
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 894635a9a6137e99a5b48726e8c57266835741682591ff1c8121b9fc9d68f3ce752172a403018e8b3d6d64ddac197ef4ed11a58da0fe5a3b9bbe49663f4053b7
|
7
|
+
data.tar.gz: 36d4f093177d2a0f79f698c46eb5615225cf59c82562f990ef102feb9e8bd54c7e2655cfed9b8eaa2af35a134f0510adc7b06a91262cfaacfccddb233588a561
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,33 @@
|
|
1
1
|
# Brut CHANGELOG
|
2
2
|
|
3
|
+
## v0.15.0 - Sep 16, 2025
|
4
|
+
|
5
|
+
* Added `<brut-toast>` to help with toast notifications. They rely on CSS for showing, hiding, and animations, all your
|
6
|
+
client-side JS needs to do is set the `key` attribute to show the Toast with an i18n-provided message
|
7
|
+
|
8
|
+
## v0.14.0 - Sep 9, 2025
|
9
|
+
|
10
|
+
* **BREAKING CHANGE** Layouts now have access to the page object they are
|
11
|
+
laying out. `Brut::FrontEnd::Layout` now requires being given the page
|
12
|
+
object in its constructor, and `Brut::FrontEnd::Components::PageIdentifier`
|
13
|
+
**requires** the page, not the page\_name.
|
14
|
+
|
15
|
+
To fix, inside your layouts, you will likely have this code:
|
16
|
+
|
17
|
+
```ruby
|
18
|
+
def initialize(page_name:)
|
19
|
+
@page_name = page_name
|
20
|
+
end
|
21
|
+
```
|
22
|
+
|
23
|
+
Remove that initializer, then find all uses of `@page_name` and replace
|
24
|
+
them with `@page.page_name`, **except** for the call to `PageIdentifier`,
|
25
|
+
That should look like so:
|
26
|
+
|
27
|
+
```ruby
|
28
|
+
PageIdentifer(page) # NOTE @page_name NOR @page.page_name
|
29
|
+
```
|
30
|
+
|
3
31
|
## v0.13.0 - Sep 8, 2025
|
4
32
|
|
5
33
|
* `<brut-ajax-submit>` now works on forms that have `method="GET"`.
|
data/Gemfile.lock
CHANGED
data/brut-css/package-lock.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "brut-css",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.15.0",
|
4
4
|
"lockfileVersion": 3,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "brut-css",
|
9
|
-
"version": "0.
|
9
|
+
"version": "0.15.0",
|
10
10
|
"license": "Hippocratic-2.1",
|
11
11
|
"devDependencies": {
|
12
12
|
"comment-parser": "^1.4.1",
|
@@ -69,9 +69,9 @@
|
|
69
69
|
}
|
70
70
|
},
|
71
71
|
"node_modules/ansi-regex": {
|
72
|
-
"version": "6.
|
73
|
-
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.
|
74
|
-
"integrity": "sha512-
|
72
|
+
"version": "6.2.2",
|
73
|
+
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
|
74
|
+
"integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
|
75
75
|
"dev": true,
|
76
76
|
"license": "MIT",
|
77
77
|
"engines": {
|
@@ -166,14 +166,13 @@
|
|
166
166
|
"license": "ISC"
|
167
167
|
},
|
168
168
|
"node_modules/brace-expansion": {
|
169
|
-
"version": "
|
170
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-
|
171
|
-
"integrity": "sha512-
|
169
|
+
"version": "2.0.2",
|
170
|
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
|
171
|
+
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
|
172
172
|
"dev": true,
|
173
173
|
"license": "MIT",
|
174
174
|
"dependencies": {
|
175
|
-
"balanced-match": "^1.0.0"
|
176
|
-
"concat-map": "0.0.1"
|
175
|
+
"balanced-match": "^1.0.0"
|
177
176
|
}
|
178
177
|
},
|
179
178
|
"node_modules/braces": {
|
@@ -454,13 +453,6 @@
|
|
454
453
|
"node": ">= 12.0.0"
|
455
454
|
}
|
456
455
|
},
|
457
|
-
"node_modules/concat-map": {
|
458
|
-
"version": "0.0.1",
|
459
|
-
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
460
|
-
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
|
461
|
-
"dev": true,
|
462
|
-
"license": "MIT"
|
463
|
-
},
|
464
456
|
"node_modules/config-chain": {
|
465
457
|
"version": "1.1.13",
|
466
458
|
"resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
|
@@ -810,16 +802,6 @@
|
|
810
802
|
"node": ">=14"
|
811
803
|
}
|
812
804
|
},
|
813
|
-
"node_modules/editorconfig/node_modules/brace-expansion": {
|
814
|
-
"version": "2.0.2",
|
815
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
|
816
|
-
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
|
817
|
-
"dev": true,
|
818
|
-
"license": "MIT",
|
819
|
-
"dependencies": {
|
820
|
-
"balanced-match": "^1.0.0"
|
821
|
-
}
|
822
|
-
},
|
823
805
|
"node_modules/editorconfig/node_modules/minimatch": {
|
824
806
|
"version": "9.0.1",
|
825
807
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz",
|
@@ -853,9 +835,9 @@
|
|
853
835
|
}
|
854
836
|
},
|
855
837
|
"node_modules/electron-to-chromium": {
|
856
|
-
"version": "1.5.
|
857
|
-
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.
|
858
|
-
"integrity": "sha512-
|
838
|
+
"version": "1.5.215",
|
839
|
+
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.215.tgz",
|
840
|
+
"integrity": "sha512-TIvGp57UpeNetj/wV/xpFNpWGb0b/ROw372lHPx5Aafx02gjTBtWnEEcaSX3W2dLM3OSdGGyHX/cHl01JQsLaQ==",
|
859
841
|
"dev": true,
|
860
842
|
"license": "ISC"
|
861
843
|
},
|
@@ -939,29 +921,6 @@
|
|
939
921
|
"minimatch": "^5.0.1"
|
940
922
|
}
|
941
923
|
},
|
942
|
-
"node_modules/filelist/node_modules/brace-expansion": {
|
943
|
-
"version": "2.0.2",
|
944
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
|
945
|
-
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
|
946
|
-
"dev": true,
|
947
|
-
"license": "MIT",
|
948
|
-
"dependencies": {
|
949
|
-
"balanced-match": "^1.0.0"
|
950
|
-
}
|
951
|
-
},
|
952
|
-
"node_modules/filelist/node_modules/minimatch": {
|
953
|
-
"version": "5.1.6",
|
954
|
-
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
|
955
|
-
"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
|
956
|
-
"dev": true,
|
957
|
-
"license": "ISC",
|
958
|
-
"dependencies": {
|
959
|
-
"brace-expansion": "^2.0.1"
|
960
|
-
},
|
961
|
-
"engines": {
|
962
|
-
"node": ">=10"
|
963
|
-
}
|
964
|
-
},
|
965
924
|
"node_modules/fill-range": {
|
966
925
|
"version": "7.1.1",
|
967
926
|
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
@@ -976,9 +935,9 @@
|
|
976
935
|
}
|
977
936
|
},
|
978
937
|
"node_modules/follow-redirects": {
|
979
|
-
"version": "1.15.
|
980
|
-
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.
|
981
|
-
"integrity": "sha512-
|
938
|
+
"version": "1.15.11",
|
939
|
+
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
|
940
|
+
"integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
|
982
941
|
"dev": true,
|
983
942
|
"funding": [
|
984
943
|
{
|
@@ -1014,9 +973,9 @@
|
|
1014
973
|
}
|
1015
974
|
},
|
1016
975
|
"node_modules/fs-extra": {
|
1017
|
-
"version": "11.3.
|
1018
|
-
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.
|
1019
|
-
"integrity": "sha512-
|
976
|
+
"version": "11.3.1",
|
977
|
+
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz",
|
978
|
+
"integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==",
|
1020
979
|
"dev": true,
|
1021
980
|
"license": "MIT",
|
1022
981
|
"dependencies": {
|
@@ -1136,16 +1095,6 @@
|
|
1136
1095
|
"node": ">= 6"
|
1137
1096
|
}
|
1138
1097
|
},
|
1139
|
-
"node_modules/glob/node_modules/brace-expansion": {
|
1140
|
-
"version": "2.0.2",
|
1141
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
|
1142
|
-
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
|
1143
|
-
"dev": true,
|
1144
|
-
"license": "MIT",
|
1145
|
-
"dependencies": {
|
1146
|
-
"balanced-match": "^1.0.0"
|
1147
|
-
}
|
1148
|
-
},
|
1149
1098
|
"node_modules/glob/node_modules/minimatch": {
|
1150
1099
|
"version": "9.0.5",
|
1151
1100
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
|
@@ -1400,16 +1349,15 @@
|
|
1400
1349
|
}
|
1401
1350
|
},
|
1402
1351
|
"node_modules/jake": {
|
1403
|
-
"version": "10.9.
|
1404
|
-
"resolved": "https://registry.npmjs.org/jake/-/jake-10.9.
|
1405
|
-
"integrity": "sha512-
|
1352
|
+
"version": "10.9.4",
|
1353
|
+
"resolved": "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz",
|
1354
|
+
"integrity": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==",
|
1406
1355
|
"dev": true,
|
1407
1356
|
"license": "Apache-2.0",
|
1408
1357
|
"dependencies": {
|
1409
|
-
"async": "^3.2.
|
1410
|
-
"chalk": "^4.0.2",
|
1358
|
+
"async": "^3.2.6",
|
1411
1359
|
"filelist": "^1.0.4",
|
1412
|
-
"
|
1360
|
+
"picocolors": "^1.1.1"
|
1413
1361
|
},
|
1414
1362
|
"bin": {
|
1415
1363
|
"jake": "bin/cli.js"
|
@@ -1451,9 +1399,9 @@
|
|
1451
1399
|
}
|
1452
1400
|
},
|
1453
1401
|
"node_modules/jsonfile": {
|
1454
|
-
"version": "6.
|
1455
|
-
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.
|
1456
|
-
"integrity": "sha512-
|
1402
|
+
"version": "6.2.0",
|
1403
|
+
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz",
|
1404
|
+
"integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==",
|
1457
1405
|
"dev": true,
|
1458
1406
|
"license": "MIT",
|
1459
1407
|
"dependencies": {
|
@@ -1563,16 +1511,16 @@
|
|
1563
1511
|
}
|
1564
1512
|
},
|
1565
1513
|
"node_modules/minimatch": {
|
1566
|
-
"version": "
|
1567
|
-
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-
|
1568
|
-
"integrity": "sha512-
|
1514
|
+
"version": "5.1.6",
|
1515
|
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
|
1516
|
+
"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
|
1569
1517
|
"dev": true,
|
1570
1518
|
"license": "ISC",
|
1571
1519
|
"dependencies": {
|
1572
|
-
"brace-expansion": "^
|
1520
|
+
"brace-expansion": "^2.0.1"
|
1573
1521
|
},
|
1574
1522
|
"engines": {
|
1575
|
-
"node": "
|
1523
|
+
"node": ">=10"
|
1576
1524
|
}
|
1577
1525
|
},
|
1578
1526
|
"node_modules/minimist": {
|
@@ -1622,9 +1570,9 @@
|
|
1622
1570
|
}
|
1623
1571
|
},
|
1624
1572
|
"node_modules/node-releases": {
|
1625
|
-
"version": "2.0.
|
1626
|
-
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.
|
1627
|
-
"integrity": "sha512-
|
1573
|
+
"version": "2.0.20",
|
1574
|
+
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.20.tgz",
|
1575
|
+
"integrity": "sha512-7gK6zSXEH6neM212JgfYFXe+GmZQM+fia5SsusuBIUgnPheLFBmIPhtFoAQRj8/7wASYQnbDlHPVwY0BefoFgA==",
|
1628
1576
|
"dev": true,
|
1629
1577
|
"license": "MIT"
|
1630
1578
|
},
|
@@ -2732,9 +2680,9 @@
|
|
2732
2680
|
}
|
2733
2681
|
},
|
2734
2682
|
"node_modules/strip-ansi": {
|
2735
|
-
"version": "7.1.
|
2736
|
-
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.
|
2737
|
-
"integrity": "sha512-
|
2683
|
+
"version": "7.1.2",
|
2684
|
+
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
|
2685
|
+
"integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
|
2738
2686
|
"dev": true,
|
2739
2687
|
"license": "MIT",
|
2740
2688
|
"dependencies": {
|
@@ -2858,14 +2806,14 @@
|
|
2858
2806
|
"license": "Apache-2.0"
|
2859
2807
|
},
|
2860
2808
|
"node_modules/tinyglobby": {
|
2861
|
-
"version": "0.2.
|
2862
|
-
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.
|
2863
|
-
"integrity": "sha512-
|
2809
|
+
"version": "0.2.15",
|
2810
|
+
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
|
2811
|
+
"integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
|
2864
2812
|
"dev": true,
|
2865
2813
|
"license": "MIT",
|
2866
2814
|
"dependencies": {
|
2867
|
-
"fdir": "^6.
|
2868
|
-
"picomatch": "^4.0.
|
2815
|
+
"fdir": "^6.5.0",
|
2816
|
+
"picomatch": "^4.0.3"
|
2869
2817
|
},
|
2870
2818
|
"engines": {
|
2871
2819
|
"node": ">=12.0.0"
|
@@ -2875,11 +2823,14 @@
|
|
2875
2823
|
}
|
2876
2824
|
},
|
2877
2825
|
"node_modules/tinyglobby/node_modules/fdir": {
|
2878
|
-
"version": "6.
|
2879
|
-
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.
|
2880
|
-
"integrity": "sha512-
|
2826
|
+
"version": "6.5.0",
|
2827
|
+
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
|
2828
|
+
"integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
|
2881
2829
|
"dev": true,
|
2882
2830
|
"license": "MIT",
|
2831
|
+
"engines": {
|
2832
|
+
"node": ">=12.0.0"
|
2833
|
+
},
|
2883
2834
|
"peerDependencies": {
|
2884
2835
|
"picomatch": "^3 || ^4"
|
2885
2836
|
},
|
@@ -2890,9 +2841,9 @@
|
|
2890
2841
|
}
|
2891
2842
|
},
|
2892
2843
|
"node_modules/tinyglobby/node_modules/picomatch": {
|
2893
|
-
"version": "4.0.
|
2894
|
-
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.
|
2895
|
-
"integrity": "sha512-
|
2844
|
+
"version": "4.0.3",
|
2845
|
+
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
|
2846
|
+
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
|
2896
2847
|
"dev": true,
|
2897
2848
|
"license": "MIT",
|
2898
2849
|
"engines": {
|
@@ -3101,9 +3052,9 @@
|
|
3101
3052
|
}
|
3102
3053
|
},
|
3103
3054
|
"node_modules/wrap-ansi/node_modules/ansi-styles": {
|
3104
|
-
"version": "6.2.
|
3105
|
-
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.
|
3106
|
-
"integrity": "sha512-
|
3055
|
+
"version": "6.2.3",
|
3056
|
+
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
|
3057
|
+
"integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
|
3107
3058
|
"dev": true,
|
3108
3059
|
"license": "MIT",
|
3109
3060
|
"engines": {
|
@@ -3124,9 +3075,9 @@
|
|
3124
3075
|
}
|
3125
3076
|
},
|
3126
3077
|
"node_modules/yaml": {
|
3127
|
-
"version": "2.8.
|
3128
|
-
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.
|
3129
|
-
"integrity": "sha512-
|
3078
|
+
"version": "2.8.1",
|
3079
|
+
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz",
|
3080
|
+
"integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
|
3130
3081
|
"dev": true,
|
3131
3082
|
"license": "ISC",
|
3132
3083
|
"bin": {
|
data/brut-css/package.json
CHANGED
data/brut-js/package-lock.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "brut-js",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.15.0",
|
4
4
|
"lockfileVersion": 3,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "brut-js",
|
9
|
-
"version": "0.
|
9
|
+
"version": "0.15.0",
|
10
10
|
"license": "Hippocratic-2.1",
|
11
11
|
"devDependencies": {
|
12
12
|
"esbuild": "^0.24.2",
|
@@ -29,9 +29,9 @@
|
|
29
29
|
}
|
30
30
|
},
|
31
31
|
"node_modules/@csstools/color-helpers": {
|
32
|
-
"version": "5.0
|
33
|
-
"resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.
|
34
|
-
"integrity": "sha512-
|
32
|
+
"version": "5.1.0",
|
33
|
+
"resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz",
|
34
|
+
"integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==",
|
35
35
|
"dev": true,
|
36
36
|
"funding": [
|
37
37
|
{
|
@@ -73,9 +73,9 @@
|
|
73
73
|
}
|
74
74
|
},
|
75
75
|
"node_modules/@csstools/css-color-parser": {
|
76
|
-
"version": "3.0
|
77
|
-
"resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.
|
78
|
-
"integrity": "sha512-
|
76
|
+
"version": "3.1.0",
|
77
|
+
"resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz",
|
78
|
+
"integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==",
|
79
79
|
"dev": true,
|
80
80
|
"funding": [
|
81
81
|
{
|
@@ -89,7 +89,7 @@
|
|
89
89
|
],
|
90
90
|
"license": "MIT",
|
91
91
|
"dependencies": {
|
92
|
-
"@csstools/color-helpers": "^5.0
|
92
|
+
"@csstools/color-helpers": "^5.1.0",
|
93
93
|
"@csstools/css-calc": "^2.1.4"
|
94
94
|
},
|
95
95
|
"engines": {
|
@@ -569,9 +569,9 @@
|
|
569
569
|
}
|
570
570
|
},
|
571
571
|
"node_modules/agent-base": {
|
572
|
-
"version": "7.1.
|
573
|
-
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.
|
574
|
-
"integrity": "sha512-
|
572
|
+
"version": "7.1.4",
|
573
|
+
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
|
574
|
+
"integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
|
575
575
|
"dev": true,
|
576
576
|
"license": "MIT",
|
577
577
|
"engines": {
|
@@ -786,9 +786,9 @@
|
|
786
786
|
"license": "MIT"
|
787
787
|
},
|
788
788
|
"node_modules/cssstyle": {
|
789
|
-
"version": "4.
|
790
|
-
"resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.
|
791
|
-
"integrity": "sha512-
|
789
|
+
"version": "4.6.0",
|
790
|
+
"resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz",
|
791
|
+
"integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==",
|
792
792
|
"dev": true,
|
793
793
|
"license": "MIT",
|
794
794
|
"dependencies": {
|
@@ -845,9 +845,9 @@
|
|
845
845
|
}
|
846
846
|
},
|
847
847
|
"node_modules/decimal.js": {
|
848
|
-
"version": "10.
|
849
|
-
"resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.
|
850
|
-
"integrity": "sha512-
|
848
|
+
"version": "10.6.0",
|
849
|
+
"resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz",
|
850
|
+
"integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==",
|
851
851
|
"dev": true,
|
852
852
|
"license": "MIT"
|
853
853
|
},
|
@@ -868,6 +868,19 @@
|
|
868
868
|
"dev": true,
|
869
869
|
"license": "MIT"
|
870
870
|
},
|
871
|
+
"node_modules/entities": {
|
872
|
+
"version": "6.0.1",
|
873
|
+
"resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
|
874
|
+
"integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
|
875
|
+
"dev": true,
|
876
|
+
"license": "BSD-2-Clause",
|
877
|
+
"engines": {
|
878
|
+
"node": ">=0.12"
|
879
|
+
},
|
880
|
+
"funding": {
|
881
|
+
"url": "https://github.com/fb55/entities?sponsor=1"
|
882
|
+
}
|
883
|
+
},
|
871
884
|
"node_modules/esbuild": {
|
872
885
|
"version": "0.24.2",
|
873
886
|
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz",
|
@@ -919,6 +932,19 @@
|
|
919
932
|
"node": ">=6"
|
920
933
|
}
|
921
934
|
},
|
935
|
+
"node_modules/escape-string-regexp": {
|
936
|
+
"version": "4.0.0",
|
937
|
+
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
|
938
|
+
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
|
939
|
+
"dev": true,
|
940
|
+
"license": "MIT",
|
941
|
+
"engines": {
|
942
|
+
"node": ">=10"
|
943
|
+
},
|
944
|
+
"funding": {
|
945
|
+
"url": "https://github.com/sponsors/sindresorhus"
|
946
|
+
}
|
947
|
+
},
|
922
948
|
"node_modules/fill-range": {
|
923
949
|
"version": "7.1.1",
|
924
950
|
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
@@ -1346,19 +1372,6 @@
|
|
1346
1372
|
"node": ">= 14.0.0"
|
1347
1373
|
}
|
1348
1374
|
},
|
1349
|
-
"node_modules/mocha/node_modules/escape-string-regexp": {
|
1350
|
-
"version": "4.0.0",
|
1351
|
-
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
|
1352
|
-
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
|
1353
|
-
"dev": true,
|
1354
|
-
"license": "MIT",
|
1355
|
-
"engines": {
|
1356
|
-
"node": ">=10"
|
1357
|
-
},
|
1358
|
-
"funding": {
|
1359
|
-
"url": "https://github.com/sponsors/sindresorhus"
|
1360
|
-
}
|
1361
|
-
},
|
1362
1375
|
"node_modules/ms": {
|
1363
1376
|
"version": "2.1.3",
|
1364
1377
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
@@ -1377,9 +1390,9 @@
|
|
1377
1390
|
}
|
1378
1391
|
},
|
1379
1392
|
"node_modules/nwsapi": {
|
1380
|
-
"version": "2.2.
|
1381
|
-
"resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.
|
1382
|
-
"integrity": "sha512
|
1393
|
+
"version": "2.2.22",
|
1394
|
+
"resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.22.tgz",
|
1395
|
+
"integrity": "sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==",
|
1383
1396
|
"dev": true,
|
1384
1397
|
"license": "MIT"
|
1385
1398
|
},
|
@@ -1438,19 +1451,6 @@
|
|
1438
1451
|
"url": "https://github.com/inikulin/parse5?sponsor=1"
|
1439
1452
|
}
|
1440
1453
|
},
|
1441
|
-
"node_modules/parse5/node_modules/entities": {
|
1442
|
-
"version": "6.0.1",
|
1443
|
-
"resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
|
1444
|
-
"integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
|
1445
|
-
"dev": true,
|
1446
|
-
"license": "BSD-2-Clause",
|
1447
|
-
"engines": {
|
1448
|
-
"node": ">=0.12"
|
1449
|
-
},
|
1450
|
-
"funding": {
|
1451
|
-
"url": "https://github.com/fb55/entities?sponsor=1"
|
1452
|
-
}
|
1453
|
-
},
|
1454
1454
|
"node_modules/path-exists": {
|
1455
1455
|
"version": "4.0.0",
|
1456
1456
|
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
|
@@ -1791,9 +1791,9 @@
|
|
1791
1791
|
"license": "ISC"
|
1792
1792
|
},
|
1793
1793
|
"node_modules/ws": {
|
1794
|
-
"version": "8.18.
|
1795
|
-
"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.
|
1796
|
-
"integrity": "sha512-
|
1794
|
+
"version": "8.18.3",
|
1795
|
+
"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
|
1796
|
+
"integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
|
1797
1797
|
"dev": true,
|
1798
1798
|
"license": "MIT",
|
1799
1799
|
"engines": {
|
data/brut-js/package.json
CHANGED
@@ -0,0 +1,34 @@
|
|
1
|
+
import { withHTML } from "./SpecHelper.js"
|
2
|
+
|
3
|
+
describe("<brut-toast>", () => {
|
4
|
+
withHTML(`
|
5
|
+
<div>
|
6
|
+
<brut-i18n-translation key="toast.saved" value="Save successful"></brut-i18n-translation>
|
7
|
+
<brut-toast show-warnings>
|
8
|
+
<div>
|
9
|
+
<output><span>Message here</span></output>
|
10
|
+
<button>Close</button>
|
11
|
+
</div>
|
12
|
+
<button>Close</button>
|
13
|
+
</brut-toast>
|
14
|
+
</div>
|
15
|
+
`).test("setting the key shows the message, then it's removed when closed", ({window,document,assert}) => {
|
16
|
+
|
17
|
+
const toast = document.querySelector("brut-toast")
|
18
|
+
assert(toast, "brut-toast element should be present")
|
19
|
+
|
20
|
+
toast.setAttribute("key", "toast.saved")
|
21
|
+
const output = toast.querySelector("output")
|
22
|
+
assert.equal(output.textContent.trim(), "Save successful")
|
23
|
+
const message = output.querySelector("brut-message")
|
24
|
+
assert(message, "brut-message should be present")
|
25
|
+
console.log(message.outerHTML)
|
26
|
+
assert.equal(message.getAttribute("role"), "status")
|
27
|
+
assert.equal(message.getAttribute("aria-live"), "polite")
|
28
|
+
assert.equal(message.getAttribute("aria-atomic"), "true")
|
29
|
+
|
30
|
+
const button = toast.querySelector("button")
|
31
|
+
button.click()
|
32
|
+
assert.equal(toast.getAttribute("key"), null)
|
33
|
+
})
|
34
|
+
})
|
@@ -49,6 +49,9 @@ class I18nTranslation extends BaseCustomElement {
|
|
49
49
|
* }
|
50
50
|
*/
|
51
51
|
translation(interpolatedValues) {
|
52
|
+
if (!this.#value) {
|
53
|
+
this.logger.warn("No value attribute for key '%s', so translation will be blank", this.#key)
|
54
|
+
}
|
52
55
|
return this.#value.replaceAll(/%\{([^}%]+)\}/g, (match,key) => {
|
53
56
|
if (interpolatedValues[key]) {
|
54
57
|
return interpolatedValues[key]
|