brut 0.0.20 → 0.0.22

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 (728) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +24 -3
  3. data/.nvim.lua +1 -0
  4. data/Dockerfile.dx +12 -3
  5. data/Gemfile.lock +9 -7
  6. data/README.md +0 -7
  7. data/Rakefile +6 -4
  8. data/bin/dev +20 -0
  9. data/bin/docs +27 -0
  10. data/bin/setup +47 -1
  11. data/brut-css/.nvim.lua +1 -0
  12. data/brut-css/README.md +28 -0
  13. data/brut-css/bin/build +31 -0
  14. data/brut-css/bin/dev +1 -0
  15. data/brut-css/bin/docs +15 -0
  16. data/brut-css/bin/setup +5 -0
  17. data/brut-css/config/media-queries-all.css +15 -0
  18. data/brut-css/config/media-queries-minimal.css +5 -0
  19. data/brut-css/config/postcss.config.cjs +7 -0
  20. data/brut-css/config/pseudo-classes-all.css +9 -0
  21. data/brut-css/dx +1 -0
  22. data/brut-css/package-lock.json +3217 -0
  23. data/brut-css/package.json +36 -0
  24. data/brut-css/src/css/appearance.css +145 -0
  25. data/brut-css/src/css/border.css +522 -0
  26. data/brut-css/src/css/colors.css +3502 -0
  27. data/brut-css/src/css/dimensions.css +548 -0
  28. data/brut-css/src/css/flex.css +179 -0
  29. data/brut-css/src/css/index.css +13 -0
  30. data/brut-css/src/css/layout.css +120 -0
  31. data/brut-css/src/css/list.css +41 -0
  32. data/brut-css/src/css/positioning.css +354 -0
  33. data/brut-css/src/css/properties/colors.css +455 -0
  34. data/brut-css/src/css/properties/index.css +3 -0
  35. data/brut-css/src/css/properties/spacing.css +140 -0
  36. data/brut-css/src/css/properties/typography.css +224 -0
  37. data/brut-css/src/css/reset.css +107 -0
  38. data/brut-css/src/css/spacing.css +585 -0
  39. data/brut-css/src/css/typography.css +519 -0
  40. data/brut-css/src/css/utils.css +104 -0
  41. data/brut-css/src/docs/1_getting-started/1_overview.md +46 -0
  42. data/brut-css/src/docs/1_getting-started/2_installation.md +25 -0
  43. data/brut-css/src/docs/1_getting-started/3_core-concepts.md +75 -0
  44. data/brut-css/src/docs/1_getting-started/4_simple-example.md +132 -0
  45. data/brut-css/src/docs/1_getting-started/page.html.ejs +10 -0
  46. data/brut-css/src/docs/2_properties/page.html.ejs +71 -0
  47. data/brut-css/src/docs/3_classes/color-demo.html.ejs +31 -0
  48. data/brut-css/src/docs/3_classes/page.html.ejs +87 -0
  49. data/brut-css/src/docs/4_customization/1_design-system.md +36 -0
  50. data/brut-css/src/docs/4_customization/2_breakpoints.md +75 -0
  51. data/brut-css/src/docs/4_customization/3_pseudo-classes.md +74 -0
  52. data/brut-css/src/docs/4_customization/4_advanced-configuration.md +40 -0
  53. data/brut-css/src/docs/4_customization/page.html.ejs +10 -0
  54. data/brut-css/src/docs/docs.css +98 -0
  55. data/brut-css/src/docs/includes/body-and-header.html.ejs +30 -0
  56. data/brut-css/src/docs/includes/footer-and-rest.html.ejs +9 -0
  57. data/brut-css/src/docs/includes/head.html.ejs +5 -0
  58. data/brut-css/src/docs/includes/nav.html.ejs +10 -0
  59. data/brut-css/src/docs/index.html.ejs +32 -0
  60. data/brut-css/src/docs/prism-twilight.min.css +1 -0
  61. data/brut-css/src/js/Logger.js +71 -0
  62. data/brut-css/src/js/build.js +111 -0
  63. data/brut-css/src/js/cli/CLIArgError.js +7 -0
  64. data/brut-css/src/js/cli/Debug.js +27 -0
  65. data/brut-css/src/js/cli/DocsDir.js +16 -0
  66. data/brut-css/src/js/cli/DocsTemplateSourceDir.js +16 -0
  67. data/brut-css/src/js/cli/InputFile.js +31 -0
  68. data/brut-css/src/js/cli/MediaQueryConfigFile.js +10 -0
  69. data/brut-css/src/js/cli/OutputFile.js +22 -0
  70. data/brut-css/src/js/cli/ParsedArg.js +17 -0
  71. data/brut-css/src/js/cli/PathToBrutCSSRoot.js +19 -0
  72. data/brut-css/src/js/cli/PseudoClassConfigFile.js +11 -0
  73. data/brut-css/src/js/cli.js +108 -0
  74. data/brut-css/src/js/docGenerator.js +467 -0
  75. data/brut-css/src/js/mediaQueryConfigParser.js +98 -0
  76. data/brut-css/src/js/post-css-plugins/addMediaQueriesPlugin.js +49 -0
  77. data/brut-css/src/js/post-css-plugins/addPseudoClassesPlugin.js +42 -0
  78. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/Category.js +9 -0
  79. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/DocState.js +185 -0
  80. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/Documentable.js +8 -0
  81. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/Group.js +7 -0
  82. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/ParsedComment.js +73 -0
  83. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/Property.js +9 -0
  84. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/PropertyCategory.js +4 -0
  85. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/PropertyGroup.js +8 -0
  86. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/Rule.js +12 -0
  87. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/RuleCategory.js +4 -0
  88. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/RuleGroup.js +8 -0
  89. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/SeeRef.js +5 -0
  90. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/SeeURL.js +9 -0
  91. data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin.js +49 -0
  92. data/brut-css/src/js/post-css-plugins/generateRootCustomPropertiesPlugin.js +45 -0
  93. data/brut-css/src/js/pseudoClassConfigParser.js +145 -0
  94. data/brut-js/.projections.json +10 -0
  95. data/brut-js/README.md +118 -0
  96. data/brut-js/bin/build +10 -0
  97. data/brut-js/bin/ci +5 -0
  98. data/brut-js/bin/setup +5 -0
  99. data/brut-js/docs/README.md +8 -0
  100. data/brut-js/docs/jsdoc-plugins/customElementTag.js +8 -0
  101. data/brut-js/docs/jsdoc-theme/publish.js +692 -0
  102. data/brut-js/docs/jsdoc-theme/static/scripts/linenumber.js +25 -0
  103. data/brut-js/docs/jsdoc-theme/static/scripts/prettify/Apache-License-2.0.txt +202 -0
  104. data/brut-js/docs/jsdoc-theme/static/scripts/prettify/lang-css.js +2 -0
  105. data/brut-js/docs/jsdoc-theme/static/scripts/prettify/prettify.js +28 -0
  106. data/brut-js/docs/jsdoc-theme/static/styles/jsdoc-default.css +327 -0
  107. data/brut-js/docs/jsdoc-theme/static/styles/prettify-jsdoc.css +111 -0
  108. data/brut-js/docs/jsdoc-theme/static/styles/prettify-tomorrow.css +132 -0
  109. data/brut-js/docs/jsdoc-theme/tmpl/augments.tmpl +10 -0
  110. data/brut-js/docs/jsdoc-theme/tmpl/container.tmpl +199 -0
  111. data/brut-js/docs/jsdoc-theme/tmpl/details.tmpl +143 -0
  112. data/brut-js/docs/jsdoc-theme/tmpl/example.tmpl +2 -0
  113. data/brut-js/docs/jsdoc-theme/tmpl/examples.tmpl +13 -0
  114. data/brut-js/docs/jsdoc-theme/tmpl/exceptions.tmpl +32 -0
  115. data/brut-js/docs/jsdoc-theme/tmpl/layout.tmpl +38 -0
  116. data/brut-js/docs/jsdoc-theme/tmpl/mainpage.tmpl +14 -0
  117. data/brut-js/docs/jsdoc-theme/tmpl/members.tmpl +38 -0
  118. data/brut-js/docs/jsdoc-theme/tmpl/method.tmpl +131 -0
  119. data/brut-js/docs/jsdoc-theme/tmpl/modifies.tmpl +14 -0
  120. data/brut-js/docs/jsdoc-theme/tmpl/params.tmpl +131 -0
  121. data/brut-js/docs/jsdoc-theme/tmpl/properties.tmpl +108 -0
  122. data/brut-js/docs/jsdoc-theme/tmpl/returns.tmpl +19 -0
  123. data/brut-js/docs/jsdoc-theme/tmpl/source.tmpl +8 -0
  124. data/brut-js/docs/jsdoc-theme/tmpl/tutorial.tmpl +19 -0
  125. data/brut-js/docs/jsdoc-theme/tmpl/type.tmpl +7 -0
  126. data/brut-js/docs/jsdoc.config.json +23 -0
  127. data/brut-js/docs/package-lock.json +343 -0
  128. data/brut-js/docs/package.json +7 -0
  129. data/brut-js/package-lock.json +2171 -0
  130. data/brut-js/package.json +32 -0
  131. data/brut-js/specs/AjaxSubmit.spec.js +256 -0
  132. data/brut-js/specs/Autosubmit.spec.js +127 -0
  133. data/brut-js/specs/ConfirmSubmit.spec.js +193 -0
  134. data/brut-js/specs/ConstraintViolationMessage.spec.js +33 -0
  135. data/brut-js/specs/ConstraintViolationMessages.spec.js +29 -0
  136. data/brut-js/specs/CopyToClipboard.spec.js +35 -0
  137. data/brut-js/specs/Form.spec.js +181 -0
  138. data/brut-js/specs/I18nTranslation.spec.js +19 -0
  139. data/brut-js/specs/LocaleDetection.spec.js +22 -0
  140. data/brut-js/specs/Message.spec.js +15 -0
  141. data/brut-js/specs/SpecHelper.js +23 -0
  142. data/brut-js/specs/Tabs.spec.js +41 -0
  143. data/brut-js/specs/config/asset_metadata.json +7 -0
  144. data/brut-js/src/AjaxSubmit.js +384 -0
  145. data/brut-js/src/Autosubmit.js +63 -0
  146. data/brut-js/src/BaseCustomElement.js +261 -0
  147. data/brut-js/src/ConfirmSubmit.js +116 -0
  148. data/brut-js/src/ConfirmationDialog.js +143 -0
  149. data/brut-js/src/ConstraintViolationMessage.js +125 -0
  150. data/brut-js/src/ConstraintViolationMessages.js +98 -0
  151. data/brut-js/src/CopyToClipboard.js +96 -0
  152. data/brut-js/src/Form.js +151 -0
  153. data/brut-js/src/I18nTranslation.js +61 -0
  154. data/brut-js/src/LocaleDetection.js +117 -0
  155. data/brut-js/src/Logger.js +90 -0
  156. data/brut-js/src/Message.js +56 -0
  157. data/brut-js/src/RichString.js +113 -0
  158. data/brut-js/src/Tabs.js +168 -0
  159. data/brut-js/src/Tracing.js +247 -0
  160. data/brut-js/src/appForTestingOnly.js +15 -0
  161. data/brut-js/src/index.js +130 -0
  162. data/brut-js/src/testing/AssetMetadata.js +35 -0
  163. data/brut-js/src/testing/AssetMetadataLoader.js +25 -0
  164. data/brut-js/src/testing/CustomElementTest.js +235 -0
  165. data/brut-js/src/testing/DOMCreator.js +45 -0
  166. data/brut-js/src/testing/index.js +48 -0
  167. data/brutrb.com/.vitepress/config.mjs +106 -0
  168. data/brutrb.com/.vitepress/plugins/jsdocLinker.js +34 -0
  169. data/brutrb.com/.vitepress/plugins/rdocLinker.js +18 -0
  170. data/brutrb.com/.vitepress/theme/custom.css +7 -0
  171. data/brutrb.com/.vitepress/theme/index.js +18 -0
  172. data/brutrb.com/.vitepress/theme/style.css +149 -0
  173. data/brutrb.com/ai.md +68 -0
  174. data/brutrb.com/assets.md +138 -0
  175. data/brutrb.com/bin/build +5 -0
  176. data/brutrb.com/bin/deploy +7 -0
  177. data/brutrb.com/bin/dev +5 -0
  178. data/brutrb.com/bin/setup +5 -0
  179. data/brutrb.com/brut-js.md +117 -0
  180. data/brutrb.com/business-logic.md +55 -0
  181. data/brutrb.com/cli.md +278 -0
  182. data/brutrb.com/components.md +243 -0
  183. data/brutrb.com/configuration.md +257 -0
  184. data/brutrb.com/css.md +103 -0
  185. data/brutrb.com/custom-element-tests.md +149 -0
  186. data/brutrb.com/database-access.md +201 -0
  187. data/brutrb.com/database-schema.md +312 -0
  188. data/brutrb.com/deployment.md +66 -0
  189. data/brutrb.com/dev-environment.md +179 -0
  190. data/brutrb.com/doc-conventions.md +39 -0
  191. data/brutrb.com/end-to-end-tests.md +174 -0
  192. data/brutrb.com/flash-and-session.md +224 -0
  193. data/brutrb.com/forms.md +866 -0
  194. data/brutrb.com/getting-started.md +66 -0
  195. data/brutrb.com/handlers.md +153 -0
  196. data/brutrb.com/hooks.md +178 -0
  197. data/brutrb.com/i18n.md +188 -0
  198. data/brutrb.com/images/Makefile +10 -0
  199. data/brutrb.com/images/dev-env-overview.dot +54 -0
  200. data/brutrb.com/images/dev-env-overview.png +0 -0
  201. data/brutrb.com/images/dev-env-protocol.dot +37 -0
  202. data/brutrb.com/images/dev-env-protocol.png +0 -0
  203. data/brutrb.com/images/logo-300.png +0 -0
  204. data/brutrb.com/images/logo.png +0 -0
  205. data/brutrb.com/images/overview.graffle +0 -0
  206. data/brutrb.com/images/overview.png +0 -0
  207. data/brutrb.com/images/spa.dot +19 -0
  208. data/brutrb.com/images/spa.png +0 -0
  209. data/brutrb.com/images/workspace-protocol.dot +44 -0
  210. data/brutrb.com/images/workspace-protocol.png +0 -0
  211. data/brutrb.com/index.md +36 -0
  212. data/brutrb.com/instrumentation.md +183 -0
  213. data/brutrb.com/javascript.md +122 -0
  214. data/brutrb.com/jobs.md +14 -0
  215. data/{doc-src → brutrb.com}/keyword-injection.md +122 -68
  216. data/brutrb.com/markdown-examples.md +85 -0
  217. data/brutrb.com/middleware.md +80 -0
  218. data/brutrb.com/not-released.md +5 -0
  219. data/brutrb.com/overview.md +404 -0
  220. data/brutrb.com/package-lock.json +2404 -0
  221. data/brutrb.com/package.json +11 -0
  222. data/brutrb.com/pages.md +378 -0
  223. data/brutrb.com/public/images/logo-300.png +0 -0
  224. data/brutrb.com/public/images/logo.png +0 -0
  225. data/brutrb.com/routes.md +215 -0
  226. data/brutrb.com/security.md +105 -0
  227. data/brutrb.com/seed-data.md +63 -0
  228. data/brutrb.com/space-time-continuum.md +85 -0
  229. data/brutrb.com/tutorial.md +3 -0
  230. data/brutrb.com/unit-tests.md +148 -0
  231. data/docker-compose.dx.yml +6 -3
  232. data/docs/404.html +21 -0
  233. data/docs/CNAME +1 -0
  234. data/docs/ai.html +24 -0
  235. data/docs/api/Brut/BackEnd/SeedData.html +493 -0
  236. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server/FlushSpans.html +214 -0
  237. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server.html +125 -0
  238. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares.html +125 -0
  239. data/docs/api/Brut/BackEnd/Sidekiq.html +125 -0
  240. data/docs/api/Brut/BackEnd/Validators/FormValidator.html +414 -0
  241. data/docs/api/Brut/BackEnd/Validators.html +128 -0
  242. data/docs/api/Brut/BackEnd.html +132 -0
  243. data/docs/api/Brut/CLI/App.html +1576 -0
  244. data/docs/api/Brut/CLI/AppRunner.html +491 -0
  245. data/docs/api/Brut/CLI/Apps/BuildAssets/All.html +264 -0
  246. data/docs/api/Brut/CLI/Apps/BuildAssets/CSS.html +306 -0
  247. data/docs/api/Brut/CLI/Apps/BuildAssets/Images.html +262 -0
  248. data/docs/api/Brut/CLI/Apps/BuildAssets/JS.html +314 -0
  249. data/docs/api/Brut/CLI/Apps/BuildAssets.html +183 -0
  250. data/docs/api/Brut/CLI/Apps/DB/Create.html +365 -0
  251. data/docs/api/Brut/CLI/Apps/DB/Drop.html +357 -0
  252. data/docs/api/Brut/CLI/Apps/DB/Migrate.html +383 -0
  253. data/docs/api/Brut/CLI/Apps/DB/NewMigration.html +335 -0
  254. data/docs/api/Brut/CLI/Apps/DB/Rebuild.html +329 -0
  255. data/docs/api/Brut/CLI/Apps/DB/Seed.html +347 -0
  256. data/docs/api/Brut/CLI/Apps/DB/Status.html +383 -0
  257. data/docs/api/Brut/CLI/Apps/DB.html +183 -0
  258. data/docs/api/Brut/CLI/Apps/Scaffold/Action/Route.html +303 -0
  259. data/docs/api/Brut/CLI/Apps/Scaffold/Action.html +512 -0
  260. data/docs/api/Brut/CLI/Apps/Scaffold/Component.html +398 -0
  261. data/docs/api/Brut/CLI/Apps/Scaffold/CustomElementTest.html +374 -0
  262. data/docs/api/Brut/CLI/Apps/Scaffold/E2ETest.html +410 -0
  263. data/docs/api/Brut/CLI/Apps/Scaffold/Form.html +262 -0
  264. data/docs/api/Brut/CLI/Apps/Scaffold/Page/Route.html +303 -0
  265. data/docs/api/Brut/CLI/Apps/Scaffold/Page.html +480 -0
  266. data/docs/api/Brut/CLI/Apps/Scaffold/RoutesEditor.html +450 -0
  267. data/docs/api/Brut/CLI/Apps/Scaffold/Test.html +380 -0
  268. data/docs/api/Brut/CLI/Apps/Scaffold.html +253 -0
  269. data/docs/api/Brut/CLI/Apps/Test/Audit.html +464 -0
  270. data/docs/api/Brut/CLI/Apps/Test/E2e.html +407 -0
  271. data/docs/api/Brut/CLI/Apps/Test/JS.html +262 -0
  272. data/docs/api/Brut/CLI/Apps/Test/Run.html +578 -0
  273. data/docs/api/Brut/CLI/Apps/Test.html +253 -0
  274. data/docs/api/Brut/CLI/Apps.html +125 -0
  275. data/docs/api/Brut/CLI/Command.html +2342 -0
  276. data/docs/api/Brut/CLI/Error.html +139 -0
  277. data/docs/api/Brut/CLI/ExecutionResults/Result.html +664 -0
  278. data/docs/api/Brut/CLI/ExecutionResults.html +675 -0
  279. data/docs/api/Brut/CLI/Executor.html +430 -0
  280. data/docs/api/Brut/CLI/InvalidOption.html +245 -0
  281. data/docs/api/Brut/CLI/Options.html +753 -0
  282. data/docs/api/Brut/CLI/Output.html +699 -0
  283. data/docs/api/Brut/CLI/SystemExecError.html +451 -0
  284. data/docs/api/Brut/CLI.html +263 -0
  285. data/docs/api/Brut/FactoryBot.html +225 -0
  286. data/docs/api/Brut/Framework/App.html +1097 -0
  287. data/docs/api/Brut/Framework/Config.html +1045 -0
  288. data/docs/api/Brut/Framework/Container.html +1379 -0
  289. data/docs/api/Brut/Framework/Error.html +140 -0
  290. data/docs/api/Brut/Framework/Errors/AbstractMethod.html +144 -0
  291. data/docs/api/Brut/Framework/Errors/Bug.html +234 -0
  292. data/docs/api/Brut/Framework/Errors/MissingConfiguration.html +257 -0
  293. data/docs/api/Brut/Framework/Errors/MissingParameter.html +273 -0
  294. data/docs/api/Brut/Framework/Errors/NoClassForPath.html +471 -0
  295. data/docs/api/Brut/Framework/Errors/NotFound.html +308 -0
  296. data/docs/api/Brut/Framework/Errors/NotImplemented.html +234 -0
  297. data/docs/api/Brut/Framework/Errors.html +328 -0
  298. data/docs/api/Brut/Framework/FussyTypeEnforcement.html +392 -0
  299. data/docs/api/Brut/Framework/MCP.html +861 -0
  300. data/docs/api/Brut/Framework/ProjectEnvironment.html +648 -0
  301. data/docs/api/Brut/Framework.html +129 -0
  302. data/docs/api/Brut/FrontEnd/AssetPathResolver.html +317 -0
  303. data/docs/api/Brut/FrontEnd/Component/Helpers.html +326 -0
  304. data/docs/api/Brut/FrontEnd/Component.html +365 -0
  305. data/docs/api/Brut/FrontEnd/Components/ConstraintViolations.html +470 -0
  306. data/docs/api/Brut/FrontEnd/Components/FormTag.html +518 -0
  307. data/docs/api/Brut/FrontEnd/Components/I18nTranslations.html +317 -0
  308. data/docs/api/Brut/FrontEnd/Components/Input.html +195 -0
  309. data/docs/api/Brut/FrontEnd/Components/Inputs/CsrfToken.html +339 -0
  310. data/docs/api/Brut/FrontEnd/Components/Inputs/InputTag.html +660 -0
  311. data/docs/api/Brut/FrontEnd/Components/Inputs/RadioButton.html +417 -0
  312. data/docs/api/Brut/FrontEnd/Components/Inputs/SelectTagWithOptions.html +918 -0
  313. data/docs/api/Brut/FrontEnd/Components/Inputs/TextareaTag.html +651 -0
  314. data/docs/api/Brut/FrontEnd/Components/Inputs.html +125 -0
  315. data/docs/api/Brut/FrontEnd/Components/LocaleDetection.html +367 -0
  316. data/docs/api/Brut/FrontEnd/Components/PageIdentifier.html +336 -0
  317. data/docs/api/Brut/FrontEnd/Components/TimeTag.html +655 -0
  318. data/docs/api/Brut/FrontEnd/Components/Traceparent.html +352 -0
  319. data/docs/api/Brut/FrontEnd/Components.html +135 -0
  320. data/docs/api/Brut/FrontEnd/Download.html +467 -0
  321. data/docs/api/Brut/FrontEnd/Flash.html +1150 -0
  322. data/docs/api/Brut/FrontEnd/Form.html +1157 -0
  323. data/docs/api/Brut/FrontEnd/Forms/ConstraintViolation.html +634 -0
  324. data/docs/api/Brut/FrontEnd/Forms/Input.html +615 -0
  325. data/docs/api/Brut/FrontEnd/Forms/InputDeclarations.html +547 -0
  326. data/docs/api/Brut/FrontEnd/Forms/InputDefinition.html +1318 -0
  327. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInput.html +609 -0
  328. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInputDefinition.html +587 -0
  329. data/docs/api/Brut/FrontEnd/Forms/SelectInput.html +613 -0
  330. data/docs/api/Brut/FrontEnd/Forms/SelectInputDefinition.html +582 -0
  331. data/docs/api/Brut/FrontEnd/Forms/ValidityState.html +609 -0
  332. data/docs/api/Brut/FrontEnd/Forms.html +127 -0
  333. data/docs/api/Brut/FrontEnd/GenericResponse.html +377 -0
  334. data/docs/api/Brut/FrontEnd/Handler.html +442 -0
  335. data/docs/api/Brut/FrontEnd/Handlers/CspReportingHandler.html +318 -0
  336. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler/TraceParent.html +336 -0
  337. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler.html +399 -0
  338. data/docs/api/Brut/FrontEnd/Handlers/LocaleDetectionHandler.html +354 -0
  339. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler/Form.html +151 -0
  340. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler.html +315 -0
  341. data/docs/api/Brut/FrontEnd/Handlers.html +125 -0
  342. data/docs/api/Brut/FrontEnd/HandlingResults.html +339 -0
  343. data/docs/api/Brut/FrontEnd/HttpMethod.html +661 -0
  344. data/docs/api/Brut/FrontEnd/HttpStatus.html +496 -0
  345. data/docs/api/Brut/FrontEnd/InlineSvgLocator.html +284 -0
  346. data/docs/api/Brut/FrontEnd/Layout.html +318 -0
  347. data/docs/api/Brut/FrontEnd/Middleware.html +135 -0
  348. data/docs/api/Brut/FrontEnd/Middlewares/AnnotateBrutOwnedPaths.html +288 -0
  349. data/docs/api/Brut/FrontEnd/Middlewares/Favicon.html +292 -0
  350. data/docs/api/Brut/FrontEnd/Middlewares/OpenTelemetrySpan.html +324 -0
  351. data/docs/api/Brut/FrontEnd/Middlewares/ReloadApp.html +372 -0
  352. data/docs/api/Brut/FrontEnd/Middlewares.html +125 -0
  353. data/docs/api/Brut/FrontEnd/Page.html +773 -0
  354. data/docs/api/Brut/FrontEnd/Pages/MissingPage.html +797 -0
  355. data/docs/api/Brut/FrontEnd/Pages.html +125 -0
  356. data/docs/api/Brut/FrontEnd/RequestContext.html +1312 -0
  357. data/docs/api/Brut/FrontEnd/RouteHook.html +424 -0
  358. data/docs/api/Brut/FrontEnd/RouteHooks/AgeFlash.html +242 -0
  359. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineScripts.html +249 -0
  360. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts/ReportOnly.html +264 -0
  361. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts.html +261 -0
  362. data/docs/api/Brut/FrontEnd/RouteHooks/LocaleDetection.html +284 -0
  363. data/docs/api/Brut/FrontEnd/RouteHooks/SetupRequestContext.html +252 -0
  364. data/docs/api/Brut/FrontEnd/RouteHooks.html +115 -0
  365. data/docs/api/Brut/FrontEnd/Routing/FormHandlerRoute.html +227 -0
  366. data/docs/api/Brut/FrontEnd/Routing/FormRoute.html +305 -0
  367. data/docs/api/Brut/FrontEnd/Routing/MissingForm.html +324 -0
  368. data/docs/api/Brut/FrontEnd/Routing/MissingHandler.html +319 -0
  369. data/docs/api/Brut/FrontEnd/Routing/MissingPage.html +315 -0
  370. data/docs/api/Brut/FrontEnd/Routing/MissingPath.html +315 -0
  371. data/docs/api/Brut/FrontEnd/Routing/PageRoute.html +327 -0
  372. data/docs/api/Brut/FrontEnd/Routing/Route.html +761 -0
  373. data/docs/api/Brut/FrontEnd/Routing.html +927 -0
  374. data/docs/api/Brut/FrontEnd/Session.html +1195 -0
  375. data/docs/api/Brut/FrontEnd.html +134 -0
  376. data/docs/api/Brut/I18n/BaseMethods.html +931 -0
  377. data/docs/api/Brut/I18n/ForBackEnd.html +302 -0
  378. data/docs/api/Brut/I18n/ForCLI.html +302 -0
  379. data/docs/api/Brut/I18n/ForHTML.html +296 -0
  380. data/docs/api/Brut/I18n/HTTPAcceptLanguage/AlwaysEnglish.html +316 -0
  381. data/docs/api/Brut/I18n/HTTPAcceptLanguage.html +930 -0
  382. data/docs/api/Brut/I18n.html +127 -0
  383. data/docs/api/Brut/Instrumentation/LoggerSpanExporter.html +435 -0
  384. data/docs/api/Brut/Instrumentation/OpenTelemetry/NormalizedAttributes.html +286 -0
  385. data/docs/api/Brut/Instrumentation/OpenTelemetry/Span.html +302 -0
  386. data/docs/api/Brut/Instrumentation/OpenTelemetry.html +864 -0
  387. data/docs/api/Brut/Instrumentation.html +126 -0
  388. data/docs/api/Brut/SinatraHelpers/ClassMethods.html +532 -0
  389. data/docs/api/Brut/SinatraHelpers.html +281 -0
  390. data/docs/api/Brut/SpecSupport/ClockSupport.html +383 -0
  391. data/docs/api/Brut/SpecSupport/ComponentSupport.html +502 -0
  392. data/docs/api/Brut/SpecSupport/E2ETestServer.html +503 -0
  393. data/docs/api/Brut/SpecSupport/E2eSupport.html +142 -0
  394. data/docs/api/Brut/SpecSupport/EnhancedNode.html +403 -0
  395. data/docs/api/Brut/SpecSupport/FlashSupport.html +278 -0
  396. data/docs/api/Brut/SpecSupport/GeneralSupport/ClassMethods.html +401 -0
  397. data/docs/api/Brut/SpecSupport/GeneralSupport.html +195 -0
  398. data/docs/api/Brut/SpecSupport/HandlerSupport.html +160 -0
  399. data/docs/api/Brut/SpecSupport/Matchers/HaveConstraintViolation.html +553 -0
  400. data/docs/api/Brut/SpecSupport/Matchers/HaveHTMLAttribute.html +439 -0
  401. data/docs/api/Brut/SpecSupport/Matchers.html +125 -0
  402. data/docs/api/Brut/SpecSupport/RSpecSetup/OptionalSidekiqSupport.html +335 -0
  403. data/docs/api/Brut/SpecSupport/RSpecSetup.html +602 -0
  404. data/docs/api/Brut/SpecSupport/SessionSupport.html +196 -0
  405. data/docs/api/Brut/SpecSupport.html +129 -0
  406. data/docs/api/Brut.html +225 -0
  407. data/docs/api/Clock.html +603 -0
  408. data/docs/api/RichString.html +968 -0
  409. data/docs/api/SemanticLogger/Appender/Async.html +219 -0
  410. data/docs/api/Sequel/Extensions/BrutInstrumentation.html +115 -0
  411. data/docs/api/Sequel/Extensions/BrutMigrations.html +533 -0
  412. data/docs/api/Sequel/Extensions.html +117 -0
  413. data/docs/api/Sequel/Plugins/CreatedAt/InstanceMethods.html +105 -0
  414. data/docs/api/Sequel/Plugins/CreatedAt.html +125 -0
  415. data/docs/api/Sequel/Plugins/ExternalId/ClassMethods.html +207 -0
  416. data/docs/api/Sequel/Plugins/ExternalId/InstanceMethods.html +186 -0
  417. data/docs/api/Sequel/Plugins/ExternalId.html +218 -0
  418. data/docs/api/Sequel/Plugins/FindBang/ClassMethods.html +202 -0
  419. data/docs/api/Sequel/Plugins/FindBang.html +125 -0
  420. data/docs/api/Sequel/Plugins.html +117 -0
  421. data/docs/api/Sequel.html +117 -0
  422. data/docs/api/_index.html +1553 -0
  423. data/docs/api/class_list.html +54 -0
  424. data/docs/api/css/common.css +1 -0
  425. data/docs/api/css/full_list.css +58 -0
  426. data/docs/api/css/style.css +503 -0
  427. data/docs/api/file.README.html +127 -0
  428. data/docs/api/file_list.html +59 -0
  429. data/docs/api/frames.html +22 -0
  430. data/docs/api/index.html +127 -0
  431. data/docs/api/js/app.js +344 -0
  432. data/docs/api/js/full_list.js +242 -0
  433. data/docs/api/js/jquery.js +4 -0
  434. data/docs/api/method_list.html +3998 -0
  435. data/docs/api/top-level-namespace.html +112 -0
  436. data/docs/assets/ai.md.tZrjP9im.js +1 -0
  437. data/docs/assets/ai.md.tZrjP9im.lean.js +1 -0
  438. data/docs/assets/app.D_yaTITQ.js +1 -0
  439. data/docs/assets/assets.md.D3wunzLx.js +19 -0
  440. data/docs/assets/assets.md.D3wunzLx.lean.js +1 -0
  441. data/docs/assets/brut-js.md.o2DAO2s2.js +12 -0
  442. data/docs/assets/brut-js.md.o2DAO2s2.lean.js +1 -0
  443. data/docs/assets/business-logic.md.BY4hGy0m.js +1 -0
  444. data/docs/assets/business-logic.md.BY4hGy0m.lean.js +1 -0
  445. data/docs/assets/chunks/@localSearchIndexroot.BsN5i0Fi.js +1 -0
  446. data/docs/assets/chunks/VPLocalSearchBox.B2-ZzyTY.js +8 -0
  447. data/docs/assets/chunks/framework.1L-BeKqY.js +18 -0
  448. data/docs/assets/chunks/theme.CfGFVRvE.js +2 -0
  449. data/docs/assets/cli.md.RmeA2b0i.js +127 -0
  450. data/docs/assets/cli.md.RmeA2b0i.lean.js +1 -0
  451. data/docs/assets/components.md.eCttGlN-.js +104 -0
  452. data/docs/assets/components.md.eCttGlN-.lean.js +1 -0
  453. data/docs/assets/configuration.md.BRriU0cL.js +78 -0
  454. data/docs/assets/configuration.md.BRriU0cL.lean.js +1 -0
  455. data/docs/assets/css.md.DJgj2clw.js +21 -0
  456. data/docs/assets/css.md.DJgj2clw.lean.js +1 -0
  457. data/docs/assets/custom-element-tests.md.BrYJQEl3.js +69 -0
  458. data/docs/assets/custom-element-tests.md.BrYJQEl3.lean.js +1 -0
  459. data/docs/assets/database-access.md.C7l-Vuvb.js +63 -0
  460. data/docs/assets/database-access.md.C7l-Vuvb.lean.js +1 -0
  461. data/docs/assets/database-schema.md.BUjR0VS1.js +63 -0
  462. data/docs/assets/database-schema.md.BUjR0VS1.lean.js +1 -0
  463. data/docs/assets/deployment.md.Dbka4OTr.js +1 -0
  464. data/docs/assets/deployment.md.Dbka4OTr.lean.js +1 -0
  465. data/docs/assets/dev-env-overview.Gj7NWM8-.png +0 -0
  466. data/docs/assets/dev-env-protocol.DysDAtnz.png +0 -0
  467. data/docs/assets/dev-environment.md.BNc8AYiK.js +11 -0
  468. data/docs/assets/dev-environment.md.BNc8AYiK.lean.js +1 -0
  469. data/docs/assets/doc-conventions.md.DCfRXXi-.js +1 -0
  470. data/docs/assets/doc-conventions.md.DCfRXXi-.lean.js +1 -0
  471. data/docs/assets/end-to-end-tests.md.yfQHC0b5.js +26 -0
  472. data/docs/assets/end-to-end-tests.md.yfQHC0b5.lean.js +1 -0
  473. data/docs/assets/flash-and-session.md.BXY8RvT0.js +93 -0
  474. data/docs/assets/flash-and-session.md.BXY8RvT0.lean.js +1 -0
  475. data/docs/assets/forms.md.CBTYQ_Cz.js +379 -0
  476. data/docs/assets/forms.md.CBTYQ_Cz.lean.js +1 -0
  477. data/docs/assets/getting-started.md.Bz2s1Vjb.js +2 -0
  478. data/docs/assets/getting-started.md.Bz2s1Vjb.lean.js +1 -0
  479. data/docs/assets/handlers.md.089DVD3v.js +69 -0
  480. data/docs/assets/handlers.md.089DVD3v.lean.js +1 -0
  481. data/docs/assets/hooks.md.C4-moMny.js +80 -0
  482. data/docs/assets/hooks.md.C4-moMny.lean.js +1 -0
  483. data/docs/assets/i18n.md.Do9i1qWl.js +23 -0
  484. data/docs/assets/i18n.md.Do9i1qWl.lean.js +1 -0
  485. data/docs/assets/index.md.B28EwVpq.js +1 -0
  486. data/docs/assets/index.md.B28EwVpq.lean.js +1 -0
  487. data/docs/assets/instrumentation.md.CL6ax7nT.js +35 -0
  488. data/docs/assets/instrumentation.md.CL6ax7nT.lean.js +1 -0
  489. data/docs/assets/javascript.md.GWbhRS51.js +31 -0
  490. data/docs/assets/javascript.md.GWbhRS51.lean.js +1 -0
  491. data/docs/assets/jobs.md.S-2amAYp.js +1 -0
  492. data/docs/assets/jobs.md.S-2amAYp.lean.js +1 -0
  493. data/docs/assets/keyword-injection.md.Dt2tKREs.js +25 -0
  494. data/docs/assets/keyword-injection.md.Dt2tKREs.lean.js +1 -0
  495. data/docs/assets/markdown-examples.md.CCFEQO44.js +33 -0
  496. data/docs/assets/markdown-examples.md.CCFEQO44.lean.js +1 -0
  497. data/docs/assets/middleware.md.Czz_UlJN.js +20 -0
  498. data/docs/assets/middleware.md.Czz_UlJN.lean.js +1 -0
  499. data/docs/assets/not-released.md.BBy28McC.js +1 -0
  500. data/docs/assets/not-released.md.BBy28McC.lean.js +1 -0
  501. data/docs/assets/overview.Da81cB9R.png +0 -0
  502. data/docs/assets/overview.md.CDalkuxV.js +133 -0
  503. data/docs/assets/overview.md.CDalkuxV.lean.js +1 -0
  504. data/docs/assets/pages.md.BE3kfOc5.js +122 -0
  505. data/docs/assets/pages.md.BE3kfOc5.lean.js +1 -0
  506. data/docs/assets/routes.md.BMM7peut.js +29 -0
  507. data/docs/assets/routes.md.BMM7peut.lean.js +1 -0
  508. data/docs/assets/security.md.C668yXCi.js +1 -0
  509. data/docs/assets/security.md.C668yXCi.lean.js +1 -0
  510. data/docs/assets/seed-data.md.BvFZlqIk.js +14 -0
  511. data/docs/assets/seed-data.md.BvFZlqIk.lean.js +1 -0
  512. data/docs/assets/spa.qejUdp-5.png +0 -0
  513. data/docs/assets/space-time-continuum.md.KPUIKysQ.js +1 -0
  514. data/docs/assets/space-time-continuum.md.KPUIKysQ.lean.js +1 -0
  515. data/docs/assets/style.D73IYGCX.css +1 -0
  516. data/docs/assets/tutorial.md.BnoGjrdK.js +1 -0
  517. data/docs/assets/tutorial.md.BnoGjrdK.lean.js +1 -0
  518. data/docs/assets/unit-tests.md.DUGrnLj5.js +13 -0
  519. data/docs/assets/unit-tests.md.DUGrnLj5.lean.js +1 -0
  520. data/docs/assets/workspace-protocol.C0gXsoDb.png +0 -0
  521. data/docs/assets.html +42 -0
  522. data/docs/brut-css/brut.css +1 -0
  523. data/docs/brut-css/brut.max.css +22372 -0
  524. data/docs/brut-css/classes/appearances.html +783 -0
  525. data/docs/brut-css/classes/background-colors.html +3529 -0
  526. data/docs/brut-css/classes/border-colors.html +3529 -0
  527. data/docs/brut-css/classes/borders.html +2293 -0
  528. data/docs/brut-css/classes/dimensions.html +2581 -0
  529. data/docs/brut-css/classes/flex.html +917 -0
  530. data/docs/brut-css/classes/foreground-colors.html +3261 -0
  531. data/docs/brut-css/classes/junk-drawer.html +431 -0
  532. data/docs/brut-css/classes/layout.html +668 -0
  533. data/docs/brut-css/classes/lists.html +331 -0
  534. data/docs/brut-css/classes/positioning.html +1751 -0
  535. data/docs/brut-css/classes/spacings.html +2633 -0
  536. data/docs/brut-css/classes/typography.html +2206 -0
  537. data/docs/brut-css/customization/advanced-configuration.html +204 -0
  538. data/docs/brut-css/customization/breakpoints.html +227 -0
  539. data/docs/brut-css/customization/design-system.html +197 -0
  540. data/docs/brut-css/customization/pseudo-classes.html +228 -0
  541. data/docs/brut-css/docs.css +98 -0
  542. data/docs/brut-css/getting-started/core-concepts.html +234 -0
  543. data/docs/brut-css/getting-started/installation.html +190 -0
  544. data/docs/brut-css/getting-started/overview.html +210 -0
  545. data/docs/brut-css/getting-started/simple-example.html +285 -0
  546. data/docs/brut-css/index.html +193 -0
  547. data/docs/brut-css/prism-twilight.min.css +1 -0
  548. data/docs/brut-css/properties/colors.html +1548 -0
  549. data/docs/brut-css/properties/spacings.html +614 -0
  550. data/docs/brut-css/properties/typography.html +777 -0
  551. data/docs/brut-js/api/AjaxSubmit.html +374 -0
  552. data/docs/brut-js/api/AjaxSubmit.js.html +435 -0
  553. data/docs/brut-js/api/Autosubmit.html +192 -0
  554. data/docs/brut-js/api/Autosubmit.js.html +114 -0
  555. data/docs/brut-js/api/BaseCustomElement.html +1091 -0
  556. data/docs/brut-js/api/BaseCustomElement.js.html +312 -0
  557. data/docs/brut-js/api/BrutCustomElements.html +172 -0
  558. data/docs/brut-js/api/BufferedLogger.html +173 -0
  559. data/docs/brut-js/api/ConfirmSubmit.html +278 -0
  560. data/docs/brut-js/api/ConfirmSubmit.js.html +167 -0
  561. data/docs/brut-js/api/ConfirmationDialog.html +425 -0
  562. data/docs/brut-js/api/ConfirmationDialog.js.html +194 -0
  563. data/docs/brut-js/api/ConstraintViolationMessage.html +448 -0
  564. data/docs/brut-js/api/ConstraintViolationMessage.js.html +176 -0
  565. data/docs/brut-js/api/ConstraintViolationMessages.html +590 -0
  566. data/docs/brut-js/api/ConstraintViolationMessages.js.html +149 -0
  567. data/docs/brut-js/api/CopyToClipboard.html +345 -0
  568. data/docs/brut-js/api/CopyToClipboard.js.html +147 -0
  569. data/docs/brut-js/api/Form.html +294 -0
  570. data/docs/brut-js/api/Form.js.html +202 -0
  571. data/docs/brut-js/api/I18nTranslation.html +409 -0
  572. data/docs/brut-js/api/I18nTranslation.js.html +112 -0
  573. data/docs/brut-js/api/LocaleDetection.html +312 -0
  574. data/docs/brut-js/api/LocaleDetection.js.html +168 -0
  575. data/docs/brut-js/api/Logger.html +702 -0
  576. data/docs/brut-js/api/Logger.js.html +141 -0
  577. data/docs/brut-js/api/Message.html +238 -0
  578. data/docs/brut-js/api/Message.js.html +107 -0
  579. data/docs/brut-js/api/PrefixedLogger.html +369 -0
  580. data/docs/brut-js/api/RichString.html +1049 -0
  581. data/docs/brut-js/api/RichString.js.html +164 -0
  582. data/docs/brut-js/api/Tabs.html +295 -0
  583. data/docs/brut-js/api/Tabs.js.html +219 -0
  584. data/docs/brut-js/api/Tracing.html +277 -0
  585. data/docs/brut-js/api/Tracing.js.html +298 -0
  586. data/docs/brut-js/api/external-CustomElementRegistry.html +140 -0
  587. data/docs/brut-js/api/external-Performance.html +138 -0
  588. data/docs/brut-js/api/external-Promise.html +138 -0
  589. data/docs/brut-js/api/external-ValidityState.html +138 -0
  590. data/docs/brut-js/api/external-Window.html +233 -0
  591. data/docs/brut-js/api/external-fetch.html +138 -0
  592. data/docs/brut-js/api/global.html +400 -0
  593. data/docs/brut-js/api/index.html +168 -0
  594. data/docs/brut-js/api/index.js.html +181 -0
  595. data/docs/brut-js/api/module-testing.html +383 -0
  596. data/docs/brut-js/api/scripts/linenumber.js +25 -0
  597. data/docs/brut-js/api/scripts/prettify/Apache-License-2.0.txt +202 -0
  598. data/docs/brut-js/api/scripts/prettify/lang-css.js +2 -0
  599. data/docs/brut-js/api/scripts/prettify/prettify.js +28 -0
  600. data/docs/brut-js/api/styles/jsdoc-default.css +327 -0
  601. data/docs/brut-js/api/styles/prettify-jsdoc.css +111 -0
  602. data/docs/brut-js/api/styles/prettify-tomorrow.css +132 -0
  603. data/docs/brut-js/api/testing.AssetMetadata.html +172 -0
  604. data/docs/brut-js/api/testing.AssetMetadataLoader.html +171 -0
  605. data/docs/brut-js/api/testing.CustomElementTest.html +679 -0
  606. data/docs/brut-js/api/testing.DOMCreator.html +171 -0
  607. data/docs/brut-js/api/testing_AssetMetadata.js.html +86 -0
  608. data/docs/brut-js/api/testing_AssetMetadataLoader.js.html +76 -0
  609. data/docs/brut-js/api/testing_CustomElementTest.js.html +286 -0
  610. data/docs/brut-js/api/testing_DOMCreator.js.html +96 -0
  611. data/docs/brut-js/api/testing_index.js.html +99 -0
  612. data/docs/brut-js.html +35 -0
  613. data/docs/business-logic.html +24 -0
  614. data/docs/cli.html +150 -0
  615. data/docs/components.html +127 -0
  616. data/docs/configuration.html +101 -0
  617. data/docs/css.html +44 -0
  618. data/docs/custom-element-tests.html +92 -0
  619. data/docs/database-access.html +86 -0
  620. data/docs/database-schema.html +86 -0
  621. data/docs/deployment.html +24 -0
  622. data/docs/dev-environment.html +34 -0
  623. data/docs/doc-conventions.html +24 -0
  624. data/docs/end-to-end-tests.html +49 -0
  625. data/docs/flash-and-session.html +116 -0
  626. data/docs/forms.html +402 -0
  627. data/docs/getting-started.html +25 -0
  628. data/docs/handlers.html +92 -0
  629. data/docs/hashmap.json +1 -0
  630. data/docs/hooks.html +103 -0
  631. data/docs/i18n.html +46 -0
  632. data/docs/images/logo-300.png +0 -0
  633. data/docs/images/logo.png +0 -0
  634. data/docs/index.html +24 -0
  635. data/docs/instrumentation.html +58 -0
  636. data/docs/javascript.html +54 -0
  637. data/docs/jobs.html +24 -0
  638. data/docs/keyword-injection.html +48 -0
  639. data/docs/markdown-examples.html +56 -0
  640. data/docs/middleware.html +43 -0
  641. data/docs/not-released.html +24 -0
  642. data/docs/overview.html +156 -0
  643. data/docs/pages.html +145 -0
  644. data/docs/routes.html +52 -0
  645. data/docs/security.html +24 -0
  646. data/docs/seed-data.html +37 -0
  647. data/docs/space-time-continuum.html +24 -0
  648. data/docs/tutorial.html +24 -0
  649. data/docs/unit-tests.html +36 -0
  650. data/docs/vp-icons.css +1 -0
  651. data/lib/brut/back_end/seed_data.rb +19 -2
  652. data/lib/brut/back_end/sidekiq/middlewares/server.rb +2 -1
  653. data/lib/brut/back_end/sidekiq/middlewares.rb +2 -1
  654. data/lib/brut/back_end/sidekiq.rb +2 -1
  655. data/lib/brut/back_end/validator.rb +5 -1
  656. data/lib/brut/back_end.rb +4 -2
  657. data/lib/brut/cli/app_runner.rb +1 -1
  658. data/lib/brut/cli/apps/test.rb +5 -0
  659. data/lib/brut/cli.rb +4 -3
  660. data/lib/brut/factory_bot.rb +0 -5
  661. data/lib/brut/framework/app.rb +70 -5
  662. data/lib/brut/framework/config.rb +5 -3
  663. data/lib/brut/framework/container.rb +3 -2
  664. data/lib/brut/framework/errors.rb +12 -4
  665. data/lib/brut/framework/mcp.rb +58 -1
  666. data/lib/brut/framework/project_environment.rb +6 -2
  667. data/lib/brut/framework.rb +1 -1
  668. data/lib/brut/front_end/component.rb +69 -71
  669. data/lib/brut/front_end/components/constraint_violations.rb +1 -4
  670. data/lib/brut/front_end/components/form_tag.rb +1 -1
  671. data/lib/brut/front_end/components/input.rb +3 -3
  672. data/lib/brut/front_end/components/inputs/csrf_token.rb +1 -1
  673. data/lib/brut/front_end/components/inputs/{text_field.rb → input_tag.rb} +7 -9
  674. data/lib/brut/front_end/components/inputs/radio_button.rb +1 -1
  675. data/lib/brut/front_end/components/inputs/select_tag_with_options.rb +187 -0
  676. data/lib/brut/front_end/components/inputs/{textarea.rb → textarea_tag.rb} +2 -2
  677. data/lib/brut/front_end/components/time_tag.rb +2 -1
  678. data/lib/brut/front_end/form.rb +4 -4
  679. data/lib/brut/front_end/forms/input.rb +2 -1
  680. data/lib/brut/front_end/forms/input_definition.rb +5 -2
  681. data/lib/brut/front_end/forms/radio_button_group_input.rb +2 -1
  682. data/lib/brut/front_end/forms/radio_button_group_input_definition.rb +2 -2
  683. data/lib/brut/front_end/forms/select_input.rb +2 -4
  684. data/lib/brut/front_end/forms/select_input_definition.rb +2 -2
  685. data/lib/brut/front_end/handler.rb +28 -26
  686. data/lib/brut/front_end/handlers/csp_reporting_handler.rb +5 -2
  687. data/lib/brut/front_end/handlers/instrumentation_handler.rb +8 -4
  688. data/lib/brut/front_end/handlers/locale_detection_handler.rb +9 -5
  689. data/lib/brut/front_end/handlers/missing_handler.rb +5 -2
  690. data/lib/brut/front_end/layout.rb +16 -0
  691. data/lib/brut/front_end/page.rb +52 -29
  692. data/lib/brut/front_end/request_context.rb +3 -2
  693. data/lib/brut/front_end/routing.rb +5 -1
  694. data/lib/brut/front_end.rb +4 -13
  695. data/lib/brut/i18n/base_methods.rb +167 -79
  696. data/lib/brut/i18n/for_back_end.rb +4 -0
  697. data/lib/brut/i18n/for_cli.rb +4 -0
  698. data/lib/brut/i18n/for_html.rb +32 -4
  699. data/lib/brut/i18n/http_accept_language.rb +47 -0
  700. data/lib/brut/instrumentation/open_telemetry.rb +36 -1
  701. data/lib/brut/instrumentation.rb +3 -5
  702. data/lib/brut/sinatra_helpers.rb +11 -3
  703. data/lib/brut/spec_support/component_support.rb +30 -16
  704. data/lib/brut/spec_support/e2e_support.rb +1 -1
  705. data/lib/brut/spec_support/e2e_test_server.rb +3 -0
  706. data/lib/brut/spec_support/general_support.rb +3 -0
  707. data/lib/brut/spec_support/handler_support.rb +6 -1
  708. data/lib/brut/spec_support/matcher.rb +1 -0
  709. data/lib/brut/spec_support/matchers/be_page_for.rb +1 -0
  710. data/lib/brut/spec_support/matchers/have_html_attribute.rb +1 -0
  711. data/lib/brut/spec_support/matchers/have_i18n_string.rb +2 -5
  712. data/lib/brut/spec_support/matchers/have_link_to.rb +1 -0
  713. data/lib/brut/spec_support/matchers/have_redirected_to.rb +1 -0
  714. data/lib/brut/spec_support/matchers/have_rendered.rb +1 -0
  715. data/lib/brut/spec_support/matchers/have_returned_rack_response.rb +44 -0
  716. data/lib/brut/spec_support.rb +1 -1
  717. data/lib/brut/version.rb +1 -1
  718. data/lib/brut.rb +5 -4
  719. data/lib/sequel/extensions/brut_migrations.rb +1 -1
  720. metadata +648 -13
  721. data/doc-src/architecture.md +0 -102
  722. data/doc-src/assets.md +0 -98
  723. data/doc-src/forms.md +0 -214
  724. data/doc-src/handlers.md +0 -83
  725. data/doc-src/javascript.md +0 -265
  726. data/doc-src/pages.md +0 -210
  727. data/doc-src/route-hooks.md +0 -59
  728. data/lib/brut/front_end/components/inputs/select.rb +0 -117
@@ -0,0 +1,1548 @@
1
+ <!doctype html>
2
+ <html class="ma-0 pa-0 h-100" lang="en">
3
+ <head>
4
+ <link rel="stylesheet" href="/brut-css/brut.css">
5
+ <link rel="stylesheet" href="/brut-css/docs.css">
6
+ <link rel="stylesheet" href="/brut-css/prism-twilight.min.css">
7
+ </head>
8
+
9
+ <body class="flex flex-column ff-sans ma-0 pa-0 h-100">
10
+ <header class="pos-sticky top-0 bg-gray-700 pa-3 z-5 shadow-2">
11
+ <div class="flex gap-3 justify-between items-center">
12
+ <h1><a href="/brut-css" class="black tdn">BrutCSS Reference Documentation</a></h1>
13
+ <ul class="lst-none pl-0 flex gap-2 justify-end items-center">
14
+ <form class="flex items-center gap-1 mr-3">
15
+ <label>
16
+ <input type="search" placeholder="e.g. padding-left" class="pa-2 br-2 ba bc-gray-600 bg-white-ish gray-200">
17
+ <span class="sr-only">Search term</span>
18
+ </label>
19
+ <button class="ph-3 pv-2 bg-white gray-100 ba bc-gray-500 br-3 hover-bg-gray-800 pointer flex items-center justify-between">
20
+ <span class="mr-2">Search</span>
21
+ <kbd>&#8984;</kbd>
22
+ <kbd>/</kbd>
23
+ </button>
24
+ </form>
25
+ <li><a href="/" class="red-200 tdn hover-tdu">BrutRB</a></li>
26
+ <span aria-hidden="true">&middot;</span>
27
+ <li><a href="/brut-js" class="gray-200 tdn hover-tdu">BrutJS</a></li>
28
+ <span aria-hidden="true">&middot;</span>
29
+ <li><a href="https://github.com/thirdtank/brut/tree/main/brut-css" class="gray-200 tdn hover-tdu">Code</a></li>
30
+ </ul>
31
+ </div>
32
+ </header>
33
+ <main class="flex overflow-hidden flex-grow-1 flex-shrink-1 flex-basis-0 pos-relative">
34
+ <nav class="overflow-y-auto ph-3 pb-2 pt-4 w-20 bg-gray-800 gray-200 h-100">
35
+
36
+ <h3>Getting Started</h3>
37
+ <ul class="pl-3">
38
+
39
+ <li>
40
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/getting-started/overview.html">Overview</a>
41
+ </li>
42
+
43
+ <li>
44
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/getting-started/installation.html">Installation</a>
45
+ </li>
46
+
47
+ <li>
48
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/getting-started/core-concepts.html">Core Concepts</a>
49
+ </li>
50
+
51
+ <li>
52
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/getting-started/simple-example.html">Simple Example</a>
53
+ </li>
54
+
55
+ </ul>
56
+
57
+ <h3>Properties</h3>
58
+ <ul class="pl-3">
59
+
60
+ <li>
61
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/properties/colors.html">Colors</a>
62
+ </li>
63
+
64
+ <li>
65
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/properties/spacings.html">Spacings</a>
66
+ </li>
67
+
68
+ <li>
69
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/properties/typography.html">Typography</a>
70
+ </li>
71
+
72
+ </ul>
73
+
74
+ <h3>Classes</h3>
75
+ <ul class="pl-3">
76
+
77
+ <li>
78
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/classes/appearances.html">Appearances</a>
79
+ </li>
80
+
81
+ <li>
82
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/classes/borders.html">Borders</a>
83
+ </li>
84
+
85
+ <li>
86
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/classes/foreground-colors.html">Foreground Colors</a>
87
+ </li>
88
+
89
+ <li>
90
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/classes/background-colors.html">Background Colors</a>
91
+ </li>
92
+
93
+ <li>
94
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/classes/border-colors.html">Border Colors</a>
95
+ </li>
96
+
97
+ <li>
98
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/classes/dimensions.html">Dimensions</a>
99
+ </li>
100
+
101
+ <li>
102
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/classes/flex.html">Flex</a>
103
+ </li>
104
+
105
+ <li>
106
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/classes/layout.html">Layout</a>
107
+ </li>
108
+
109
+ <li>
110
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/classes/lists.html">Lists</a>
111
+ </li>
112
+
113
+ <li>
114
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/classes/positioning.html">Positioning</a>
115
+ </li>
116
+
117
+ <li>
118
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/classes/spacings.html">Spacings</a>
119
+ </li>
120
+
121
+ <li>
122
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/classes/typography.html">Typography</a>
123
+ </li>
124
+
125
+ <li>
126
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/classes/junk-drawer.html">Junk Drawer</a>
127
+ </li>
128
+
129
+ </ul>
130
+
131
+ <h3>Customization</h3>
132
+ <ul class="pl-3">
133
+
134
+ <li>
135
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/customization/design-system.html">Design System</a>
136
+ </li>
137
+
138
+ <li>
139
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/customization/breakpoints.html">Breakpoints</a>
140
+ </li>
141
+
142
+ <li>
143
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/customization/pseudo-classes.html">Pseudo Classes</a>
144
+ </li>
145
+
146
+ <li>
147
+ <a class="black-ish tdu tdn-ns hover-tdu-ns" href="/brut-css/customization/advanced-configuration.html">Advanced Configuration</a>
148
+ </li>
149
+
150
+ </ul>
151
+
152
+
153
+ </nav>
154
+ <section class="overflow-y-auto pt-4 h-100 flex-grow-1 flex-shrink-1 flex-basis-0 flex flex-column">
155
+ <div class="ph-3 pv-2 flex items-start gap-2 justify-between">
156
+
157
+ <article>
158
+ <h2 class="f-5">Colors Custom Properties</h2>
159
+ <p class="p">
160
+ <p>Color palette. Brut provides six colors plus gray at nine shades each. There are also two shades each of black and white. Colors are available as <code>--color-XXX</code> where <code>XXX</code> is a value from darkest to 900, with 100 being the darkest and lightest being the lightest. As there are nine shades in each color’s scale, that means the values are 100, 200, 300, 400, 500, 600, 700, 800, 900. For black and white, there is <a href="/brut-css/properties/colors.html#--black"><code>--black</code></a> or <a href="/brut-css/properties/colors.html#--white"><code>--white</code></a> which is designed to be pure black or white, respectively, and then <a href="/brut-css/properties/colors.html#--black-ish"><code>--black-ish</code></a> and <a href="/brut-css/properties/colors.html#--white-ish"><code>--white-ish</code></a>, which are designed to be a touch lighter or darker, respectively. To use your own colors, the simplest thing to do is override these variables. This works well if you are satisfied with six total colors plus gray and nine shades of each. If not, you will need to define new variables and then declare the requisite classes.</p>
161
+
162
+ </p>
163
+
164
+
165
+ <h3 class="f-5 mt-4" id="property-scale:blue">Blue</h3>
166
+ <p class="p">
167
+ <p>Blues</p>
168
+
169
+ </p>
170
+
171
+
172
+ <h4 class="f-4 fw-3 mt-4" id="--blue-100"><code>--blue-100</code></h4>
173
+ <div class="ml-3">
174
+ <p class="p">
175
+ <p>The darkest shade of blue</p>
176
+
177
+ </p>
178
+
179
+ <dl class="property-grid">
180
+ <dt>Type:</dt>
181
+ <dd>
182
+ <code>&#34;&lt;color&gt;&#34;</code>
183
+ </dd>
184
+ <dt>Value:</dt>
185
+ <dd>
186
+ <code>#000E1C</code>
187
+ </dd>
188
+ </dl>
189
+ </div>
190
+
191
+ <h4 class="f-4 fw-3 mt-4" id="--blue-200"><code>--blue-200</code></h4>
192
+ <div class="ml-3">
193
+ <p class="p">
194
+ <p>The second darkest shade of blue</p>
195
+
196
+ </p>
197
+
198
+ <dl class="property-grid">
199
+ <dt>Type:</dt>
200
+ <dd>
201
+ <code>&#34;&lt;color&gt;&#34;</code>
202
+ </dd>
203
+ <dt>Value:</dt>
204
+ <dd>
205
+ <code>#00172F</code>
206
+ </dd>
207
+ </dl>
208
+ </div>
209
+
210
+ <h4 class="f-4 fw-3 mt-4" id="--blue-300"><code>--blue-300</code></h4>
211
+ <div class="ml-3">
212
+ <p class="p">
213
+ <p>The third darkest shade of blue</p>
214
+
215
+ </p>
216
+
217
+ <dl class="property-grid">
218
+ <dt>Type:</dt>
219
+ <dd>
220
+ <code>&#34;&lt;color&gt;&#34;</code>
221
+ </dd>
222
+ <dt>Value:</dt>
223
+ <dd>
224
+ <code>#002E5E</code>
225
+ </dd>
226
+ </dl>
227
+ </div>
228
+
229
+ <h4 class="f-4 fw-3 mt-4" id="--blue-400"><code>--blue-400</code></h4>
230
+ <div class="ml-3">
231
+ <p class="p">
232
+ <p>The shade just darker than middle of blue</p>
233
+
234
+ </p>
235
+
236
+ <dl class="property-grid">
237
+ <dt>Type:</dt>
238
+ <dd>
239
+ <code>&#34;&lt;color&gt;&#34;</code>
240
+ </dd>
241
+ <dt>Value:</dt>
242
+ <dd>
243
+ <code>#004E9E</code>
244
+ </dd>
245
+ </dl>
246
+ </div>
247
+
248
+ <h4 class="f-4 fw-3 mt-4" id="--blue-500"><code>--blue-500</code></h4>
249
+ <div class="ml-3">
250
+ <p class="p">
251
+ <p>The middle shade of blue</p>
252
+
253
+ </p>
254
+
255
+ <dl class="property-grid">
256
+ <dt>Type:</dt>
257
+ <dd>
258
+ <code>&#34;&lt;color&gt;&#34;</code>
259
+ </dd>
260
+ <dt>Value:</dt>
261
+ <dd>
262
+ <code>#0069d5</code>
263
+ </dd>
264
+ </dl>
265
+ </div>
266
+
267
+ <h4 class="f-4 fw-3 mt-4" id="--blue-600"><code>--blue-600</code></h4>
268
+ <div class="ml-3">
269
+ <p class="p">
270
+ <p>The shade just lighter than middle of blue</p>
271
+
272
+ </p>
273
+
274
+ <dl class="property-grid">
275
+ <dt>Type:</dt>
276
+ <dd>
277
+ <code>&#34;&lt;color&gt;&#34;</code>
278
+ </dd>
279
+ <dt>Value:</dt>
280
+ <dd>
281
+ <code>#50A6FF</code>
282
+ </dd>
283
+ </dl>
284
+ </div>
285
+
286
+ <h4 class="f-4 fw-3 mt-4" id="--blue-700"><code>--blue-700</code></h4>
287
+ <div class="ml-3">
288
+ <p class="p">
289
+ <p>The third lightest shade of blue</p>
290
+
291
+ </p>
292
+
293
+ <dl class="property-grid">
294
+ <dt>Type:</dt>
295
+ <dd>
296
+ <code>&#34;&lt;color&gt;&#34;</code>
297
+ </dd>
298
+ <dt>Value:</dt>
299
+ <dd>
300
+ <code>#A9D3FF</code>
301
+ </dd>
302
+ </dl>
303
+ </div>
304
+
305
+ <h4 class="f-4 fw-3 mt-4" id="--blue-800"><code>--blue-800</code></h4>
306
+ <div class="ml-3">
307
+ <p class="p">
308
+ <p>The second lightest shade of blue</p>
309
+
310
+ </p>
311
+
312
+ <dl class="property-grid">
313
+ <dt>Type:</dt>
314
+ <dd>
315
+ <code>&#34;&lt;color&gt;&#34;</code>
316
+ </dd>
317
+ <dt>Value:</dt>
318
+ <dd>
319
+ <code>#E4F1FF</code>
320
+ </dd>
321
+ </dl>
322
+ </div>
323
+
324
+ <h4 class="f-4 fw-3 mt-4" id="--blue-900"><code>--blue-900</code></h4>
325
+ <div class="ml-3">
326
+ <p class="p">
327
+ <p>The lightest shade of blue</p>
328
+
329
+ </p>
330
+
331
+ <dl class="property-grid">
332
+ <dt>Type:</dt>
333
+ <dd>
334
+ <code>&#34;&lt;color&gt;&#34;</code>
335
+ </dd>
336
+ <dt>Value:</dt>
337
+ <dd>
338
+ <code>#F9FCFF</code>
339
+ </dd>
340
+ </dl>
341
+ </div>
342
+
343
+
344
+ <h3 class="f-5 mt-4" id="property-scale:gray">Gray</h3>
345
+ <p class="p">
346
+ <p>Grays</p>
347
+
348
+ </p>
349
+
350
+
351
+ <h4 class="f-4 fw-3 mt-4" id="--gray-100"><code>--gray-100</code></h4>
352
+ <div class="ml-3">
353
+ <p class="p">
354
+ <p>The darkest shade of gray</p>
355
+
356
+ </p>
357
+
358
+ <dl class="property-grid">
359
+ <dt>Type:</dt>
360
+ <dd>
361
+ <code>&#34;&lt;color&gt;&#34;</code>
362
+ </dd>
363
+ <dt>Value:</dt>
364
+ <dd>
365
+ <code>#0F0F10</code>
366
+ </dd>
367
+ </dl>
368
+ </div>
369
+
370
+ <h4 class="f-4 fw-3 mt-4" id="--gray-200"><code>--gray-200</code></h4>
371
+ <div class="ml-3">
372
+ <p class="p">
373
+ <p>The second darkest shade of gray</p>
374
+
375
+ </p>
376
+
377
+ <dl class="property-grid">
378
+ <dt>Type:</dt>
379
+ <dd>
380
+ <code>&#34;&lt;color&gt;&#34;</code>
381
+ </dd>
382
+ <dt>Value:</dt>
383
+ <dd>
384
+ <code>#1A1A1B</code>
385
+ </dd>
386
+ </dl>
387
+ </div>
388
+
389
+ <h4 class="f-4 fw-3 mt-4" id="--gray-300"><code>--gray-300</code></h4>
390
+ <div class="ml-3">
391
+ <p class="p">
392
+ <p>The third darkest shade of gray</p>
393
+
394
+ </p>
395
+
396
+ <dl class="property-grid">
397
+ <dt>Type:</dt>
398
+ <dd>
399
+ <code>&#34;&lt;color&gt;&#34;</code>
400
+ </dd>
401
+ <dt>Value:</dt>
402
+ <dd>
403
+ <code>#333336</code>
404
+ </dd>
405
+ </dl>
406
+ </div>
407
+
408
+ <h4 class="f-4 fw-3 mt-4" id="--gray-400"><code>--gray-400</code></h4>
409
+ <div class="ml-3">
410
+ <p class="p">
411
+ <p>The shade just darker than middle of gray</p>
412
+
413
+ </p>
414
+
415
+ <dl class="property-grid">
416
+ <dt>Type:</dt>
417
+ <dd>
418
+ <code>&#34;&lt;color&gt;&#34;</code>
419
+ </dd>
420
+ <dt>Value:</dt>
421
+ <dd>
422
+ <code>#56565B</code>
423
+ </dd>
424
+ </dl>
425
+ </div>
426
+
427
+ <h4 class="f-4 fw-3 mt-4" id="--gray-500"><code>--gray-500</code></h4>
428
+ <div class="ml-3">
429
+ <p class="p">
430
+ <p>The middle shade of gray</p>
431
+
432
+ </p>
433
+
434
+ <dl class="property-grid">
435
+ <dt>Type:</dt>
436
+ <dd>
437
+ <code>&#34;&lt;color&gt;&#34;</code>
438
+ </dd>
439
+ <dt>Value:</dt>
440
+ <dd>
441
+ <code>#74747B</code>
442
+ </dd>
443
+ </dl>
444
+ </div>
445
+
446
+ <h4 class="f-4 fw-3 mt-4" id="--gray-600"><code>--gray-600</code></h4>
447
+ <div class="ml-3">
448
+ <p class="p">
449
+ <p>The shade just lighter than middle of gray</p>
450
+
451
+ </p>
452
+
453
+ <dl class="property-grid">
454
+ <dt>Type:</dt>
455
+ <dd>
456
+ <code>&#34;&lt;color&gt;&#34;</code>
457
+ </dd>
458
+ <dt>Value:</dt>
459
+ <dd>
460
+ <code>#ADADB1</code>
461
+ </dd>
462
+ </dl>
463
+ </div>
464
+
465
+ <h4 class="f-4 fw-3 mt-4" id="--gray-700"><code>--gray-700</code></h4>
466
+ <div class="ml-3">
467
+ <p class="p">
468
+ <p>The third lightest shade of gray</p>
469
+
470
+ </p>
471
+
472
+ <dl class="property-grid">
473
+ <dt>Type:</dt>
474
+ <dd>
475
+ <code>&#34;&lt;color&gt;&#34;</code>
476
+ </dd>
477
+ <dt>Value:</dt>
478
+ <dd>
479
+ <code>#D7D7D9</code>
480
+ </dd>
481
+ </dl>
482
+ </div>
483
+
484
+ <h4 class="f-4 fw-3 mt-4" id="--gray-800"><code>--gray-800</code></h4>
485
+ <div class="ml-3">
486
+ <p class="p">
487
+ <p>The second lightest shade of gray</p>
488
+
489
+ </p>
490
+
491
+ <dl class="property-grid">
492
+ <dt>Type:</dt>
493
+ <dd>
494
+ <code>&#34;&lt;color&gt;&#34;</code>
495
+ </dd>
496
+ <dt>Value:</dt>
497
+ <dd>
498
+ <code>#F2F2F3</code>
499
+ </dd>
500
+ </dl>
501
+ </div>
502
+
503
+ <h4 class="f-4 fw-3 mt-4" id="--gray-900"><code>--gray-900</code></h4>
504
+ <div class="ml-3">
505
+ <p class="p">
506
+ <p>The lightest shade of gray</p>
507
+
508
+ </p>
509
+
510
+ <dl class="property-grid">
511
+ <dt>Type:</dt>
512
+ <dd>
513
+ <code>&#34;&lt;color&gt;&#34;</code>
514
+ </dd>
515
+ <dt>Value:</dt>
516
+ <dd>
517
+ <code>#FCFCFC</code>
518
+ </dd>
519
+ </dl>
520
+ </div>
521
+
522
+
523
+ <h3 class="f-5 mt-4" id="property-scale:green">Green</h3>
524
+ <p class="p">
525
+ <p>Greens</p>
526
+
527
+ </p>
528
+
529
+
530
+ <h4 class="f-4 fw-3 mt-4" id="--green-100"><code>--green-100</code></h4>
531
+ <div class="ml-3">
532
+ <p class="p">
533
+ <p>The darkest shade of green</p>
534
+
535
+ </p>
536
+
537
+ <dl class="property-grid">
538
+ <dt>Type:</dt>
539
+ <dd>
540
+ <code>&#34;&lt;color&gt;&#34;</code>
541
+ </dd>
542
+ <dt>Value:</dt>
543
+ <dd>
544
+ <code>#071B0E</code>
545
+ </dd>
546
+ </dl>
547
+ </div>
548
+
549
+ <h4 class="f-4 fw-3 mt-4" id="--green-200"><code>--green-200</code></h4>
550
+ <div class="ml-3">
551
+ <p class="p">
552
+ <p>The second darkest shade of green</p>
553
+
554
+ </p>
555
+
556
+ <dl class="property-grid">
557
+ <dt>Type:</dt>
558
+ <dd>
559
+ <code>&#34;&lt;color&gt;&#34;</code>
560
+ </dd>
561
+ <dt>Value:</dt>
562
+ <dd>
563
+ <code>#0C2D17</code>
564
+ </dd>
565
+ </dl>
566
+ </div>
567
+
568
+ <h4 class="f-4 fw-3 mt-4" id="--green-300"><code>--green-300</code></h4>
569
+ <div class="ml-3">
570
+ <p class="p">
571
+ <p>The third darkest shade of green</p>
572
+
573
+ </p>
574
+
575
+ <dl class="property-grid">
576
+ <dt>Type:</dt>
577
+ <dd>
578
+ <code>&#34;&lt;color&gt;&#34;</code>
579
+ </dd>
580
+ <dt>Value:</dt>
581
+ <dd>
582
+ <code>#175A2E</code>
583
+ </dd>
584
+ </dl>
585
+ </div>
586
+
587
+ <h4 class="f-4 fw-3 mt-4" id="--green-400"><code>--green-400</code></h4>
588
+ <div class="ml-3">
589
+ <p class="p">
590
+ <p>The shade just darker than middle of green</p>
591
+
592
+ </p>
593
+
594
+ <dl class="property-grid">
595
+ <dt>Type:</dt>
596
+ <dd>
597
+ <code>&#34;&lt;color&gt;&#34;</code>
598
+ </dd>
599
+ <dt>Value:</dt>
600
+ <dd>
601
+ <code>#27984D</code>
602
+ </dd>
603
+ </dl>
604
+ </div>
605
+
606
+ <h4 class="f-4 fw-3 mt-4" id="--green-500"><code>--green-500</code></h4>
607
+ <div class="ml-3">
608
+ <p class="p">
609
+ <p>The middle shade of green</p>
610
+
611
+ </p>
612
+
613
+ <dl class="property-grid">
614
+ <dt>Type:</dt>
615
+ <dd>
616
+ <code>&#34;&lt;color&gt;&#34;</code>
617
+ </dd>
618
+ <dt>Value:</dt>
619
+ <dd>
620
+ <code>#37CB69</code>
621
+ </dd>
622
+ </dl>
623
+ </div>
624
+
625
+ <h4 class="f-4 fw-3 mt-4" id="--green-600"><code>--green-600</code></h4>
626
+ <div class="ml-3">
627
+ <p class="p">
628
+ <p>The shade just lighter than middle of green</p>
629
+
630
+ </p>
631
+
632
+ <dl class="property-grid">
633
+ <dt>Type:</dt>
634
+ <dd>
635
+ <code>&#34;&lt;color&gt;&#34;</code>
636
+ </dd>
637
+ <dt>Value:</dt>
638
+ <dd>
639
+ <code>#89E0A6</code>
640
+ </dd>
641
+ </dl>
642
+ </div>
643
+
644
+ <h4 class="f-4 fw-3 mt-4" id="--green-700"><code>--green-700</code></h4>
645
+ <div class="ml-3">
646
+ <p class="p">
647
+ <p>The third lightest shade of green</p>
648
+
649
+ </p>
650
+
651
+ <dl class="property-grid">
652
+ <dt>Type:</dt>
653
+ <dd>
654
+ <code>&#34;&lt;color&gt;&#34;</code>
655
+ </dd>
656
+ <dt>Value:</dt>
657
+ <dd>
658
+ <code>#C5F0D4</code>
659
+ </dd>
660
+ </dl>
661
+ </div>
662
+
663
+ <h4 class="f-4 fw-3 mt-4" id="--green-800"><code>--green-800</code></h4>
664
+ <div class="ml-3">
665
+ <p class="p">
666
+ <p>The second lightest shade of green</p>
667
+
668
+ </p>
669
+
670
+ <dl class="property-grid">
671
+ <dt>Type:</dt>
672
+ <dd>
673
+ <code>&#34;&lt;color&gt;&#34;</code>
674
+ </dd>
675
+ <dt>Value:</dt>
676
+ <dd>
677
+ <code>#EDFAF2</code>
678
+ </dd>
679
+ </dl>
680
+ </div>
681
+
682
+ <h4 class="f-4 fw-3 mt-4" id="--green-900"><code>--green-900</code></h4>
683
+ <div class="ml-3">
684
+ <p class="p">
685
+ <p>The lightest shade of green</p>
686
+
687
+ </p>
688
+
689
+ <dl class="property-grid">
690
+ <dt>Type:</dt>
691
+ <dd>
692
+ <code>&#34;&lt;color&gt;&#34;</code>
693
+ </dd>
694
+ <dt>Value:</dt>
695
+ <dd>
696
+ <code>#FBFEFC</code>
697
+ </dd>
698
+ </dl>
699
+ </div>
700
+
701
+
702
+ <h3 class="f-5 mt-4" id="property-scale:orange">Orange</h3>
703
+ <p class="p">
704
+ <p>Oranges</p>
705
+
706
+ </p>
707
+
708
+
709
+ <h4 class="f-4 fw-3 mt-4" id="--orange-100"><code>--orange-100</code></h4>
710
+ <div class="ml-3">
711
+ <p class="p">
712
+ <p>The darkest shade of orange</p>
713
+
714
+ </p>
715
+
716
+ <dl class="property-grid">
717
+ <dt>Type:</dt>
718
+ <dd>
719
+ <code>&#34;&lt;color&gt;&#34;</code>
720
+ </dd>
721
+ <dt>Value:</dt>
722
+ <dd>
723
+ <code>#1E0E00</code>
724
+ </dd>
725
+ </dl>
726
+ </div>
727
+
728
+ <h4 class="f-4 fw-3 mt-4" id="--orange-200"><code>--orange-200</code></h4>
729
+ <div class="ml-3">
730
+ <p class="p">
731
+ <p>The second darkest shade of orange</p>
732
+
733
+ </p>
734
+
735
+ <dl class="property-grid">
736
+ <dt>Type:</dt>
737
+ <dd>
738
+ <code>&#34;&lt;color&gt;&#34;</code>
739
+ </dd>
740
+ <dt>Value:</dt>
741
+ <dd>
742
+ <code>#331800</code>
743
+ </dd>
744
+ </dl>
745
+ </div>
746
+
747
+ <h4 class="f-4 fw-3 mt-4" id="--orange-300"><code>--orange-300</code></h4>
748
+ <div class="ml-3">
749
+ <p class="p">
750
+ <p>The third darkest shade of orange</p>
751
+
752
+ </p>
753
+
754
+ <dl class="property-grid">
755
+ <dt>Type:</dt>
756
+ <dd>
757
+ <code>&#34;&lt;color&gt;&#34;</code>
758
+ </dd>
759
+ <dt>Value:</dt>
760
+ <dd>
761
+ <code>#673000</code>
762
+ </dd>
763
+ </dl>
764
+ </div>
765
+
766
+ <h4 class="f-4 fw-3 mt-4" id="--orange-400"><code>--orange-400</code></h4>
767
+ <div class="ml-3">
768
+ <p class="p">
769
+ <p>The shade just darker than middle of orange</p>
770
+
771
+ </p>
772
+
773
+ <dl class="property-grid">
774
+ <dt>Type:</dt>
775
+ <dd>
776
+ <code>&#34;&lt;color&gt;&#34;</code>
777
+ </dd>
778
+ <dt>Value:</dt>
779
+ <dd>
780
+ <code>#AD5000</code>
781
+ </dd>
782
+ </dl>
783
+ </div>
784
+
785
+ <h4 class="f-4 fw-3 mt-4" id="--orange-500"><code>--orange-500</code></h4>
786
+ <div class="ml-3">
787
+ <p class="p">
788
+ <p>The middle shade of orange</p>
789
+
790
+ </p>
791
+
792
+ <dl class="property-grid">
793
+ <dt>Type:</dt>
794
+ <dd>
795
+ <code>&#34;&lt;color&gt;&#34;</code>
796
+ </dd>
797
+ <dt>Value:</dt>
798
+ <dd>
799
+ <code>#EA6C00</code>
800
+ </dd>
801
+ </dl>
802
+ </div>
803
+
804
+ <h4 class="f-4 fw-3 mt-4" id="--orange-600"><code>--orange-600</code></h4>
805
+ <div class="ml-3">
806
+ <p class="p">
807
+ <p>The shade just lighter than middle of orange</p>
808
+
809
+ </p>
810
+
811
+ <dl class="property-grid">
812
+ <dt>Type:</dt>
813
+ <dd>
814
+ <code>&#34;&lt;color&gt;&#34;</code>
815
+ </dd>
816
+ <dt>Value:</dt>
817
+ <dd>
818
+ <code>#FFA75C</code>
819
+ </dd>
820
+ </dl>
821
+ </div>
822
+
823
+ <h4 class="f-4 fw-3 mt-4" id="--orange-700"><code>--orange-700</code></h4>
824
+ <div class="ml-3">
825
+ <p class="p">
826
+ <p>The third lightest shade of orange</p>
827
+
828
+ </p>
829
+
830
+ <dl class="property-grid">
831
+ <dt>Type:</dt>
832
+ <dd>
833
+ <code>&#34;&lt;color&gt;&#34;</code>
834
+ </dd>
835
+ <dt>Value:</dt>
836
+ <dd>
837
+ <code>#FFD4AF</code>
838
+ </dd>
839
+ </dl>
840
+ </div>
841
+
842
+ <h4 class="f-4 fw-3 mt-4" id="--orange-800"><code>--orange-800</code></h4>
843
+ <div class="ml-3">
844
+ <p class="p">
845
+ <p>The second lightest shade of orange</p>
846
+
847
+ </p>
848
+
849
+ <dl class="property-grid">
850
+ <dt>Type:</dt>
851
+ <dd>
852
+ <code>&#34;&lt;color&gt;&#34;</code>
853
+ </dd>
854
+ <dt>Value:</dt>
855
+ <dd>
856
+ <code>#FFF2E6</code>
857
+ </dd>
858
+ </dl>
859
+ </div>
860
+
861
+ <h4 class="f-4 fw-3 mt-4" id="--orange-900"><code>--orange-900</code></h4>
862
+ <div class="ml-3">
863
+ <p class="p">
864
+ <p>The lightest shade of orange</p>
865
+
866
+ </p>
867
+
868
+ <dl class="property-grid">
869
+ <dt>Type:</dt>
870
+ <dd>
871
+ <code>&#34;&lt;color&gt;&#34;</code>
872
+ </dd>
873
+ <dt>Value:</dt>
874
+ <dd>
875
+ <code>#FFFCF9</code>
876
+ </dd>
877
+ </dl>
878
+ </div>
879
+
880
+
881
+ <h3 class="f-5 mt-4" id="property-scale:purple">Purple</h3>
882
+ <p class="p">
883
+ <p>Purples</p>
884
+
885
+ </p>
886
+
887
+
888
+ <h4 class="f-4 fw-3 mt-4" id="--purple-100"><code>--purple-100</code></h4>
889
+ <div class="ml-3">
890
+ <p class="p">
891
+ <p>The darkest shade of purple</p>
892
+
893
+ </p>
894
+
895
+ <dl class="property-grid">
896
+ <dt>Type:</dt>
897
+ <dd>
898
+ <code>&#34;&lt;color&gt;&#34;</code>
899
+ </dd>
900
+ <dt>Value:</dt>
901
+ <dd>
902
+ <code>#0E071B</code>
903
+ </dd>
904
+ </dl>
905
+ </div>
906
+
907
+ <h4 class="f-4 fw-3 mt-4" id="--purple-200"><code>--purple-200</code></h4>
908
+ <div class="ml-3">
909
+ <p class="p">
910
+ <p>The second darkest shade of purple</p>
911
+
912
+ </p>
913
+
914
+ <dl class="property-grid">
915
+ <dt>Type:</dt>
916
+ <dd>
917
+ <code>&#34;&lt;color&gt;&#34;</code>
918
+ </dd>
919
+ <dt>Value:</dt>
920
+ <dd>
921
+ <code>#170C2D</code>
922
+ </dd>
923
+ </dl>
924
+ </div>
925
+
926
+ <h4 class="f-4 fw-3 mt-4" id="--purple-300"><code>--purple-300</code></h4>
927
+ <div class="ml-3">
928
+ <p class="p">
929
+ <p>The third darkest shade of purple</p>
930
+
931
+ </p>
932
+
933
+ <dl class="property-grid">
934
+ <dt>Type:</dt>
935
+ <dd>
936
+ <code>&#34;&lt;color&gt;&#34;</code>
937
+ </dd>
938
+ <dt>Value:</dt>
939
+ <dd>
940
+ <code>#2E175A</code>
941
+ </dd>
942
+ </dl>
943
+ </div>
944
+
945
+ <h4 class="f-4 fw-3 mt-4" id="--purple-400"><code>--purple-400</code></h4>
946
+ <div class="ml-3">
947
+ <p class="p">
948
+ <p>The shade just darker than middle of purple</p>
949
+
950
+ </p>
951
+
952
+ <dl class="property-grid">
953
+ <dt>Type:</dt>
954
+ <dd>
955
+ <code>&#34;&lt;color&gt;&#34;</code>
956
+ </dd>
957
+ <dt>Value:</dt>
958
+ <dd>
959
+ <code>#4D2798</code>
960
+ </dd>
961
+ </dl>
962
+ </div>
963
+
964
+ <h4 class="f-4 fw-3 mt-4" id="--purple-500"><code>--purple-500</code></h4>
965
+ <div class="ml-3">
966
+ <p class="p">
967
+ <p>The middle shade of purple</p>
968
+
969
+ </p>
970
+
971
+ <dl class="property-grid">
972
+ <dt>Type:</dt>
973
+ <dd>
974
+ <code>&#34;&lt;color&gt;&#34;</code>
975
+ </dd>
976
+ <dt>Value:</dt>
977
+ <dd>
978
+ <code>#6937cb</code>
979
+ </dd>
980
+ </dl>
981
+ </div>
982
+
983
+ <h4 class="f-4 fw-3 mt-4" id="--purple-600"><code>--purple-600</code></h4>
984
+ <div class="ml-3">
985
+ <p class="p">
986
+ <p>The shade just lighter than middle of purple</p>
987
+
988
+ </p>
989
+
990
+ <dl class="property-grid">
991
+ <dt>Type:</dt>
992
+ <dd>
993
+ <code>&#34;&lt;color&gt;&#34;</code>
994
+ </dd>
995
+ <dt>Value:</dt>
996
+ <dd>
997
+ <code>#A689E0</code>
998
+ </dd>
999
+ </dl>
1000
+ </div>
1001
+
1002
+ <h4 class="f-4 fw-3 mt-4" id="--purple-700"><code>--purple-700</code></h4>
1003
+ <div class="ml-3">
1004
+ <p class="p">
1005
+ <p>The third lightest shade of purple</p>
1006
+
1007
+ </p>
1008
+
1009
+ <dl class="property-grid">
1010
+ <dt>Type:</dt>
1011
+ <dd>
1012
+ <code>&#34;&lt;color&gt;&#34;</code>
1013
+ </dd>
1014
+ <dt>Value:</dt>
1015
+ <dd>
1016
+ <code>#D4C5F0</code>
1017
+ </dd>
1018
+ </dl>
1019
+ </div>
1020
+
1021
+ <h4 class="f-4 fw-3 mt-4" id="--purple-800"><code>--purple-800</code></h4>
1022
+ <div class="ml-3">
1023
+ <p class="p">
1024
+ <p>The second lightest shade of purple</p>
1025
+
1026
+ </p>
1027
+
1028
+ <dl class="property-grid">
1029
+ <dt>Type:</dt>
1030
+ <dd>
1031
+ <code>&#34;&lt;color&gt;&#34;</code>
1032
+ </dd>
1033
+ <dt>Value:</dt>
1034
+ <dd>
1035
+ <code>#F2EDFA</code>
1036
+ </dd>
1037
+ </dl>
1038
+ </div>
1039
+
1040
+ <h4 class="f-4 fw-3 mt-4" id="--purple-900"><code>--purple-900</code></h4>
1041
+ <div class="ml-3">
1042
+ <p class="p">
1043
+ <p>The lightest shade of purple</p>
1044
+
1045
+ </p>
1046
+
1047
+ <dl class="property-grid">
1048
+ <dt>Type:</dt>
1049
+ <dd>
1050
+ <code>&#34;&lt;color&gt;&#34;</code>
1051
+ </dd>
1052
+ <dt>Value:</dt>
1053
+ <dd>
1054
+ <code>#FCFBFE</code>
1055
+ </dd>
1056
+ </dl>
1057
+ </div>
1058
+
1059
+
1060
+ <h3 class="f-5 mt-4" id="property-scale:red">Red</h3>
1061
+ <p class="p">
1062
+ <p>Reds</p>
1063
+
1064
+ </p>
1065
+
1066
+
1067
+ <h4 class="f-4 fw-3 mt-4" id="--red-100"><code>--red-100</code></h4>
1068
+ <div class="ml-3">
1069
+ <p class="p">
1070
+ <p>The darkest shade of red</p>
1071
+
1072
+ </p>
1073
+
1074
+ <dl class="property-grid">
1075
+ <dt>Type:</dt>
1076
+ <dd>
1077
+ <code>&#34;&lt;color&gt;&#34;</code>
1078
+ </dd>
1079
+ <dt>Value:</dt>
1080
+ <dd>
1081
+ <code>#1E0200</code>
1082
+ </dd>
1083
+ </dl>
1084
+ </div>
1085
+
1086
+ <h4 class="f-4 fw-3 mt-4" id="--red-200"><code>--red-200</code></h4>
1087
+ <div class="ml-3">
1088
+ <p class="p">
1089
+ <p>The second darkest shade of red</p>
1090
+
1091
+ </p>
1092
+
1093
+ <dl class="property-grid">
1094
+ <dt>Type:</dt>
1095
+ <dd>
1096
+ <code>&#34;&lt;color&gt;&#34;</code>
1097
+ </dd>
1098
+ <dt>Value:</dt>
1099
+ <dd>
1100
+ <code>#320300</code>
1101
+ </dd>
1102
+ </dl>
1103
+ </div>
1104
+
1105
+ <h4 class="f-4 fw-3 mt-4" id="--red-300"><code>--red-300</code></h4>
1106
+ <div class="ml-3">
1107
+ <p class="p">
1108
+ <p>The third darkest shade of red</p>
1109
+
1110
+ </p>
1111
+
1112
+ <dl class="property-grid">
1113
+ <dt>Type:</dt>
1114
+ <dd>
1115
+ <code>&#34;&lt;color&gt;&#34;</code>
1116
+ </dd>
1117
+ <dt>Value:</dt>
1118
+ <dd>
1119
+ <code>#640600</code>
1120
+ </dd>
1121
+ </dl>
1122
+ </div>
1123
+
1124
+ <h4 class="f-4 fw-3 mt-4" id="--red-400"><code>--red-400</code></h4>
1125
+ <div class="ml-3">
1126
+ <p class="p">
1127
+ <p>The shade just darker than middle of red</p>
1128
+
1129
+ </p>
1130
+
1131
+ <dl class="property-grid">
1132
+ <dt>Type:</dt>
1133
+ <dd>
1134
+ <code>&#34;&lt;color&gt;&#34;</code>
1135
+ </dd>
1136
+ <dt>Value:</dt>
1137
+ <dd>
1138
+ <code>#A80A00</code>
1139
+ </dd>
1140
+ </dl>
1141
+ </div>
1142
+
1143
+ <h4 class="f-4 fw-3 mt-4" id="--red-500"><code>--red-500</code></h4>
1144
+ <div class="ml-3">
1145
+ <p class="p">
1146
+ <p>The middle shade of red</p>
1147
+
1148
+ </p>
1149
+
1150
+ <dl class="property-grid">
1151
+ <dt>Type:</dt>
1152
+ <dd>
1153
+ <code>&#34;&lt;color&gt;&#34;</code>
1154
+ </dd>
1155
+ <dt>Value:</dt>
1156
+ <dd>
1157
+ <code>#E30D00</code>
1158
+ </dd>
1159
+ </dl>
1160
+ </div>
1161
+
1162
+ <h4 class="f-4 fw-3 mt-4" id="--red-600"><code>--red-600</code></h4>
1163
+ <div class="ml-3">
1164
+ <p class="p">
1165
+ <p>The shade just lighter than middle of red</p>
1166
+
1167
+ </p>
1168
+
1169
+ <dl class="property-grid">
1170
+ <dt>Type:</dt>
1171
+ <dd>
1172
+ <code>&#34;&lt;color&gt;&#34;</code>
1173
+ </dd>
1174
+ <dt>Value:</dt>
1175
+ <dd>
1176
+ <code>#FF6258</code>
1177
+ </dd>
1178
+ </dl>
1179
+ </div>
1180
+
1181
+ <h4 class="f-4 fw-3 mt-4" id="--red-700"><code>--red-700</code></h4>
1182
+ <div class="ml-3">
1183
+ <p class="p">
1184
+ <p>The third lightest shade of red</p>
1185
+
1186
+ </p>
1187
+
1188
+ <dl class="property-grid">
1189
+ <dt>Type:</dt>
1190
+ <dd>
1191
+ <code>&#34;&lt;color&gt;&#34;</code>
1192
+ </dd>
1193
+ <dt>Value:</dt>
1194
+ <dd>
1195
+ <code>#FFB2AD</code>
1196
+ </dd>
1197
+ </dl>
1198
+ </div>
1199
+
1200
+ <h4 class="f-4 fw-3 mt-4" id="--red-800"><code>--red-800</code></h4>
1201
+ <div class="ml-3">
1202
+ <p class="p">
1203
+ <p>The second lightest shade of red</p>
1204
+
1205
+ </p>
1206
+
1207
+ <dl class="property-grid">
1208
+ <dt>Type:</dt>
1209
+ <dd>
1210
+ <code>&#34;&lt;color&gt;&#34;</code>
1211
+ </dd>
1212
+ <dt>Value:</dt>
1213
+ <dd>
1214
+ <code>#FFE7E6</code>
1215
+ </dd>
1216
+ </dl>
1217
+ </div>
1218
+
1219
+ <h4 class="f-4 fw-3 mt-4" id="--red-900"><code>--red-900</code></h4>
1220
+ <div class="ml-3">
1221
+ <p class="p">
1222
+ <p>The lightest shade of red</p>
1223
+
1224
+ </p>
1225
+
1226
+ <dl class="property-grid">
1227
+ <dt>Type:</dt>
1228
+ <dd>
1229
+ <code>&#34;&lt;color&gt;&#34;</code>
1230
+ </dd>
1231
+ <dt>Value:</dt>
1232
+ <dd>
1233
+ <code>#FFFAF9</code>
1234
+ </dd>
1235
+ </dl>
1236
+ </div>
1237
+
1238
+
1239
+ <h3 class="f-5 mt-4" id="property-scale:yellow">Yellow</h3>
1240
+ <p class="p">
1241
+ <p>Yellows</p>
1242
+
1243
+ </p>
1244
+
1245
+
1246
+ <h4 class="f-4 fw-3 mt-4" id="--yellow-100"><code>--yellow-100</code></h4>
1247
+ <div class="ml-3">
1248
+ <p class="p">
1249
+ <p>The darkest shade of yellow</p>
1250
+
1251
+ </p>
1252
+
1253
+ <dl class="property-grid">
1254
+ <dt>Type:</dt>
1255
+ <dd>
1256
+ <code>&#34;&lt;color&gt;&#34;</code>
1257
+ </dd>
1258
+ <dt>Value:</dt>
1259
+ <dd>
1260
+ <code>#242402</code>
1261
+ </dd>
1262
+ </dl>
1263
+ </div>
1264
+
1265
+ <h4 class="f-4 fw-3 mt-4" id="--yellow-200"><code>--yellow-200</code></h4>
1266
+ <div class="ml-3">
1267
+ <p class="p">
1268
+ <p>The second darkest shade of yellow</p>
1269
+
1270
+ </p>
1271
+
1272
+ <dl class="property-grid">
1273
+ <dt>Type:</dt>
1274
+ <dd>
1275
+ <code>&#34;&lt;color&gt;&#34;</code>
1276
+ </dd>
1277
+ <dt>Value:</dt>
1278
+ <dd>
1279
+ <code>#3D3D04</code>
1280
+ </dd>
1281
+ </dl>
1282
+ </div>
1283
+
1284
+ <h4 class="f-4 fw-3 mt-4" id="--yellow-300"><code>--yellow-300</code></h4>
1285
+ <div class="ml-3">
1286
+ <p class="p">
1287
+ <p>The third darkest shade of yellow</p>
1288
+
1289
+ </p>
1290
+
1291
+ <dl class="property-grid">
1292
+ <dt>Type:</dt>
1293
+ <dd>
1294
+ <code>&#34;&lt;color&gt;&#34;</code>
1295
+ </dd>
1296
+ <dt>Value:</dt>
1297
+ <dd>
1298
+ <code>#797907</code>
1299
+ </dd>
1300
+ </dl>
1301
+ </div>
1302
+
1303
+ <h4 class="f-4 fw-3 mt-4" id="--yellow-400"><code>--yellow-400</code></h4>
1304
+ <div class="ml-3">
1305
+ <p class="p">
1306
+ <p>The shade just darker than middle of yellow</p>
1307
+
1308
+ </p>
1309
+
1310
+ <dl class="property-grid">
1311
+ <dt>Type:</dt>
1312
+ <dd>
1313
+ <code>&#34;&lt;color&gt;&#34;</code>
1314
+ </dd>
1315
+ <dt>Value:</dt>
1316
+ <dd>
1317
+ <code>#CCCC0C</code>
1318
+ </dd>
1319
+ </dl>
1320
+ </div>
1321
+
1322
+ <h4 class="f-4 fw-3 mt-4" id="--yellow-500"><code>--yellow-500</code></h4>
1323
+ <div class="ml-3">
1324
+ <p class="p">
1325
+ <p>The middle shade of yellow</p>
1326
+
1327
+ </p>
1328
+
1329
+ <dl class="property-grid">
1330
+ <dt>Type:</dt>
1331
+ <dd>
1332
+ <code>&#34;&lt;color&gt;&#34;</code>
1333
+ </dd>
1334
+ <dt>Value:</dt>
1335
+ <dd>
1336
+ <code>#F3F331</code>
1337
+ </dd>
1338
+ </dl>
1339
+ </div>
1340
+
1341
+ <h4 class="f-4 fw-3 mt-4" id="--yellow-600"><code>--yellow-600</code></h4>
1342
+ <div class="ml-3">
1343
+ <p class="p">
1344
+ <p>The shade just lighter than middle of yellow</p>
1345
+
1346
+ </p>
1347
+
1348
+ <dl class="property-grid">
1349
+ <dt>Type:</dt>
1350
+ <dd>
1351
+ <code>&#34;&lt;color&gt;&#34;</code>
1352
+ </dd>
1353
+ <dt>Value:</dt>
1354
+ <dd>
1355
+ <code>#F8F885</code>
1356
+ </dd>
1357
+ </dl>
1358
+ </div>
1359
+
1360
+ <h4 class="f-4 fw-3 mt-4" id="--yellow-700"><code>--yellow-700</code></h4>
1361
+ <div class="ml-3">
1362
+ <p class="p">
1363
+ <p>The third lightest shade of yellow</p>
1364
+
1365
+ </p>
1366
+
1367
+ <dl class="property-grid">
1368
+ <dt>Type:</dt>
1369
+ <dd>
1370
+ <code>&#34;&lt;color&gt;&#34;</code>
1371
+ </dd>
1372
+ <dt>Value:</dt>
1373
+ <dd>
1374
+ <code>#FCFCC3</code>
1375
+ </dd>
1376
+ </dl>
1377
+ </div>
1378
+
1379
+ <h4 class="f-4 fw-3 mt-4" id="--yellow-800"><code>--yellow-800</code></h4>
1380
+ <div class="ml-3">
1381
+ <p class="p">
1382
+ <p>The second lightest shade of yellow</p>
1383
+
1384
+ </p>
1385
+
1386
+ <dl class="property-grid">
1387
+ <dt>Type:</dt>
1388
+ <dd>
1389
+ <code>&#34;&lt;color&gt;&#34;</code>
1390
+ </dd>
1391
+ <dt>Value:</dt>
1392
+ <dd>
1393
+ <code>#FEFEEC</code>
1394
+ </dd>
1395
+ </dl>
1396
+ </div>
1397
+
1398
+ <h4 class="f-4 fw-3 mt-4" id="--yellow-900"><code>--yellow-900</code></h4>
1399
+ <div class="ml-3">
1400
+ <p class="p">
1401
+ <p>The lightest shade of yellow</p>
1402
+
1403
+ </p>
1404
+
1405
+ <dl class="property-grid">
1406
+ <dt>Type:</dt>
1407
+ <dd>
1408
+ <code>&#34;&lt;color&gt;&#34;</code>
1409
+ </dd>
1410
+ <dt>Value:</dt>
1411
+ <dd>
1412
+ <code>#FFFFFB</code>
1413
+ </dd>
1414
+ </dl>
1415
+ </div>
1416
+
1417
+
1418
+ <h3 class="f-5 mt-4" id="property-scale:black">Black</h3>
1419
+ <p class="p">
1420
+ <p>Blacks</p>
1421
+
1422
+ </p>
1423
+
1424
+
1425
+ <h4 class="f-4 fw-3 mt-4" id="--black"><code>--black</code></h4>
1426
+ <div class="ml-3">
1427
+ <p class="p">
1428
+ <p>Pure black</p>
1429
+
1430
+ </p>
1431
+
1432
+ <dl class="property-grid">
1433
+ <dt>Type:</dt>
1434
+ <dd>
1435
+ <code>&#34;&lt;color&gt;&#34;</code>
1436
+ </dd>
1437
+ <dt>Value:</dt>
1438
+ <dd>
1439
+ <code>#000000</code>
1440
+ </dd>
1441
+ </dl>
1442
+ </div>
1443
+
1444
+ <h4 class="f-4 fw-3 mt-4" id="--black-ish"><code>--black-ish</code></h4>
1445
+ <div class="ml-3">
1446
+ <p class="p">
1447
+ <p>Very slightly lighter than pure black</p>
1448
+
1449
+ </p>
1450
+
1451
+ <dl class="property-grid">
1452
+ <dt>Type:</dt>
1453
+ <dd>
1454
+ <code>&#34;&lt;color&gt;&#34;</code>
1455
+ </dd>
1456
+ <dt>Value:</dt>
1457
+ <dd>
1458
+ <code>#131313</code>
1459
+ </dd>
1460
+ </dl>
1461
+ </div>
1462
+
1463
+
1464
+ <h3 class="f-5 mt-4" id="property-scale:white">White</h3>
1465
+ <p class="p">
1466
+ <p>Whites</p>
1467
+
1468
+ </p>
1469
+
1470
+
1471
+ <h4 class="f-4 fw-3 mt-4" id="--white"><code>--white</code></h4>
1472
+ <div class="ml-3">
1473
+ <p class="p">
1474
+ <p>Pure white.</p>
1475
+
1476
+ </p>
1477
+
1478
+ <dl class="property-grid">
1479
+ <dt>Type:</dt>
1480
+ <dd>
1481
+ <code>&#34;&lt;color&gt;&#34;</code>
1482
+ </dd>
1483
+ <dt>Value:</dt>
1484
+ <dd>
1485
+ <code>#FFFFFF</code>
1486
+ </dd>
1487
+ </dl>
1488
+ </div>
1489
+
1490
+ <h4 class="f-4 fw-3 mt-4" id="--white-ish"><code>--white-ish</code></h4>
1491
+ <div class="ml-3">
1492
+ <p class="p">
1493
+ <p>Very slightly darker than pure white</p>
1494
+
1495
+ </p>
1496
+
1497
+ <dl class="property-grid">
1498
+ <dt>Type:</dt>
1499
+ <dd>
1500
+ <code>&#34;&lt;color&gt;&#34;</code>
1501
+ </dd>
1502
+ <dt>Value:</dt>
1503
+ <dd>
1504
+ <code>#FBFBFB</code>
1505
+ </dd>
1506
+ </dl>
1507
+ </div>
1508
+
1509
+
1510
+ </article>
1511
+ <div class="z-5 ma-0 overflow-y-auto pa-2 w-20 h-100 pos-absolute top-0 right-2">
1512
+ <div class="pa-3 ba bc-gray-700 bg-gray-900 br-3 shadow-1 ridiculous-liquid-glass-is-all-the-rage">
1513
+ <h3>On this Page</h3>
1514
+ <ul class="lst-none ma-0 pa-0">
1515
+
1516
+ <li class="lh-copy"><a href="#property-scale:blue">Blue</a></li>
1517
+
1518
+ <li class="lh-copy"><a href="#property-scale:gray">Gray</a></li>
1519
+
1520
+ <li class="lh-copy"><a href="#property-scale:green">Green</a></li>
1521
+
1522
+ <li class="lh-copy"><a href="#property-scale:orange">Orange</a></li>
1523
+
1524
+ <li class="lh-copy"><a href="#property-scale:purple">Purple</a></li>
1525
+
1526
+ <li class="lh-copy"><a href="#property-scale:red">Red</a></li>
1527
+
1528
+ <li class="lh-copy"><a href="#property-scale:yellow">Yellow</a></li>
1529
+
1530
+ <li class="lh-copy"><a href="#property-scale:black">Black</a></li>
1531
+
1532
+ <li class="lh-copy"><a href="#property-scale:white">White</a></li>
1533
+
1534
+ </ul>
1535
+ </div>
1536
+ </div>
1537
+ </div>
1538
+ <footer class="bg-black white mt-auto">
1539
+ <p class="tc">
1540
+ Copyright &copy; 2025 David Bryant Copeland.
1541
+ </p>
1542
+ </footer>
1543
+ </section>
1544
+ </main>
1545
+ </body>
1546
+
1547
+ </html>
1548
+