brut 0.9.0 → 0.9.2

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 (373) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -1
  3. data/CHANGELOG.md +10 -0
  4. data/Gemfile.lock +75 -69
  5. data/bin/new-version +8 -0
  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/brut-js/specs/ConfirmSubmit.spec.js +32 -1
  11. data/brut-js/src/ConfirmSubmit.js +28 -7
  12. data/brutrb.com/images/tutorial/basic-form-with-violations.png +0 -0
  13. data/brutrb.com/images/tutorial/basic-form.png +0 -0
  14. data/brutrb.com/images/tutorial/initial-home-page.png +0 -0
  15. data/brutrb.com/images/tutorial/new-post-editor.png +0 -0
  16. data/brutrb.com/images/tutorial/new-post-home-page.png +0 -0
  17. data/brutrb.com/images/tutorial/styled-form-with-server-side-violations.png +0 -0
  18. data/brutrb.com/images/tutorial/styled-form-with-violations.png +0 -0
  19. data/brutrb.com/images/tutorial/styled-home-page-with-posts.png +0 -0
  20. data/brutrb.com/images/tutorial/styled-home-page.png +0 -0
  21. data/brutrb.com/images/tutorial/welcome-to-brut.png +0 -0
  22. data/brutrb.com/tutorial.md +1728 -3
  23. data/docs/404.html +2 -2
  24. data/docs/adrs.html +3 -3
  25. data/docs/ai.html +3 -3
  26. data/docs/api/Brut/BackEnd/SeedData.html +1 -1
  27. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server/FlushSpans.html +1 -1
  28. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server.html +1 -1
  29. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares.html +1 -1
  30. data/docs/api/Brut/BackEnd/Sidekiq.html +1 -1
  31. data/docs/api/Brut/BackEnd/Validators/FormValidator.html +1 -1
  32. data/docs/api/Brut/BackEnd/Validators.html +1 -1
  33. data/docs/api/Brut/BackEnd.html +1 -1
  34. data/docs/api/Brut/CLI/App.html +1 -1
  35. data/docs/api/Brut/CLI/AppRunner.html +1 -1
  36. data/docs/api/Brut/CLI/Apps/BuildAssets/All.html +1 -1
  37. data/docs/api/Brut/CLI/Apps/BuildAssets/CSS.html +1 -1
  38. data/docs/api/Brut/CLI/Apps/BuildAssets/Images.html +1 -1
  39. data/docs/api/Brut/CLI/Apps/BuildAssets/JS.html +1 -1
  40. data/docs/api/Brut/CLI/Apps/BuildAssets.html +1 -1
  41. data/docs/api/Brut/CLI/Apps/DB/Create.html +1 -1
  42. data/docs/api/Brut/CLI/Apps/DB/Drop.html +1 -1
  43. data/docs/api/Brut/CLI/Apps/DB/Migrate.html +1 -1
  44. data/docs/api/Brut/CLI/Apps/DB/NewMigration.html +1 -1
  45. data/docs/api/Brut/CLI/Apps/DB/Rebuild.html +1 -1
  46. data/docs/api/Brut/CLI/Apps/DB/Seed.html +1 -1
  47. data/docs/api/Brut/CLI/Apps/DB/Status.html +1 -1
  48. data/docs/api/Brut/CLI/Apps/DB.html +1 -1
  49. data/docs/api/Brut/CLI/Apps/DeployBase/GitChecks.html +1 -1
  50. data/docs/api/Brut/CLI/Apps/DeployBase.html +1 -1
  51. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy/Deploy.html +1 -1
  52. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy.html +1 -1
  53. data/docs/api/Brut/CLI/Apps/Scaffold/Action/Route.html +1 -1
  54. data/docs/api/Brut/CLI/Apps/Scaffold/Action.html +1 -1
  55. data/docs/api/Brut/CLI/Apps/Scaffold/Component.html +1 -1
  56. data/docs/api/Brut/CLI/Apps/Scaffold/CustomElementTest.html +1 -1
  57. data/docs/api/Brut/CLI/Apps/Scaffold/DbModel.html +1 -1
  58. data/docs/api/Brut/CLI/Apps/Scaffold/E2ETest.html +1 -1
  59. data/docs/api/Brut/CLI/Apps/Scaffold/Form.html +1 -1
  60. data/docs/api/Brut/CLI/Apps/Scaffold/Page/Route.html +1 -1
  61. data/docs/api/Brut/CLI/Apps/Scaffold/Page.html +1 -1
  62. data/docs/api/Brut/CLI/Apps/Scaffold/RoutesEditor.html +1 -1
  63. data/docs/api/Brut/CLI/Apps/Scaffold/Test.html +1 -1
  64. data/docs/api/Brut/CLI/Apps/Scaffold.html +1 -1
  65. data/docs/api/Brut/CLI/Apps/Test/Audit.html +1 -1
  66. data/docs/api/Brut/CLI/Apps/Test/E2e.html +1 -1
  67. data/docs/api/Brut/CLI/Apps/Test/JS.html +1 -1
  68. data/docs/api/Brut/CLI/Apps/Test/Run.html +1 -1
  69. data/docs/api/Brut/CLI/Apps/Test.html +1 -1
  70. data/docs/api/Brut/CLI/Apps.html +1 -1
  71. data/docs/api/Brut/CLI/Command.html +1 -1
  72. data/docs/api/Brut/CLI/Error.html +1 -1
  73. data/docs/api/Brut/CLI/ExecutionResults/Result.html +1 -1
  74. data/docs/api/Brut/CLI/ExecutionResults.html +1 -1
  75. data/docs/api/Brut/CLI/Executor.html +1 -1
  76. data/docs/api/Brut/CLI/InvalidOption.html +1 -1
  77. data/docs/api/Brut/CLI/Options.html +1 -1
  78. data/docs/api/Brut/CLI/Output.html +1 -1
  79. data/docs/api/Brut/CLI/SystemExecError.html +1 -1
  80. data/docs/api/Brut/CLI.html +1 -1
  81. data/docs/api/Brut/FactoryBot.html +1 -1
  82. data/docs/api/Brut/Framework/App.html +1 -1
  83. data/docs/api/Brut/Framework/Config.html +11 -21
  84. data/docs/api/Brut/Framework/Container.html +1 -1
  85. data/docs/api/Brut/Framework/Error.html +1 -1
  86. data/docs/api/Brut/Framework/Errors/AbstractMethod.html +1 -1
  87. data/docs/api/Brut/Framework/Errors/Bug.html +1 -1
  88. data/docs/api/Brut/Framework/Errors/MissingConfiguration.html +1 -1
  89. data/docs/api/Brut/Framework/Errors/MissingParameter.html +1 -1
  90. data/docs/api/Brut/Framework/Errors/NoClassForPath.html +1 -1
  91. data/docs/api/Brut/Framework/Errors/NotFound.html +1 -1
  92. data/docs/api/Brut/Framework/Errors/NotImplemented.html +1 -1
  93. data/docs/api/Brut/Framework/Errors.html +1 -1
  94. data/docs/api/Brut/Framework/FussyTypeEnforcement.html +1 -1
  95. data/docs/api/Brut/Framework/MCP.html +1 -1
  96. data/docs/api/Brut/Framework/ProjectEnvironment.html +1 -1
  97. data/docs/api/Brut/Framework.html +1 -1
  98. data/docs/api/Brut/FrontEnd/AssetPathResolver.html +1 -1
  99. data/docs/api/Brut/FrontEnd/Component/Helpers.html +1 -1
  100. data/docs/api/Brut/FrontEnd/Component.html +1 -1
  101. data/docs/api/Brut/FrontEnd/Components/ConstraintViolations.html +1 -1
  102. data/docs/api/Brut/FrontEnd/Components/FormTag.html +1 -1
  103. data/docs/api/Brut/FrontEnd/Components/I18nTranslations.html +1 -1
  104. data/docs/api/Brut/FrontEnd/Components/Input.html +1 -1
  105. data/docs/api/Brut/FrontEnd/Components/Inputs/CsrfToken.html +1 -1
  106. data/docs/api/Brut/FrontEnd/Components/Inputs/InputTag.html +1 -1
  107. data/docs/api/Brut/FrontEnd/Components/Inputs/RadioButton.html +1 -1
  108. data/docs/api/Brut/FrontEnd/Components/Inputs/SelectTagWithOptions.html +1 -1
  109. data/docs/api/Brut/FrontEnd/Components/Inputs/TextareaTag.html +1 -1
  110. data/docs/api/Brut/FrontEnd/Components/Inputs.html +1 -1
  111. data/docs/api/Brut/FrontEnd/Components/LocaleDetection.html +1 -1
  112. data/docs/api/Brut/FrontEnd/Components/PageIdentifier.html +1 -1
  113. data/docs/api/Brut/FrontEnd/Components/TimeTag.html +1 -1
  114. data/docs/api/Brut/FrontEnd/Components/Traceparent.html +1 -1
  115. data/docs/api/Brut/FrontEnd/Components.html +1 -1
  116. data/docs/api/Brut/FrontEnd/CsrfProtector.html +1 -1
  117. data/docs/api/Brut/FrontEnd/Download.html +1 -1
  118. data/docs/api/Brut/FrontEnd/Flash.html +1 -1
  119. data/docs/api/Brut/FrontEnd/Form.html +1 -1
  120. data/docs/api/Brut/FrontEnd/Forms/ConstraintViolation.html +1 -1
  121. data/docs/api/Brut/FrontEnd/Forms/Input/Color.html +1 -1
  122. data/docs/api/Brut/FrontEnd/Forms/Input/TimeOfDay.html +1 -1
  123. data/docs/api/Brut/FrontEnd/Forms/Input.html +1 -1
  124. data/docs/api/Brut/FrontEnd/Forms/InputDeclarations.html +1 -1
  125. data/docs/api/Brut/FrontEnd/Forms/InputDefinition.html +1 -1
  126. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInput.html +1 -1
  127. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInputDefinition.html +1 -1
  128. data/docs/api/Brut/FrontEnd/Forms/SelectInput.html +1 -1
  129. data/docs/api/Brut/FrontEnd/Forms/SelectInputDefinition.html +1 -1
  130. data/docs/api/Brut/FrontEnd/Forms/ValidityState.html +1 -1
  131. data/docs/api/Brut/FrontEnd/Forms.html +1 -1
  132. data/docs/api/Brut/FrontEnd/GenericResponse.html +1 -1
  133. data/docs/api/Brut/FrontEnd/Handler.html +1 -1
  134. data/docs/api/Brut/FrontEnd/Handlers/CspReportingHandler.html +1 -1
  135. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler/TraceParent.html +1 -1
  136. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler.html +1 -1
  137. data/docs/api/Brut/FrontEnd/Handlers/LocaleDetectionHandler.html +1 -1
  138. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler/Form.html +1 -1
  139. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler.html +1 -1
  140. data/docs/api/Brut/FrontEnd/Handlers.html +1 -1
  141. data/docs/api/Brut/FrontEnd/HandlingResults.html +1 -1
  142. data/docs/api/Brut/FrontEnd/HttpMethod.html +1 -1
  143. data/docs/api/Brut/FrontEnd/HttpStatus.html +1 -1
  144. data/docs/api/Brut/FrontEnd/InlineSvgLocator.html +1 -1
  145. data/docs/api/Brut/FrontEnd/Layout.html +1 -1
  146. data/docs/api/Brut/FrontEnd/Middleware.html +1 -1
  147. data/docs/api/Brut/FrontEnd/Middlewares/AnnotateBrutOwnedPaths.html +1 -1
  148. data/docs/api/Brut/FrontEnd/Middlewares/Favicon.html +1 -1
  149. data/docs/api/Brut/FrontEnd/Middlewares/OpenTelemetrySpan.html +1 -1
  150. data/docs/api/Brut/FrontEnd/Middlewares/ReloadApp.html +1 -1
  151. data/docs/api/Brut/FrontEnd/Middlewares.html +1 -1
  152. data/docs/api/Brut/FrontEnd/Page.html +1 -1
  153. data/docs/api/Brut/FrontEnd/Pages/MissingPage.html +1 -1
  154. data/docs/api/Brut/FrontEnd/Pages.html +1 -1
  155. data/docs/api/Brut/FrontEnd/RequestContext.html +1 -1
  156. data/docs/api/Brut/FrontEnd/RouteHook.html +1 -1
  157. data/docs/api/Brut/FrontEnd/RouteHooks/AgeFlash.html +1 -1
  158. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineScripts.html +1 -1
  159. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts/ReportOnly.html +1 -1
  160. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts.html +1 -1
  161. data/docs/api/Brut/FrontEnd/RouteHooks/LocaleDetection.html +1 -1
  162. data/docs/api/Brut/FrontEnd/RouteHooks/SetupRequestContext.html +1 -1
  163. data/docs/api/Brut/FrontEnd/RouteHooks.html +1 -1
  164. data/docs/api/Brut/FrontEnd/Routing/FormHandlerRoute.html +1 -1
  165. data/docs/api/Brut/FrontEnd/Routing/FormRoute.html +1 -1
  166. data/docs/api/Brut/FrontEnd/Routing/MissingForm.html +1 -1
  167. data/docs/api/Brut/FrontEnd/Routing/MissingHandler.html +1 -1
  168. data/docs/api/Brut/FrontEnd/Routing/MissingPage.html +1 -1
  169. data/docs/api/Brut/FrontEnd/Routing/MissingPath.html +1 -1
  170. data/docs/api/Brut/FrontEnd/Routing/PageRoute.html +1 -1
  171. data/docs/api/Brut/FrontEnd/Routing/Route.html +1 -1
  172. data/docs/api/Brut/FrontEnd/Routing.html +1 -1
  173. data/docs/api/Brut/FrontEnd/Session.html +1 -1
  174. data/docs/api/Brut/FrontEnd.html +1 -1
  175. data/docs/api/Brut/I18n/BaseMethods.html +1 -1
  176. data/docs/api/Brut/I18n/ForBackEnd.html +1 -1
  177. data/docs/api/Brut/I18n/ForCLI.html +1 -1
  178. data/docs/api/Brut/I18n/ForHTML.html +1 -1
  179. data/docs/api/Brut/I18n/HTTPAcceptLanguage/AlwaysEnglish.html +1 -1
  180. data/docs/api/Brut/I18n/HTTPAcceptLanguage.html +1 -1
  181. data/docs/api/Brut/I18n.html +1 -1
  182. data/docs/api/Brut/Instrumentation/LoggerSpanExporter.html +1 -1
  183. data/docs/api/Brut/Instrumentation/OpenTelemetry/NormalizedAttributes.html +1 -1
  184. data/docs/api/Brut/Instrumentation/OpenTelemetry/Span.html +1 -1
  185. data/docs/api/Brut/Instrumentation/OpenTelemetry.html +1 -1
  186. data/docs/api/Brut/Instrumentation.html +1 -1
  187. data/docs/api/Brut/RubocopConfig.html +1 -1
  188. data/docs/api/Brut/SinatraHelpers/ClassMethods.html +1 -1
  189. data/docs/api/Brut/SinatraHelpers.html +1 -1
  190. data/docs/api/Brut/SpecSupport/ClockSupport.html +1 -1
  191. data/docs/api/Brut/SpecSupport/ComponentSupport.html +1 -1
  192. data/docs/api/Brut/SpecSupport/E2ETestServer.html +1 -1
  193. data/docs/api/Brut/SpecSupport/E2eSupport.html +1 -1
  194. data/docs/api/Brut/SpecSupport/EnhancedNode.html +1 -1
  195. data/docs/api/Brut/SpecSupport/FlashSupport.html +1 -1
  196. data/docs/api/Brut/SpecSupport/GeneralSupport/ClassMethods.html +1 -1
  197. data/docs/api/Brut/SpecSupport/GeneralSupport.html +1 -1
  198. data/docs/api/Brut/SpecSupport/HandlerSupport.html +1 -1
  199. data/docs/api/Brut/SpecSupport/Matchers/BeABug.html +1 -1
  200. data/docs/api/Brut/SpecSupport/Matchers/BePageFor.html +1 -1
  201. data/docs/api/Brut/SpecSupport/Matchers/BeRoutingFor.html +1 -1
  202. data/docs/api/Brut/SpecSupport/Matchers/HaveConstraintViolation.html +1 -1
  203. data/docs/api/Brut/SpecSupport/Matchers/HaveGenerated.html +1 -1
  204. data/docs/api/Brut/SpecSupport/Matchers/HaveHTMLAttribute.html +1 -1
  205. data/docs/api/Brut/SpecSupport/Matchers/HaveI18nString.html +1 -1
  206. data/docs/api/Brut/SpecSupport/Matchers/HaveLinkTo.html +1 -1
  207. data/docs/api/Brut/SpecSupport/Matchers/HaveRedirectedTo.html +1 -1
  208. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedHttpStatus.html +1 -1
  209. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedRackResponse.html +1 -1
  210. data/docs/api/Brut/SpecSupport/Matchers.html +1 -1
  211. data/docs/api/Brut/SpecSupport/RSpecSetup/OptionalSidekiqSupport.html +1 -1
  212. data/docs/api/Brut/SpecSupport/RSpecSetup.html +1 -1
  213. data/docs/api/Brut/SpecSupport/SessionSupport.html +1 -1
  214. data/docs/api/Brut/SpecSupport.html +1 -1
  215. data/docs/api/Brut.html +1 -1
  216. data/docs/api/Clock.html +1 -1
  217. data/docs/api/ModuleName.html +1 -1
  218. data/docs/api/RichString.html +1 -1
  219. data/docs/api/SemanticLogger/Appender/Async.html +1 -1
  220. data/docs/api/Sequel/Extensions/BrutInstrumentation.html +1 -1
  221. data/docs/api/Sequel/Extensions/BrutMigrations.html +1 -1
  222. data/docs/api/Sequel/Extensions.html +1 -1
  223. data/docs/api/Sequel/Plugins/CreatedAt/InstanceMethods.html +1 -1
  224. data/docs/api/Sequel/Plugins/CreatedAt.html +1 -1
  225. data/docs/api/Sequel/Plugins/ExternalId/ClassMethods.html +1 -1
  226. data/docs/api/Sequel/Plugins/ExternalId/InstanceMethods.html +1 -1
  227. data/docs/api/Sequel/Plugins/ExternalId.html +1 -1
  228. data/docs/api/Sequel/Plugins/FindBang/ClassMethods.html +1 -1
  229. data/docs/api/Sequel/Plugins/FindBang.html +1 -1
  230. data/docs/api/Sequel/Plugins.html +1 -1
  231. data/docs/api/Sequel.html +1 -1
  232. data/docs/api/_index.html +1 -1
  233. data/docs/api/file.README.html +1 -1
  234. data/docs/api/index.html +1 -1
  235. data/docs/api/top-level-namespace.html +1 -1
  236. data/docs/assets/{app.CmkhEsw7.js → app.DmIaHRc4.js} +1 -1
  237. data/docs/assets/basic-form-with-violations.Cv6Y9-Q_.png +0 -0
  238. data/docs/assets/basic-form.DbHnu0oW.png +0 -0
  239. data/docs/assets/chunks/@localSearchIndexroot.D0RGp49A.js +1 -0
  240. data/docs/assets/chunks/{VPLocalSearchBox.CDh583Oj.js → VPLocalSearchBox.C2QeRbCY.js} +1 -1
  241. data/docs/assets/chunks/{theme.B0_7GeW8.js → theme.CFKmBRX5.js} +2 -2
  242. data/docs/assets/{components.md.-22ecBxM.js → components.md.BBHib1uV.js} +3 -3
  243. data/docs/assets/{configuration.md.CLKL1lFf.js → configuration.md.CJ0MmIps.js} +1 -1
  244. data/docs/assets/{forms.md.CBI5--o2.js → forms.md.D5jFZIJz.js} +1 -1
  245. data/docs/assets/{getting-started.md.D5nzBZ4J.js → getting-started.md.abLTnd_n.js} +2 -2
  246. data/docs/assets/initial-home-page.DNIaYmgP.png +0 -0
  247. data/docs/assets/new-post-editor.DrHr-5oh.png +0 -0
  248. data/docs/assets/new-post-home-page.Bm34lyMg.png +0 -0
  249. data/docs/assets/styled-form-with-server-side-violations.Bjxd8Dpv.png +0 -0
  250. data/docs/assets/styled-form-with-violations.Bv_sa9tg.png +0 -0
  251. data/docs/assets/styled-home-page-with-posts.Dd4kG89D.png +0 -0
  252. data/docs/assets/styled-home-page.BzdI7dWz.png +0 -0
  253. data/docs/assets/tutorial.md.C4zR5XPG.js +728 -0
  254. data/docs/assets/tutorial.md.C4zR5XPG.lean.js +1 -0
  255. data/docs/assets/welcome-to-brut.VSWzl17-.png +0 -0
  256. data/docs/assets.html +3 -3
  257. data/docs/brut-js/api/AjaxSubmit.html +1 -1
  258. data/docs/brut-js/api/AjaxSubmit.js.html +1 -1
  259. data/docs/brut-js/api/Autosubmit.html +1 -1
  260. data/docs/brut-js/api/Autosubmit.js.html +1 -1
  261. data/docs/brut-js/api/BaseCustomElement.html +1 -1
  262. data/docs/brut-js/api/BaseCustomElement.js.html +1 -1
  263. data/docs/brut-js/api/BrutCustomElements.html +1 -1
  264. data/docs/brut-js/api/BufferedLogger.html +1 -1
  265. data/docs/brut-js/api/ConfirmSubmit.html +18 -10
  266. data/docs/brut-js/api/ConfirmSubmit.js.html +29 -8
  267. data/docs/brut-js/api/ConfirmationDialog.html +1 -1
  268. data/docs/brut-js/api/ConfirmationDialog.js.html +1 -1
  269. data/docs/brut-js/api/ConstraintViolationMessage.html +1 -1
  270. data/docs/brut-js/api/ConstraintViolationMessage.js.html +1 -1
  271. data/docs/brut-js/api/ConstraintViolationMessages.html +1 -1
  272. data/docs/brut-js/api/ConstraintViolationMessages.js.html +1 -1
  273. data/docs/brut-js/api/CopyToClipboard.html +1 -1
  274. data/docs/brut-js/api/CopyToClipboard.js.html +1 -1
  275. data/docs/brut-js/api/Form.html +1 -1
  276. data/docs/brut-js/api/Form.js.html +1 -1
  277. data/docs/brut-js/api/I18nTranslation.html +1 -1
  278. data/docs/brut-js/api/I18nTranslation.js.html +1 -1
  279. data/docs/brut-js/api/LocaleDetection.html +1 -1
  280. data/docs/brut-js/api/LocaleDetection.js.html +1 -1
  281. data/docs/brut-js/api/Logger.html +1 -1
  282. data/docs/brut-js/api/Logger.js.html +1 -1
  283. data/docs/brut-js/api/Message.html +1 -1
  284. data/docs/brut-js/api/Message.js.html +1 -1
  285. data/docs/brut-js/api/PrefixedLogger.html +1 -1
  286. data/docs/brut-js/api/RichString.html +1 -1
  287. data/docs/brut-js/api/RichString.js.html +1 -1
  288. data/docs/brut-js/api/Tabs.html +1 -1
  289. data/docs/brut-js/api/Tabs.js.html +1 -1
  290. data/docs/brut-js/api/Tracing.html +1 -1
  291. data/docs/brut-js/api/Tracing.js.html +1 -1
  292. data/docs/brut-js/api/external-CustomElementRegistry.html +1 -1
  293. data/docs/brut-js/api/external-Performance.html +1 -1
  294. data/docs/brut-js/api/external-Promise.html +1 -1
  295. data/docs/brut-js/api/external-ValidityState.html +1 -1
  296. data/docs/brut-js/api/external-Window.html +1 -1
  297. data/docs/brut-js/api/external-fetch.html +1 -1
  298. data/docs/brut-js/api/global.html +1 -1
  299. data/docs/brut-js/api/index.html +1 -1
  300. data/docs/brut-js/api/index.js.html +1 -1
  301. data/docs/brut-js/api/module-testing.html +1 -1
  302. data/docs/brut-js/api/testing.AssetMetadata.html +1 -1
  303. data/docs/brut-js/api/testing.AssetMetadataLoader.html +1 -1
  304. data/docs/brut-js/api/testing.CustomElementTest.html +1 -1
  305. data/docs/brut-js/api/testing.DOMCreator.html +1 -1
  306. data/docs/brut-js/api/testing_AssetMetadata.js.html +1 -1
  307. data/docs/brut-js/api/testing_AssetMetadataLoader.js.html +1 -1
  308. data/docs/brut-js/api/testing_CustomElementTest.js.html +1 -1
  309. data/docs/brut-js/api/testing_DOMCreator.js.html +1 -1
  310. data/docs/brut-js/api/testing_index.js.html +1 -1
  311. data/docs/brut-js.html +3 -3
  312. data/docs/business-logic.html +3 -3
  313. data/docs/cli.html +3 -3
  314. data/docs/components.html +7 -7
  315. data/docs/configuration.html +5 -5
  316. data/docs/css.html +3 -3
  317. data/docs/custom-element-tests.html +3 -3
  318. data/docs/database-access.html +3 -3
  319. data/docs/database-schema.html +3 -3
  320. data/docs/deployment.html +3 -3
  321. data/docs/dev-environment.html +3 -3
  322. data/docs/dir-structure.html +3 -3
  323. data/docs/doc-conventions.html +3 -3
  324. data/docs/end-to-end-tests.html +3 -3
  325. data/docs/features.html +3 -3
  326. data/docs/flash-and-session.html +3 -3
  327. data/docs/form-constraints.html +3 -3
  328. data/docs/forms.html +5 -5
  329. data/docs/getting-started.html +6 -6
  330. data/docs/handlers.html +3 -3
  331. data/docs/hashmap.json +1 -1
  332. data/docs/hooks.html +3 -3
  333. data/docs/i18n.html +3 -3
  334. data/docs/index.html +3 -3
  335. data/docs/instrumentation.html +3 -3
  336. data/docs/javascript.html +3 -3
  337. data/docs/jobs.html +3 -3
  338. data/docs/keyword-injection.html +3 -3
  339. data/docs/layouts.html +3 -3
  340. data/docs/lsp.html +3 -3
  341. data/docs/markdown-examples.html +3 -3
  342. data/docs/middleware.html +3 -3
  343. data/docs/overview.html +3 -3
  344. data/docs/pages.html +3 -3
  345. data/docs/recipes/alternate-layouts.html +3 -3
  346. data/docs/recipes/authentication.html +3 -3
  347. data/docs/recipes/blank-layouts.html +3 -3
  348. data/docs/recipes/custom-flash.html +3 -3
  349. data/docs/recipes/indexed-forms.html +3 -3
  350. data/docs/recipes/migrations.html +3 -3
  351. data/docs/recipes/text-field-component.html +3 -3
  352. data/docs/roadmap.html +3 -3
  353. data/docs/routes.html +3 -3
  354. data/docs/security.html +3 -3
  355. data/docs/seed-data.html +3 -3
  356. data/docs/space-time-continuum.html +3 -3
  357. data/docs/tutorial.html +732 -5
  358. data/docs/unit-tests.html +3 -3
  359. data/docs/why.html +3 -3
  360. data/lib/brut/framework/config.rb +9 -14
  361. data/lib/brut/version.rb +1 -1
  362. data/mkbrut/Gemfile.lock +1 -1
  363. data/mkbrut/lib/mkbrut/version.rb +1 -1
  364. data/mkbrut/templates/Base/Dockerfile.dx +2 -2
  365. data/mkbrut/templates/segments/Heroku/deploy/Dockerfile +4 -5
  366. metadata +36 -15
  367. data/docs/assets/chunks/@localSearchIndexroot.DUha-mf5.js +0 -1
  368. data/docs/assets/tutorial.md.BIb7XT6j.js +0 -1
  369. data/docs/assets/tutorial.md.BIb7XT6j.lean.js +0 -1
  370. /data/docs/assets/{components.md.-22ecBxM.lean.js → components.md.BBHib1uV.lean.js} +0 -0
  371. /data/docs/assets/{configuration.md.CLKL1lFf.lean.js → configuration.md.CJ0MmIps.lean.js} +0 -0
  372. /data/docs/assets/{forms.md.CBI5--o2.lean.js → forms.md.D5jFZIJz.lean.js} +0 -0
  373. /data/docs/assets/{getting-started.md.D5nzBZ4J.lean.js → getting-started.md.abLTnd_n.lean.js} +0 -0
@@ -585,7 +585,7 @@
585
585
  </div>
586
586
 
587
587
  <div id="footer">
588
- Generated on Thu Aug 7 21:05:54 2025 by
588
+ Generated on Thu Aug 14 15:32:41 2025 by
589
589
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
590
590
  0.9.37 (ruby-3.4.5).
591
591
  </div>
@@ -765,7 +765,7 @@ string is blank or nil, accounting for <code>blank_is_nil:</code></p>
765
765
  </div>
766
766
 
767
767
  <div id="footer">
768
- Generated on Thu Aug 7 21:05:54 2025 by
768
+ Generated on Thu Aug 14 15:32:41 2025 by
769
769
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
770
770
  0.9.37 (ruby-3.4.5).
771
771
  </div>
@@ -209,7 +209,7 @@ SemanticLogger's appenders. Otherwise, the warning is legit.</p>
209
209
  </div>
210
210
 
211
211
  <div id="footer">
212
- Generated on Thu Aug 7 21:05:55 2025 by
212
+ Generated on Thu Aug 14 15:32:42 2025 by
213
213
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
214
214
  0.9.37 (ruby-3.4.5).
215
215
  </div>
@@ -109,7 +109,7 @@ platforms.</p>
109
109
  </div>
110
110
 
111
111
  <div id="footer">
112
- Generated on Thu Aug 7 21:05:54 2025 by
112
+ Generated on Thu Aug 14 15:32:41 2025 by
113
113
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
114
114
  0.9.37 (ruby-3.4.5).
115
115
  </div>
@@ -531,7 +531,7 @@ Inside a <code>create_table</code> block, this can be called via <code>key</code
531
531
  </div>
532
532
 
533
533
  <div id="footer">
534
- Generated on Thu Aug 7 21:05:54 2025 by
534
+ Generated on Thu Aug 14 15:32:41 2025 by
535
535
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
536
536
  0.9.37 (ruby-3.4.5).
537
537
  </div>
@@ -107,7 +107,7 @@
107
107
  </div>
108
108
 
109
109
  <div id="footer">
110
- Generated on Thu Aug 7 21:05:54 2025 by
110
+ Generated on Thu Aug 14 15:32:41 2025 by
111
111
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
112
112
  0.9.37 (ruby-3.4.5).
113
113
  </div>
@@ -95,7 +95,7 @@
95
95
  </div>
96
96
 
97
97
  <div id="footer">
98
- Generated on Thu Aug 7 21:05:54 2025 by
98
+ Generated on Thu Aug 14 15:32:41 2025 by
99
99
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
100
100
  0.9.37 (ruby-3.4.5).
101
101
  </div>
@@ -115,7 +115,7 @@
115
115
  </div>
116
116
 
117
117
  <div id="footer">
118
- Generated on Thu Aug 7 21:05:54 2025 by
118
+ Generated on Thu Aug 14 15:32:41 2025 by
119
119
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
120
120
  0.9.37 (ruby-3.4.5).
121
121
  </div>
@@ -197,7 +197,7 @@ prefix should be used. Calling this will also alter <span class='object_link'><
197
197
  </div>
198
198
 
199
199
  <div id="footer">
200
- Generated on Thu Aug 7 21:05:54 2025 by
200
+ Generated on Thu Aug 14 15:32:41 2025 by
201
201
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
202
202
  0.9.37 (ruby-3.4.5).
203
203
  </div>
@@ -176,7 +176,7 @@ models in Log messages without having to explicitly fetch the id.</p>
176
176
  </div>
177
177
 
178
178
  <div id="footer">
179
- Generated on Thu Aug 7 21:05:54 2025 by
179
+ Generated on Thu Aug 14 15:32:41 2025 by
180
180
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
181
181
  0.9.37 (ruby-3.4.5).
182
182
  </div>
@@ -208,7 +208,7 @@ what type of thing an identifier represents.</p>
208
208
  </div>
209
209
 
210
210
  <div id="footer">
211
- Generated on Thu Aug 7 21:05:54 2025 by
211
+ Generated on Thu Aug 14 15:32:41 2025 by
212
212
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
213
213
  0.9.37 (ruby-3.4.5).
214
214
  </div>
@@ -192,7 +192,7 @@
192
192
  </div>
193
193
 
194
194
  <div id="footer">
195
- Generated on Thu Aug 7 21:05:54 2025 by
195
+ Generated on Thu Aug 14 15:32:41 2025 by
196
196
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
197
197
  0.9.37 (ruby-3.4.5).
198
198
  </div>
@@ -115,7 +115,7 @@
115
115
  </div>
116
116
 
117
117
  <div id="footer">
118
- Generated on Thu Aug 7 21:05:54 2025 by
118
+ Generated on Thu Aug 14 15:32:41 2025 by
119
119
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
120
120
  0.9.37 (ruby-3.4.5).
121
121
  </div>
@@ -107,7 +107,7 @@
107
107
  </div>
108
108
 
109
109
  <div id="footer">
110
- Generated on Thu Aug 7 21:05:54 2025 by
110
+ Generated on Thu Aug 14 15:32:41 2025 by
111
111
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
112
112
  0.9.37 (ruby-3.4.5).
113
113
  </div>
data/docs/api/Sequel.html CHANGED
@@ -107,7 +107,7 @@
107
107
  </div>
108
108
 
109
109
  <div id="footer">
110
- Generated on Thu Aug 7 21:05:54 2025 by
110
+ Generated on Thu Aug 14 15:32:41 2025 by
111
111
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
112
112
  0.9.37 (ruby-3.4.5).
113
113
  </div>
data/docs/api/_index.html CHANGED
@@ -1674,7 +1674,7 @@
1674
1674
  </div>
1675
1675
 
1676
1676
  <div id="footer">
1677
- Generated on Thu Aug 7 21:05:54 2025 by
1677
+ Generated on Thu Aug 14 15:32:41 2025 by
1678
1678
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1679
1679
  0.9.37 (ruby-3.4.5).
1680
1680
  </div>
@@ -162,7 +162,7 @@ actions as well.</p>
162
162
  </div></div>
163
163
 
164
164
  <div id="footer">
165
- Generated on Thu Aug 7 21:05:54 2025 by
165
+ Generated on Thu Aug 14 15:32:41 2025 by
166
166
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
167
167
  0.9.37 (ruby-3.4.5).
168
168
  </div>
data/docs/api/index.html CHANGED
@@ -162,7 +162,7 @@ actions as well.</p>
162
162
  </div></div>
163
163
 
164
164
  <div id="footer">
165
- Generated on Thu Aug 7 21:05:54 2025 by
165
+ Generated on Thu Aug 14 15:32:41 2025 by
166
166
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
167
167
  0.9.37 (ruby-3.4.5).
168
168
  </div>
@@ -102,7 +102,7 @@
102
102
  </div>
103
103
 
104
104
  <div id="footer">
105
- Generated on Thu Aug 7 21:05:54 2025 by
105
+ Generated on Thu Aug 14 15:32:41 2025 by
106
106
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
107
107
  0.9.37 (ruby-3.4.5).
108
108
  </div>
@@ -1 +1 @@
1
- import{R as p}from"./chunks/theme.B0_7GeW8.js";import{R as s,a3 as i,a4 as u,a5 as c,a6 as l,a7 as f,a8 as d,a9 as m,aa as h,ab as g,ac as A,d as v,u as R,v as w,s as y,ad as C,ae as P,af as b,a2 as E}from"./chunks/framework.1L-BeKqY.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(p),S=v({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=R();return w(()=>{y(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),P(),b(),n.setup&&n.setup(),()=>E(n.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=_(),a=D();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function D(){return A(S)}function _(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{T as createApp};
1
+ import{R as p}from"./chunks/theme.CFKmBRX5.js";import{R as s,a3 as i,a4 as u,a5 as c,a6 as l,a7 as f,a8 as d,a9 as m,aa as h,ab as g,ac as A,d as v,u as R,v as w,s as y,ad as C,ae as P,af as b,a2 as E}from"./chunks/framework.1L-BeKqY.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(p),S=v({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=R();return w(()=>{y(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),P(),b(),n.setup&&n.setup(),()=>E(n.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=_(),a=D();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function D(){return A(S)}function _(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{T as createApp};
Binary file