brut 0.11.0 → 0.12.1

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 +11 -0
  3. data/Gemfile.lock +8 -8
  4. data/brut-css/package-lock.json +94 -97
  5. data/brut-css/package.json +2 -2
  6. data/brut-js/package-lock.json +3 -3
  7. data/brut-js/package.json +6 -3
  8. data/brut-js/specs/AjaxSubmit.spec.js +62 -6
  9. data/brut-js/src/AjaxSubmit.js +26 -6
  10. data/brutrb.com/forms.md +1 -0
  11. data/brutrb.com/recipes/authentication.md +1 -0
  12. data/brutrb.com/tutorials/01-intro.md +26 -2
  13. data/docs/404.html +2 -2
  14. data/docs/adrs.html +3 -3
  15. data/docs/ai.html +3 -3
  16. data/docs/api/Brut/BackEnd/SeedData.html +1 -1
  17. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server/FlushSpans.html +1 -1
  18. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server.html +1 -1
  19. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares.html +1 -1
  20. data/docs/api/Brut/BackEnd/Sidekiq.html +1 -1
  21. data/docs/api/Brut/BackEnd/Validators/FormValidator.html +1 -1
  22. data/docs/api/Brut/BackEnd/Validators.html +1 -1
  23. data/docs/api/Brut/BackEnd.html +1 -1
  24. data/docs/api/Brut/CLI/App.html +1 -1
  25. data/docs/api/Brut/CLI/AppRunner.html +1 -1
  26. data/docs/api/Brut/CLI/Apps/BuildAssets/All.html +1 -1
  27. data/docs/api/Brut/CLI/Apps/BuildAssets/CSS.html +1 -1
  28. data/docs/api/Brut/CLI/Apps/BuildAssets/Images.html +1 -1
  29. data/docs/api/Brut/CLI/Apps/BuildAssets/JS.html +1 -1
  30. data/docs/api/Brut/CLI/Apps/BuildAssets.html +1 -1
  31. data/docs/api/Brut/CLI/Apps/DB/Create.html +1 -1
  32. data/docs/api/Brut/CLI/Apps/DB/Drop.html +1 -1
  33. data/docs/api/Brut/CLI/Apps/DB/Migrate.html +1 -1
  34. data/docs/api/Brut/CLI/Apps/DB/NewMigration.html +1 -1
  35. data/docs/api/Brut/CLI/Apps/DB/Rebuild.html +1 -1
  36. data/docs/api/Brut/CLI/Apps/DB/Seed.html +1 -1
  37. data/docs/api/Brut/CLI/Apps/DB/Status.html +1 -1
  38. data/docs/api/Brut/CLI/Apps/DB.html +1 -1
  39. data/docs/api/Brut/CLI/Apps/DeployBase/GitChecks.html +1 -1
  40. data/docs/api/Brut/CLI/Apps/DeployBase.html +1 -1
  41. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy/Deploy.html +1 -1
  42. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy.html +1 -1
  43. data/docs/api/Brut/CLI/Apps/Scaffold/Action/Route.html +1 -1
  44. data/docs/api/Brut/CLI/Apps/Scaffold/Action.html +1 -1
  45. data/docs/api/Brut/CLI/Apps/Scaffold/Component.html +1 -1
  46. data/docs/api/Brut/CLI/Apps/Scaffold/CustomElementTest.html +1 -1
  47. data/docs/api/Brut/CLI/Apps/Scaffold/DbModel.html +1 -1
  48. data/docs/api/Brut/CLI/Apps/Scaffold/E2ETest.html +1 -1
  49. data/docs/api/Brut/CLI/Apps/Scaffold/Form.html +1 -1
  50. data/docs/api/Brut/CLI/Apps/Scaffold/Page/Route.html +1 -1
  51. data/docs/api/Brut/CLI/Apps/Scaffold/Page.html +1 -1
  52. data/docs/api/Brut/CLI/Apps/Scaffold/RoutesEditor.html +1 -1
  53. data/docs/api/Brut/CLI/Apps/Scaffold/Test.html +1 -1
  54. data/docs/api/Brut/CLI/Apps/Scaffold.html +1 -1
  55. data/docs/api/Brut/CLI/Apps/Test/Audit.html +1 -1
  56. data/docs/api/Brut/CLI/Apps/Test/E2e.html +1 -1
  57. data/docs/api/Brut/CLI/Apps/Test/JS.html +1 -1
  58. data/docs/api/Brut/CLI/Apps/Test/Run.html +1 -1
  59. data/docs/api/Brut/CLI/Apps/Test.html +1 -1
  60. data/docs/api/Brut/CLI/Apps.html +1 -1
  61. data/docs/api/Brut/CLI/Command.html +1 -1
  62. data/docs/api/Brut/CLI/Error.html +1 -1
  63. data/docs/api/Brut/CLI/ExecutionResults/Result.html +1 -1
  64. data/docs/api/Brut/CLI/ExecutionResults.html +1 -1
  65. data/docs/api/Brut/CLI/Executor.html +1 -1
  66. data/docs/api/Brut/CLI/InvalidOption.html +1 -1
  67. data/docs/api/Brut/CLI/Options.html +1 -1
  68. data/docs/api/Brut/CLI/Output.html +1 -1
  69. data/docs/api/Brut/CLI/SystemExecError.html +1 -1
  70. data/docs/api/Brut/CLI.html +1 -1
  71. data/docs/api/Brut/FactoryBot.html +1 -1
  72. data/docs/api/Brut/Framework/App.html +1 -1
  73. data/docs/api/Brut/Framework/Config.html +1 -1
  74. data/docs/api/Brut/Framework/Container.html +1 -1
  75. data/docs/api/Brut/Framework/Error.html +1 -1
  76. data/docs/api/Brut/Framework/Errors/AbstractMethod.html +1 -1
  77. data/docs/api/Brut/Framework/Errors/Bug.html +1 -1
  78. data/docs/api/Brut/Framework/Errors/MissingConfiguration.html +1 -1
  79. data/docs/api/Brut/Framework/Errors/MissingParameter.html +1 -1
  80. data/docs/api/Brut/Framework/Errors/NoClassForPath.html +1 -1
  81. data/docs/api/Brut/Framework/Errors/NotFound.html +1 -1
  82. data/docs/api/Brut/Framework/Errors/NotImplemented.html +1 -1
  83. data/docs/api/Brut/Framework/Errors.html +1 -1
  84. data/docs/api/Brut/Framework/FussyTypeEnforcement.html +2 -2
  85. data/docs/api/Brut/Framework/MCP.html +1 -1
  86. data/docs/api/Brut/Framework/ProjectEnvironment.html +1 -1
  87. data/docs/api/Brut/Framework.html +1 -1
  88. data/docs/api/Brut/FrontEnd/AssetPathResolver.html +1 -1
  89. data/docs/api/Brut/FrontEnd/Component/Helpers.html +1 -1
  90. data/docs/api/Brut/FrontEnd/Component.html +1 -1
  91. data/docs/api/Brut/FrontEnd/Components/ConstraintViolations.html +1 -1
  92. data/docs/api/Brut/FrontEnd/Components/FormTag.html +1 -1
  93. data/docs/api/Brut/FrontEnd/Components/I18nTranslations.html +1 -1
  94. data/docs/api/Brut/FrontEnd/Components/Input.html +2 -2
  95. data/docs/api/Brut/FrontEnd/Components/Inputs/ButtonTag.html +447 -0
  96. data/docs/api/Brut/FrontEnd/Components/Inputs/CsrfToken.html +1 -1
  97. data/docs/api/Brut/FrontEnd/Components/Inputs/InputTag.html +14 -9
  98. data/docs/api/Brut/FrontEnd/Components/Inputs/RadioButton.html +1 -1
  99. data/docs/api/Brut/FrontEnd/Components/Inputs/SelectTagWithOptions.html +8 -9
  100. data/docs/api/Brut/FrontEnd/Components/Inputs/TextareaTag.html +10 -11
  101. data/docs/api/Brut/FrontEnd/Components/Inputs.html +2 -2
  102. data/docs/api/Brut/FrontEnd/Components/LocaleDetection.html +1 -1
  103. data/docs/api/Brut/FrontEnd/Components/PageIdentifier.html +1 -1
  104. data/docs/api/Brut/FrontEnd/Components/TimeTag.html +1 -1
  105. data/docs/api/Brut/FrontEnd/Components/Traceparent.html +1 -1
  106. data/docs/api/Brut/FrontEnd/Components.html +1 -1
  107. data/docs/api/Brut/FrontEnd/CsrfProtector.html +1 -1
  108. data/docs/api/Brut/FrontEnd/Download.html +1 -1
  109. data/docs/api/Brut/FrontEnd/Flash.html +1 -1
  110. data/docs/api/Brut/FrontEnd/Form.html +39 -39
  111. data/docs/api/Brut/FrontEnd/Forms/Button.html +331 -0
  112. data/docs/api/Brut/FrontEnd/Forms/ButtonInputDefinition.html +537 -0
  113. data/docs/api/Brut/FrontEnd/Forms/ConstraintViolation.html +1 -1
  114. data/docs/api/Brut/FrontEnd/Forms/Input/Color.html +1 -1
  115. data/docs/api/Brut/FrontEnd/Forms/Input/TimeOfDay.html +1 -1
  116. data/docs/api/Brut/FrontEnd/Forms/Input.html +6 -2
  117. data/docs/api/Brut/FrontEnd/Forms/InputDeclarations.html +111 -23
  118. data/docs/api/Brut/FrontEnd/Forms/InputDefinition.html +20 -12
  119. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInput.html +1 -1
  120. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInputDefinition.html +1 -1
  121. data/docs/api/Brut/FrontEnd/Forms/SelectInput.html +1 -1
  122. data/docs/api/Brut/FrontEnd/Forms/SelectInputDefinition.html +1 -1
  123. data/docs/api/Brut/FrontEnd/Forms/ValidityState.html +1 -1
  124. data/docs/api/Brut/FrontEnd/Forms.html +2 -2
  125. data/docs/api/Brut/FrontEnd/GenericResponse.html +1 -1
  126. data/docs/api/Brut/FrontEnd/Handler.html +1 -1
  127. data/docs/api/Brut/FrontEnd/Handlers/CspReportingHandler.html +1 -1
  128. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler/TraceParent.html +1 -1
  129. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler.html +1 -1
  130. data/docs/api/Brut/FrontEnd/Handlers/LocaleDetectionHandler.html +1 -1
  131. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler/Form.html +2 -2
  132. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler.html +1 -1
  133. data/docs/api/Brut/FrontEnd/Handlers.html +1 -1
  134. data/docs/api/Brut/FrontEnd/HandlingResults.html +1 -1
  135. data/docs/api/Brut/FrontEnd/HttpMethod.html +1 -1
  136. data/docs/api/Brut/FrontEnd/HttpStatus.html +1 -1
  137. data/docs/api/Brut/FrontEnd/InlineSvgLocator.html +1 -1
  138. data/docs/api/Brut/FrontEnd/Layout.html +1 -1
  139. data/docs/api/Brut/FrontEnd/Middleware.html +1 -1
  140. data/docs/api/Brut/FrontEnd/Middlewares/AnnotateBrutOwnedPaths.html +1 -1
  141. data/docs/api/Brut/FrontEnd/Middlewares/Favicon.html +1 -1
  142. data/docs/api/Brut/FrontEnd/Middlewares/OpenTelemetrySpan.html +1 -1
  143. data/docs/api/Brut/FrontEnd/Middlewares/ReloadApp.html +1 -1
  144. data/docs/api/Brut/FrontEnd/Middlewares.html +1 -1
  145. data/docs/api/Brut/FrontEnd/Page.html +1 -1
  146. data/docs/api/Brut/FrontEnd/Pages/MissingPage.html +1 -1
  147. data/docs/api/Brut/FrontEnd/Pages.html +1 -1
  148. data/docs/api/Brut/FrontEnd/RequestContext.html +1 -1
  149. data/docs/api/Brut/FrontEnd/RouteHook.html +1 -1
  150. data/docs/api/Brut/FrontEnd/RouteHooks/AgeFlash.html +1 -1
  151. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineScripts.html +1 -1
  152. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts/ReportOnly.html +1 -1
  153. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts.html +1 -1
  154. data/docs/api/Brut/FrontEnd/RouteHooks/LocaleDetection.html +1 -1
  155. data/docs/api/Brut/FrontEnd/RouteHooks/SetupRequestContext.html +1 -1
  156. data/docs/api/Brut/FrontEnd/RouteHooks.html +1 -1
  157. data/docs/api/Brut/FrontEnd/Routing/FormHandlerRoute.html +1 -1
  158. data/docs/api/Brut/FrontEnd/Routing/FormRoute.html +1 -1
  159. data/docs/api/Brut/FrontEnd/Routing/MissingForm.html +1 -1
  160. data/docs/api/Brut/FrontEnd/Routing/MissingHandler.html +1 -1
  161. data/docs/api/Brut/FrontEnd/Routing/MissingPage.html +1 -1
  162. data/docs/api/Brut/FrontEnd/Routing/MissingPath.html +1 -1
  163. data/docs/api/Brut/FrontEnd/Routing/PageRoute.html +1 -1
  164. data/docs/api/Brut/FrontEnd/Routing/Route.html +1 -1
  165. data/docs/api/Brut/FrontEnd/Routing.html +1 -1
  166. data/docs/api/Brut/FrontEnd/Session.html +1 -1
  167. data/docs/api/Brut/FrontEnd.html +1 -1
  168. data/docs/api/Brut/I18n/BaseMethods.html +1 -1
  169. data/docs/api/Brut/I18n/ForBackEnd.html +1 -1
  170. data/docs/api/Brut/I18n/ForCLI.html +1 -1
  171. data/docs/api/Brut/I18n/ForHTML.html +1 -1
  172. data/docs/api/Brut/I18n/HTTPAcceptLanguage/AlwaysEnglish.html +1 -1
  173. data/docs/api/Brut/I18n/HTTPAcceptLanguage.html +1 -1
  174. data/docs/api/Brut/I18n.html +1 -1
  175. data/docs/api/Brut/Instrumentation/LoggerSpanExporter.html +1 -1
  176. data/docs/api/Brut/Instrumentation/Methods/ClassMethods.html +596 -0
  177. data/docs/api/Brut/Instrumentation/Methods.html +173 -0
  178. data/docs/api/Brut/Instrumentation/OpenTelemetry/NormalizedAttributes.html +7 -7
  179. data/docs/api/Brut/Instrumentation/OpenTelemetry/Span.html +7 -7
  180. data/docs/api/Brut/Instrumentation/OpenTelemetry.html +19 -17
  181. data/docs/api/Brut/Instrumentation.html +3 -1
  182. data/docs/api/Brut/RubocopConfig.html +1 -1
  183. data/docs/api/Brut/SinatraHelpers/ClassMethods.html +1 -1
  184. data/docs/api/Brut/SinatraHelpers.html +1 -1
  185. data/docs/api/Brut/SpecSupport/ClockSupport.html +1 -1
  186. data/docs/api/Brut/SpecSupport/ComponentSupport.html +1 -1
  187. data/docs/api/Brut/SpecSupport/E2ETestServer.html +1 -1
  188. data/docs/api/Brut/SpecSupport/E2eSupport.html +1 -1
  189. data/docs/api/Brut/SpecSupport/EnhancedNode.html +1 -1
  190. data/docs/api/Brut/SpecSupport/FlashSupport.html +1 -1
  191. data/docs/api/Brut/SpecSupport/GeneralSupport/ClassMethods.html +1 -1
  192. data/docs/api/Brut/SpecSupport/GeneralSupport.html +1 -1
  193. data/docs/api/Brut/SpecSupport/HandlerSupport.html +1 -1
  194. data/docs/api/Brut/SpecSupport/Matchers/BeABug.html +1 -1
  195. data/docs/api/Brut/SpecSupport/Matchers/BePageFor.html +1 -1
  196. data/docs/api/Brut/SpecSupport/Matchers/BeRoutingFor.html +1 -1
  197. data/docs/api/Brut/SpecSupport/Matchers/HaveConstraintViolation.html +1 -1
  198. data/docs/api/Brut/SpecSupport/Matchers/HaveGenerated.html +1 -1
  199. data/docs/api/Brut/SpecSupport/Matchers/HaveHTMLAttribute.html +1 -1
  200. data/docs/api/Brut/SpecSupport/Matchers/HaveI18nString.html +1 -1
  201. data/docs/api/Brut/SpecSupport/Matchers/HaveLinkTo.html +1 -1
  202. data/docs/api/Brut/SpecSupport/Matchers/HaveRedirectedTo.html +1 -1
  203. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedHttpStatus.html +1 -1
  204. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedRackResponse.html +1 -1
  205. data/docs/api/Brut/SpecSupport/Matchers.html +1 -1
  206. data/docs/api/Brut/SpecSupport/RSpecSetup/OptionalSidekiqSupport.html +1 -1
  207. data/docs/api/Brut/SpecSupport/RSpecSetup.html +1 -1
  208. data/docs/api/Brut/SpecSupport/SessionSupport.html +1 -1
  209. data/docs/api/Brut/SpecSupport.html +1 -1
  210. data/docs/api/Brut.html +1 -1
  211. data/docs/api/Clock.html +1 -1
  212. data/docs/api/ModuleName.html +1 -1
  213. data/docs/api/RichString.html +1 -1
  214. data/docs/api/SemanticLogger/Appender/Async.html +1 -1
  215. data/docs/api/Sequel/Extensions/BrutInstrumentation.html +1 -1
  216. data/docs/api/Sequel/Extensions/BrutMigrations.html +1 -1
  217. data/docs/api/Sequel/Extensions.html +1 -1
  218. data/docs/api/Sequel/Plugins/CreatedAt/InstanceMethods.html +1 -1
  219. data/docs/api/Sequel/Plugins/CreatedAt.html +1 -1
  220. data/docs/api/Sequel/Plugins/ExternalId/ClassMethods.html +1 -1
  221. data/docs/api/Sequel/Plugins/ExternalId/InstanceMethods.html +1 -1
  222. data/docs/api/Sequel/Plugins/ExternalId.html +1 -1
  223. data/docs/api/Sequel/Plugins/FindBang/ClassMethods.html +1 -1
  224. data/docs/api/Sequel/Plugins/FindBang.html +1 -1
  225. data/docs/api/Sequel/Plugins.html +1 -1
  226. data/docs/api/Sequel.html +1 -1
  227. data/docs/api/_index.html +36 -1
  228. data/docs/api/class_list.html +1 -1
  229. data/docs/api/file.README.html +1 -1
  230. data/docs/api/index.html +1 -1
  231. data/docs/api/method_list.html +364 -252
  232. data/docs/api/top-level-namespace.html +1 -1
  233. data/docs/assets/{app.0-aKXKdt.js → app.CGHFI-MA.js} +1 -1
  234. data/docs/assets/chunks/@localSearchIndexroot.DcMsFVrO.js +1 -0
  235. data/docs/assets/chunks/{VPLocalSearchBox.CW-UBkNA.js → VPLocalSearchBox.-c-Kihwo.js} +1 -1
  236. data/docs/assets/chunks/{theme.a6feKWJO.js → theme.DpqrgXG8.js} +2 -2
  237. data/docs/assets/{components.md.BzVRwegp.js → components.md.X4h_TEG-.js} +3 -3
  238. data/docs/assets/{configuration.md.eM5wFVi5.js → configuration.md.CPCyUo5A.js} +1 -1
  239. data/docs/assets/{forms.md.B3BHvCV3.js → forms.md.BwmfAZ6Z.js} +2 -2
  240. data/docs/assets/{getting-started.md.BgR0ZHsl.js → getting-started.md.mPgbkbBv.js} +2 -2
  241. data/docs/assets/instrumentation.md._lNSriEZ.js +90 -0
  242. data/docs/assets/instrumentation.md._lNSriEZ.lean.js +1 -0
  243. data/docs/assets/{recipes_authentication.md.Dzvi_g69.js → recipes_authentication.md.BAISoxmN.js} +1 -0
  244. data/docs/assets/{tutorials_01-intro.md.BXvYWcO9.js → tutorials_01-intro.md.B4sUBY3X.js} +10 -10
  245. data/docs/assets/{tutorials_01-intro.md.BXvYWcO9.lean.js → tutorials_01-intro.md.B4sUBY3X.lean.js} +1 -1
  246. data/docs/assets/{tutorials_02-dialog.md.CIeg8R--.js → tutorials_02-dialog.md.DOonTBrE.js} +1 -1
  247. data/docs/assets.html +3 -3
  248. data/docs/brut-js/api/AjaxSubmit.html +16 -6
  249. data/docs/brut-js/api/AjaxSubmit.js.html +27 -7
  250. data/docs/brut-js/api/Autosubmit.html +1 -1
  251. data/docs/brut-js/api/Autosubmit.js.html +1 -1
  252. data/docs/brut-js/api/BaseCustomElement.html +1 -1
  253. data/docs/brut-js/api/BaseCustomElement.js.html +1 -1
  254. data/docs/brut-js/api/BrutCustomElements.html +1 -1
  255. data/docs/brut-js/api/BufferedLogger.html +1 -1
  256. data/docs/brut-js/api/ConfirmSubmit.html +1 -1
  257. data/docs/brut-js/api/ConfirmSubmit.js.html +1 -1
  258. data/docs/brut-js/api/ConfirmationDialog.html +1 -1
  259. data/docs/brut-js/api/ConfirmationDialog.js.html +1 -1
  260. data/docs/brut-js/api/ConstraintViolationMessage.html +1 -1
  261. data/docs/brut-js/api/ConstraintViolationMessage.js.html +1 -1
  262. data/docs/brut-js/api/ConstraintViolationMessages.html +1 -1
  263. data/docs/brut-js/api/ConstraintViolationMessages.js.html +1 -1
  264. data/docs/brut-js/api/CopyToClipboard.html +1 -1
  265. data/docs/brut-js/api/CopyToClipboard.js.html +1 -1
  266. data/docs/brut-js/api/Form.html +1 -1
  267. data/docs/brut-js/api/Form.js.html +1 -1
  268. data/docs/brut-js/api/I18nTranslation.html +1 -1
  269. data/docs/brut-js/api/I18nTranslation.js.html +1 -1
  270. data/docs/brut-js/api/LocaleDetection.html +1 -1
  271. data/docs/brut-js/api/LocaleDetection.js.html +1 -1
  272. data/docs/brut-js/api/Logger.html +1 -1
  273. data/docs/brut-js/api/Logger.js.html +1 -1
  274. data/docs/brut-js/api/Message.html +1 -1
  275. data/docs/brut-js/api/Message.js.html +1 -1
  276. data/docs/brut-js/api/PrefixedLogger.html +1 -1
  277. data/docs/brut-js/api/RichString.html +1 -1
  278. data/docs/brut-js/api/RichString.js.html +1 -1
  279. data/docs/brut-js/api/Tabs.html +1 -1
  280. data/docs/brut-js/api/Tabs.js.html +1 -1
  281. data/docs/brut-js/api/Tracing.html +1 -1
  282. data/docs/brut-js/api/Tracing.js.html +1 -1
  283. data/docs/brut-js/api/external-CustomElementRegistry.html +1 -1
  284. data/docs/brut-js/api/external-Performance.html +1 -1
  285. data/docs/brut-js/api/external-Promise.html +1 -1
  286. data/docs/brut-js/api/external-ValidityState.html +1 -1
  287. data/docs/brut-js/api/external-Window.html +1 -1
  288. data/docs/brut-js/api/external-fetch.html +1 -1
  289. data/docs/brut-js/api/global.html +1 -1
  290. data/docs/brut-js/api/index.html +1 -1
  291. data/docs/brut-js/api/index.js.html +1 -1
  292. data/docs/brut-js/api/module-testing.html +1 -1
  293. data/docs/brut-js/api/testing.AssetMetadata.html +1 -1
  294. data/docs/brut-js/api/testing.AssetMetadataLoader.html +1 -1
  295. data/docs/brut-js/api/testing.CustomElementTest.html +1 -1
  296. data/docs/brut-js/api/testing.DOMCreator.html +1 -1
  297. data/docs/brut-js/api/testing_AssetMetadata.js.html +1 -1
  298. data/docs/brut-js/api/testing_AssetMetadataLoader.js.html +1 -1
  299. data/docs/brut-js/api/testing_CustomElementTest.js.html +1 -1
  300. data/docs/brut-js/api/testing_DOMCreator.js.html +1 -1
  301. data/docs/brut-js/api/testing_index.js.html +1 -1
  302. data/docs/brut-js.html +3 -3
  303. data/docs/business-logic.html +3 -3
  304. data/docs/cli.html +3 -3
  305. data/docs/components.html +7 -7
  306. data/docs/configuration.html +5 -5
  307. data/docs/css.html +3 -3
  308. data/docs/custom-element-tests.html +3 -3
  309. data/docs/database-access.html +3 -3
  310. data/docs/database-schema.html +3 -3
  311. data/docs/deployment.html +3 -3
  312. data/docs/dev-environment.html +3 -3
  313. data/docs/dir-structure.html +3 -3
  314. data/docs/doc-conventions.html +3 -3
  315. data/docs/end-to-end-tests.html +3 -3
  316. data/docs/features.html +3 -3
  317. data/docs/flash-and-session.html +3 -3
  318. data/docs/form-constraints.html +3 -3
  319. data/docs/forms.html +6 -6
  320. data/docs/getting-started.html +6 -6
  321. data/docs/handlers.html +3 -3
  322. data/docs/hashmap.json +1 -1
  323. data/docs/hooks.html +3 -3
  324. data/docs/i18n.html +3 -3
  325. data/docs/index.html +3 -3
  326. data/docs/instrumentation.html +61 -6
  327. data/docs/javascript.html +3 -3
  328. data/docs/jobs.html +3 -3
  329. data/docs/keyword-injection.html +3 -3
  330. data/docs/layouts.html +3 -3
  331. data/docs/lsp.html +3 -3
  332. data/docs/markdown-examples.html +3 -3
  333. data/docs/middleware.html +3 -3
  334. data/docs/overview.html +3 -3
  335. data/docs/pages.html +3 -3
  336. data/docs/recipes/alternate-layouts.html +3 -3
  337. data/docs/recipes/authentication.html +5 -4
  338. data/docs/recipes/blank-layouts.html +3 -3
  339. data/docs/recipes/custom-flash.html +3 -3
  340. data/docs/recipes/form-errors.html +3 -3
  341. data/docs/recipes/indexed-forms.html +3 -3
  342. data/docs/recipes/migrations.html +3 -3
  343. data/docs/recipes/text-field-component.html +3 -3
  344. data/docs/roadmap.html +3 -3
  345. data/docs/routes.html +3 -3
  346. data/docs/security.html +3 -3
  347. data/docs/seed-data.html +3 -3
  348. data/docs/space-time-continuum.html +3 -3
  349. data/docs/tutorial.html +3 -3
  350. data/docs/tutorials/01-intro.html +12 -12
  351. data/docs/tutorials/02-dialog.html +5 -5
  352. data/docs/unit-tests.html +3 -3
  353. data/docs/why.html +3 -3
  354. data/lib/brut/front_end/components/input.rb +1 -0
  355. data/lib/brut/front_end/components/inputs/button_tag.rb +43 -0
  356. data/lib/brut/front_end/components/inputs/input_tag.rb +3 -1
  357. data/lib/brut/front_end/components/inputs/select_tag_with_options.rb +0 -1
  358. data/lib/brut/front_end/components/inputs/textarea_tag.rb +0 -1
  359. data/lib/brut/front_end/form.rb +7 -5
  360. data/lib/brut/front_end/forms/button.rb +21 -0
  361. data/lib/brut/front_end/forms/button_input_definition.rb +33 -0
  362. data/lib/brut/front_end/forms/input_declarations.rb +10 -0
  363. data/lib/brut/front_end/forms/input_definition.rb +7 -2
  364. data/lib/brut/version.rb +1 -1
  365. data/mkbrut/Gemfile.lock +1 -1
  366. data/mkbrut/lib/mkbrut/version.rb +1 -1
  367. metadata +29 -21
  368. data/docs/assets/chunks/@localSearchIndexroot.DPhqaz1b.js +0 -1
  369. data/docs/assets/instrumentation.md.BgcaGVYH.js +0 -35
  370. data/docs/assets/instrumentation.md.BgcaGVYH.lean.js +0 -1
  371. /data/docs/assets/{components.md.BzVRwegp.lean.js → components.md.X4h_TEG-.lean.js} +0 -0
  372. /data/docs/assets/{configuration.md.eM5wFVi5.lean.js → configuration.md.CPCyUo5A.lean.js} +0 -0
  373. /data/docs/assets/{forms.md.B3BHvCV3.lean.js → forms.md.BwmfAZ6Z.lean.js} +0 -0
  374. /data/docs/assets/{getting-started.md.BgR0ZHsl.lean.js → getting-started.md.mPgbkbBv.lean.js} +0 -0
  375. /data/docs/assets/{recipes_authentication.md.Dzvi_g69.lean.js → recipes_authentication.md.BAISoxmN.lean.js} +0 -0
  376. /data/docs/assets/{tutorials_02-dialog.md.CIeg8R--.lean.js → tutorials_02-dialog.md.DOonTBrE.lean.js} +0 -0
@@ -146,7 +146,7 @@ did what you expect</p>
146
146
  </div>
147
147
 
148
148
  <div id="footer">
149
- Generated on Fri Aug 15 22:12:02 2025 by
149
+ Generated on Fri Sep 5 20:59:15 2025 by
150
150
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
151
151
  0.9.37 (ruby-3.4.5).
152
152
  </div>
@@ -115,7 +115,7 @@
115
115
  </div>
116
116
 
117
117
  <div id="footer">
118
- Generated on Fri Aug 15 22:12:00 2025 by
118
+ Generated on Fri Sep 5 20:59:14 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>
@@ -325,7 +325,7 @@
325
325
  </div>
326
326
 
327
327
  <div id="footer">
328
- Generated on Fri Aug 15 22:12:01 2025 by
328
+ Generated on Fri Sep 5 20:59:15 2025 by
329
329
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
330
330
  0.9.37 (ruby-3.4.5).
331
331
  </div>
@@ -627,7 +627,7 @@ re-run a test. But, it's still monkey-patching.</p>
627
627
  </div>
628
628
 
629
629
  <div id="footer">
630
- Generated on Fri Aug 15 22:12:01 2025 by
630
+ Generated on Fri Sep 5 20:59:15 2025 by
631
631
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
632
632
  0.9.37 (ruby-3.4.5).
633
633
  </div>
@@ -186,7 +186,7 @@
186
186
  </div>
187
187
 
188
188
  <div id="footer">
189
- Generated on Fri Aug 15 22:12:00 2025 by
189
+ Generated on Fri Sep 5 20:59:14 2025 by
190
190
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
191
191
  0.9.37 (ruby-3.4.5).
192
192
  </div>
@@ -119,7 +119,7 @@ Your app's <code>spec_helper.rb</code> should require these explicitly.</p>
119
119
  </div>
120
120
 
121
121
  <div id="footer">
122
- Generated on Fri Aug 15 22:12:00 2025 by
122
+ Generated on Fri Sep 5 20:59:14 2025 by
123
123
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
124
124
  0.9.37 (ruby-3.4.5).
125
125
  </div>
data/docs/api/Brut.html CHANGED
@@ -331,7 +331,7 @@
331
331
  </div>
332
332
 
333
333
  <div id="footer">
334
- Generated on Fri Aug 15 22:12:00 2025 by
334
+ Generated on Fri Sep 5 20:59:14 2025 by
335
335
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
336
336
  0.9.37 (ruby-3.4.5).
337
337
  </div>
data/docs/api/Clock.html CHANGED
@@ -593,7 +593,7 @@ returned in the configured time zone.</p>
593
593
  </div>
594
594
 
595
595
  <div id="footer">
596
- Generated on Fri Aug 15 22:12:01 2025 by
596
+ Generated on Fri Sep 5 20:59:14 2025 by
597
597
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
598
598
  0.9.37 (ruby-3.4.5).
599
599
  </div>
@@ -585,7 +585,7 @@
585
585
  </div>
586
586
 
587
587
  <div id="footer">
588
- Generated on Fri Aug 15 22:12:01 2025 by
588
+ Generated on Fri Sep 5 20:59:14 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 Fri Aug 15 22:12:01 2025 by
768
+ Generated on Fri Sep 5 20:59:14 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 Fri Aug 15 22:12:01 2025 by
212
+ Generated on Fri Sep 5 20:59:15 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 Fri Aug 15 22:12:00 2025 by
112
+ Generated on Fri Sep 5 20:59:14 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 Fri Aug 15 22:12:00 2025 by
534
+ Generated on Fri Sep 5 20:59:14 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 Fri Aug 15 22:12:00 2025 by
110
+ Generated on Fri Sep 5 20:59:14 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 Fri Aug 15 22:12:00 2025 by
98
+ Generated on Fri Sep 5 20:59:14 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 Fri Aug 15 22:12:00 2025 by
118
+ Generated on Fri Sep 5 20:59:14 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 Fri Aug 15 22:12:00 2025 by
200
+ Generated on Fri Sep 5 20:59:14 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 Fri Aug 15 22:12:00 2025 by
179
+ Generated on Fri Sep 5 20:59:14 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 Fri Aug 15 22:12:00 2025 by
211
+ Generated on Fri Sep 5 20:59:14 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 Fri Aug 15 22:12:00 2025 by
195
+ Generated on Fri Sep 5 20:59:14 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 Fri Aug 15 22:12:00 2025 by
118
+ Generated on Fri Sep 5 20:59:14 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 Fri Aug 15 22:12:00 2025 by
110
+ Generated on Fri Sep 5 20:59:14 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 Fri Aug 15 22:12:00 2025 by
110
+ Generated on Fri Sep 5 20:59:14 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
@@ -247,6 +247,27 @@
247
247
 
248
248
  </li>
249
249
 
250
+ <li>
251
+ <span class='object_link'><a href="Brut/FrontEnd/Forms/Button.html" title="Brut::FrontEnd::Forms::Button (class)">Button</a></span>
252
+
253
+ <small>(Brut::FrontEnd::Forms)</small>
254
+
255
+ </li>
256
+
257
+ <li>
258
+ <span class='object_link'><a href="Brut/FrontEnd/Forms/ButtonInputDefinition.html" title="Brut::FrontEnd::Forms::ButtonInputDefinition (class)">ButtonInputDefinition</a></span>
259
+
260
+ <small>(Brut::FrontEnd::Forms)</small>
261
+
262
+ </li>
263
+
264
+ <li>
265
+ <span class='object_link'><a href="Brut/FrontEnd/Components/Inputs/ButtonTag.html" title="Brut::FrontEnd::Components::Inputs::ButtonTag (class)">ButtonTag</a></span>
266
+
267
+ <small>(Brut::FrontEnd::Components::Inputs)</small>
268
+
269
+ </li>
270
+
250
271
  </ul>
251
272
  </ul>
252
273
 
@@ -297,6 +318,13 @@
297
318
 
298
319
  </li>
299
320
 
321
+ <li>
322
+ <span class='object_link'><a href="Brut/Instrumentation/Methods/ClassMethods.html" title="Brut::Instrumentation::Methods::ClassMethods (module)">ClassMethods</a></span>
323
+
324
+ <small>(Brut::Instrumentation::Methods)</small>
325
+
326
+ </li>
327
+
300
328
  <li>
301
329
  <span class='object_link'><a href="Brut/SpecSupport/GeneralSupport/ClassMethods.html" title="Brut::SpecSupport::GeneralSupport::ClassMethods (module)">ClassMethods</a></span>
302
330
 
@@ -1084,6 +1112,13 @@
1084
1112
 
1085
1113
  </li>
1086
1114
 
1115
+ <li>
1116
+ <span class='object_link'><a href="Brut/Instrumentation/Methods.html" title="Brut::Instrumentation::Methods (module)">Methods</a></span>
1117
+
1118
+ <small>(Brut::Instrumentation)</small>
1119
+
1120
+ </li>
1121
+
1087
1122
  <li>
1088
1123
  <span class='object_link'><a href="Brut/FrontEnd/Middleware.html" title="Brut::FrontEnd::Middleware (class)">Middleware</a></span>
1089
1124
 
@@ -1674,7 +1709,7 @@
1674
1709
  </div>
1675
1710
 
1676
1711
  <div id="footer">
1677
- Generated on Fri Aug 15 22:12:00 2025 by
1712
+ Generated on Fri Sep 5 20:59:14 2025 by
1678
1713
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1679
1714
  0.9.37 (ruby-3.4.5).
1680
1715
  </div>