brut 0.15.0 → 0.16.0.pre

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.
Files changed (400) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/CHANGELOG.md +5 -0
  4. data/Dockerfile.dx +3 -6
  5. data/Gemfile.lock +1 -1
  6. data/brut-css/package-lock.json +2 -2
  7. data/brut-css/package.json +1 -1
  8. data/brut-js/package-lock.json +2 -2
  9. data/brut-js/package.json +1 -1
  10. data/brutrb.com/.vitepress/config.mjs +4 -3
  11. data/brutrb.com/deployment.md +23 -9
  12. data/brutrb.com/jobs.md +107 -7
  13. data/brutrb.com/recipes/dev-env-secrets.md +87 -0
  14. data/brutrb.com/roadmap.md +2 -7
  15. data/docs/404.html +2 -2
  16. data/docs/adrs.html +3 -3
  17. data/docs/ai.html +3 -3
  18. data/docs/api/Brut/BackEnd/SeedData.html +1 -1
  19. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server/FlushSpans.html +1 -1
  20. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server.html +1 -1
  21. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares.html +1 -1
  22. data/docs/api/Brut/BackEnd/Sidekiq.html +1 -1
  23. data/docs/api/Brut/BackEnd/Validators/FormValidator.html +1 -1
  24. data/docs/api/Brut/BackEnd/Validators.html +1 -1
  25. data/docs/api/Brut/BackEnd.html +1 -1
  26. data/docs/api/Brut/CLI/App.html +1 -1
  27. data/docs/api/Brut/CLI/AppRunner.html +1 -1
  28. data/docs/api/Brut/CLI/Apps/BuildAssets/All.html +1 -1
  29. data/docs/api/Brut/CLI/Apps/BuildAssets/CSS.html +1 -1
  30. data/docs/api/Brut/CLI/Apps/BuildAssets/Images.html +1 -1
  31. data/docs/api/Brut/CLI/Apps/BuildAssets/JS.html +1 -1
  32. data/docs/api/Brut/CLI/Apps/BuildAssets.html +1 -1
  33. data/docs/api/Brut/CLI/Apps/DB/Create.html +1 -1
  34. data/docs/api/Brut/CLI/Apps/DB/Drop.html +1 -1
  35. data/docs/api/Brut/CLI/Apps/DB/Migrate.html +1 -1
  36. data/docs/api/Brut/CLI/Apps/DB/NewMigration.html +1 -1
  37. data/docs/api/Brut/CLI/Apps/DB/Rebuild.html +1 -1
  38. data/docs/api/Brut/CLI/Apps/DB/Seed.html +1 -1
  39. data/docs/api/Brut/CLI/Apps/DB/Status.html +1 -1
  40. data/docs/api/Brut/CLI/Apps/DB.html +1 -1
  41. data/docs/api/Brut/CLI/Apps/DeployBase/GitChecks.html +1 -1
  42. data/docs/api/Brut/CLI/Apps/DeployBase.html +1 -1
  43. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy/Deploy.html +1 -1
  44. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy.html +1 -1
  45. data/docs/api/Brut/CLI/Apps/Scaffold/Action/Route.html +1 -1
  46. data/docs/api/Brut/CLI/Apps/Scaffold/Action.html +1 -1
  47. data/docs/api/Brut/CLI/Apps/Scaffold/Component.html +1 -1
  48. data/docs/api/Brut/CLI/Apps/Scaffold/CustomElementTest.html +1 -1
  49. data/docs/api/Brut/CLI/Apps/Scaffold/DbModel.html +1 -1
  50. data/docs/api/Brut/CLI/Apps/Scaffold/E2ETest.html +1 -1
  51. data/docs/api/Brut/CLI/Apps/Scaffold/Form.html +1 -1
  52. data/docs/api/Brut/CLI/Apps/Scaffold/Page/Route.html +1 -1
  53. data/docs/api/Brut/CLI/Apps/Scaffold/Page.html +1 -1
  54. data/docs/api/Brut/CLI/Apps/Scaffold/RoutesEditor.html +1 -1
  55. data/docs/api/Brut/CLI/Apps/Scaffold/Test.html +1 -1
  56. data/docs/api/Brut/CLI/Apps/Scaffold.html +1 -1
  57. data/docs/api/Brut/CLI/Apps/Test/Audit.html +1 -1
  58. data/docs/api/Brut/CLI/Apps/Test/E2e.html +1 -1
  59. data/docs/api/Brut/CLI/Apps/Test/JS.html +1 -1
  60. data/docs/api/Brut/CLI/Apps/Test/Run.html +1 -1
  61. data/docs/api/Brut/CLI/Apps/Test.html +1 -1
  62. data/docs/api/Brut/CLI/Apps.html +1 -1
  63. data/docs/api/Brut/CLI/Command.html +1 -1
  64. data/docs/api/Brut/CLI/Error.html +1 -1
  65. data/docs/api/Brut/CLI/ExecutionResults/Result.html +1 -1
  66. data/docs/api/Brut/CLI/ExecutionResults.html +1 -1
  67. data/docs/api/Brut/CLI/Executor.html +1 -1
  68. data/docs/api/Brut/CLI/InvalidOption.html +1 -1
  69. data/docs/api/Brut/CLI/Options.html +1 -1
  70. data/docs/api/Brut/CLI/Output.html +1 -1
  71. data/docs/api/Brut/CLI/SystemExecError.html +1 -1
  72. data/docs/api/Brut/CLI.html +1 -1
  73. data/docs/api/Brut/FactoryBot.html +1 -1
  74. data/docs/api/Brut/Framework/App.html +1 -1
  75. data/docs/api/Brut/Framework/Config.html +1 -1
  76. data/docs/api/Brut/Framework/Container.html +1 -1
  77. data/docs/api/Brut/Framework/Error.html +1 -1
  78. data/docs/api/Brut/Framework/Errors/AbstractMethod.html +1 -1
  79. data/docs/api/Brut/Framework/Errors/Bug.html +1 -1
  80. data/docs/api/Brut/Framework/Errors/MissingConfiguration.html +1 -1
  81. data/docs/api/Brut/Framework/Errors/MissingParameter.html +1 -1
  82. data/docs/api/Brut/Framework/Errors/NoClassForPath.html +1 -1
  83. data/docs/api/Brut/Framework/Errors/NotFound.html +1 -1
  84. data/docs/api/Brut/Framework/Errors/NotImplemented.html +1 -1
  85. data/docs/api/Brut/Framework/Errors.html +1 -1
  86. data/docs/api/Brut/Framework/FussyTypeEnforcement.html +1 -1
  87. data/docs/api/Brut/Framework/MCP.html +1 -1
  88. data/docs/api/Brut/Framework/ProjectEnvironment.html +1 -1
  89. data/docs/api/Brut/Framework.html +1 -1
  90. data/docs/api/Brut/FrontEnd/AssetPathResolver.html +1 -1
  91. data/docs/api/Brut/FrontEnd/Component/Helpers.html +1 -1
  92. data/docs/api/Brut/FrontEnd/Component.html +1 -1
  93. data/docs/api/Brut/FrontEnd/Components/ConstraintViolations.html +1 -1
  94. data/docs/api/Brut/FrontEnd/Components/FormTag.html +1 -1
  95. data/docs/api/Brut/FrontEnd/Components/I18nTranslations.html +1 -1
  96. data/docs/api/Brut/FrontEnd/Components/Input.html +1 -1
  97. data/docs/api/Brut/FrontEnd/Components/Inputs/ButtonTag.html +1 -1
  98. data/docs/api/Brut/FrontEnd/Components/Inputs/CsrfToken.html +1 -1
  99. data/docs/api/Brut/FrontEnd/Components/Inputs/InputTag.html +1 -1
  100. data/docs/api/Brut/FrontEnd/Components/Inputs/RadioButton.html +1 -1
  101. data/docs/api/Brut/FrontEnd/Components/Inputs/SelectTagWithOptions.html +1 -1
  102. data/docs/api/Brut/FrontEnd/Components/Inputs/TextareaTag.html +1 -1
  103. data/docs/api/Brut/FrontEnd/Components/Inputs.html +1 -1
  104. data/docs/api/Brut/FrontEnd/Components/LocaleDetection.html +1 -1
  105. data/docs/api/Brut/FrontEnd/Components/PageIdentifier.html +1 -1
  106. data/docs/api/Brut/FrontEnd/Components/TimeTag.html +1 -1
  107. data/docs/api/Brut/FrontEnd/Components/Traceparent.html +1 -1
  108. data/docs/api/Brut/FrontEnd/Components.html +1 -1
  109. data/docs/api/Brut/FrontEnd/CsrfProtector.html +1 -1
  110. data/docs/api/Brut/FrontEnd/Download.html +1 -1
  111. data/docs/api/Brut/FrontEnd/Flash.html +1 -1
  112. data/docs/api/Brut/FrontEnd/Form.html +1 -1
  113. data/docs/api/Brut/FrontEnd/Forms/Button.html +1 -1
  114. data/docs/api/Brut/FrontEnd/Forms/ButtonInputDefinition.html +1 -1
  115. data/docs/api/Brut/FrontEnd/Forms/ConstraintViolation.html +1 -1
  116. data/docs/api/Brut/FrontEnd/Forms/Input/Color.html +1 -1
  117. data/docs/api/Brut/FrontEnd/Forms/Input/TimeOfDay.html +1 -1
  118. data/docs/api/Brut/FrontEnd/Forms/Input.html +1 -1
  119. data/docs/api/Brut/FrontEnd/Forms/InputDeclarations.html +1 -1
  120. data/docs/api/Brut/FrontEnd/Forms/InputDefinition.html +1 -1
  121. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInput.html +1 -1
  122. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInputDefinition.html +1 -1
  123. data/docs/api/Brut/FrontEnd/Forms/SelectInput.html +1 -1
  124. data/docs/api/Brut/FrontEnd/Forms/SelectInputDefinition.html +1 -1
  125. data/docs/api/Brut/FrontEnd/Forms/ValidityState.html +1 -1
  126. data/docs/api/Brut/FrontEnd/Forms.html +1 -1
  127. data/docs/api/Brut/FrontEnd/GenericResponse.html +1 -1
  128. data/docs/api/Brut/FrontEnd/Handler.html +1 -1
  129. data/docs/api/Brut/FrontEnd/Handlers/CspReportingHandler.html +1 -1
  130. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler/TraceParent.html +1 -1
  131. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler.html +1 -1
  132. data/docs/api/Brut/FrontEnd/Handlers/LocaleDetectionHandler.html +1 -1
  133. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler/Form.html +1 -1
  134. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler.html +1 -1
  135. data/docs/api/Brut/FrontEnd/Handlers.html +1 -1
  136. data/docs/api/Brut/FrontEnd/HandlingResults.html +1 -1
  137. data/docs/api/Brut/FrontEnd/HttpMethod.html +1 -1
  138. data/docs/api/Brut/FrontEnd/HttpStatus.html +1 -1
  139. data/docs/api/Brut/FrontEnd/InlineSvgLocator.html +1 -1
  140. data/docs/api/Brut/FrontEnd/Layout.html +1 -1
  141. data/docs/api/Brut/FrontEnd/Middleware.html +1 -1
  142. data/docs/api/Brut/FrontEnd/Middlewares/AnnotateBrutOwnedPaths.html +1 -1
  143. data/docs/api/Brut/FrontEnd/Middlewares/Favicon.html +1 -1
  144. data/docs/api/Brut/FrontEnd/Middlewares/OpenTelemetrySpan.html +1 -1
  145. data/docs/api/Brut/FrontEnd/Middlewares/ReloadApp.html +1 -1
  146. data/docs/api/Brut/FrontEnd/Middlewares.html +1 -1
  147. data/docs/api/Brut/FrontEnd/Page.html +1 -1
  148. data/docs/api/Brut/FrontEnd/Pages/MissingPage.html +1 -1
  149. data/docs/api/Brut/FrontEnd/Pages.html +1 -1
  150. data/docs/api/Brut/FrontEnd/RequestContext.html +1 -1
  151. data/docs/api/Brut/FrontEnd/RouteHook.html +1 -1
  152. data/docs/api/Brut/FrontEnd/RouteHooks/AgeFlash.html +1 -1
  153. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineScripts.html +1 -1
  154. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts/ReportOnly.html +1 -1
  155. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts.html +1 -1
  156. data/docs/api/Brut/FrontEnd/RouteHooks/LocaleDetection.html +1 -1
  157. data/docs/api/Brut/FrontEnd/RouteHooks/SetupRequestContext.html +1 -1
  158. data/docs/api/Brut/FrontEnd/RouteHooks.html +1 -1
  159. data/docs/api/Brut/FrontEnd/Routing/FormHandlerRoute.html +1 -1
  160. data/docs/api/Brut/FrontEnd/Routing/FormRoute.html +1 -1
  161. data/docs/api/Brut/FrontEnd/Routing/MissingForm.html +1 -1
  162. data/docs/api/Brut/FrontEnd/Routing/MissingHandler.html +1 -1
  163. data/docs/api/Brut/FrontEnd/Routing/MissingPage.html +1 -1
  164. data/docs/api/Brut/FrontEnd/Routing/MissingPath.html +1 -1
  165. data/docs/api/Brut/FrontEnd/Routing/PageRoute.html +1 -1
  166. data/docs/api/Brut/FrontEnd/Routing/Route.html +1 -1
  167. data/docs/api/Brut/FrontEnd/Routing.html +1 -1
  168. data/docs/api/Brut/FrontEnd/Session.html +1 -1
  169. data/docs/api/Brut/FrontEnd.html +1 -1
  170. data/docs/api/Brut/I18n/BaseMethods.html +1 -1
  171. data/docs/api/Brut/I18n/ForBackEnd.html +1 -1
  172. data/docs/api/Brut/I18n/ForCLI.html +1 -1
  173. data/docs/api/Brut/I18n/ForHTML.html +1 -1
  174. data/docs/api/Brut/I18n/HTTPAcceptLanguage/AlwaysEnglish.html +1 -1
  175. data/docs/api/Brut/I18n/HTTPAcceptLanguage.html +1 -1
  176. data/docs/api/Brut/I18n.html +1 -1
  177. data/docs/api/Brut/Instrumentation/LoggerSpanExporter.html +1 -1
  178. data/docs/api/Brut/Instrumentation/Methods/ClassMethods.html +1 -1
  179. data/docs/api/Brut/Instrumentation/Methods.html +1 -1
  180. data/docs/api/Brut/Instrumentation/OpenTelemetry/NormalizedAttributes.html +1 -1
  181. data/docs/api/Brut/Instrumentation/OpenTelemetry/Span.html +1 -1
  182. data/docs/api/Brut/Instrumentation/OpenTelemetry.html +1 -1
  183. data/docs/api/Brut/Instrumentation.html +1 -1
  184. data/docs/api/Brut/RubocopConfig.html +1 -1
  185. data/docs/api/Brut/SinatraHelpers/ClassMethods.html +1 -1
  186. data/docs/api/Brut/SinatraHelpers.html +1 -1
  187. data/docs/api/Brut/SpecSupport/ClockSupport.html +1 -1
  188. data/docs/api/Brut/SpecSupport/ComponentSupport.html +1 -1
  189. data/docs/api/Brut/SpecSupport/E2ETestServer.html +1 -1
  190. data/docs/api/Brut/SpecSupport/E2eSupport.html +1 -1
  191. data/docs/api/Brut/SpecSupport/EnhancedNode.html +1 -1
  192. data/docs/api/Brut/SpecSupport/FlashSupport.html +1 -1
  193. data/docs/api/Brut/SpecSupport/GeneralSupport/ClassMethods.html +1 -1
  194. data/docs/api/Brut/SpecSupport/GeneralSupport.html +1 -1
  195. data/docs/api/Brut/SpecSupport/HandlerSupport.html +1 -1
  196. data/docs/api/Brut/SpecSupport/Matchers/BeABug.html +1 -1
  197. data/docs/api/Brut/SpecSupport/Matchers/BePageFor.html +1 -1
  198. data/docs/api/Brut/SpecSupport/Matchers/BeRoutingFor.html +1 -1
  199. data/docs/api/Brut/SpecSupport/Matchers/HaveConstraintViolation.html +1 -1
  200. data/docs/api/Brut/SpecSupport/Matchers/HaveGenerated.html +1 -1
  201. data/docs/api/Brut/SpecSupport/Matchers/HaveHTMLAttribute.html +1 -1
  202. data/docs/api/Brut/SpecSupport/Matchers/HaveI18nString.html +1 -1
  203. data/docs/api/Brut/SpecSupport/Matchers/HaveLinkTo.html +1 -1
  204. data/docs/api/Brut/SpecSupport/Matchers/HaveRedirectedTo.html +1 -1
  205. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedHttpStatus.html +1 -1
  206. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedRackResponse.html +1 -1
  207. data/docs/api/Brut/SpecSupport/Matchers.html +1 -1
  208. data/docs/api/Brut/SpecSupport/RSpecSetup/OptionalSidekiqSupport.html +1 -1
  209. data/docs/api/Brut/SpecSupport/RSpecSetup.html +1 -1
  210. data/docs/api/Brut/SpecSupport/SessionSupport.html +1 -1
  211. data/docs/api/Brut/SpecSupport.html +1 -1
  212. data/docs/api/Brut.html +1 -1
  213. data/docs/api/Clock.html +1 -1
  214. data/docs/api/ModuleName.html +1 -1
  215. data/docs/api/RichString.html +1 -1
  216. data/docs/api/SemanticLogger/Appender/Async.html +1 -1
  217. data/docs/api/Sequel/Extensions/BrutInstrumentation.html +1 -1
  218. data/docs/api/Sequel/Extensions/BrutMigrations.html +1 -1
  219. data/docs/api/Sequel/Extensions.html +1 -1
  220. data/docs/api/Sequel/Plugins/CreatedAt/InstanceMethods.html +1 -1
  221. data/docs/api/Sequel/Plugins/CreatedAt.html +1 -1
  222. data/docs/api/Sequel/Plugins/ExternalId/ClassMethods.html +1 -1
  223. data/docs/api/Sequel/Plugins/ExternalId/InstanceMethods.html +1 -1
  224. data/docs/api/Sequel/Plugins/ExternalId.html +1 -1
  225. data/docs/api/Sequel/Plugins/FindBang/ClassMethods.html +1 -1
  226. data/docs/api/Sequel/Plugins/FindBang.html +1 -1
  227. data/docs/api/Sequel/Plugins.html +1 -1
  228. data/docs/api/Sequel.html +1 -1
  229. data/docs/api/_index.html +1 -1
  230. data/docs/api/file.README.html +1 -1
  231. data/docs/api/index.html +1 -1
  232. data/docs/api/top-level-namespace.html +1 -1
  233. data/docs/assets/{app.B0X8upRm.js → app.Dm7v_ouO.js} +1 -1
  234. data/docs/assets/{brut-js.md.CbJAe2Ky.js → brut-js.md.BMz0X1Rz.js} +1 -1
  235. data/docs/assets/chunks/@localSearchIndexroot.BiNFswvo.js +1 -0
  236. data/docs/assets/chunks/{VPLocalSearchBox.jLmhant1.js → VPLocalSearchBox.DQK6jQou.js} +1 -1
  237. data/docs/assets/chunks/{theme.CtVUdCdt.js → theme.BuExsdM9.js} +2 -2
  238. data/docs/assets/{components.md.C6nWgDP0.js → components.md.Dfd3w6UW.js} +3 -3
  239. data/docs/assets/{configuration.md.CpbYHWPb.js → configuration.md.DTYoV2Ea.js} +1 -1
  240. data/docs/assets/{forms.md.Bii91k3E.js → forms.md.DEkmJUvb.js} +1 -1
  241. data/docs/assets/{getting-started.md.ChAvueK7.js → getting-started.md.DO-4eoGW.js} +2 -2
  242. data/docs/assets/{tutorials_02-dialog.md.De6iTsWX.js → tutorials_02-dialog.md.D2vSjDVf.js} +1 -1
  243. data/docs/assets.html +3 -3
  244. data/docs/brut-js/api/AjaxSubmit.html +2 -2
  245. data/docs/brut-js/api/AjaxSubmit.js.html +2 -2
  246. data/docs/brut-js/api/Autosubmit.html +2 -2
  247. data/docs/brut-js/api/Autosubmit.js.html +2 -2
  248. data/docs/brut-js/api/BaseCustomElement.html +2 -2
  249. data/docs/brut-js/api/BaseCustomElement.js.html +2 -2
  250. data/docs/brut-js/api/BrutCustomElements.html +3 -3
  251. data/docs/brut-js/api/BufferedLogger.html +2 -2
  252. data/docs/brut-js/api/ConfirmSubmit.html +2 -2
  253. data/docs/brut-js/api/ConfirmSubmit.js.html +2 -2
  254. data/docs/brut-js/api/ConfirmationDialog.html +2 -2
  255. data/docs/brut-js/api/ConfirmationDialog.js.html +2 -2
  256. data/docs/brut-js/api/ConstraintViolationMessage.html +2 -2
  257. data/docs/brut-js/api/ConstraintViolationMessage.js.html +2 -2
  258. data/docs/brut-js/api/ConstraintViolationMessages.html +2 -2
  259. data/docs/brut-js/api/ConstraintViolationMessages.js.html +2 -2
  260. data/docs/brut-js/api/CopyToClipboard.html +2 -2
  261. data/docs/brut-js/api/CopyToClipboard.js.html +2 -2
  262. data/docs/brut-js/api/Form.html +2 -2
  263. data/docs/brut-js/api/Form.js.html +2 -2
  264. data/docs/brut-js/api/I18nTranslation.html +2 -2
  265. data/docs/brut-js/api/I18nTranslation.js.html +5 -2
  266. data/docs/brut-js/api/LocaleDetection.html +2 -2
  267. data/docs/brut-js/api/LocaleDetection.js.html +2 -2
  268. data/docs/brut-js/api/Logger.html +2 -2
  269. data/docs/brut-js/api/Logger.js.html +2 -2
  270. data/docs/brut-js/api/Message.html +2 -2
  271. data/docs/brut-js/api/Message.js.html +11 -5
  272. data/docs/brut-js/api/PrefixedLogger.html +2 -2
  273. data/docs/brut-js/api/RichString.html +9 -9
  274. data/docs/brut-js/api/RichString.js.html +6 -3
  275. data/docs/brut-js/api/Tabs.html +2 -2
  276. data/docs/brut-js/api/Tabs.js.html +2 -2
  277. data/docs/brut-js/api/Toast.html +270 -0
  278. data/docs/brut-js/api/Toast.js.html +153 -0
  279. data/docs/brut-js/api/Tracing.html +2 -2
  280. data/docs/brut-js/api/Tracing.js.html +2 -2
  281. data/docs/brut-js/api/external-CustomElementRegistry.html +3 -3
  282. data/docs/brut-js/api/external-Performance.html +3 -3
  283. data/docs/brut-js/api/external-Promise.html +3 -3
  284. data/docs/brut-js/api/external-ValidityState.html +3 -3
  285. data/docs/brut-js/api/external-Window.html +4 -4
  286. data/docs/brut-js/api/external-fetch.html +3 -3
  287. data/docs/brut-js/api/global.html +3 -3
  288. data/docs/brut-js/api/index.html +2 -2
  289. data/docs/brut-js/api/index.js.html +5 -2
  290. data/docs/brut-js/api/module-testing.html +2 -2
  291. data/docs/brut-js/api/testing.AssetMetadata.html +2 -2
  292. data/docs/brut-js/api/testing.AssetMetadataLoader.html +2 -2
  293. data/docs/brut-js/api/testing.CustomElementTest.html +2 -2
  294. data/docs/brut-js/api/testing.DOMCreator.html +2 -2
  295. data/docs/brut-js/api/testing_AssetMetadata.js.html +2 -2
  296. data/docs/brut-js/api/testing_AssetMetadataLoader.js.html +2 -2
  297. data/docs/brut-js/api/testing_CustomElementTest.js.html +2 -2
  298. data/docs/brut-js/api/testing_DOMCreator.js.html +2 -2
  299. data/docs/brut-js/api/testing_index.js.html +2 -2
  300. data/docs/brut-js.html +5 -5
  301. data/docs/business-logic.html +3 -3
  302. data/docs/cli.html +3 -3
  303. data/docs/components.html +7 -7
  304. data/docs/configuration.html +5 -5
  305. data/docs/css.html +3 -3
  306. data/docs/custom-element-tests.html +3 -3
  307. data/docs/database-access.html +3 -3
  308. data/docs/database-schema.html +3 -3
  309. data/docs/deployment.html +3 -3
  310. data/docs/dev-environment.html +3 -3
  311. data/docs/dir-structure.html +3 -3
  312. data/docs/doc-conventions.html +3 -3
  313. data/docs/end-to-end-tests.html +3 -3
  314. data/docs/features.html +3 -3
  315. data/docs/flash-and-session.html +3 -3
  316. data/docs/form-constraints.html +3 -3
  317. data/docs/forms.html +5 -5
  318. data/docs/getting-started.html +6 -6
  319. data/docs/handlers.html +3 -3
  320. data/docs/hashmap.json +1 -1
  321. data/docs/hooks.html +3 -3
  322. data/docs/i18n.html +3 -3
  323. data/docs/index.html +3 -3
  324. data/docs/instrumentation.html +3 -3
  325. data/docs/javascript.html +3 -3
  326. data/docs/jobs.html +3 -3
  327. data/docs/keyword-injection.html +3 -3
  328. data/docs/layouts.html +3 -3
  329. data/docs/lsp.html +3 -3
  330. data/docs/markdown-examples.html +3 -3
  331. data/docs/middleware.html +3 -3
  332. data/docs/overview.html +3 -3
  333. data/docs/pages.html +3 -3
  334. data/docs/recipes/alternate-layouts.html +3 -3
  335. data/docs/recipes/authentication.html +3 -3
  336. data/docs/recipes/custom-flash.html +3 -3
  337. data/docs/recipes/form-errors.html +3 -3
  338. data/docs/recipes/indexed-forms.html +3 -3
  339. data/docs/recipes/migrations.html +3 -3
  340. data/docs/recipes/text-field-component.html +3 -3
  341. data/docs/roadmap.html +3 -3
  342. data/docs/routes.html +3 -3
  343. data/docs/security.html +3 -3
  344. data/docs/seed-data.html +3 -3
  345. data/docs/space-time-continuum.html +3 -3
  346. data/docs/tutorial.html +3 -3
  347. data/docs/tutorials/01-intro.html +3 -3
  348. data/docs/tutorials/02-dialog.html +5 -5
  349. data/docs/unit-tests.html +3 -3
  350. data/docs/why.html +3 -3
  351. data/dx/bash_customizations +3 -4
  352. data/dx/build.pre +15 -0
  353. data/lib/brut/cli/apps/heroku_container_based_deploy.rb +41 -15
  354. data/lib/brut/cli/apps/test.rb +2 -0
  355. data/lib/brut/framework/container.rb +6 -4
  356. data/lib/brut/framework/mcp.rb +1 -1
  357. data/lib/brut/version.rb +1 -1
  358. data/mkbrut/Gemfile.lock +2 -2
  359. data/mkbrut/lib/mkbrut/add_segment.rb +38 -0
  360. data/mkbrut/lib/mkbrut/add_segment_options.rb +22 -0
  361. data/mkbrut/lib/mkbrut/app.rb +7 -2
  362. data/mkbrut/lib/mkbrut/base.rb +1 -0
  363. data/mkbrut/lib/mkbrut/cli.rb +90 -8
  364. data/mkbrut/lib/mkbrut/ops/insert_code_in_method.rb +19 -7
  365. data/mkbrut/lib/mkbrut/ops/insert_into_file.rb +36 -0
  366. data/mkbrut/lib/mkbrut/ops/prism_parsing_op.rb +14 -2
  367. data/mkbrut/lib/mkbrut/ops.rb +1 -0
  368. data/mkbrut/lib/mkbrut/segments/bare_bones.rb +8 -0
  369. data/mkbrut/lib/mkbrut/segments/demo.rb +8 -0
  370. data/mkbrut/lib/mkbrut/segments/heroku.rb +23 -3
  371. data/mkbrut/lib/mkbrut/segments/sidekiq.rb +136 -1
  372. data/mkbrut/lib/mkbrut/segments.rb +1 -1
  373. data/mkbrut/lib/mkbrut/version.rb +1 -1
  374. data/mkbrut/lib/mkbrut.rb +2 -0
  375. data/mkbrut/templates/Base/.gitignore +3 -0
  376. data/mkbrut/templates/Base/Dockerfile.dx +18 -21
  377. data/mkbrut/templates/Base/Gemfile.erb +1 -1
  378. data/mkbrut/templates/Base/bin/run +107 -67
  379. data/mkbrut/templates/Base/bin/run.run +4 -0
  380. data/mkbrut/templates/Base/bin/setup +32 -1
  381. data/mkbrut/templates/Base/dx/bash_customizations +0 -4
  382. data/mkbrut/templates/Base/package.json.erb +1 -1
  383. data/mkbrut/templates/segments/Heroku/deploy/Dockerfile +15 -15
  384. data/mkbrut/templates/segments/Heroku/deploy/heroku_config.rb +5 -4
  385. data/mkbrut/templates/segments/Sidekiq/app/boot_sidekiq.rb +2 -0
  386. data/mkbrut/templates/segments/Sidekiq/app/config/sidekiq.yml +4 -0
  387. data/mkbrut/templates/segments/Sidekiq/app/src/back_end/jobs/app_job.rb +3 -0
  388. data/mkbrut/templates/segments/Sidekiq/app/src/back_end/jobs/example_job.rb +12 -0
  389. data/mkbrut/templates/segments/Sidekiq/app/src/back_end/segments/sidekiq_segment.rb +56 -0
  390. data/mkbrut/templates/segments/Sidekiq/bin/run.sidekiq +4 -0
  391. data/mkbrut/templates/segments/Sidekiq/specs/back_end/jobs/example_job.spec.rb +5 -0
  392. data/mkbrut/templates/segments/Sidekiq/specs/integration/sidekiq_works.spec.rb +38 -0
  393. metadata +34 -18
  394. data/docs/assets/chunks/@localSearchIndexroot.C0s1k0UQ.js +0 -1
  395. /data/docs/assets/{brut-js.md.CbJAe2Ky.lean.js → brut-js.md.BMz0X1Rz.lean.js} +0 -0
  396. /data/docs/assets/{components.md.C6nWgDP0.lean.js → components.md.Dfd3w6UW.lean.js} +0 -0
  397. /data/docs/assets/{configuration.md.CpbYHWPb.lean.js → configuration.md.DTYoV2Ea.lean.js} +0 -0
  398. /data/docs/assets/{forms.md.Bii91k3E.lean.js → forms.md.DEkmJUvb.lean.js} +0 -0
  399. /data/docs/assets/{getting-started.md.ChAvueK7.lean.js → getting-started.md.DO-4eoGW.lean.js} +0 -0
  400. /data/docs/assets/{tutorials_02-dialog.md.De6iTsWX.lean.js → tutorials_02-dialog.md.D2vSjDVf.lean.js} +0 -0
@@ -280,13 +280,13 @@ style UI.</p></td>
280
280
  </div>
281
281
 
282
282
  <nav>
283
- <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-testing.html">testing</a></li></ul><h3>Externals</h3><ul><li><a href="external-CustomElementRegistry.html">CustomElementRegistry</a></li><li><a href="external-Performance.html">Performance</a></li><li><a href="external-Promise.html">Promise</a></li><li><a href="external-ValidityState.html">ValidityState</a></li><li><a href="external-Window.html">Window</a></li><li><a href="external-fetch.html">fetch</a></li></ul><h3>Classes</h3><ul><li><a href="AjaxSubmit.html">AjaxSubmit</a></li><li><a href="Autosubmit.html">Autosubmit</a></li><li><a href="BaseCustomElement.html">BaseCustomElement</a></li><li><a href="BrutCustomElements.html">BrutCustomElements</a></li><li><a href="BufferedLogger.html">BufferedLogger</a></li><li><a href="ConfirmSubmit.html">ConfirmSubmit</a></li><li><a href="ConfirmationDialog.html">ConfirmationDialog</a></li><li><a href="ConstraintViolationMessage.html">ConstraintViolationMessage</a></li><li><a href="ConstraintViolationMessages.html">ConstraintViolationMessages</a></li><li><a href="CopyToClipboard.html">CopyToClipboard</a></li><li><a href="Form.html">Form</a></li><li><a href="I18nTranslation.html">I18nTranslation</a></li><li><a href="LocaleDetection.html">LocaleDetection</a></li><li><a href="Logger.html">Logger</a></li><li><a href="Message.html">Message</a></li><li><a href="PrefixedLogger.html">PrefixedLogger</a></li><li><a href="RichString.html">RichString</a></li><li><a href="Tabs.html">Tabs</a></li><li><a href="Tracing.html">Tracing</a></li><li><a href="testing.AssetMetadata.html">AssetMetadata</a></li><li><a href="testing.AssetMetadataLoader.html">AssetMetadataLoader</a></li><li><a href="testing.CustomElementTest.html">CustomElementTest</a></li><li><a href="testing.DOMCreator.html">DOMCreator</a></li></ul><h3><a href="global.html">Global</a></h3>
283
+ <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-testing.html">testing</a></li></ul><h3>Externals</h3><ul><li><a href="external-CustomElementRegistry.html">CustomElementRegistry</a></li><li><a href="external-Performance.html">Performance</a></li><li><a href="external-Promise.html">Promise</a></li><li><a href="external-ValidityState.html">ValidityState</a></li><li><a href="external-Window.html">Window</a></li><li><a href="external-fetch.html">fetch</a></li></ul><h3>Classes</h3><ul><li><a href="AjaxSubmit.html">AjaxSubmit</a></li><li><a href="Autosubmit.html">Autosubmit</a></li><li><a href="BaseCustomElement.html">BaseCustomElement</a></li><li><a href="BrutCustomElements.html">BrutCustomElements</a></li><li><a href="BufferedLogger.html">BufferedLogger</a></li><li><a href="ConfirmSubmit.html">ConfirmSubmit</a></li><li><a href="ConfirmationDialog.html">ConfirmationDialog</a></li><li><a href="ConstraintViolationMessage.html">ConstraintViolationMessage</a></li><li><a href="ConstraintViolationMessages.html">ConstraintViolationMessages</a></li><li><a href="CopyToClipboard.html">CopyToClipboard</a></li><li><a href="Form.html">Form</a></li><li><a href="I18nTranslation.html">I18nTranslation</a></li><li><a href="LocaleDetection.html">LocaleDetection</a></li><li><a href="Logger.html">Logger</a></li><li><a href="Message.html">Message</a></li><li><a href="PrefixedLogger.html">PrefixedLogger</a></li><li><a href="RichString.html">RichString</a></li><li><a href="Tabs.html">Tabs</a></li><li><a href="Toast.html">Toast</a></li><li><a href="Tracing.html">Tracing</a></li><li><a href="testing.AssetMetadata.html">AssetMetadata</a></li><li><a href="testing.AssetMetadataLoader.html">AssetMetadataLoader</a></li><li><a href="testing.CustomElementTest.html">CustomElementTest</a></li><li><a href="testing.DOMCreator.html">DOMCreator</a></li></ul><h3><a href="global.html">Global</a></h3>
284
284
  </nav>
285
285
 
286
286
  <br class="clear">
287
287
 
288
288
  <footer>
289
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Tue Sep 09 2025 14:11:16 GMT+0000 (Coordinated Universal Time)
289
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Tue Sep 16 2025 13:24:01 GMT+0000 (Coordinated Universal Time)
290
290
  </footer>
291
291
 
292
292
  <script> prettyPrint(); </script>
@@ -204,13 +204,13 @@ export default Tabs
204
204
  </div>
205
205
 
206
206
  <nav>
207
- <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-testing.html">testing</a></li></ul><h3>Externals</h3><ul><li><a href="external-CustomElementRegistry.html">CustomElementRegistry</a></li><li><a href="external-Performance.html">Performance</a></li><li><a href="external-Promise.html">Promise</a></li><li><a href="external-ValidityState.html">ValidityState</a></li><li><a href="external-Window.html">Window</a></li><li><a href="external-fetch.html">fetch</a></li></ul><h3>Classes</h3><ul><li><a href="AjaxSubmit.html">AjaxSubmit</a></li><li><a href="Autosubmit.html">Autosubmit</a></li><li><a href="BaseCustomElement.html">BaseCustomElement</a></li><li><a href="BrutCustomElements.html">BrutCustomElements</a></li><li><a href="BufferedLogger.html">BufferedLogger</a></li><li><a href="ConfirmSubmit.html">ConfirmSubmit</a></li><li><a href="ConfirmationDialog.html">ConfirmationDialog</a></li><li><a href="ConstraintViolationMessage.html">ConstraintViolationMessage</a></li><li><a href="ConstraintViolationMessages.html">ConstraintViolationMessages</a></li><li><a href="CopyToClipboard.html">CopyToClipboard</a></li><li><a href="Form.html">Form</a></li><li><a href="I18nTranslation.html">I18nTranslation</a></li><li><a href="LocaleDetection.html">LocaleDetection</a></li><li><a href="Logger.html">Logger</a></li><li><a href="Message.html">Message</a></li><li><a href="PrefixedLogger.html">PrefixedLogger</a></li><li><a href="RichString.html">RichString</a></li><li><a href="Tabs.html">Tabs</a></li><li><a href="Tracing.html">Tracing</a></li><li><a href="testing.AssetMetadata.html">AssetMetadata</a></li><li><a href="testing.AssetMetadataLoader.html">AssetMetadataLoader</a></li><li><a href="testing.CustomElementTest.html">CustomElementTest</a></li><li><a href="testing.DOMCreator.html">DOMCreator</a></li></ul><h3><a href="global.html">Global</a></h3>
207
+ <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-testing.html">testing</a></li></ul><h3>Externals</h3><ul><li><a href="external-CustomElementRegistry.html">CustomElementRegistry</a></li><li><a href="external-Performance.html">Performance</a></li><li><a href="external-Promise.html">Promise</a></li><li><a href="external-ValidityState.html">ValidityState</a></li><li><a href="external-Window.html">Window</a></li><li><a href="external-fetch.html">fetch</a></li></ul><h3>Classes</h3><ul><li><a href="AjaxSubmit.html">AjaxSubmit</a></li><li><a href="Autosubmit.html">Autosubmit</a></li><li><a href="BaseCustomElement.html">BaseCustomElement</a></li><li><a href="BrutCustomElements.html">BrutCustomElements</a></li><li><a href="BufferedLogger.html">BufferedLogger</a></li><li><a href="ConfirmSubmit.html">ConfirmSubmit</a></li><li><a href="ConfirmationDialog.html">ConfirmationDialog</a></li><li><a href="ConstraintViolationMessage.html">ConstraintViolationMessage</a></li><li><a href="ConstraintViolationMessages.html">ConstraintViolationMessages</a></li><li><a href="CopyToClipboard.html">CopyToClipboard</a></li><li><a href="Form.html">Form</a></li><li><a href="I18nTranslation.html">I18nTranslation</a></li><li><a href="LocaleDetection.html">LocaleDetection</a></li><li><a href="Logger.html">Logger</a></li><li><a href="Message.html">Message</a></li><li><a href="PrefixedLogger.html">PrefixedLogger</a></li><li><a href="RichString.html">RichString</a></li><li><a href="Tabs.html">Tabs</a></li><li><a href="Toast.html">Toast</a></li><li><a href="Tracing.html">Tracing</a></li><li><a href="testing.AssetMetadata.html">AssetMetadata</a></li><li><a href="testing.AssetMetadataLoader.html">AssetMetadataLoader</a></li><li><a href="testing.CustomElementTest.html">CustomElementTest</a></li><li><a href="testing.DOMCreator.html">DOMCreator</a></li></ul><h3><a href="global.html">Global</a></h3>
208
208
  </nav>
209
209
 
210
210
  <br class="clear">
211
211
 
212
212
  <footer>
213
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Tue Sep 09 2025 14:11:16 GMT+0000 (Coordinated Universal Time)
213
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Tue Sep 16 2025 13:24:01 GMT+0000 (Coordinated Universal Time)
214
214
  </footer>
215
215
 
216
216
  <script> prettyPrint(); </script>
@@ -0,0 +1,270 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>JSDoc: Class: Toast</title>
6
+
7
+ <script src="scripts/prettify/prettify.js"> </script>
8
+ <script src="scripts/prettify/lang-css.js"> </script>
9
+ <!--[if lt IE 9]>
10
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
11
+ <![endif]-->
12
+ <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
13
+ <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
14
+ </head>
15
+
16
+ <body>
17
+
18
+ <div id="main">
19
+
20
+ <h1 class="page-title">Class: Toast</h1>
21
+
22
+
23
+
24
+
25
+
26
+
27
+ <section>
28
+
29
+ <header>
30
+
31
+ <h2><span class="attribs"><span class="type-signature"></span></span>Toast<span class="signature">()</span><span class="type-signature"></span></h2>
32
+
33
+
34
+ <div class="class-description"><p>Support for a toast component, which is a momentary message shown to the user, for example
35
+ if an aynchronous update has occured.</p>
36
+ <p>To use this element, you should set up your CSS so that the element is hidden if there is no <code>key</code>
37
+ attribute set. When the <code>key</code> attribute <em>is</em> set, the element should be shown. You can use CSS animations
38
+ for this as needed, but the main thing to remember is that, without a <code>key</code> attribute, this element
39
+ should not be visible.</p>
40
+ <p>The <code>key</code> attribute is expected to be an i18n key that references a <code>&lt;brut-i18n-message&gt;</code> on
41
+ the page, which contains the actual message to show the visitor. When the <code>key</code> attribute is
42
+ set, this component will find an <code>&lt;output&gt;</code> inside itself, and replace the entire contents
43
+ with a <code>&lt;brut-message&gt;</code> component, using the same <code>key</code>. This will cause the <code>&lt;brut-message&gt;</code>
44
+ to look up the key and put that text into the element.</p>
45
+ <p>In addition to this lookup, this element will set appropriate ARIA attributes on the
46
+ created <code>&lt;brut-message&gt;</code> element.</p>
47
+ <p>Further, if there is a <code>&lt;button&gt;</code> inside this element, it will be used to close the toast by removing the
48
+ <code>key</code> attribute (which, assuming your CSS is correct, will hide the element).</p></div>
49
+
50
+
51
+ </header>
52
+
53
+ <article>
54
+ <div class="container-overview">
55
+
56
+
57
+
58
+
59
+ <h2>Constructor</h2>
60
+
61
+
62
+
63
+ <h4 class="name" id="Toast"><span class="type-signature"></span>new Toast<span class="signature">()</span><span class="type-signature"></span></h4>
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
+ <h5 class="subsection-title">Properties:</h5>
83
+
84
+
85
+
86
+ <table class="props">
87
+ <thead>
88
+ <tr>
89
+
90
+ <th>Name</th>
91
+
92
+
93
+ <th>Type</th>
94
+
95
+
96
+
97
+
98
+
99
+ <th class="last">Description</th>
100
+ </tr>
101
+ </thead>
102
+
103
+ <tbody>
104
+
105
+
106
+ <tr>
107
+
108
+ <td class="name"><code>key</code></td>
109
+
110
+
111
+ <td class="type">
112
+
113
+
114
+ <span class="param-type">string</span>
115
+
116
+
117
+
118
+ </td>
119
+
120
+
121
+
122
+
123
+
124
+ <td class="description last"><p>an I18n key of the message to show in the toast. When you generate
125
+ the toast's HTML on the server, do not set key. Then, when you need
126
+ to display the toast, use JavaScript to set the key. This will
127
+ trigger its behavior as described above.</p></td>
128
+ </tr>
129
+
130
+
131
+ </tbody>
132
+ </table>
133
+
134
+
135
+
136
+
137
+ <dl class="details">
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+
148
+
149
+
150
+
151
+
152
+
153
+
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+ <dt class="tag-source">Source:</dt>
165
+ <dd class="tag-source"><ul class="dummy"><li>
166
+ <a href="Toast.js.html">Toast.js</a>, <a href="Toast.js.html#line57">line 57</a>
167
+ </li></ul></dd>
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+ </dl>
176
+
177
+
178
+
179
+
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+ <h5>Example</h5>
196
+
197
+ <pre class="prettyprint"><code>&lt;style>
198
+ brut-toast {
199
+ display: none;
200
+ }
201
+ brut-toast[key] {
202
+ display: block;
203
+ }
204
+ &lt;/style>
205
+ &lt;brut-i18n-translation key="toast.saved">Save successful&lt;/brut-i18n-translation>
206
+ &lt;brut-toast>
207
+ &lt;div>
208
+ &lt;output>&lt;/output>
209
+ &lt;button>Close&lt;/button>
210
+ &lt;/div>
211
+ &lt;/brut-toast>
212
+ &lt;!-- now, if you set the key to "toast.saved", the HTML will be changed as follows: -->
213
+ &lt;brut-toast key="toast.saved">
214
+ &lt;div>
215
+ &lt;output>
216
+ &lt;brut-message key="toast.saved" role="status" aria-live="polite" aria-atomic="true">
217
+ Save successful
218
+ &lt;/brut-message>
219
+ &lt;/output>
220
+ &lt;button>Close&lt;/button>
221
+ &lt;/div>
222
+ &lt;/brut-toast></code></pre>
223
+
224
+
225
+
226
+
227
+ </div>
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+ </article>
249
+
250
+ </section>
251
+
252
+
253
+
254
+
255
+ </div>
256
+
257
+ <nav>
258
+ <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-testing.html">testing</a></li></ul><h3>Externals</h3><ul><li><a href="external-CustomElementRegistry.html">CustomElementRegistry</a></li><li><a href="external-Performance.html">Performance</a></li><li><a href="external-Promise.html">Promise</a></li><li><a href="external-ValidityState.html">ValidityState</a></li><li><a href="external-Window.html">Window</a></li><li><a href="external-fetch.html">fetch</a></li></ul><h3>Classes</h3><ul><li><a href="AjaxSubmit.html">AjaxSubmit</a></li><li><a href="Autosubmit.html">Autosubmit</a></li><li><a href="BaseCustomElement.html">BaseCustomElement</a></li><li><a href="BrutCustomElements.html">BrutCustomElements</a></li><li><a href="BufferedLogger.html">BufferedLogger</a></li><li><a href="ConfirmSubmit.html">ConfirmSubmit</a></li><li><a href="ConfirmationDialog.html">ConfirmationDialog</a></li><li><a href="ConstraintViolationMessage.html">ConstraintViolationMessage</a></li><li><a href="ConstraintViolationMessages.html">ConstraintViolationMessages</a></li><li><a href="CopyToClipboard.html">CopyToClipboard</a></li><li><a href="Form.html">Form</a></li><li><a href="I18nTranslation.html">I18nTranslation</a></li><li><a href="LocaleDetection.html">LocaleDetection</a></li><li><a href="Logger.html">Logger</a></li><li><a href="Message.html">Message</a></li><li><a href="PrefixedLogger.html">PrefixedLogger</a></li><li><a href="RichString.html">RichString</a></li><li><a href="Tabs.html">Tabs</a></li><li><a href="Toast.html">Toast</a></li><li><a href="Tracing.html">Tracing</a></li><li><a href="testing.AssetMetadata.html">AssetMetadata</a></li><li><a href="testing.AssetMetadataLoader.html">AssetMetadataLoader</a></li><li><a href="testing.CustomElementTest.html">CustomElementTest</a></li><li><a href="testing.DOMCreator.html">DOMCreator</a></li></ul><h3><a href="global.html">Global</a></h3>
259
+ </nav>
260
+
261
+ <br class="clear">
262
+
263
+ <footer>
264
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Tue Sep 16 2025 13:24:01 GMT+0000 (Coordinated Universal Time)
265
+ </footer>
266
+
267
+ <script> prettyPrint(); </script>
268
+ <script src="scripts/linenumber.js"> </script>
269
+ </body>
270
+ </html>
@@ -0,0 +1,153 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>JSDoc: Source: Toast.js</title>
6
+
7
+ <script src="scripts/prettify/prettify.js"> </script>
8
+ <script src="scripts/prettify/lang-css.js"> </script>
9
+ <!--[if lt IE 9]>
10
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
11
+ <![endif]-->
12
+ <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
13
+ <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
14
+ </head>
15
+
16
+ <body>
17
+
18
+ <div id="main">
19
+
20
+ <h1 class="page-title">Source: Toast.js</h1>
21
+
22
+
23
+
24
+
25
+
26
+
27
+ <section>
28
+ <article>
29
+ <pre class="prettyprint source linenums"><code>import { BaseCustomElement, RichString, Message } from "brut-js"
30
+
31
+ /**
32
+ * Support for a toast component, which is a momentary message shown to the user, for example
33
+ * if an aynchronous update has occured.
34
+ *
35
+ * To use this element, you should set up your CSS so that the element is hidden if there is no `key`
36
+ * attribute set. When the `key` attribute *is* set, the element should be shown. You can use CSS animations
37
+ * for this as needed, but the main thing to remember is that, without a `key` attribute, this element
38
+ * should not be visible.
39
+ *
40
+ * The `key` attribute is expected to be an i18n key that references a `&lt;brut-i18n-message>` on
41
+ * the page, which contains the actual message to show the visitor. When the `key` attribute is
42
+ * set, this component will find an `&lt;output>` inside itself, and replace the entire contents
43
+ * with a `&lt;brut-message>` component, using the same `key`. This will cause the `&lt;brut-message>`
44
+ * to look up the key and put that text into the element.
45
+ *
46
+ * In addition to this lookup, this element will set appropriate ARIA attributes on the
47
+ * created `&lt;brut-message>` element.
48
+ *
49
+ * Further, if there is a `&lt;button>` inside this element, it will be used to close the toast by removing the
50
+ * `key` attribute (which, assuming your CSS is correct, will hide the element).
51
+ *
52
+ * @property {string} key - an I18n key of the message to show in the toast. When you generate
53
+ * the toast's HTML on the server, do not set key. Then, when you need
54
+ * to display the toast, use JavaScript to set the key. This will
55
+ * trigger its behavior as described above.
56
+ *
57
+ * @example
58
+ * &lt;style>
59
+ * brut-toast {
60
+ * display: none;
61
+ * }
62
+ * brut-toast[key] {
63
+ * display: block;
64
+ * }
65
+ * &lt;/style>
66
+ * &lt;brut-i18n-translation key="toast.saved">Save successful&lt;/brut-i18n-translation>
67
+ * &lt;brut-toast>
68
+ * &lt;div>
69
+ * &lt;output>&lt;/output>
70
+ * &lt;button>Close&lt;/button>
71
+ * &lt;/div>
72
+ * &lt;/brut-toast>
73
+ * &lt;!-- now, if you set the key to "toast.saved", the HTML will be changed as follows: -->
74
+ * &lt;brut-toast key="toast.saved">
75
+ * &lt;div>
76
+ * &lt;output>
77
+ * &lt;brut-message key="toast.saved" role="status" aria-live="polite" aria-atomic="true">
78
+ * Save successful
79
+ * &lt;/brut-message>
80
+ * &lt;/output>
81
+ * &lt;button>Close&lt;/button>
82
+ * &lt;/div>
83
+ * &lt;/brut-toast>
84
+ */
85
+ class Toast extends BaseCustomElement {
86
+ static tagName = "brut-toast"
87
+
88
+ static observedAttributes = [
89
+ "show-warnings",
90
+ "key",
91
+ ]
92
+
93
+ #key = null
94
+ #closeListener = (event) => {
95
+ event.preventDefault()
96
+ this.removeAttribute("key")
97
+ }
98
+
99
+ keyChangedCallback({newValue}) {
100
+ this.#key = RichString.fromString(newValue)
101
+ }
102
+
103
+ update() {
104
+ const closeButton = this.querySelector("button")
105
+
106
+ if (closeButton) {
107
+ closeButton.addEventListener("click", this.#closeListener)
108
+ }
109
+
110
+ if (!this.#key) {
111
+ return
112
+ }
113
+ const output = this.querySelector("output")
114
+ if (!output) {
115
+ this.logger.warn("No &lt;output> element found, so toast will not be displayed")
116
+ return
117
+ }
118
+ const messageNode = Message.createElement(document,{
119
+ "key": this.#key,
120
+ "role": "status",
121
+ "aria-live": "polite",
122
+ "aria-atomic": "true"
123
+ })
124
+ output.replaceChildren(messageNode)
125
+ this.style.animation = "none"
126
+ this.offsetWidth // Trigger reflow to restart the animation
127
+ this.style.animation = ""
128
+ }
129
+ }
130
+ export default Toast
131
+ </code></pre>
132
+ </article>
133
+ </section>
134
+
135
+
136
+
137
+
138
+ </div>
139
+
140
+ <nav>
141
+ <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-testing.html">testing</a></li></ul><h3>Externals</h3><ul><li><a href="external-CustomElementRegistry.html">CustomElementRegistry</a></li><li><a href="external-Performance.html">Performance</a></li><li><a href="external-Promise.html">Promise</a></li><li><a href="external-ValidityState.html">ValidityState</a></li><li><a href="external-Window.html">Window</a></li><li><a href="external-fetch.html">fetch</a></li></ul><h3>Classes</h3><ul><li><a href="AjaxSubmit.html">AjaxSubmit</a></li><li><a href="Autosubmit.html">Autosubmit</a></li><li><a href="BaseCustomElement.html">BaseCustomElement</a></li><li><a href="BrutCustomElements.html">BrutCustomElements</a></li><li><a href="BufferedLogger.html">BufferedLogger</a></li><li><a href="ConfirmSubmit.html">ConfirmSubmit</a></li><li><a href="ConfirmationDialog.html">ConfirmationDialog</a></li><li><a href="ConstraintViolationMessage.html">ConstraintViolationMessage</a></li><li><a href="ConstraintViolationMessages.html">ConstraintViolationMessages</a></li><li><a href="CopyToClipboard.html">CopyToClipboard</a></li><li><a href="Form.html">Form</a></li><li><a href="I18nTranslation.html">I18nTranslation</a></li><li><a href="LocaleDetection.html">LocaleDetection</a></li><li><a href="Logger.html">Logger</a></li><li><a href="Message.html">Message</a></li><li><a href="PrefixedLogger.html">PrefixedLogger</a></li><li><a href="RichString.html">RichString</a></li><li><a href="Tabs.html">Tabs</a></li><li><a href="Toast.html">Toast</a></li><li><a href="Tracing.html">Tracing</a></li><li><a href="testing.AssetMetadata.html">AssetMetadata</a></li><li><a href="testing.AssetMetadataLoader.html">AssetMetadataLoader</a></li><li><a href="testing.CustomElementTest.html">CustomElementTest</a></li><li><a href="testing.DOMCreator.html">DOMCreator</a></li></ul><h3><a href="global.html">Global</a></h3>
142
+ </nav>
143
+
144
+ <br class="clear">
145
+
146
+ <footer>
147
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Tue Sep 16 2025 13:24:01 GMT+0000 (Coordinated Universal Time)
148
+ </footer>
149
+
150
+ <script> prettyPrint(); </script>
151
+ <script src="scripts/linenumber.js"> </script>
152
+ </body>
153
+ </html>
@@ -262,13 +262,13 @@ Of course, this element is many magnitudes smaller in size than Open Telemetry's
262
262
  </div>
263
263
 
264
264
  <nav>
265
- <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-testing.html">testing</a></li></ul><h3>Externals</h3><ul><li><a href="external-CustomElementRegistry.html">CustomElementRegistry</a></li><li><a href="external-Performance.html">Performance</a></li><li><a href="external-Promise.html">Promise</a></li><li><a href="external-ValidityState.html">ValidityState</a></li><li><a href="external-Window.html">Window</a></li><li><a href="external-fetch.html">fetch</a></li></ul><h3>Classes</h3><ul><li><a href="AjaxSubmit.html">AjaxSubmit</a></li><li><a href="Autosubmit.html">Autosubmit</a></li><li><a href="BaseCustomElement.html">BaseCustomElement</a></li><li><a href="BrutCustomElements.html">BrutCustomElements</a></li><li><a href="BufferedLogger.html">BufferedLogger</a></li><li><a href="ConfirmSubmit.html">ConfirmSubmit</a></li><li><a href="ConfirmationDialog.html">ConfirmationDialog</a></li><li><a href="ConstraintViolationMessage.html">ConstraintViolationMessage</a></li><li><a href="ConstraintViolationMessages.html">ConstraintViolationMessages</a></li><li><a href="CopyToClipboard.html">CopyToClipboard</a></li><li><a href="Form.html">Form</a></li><li><a href="I18nTranslation.html">I18nTranslation</a></li><li><a href="LocaleDetection.html">LocaleDetection</a></li><li><a href="Logger.html">Logger</a></li><li><a href="Message.html">Message</a></li><li><a href="PrefixedLogger.html">PrefixedLogger</a></li><li><a href="RichString.html">RichString</a></li><li><a href="Tabs.html">Tabs</a></li><li><a href="Tracing.html">Tracing</a></li><li><a href="testing.AssetMetadata.html">AssetMetadata</a></li><li><a href="testing.AssetMetadataLoader.html">AssetMetadataLoader</a></li><li><a href="testing.CustomElementTest.html">CustomElementTest</a></li><li><a href="testing.DOMCreator.html">DOMCreator</a></li></ul><h3><a href="global.html">Global</a></h3>
265
+ <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-testing.html">testing</a></li></ul><h3>Externals</h3><ul><li><a href="external-CustomElementRegistry.html">CustomElementRegistry</a></li><li><a href="external-Performance.html">Performance</a></li><li><a href="external-Promise.html">Promise</a></li><li><a href="external-ValidityState.html">ValidityState</a></li><li><a href="external-Window.html">Window</a></li><li><a href="external-fetch.html">fetch</a></li></ul><h3>Classes</h3><ul><li><a href="AjaxSubmit.html">AjaxSubmit</a></li><li><a href="Autosubmit.html">Autosubmit</a></li><li><a href="BaseCustomElement.html">BaseCustomElement</a></li><li><a href="BrutCustomElements.html">BrutCustomElements</a></li><li><a href="BufferedLogger.html">BufferedLogger</a></li><li><a href="ConfirmSubmit.html">ConfirmSubmit</a></li><li><a href="ConfirmationDialog.html">ConfirmationDialog</a></li><li><a href="ConstraintViolationMessage.html">ConstraintViolationMessage</a></li><li><a href="ConstraintViolationMessages.html">ConstraintViolationMessages</a></li><li><a href="CopyToClipboard.html">CopyToClipboard</a></li><li><a href="Form.html">Form</a></li><li><a href="I18nTranslation.html">I18nTranslation</a></li><li><a href="LocaleDetection.html">LocaleDetection</a></li><li><a href="Logger.html">Logger</a></li><li><a href="Message.html">Message</a></li><li><a href="PrefixedLogger.html">PrefixedLogger</a></li><li><a href="RichString.html">RichString</a></li><li><a href="Tabs.html">Tabs</a></li><li><a href="Toast.html">Toast</a></li><li><a href="Tracing.html">Tracing</a></li><li><a href="testing.AssetMetadata.html">AssetMetadata</a></li><li><a href="testing.AssetMetadataLoader.html">AssetMetadataLoader</a></li><li><a href="testing.CustomElementTest.html">CustomElementTest</a></li><li><a href="testing.DOMCreator.html">DOMCreator</a></li></ul><h3><a href="global.html">Global</a></h3>
266
266
  </nav>
267
267
 
268
268
  <br class="clear">
269
269
 
270
270
  <footer>
271
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Tue Sep 09 2025 14:11:16 GMT+0000 (Coordinated Universal Time)
271
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Tue Sep 16 2025 13:24:01 GMT+0000 (Coordinated Universal Time)
272
272
  </footer>
273
273
 
274
274
  <script> prettyPrint(); </script>
@@ -283,13 +283,13 @@ export default Tracing
283
283
  </div>
284
284
 
285
285
  <nav>
286
- <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-testing.html">testing</a></li></ul><h3>Externals</h3><ul><li><a href="external-CustomElementRegistry.html">CustomElementRegistry</a></li><li><a href="external-Performance.html">Performance</a></li><li><a href="external-Promise.html">Promise</a></li><li><a href="external-ValidityState.html">ValidityState</a></li><li><a href="external-Window.html">Window</a></li><li><a href="external-fetch.html">fetch</a></li></ul><h3>Classes</h3><ul><li><a href="AjaxSubmit.html">AjaxSubmit</a></li><li><a href="Autosubmit.html">Autosubmit</a></li><li><a href="BaseCustomElement.html">BaseCustomElement</a></li><li><a href="BrutCustomElements.html">BrutCustomElements</a></li><li><a href="BufferedLogger.html">BufferedLogger</a></li><li><a href="ConfirmSubmit.html">ConfirmSubmit</a></li><li><a href="ConfirmationDialog.html">ConfirmationDialog</a></li><li><a href="ConstraintViolationMessage.html">ConstraintViolationMessage</a></li><li><a href="ConstraintViolationMessages.html">ConstraintViolationMessages</a></li><li><a href="CopyToClipboard.html">CopyToClipboard</a></li><li><a href="Form.html">Form</a></li><li><a href="I18nTranslation.html">I18nTranslation</a></li><li><a href="LocaleDetection.html">LocaleDetection</a></li><li><a href="Logger.html">Logger</a></li><li><a href="Message.html">Message</a></li><li><a href="PrefixedLogger.html">PrefixedLogger</a></li><li><a href="RichString.html">RichString</a></li><li><a href="Tabs.html">Tabs</a></li><li><a href="Tracing.html">Tracing</a></li><li><a href="testing.AssetMetadata.html">AssetMetadata</a></li><li><a href="testing.AssetMetadataLoader.html">AssetMetadataLoader</a></li><li><a href="testing.CustomElementTest.html">CustomElementTest</a></li><li><a href="testing.DOMCreator.html">DOMCreator</a></li></ul><h3><a href="global.html">Global</a></h3>
286
+ <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-testing.html">testing</a></li></ul><h3>Externals</h3><ul><li><a href="external-CustomElementRegistry.html">CustomElementRegistry</a></li><li><a href="external-Performance.html">Performance</a></li><li><a href="external-Promise.html">Promise</a></li><li><a href="external-ValidityState.html">ValidityState</a></li><li><a href="external-Window.html">Window</a></li><li><a href="external-fetch.html">fetch</a></li></ul><h3>Classes</h3><ul><li><a href="AjaxSubmit.html">AjaxSubmit</a></li><li><a href="Autosubmit.html">Autosubmit</a></li><li><a href="BaseCustomElement.html">BaseCustomElement</a></li><li><a href="BrutCustomElements.html">BrutCustomElements</a></li><li><a href="BufferedLogger.html">BufferedLogger</a></li><li><a href="ConfirmSubmit.html">ConfirmSubmit</a></li><li><a href="ConfirmationDialog.html">ConfirmationDialog</a></li><li><a href="ConstraintViolationMessage.html">ConstraintViolationMessage</a></li><li><a href="ConstraintViolationMessages.html">ConstraintViolationMessages</a></li><li><a href="CopyToClipboard.html">CopyToClipboard</a></li><li><a href="Form.html">Form</a></li><li><a href="I18nTranslation.html">I18nTranslation</a></li><li><a href="LocaleDetection.html">LocaleDetection</a></li><li><a href="Logger.html">Logger</a></li><li><a href="Message.html">Message</a></li><li><a href="PrefixedLogger.html">PrefixedLogger</a></li><li><a href="RichString.html">RichString</a></li><li><a href="Tabs.html">Tabs</a></li><li><a href="Toast.html">Toast</a></li><li><a href="Tracing.html">Tracing</a></li><li><a href="testing.AssetMetadata.html">AssetMetadata</a></li><li><a href="testing.AssetMetadataLoader.html">AssetMetadataLoader</a></li><li><a href="testing.CustomElementTest.html">CustomElementTest</a></li><li><a href="testing.DOMCreator.html">DOMCreator</a></li></ul><h3><a href="global.html">Global</a></h3>
287
287
  </nav>
288
288
 
289
289
  <br class="clear">
290
290
 
291
291
  <footer>
292
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Tue Sep 09 2025 14:11:16 GMT+0000 (Coordinated Universal Time)
292
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Tue Sep 16 2025 13:24:01 GMT+0000 (Coordinated Universal Time)
293
293
  </footer>
294
294
 
295
295
  <script> prettyPrint(); </script>
@@ -73,7 +73,7 @@
73
73
 
74
74
  <dt class="tag-source">Source:</dt>
75
75
  <dd class="tag-source"><ul class="dummy"><li>
76
- <a href="index.js.html">index.js</a>, <a href="index.js.html#line62">line 62</a>
76
+ <a href="index.js.html">index.js</a>, <a href="index.js.html#line63">line 63</a>
77
77
  </li></ul></dd>
78
78
 
79
79
 
@@ -125,13 +125,13 @@
125
125
  </div>
126
126
 
127
127
  <nav>
128
- <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-testing.html">testing</a></li></ul><h3>Externals</h3><ul><li><a href="external-CustomElementRegistry.html">CustomElementRegistry</a></li><li><a href="external-Performance.html">Performance</a></li><li><a href="external-Promise.html">Promise</a></li><li><a href="external-ValidityState.html">ValidityState</a></li><li><a href="external-Window.html">Window</a></li><li><a href="external-fetch.html">fetch</a></li></ul><h3>Classes</h3><ul><li><a href="AjaxSubmit.html">AjaxSubmit</a></li><li><a href="Autosubmit.html">Autosubmit</a></li><li><a href="BaseCustomElement.html">BaseCustomElement</a></li><li><a href="BrutCustomElements.html">BrutCustomElements</a></li><li><a href="BufferedLogger.html">BufferedLogger</a></li><li><a href="ConfirmSubmit.html">ConfirmSubmit</a></li><li><a href="ConfirmationDialog.html">ConfirmationDialog</a></li><li><a href="ConstraintViolationMessage.html">ConstraintViolationMessage</a></li><li><a href="ConstraintViolationMessages.html">ConstraintViolationMessages</a></li><li><a href="CopyToClipboard.html">CopyToClipboard</a></li><li><a href="Form.html">Form</a></li><li><a href="I18nTranslation.html">I18nTranslation</a></li><li><a href="LocaleDetection.html">LocaleDetection</a></li><li><a href="Logger.html">Logger</a></li><li><a href="Message.html">Message</a></li><li><a href="PrefixedLogger.html">PrefixedLogger</a></li><li><a href="RichString.html">RichString</a></li><li><a href="Tabs.html">Tabs</a></li><li><a href="Tracing.html">Tracing</a></li><li><a href="testing.AssetMetadata.html">AssetMetadata</a></li><li><a href="testing.AssetMetadataLoader.html">AssetMetadataLoader</a></li><li><a href="testing.CustomElementTest.html">CustomElementTest</a></li><li><a href="testing.DOMCreator.html">DOMCreator</a></li></ul><h3><a href="global.html">Global</a></h3>
128
+ <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-testing.html">testing</a></li></ul><h3>Externals</h3><ul><li><a href="external-CustomElementRegistry.html">CustomElementRegistry</a></li><li><a href="external-Performance.html">Performance</a></li><li><a href="external-Promise.html">Promise</a></li><li><a href="external-ValidityState.html">ValidityState</a></li><li><a href="external-Window.html">Window</a></li><li><a href="external-fetch.html">fetch</a></li></ul><h3>Classes</h3><ul><li><a href="AjaxSubmit.html">AjaxSubmit</a></li><li><a href="Autosubmit.html">Autosubmit</a></li><li><a href="BaseCustomElement.html">BaseCustomElement</a></li><li><a href="BrutCustomElements.html">BrutCustomElements</a></li><li><a href="BufferedLogger.html">BufferedLogger</a></li><li><a href="ConfirmSubmit.html">ConfirmSubmit</a></li><li><a href="ConfirmationDialog.html">ConfirmationDialog</a></li><li><a href="ConstraintViolationMessage.html">ConstraintViolationMessage</a></li><li><a href="ConstraintViolationMessages.html">ConstraintViolationMessages</a></li><li><a href="CopyToClipboard.html">CopyToClipboard</a></li><li><a href="Form.html">Form</a></li><li><a href="I18nTranslation.html">I18nTranslation</a></li><li><a href="LocaleDetection.html">LocaleDetection</a></li><li><a href="Logger.html">Logger</a></li><li><a href="Message.html">Message</a></li><li><a href="PrefixedLogger.html">PrefixedLogger</a></li><li><a href="RichString.html">RichString</a></li><li><a href="Tabs.html">Tabs</a></li><li><a href="Toast.html">Toast</a></li><li><a href="Tracing.html">Tracing</a></li><li><a href="testing.AssetMetadata.html">AssetMetadata</a></li><li><a href="testing.AssetMetadataLoader.html">AssetMetadataLoader</a></li><li><a href="testing.CustomElementTest.html">CustomElementTest</a></li><li><a href="testing.DOMCreator.html">DOMCreator</a></li></ul><h3><a href="global.html">Global</a></h3>
129
129
  </nav>
130
130
 
131
131
  <br class="clear">
132
132
 
133
133
  <footer>
134
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Tue Sep 09 2025 14:11:16 GMT+0000 (Coordinated Universal Time)
134
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Tue Sep 16 2025 13:24:01 GMT+0000 (Coordinated Universal Time)
135
135
  </footer>
136
136
 
137
137
  <script> prettyPrint(); </script>
@@ -71,7 +71,7 @@
71
71
 
72
72
  <dt class="tag-source">Source:</dt>
73
73
  <dd class="tag-source"><ul class="dummy"><li>
74
- <a href="index.js.html">index.js</a>, <a href="index.js.html#line43">line 43</a>
74
+ <a href="index.js.html">index.js</a>, <a href="index.js.html#line44">line 44</a>
75
75
  </li></ul></dd>
76
76
 
77
77
 
@@ -123,13 +123,13 @@
123
123
  </div>
124
124
 
125
125
  <nav>
126
- <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-testing.html">testing</a></li></ul><h3>Externals</h3><ul><li><a href="external-CustomElementRegistry.html">CustomElementRegistry</a></li><li><a href="external-Performance.html">Performance</a></li><li><a href="external-Promise.html">Promise</a></li><li><a href="external-ValidityState.html">ValidityState</a></li><li><a href="external-Window.html">Window</a></li><li><a href="external-fetch.html">fetch</a></li></ul><h3>Classes</h3><ul><li><a href="AjaxSubmit.html">AjaxSubmit</a></li><li><a href="Autosubmit.html">Autosubmit</a></li><li><a href="BaseCustomElement.html">BaseCustomElement</a></li><li><a href="BrutCustomElements.html">BrutCustomElements</a></li><li><a href="BufferedLogger.html">BufferedLogger</a></li><li><a href="ConfirmSubmit.html">ConfirmSubmit</a></li><li><a href="ConfirmationDialog.html">ConfirmationDialog</a></li><li><a href="ConstraintViolationMessage.html">ConstraintViolationMessage</a></li><li><a href="ConstraintViolationMessages.html">ConstraintViolationMessages</a></li><li><a href="CopyToClipboard.html">CopyToClipboard</a></li><li><a href="Form.html">Form</a></li><li><a href="I18nTranslation.html">I18nTranslation</a></li><li><a href="LocaleDetection.html">LocaleDetection</a></li><li><a href="Logger.html">Logger</a></li><li><a href="Message.html">Message</a></li><li><a href="PrefixedLogger.html">PrefixedLogger</a></li><li><a href="RichString.html">RichString</a></li><li><a href="Tabs.html">Tabs</a></li><li><a href="Tracing.html">Tracing</a></li><li><a href="testing.AssetMetadata.html">AssetMetadata</a></li><li><a href="testing.AssetMetadataLoader.html">AssetMetadataLoader</a></li><li><a href="testing.CustomElementTest.html">CustomElementTest</a></li><li><a href="testing.DOMCreator.html">DOMCreator</a></li></ul><h3><a href="global.html">Global</a></h3>
126
+ <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-testing.html">testing</a></li></ul><h3>Externals</h3><ul><li><a href="external-CustomElementRegistry.html">CustomElementRegistry</a></li><li><a href="external-Performance.html">Performance</a></li><li><a href="external-Promise.html">Promise</a></li><li><a href="external-ValidityState.html">ValidityState</a></li><li><a href="external-Window.html">Window</a></li><li><a href="external-fetch.html">fetch</a></li></ul><h3>Classes</h3><ul><li><a href="AjaxSubmit.html">AjaxSubmit</a></li><li><a href="Autosubmit.html">Autosubmit</a></li><li><a href="BaseCustomElement.html">BaseCustomElement</a></li><li><a href="BrutCustomElements.html">BrutCustomElements</a></li><li><a href="BufferedLogger.html">BufferedLogger</a></li><li><a href="ConfirmSubmit.html">ConfirmSubmit</a></li><li><a href="ConfirmationDialog.html">ConfirmationDialog</a></li><li><a href="ConstraintViolationMessage.html">ConstraintViolationMessage</a></li><li><a href="ConstraintViolationMessages.html">ConstraintViolationMessages</a></li><li><a href="CopyToClipboard.html">CopyToClipboard</a></li><li><a href="Form.html">Form</a></li><li><a href="I18nTranslation.html">I18nTranslation</a></li><li><a href="LocaleDetection.html">LocaleDetection</a></li><li><a href="Logger.html">Logger</a></li><li><a href="Message.html">Message</a></li><li><a href="PrefixedLogger.html">PrefixedLogger</a></li><li><a href="RichString.html">RichString</a></li><li><a href="Tabs.html">Tabs</a></li><li><a href="Toast.html">Toast</a></li><li><a href="Tracing.html">Tracing</a></li><li><a href="testing.AssetMetadata.html">AssetMetadata</a></li><li><a href="testing.AssetMetadataLoader.html">AssetMetadataLoader</a></li><li><a href="testing.CustomElementTest.html">CustomElementTest</a></li><li><a href="testing.DOMCreator.html">DOMCreator</a></li></ul><h3><a href="global.html">Global</a></h3>
127
127
  </nav>
128
128
 
129
129
  <br class="clear">
130
130
 
131
131
  <footer>
132
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Tue Sep 09 2025 14:11:16 GMT+0000 (Coordinated Universal Time)
132
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Tue Sep 16 2025 13:24:01 GMT+0000 (Coordinated Universal Time)
133
133
  </footer>
134
134
 
135
135
  <script> prettyPrint(); </script>