brut 0.10.0 → 0.11.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.
Files changed (376) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -0
  3. data/Gemfile.lock +15 -15
  4. data/assets/YouTubeThumb.pxd +0 -0
  5. data/bin/new-version +3 -3
  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/getting-started.md +3 -0
  11. data/brutrb.com/images/tutorial/02-confirmation-dialog-browser-element-styled.png +0 -0
  12. data/brutrb.com/images/tutorial/02-confirmation-dialog-browser-element.png +0 -0
  13. data/brutrb.com/images/tutorial/02-confirmation-dialog-browser.png +0 -0
  14. data/brutrb.com/images/tutorial/02-confirmation-flow.graffle +0 -0
  15. data/brutrb.com/images/tutorial/02-confirmation-flow.png +0 -0
  16. data/brutrb.com/instrumentation.md +142 -3
  17. data/brutrb.com/tutorial.md +29 -1627
  18. data/brutrb.com/tutorials/01-intro.md +1630 -0
  19. data/brutrb.com/tutorials/02-dialog.md +569 -0
  20. data/docs/404.html +2 -2
  21. data/docs/adrs.html +4 -4
  22. data/docs/ai.html +4 -4
  23. data/docs/api/Brut/BackEnd/SeedData.html +1 -1
  24. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server/FlushSpans.html +1 -1
  25. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server.html +1 -1
  26. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares.html +1 -1
  27. data/docs/api/Brut/BackEnd/Sidekiq.html +1 -1
  28. data/docs/api/Brut/BackEnd/Validators/FormValidator.html +1 -1
  29. data/docs/api/Brut/BackEnd/Validators.html +1 -1
  30. data/docs/api/Brut/BackEnd.html +1 -1
  31. data/docs/api/Brut/CLI/App.html +1 -1
  32. data/docs/api/Brut/CLI/AppRunner.html +1 -1
  33. data/docs/api/Brut/CLI/Apps/BuildAssets/All.html +1 -1
  34. data/docs/api/Brut/CLI/Apps/BuildAssets/CSS.html +1 -1
  35. data/docs/api/Brut/CLI/Apps/BuildAssets/Images.html +1 -1
  36. data/docs/api/Brut/CLI/Apps/BuildAssets/JS.html +1 -1
  37. data/docs/api/Brut/CLI/Apps/BuildAssets.html +1 -1
  38. data/docs/api/Brut/CLI/Apps/DB/Create.html +1 -1
  39. data/docs/api/Brut/CLI/Apps/DB/Drop.html +1 -1
  40. data/docs/api/Brut/CLI/Apps/DB/Migrate.html +1 -1
  41. data/docs/api/Brut/CLI/Apps/DB/NewMigration.html +1 -1
  42. data/docs/api/Brut/CLI/Apps/DB/Rebuild.html +1 -1
  43. data/docs/api/Brut/CLI/Apps/DB/Seed.html +1 -1
  44. data/docs/api/Brut/CLI/Apps/DB/Status.html +1 -1
  45. data/docs/api/Brut/CLI/Apps/DB.html +1 -1
  46. data/docs/api/Brut/CLI/Apps/DeployBase/GitChecks.html +1 -1
  47. data/docs/api/Brut/CLI/Apps/DeployBase.html +1 -1
  48. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy/Deploy.html +1 -1
  49. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy.html +1 -1
  50. data/docs/api/Brut/CLI/Apps/Scaffold/Action/Route.html +1 -1
  51. data/docs/api/Brut/CLI/Apps/Scaffold/Action.html +1 -1
  52. data/docs/api/Brut/CLI/Apps/Scaffold/Component.html +1 -1
  53. data/docs/api/Brut/CLI/Apps/Scaffold/CustomElementTest.html +1 -1
  54. data/docs/api/Brut/CLI/Apps/Scaffold/DbModel.html +1 -1
  55. data/docs/api/Brut/CLI/Apps/Scaffold/E2ETest.html +1 -1
  56. data/docs/api/Brut/CLI/Apps/Scaffold/Form.html +1 -1
  57. data/docs/api/Brut/CLI/Apps/Scaffold/Page/Route.html +1 -1
  58. data/docs/api/Brut/CLI/Apps/Scaffold/Page.html +1 -1
  59. data/docs/api/Brut/CLI/Apps/Scaffold/RoutesEditor.html +1 -1
  60. data/docs/api/Brut/CLI/Apps/Scaffold/Test.html +1 -1
  61. data/docs/api/Brut/CLI/Apps/Scaffold.html +1 -1
  62. data/docs/api/Brut/CLI/Apps/Test/Audit.html +1 -1
  63. data/docs/api/Brut/CLI/Apps/Test/E2e.html +1 -1
  64. data/docs/api/Brut/CLI/Apps/Test/JS.html +1 -1
  65. data/docs/api/Brut/CLI/Apps/Test/Run.html +1 -1
  66. data/docs/api/Brut/CLI/Apps/Test.html +1 -1
  67. data/docs/api/Brut/CLI/Apps.html +1 -1
  68. data/docs/api/Brut/CLI/Command.html +1 -1
  69. data/docs/api/Brut/CLI/Error.html +1 -1
  70. data/docs/api/Brut/CLI/ExecutionResults/Result.html +1 -1
  71. data/docs/api/Brut/CLI/ExecutionResults.html +1 -1
  72. data/docs/api/Brut/CLI/Executor.html +1 -1
  73. data/docs/api/Brut/CLI/InvalidOption.html +1 -1
  74. data/docs/api/Brut/CLI/Options.html +1 -1
  75. data/docs/api/Brut/CLI/Output.html +1 -1
  76. data/docs/api/Brut/CLI/SystemExecError.html +1 -1
  77. data/docs/api/Brut/CLI.html +1 -1
  78. data/docs/api/Brut/FactoryBot.html +1 -1
  79. data/docs/api/Brut/Framework/App.html +1 -1
  80. data/docs/api/Brut/Framework/Config.html +1 -1
  81. data/docs/api/Brut/Framework/Container.html +1 -1
  82. data/docs/api/Brut/Framework/Error.html +1 -1
  83. data/docs/api/Brut/Framework/Errors/AbstractMethod.html +1 -1
  84. data/docs/api/Brut/Framework/Errors/Bug.html +1 -1
  85. data/docs/api/Brut/Framework/Errors/MissingConfiguration.html +1 -1
  86. data/docs/api/Brut/Framework/Errors/MissingParameter.html +1 -1
  87. data/docs/api/Brut/Framework/Errors/NoClassForPath.html +1 -1
  88. data/docs/api/Brut/Framework/Errors/NotFound.html +1 -1
  89. data/docs/api/Brut/Framework/Errors/NotImplemented.html +1 -1
  90. data/docs/api/Brut/Framework/Errors.html +1 -1
  91. data/docs/api/Brut/Framework/FussyTypeEnforcement.html +1 -1
  92. data/docs/api/Brut/Framework/MCP.html +1 -1
  93. data/docs/api/Brut/Framework/ProjectEnvironment.html +1 -1
  94. data/docs/api/Brut/Framework.html +1 -1
  95. data/docs/api/Brut/FrontEnd/AssetPathResolver.html +1 -1
  96. data/docs/api/Brut/FrontEnd/Component/Helpers.html +1 -1
  97. data/docs/api/Brut/FrontEnd/Component.html +1 -1
  98. data/docs/api/Brut/FrontEnd/Components/ConstraintViolations.html +48 -27
  99. data/docs/api/Brut/FrontEnd/Components/FormTag.html +1 -1
  100. data/docs/api/Brut/FrontEnd/Components/I18nTranslations.html +1 -1
  101. data/docs/api/Brut/FrontEnd/Components/Input.html +1 -1
  102. data/docs/api/Brut/FrontEnd/Components/Inputs/CsrfToken.html +1 -1
  103. data/docs/api/Brut/FrontEnd/Components/Inputs/InputTag.html +1 -1
  104. data/docs/api/Brut/FrontEnd/Components/Inputs/RadioButton.html +1 -1
  105. data/docs/api/Brut/FrontEnd/Components/Inputs/SelectTagWithOptions.html +1 -1
  106. data/docs/api/Brut/FrontEnd/Components/Inputs/TextareaTag.html +1 -1
  107. data/docs/api/Brut/FrontEnd/Components/Inputs.html +1 -1
  108. data/docs/api/Brut/FrontEnd/Components/LocaleDetection.html +1 -1
  109. data/docs/api/Brut/FrontEnd/Components/PageIdentifier.html +1 -1
  110. data/docs/api/Brut/FrontEnd/Components/TimeTag.html +1 -1
  111. data/docs/api/Brut/FrontEnd/Components/Traceparent.html +1 -1
  112. data/docs/api/Brut/FrontEnd/Components.html +1 -1
  113. data/docs/api/Brut/FrontEnd/CsrfProtector.html +1 -1
  114. data/docs/api/Brut/FrontEnd/Download.html +1 -1
  115. data/docs/api/Brut/FrontEnd/Flash.html +1 -1
  116. data/docs/api/Brut/FrontEnd/Form.html +1 -1
  117. data/docs/api/Brut/FrontEnd/Forms/ConstraintViolation.html +1 -1
  118. data/docs/api/Brut/FrontEnd/Forms/Input/Color.html +1 -1
  119. data/docs/api/Brut/FrontEnd/Forms/Input/TimeOfDay.html +1 -1
  120. data/docs/api/Brut/FrontEnd/Forms/Input.html +1 -1
  121. data/docs/api/Brut/FrontEnd/Forms/InputDeclarations.html +1 -1
  122. data/docs/api/Brut/FrontEnd/Forms/InputDefinition.html +1 -1
  123. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInput.html +1 -1
  124. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInputDefinition.html +1 -1
  125. data/docs/api/Brut/FrontEnd/Forms/SelectInput.html +1 -1
  126. data/docs/api/Brut/FrontEnd/Forms/SelectInputDefinition.html +1 -1
  127. data/docs/api/Brut/FrontEnd/Forms/ValidityState.html +1 -1
  128. data/docs/api/Brut/FrontEnd/Forms.html +1 -1
  129. data/docs/api/Brut/FrontEnd/GenericResponse.html +1 -1
  130. data/docs/api/Brut/FrontEnd/Handler.html +1 -1
  131. data/docs/api/Brut/FrontEnd/Handlers/CspReportingHandler.html +1 -1
  132. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler/TraceParent.html +1 -1
  133. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler.html +1 -1
  134. data/docs/api/Brut/FrontEnd/Handlers/LocaleDetectionHandler.html +1 -1
  135. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler/Form.html +1 -1
  136. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler.html +1 -1
  137. data/docs/api/Brut/FrontEnd/Handlers.html +1 -1
  138. data/docs/api/Brut/FrontEnd/HandlingResults.html +1 -1
  139. data/docs/api/Brut/FrontEnd/HttpMethod.html +1 -1
  140. data/docs/api/Brut/FrontEnd/HttpStatus.html +1 -1
  141. data/docs/api/Brut/FrontEnd/InlineSvgLocator.html +1 -1
  142. data/docs/api/Brut/FrontEnd/Layout.html +1 -1
  143. data/docs/api/Brut/FrontEnd/Middleware.html +1 -1
  144. data/docs/api/Brut/FrontEnd/Middlewares/AnnotateBrutOwnedPaths.html +1 -1
  145. data/docs/api/Brut/FrontEnd/Middlewares/Favicon.html +1 -1
  146. data/docs/api/Brut/FrontEnd/Middlewares/OpenTelemetrySpan.html +1 -1
  147. data/docs/api/Brut/FrontEnd/Middlewares/ReloadApp.html +1 -1
  148. data/docs/api/Brut/FrontEnd/Middlewares.html +1 -1
  149. data/docs/api/Brut/FrontEnd/Page.html +1 -1
  150. data/docs/api/Brut/FrontEnd/Pages/MissingPage.html +1 -1
  151. data/docs/api/Brut/FrontEnd/Pages.html +1 -1
  152. data/docs/api/Brut/FrontEnd/RequestContext.html +1 -1
  153. data/docs/api/Brut/FrontEnd/RouteHook.html +1 -1
  154. data/docs/api/Brut/FrontEnd/RouteHooks/AgeFlash.html +1 -1
  155. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineScripts.html +1 -1
  156. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts/ReportOnly.html +1 -1
  157. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts.html +1 -1
  158. data/docs/api/Brut/FrontEnd/RouteHooks/LocaleDetection.html +1 -1
  159. data/docs/api/Brut/FrontEnd/RouteHooks/SetupRequestContext.html +1 -1
  160. data/docs/api/Brut/FrontEnd/RouteHooks.html +1 -1
  161. data/docs/api/Brut/FrontEnd/Routing/FormHandlerRoute.html +1 -1
  162. data/docs/api/Brut/FrontEnd/Routing/FormRoute.html +1 -1
  163. data/docs/api/Brut/FrontEnd/Routing/MissingForm.html +1 -1
  164. data/docs/api/Brut/FrontEnd/Routing/MissingHandler.html +1 -1
  165. data/docs/api/Brut/FrontEnd/Routing/MissingPage.html +1 -1
  166. data/docs/api/Brut/FrontEnd/Routing/MissingPath.html +1 -1
  167. data/docs/api/Brut/FrontEnd/Routing/PageRoute.html +1 -1
  168. data/docs/api/Brut/FrontEnd/Routing/Route.html +1 -1
  169. data/docs/api/Brut/FrontEnd/Routing.html +1 -1
  170. data/docs/api/Brut/FrontEnd/Session.html +1 -1
  171. data/docs/api/Brut/FrontEnd.html +1 -1
  172. data/docs/api/Brut/I18n/BaseMethods.html +1 -1
  173. data/docs/api/Brut/I18n/ForBackEnd.html +1 -1
  174. data/docs/api/Brut/I18n/ForCLI.html +1 -1
  175. data/docs/api/Brut/I18n/ForHTML.html +1 -1
  176. data/docs/api/Brut/I18n/HTTPAcceptLanguage/AlwaysEnglish.html +1 -1
  177. data/docs/api/Brut/I18n/HTTPAcceptLanguage.html +1 -1
  178. data/docs/api/Brut/I18n.html +1 -1
  179. data/docs/api/Brut/Instrumentation/LoggerSpanExporter.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/02-confirmation-dialog-browser-element-styled.3NEGM20-.png +0 -0
  234. data/docs/assets/02-confirmation-dialog-browser-element.DPsf0xUW.png +0 -0
  235. data/docs/assets/02-confirmation-dialog-browser.DH8ALFO4.png +0 -0
  236. data/docs/assets/02-confirmation-flow.D9gZ0S5U.png +0 -0
  237. data/docs/assets/{app.vjGWMSnJ.js → app.0-aKXKdt.js} +1 -1
  238. data/docs/assets/chunks/@localSearchIndexroot.DPhqaz1b.js +1 -0
  239. data/docs/assets/chunks/{VPLocalSearchBox.C-ymMW2k.js → VPLocalSearchBox.CW-UBkNA.js} +1 -1
  240. data/docs/assets/chunks/{theme.pJUosGlI.js → theme.a6feKWJO.js} +2 -2
  241. data/docs/assets/{components.md.B543a3Lm.js → components.md.BzVRwegp.js} +3 -3
  242. data/docs/assets/{configuration.md.-foE_iVv.js → configuration.md.eM5wFVi5.js} +1 -1
  243. data/docs/assets/{form-constraints.md.DK5adCgM.js → form-constraints.md.KTv5cdR4.js} +6 -6
  244. data/docs/assets/{forms.md.D5-2rgHh.js → forms.md.B3BHvCV3.js} +1 -1
  245. data/docs/assets/{getting-started.md.Cd4XSZb_.js → getting-started.md.BgR0ZHsl.js} +6 -3
  246. data/docs/assets/{getting-started.md.Cd4XSZb_.lean.js → getting-started.md.BgR0ZHsl.lean.js} +1 -1
  247. data/docs/assets/recipes_form-errors.md.Bv5RCKqH.js +66 -0
  248. data/docs/assets/recipes_form-errors.md.Bv5RCKqH.lean.js +1 -0
  249. data/docs/assets/tutorial.md.BM40jnoq.js +27 -0
  250. data/docs/assets/tutorial.md.BM40jnoq.lean.js +1 -0
  251. data/docs/assets/{tutorial.md.C4zR5XPG.js → tutorials_01-intro.md.BXvYWcO9.js} +5 -25
  252. data/docs/assets/tutorials_01-intro.md.BXvYWcO9.lean.js +1 -0
  253. data/docs/assets/tutorials_02-dialog.md.CIeg8R--.js +274 -0
  254. data/docs/assets/tutorials_02-dialog.md.CIeg8R--.lean.js +1 -0
  255. data/docs/assets.html +4 -4
  256. data/docs/brut-js/api/AjaxSubmit.html +1 -1
  257. data/docs/brut-js/api/AjaxSubmit.js.html +1 -1
  258. data/docs/brut-js/api/Autosubmit.html +1 -1
  259. data/docs/brut-js/api/Autosubmit.js.html +1 -1
  260. data/docs/brut-js/api/BaseCustomElement.html +1 -1
  261. data/docs/brut-js/api/BaseCustomElement.js.html +1 -1
  262. data/docs/brut-js/api/BrutCustomElements.html +1 -1
  263. data/docs/brut-js/api/BufferedLogger.html +1 -1
  264. data/docs/brut-js/api/ConfirmSubmit.html +1 -1
  265. data/docs/brut-js/api/ConfirmSubmit.js.html +1 -1
  266. data/docs/brut-js/api/ConfirmationDialog.html +1 -1
  267. data/docs/brut-js/api/ConfirmationDialog.js.html +1 -1
  268. data/docs/brut-js/api/ConstraintViolationMessage.html +55 -5
  269. data/docs/brut-js/api/ConstraintViolationMessage.js.html +18 -3
  270. data/docs/brut-js/api/ConstraintViolationMessages.html +1 -1
  271. data/docs/brut-js/api/ConstraintViolationMessages.js.html +1 -1
  272. data/docs/brut-js/api/CopyToClipboard.html +1 -1
  273. data/docs/brut-js/api/CopyToClipboard.js.html +1 -1
  274. data/docs/brut-js/api/Form.html +7 -10
  275. data/docs/brut-js/api/Form.js.html +20 -24
  276. data/docs/brut-js/api/I18nTranslation.html +1 -1
  277. data/docs/brut-js/api/I18nTranslation.js.html +1 -1
  278. data/docs/brut-js/api/LocaleDetection.html +1 -1
  279. data/docs/brut-js/api/LocaleDetection.js.html +1 -1
  280. data/docs/brut-js/api/Logger.html +1 -1
  281. data/docs/brut-js/api/Logger.js.html +1 -1
  282. data/docs/brut-js/api/Message.html +1 -1
  283. data/docs/brut-js/api/Message.js.html +1 -1
  284. data/docs/brut-js/api/PrefixedLogger.html +1 -1
  285. data/docs/brut-js/api/RichString.html +1 -1
  286. data/docs/brut-js/api/RichString.js.html +1 -1
  287. data/docs/brut-js/api/Tabs.html +1 -1
  288. data/docs/brut-js/api/Tabs.js.html +1 -1
  289. data/docs/brut-js/api/Tracing.html +1 -1
  290. data/docs/brut-js/api/Tracing.js.html +1 -1
  291. data/docs/brut-js/api/external-CustomElementRegistry.html +1 -1
  292. data/docs/brut-js/api/external-Performance.html +1 -1
  293. data/docs/brut-js/api/external-Promise.html +1 -1
  294. data/docs/brut-js/api/external-ValidityState.html +1 -1
  295. data/docs/brut-js/api/external-Window.html +1 -1
  296. data/docs/brut-js/api/external-fetch.html +1 -1
  297. data/docs/brut-js/api/global.html +1 -1
  298. data/docs/brut-js/api/index.html +1 -1
  299. data/docs/brut-js/api/index.js.html +1 -1
  300. data/docs/brut-js/api/module-testing.html +1 -1
  301. data/docs/brut-js/api/testing.AssetMetadata.html +1 -1
  302. data/docs/brut-js/api/testing.AssetMetadataLoader.html +1 -1
  303. data/docs/brut-js/api/testing.CustomElementTest.html +1 -1
  304. data/docs/brut-js/api/testing.DOMCreator.html +1 -1
  305. data/docs/brut-js/api/testing_AssetMetadata.js.html +1 -1
  306. data/docs/brut-js/api/testing_AssetMetadataLoader.js.html +1 -1
  307. data/docs/brut-js/api/testing_CustomElementTest.js.html +1 -1
  308. data/docs/brut-js/api/testing_DOMCreator.js.html +1 -1
  309. data/docs/brut-js/api/testing_index.js.html +1 -1
  310. data/docs/brut-js.html +4 -4
  311. data/docs/business-logic.html +4 -4
  312. data/docs/cli.html +4 -4
  313. data/docs/components.html +8 -8
  314. data/docs/configuration.html +5 -5
  315. data/docs/css.html +4 -4
  316. data/docs/custom-element-tests.html +4 -4
  317. data/docs/database-access.html +4 -4
  318. data/docs/database-schema.html +4 -4
  319. data/docs/deployment.html +4 -4
  320. data/docs/dev-environment.html +4 -4
  321. data/docs/dir-structure.html +4 -4
  322. data/docs/doc-conventions.html +4 -4
  323. data/docs/end-to-end-tests.html +4 -4
  324. data/docs/features.html +4 -4
  325. data/docs/flash-and-session.html +4 -4
  326. data/docs/form-constraints.html +11 -11
  327. data/docs/forms.html +6 -6
  328. data/docs/getting-started.html +10 -7
  329. data/docs/handlers.html +4 -4
  330. data/docs/hashmap.json +1 -1
  331. data/docs/hooks.html +4 -4
  332. data/docs/i18n.html +4 -4
  333. data/docs/index.html +3 -3
  334. data/docs/instrumentation.html +4 -4
  335. data/docs/javascript.html +4 -4
  336. data/docs/jobs.html +4 -4
  337. data/docs/keyword-injection.html +4 -4
  338. data/docs/layouts.html +4 -4
  339. data/docs/lsp.html +4 -4
  340. data/docs/markdown-examples.html +4 -4
  341. data/docs/middleware.html +4 -4
  342. data/docs/overview.html +4 -4
  343. data/docs/pages.html +4 -4
  344. data/docs/recipes/alternate-layouts.html +4 -4
  345. data/docs/recipes/authentication.html +5 -5
  346. data/docs/recipes/blank-layouts.html +4 -4
  347. data/docs/recipes/custom-flash.html +4 -4
  348. data/docs/recipes/form-errors.html +94 -0
  349. data/docs/recipes/indexed-forms.html +4 -4
  350. data/docs/recipes/migrations.html +5 -5
  351. data/docs/recipes/text-field-component.html +4 -4
  352. data/docs/roadmap.html +4 -4
  353. data/docs/routes.html +4 -4
  354. data/docs/security.html +4 -4
  355. data/docs/seed-data.html +4 -4
  356. data/docs/space-time-continuum.html +4 -4
  357. data/docs/tutorial.html +12 -713
  358. data/docs/tutorials/01-intro.html +736 -0
  359. data/docs/tutorials/02-dialog.html +302 -0
  360. data/docs/unit-tests.html +4 -4
  361. data/docs/why.html +4 -4
  362. data/lib/brut/instrumentation/methods.rb +153 -0
  363. data/lib/brut/instrumentation/open_telemetry.rb +1 -0
  364. data/lib/brut/instrumentation.rb +1 -0
  365. data/lib/brut/version.rb +1 -1
  366. data/mkbrut/Gemfile.lock +1 -1
  367. data/mkbrut/bin/publish +1 -1
  368. data/mkbrut/lib/mkbrut/version.rb +1 -1
  369. data/specs/brut/instrumentation/methods.spec.rb +399 -0
  370. metadata +39 -17
  371. data/docs/assets/chunks/@localSearchIndexroot.Dn1xGMv_.js +0 -1
  372. data/docs/assets/tutorial.md.C4zR5XPG.lean.js +0 -1
  373. /data/docs/assets/{components.md.B543a3Lm.lean.js → components.md.BzVRwegp.lean.js} +0 -0
  374. /data/docs/assets/{configuration.md.-foE_iVv.lean.js → configuration.md.eM5wFVi5.lean.js} +0 -0
  375. /data/docs/assets/{form-constraints.md.DK5adCgM.lean.js → form-constraints.md.KTv5cdR4.lean.js} +0 -0
  376. /data/docs/assets/{forms.md.D5-2rgHh.lean.js → forms.md.B3BHvCV3.lean.js} +0 -0
@@ -138,7 +138,7 @@ export default CopyToClipboard
138
138
  <br class="clear">
139
139
 
140
140
  <footer>
141
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
141
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
142
142
  </footer>
143
143
 
144
144
  <script> prettyPrint(); </script>
@@ -44,10 +44,7 @@ want to show these errors when a submit has been attempted, this element will
44
44
  set <code>submitted-invalid</code> on itself when that happens, thus allowing you to target invalid
45
45
  fields only after a submission attempt.</li>
46
46
  <li>You may wish to control the messaging of client-side constraint violations
47
- beyond what the browser gives you. Assuming your <code>INPUT</code> tags are inside a container
48
- like <code>LABEL</code>, a <code>brut-cv</code> tag found in that container
49
- (i.e. a sibling of your <code>INPUT</code>) will be modified to contain error messages specific
50
- to the <a href="external-ValidityState.html"><code>external:ValidityState</code></a> of the control.</li>
47
+ beyond what the browser gives you. Assuming you have generated a <code>&lt;brut-cv-messages input-name=&quot;«input name»&quot;&gt;&lt;/brut-cv-messasges&gt;</code>, it will be populated with <code>&lt;brut-cv&gt;</code> elements for each client-side constraint violation, based on the <a href="external-ValidityState.html"><code>external:ValidityState</code></a> of the control.</li>
51
48
  </ul></div>
52
49
 
53
50
 
@@ -163,7 +160,7 @@ to the <a href="external-ValidityState.html"><code>external:ValidityState</code>
163
160
 
164
161
  <dt class="tag-source">Source:</dt>
165
162
  <dd class="tag-source"><ul class="dummy"><li>
166
- <a href="Form.js.html">Form.js</a>, <a href="Form.js.html#line67">line 67</a>
163
+ <a href="Form.js.html">Form.js</a>, <a href="Form.js.html#line64">line 64</a>
167
164
  </li></ul></dd>
168
165
 
169
166
 
@@ -215,12 +212,12 @@ when constraint violations have cleared.event:</li>
215
212
  &lt;form ...>
216
213
  &lt;label>
217
214
  &lt;input type="text" required name="username">
218
- &lt;brut-cv-messages>
215
+ &lt;brut-cv-messages input-name="username">
219
216
  &lt;/brut-cv-messages>
220
217
  &lt;/label>
221
218
  &lt;div> &lt;!-- container need not be a label -->
222
219
  &lt;input type="text" required minlength="4" name="alias">
223
- &lt;brut-cv-messages>
220
+ &lt;brut-cv-messages input-name="alias">
224
221
  &lt;/brut-cv-messages>
225
222
  &lt;/div>
226
223
  &lt;button>Submit&lt;/button>
@@ -231,13 +228,13 @@ when constraint violations have cleared.event:</li>
231
228
  &lt;form ...>
232
229
  &lt;label>
233
230
  &lt;input type="text" required name="username">
234
- &lt;brut-cv-messages>
231
+ &lt;brut-cv-messages input-name="username">
235
232
  &lt;brut-cv>This field is required&lt;/brut-cv>
236
233
  &lt;/brut-cv-messages>
237
234
  &lt;/label>
238
235
  &lt;div> &lt;!-- container need not be a label -->
239
236
  &lt;input type="text" required minlength="4" name="alias">
240
- &lt;brut-cv-messages>
237
+ &lt;brut-cv-messages input-name="alias">
241
238
  &lt;brut-cv>This field is required&lt;/brut-cv>
242
239
  &lt;/brut-cv-messages>
243
240
  &lt;/div>
@@ -285,7 +282,7 @@ when constraint violations have cleared.event:</li>
285
282
  <br class="clear">
286
283
 
287
284
  <footer>
288
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
285
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
289
286
  </footer>
290
287
 
291
288
  <script> prettyPrint(); </script>
@@ -43,10 +43,7 @@ import ConstraintViolationMessages from "./ConstraintViolationMessages"
43
43
  * set `submitted-invalid` on itself when that happens, thus allowing you to target invalid
44
44
  * fields only after a submission attempt.
45
45
  * * You may wish to control the messaging of client-side constraint violations
46
- * beyond what the browser gives you. Assuming your `INPUT` tags are inside a container
47
- * like `LABEL`, a `brut-cv` tag found in that container
48
- * (i.e. a sibling of your `INPUT`) will be modified to contain error messages specific
49
- * to the {@link external:ValidityState} of the control.
46
+ * beyond what the browser gives you. Assuming you have generated a `&lt;brut-cv-messages input-name="«input name»">&lt;/brut-cv-messasges>`, it will be populated with `&lt;brut-cv>` elements for each client-side constraint violation, based on the {@link external:ValidityState} of the control.
50
47
  *
51
48
  * @fires brut:invalid Fired when any element is found to be invalid
52
49
  * @fires brut:valid Fired when no element is found to be invalid. This should be reliable to know
@@ -57,12 +54,12 @@ import ConstraintViolationMessages from "./ConstraintViolationMessages"
57
54
  * &lt;form ...>
58
55
  * &lt;label>
59
56
  * &lt;input type="text" required name="username">
60
- * &lt;brut-cv-messages>
57
+ * &lt;brut-cv-messages input-name="username">
61
58
  * &lt;/brut-cv-messages>
62
59
  * &lt;/label>
63
60
  * &lt;div> &lt;!-- container need not be a label -->
64
61
  * &lt;input type="text" required minlength="4" name="alias">
65
- * &lt;brut-cv-messages>
62
+ * &lt;brut-cv-messages input-name="alias">
66
63
  * &lt;/brut-cv-messages>
67
64
  * &lt;/div>
68
65
  * &lt;button>Submit&lt;/button>
@@ -73,13 +70,13 @@ import ConstraintViolationMessages from "./ConstraintViolationMessages"
73
70
  * &lt;form ...>
74
71
  * &lt;label>
75
72
  * &lt;input type="text" required name="username">
76
- * &lt;brut-cv-messages>
73
+ * &lt;brut-cv-messages input-name="username">
77
74
  * &lt;brut-cv>This field is required&lt;/brut-cv>
78
75
  * &lt;/brut-cv-messages>
79
76
  * &lt;/label>
80
77
  * &lt;div> &lt;!-- container need not be a label -->
81
78
  * &lt;input type="text" required minlength="4" name="alias">
82
- * &lt;brut-cv-messages>
79
+ * &lt;brut-cv-messages input-name="alias">
83
80
  * &lt;brut-cv>This field is required&lt;/brut-cv>
84
81
  * &lt;/brut-cv-messages>
85
82
  * &lt;/div>
@@ -135,28 +132,27 @@ class Form extends BaseCustomElement {
135
132
 
136
133
  #updateErrorMessages(event) {
137
134
  const element = event.target
138
- const selector = ConstraintViolationMessages.tagName
139
- let errorLabels = element.parentNode.querySelectorAll(selector)
140
- if (errorLabels.length == 0) {
141
- if (element.name &amp;&amp; element.form) {
142
- const moreGeneralSelector = `${ConstraintViolationMessages.tagName}[input-name='${element.name}']`
143
- errorLabels = element.form.querySelectorAll(moreGeneralSelector)
144
- if (errorLabels.length == 0) {
145
- this.logger.warn(`Did not find any elements matching ${selector} or ${moreGeneralSelector}, so no error messages will be shown`)
146
- }
135
+ let constraintViolationMessages = []
136
+ if (element.name &amp;&amp; element.form) {
137
+ const selector = `${ConstraintViolationMessages.tagName}[input-name='${element.name}']`
138
+ constraintViolationMessages = element.form.querySelectorAll(selector)
139
+ if (constraintViolationMessages.length == 0) {
140
+ this.logger.warn(`Did not find any elements matching ${selector}, so no error messages will be shown`)
141
+ }
142
+ }
143
+ else {
144
+ if (element.name) {
145
+ this.logger.warn("Element has a name (%s), but is not associated with any form.", element.name)
147
146
  }
148
147
  else {
149
- this.logger.warn("Did not find any elements matching %s and the form element has %s %s",
150
- selector,
151
- element.name ? "no name" : "a name, but",
152
- element.form ? "no form" : "though has a form")
148
+ this.logger.warn("Element has a form, but has no name, which means we cannot locate %s by input-name", ConstraintViolationMessages.tagName)
153
149
  }
154
150
  }
155
- if (errorLabels.length == 0) {
151
+ if (constraintViolationMessages.length == 0) {
156
152
  return
157
153
  }
158
154
  let anyErrors = false
159
- errorLabels.forEach( (errorLabel) => {
155
+ constraintViolationMessages.forEach( (errorLabel) => {
160
156
  if (element.validity.valid) {
161
157
  errorLabel.clearClientSideMessages()
162
158
  }
@@ -193,7 +189,7 @@ export default Form
193
189
  <br class="clear">
194
190
 
195
191
  <footer>
196
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
192
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
197
193
  </footer>
198
194
 
199
195
  <script> prettyPrint(); </script>
@@ -400,7 +400,7 @@ if (element) {
400
400
  <br class="clear">
401
401
 
402
402
  <footer>
403
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
403
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
404
404
  </footer>
405
405
 
406
406
  <script> prettyPrint(); </script>
@@ -103,7 +103,7 @@ export default I18nTranslation
103
103
  <br class="clear">
104
104
 
105
105
  <footer>
106
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
106
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
107
107
  </footer>
108
108
 
109
109
  <script> prettyPrint(); </script>
@@ -303,7 +303,7 @@ set. Further note that this will only contact the server once per page load, un
303
303
  <br class="clear">
304
304
 
305
305
  <footer>
306
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
306
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
307
307
  </footer>
308
308
 
309
309
  <script> prettyPrint(); </script>
@@ -159,7 +159,7 @@ export default LocaleDetection
159
159
  <br class="clear">
160
160
 
161
161
  <footer>
162
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
162
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
163
163
  </footer>
164
164
 
165
165
  <script> prettyPrint(); </script>
@@ -693,7 +693,7 @@ in the console to help debug.</p></div>
693
693
  <br class="clear">
694
694
 
695
695
  <footer>
696
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
696
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
697
697
  </footer>
698
698
 
699
699
  <script> prettyPrint(); </script>
@@ -132,7 +132,7 @@ export default Logger
132
132
  <br class="clear">
133
133
 
134
134
  <footer>
135
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
135
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
136
136
  </footer>
137
137
 
138
138
  <script> prettyPrint(); </script>
@@ -229,7 +229,7 @@ the element will not render any text.</p></td>
229
229
  <br class="clear">
230
230
 
231
231
  <footer>
232
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
232
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
233
233
  </footer>
234
234
 
235
235
  <script> prettyPrint(); </script>
@@ -98,7 +98,7 @@ export default Message
98
98
  <br class="clear">
99
99
 
100
100
  <footer>
101
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
101
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
102
102
  </footer>
103
103
 
104
104
  <script> prettyPrint(); </script>
@@ -360,7 +360,7 @@ messages output.</p></td>
360
360
  <br class="clear">
361
361
 
362
362
  <footer>
363
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
363
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
364
364
  </footer>
365
365
 
366
366
  <script> prettyPrint(); </script>
@@ -1040,7 +1040,7 @@ as well as handle <code>null</code>.</p>
1040
1040
  <br class="clear">
1041
1041
 
1042
1042
  <footer>
1043
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
1043
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
1044
1044
  </footer>
1045
1045
 
1046
1046
  <script> prettyPrint(); </script>
@@ -155,7 +155,7 @@ export default RichString
155
155
  <br class="clear">
156
156
 
157
157
  <footer>
158
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
158
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
159
159
  </footer>
160
160
 
161
161
  <script> prettyPrint(); </script>
@@ -286,7 +286,7 @@ style UI.</p></td>
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 Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
289
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
290
290
  </footer>
291
291
 
292
292
  <script> prettyPrint(); </script>
@@ -210,7 +210,7 @@ export default Tabs
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 Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
213
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
214
214
  </footer>
215
215
 
216
216
  <script> prettyPrint(); </script>
@@ -268,7 +268,7 @@ Of course, this element is many magnitudes smaller in size than Open Telemetry's
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 Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
271
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
272
272
  </footer>
273
273
 
274
274
  <script> prettyPrint(); </script>
@@ -289,7 +289,7 @@ export default Tracing
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 Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
292
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
293
293
  </footer>
294
294
 
295
295
  <script> prettyPrint(); </script>
@@ -131,7 +131,7 @@
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 Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
134
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
135
135
  </footer>
136
136
 
137
137
  <script> prettyPrint(); </script>
@@ -129,7 +129,7 @@
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 Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
132
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
133
133
  </footer>
134
134
 
135
135
  <script> prettyPrint(); </script>
@@ -129,7 +129,7 @@
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 Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
132
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
133
133
  </footer>
134
134
 
135
135
  <script> prettyPrint(); </script>
@@ -129,7 +129,7 @@
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 Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
132
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
133
133
  </footer>
134
134
 
135
135
  <script> prettyPrint(); </script>
@@ -224,7 +224,7 @@
224
224
  <br class="clear">
225
225
 
226
226
  <footer>
227
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
227
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
228
228
  </footer>
229
229
 
230
230
  <script> prettyPrint(); </script>
@@ -129,7 +129,7 @@
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 Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
132
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
133
133
  </footer>
134
134
 
135
135
  <script> prettyPrint(); </script>
@@ -391,7 +391,7 @@ called and can be useful to assert the contents of what was requested via <code>
391
391
  <br class="clear">
392
392
 
393
393
  <footer>
394
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
394
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
395
395
  </footer>
396
396
 
397
397
  <script> prettyPrint(); </script>
@@ -159,7 +159,7 @@ task.</p></article>
159
159
  <br class="clear">
160
160
 
161
161
  <footer>
162
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
162
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
163
163
  </footer>
164
164
 
165
165
  <script> prettyPrint(); </script>
@@ -172,7 +172,7 @@ export {
172
172
  <br class="clear">
173
173
 
174
174
  <footer>
175
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
175
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
176
176
  </footer>
177
177
 
178
178
  <script> prettyPrint(); </script>
@@ -374,7 +374,7 @@ files are placed for serving.</p></td>
374
374
  <br class="clear">
375
375
 
376
376
  <footer>
377
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
377
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
378
378
  </footer>
379
379
 
380
380
  <script> prettyPrint(); </script>
@@ -163,7 +163,7 @@ to be defined in JSDOM the same way they are in a real browser.</p></div>
163
163
  <br class="clear">
164
164
 
165
165
  <footer>
166
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
166
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
167
167
  </footer>
168
168
 
169
169
  <script> prettyPrint(); </script>
@@ -162,7 +162,7 @@
162
162
  <br class="clear">
163
163
 
164
164
  <footer>
165
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
165
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
166
166
  </footer>
167
167
 
168
168
  <script> prettyPrint(); </script>
@@ -670,7 +670,7 @@ text.</li>
670
670
  <br class="clear">
671
671
 
672
672
  <footer>
673
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
673
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
674
674
  </footer>
675
675
 
676
676
  <script> prettyPrint(); </script>
@@ -162,7 +162,7 @@
162
162
  <br class="clear">
163
163
 
164
164
  <footer>
165
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
165
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
166
166
  </footer>
167
167
 
168
168
  <script> prettyPrint(); </script>
@@ -77,7 +77,7 @@ export default AssetMetadata
77
77
  <br class="clear">
78
78
 
79
79
  <footer>
80
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
80
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
81
81
  </footer>
82
82
 
83
83
  <script> prettyPrint(); </script>
@@ -67,7 +67,7 @@ export default AssetMetadataLoader
67
67
  <br class="clear">
68
68
 
69
69
  <footer>
70
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
70
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
71
71
  </footer>
72
72
 
73
73
  <script> prettyPrint(); </script>
@@ -277,7 +277,7 @@ export default CustomElementTest
277
277
  <br class="clear">
278
278
 
279
279
  <footer>
280
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
280
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
281
281
  </footer>
282
282
 
283
283
  <script> prettyPrint(); </script>
@@ -87,7 +87,7 @@ export default DOMCreator
87
87
  <br class="clear">
88
88
 
89
89
  <footer>
90
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
90
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
91
91
  </footer>
92
92
 
93
93
  <script> prettyPrint(); </script>
@@ -90,7 +90,7 @@ export {
90
90
  <br class="clear">
91
91
 
92
92
  <footer>
93
- Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 19:48:41 GMT+0000 (Coordinated Universal Time)
93
+ Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Fri Aug 15 2025 22:12:02 GMT+0000 (Coordinated Universal Time)
94
94
  </footer>
95
95
 
96
96
  <script> prettyPrint(); </script>