brut 0.16.0 → 0.17.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 (444) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +6 -0
  3. data/CHANGELOG.md +5 -0
  4. data/Gemfile.lock +4 -1
  5. data/bin/docs +7 -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.gemspec +2 -0
  11. data/docs/404.html +2 -2
  12. data/docs/adrs.html +3 -3
  13. data/docs/ai.html +3 -3
  14. data/docs/api/Brut/BackEnd/SeedData.html +1 -1
  15. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server/FlushSpans.html +1 -1
  16. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server.html +1 -1
  17. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares.html +1 -1
  18. data/docs/api/Brut/BackEnd/Sidekiq.html +1 -1
  19. data/docs/api/Brut/BackEnd/Validators/FormValidator.html +1 -1
  20. data/docs/api/Brut/BackEnd/Validators.html +1 -1
  21. data/docs/api/Brut/BackEnd.html +1 -1
  22. data/docs/api/Brut/CLI/App.html +1 -1
  23. data/docs/api/Brut/CLI/AppRunner.html +1 -1
  24. data/docs/api/Brut/CLI/Apps/BuildAssets/All.html +1 -1
  25. data/docs/api/Brut/CLI/Apps/BuildAssets/CSS.html +1 -1
  26. data/docs/api/Brut/CLI/Apps/BuildAssets/Images.html +2 -2
  27. data/docs/api/Brut/CLI/Apps/BuildAssets/JS.html +1 -1
  28. data/docs/api/Brut/CLI/Apps/BuildAssets.html +1 -1
  29. data/docs/api/Brut/CLI/Apps/DB/Create.html +1 -1
  30. data/docs/api/Brut/CLI/Apps/DB/Drop.html +1 -1
  31. data/docs/api/Brut/CLI/Apps/DB/Migrate.html +1 -1
  32. data/docs/api/Brut/CLI/Apps/DB/NewMigration.html +1 -1
  33. data/docs/api/Brut/CLI/Apps/DB/Rebuild.html +1 -1
  34. data/docs/api/Brut/CLI/Apps/DB/Seed.html +1 -1
  35. data/docs/api/Brut/CLI/Apps/DB/Status.html +1 -1
  36. data/docs/api/Brut/CLI/Apps/DB.html +1 -1
  37. data/docs/api/Brut/CLI/Apps/DeployBase/GitChecks.html +1 -1
  38. data/docs/api/Brut/CLI/Apps/DeployBase.html +1 -1
  39. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy/Deploy.html +2 -2
  40. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy.html +1 -1
  41. data/docs/api/Brut/CLI/Apps/Scaffold/Action/Route.html +1 -1
  42. data/docs/api/Brut/CLI/Apps/Scaffold/Action.html +1 -1
  43. data/docs/api/Brut/CLI/Apps/Scaffold/Component.html +1 -1
  44. data/docs/api/Brut/CLI/Apps/Scaffold/CustomElementTest.html +1 -1
  45. data/docs/api/Brut/CLI/Apps/Scaffold/DbModel.html +1 -1
  46. data/docs/api/Brut/CLI/Apps/Scaffold/E2ETest.html +1 -1
  47. data/docs/api/Brut/CLI/Apps/Scaffold/Form.html +1 -1
  48. data/docs/api/Brut/CLI/Apps/Scaffold/Page/Route.html +1 -1
  49. data/docs/api/Brut/CLI/Apps/Scaffold/Page.html +1 -1
  50. data/docs/api/Brut/CLI/Apps/Scaffold/RoutesEditor.html +1 -1
  51. data/docs/api/Brut/CLI/Apps/Scaffold/Test.html +1 -1
  52. data/docs/api/Brut/CLI/Apps/Scaffold.html +1 -1
  53. data/docs/api/Brut/CLI/Apps/Test/Audit.html +10 -6
  54. data/docs/api/Brut/CLI/Apps/Test/E2e.html +1 -1
  55. data/docs/api/Brut/CLI/Apps/Test/JS.html +1 -1
  56. data/docs/api/Brut/CLI/Apps/Test/Run.html +1 -1
  57. data/docs/api/Brut/CLI/Apps/Test.html +1 -1
  58. data/docs/api/Brut/CLI/Apps.html +1 -1
  59. data/docs/api/Brut/CLI/Command.html +1 -1
  60. data/docs/api/Brut/CLI/Error.html +1 -1
  61. data/docs/api/Brut/CLI/ExecutionResults/Result.html +1 -1
  62. data/docs/api/Brut/CLI/ExecutionResults.html +1 -1
  63. data/docs/api/Brut/CLI/Executor.html +1 -1
  64. data/docs/api/Brut/CLI/InvalidOption.html +1 -1
  65. data/docs/api/Brut/CLI/Options.html +1 -1
  66. data/docs/api/Brut/CLI/Output.html +1 -1
  67. data/docs/api/Brut/CLI/SystemExecError.html +1 -1
  68. data/docs/api/Brut/CLI.html +1 -1
  69. data/docs/api/Brut/FactoryBot.html +1 -1
  70. data/docs/api/Brut/Framework/App.html +1 -1
  71. data/docs/api/Brut/Framework/Config.html +1 -1
  72. data/docs/api/Brut/Framework/Container.html +1 -1
  73. data/docs/api/Brut/Framework/Error.html +1 -1
  74. data/docs/api/Brut/Framework/Errors/AbstractMethod.html +1 -1
  75. data/docs/api/Brut/Framework/Errors/Bug.html +1 -1
  76. data/docs/api/Brut/Framework/Errors/MissingConfiguration.html +1 -1
  77. data/docs/api/Brut/Framework/Errors/MissingParameter.html +1 -1
  78. data/docs/api/Brut/Framework/Errors/NoClassForPath.html +1 -1
  79. data/docs/api/Brut/Framework/Errors/NotFound.html +1 -1
  80. data/docs/api/Brut/Framework/Errors/NotImplemented.html +1 -1
  81. data/docs/api/Brut/Framework/Errors.html +1 -1
  82. data/docs/api/Brut/Framework/FussyTypeEnforcement.html +1 -1
  83. data/docs/api/Brut/Framework/MCP.html +1 -1
  84. data/docs/api/Brut/Framework/ProjectEnvironment.html +1 -1
  85. data/docs/api/Brut/Framework.html +1 -1
  86. data/docs/api/Brut/FrontEnd/AssetPathResolver.html +1 -1
  87. data/docs/api/Brut/FrontEnd/Component/Helpers.html +1 -1
  88. data/docs/api/Brut/FrontEnd/Component.html +1 -1
  89. data/docs/api/Brut/FrontEnd/Components/ConstraintViolations.html +1 -1
  90. data/docs/api/Brut/FrontEnd/Components/FormTag.html +1 -1
  91. data/docs/api/Brut/FrontEnd/Components/I18nTranslations.html +1 -1
  92. data/docs/api/Brut/FrontEnd/Components/Input.html +1 -1
  93. data/docs/api/Brut/FrontEnd/Components/Inputs/ButtonTag.html +1 -1
  94. data/docs/api/Brut/FrontEnd/Components/Inputs/CsrfToken.html +1 -1
  95. data/docs/api/Brut/FrontEnd/Components/Inputs/InputTag.html +1 -1
  96. data/docs/api/Brut/FrontEnd/Components/Inputs/RadioButton.html +1 -1
  97. data/docs/api/Brut/FrontEnd/Components/Inputs/SelectTagWithOptions.html +1 -1
  98. data/docs/api/Brut/FrontEnd/Components/Inputs/TextareaTag.html +1 -1
  99. data/docs/api/Brut/FrontEnd/Components/Inputs.html +1 -1
  100. data/docs/api/Brut/FrontEnd/Components/LocaleDetection.html +1 -1
  101. data/docs/api/Brut/FrontEnd/Components/PageIdentifier.html +1 -1
  102. data/docs/api/Brut/FrontEnd/Components/TimeTag.html +1 -1
  103. data/docs/api/Brut/FrontEnd/Components/Traceparent.html +1 -1
  104. data/docs/api/Brut/FrontEnd/Components.html +1 -1
  105. data/docs/api/Brut/FrontEnd/CsrfProtector.html +1 -1
  106. data/docs/api/Brut/FrontEnd/Download.html +1 -1
  107. data/docs/api/Brut/FrontEnd/Flash.html +1 -1
  108. data/docs/api/Brut/FrontEnd/Form.html +1 -1
  109. data/docs/api/Brut/FrontEnd/Forms/Button.html +1 -1
  110. data/docs/api/Brut/FrontEnd/Forms/ButtonInputDefinition.html +1 -1
  111. data/docs/api/Brut/FrontEnd/Forms/ConstraintViolation.html +1 -1
  112. data/docs/api/Brut/FrontEnd/Forms/Input/Color.html +1 -1
  113. data/docs/api/Brut/FrontEnd/Forms/Input/TimeOfDay.html +1 -1
  114. data/docs/api/Brut/FrontEnd/Forms/Input.html +1 -1
  115. data/docs/api/Brut/FrontEnd/Forms/InputDeclarations.html +1 -1
  116. data/docs/api/Brut/FrontEnd/Forms/InputDefinition.html +1 -1
  117. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInput.html +1 -1
  118. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInputDefinition.html +1 -1
  119. data/docs/api/Brut/FrontEnd/Forms/SelectInput.html +1 -1
  120. data/docs/api/Brut/FrontEnd/Forms/SelectInputDefinition.html +1 -1
  121. data/docs/api/Brut/FrontEnd/Forms/ValidityState.html +1 -1
  122. data/docs/api/Brut/FrontEnd/Forms.html +1 -1
  123. data/docs/api/Brut/FrontEnd/GenericResponse.html +1 -1
  124. data/docs/api/Brut/FrontEnd/Handler.html +1 -1
  125. data/docs/api/Brut/FrontEnd/Handlers/CspReportingHandler.html +1 -1
  126. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler/TraceParent.html +1 -1
  127. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler.html +1 -1
  128. data/docs/api/Brut/FrontEnd/Handlers/LocaleDetectionHandler.html +1 -1
  129. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler/Form.html +1 -1
  130. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler.html +1 -1
  131. data/docs/api/Brut/FrontEnd/Handlers.html +1 -1
  132. data/docs/api/Brut/FrontEnd/HandlingResults.html +1 -1
  133. data/docs/api/Brut/FrontEnd/HttpMethod.html +1 -1
  134. data/docs/api/Brut/FrontEnd/HttpStatus.html +1 -1
  135. data/docs/api/Brut/FrontEnd/InlineSvgLocator.html +1 -1
  136. data/docs/api/Brut/FrontEnd/Layout.html +1 -1
  137. data/docs/api/Brut/FrontEnd/Middleware.html +1 -1
  138. data/docs/api/Brut/FrontEnd/Middlewares/AnnotateBrutOwnedPaths.html +1 -1
  139. data/docs/api/Brut/FrontEnd/Middlewares/Favicon.html +1 -1
  140. data/docs/api/Brut/FrontEnd/Middlewares/OpenTelemetrySpan.html +1 -1
  141. data/docs/api/Brut/FrontEnd/Middlewares/ReloadApp.html +1 -1
  142. data/docs/api/Brut/FrontEnd/Middlewares.html +1 -1
  143. data/docs/api/Brut/FrontEnd/Page.html +1 -1
  144. data/docs/api/Brut/FrontEnd/Pages/MissingPage.html +1 -1
  145. data/docs/api/Brut/FrontEnd/Pages.html +1 -1
  146. data/docs/api/Brut/FrontEnd/RequestContext.html +1 -1
  147. data/docs/api/Brut/FrontEnd/RouteHook.html +1 -1
  148. data/docs/api/Brut/FrontEnd/RouteHooks/AgeFlash.html +1 -1
  149. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineScripts.html +1 -1
  150. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts/ReportOnly.html +1 -1
  151. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts.html +1 -1
  152. data/docs/api/Brut/FrontEnd/RouteHooks/LocaleDetection.html +1 -1
  153. data/docs/api/Brut/FrontEnd/RouteHooks/SetupRequestContext.html +1 -1
  154. data/docs/api/Brut/FrontEnd/RouteHooks.html +1 -1
  155. data/docs/api/Brut/FrontEnd/Routing/FormHandlerRoute.html +1 -1
  156. data/docs/api/Brut/FrontEnd/Routing/FormRoute.html +1 -1
  157. data/docs/api/Brut/FrontEnd/Routing/MissingForm.html +1 -1
  158. data/docs/api/Brut/FrontEnd/Routing/MissingHandler.html +1 -1
  159. data/docs/api/Brut/FrontEnd/Routing/MissingPage.html +1 -1
  160. data/docs/api/Brut/FrontEnd/Routing/MissingPath.html +1 -1
  161. data/docs/api/Brut/FrontEnd/Routing/PageRoute.html +1 -1
  162. data/docs/api/Brut/FrontEnd/Routing/Route.html +1 -1
  163. data/docs/api/Brut/FrontEnd/Routing.html +1 -1
  164. data/docs/api/Brut/FrontEnd/Session.html +1 -1
  165. data/docs/api/Brut/FrontEnd.html +1 -1
  166. data/docs/api/Brut/I18n/BaseMethods.html +1 -1
  167. data/docs/api/Brut/I18n/ForBackEnd.html +1 -1
  168. data/docs/api/Brut/I18n/ForCLI.html +1 -1
  169. data/docs/api/Brut/I18n/ForHTML.html +1 -1
  170. data/docs/api/Brut/I18n/HTTPAcceptLanguage/AlwaysEnglish.html +1 -1
  171. data/docs/api/Brut/I18n/HTTPAcceptLanguage.html +1 -1
  172. data/docs/api/Brut/I18n.html +1 -1
  173. data/docs/api/Brut/Instrumentation/LoggerSpanExporter.html +1 -1
  174. data/docs/api/Brut/Instrumentation/Methods/ClassMethods.html +1 -1
  175. data/docs/api/Brut/Instrumentation/Methods.html +1 -1
  176. data/docs/api/Brut/Instrumentation/OpenTelemetry/NormalizedAttributes.html +1 -1
  177. data/docs/api/Brut/Instrumentation/OpenTelemetry/Span.html +1 -1
  178. data/docs/api/Brut/Instrumentation/OpenTelemetry.html +1 -1
  179. data/docs/api/Brut/Instrumentation.html +1 -1
  180. data/docs/api/Brut/RubocopConfig.html +1 -1
  181. data/docs/api/Brut/SinatraHelpers/ClassMethods.html +1 -1
  182. data/docs/api/Brut/SinatraHelpers.html +1 -1
  183. data/docs/api/Brut/SpecSupport/ClockSupport.html +1 -1
  184. data/docs/api/Brut/SpecSupport/ComponentSupport.html +1 -1
  185. data/docs/api/Brut/SpecSupport/E2ETestServer.html +1 -1
  186. data/docs/api/Brut/SpecSupport/E2eSupport.html +1 -1
  187. data/docs/api/Brut/SpecSupport/EnhancedNode.html +1 -1
  188. data/docs/api/Brut/SpecSupport/FlashSupport.html +1 -1
  189. data/docs/api/Brut/SpecSupport/GeneralSupport/ClassMethods.html +1 -1
  190. data/docs/api/Brut/SpecSupport/GeneralSupport.html +1 -1
  191. data/docs/api/Brut/SpecSupport/HandlerSupport.html +1 -1
  192. data/docs/api/Brut/SpecSupport/Matchers/BeABug.html +1 -1
  193. data/docs/api/Brut/SpecSupport/Matchers/BePageFor.html +1 -1
  194. data/docs/api/Brut/SpecSupport/Matchers/BeRoutingFor.html +1 -1
  195. data/docs/api/Brut/SpecSupport/Matchers/HaveConstraintViolation.html +1 -1
  196. data/docs/api/Brut/SpecSupport/Matchers/HaveGenerated.html +1 -1
  197. data/docs/api/Brut/SpecSupport/Matchers/HaveHTMLAttribute.html +1 -1
  198. data/docs/api/Brut/SpecSupport/Matchers/HaveI18nString.html +1 -1
  199. data/docs/api/Brut/SpecSupport/Matchers/HaveLinkTo.html +1 -1
  200. data/docs/api/Brut/SpecSupport/Matchers/HaveRedirectedTo.html +1 -1
  201. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedHttpStatus.html +1 -1
  202. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedRackResponse.html +1 -1
  203. data/docs/api/Brut/SpecSupport/Matchers.html +1 -1
  204. data/docs/api/Brut/SpecSupport/RSpecSetup/OptionalSidekiqSupport.html +1 -1
  205. data/docs/api/Brut/SpecSupport/RSpecSetup.html +1 -1
  206. data/docs/api/Brut/SpecSupport/SessionSupport.html +1 -1
  207. data/docs/api/Brut/SpecSupport.html +1 -1
  208. data/docs/api/Brut/TUI/AnsiEscapeCode/Mod.html +409 -0
  209. data/docs/api/Brut/TUI/AnsiEscapeCode.html +426 -0
  210. data/docs/api/Brut/TUI/EventLoop/Deque.html +531 -0
  211. data/docs/api/Brut/TUI/EventLoop.html +676 -0
  212. data/docs/api/Brut/TUI/Events/BaseEvent.html +449 -0
  213. data/docs/api/Brut/TUI/Events/EventBus.html +485 -0
  214. data/docs/api/Brut/TUI/Events/EventLoopStarted.html +211 -0
  215. data/docs/api/Brut/TUI/Events/Exception.html +523 -0
  216. data/docs/api/Brut/TUI/Events/Tick.html +294 -0
  217. data/docs/api/Brut/TUI/Events.html +131 -0
  218. data/docs/api/Brut/TUI/MarkupString.html +537 -0
  219. data/docs/api/Brut/TUI/Script/BlockStep.html +300 -0
  220. data/docs/api/Brut/TUI/Script/Events/CommandExecutionFailed.html +252 -0
  221. data/docs/api/Brut/TUI/Script/Events/CommandExecutionSucceeded.html +163 -0
  222. data/docs/api/Brut/TUI/Script/Events/CommandStdErr.html +163 -0
  223. data/docs/api/Brut/TUI/Script/Events/CommandStdOut.html +300 -0
  224. data/docs/api/Brut/TUI/Script/Events/ExecutingCommand.html +298 -0
  225. data/docs/api/Brut/TUI/Script/Events/Message.html +345 -0
  226. data/docs/api/Brut/TUI/Script/Events/PhaseCompleted.html +229 -0
  227. data/docs/api/Brut/TUI/Script/Events/PhaseStarted.html +350 -0
  228. data/docs/api/Brut/TUI/Script/Events/ScriptCompleted.html +282 -0
  229. data/docs/api/Brut/TUI/Script/Events/ScriptStarted.html +343 -0
  230. data/docs/api/Brut/TUI/Script/Events/StepCompleted.html +163 -0
  231. data/docs/api/Brut/TUI/Script/Events/StepStarted.html +346 -0
  232. data/docs/api/Brut/TUI/Script/Events.html +115 -0
  233. data/docs/api/Brut/TUI/Script/ExecStep/ProcessStatusFailed.html +210 -0
  234. data/docs/api/Brut/TUI/Script/ExecStep.html +493 -0
  235. data/docs/api/Brut/TUI/Script/LoggingSubscriber.html +914 -0
  236. data/docs/api/Brut/TUI/Script/PutsSubscriber.html +783 -0
  237. data/docs/api/Brut/TUI/Script/Step.html +313 -0
  238. data/docs/api/Brut/TUI/Script.html +1250 -0
  239. data/docs/api/Brut/TUI/Terminal.html +593 -0
  240. data/docs/api/Brut/TUI/TerminalTheme.html +1403 -0
  241. data/docs/api/Brut/TUI/Themes/Dark.html +706 -0
  242. data/docs/api/Brut/TUI/Themes/Light.html +804 -0
  243. data/docs/api/Brut/TUI/Themes/None.html +218 -0
  244. data/docs/api/Brut/TUI/Themes.html +115 -0
  245. data/docs/api/Brut/TUI.html +129 -0
  246. data/docs/api/Brut.html +3 -3
  247. data/docs/api/Clock.html +1 -1
  248. data/docs/api/ModuleName.html +1 -1
  249. data/docs/api/RichString.html +1 -1
  250. data/docs/api/SemanticLogger/Appender/Async.html +1 -1
  251. data/docs/api/Sequel/Extensions/BrutInstrumentation.html +1 -1
  252. data/docs/api/Sequel/Extensions/BrutMigrations.html +1 -1
  253. data/docs/api/Sequel/Extensions.html +1 -1
  254. data/docs/api/Sequel/Plugins/CreatedAt/InstanceMethods.html +1 -1
  255. data/docs/api/Sequel/Plugins/CreatedAt.html +1 -1
  256. data/docs/api/Sequel/Plugins/ExternalId/ClassMethods.html +1 -1
  257. data/docs/api/Sequel/Plugins/ExternalId/InstanceMethods.html +1 -1
  258. data/docs/api/Sequel/Plugins/ExternalId.html +1 -1
  259. data/docs/api/Sequel/Plugins/FindBang/ClassMethods.html +1 -1
  260. data/docs/api/Sequel/Plugins/FindBang.html +1 -1
  261. data/docs/api/Sequel/Plugins.html +1 -1
  262. data/docs/api/Sequel.html +1 -1
  263. data/docs/api/SpecSupport/Matchers/BeABug.html +143 -0
  264. data/docs/api/_index.html +246 -1
  265. data/docs/api/class_list.html +1 -1
  266. data/docs/api/file.README.html +1 -1
  267. data/docs/api/index.html +1 -1
  268. data/docs/api/method_list.html +1551 -431
  269. data/docs/api/top-level-namespace.html +1 -1
  270. data/docs/assets/{app.CovevI7X.js → app.B8jAEB7R.js} +1 -1
  271. data/docs/assets/chunks/@localSearchIndexroot.DJ8mocCj.js +1 -0
  272. data/docs/assets/chunks/{VPLocalSearchBox.CrvLAvKW.js → VPLocalSearchBox.gF-Po_fz.js} +1 -1
  273. data/docs/assets/chunks/{theme.BAi5_yQI.js → theme.BjPAOJkz.js} +2 -2
  274. data/docs/assets/{components.md.9sqJ27Oc.js → components.md.Ber8UBM0.js} +3 -3
  275. data/docs/assets/{configuration.md.Cb_oAR8Z.js → configuration.md.DrJ6YVoZ.js} +1 -1
  276. data/docs/assets/{forms.md.BdpYpNIk.js → forms.md.RK0zkhm0.js} +2 -2
  277. data/docs/assets/{forms.md.BdpYpNIk.lean.js → forms.md.RK0zkhm0.lean.js} +1 -1
  278. data/docs/assets/{getting-started.md.CKpNGvno.js → getting-started.md.CGJ44juQ.js} +2 -2
  279. data/docs/assets/{tutorials_02-dialog.md.Z_DOF2mU.js → tutorials_02-dialog.md.DE5WfCXI.js} +1 -1
  280. data/docs/assets.html +3 -3
  281. data/docs/brut-css/brut.css +1 -0
  282. data/docs/brut-js/api/AjaxSubmit.html +1 -1
  283. data/docs/brut-js/api/AjaxSubmit.js.html +1 -1
  284. data/docs/brut-js/api/Autosubmit.html +1 -1
  285. data/docs/brut-js/api/Autosubmit.js.html +1 -1
  286. data/docs/brut-js/api/BaseCustomElement.html +1 -1
  287. data/docs/brut-js/api/BaseCustomElement.js.html +1 -1
  288. data/docs/brut-js/api/BrutCustomElements.html +1 -1
  289. data/docs/brut-js/api/BufferedLogger.html +1 -1
  290. data/docs/brut-js/api/ConfirmSubmit.html +1 -1
  291. data/docs/brut-js/api/ConfirmSubmit.js.html +1 -1
  292. data/docs/brut-js/api/ConfirmationDialog.html +1 -1
  293. data/docs/brut-js/api/ConfirmationDialog.js.html +1 -1
  294. data/docs/brut-js/api/ConstraintViolationMessage.html +1 -1
  295. data/docs/brut-js/api/ConstraintViolationMessage.js.html +1 -1
  296. data/docs/brut-js/api/ConstraintViolationMessages.html +1 -1
  297. data/docs/brut-js/api/ConstraintViolationMessages.js.html +1 -1
  298. data/docs/brut-js/api/CopyToClipboard.html +1 -1
  299. data/docs/brut-js/api/CopyToClipboard.js.html +1 -1
  300. data/docs/brut-js/api/Form.html +1 -1
  301. data/docs/brut-js/api/Form.js.html +1 -1
  302. data/docs/brut-js/api/I18nTranslation.html +1 -1
  303. data/docs/brut-js/api/I18nTranslation.js.html +1 -1
  304. data/docs/brut-js/api/LocaleDetection.html +1 -1
  305. data/docs/brut-js/api/LocaleDetection.js.html +1 -1
  306. data/docs/brut-js/api/Logger.html +1 -1
  307. data/docs/brut-js/api/Logger.js.html +1 -1
  308. data/docs/brut-js/api/Message.html +1 -1
  309. data/docs/brut-js/api/Message.js.html +1 -1
  310. data/docs/brut-js/api/PrefixedLogger.html +1 -1
  311. data/docs/brut-js/api/RichString.html +1 -1
  312. data/docs/brut-js/api/RichString.js.html +1 -1
  313. data/docs/brut-js/api/Tabs.html +1 -1
  314. data/docs/brut-js/api/Tabs.js.html +1 -1
  315. data/docs/brut-js/api/Toast.html +1 -1
  316. data/docs/brut-js/api/Toast.js.html +1 -1
  317. data/docs/brut-js/api/Tracing.html +1 -1
  318. data/docs/brut-js/api/Tracing.js.html +1 -1
  319. data/docs/brut-js/api/external-CustomElementRegistry.html +1 -1
  320. data/docs/brut-js/api/external-Performance.html +1 -1
  321. data/docs/brut-js/api/external-Promise.html +1 -1
  322. data/docs/brut-js/api/external-ValidityState.html +1 -1
  323. data/docs/brut-js/api/external-Window.html +1 -1
  324. data/docs/brut-js/api/external-fetch.html +1 -1
  325. data/docs/brut-js/api/global.html +1 -1
  326. data/docs/brut-js/api/index.html +1 -1
  327. data/docs/brut-js/api/index.js.html +1 -1
  328. data/docs/brut-js/api/module-testing.html +1 -1
  329. data/docs/brut-js/api/testing.AssetMetadata.html +1 -1
  330. data/docs/brut-js/api/testing.AssetMetadataLoader.html +1 -1
  331. data/docs/brut-js/api/testing.CustomElementTest.html +1 -1
  332. data/docs/brut-js/api/testing.DOMCreator.html +1 -1
  333. data/docs/brut-js/api/testing_AssetMetadata.js.html +1 -1
  334. data/docs/brut-js/api/testing_AssetMetadataLoader.js.html +1 -1
  335. data/docs/brut-js/api/testing_CustomElementTest.js.html +1 -1
  336. data/docs/brut-js/api/testing_DOMCreator.js.html +1 -1
  337. data/docs/brut-js/api/testing_index.js.html +1 -1
  338. data/docs/brut-js.html +3 -3
  339. data/docs/business-logic.html +3 -3
  340. data/docs/cli.html +3 -3
  341. data/docs/components.html +7 -7
  342. data/docs/configuration.html +5 -5
  343. data/docs/css.html +3 -3
  344. data/docs/custom-element-tests.html +3 -3
  345. data/docs/database-access.html +3 -3
  346. data/docs/database-schema.html +3 -3
  347. data/docs/deployment.html +3 -3
  348. data/docs/dev-environment.html +3 -3
  349. data/docs/dir-structure.html +3 -3
  350. data/docs/doc-conventions.html +3 -3
  351. data/docs/end-to-end-tests.html +3 -3
  352. data/docs/features.html +3 -3
  353. data/docs/flash-and-session.html +3 -3
  354. data/docs/form-constraints.html +3 -3
  355. data/docs/forms.html +5 -5
  356. data/docs/getting-started.html +6 -6
  357. data/docs/handlers.html +3 -3
  358. data/docs/hashmap.json +1 -1
  359. data/docs/hooks.html +3 -3
  360. data/docs/i18n.html +3 -3
  361. data/docs/index.html +3 -3
  362. data/docs/instrumentation.html +3 -3
  363. data/docs/javascript.html +3 -3
  364. data/docs/jobs.html +3 -3
  365. data/docs/keyword-injection.html +3 -3
  366. data/docs/layouts.html +3 -3
  367. data/docs/lsp.html +3 -3
  368. data/docs/markdown-examples.html +3 -3
  369. data/docs/middleware.html +3 -3
  370. data/docs/overview.html +3 -3
  371. data/docs/pages.html +3 -3
  372. data/docs/recipes/alternate-layouts.html +3 -3
  373. data/docs/recipes/authentication.html +3 -3
  374. data/docs/recipes/custom-flash.html +3 -3
  375. data/docs/recipes/dev-env-secrets.html +3 -3
  376. data/docs/recipes/form-errors.html +3 -3
  377. data/docs/recipes/indexed-forms.html +3 -3
  378. data/docs/recipes/migrations.html +3 -3
  379. data/docs/recipes/text-field-component.html +3 -3
  380. data/docs/roadmap.html +3 -3
  381. data/docs/routes.html +3 -3
  382. data/docs/security.html +3 -3
  383. data/docs/seed-data.html +3 -3
  384. data/docs/space-time-continuum.html +3 -3
  385. data/docs/tutorial.html +3 -3
  386. data/docs/tutorials/01-intro.html +3 -3
  387. data/docs/tutorials/02-dialog.html +5 -5
  388. data/docs/unit-tests.html +3 -3
  389. data/docs/why.html +3 -3
  390. data/lib/brut/cli/apps/build_assets.rb +1 -1
  391. data/lib/brut/cli/apps/heroku_container_based_deploy.rb +1 -1
  392. data/lib/brut/cli/apps/test.rb +6 -4
  393. data/lib/brut/tui/ansi_escape_code.rb +104 -0
  394. data/lib/brut/tui/event_loop.rb +168 -0
  395. data/lib/brut/tui/events/base_event.rb +29 -0
  396. data/lib/brut/tui/events/event_bus.rb +73 -0
  397. data/lib/brut/tui/events/event_loop_started.rb +5 -0
  398. data/lib/brut/tui/events/exception.rb +24 -0
  399. data/lib/brut/tui/events/tick.rb +12 -0
  400. data/lib/brut/tui/events.rb +7 -0
  401. data/lib/brut/tui/markup_string.rb +68 -0
  402. data/lib/brut/tui/script/block_step.rb +17 -0
  403. data/lib/brut/tui/script/events/command_execution_failed.rb +4 -0
  404. data/lib/brut/tui/script/events/command_execution_succeeded.rb +3 -0
  405. data/lib/brut/tui/script/events/command_std_err.rb +3 -0
  406. data/lib/brut/tui/script/events/command_std_out.rb +13 -0
  407. data/lib/brut/tui/script/events/executing_command.rb +12 -0
  408. data/lib/brut/tui/script/events/message.rb +15 -0
  409. data/lib/brut/tui/script/events/phase_completed.rb +4 -0
  410. data/lib/brut/tui/script/events/phase_started.rb +14 -0
  411. data/lib/brut/tui/script/events/script_completed.rb +5 -0
  412. data/lib/brut/tui/script/events/script_started.rb +12 -0
  413. data/lib/brut/tui/script/events/step_completed.rb +3 -0
  414. data/lib/brut/tui/script/events/step_started.rb +12 -0
  415. data/lib/brut/tui/script/events.rb +14 -0
  416. data/lib/brut/tui/script/exec_step.rb +60 -0
  417. data/lib/brut/tui/script/logging_subscriber.rb +98 -0
  418. data/lib/brut/tui/script/puts_subscriber.rb +109 -0
  419. data/lib/brut/tui/script/step.rb +13 -0
  420. data/lib/brut/tui/script.rb +211 -0
  421. data/lib/brut/tui/terminal.rb +74 -0
  422. data/lib/brut/tui/terminal_theme.rb +140 -0
  423. data/lib/brut/tui/themes/dark.rb +14 -0
  424. data/lib/brut/tui/themes/light.rb +17 -0
  425. data/lib/brut/tui/themes/none.rb +9 -0
  426. data/lib/brut/tui/themes.rb +5 -0
  427. data/lib/brut/tui.rb +15 -0
  428. data/lib/brut/version.rb +1 -1
  429. data/lib/brut.rb +1 -0
  430. data/mkbrut/Gemfile.lock +1 -1
  431. data/mkbrut/lib/mkbrut/version.rb +1 -1
  432. data/specs/brut/tui/ansi_escape_code.spec.rb +30 -0
  433. data/specs/brut/tui/event_loop.spec.rb +70 -0
  434. data/specs/brut/tui/events/base_event.spec.rb +26 -0
  435. data/specs/brut/tui/events/event_bus.spec.rb +141 -0
  436. data/specs/brut/tui/events/exception.spec.rb +19 -0
  437. data/specs/brut/tui/events/test_event.rb +5 -0
  438. data/specs/spec_helper.rb +4 -0
  439. metadata +124 -15
  440. data/docs/assets/chunks/@localSearchIndexroot.BiNc3tFI.js +0 -1
  441. /data/docs/assets/{components.md.9sqJ27Oc.lean.js → components.md.Ber8UBM0.lean.js} +0 -0
  442. /data/docs/assets/{configuration.md.Cb_oAR8Z.lean.js → configuration.md.DrJ6YVoZ.lean.js} +0 -0
  443. /data/docs/assets/{getting-started.md.CKpNGvno.lean.js → getting-started.md.CGJ44juQ.lean.js} +0 -0
  444. /data/docs/assets/{tutorials_02-dialog.md.Z_DOF2mU.lean.js → tutorials_02-dialog.md.DE5WfCXI.lean.js} +0 -0
data/docs/api/Sequel.html CHANGED
@@ -107,7 +107,7 @@
107
107
  </div>
108
108
 
109
109
  <div id="footer">
110
- Generated on Mon Sep 29 18:39:06 2025 by
110
+ Generated on Sun Nov 30 20:50:11 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.6).
113
113
  </div>
@@ -0,0 +1,143 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Class: SpecSupport::Matchers::BeABug
8
+
9
+ &mdash; Documentation by YARD 0.9.37
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../../css/style.css" type="text/css" />
14
+
15
+ <link rel="stylesheet" href="../../css/common.css" type="text/css" />
16
+
17
+ <script type="text/javascript">
18
+ pathId = "SpecSupport::Matchers::BeABug";
19
+ relpath = '../../';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="../../class_list.html?1"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="../../_index.html">Index (B)</a> &raquo;
40
+ <span class='title'>SpecSupport</span> &raquo; <span class='title'>Matchers</span>
41
+ &raquo;
42
+ <span class="title">BeABug</span>
43
+
44
+ </div>
45
+
46
+ <div id="search">
47
+
48
+ <a class="full_list_link" id="class_list_link"
49
+ href="../../class_list.html">
50
+
51
+ <svg width="24" height="24">
52
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
+ </svg>
56
+ </a>
57
+
58
+ </div>
59
+ <div class="clear"></div>
60
+ </div>
61
+
62
+ <div id="content"><h1>Class: SpecSupport::Matchers::BeABug
63
+
64
+
65
+
66
+ </h1>
67
+ <div class="box_info">
68
+
69
+ <dl>
70
+ <dt>Inherits:</dt>
71
+ <dd>
72
+ <span class="inheritName">Object</span>
73
+
74
+ <ul class="fullTree">
75
+ <li>Object</li>
76
+
77
+ <li class="next">SpecSupport::Matchers::BeABug</li>
78
+
79
+ </ul>
80
+ <a href="#" class="inheritanceTree">show all</a>
81
+
82
+ </dd>
83
+ </dl>
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+ <dl>
96
+ <dt>Defined in:</dt>
97
+ <dd>lib/brut/spec_support/matchers/be_a_bug.rb</dd>
98
+ </dl>
99
+
100
+ </div>
101
+
102
+ <h2>Overview</h2><div class="docstring">
103
+ <div class="discussion">
104
+ <p>Block-based matcher that expects the blog to
105
+ raise a <span class='object_link'><a href="../../Brut/Framework/Errors/Bug.html" title="Brut::Framework::Errors::Bug (class)">Brut::Framework::Errors::Bug</a></span>.</p>
106
+
107
+
108
+ </div>
109
+ </div>
110
+ <div class="tags">
111
+
112
+ <div class="examples">
113
+ <h4 class="tag_title">Examples:</h4>
114
+
115
+
116
+ <pre class="example code"><code>
117
+ <span class='id identifier rubyid_expect'>expect</span> <span class='lbrace'>{</span>
118
+ <span class='const'>SomeClass</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='label'>value:</span> <span class='symbol'>:invalid</span><span class='rparen'>)</span>
119
+ <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_to'>to</span> <span class='id identifier rubyid_be_a_bug'>be_a_bug</span></code></pre>
120
+
121
+ </div>
122
+
123
+
124
+ </div>
125
+
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+ </div>
134
+
135
+ <div id="footer">
136
+ Generated on Mon Jun 30 23:01:10 2025 by
137
+ <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
138
+ 0.9.37 (ruby-3.4.4).
139
+ </div>
140
+
141
+ </div>
142
+ </body>
143
+ </html>
data/docs/api/_index.html CHANGED
@@ -122,6 +122,13 @@
122
122
 
123
123
  </li>
124
124
 
125
+ <li>
126
+ <span class='object_link'><a href="Brut/TUI/AnsiEscapeCode.html" title="Brut::TUI::AnsiEscapeCode (class)">AnsiEscapeCode</a></span>
127
+
128
+ <small>(Brut::TUI)</small>
129
+
130
+ </li>
131
+
125
132
  <li>
126
133
  <span class='object_link'><a href="Brut/CLI/App.html" title="Brut::CLI::App (class)">App</a></span>
127
134
 
@@ -186,6 +193,13 @@
186
193
 
187
194
  </li>
188
195
 
196
+ <li>
197
+ <span class='object_link'><a href="Brut/TUI/Events/BaseEvent.html" title="Brut::TUI::Events::BaseEvent (class)">BaseEvent</a></span>
198
+
199
+ <small>(Brut::TUI::Events)</small>
200
+
201
+ </li>
202
+
189
203
  <li>
190
204
  <span class='object_link'><a href="Brut/I18n/BaseMethods.html" title="Brut::I18n::BaseMethods (module)">BaseMethods</a></span>
191
205
 
@@ -214,6 +228,13 @@
214
228
 
215
229
  </li>
216
230
 
231
+ <li>
232
+ <span class='object_link'><a href="Brut/TUI/Script/BlockStep.html" title="Brut::TUI::Script::BlockStep (class)">BlockStep</a></span>
233
+
234
+ <small>(Brut::TUI::Script)</small>
235
+
236
+ </li>
237
+
217
238
  <li>
218
239
  <span class='object_link'><a href="Brut.html" title="Brut (module)">Brut</a></span>
219
240
 
@@ -358,6 +379,34 @@
358
379
 
359
380
  </li>
360
381
 
382
+ <li>
383
+ <span class='object_link'><a href="Brut/TUI/Script/Events/CommandExecutionFailed.html" title="Brut::TUI::Script::Events::CommandExecutionFailed (class)">CommandExecutionFailed</a></span>
384
+
385
+ <small>(Brut::TUI::Script::Events)</small>
386
+
387
+ </li>
388
+
389
+ <li>
390
+ <span class='object_link'><a href="Brut/TUI/Script/Events/CommandExecutionSucceeded.html" title="Brut::TUI::Script::Events::CommandExecutionSucceeded (class)">CommandExecutionSucceeded</a></span>
391
+
392
+ <small>(Brut::TUI::Script::Events)</small>
393
+
394
+ </li>
395
+
396
+ <li>
397
+ <span class='object_link'><a href="Brut/TUI/Script/Events/CommandStdErr.html" title="Brut::TUI::Script::Events::CommandStdErr (class)">CommandStdErr</a></span>
398
+
399
+ <small>(Brut::TUI::Script::Events)</small>
400
+
401
+ </li>
402
+
403
+ <li>
404
+ <span class='object_link'><a href="Brut/TUI/Script/Events/CommandStdOut.html" title="Brut::TUI::Script::Events::CommandStdOut (class)">CommandStdOut</a></span>
405
+
406
+ <small>(Brut::TUI::Script::Events)</small>
407
+
408
+ </li>
409
+
361
410
  <li>
362
411
  <span class='object_link'><a href="Brut/CLI/Apps/Scaffold/Component.html" title="Brut::CLI::Apps::Scaffold::Component (class)">Component</a></span>
363
412
 
@@ -478,6 +527,13 @@
478
527
 
479
528
  </li>
480
529
 
530
+ <li>
531
+ <span class='object_link'><a href="Brut/TUI/Themes/Dark.html" title="Brut::TUI::Themes::Dark (class)">Dark</a></span>
532
+
533
+ <small>(Brut::TUI::Themes)</small>
534
+
535
+ </li>
536
+
481
537
  <li>
482
538
  <span class='object_link'><a href="Brut/CLI/Apps/Scaffold/DbModel.html" title="Brut::CLI::Apps::Scaffold::DbModel (class)">DbModel</a></span>
483
539
 
@@ -577,6 +633,55 @@
577
633
 
578
634
  </li>
579
635
 
636
+ <li>
637
+ <span class='object_link'><a href="Brut/TUI/EventLoop.html" title="Brut::TUI::EventLoop (class)">EventLoop</a></span>
638
+
639
+ <small>(Brut::TUI)</small>
640
+
641
+ </li>
642
+
643
+ <li>
644
+ <span class='object_link'><a href="Brut/TUI/Events/EventLoopStarted.html" title="Brut::TUI::Events::EventLoopStarted (class)">EventLoopStarted</a></span>
645
+
646
+ <small>(Brut::TUI::Events)</small>
647
+
648
+ </li>
649
+
650
+ <li>
651
+ <span class='object_link'><a href="Brut/TUI/Events.html" title="Brut::TUI::Events (class)">Events</a></span>
652
+
653
+ <small>(Brut::TUI)</small>
654
+
655
+ </li>
656
+
657
+ <li>
658
+ <span class='object_link'><a href="Brut/TUI/Script/Events.html" title="Brut::TUI::Script::Events (module)">Events</a></span>
659
+
660
+ <small>(Brut::TUI::Script)</small>
661
+
662
+ </li>
663
+
664
+ <li>
665
+ <span class='object_link'><a href="Brut/TUI/Events/Exception.html" title="Brut::TUI::Events::Exception (class)">Exception</a></span>
666
+
667
+ <small>(Brut::TUI::Events)</small>
668
+
669
+ </li>
670
+
671
+ <li>
672
+ <span class='object_link'><a href="Brut/TUI/Script/ExecStep.html" title="Brut::TUI::Script::ExecStep (class)">ExecStep</a></span>
673
+
674
+ <small>(Brut::TUI::Script)</small>
675
+
676
+ </li>
677
+
678
+ <li>
679
+ <span class='object_link'><a href="Brut/TUI/Script/Events/ExecutingCommand.html" title="Brut::TUI::Script::Events::ExecutingCommand (class)">ExecutingCommand</a></span>
680
+
681
+ <small>(Brut::TUI::Script::Events)</small>
682
+
683
+ </li>
684
+
580
685
  <li>
581
686
  <span class='object_link'><a href="Brut/CLI/ExecutionResults.html" title="Brut::CLI::ExecutionResults (module)">ExecutionResults</a></span>
582
687
 
@@ -1062,6 +1167,13 @@
1062
1167
 
1063
1168
  </li>
1064
1169
 
1170
+ <li>
1171
+ <span class='object_link'><a href="Brut/TUI/Themes/Light.html" title="Brut::TUI::Themes::Light (class)">Light</a></span>
1172
+
1173
+ <small>(Brut::TUI::Themes)</small>
1174
+
1175
+ </li>
1176
+
1065
1177
  <li>
1066
1178
  <span class='object_link'><a href="Brut/FrontEnd/Components/LocaleDetection.html" title="Brut::FrontEnd::Components::LocaleDetection (class)">LocaleDetection</a></span>
1067
1179
 
@@ -1090,6 +1202,13 @@
1090
1202
 
1091
1203
  </li>
1092
1204
 
1205
+ <li>
1206
+ <span class='object_link'><a href="Brut/TUI/Script/LoggingSubscriber.html" title="Brut::TUI::Script::LoggingSubscriber (class)">LoggingSubscriber</a></span>
1207
+
1208
+ <small>(Brut::TUI::Script)</small>
1209
+
1210
+ </li>
1211
+
1093
1212
  </ul>
1094
1213
  </ul>
1095
1214
 
@@ -1105,6 +1224,13 @@
1105
1224
 
1106
1225
  </li>
1107
1226
 
1227
+ <li>
1228
+ <span class='object_link'><a href="Brut/TUI/MarkupString.html" title="Brut::TUI::MarkupString (class)">MarkupString</a></span>
1229
+
1230
+ <small>(Brut::TUI)</small>
1231
+
1232
+ </li>
1233
+
1108
1234
  <li>
1109
1235
  <span class='object_link'><a href="Brut/SpecSupport/Matchers.html" title="Brut::SpecSupport::Matchers (module)">Matchers</a></span>
1110
1236
 
@@ -1112,6 +1238,13 @@
1112
1238
 
1113
1239
  </li>
1114
1240
 
1241
+ <li>
1242
+ <span class='object_link'><a href="Brut/TUI/Script/Events/Message.html" title="Brut::TUI::Script::Events::Message (class)">Message</a></span>
1243
+
1244
+ <small>(Brut::TUI::Script::Events)</small>
1245
+
1246
+ </li>
1247
+
1115
1248
  <li>
1116
1249
  <span class='object_link'><a href="Brut/Instrumentation/Methods.html" title="Brut::Instrumentation::Methods (module)">Methods</a></span>
1117
1250
 
@@ -1203,6 +1336,13 @@
1203
1336
 
1204
1337
  </li>
1205
1338
 
1339
+ <li>
1340
+ <span class='object_link'><a href="Brut/TUI/AnsiEscapeCode/Mod.html" title="Brut::TUI::AnsiEscapeCode::Mod (module)">Mod</a></span>
1341
+
1342
+ <small>(Brut::TUI::AnsiEscapeCode)</small>
1343
+
1344
+ </li>
1345
+
1206
1346
  <li>
1207
1347
  <span class='object_link'><a href="ModuleName.html" title="ModuleName (class)">ModuleName</a></span>
1208
1348
 
@@ -1230,6 +1370,13 @@
1230
1370
 
1231
1371
  </li>
1232
1372
 
1373
+ <li>
1374
+ <span class='object_link'><a href="Brut/TUI/Themes/None.html" title="Brut::TUI::Themes::None (class)">None</a></span>
1375
+
1376
+ <small>(Brut::TUI::Themes)</small>
1377
+
1378
+ </li>
1379
+
1233
1380
  <li>
1234
1381
  <span class='object_link'><a href="Brut/Instrumentation/OpenTelemetry/NormalizedAttributes.html" title="Brut::Instrumentation::OpenTelemetry::NormalizedAttributes (class)">NormalizedAttributes</a></span>
1235
1382
 
@@ -1337,6 +1484,20 @@
1337
1484
 
1338
1485
  </li>
1339
1486
 
1487
+ <li>
1488
+ <span class='object_link'><a href="Brut/TUI/Script/Events/PhaseCompleted.html" title="Brut::TUI::Script::Events::PhaseCompleted (class)">PhaseCompleted</a></span>
1489
+
1490
+ <small>(Brut::TUI::Script::Events)</small>
1491
+
1492
+ </li>
1493
+
1494
+ <li>
1495
+ <span class='object_link'><a href="Brut/TUI/Script/Events/PhaseStarted.html" title="Brut::TUI::Script::Events::PhaseStarted (class)">PhaseStarted</a></span>
1496
+
1497
+ <small>(Brut::TUI::Script::Events)</small>
1498
+
1499
+ </li>
1500
+
1340
1501
  <li>
1341
1502
  <span class='object_link'><a href="Sequel/Plugins.html" title="Sequel::Plugins (module)">Plugins</a></span>
1342
1503
 
@@ -1351,6 +1512,13 @@
1351
1512
 
1352
1513
  </li>
1353
1514
 
1515
+ <li>
1516
+ <span class='object_link'><a href="Brut/TUI/Script/PutsSubscriber.html" title="Brut::TUI::Script::PutsSubscriber (class)">PutsSubscriber</a></span>
1517
+
1518
+ <small>(Brut::TUI::Script)</small>
1519
+
1520
+ </li>
1521
+
1354
1522
  </ul>
1355
1523
  </ul>
1356
1524
 
@@ -1508,6 +1676,27 @@
1508
1676
 
1509
1677
  </li>
1510
1678
 
1679
+ <li>
1680
+ <span class='object_link'><a href="Brut/TUI/Script.html" title="Brut::TUI::Script (class)">Script</a></span>
1681
+
1682
+ <small>(Brut::TUI)</small>
1683
+
1684
+ </li>
1685
+
1686
+ <li>
1687
+ <span class='object_link'><a href="Brut/TUI/Script/Events/ScriptCompleted.html" title="Brut::TUI::Script::Events::ScriptCompleted (class)">ScriptCompleted</a></span>
1688
+
1689
+ <small>(Brut::TUI::Script::Events)</small>
1690
+
1691
+ </li>
1692
+
1693
+ <li>
1694
+ <span class='object_link'><a href="Brut/TUI/Script/Events/ScriptStarted.html" title="Brut::TUI::Script::Events::ScriptStarted (class)">ScriptStarted</a></span>
1695
+
1696
+ <small>(Brut::TUI::Script::Events)</small>
1697
+
1698
+ </li>
1699
+
1511
1700
  <li>
1512
1701
  <span class='object_link'><a href="Brut/CLI/Apps/DB/Seed.html" title="Brut::CLI::Apps::DB::Seed (class)">Seed</a></span>
1513
1702
 
@@ -1611,6 +1800,27 @@
1611
1800
 
1612
1801
  </li>
1613
1802
 
1803
+ <li>
1804
+ <span class='object_link'><a href="Brut/TUI/Script/Step.html" title="Brut::TUI::Script::Step (class)">Step</a></span>
1805
+
1806
+ <small>(Brut::TUI::Script)</small>
1807
+
1808
+ </li>
1809
+
1810
+ <li>
1811
+ <span class='object_link'><a href="Brut/TUI/Script/Events/StepCompleted.html" title="Brut::TUI::Script::Events::StepCompleted (class)">StepCompleted</a></span>
1812
+
1813
+ <small>(Brut::TUI::Script::Events)</small>
1814
+
1815
+ </li>
1816
+
1817
+ <li>
1818
+ <span class='object_link'><a href="Brut/TUI/Script/Events/StepStarted.html" title="Brut::TUI::Script::Events::StepStarted (class)">StepStarted</a></span>
1819
+
1820
+ <small>(Brut::TUI::Script::Events)</small>
1821
+
1822
+ </li>
1823
+
1614
1824
  <li>
1615
1825
  <span class='object_link'><a href="Brut/CLI/SystemExecError.html" title="Brut::CLI::SystemExecError (class)">SystemExecError</a></span>
1616
1826
 
@@ -1626,6 +1836,27 @@
1626
1836
  <li class="letter">T</li>
1627
1837
  <ul>
1628
1838
 
1839
+ <li>
1840
+ <span class='object_link'><a href="Brut/TUI.html" title="Brut::TUI (module)">TUI</a></span>
1841
+
1842
+ <small>(Brut)</small>
1843
+
1844
+ </li>
1845
+
1846
+ <li>
1847
+ <span class='object_link'><a href="Brut/TUI/Terminal.html" title="Brut::TUI::Terminal (class)">Terminal</a></span>
1848
+
1849
+ <small>(Brut::TUI)</small>
1850
+
1851
+ </li>
1852
+
1853
+ <li>
1854
+ <span class='object_link'><a href="Brut/TUI/TerminalTheme.html" title="Brut::TUI::TerminalTheme (class)">TerminalTheme</a></span>
1855
+
1856
+ <small>(Brut::TUI)</small>
1857
+
1858
+ </li>
1859
+
1629
1860
  <li>
1630
1861
  <span class='object_link'><a href="Brut/CLI/Apps/Test.html" title="Brut::CLI::Apps::Test (class)">Test</a></span>
1631
1862
 
@@ -1647,6 +1878,20 @@
1647
1878
 
1648
1879
  </li>
1649
1880
 
1881
+ <li>
1882
+ <span class='object_link'><a href="Brut/TUI/Themes.html" title="Brut::TUI::Themes (module)">Themes</a></span>
1883
+
1884
+ <small>(Brut::TUI)</small>
1885
+
1886
+ </li>
1887
+
1888
+ <li>
1889
+ <span class='object_link'><a href="Brut/TUI/Events/Tick.html" title="Brut::TUI::Events::Tick (class)">Tick</a></span>
1890
+
1891
+ <small>(Brut::TUI::Events)</small>
1892
+
1893
+ </li>
1894
+
1650
1895
  <li>
1651
1896
  <span class='object_link'><a href="Brut/FrontEnd/Forms/Input/TimeOfDay.html" title="Brut::FrontEnd::Forms::Input::TimeOfDay (class)">TimeOfDay</a></span>
1652
1897
 
@@ -1709,7 +1954,7 @@
1709
1954
  </div>
1710
1955
 
1711
1956
  <div id="footer">
1712
- Generated on Mon Sep 29 18:39:06 2025 by
1957
+ Generated on Sun Nov 30 20:50:11 2025 by
1713
1958
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1714
1959
  0.9.37 (ruby-3.4.6).
1715
1960
  </div>