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.
- checksums.yaml +4 -4
- data/.gitignore +24 -3
- data/.nvim.lua +1 -0
- data/Dockerfile.dx +12 -3
- data/Gemfile.lock +9 -7
- data/README.md +0 -7
- data/Rakefile +6 -4
- data/bin/dev +20 -0
- data/bin/docs +27 -0
- data/bin/setup +47 -1
- data/brut-css/.nvim.lua +1 -0
- data/brut-css/README.md +28 -0
- data/brut-css/bin/build +31 -0
- data/brut-css/bin/dev +1 -0
- data/brut-css/bin/docs +15 -0
- data/brut-css/bin/setup +5 -0
- data/brut-css/config/media-queries-all.css +15 -0
- data/brut-css/config/media-queries-minimal.css +5 -0
- data/brut-css/config/postcss.config.cjs +7 -0
- data/brut-css/config/pseudo-classes-all.css +9 -0
- data/brut-css/dx +1 -0
- data/brut-css/package-lock.json +3217 -0
- data/brut-css/package.json +36 -0
- data/brut-css/src/css/appearance.css +145 -0
- data/brut-css/src/css/border.css +522 -0
- data/brut-css/src/css/colors.css +3502 -0
- data/brut-css/src/css/dimensions.css +548 -0
- data/brut-css/src/css/flex.css +179 -0
- data/brut-css/src/css/index.css +13 -0
- data/brut-css/src/css/layout.css +120 -0
- data/brut-css/src/css/list.css +41 -0
- data/brut-css/src/css/positioning.css +354 -0
- data/brut-css/src/css/properties/colors.css +455 -0
- data/brut-css/src/css/properties/index.css +3 -0
- data/brut-css/src/css/properties/spacing.css +140 -0
- data/brut-css/src/css/properties/typography.css +224 -0
- data/brut-css/src/css/reset.css +107 -0
- data/brut-css/src/css/spacing.css +585 -0
- data/brut-css/src/css/typography.css +519 -0
- data/brut-css/src/css/utils.css +104 -0
- data/brut-css/src/docs/1_getting-started/1_overview.md +46 -0
- data/brut-css/src/docs/1_getting-started/2_installation.md +25 -0
- data/brut-css/src/docs/1_getting-started/3_core-concepts.md +75 -0
- data/brut-css/src/docs/1_getting-started/4_simple-example.md +132 -0
- data/brut-css/src/docs/1_getting-started/page.html.ejs +10 -0
- data/brut-css/src/docs/2_properties/page.html.ejs +71 -0
- data/brut-css/src/docs/3_classes/color-demo.html.ejs +31 -0
- data/brut-css/src/docs/3_classes/page.html.ejs +87 -0
- data/brut-css/src/docs/4_customization/1_design-system.md +36 -0
- data/brut-css/src/docs/4_customization/2_breakpoints.md +75 -0
- data/brut-css/src/docs/4_customization/3_pseudo-classes.md +74 -0
- data/brut-css/src/docs/4_customization/4_advanced-configuration.md +40 -0
- data/brut-css/src/docs/4_customization/page.html.ejs +10 -0
- data/brut-css/src/docs/docs.css +98 -0
- data/brut-css/src/docs/includes/body-and-header.html.ejs +30 -0
- data/brut-css/src/docs/includes/footer-and-rest.html.ejs +9 -0
- data/brut-css/src/docs/includes/head.html.ejs +5 -0
- data/brut-css/src/docs/includes/nav.html.ejs +10 -0
- data/brut-css/src/docs/index.html.ejs +32 -0
- data/brut-css/src/docs/prism-twilight.min.css +1 -0
- data/brut-css/src/js/Logger.js +71 -0
- data/brut-css/src/js/build.js +111 -0
- data/brut-css/src/js/cli/CLIArgError.js +7 -0
- data/brut-css/src/js/cli/Debug.js +27 -0
- data/brut-css/src/js/cli/DocsDir.js +16 -0
- data/brut-css/src/js/cli/DocsTemplateSourceDir.js +16 -0
- data/brut-css/src/js/cli/InputFile.js +31 -0
- data/brut-css/src/js/cli/MediaQueryConfigFile.js +10 -0
- data/brut-css/src/js/cli/OutputFile.js +22 -0
- data/brut-css/src/js/cli/ParsedArg.js +17 -0
- data/brut-css/src/js/cli/PathToBrutCSSRoot.js +19 -0
- data/brut-css/src/js/cli/PseudoClassConfigFile.js +11 -0
- data/brut-css/src/js/cli.js +108 -0
- data/brut-css/src/js/docGenerator.js +467 -0
- data/brut-css/src/js/mediaQueryConfigParser.js +98 -0
- data/brut-css/src/js/post-css-plugins/addMediaQueriesPlugin.js +49 -0
- data/brut-css/src/js/post-css-plugins/addPseudoClassesPlugin.js +42 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/Category.js +9 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/DocState.js +185 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/Documentable.js +8 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/Group.js +7 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/ParsedComment.js +73 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/Property.js +9 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/PropertyCategory.js +4 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/PropertyGroup.js +8 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/Rule.js +12 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/RuleCategory.js +4 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/RuleGroup.js +8 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/SeeRef.js +5 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin/SeeURL.js +9 -0
- data/brut-css/src/js/post-css-plugins/generateDocumentationPlugin.js +49 -0
- data/brut-css/src/js/post-css-plugins/generateRootCustomPropertiesPlugin.js +45 -0
- data/brut-css/src/js/pseudoClassConfigParser.js +145 -0
- data/brut-js/.projections.json +10 -0
- data/brut-js/README.md +118 -0
- data/brut-js/bin/build +10 -0
- data/brut-js/bin/ci +5 -0
- data/brut-js/bin/setup +5 -0
- data/brut-js/docs/README.md +8 -0
- data/brut-js/docs/jsdoc-plugins/customElementTag.js +8 -0
- data/brut-js/docs/jsdoc-theme/publish.js +692 -0
- data/brut-js/docs/jsdoc-theme/static/scripts/linenumber.js +25 -0
- data/brut-js/docs/jsdoc-theme/static/scripts/prettify/Apache-License-2.0.txt +202 -0
- data/brut-js/docs/jsdoc-theme/static/scripts/prettify/lang-css.js +2 -0
- data/brut-js/docs/jsdoc-theme/static/scripts/prettify/prettify.js +28 -0
- data/brut-js/docs/jsdoc-theme/static/styles/jsdoc-default.css +327 -0
- data/brut-js/docs/jsdoc-theme/static/styles/prettify-jsdoc.css +111 -0
- data/brut-js/docs/jsdoc-theme/static/styles/prettify-tomorrow.css +132 -0
- data/brut-js/docs/jsdoc-theme/tmpl/augments.tmpl +10 -0
- data/brut-js/docs/jsdoc-theme/tmpl/container.tmpl +199 -0
- data/brut-js/docs/jsdoc-theme/tmpl/details.tmpl +143 -0
- data/brut-js/docs/jsdoc-theme/tmpl/example.tmpl +2 -0
- data/brut-js/docs/jsdoc-theme/tmpl/examples.tmpl +13 -0
- data/brut-js/docs/jsdoc-theme/tmpl/exceptions.tmpl +32 -0
- data/brut-js/docs/jsdoc-theme/tmpl/layout.tmpl +38 -0
- data/brut-js/docs/jsdoc-theme/tmpl/mainpage.tmpl +14 -0
- data/brut-js/docs/jsdoc-theme/tmpl/members.tmpl +38 -0
- data/brut-js/docs/jsdoc-theme/tmpl/method.tmpl +131 -0
- data/brut-js/docs/jsdoc-theme/tmpl/modifies.tmpl +14 -0
- data/brut-js/docs/jsdoc-theme/tmpl/params.tmpl +131 -0
- data/brut-js/docs/jsdoc-theme/tmpl/properties.tmpl +108 -0
- data/brut-js/docs/jsdoc-theme/tmpl/returns.tmpl +19 -0
- data/brut-js/docs/jsdoc-theme/tmpl/source.tmpl +8 -0
- data/brut-js/docs/jsdoc-theme/tmpl/tutorial.tmpl +19 -0
- data/brut-js/docs/jsdoc-theme/tmpl/type.tmpl +7 -0
- data/brut-js/docs/jsdoc.config.json +23 -0
- data/brut-js/docs/package-lock.json +343 -0
- data/brut-js/docs/package.json +7 -0
- data/brut-js/package-lock.json +2171 -0
- data/brut-js/package.json +32 -0
- data/brut-js/specs/AjaxSubmit.spec.js +256 -0
- data/brut-js/specs/Autosubmit.spec.js +127 -0
- data/brut-js/specs/ConfirmSubmit.spec.js +193 -0
- data/brut-js/specs/ConstraintViolationMessage.spec.js +33 -0
- data/brut-js/specs/ConstraintViolationMessages.spec.js +29 -0
- data/brut-js/specs/CopyToClipboard.spec.js +35 -0
- data/brut-js/specs/Form.spec.js +181 -0
- data/brut-js/specs/I18nTranslation.spec.js +19 -0
- data/brut-js/specs/LocaleDetection.spec.js +22 -0
- data/brut-js/specs/Message.spec.js +15 -0
- data/brut-js/specs/SpecHelper.js +23 -0
- data/brut-js/specs/Tabs.spec.js +41 -0
- data/brut-js/specs/config/asset_metadata.json +7 -0
- data/brut-js/src/AjaxSubmit.js +384 -0
- data/brut-js/src/Autosubmit.js +63 -0
- data/brut-js/src/BaseCustomElement.js +261 -0
- data/brut-js/src/ConfirmSubmit.js +116 -0
- data/brut-js/src/ConfirmationDialog.js +143 -0
- data/brut-js/src/ConstraintViolationMessage.js +125 -0
- data/brut-js/src/ConstraintViolationMessages.js +98 -0
- data/brut-js/src/CopyToClipboard.js +96 -0
- data/brut-js/src/Form.js +151 -0
- data/brut-js/src/I18nTranslation.js +61 -0
- data/brut-js/src/LocaleDetection.js +117 -0
- data/brut-js/src/Logger.js +90 -0
- data/brut-js/src/Message.js +56 -0
- data/brut-js/src/RichString.js +113 -0
- data/brut-js/src/Tabs.js +168 -0
- data/brut-js/src/Tracing.js +247 -0
- data/brut-js/src/appForTestingOnly.js +15 -0
- data/brut-js/src/index.js +130 -0
- data/brut-js/src/testing/AssetMetadata.js +35 -0
- data/brut-js/src/testing/AssetMetadataLoader.js +25 -0
- data/brut-js/src/testing/CustomElementTest.js +235 -0
- data/brut-js/src/testing/DOMCreator.js +45 -0
- data/brut-js/src/testing/index.js +48 -0
- data/brutrb.com/.vitepress/config.mjs +106 -0
- data/brutrb.com/.vitepress/plugins/jsdocLinker.js +34 -0
- data/brutrb.com/.vitepress/plugins/rdocLinker.js +18 -0
- data/brutrb.com/.vitepress/theme/custom.css +7 -0
- data/brutrb.com/.vitepress/theme/index.js +18 -0
- data/brutrb.com/.vitepress/theme/style.css +149 -0
- data/brutrb.com/ai.md +68 -0
- data/brutrb.com/assets.md +138 -0
- data/brutrb.com/bin/build +5 -0
- data/brutrb.com/bin/deploy +7 -0
- data/brutrb.com/bin/dev +5 -0
- data/brutrb.com/bin/setup +5 -0
- data/brutrb.com/brut-js.md +117 -0
- data/brutrb.com/business-logic.md +55 -0
- data/brutrb.com/cli.md +278 -0
- data/brutrb.com/components.md +243 -0
- data/brutrb.com/configuration.md +257 -0
- data/brutrb.com/css.md +103 -0
- data/brutrb.com/custom-element-tests.md +149 -0
- data/brutrb.com/database-access.md +201 -0
- data/brutrb.com/database-schema.md +312 -0
- data/brutrb.com/deployment.md +66 -0
- data/brutrb.com/dev-environment.md +179 -0
- data/brutrb.com/doc-conventions.md +39 -0
- data/brutrb.com/end-to-end-tests.md +174 -0
- data/brutrb.com/flash-and-session.md +224 -0
- data/brutrb.com/forms.md +866 -0
- data/brutrb.com/getting-started.md +66 -0
- data/brutrb.com/handlers.md +153 -0
- data/brutrb.com/hooks.md +178 -0
- data/brutrb.com/i18n.md +188 -0
- data/brutrb.com/images/Makefile +10 -0
- data/brutrb.com/images/dev-env-overview.dot +54 -0
- data/brutrb.com/images/dev-env-overview.png +0 -0
- data/brutrb.com/images/dev-env-protocol.dot +37 -0
- data/brutrb.com/images/dev-env-protocol.png +0 -0
- data/brutrb.com/images/logo-300.png +0 -0
- data/brutrb.com/images/logo.png +0 -0
- data/brutrb.com/images/overview.graffle +0 -0
- data/brutrb.com/images/overview.png +0 -0
- data/brutrb.com/images/spa.dot +19 -0
- data/brutrb.com/images/spa.png +0 -0
- data/brutrb.com/images/workspace-protocol.dot +44 -0
- data/brutrb.com/images/workspace-protocol.png +0 -0
- data/brutrb.com/index.md +36 -0
- data/brutrb.com/instrumentation.md +183 -0
- data/brutrb.com/javascript.md +122 -0
- data/brutrb.com/jobs.md +14 -0
- data/{doc-src → brutrb.com}/keyword-injection.md +122 -68
- data/brutrb.com/markdown-examples.md +85 -0
- data/brutrb.com/middleware.md +80 -0
- data/brutrb.com/not-released.md +5 -0
- data/brutrb.com/overview.md +404 -0
- data/brutrb.com/package-lock.json +2404 -0
- data/brutrb.com/package.json +11 -0
- data/brutrb.com/pages.md +378 -0
- data/brutrb.com/public/images/logo-300.png +0 -0
- data/brutrb.com/public/images/logo.png +0 -0
- data/brutrb.com/routes.md +215 -0
- data/brutrb.com/security.md +105 -0
- data/brutrb.com/seed-data.md +63 -0
- data/brutrb.com/space-time-continuum.md +85 -0
- data/brutrb.com/tutorial.md +3 -0
- data/brutrb.com/unit-tests.md +148 -0
- data/docker-compose.dx.yml +6 -3
- data/docs/404.html +21 -0
- data/docs/CNAME +1 -0
- data/docs/ai.html +24 -0
- data/docs/api/Brut/BackEnd/SeedData.html +493 -0
- data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server/FlushSpans.html +214 -0
- data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server.html +125 -0
- data/docs/api/Brut/BackEnd/Sidekiq/Middlewares.html +125 -0
- data/docs/api/Brut/BackEnd/Sidekiq.html +125 -0
- data/docs/api/Brut/BackEnd/Validators/FormValidator.html +414 -0
- data/docs/api/Brut/BackEnd/Validators.html +128 -0
- data/docs/api/Brut/BackEnd.html +132 -0
- data/docs/api/Brut/CLI/App.html +1576 -0
- data/docs/api/Brut/CLI/AppRunner.html +491 -0
- data/docs/api/Brut/CLI/Apps/BuildAssets/All.html +264 -0
- data/docs/api/Brut/CLI/Apps/BuildAssets/CSS.html +306 -0
- data/docs/api/Brut/CLI/Apps/BuildAssets/Images.html +262 -0
- data/docs/api/Brut/CLI/Apps/BuildAssets/JS.html +314 -0
- data/docs/api/Brut/CLI/Apps/BuildAssets.html +183 -0
- data/docs/api/Brut/CLI/Apps/DB/Create.html +365 -0
- data/docs/api/Brut/CLI/Apps/DB/Drop.html +357 -0
- data/docs/api/Brut/CLI/Apps/DB/Migrate.html +383 -0
- data/docs/api/Brut/CLI/Apps/DB/NewMigration.html +335 -0
- data/docs/api/Brut/CLI/Apps/DB/Rebuild.html +329 -0
- data/docs/api/Brut/CLI/Apps/DB/Seed.html +347 -0
- data/docs/api/Brut/CLI/Apps/DB/Status.html +383 -0
- data/docs/api/Brut/CLI/Apps/DB.html +183 -0
- data/docs/api/Brut/CLI/Apps/Scaffold/Action/Route.html +303 -0
- data/docs/api/Brut/CLI/Apps/Scaffold/Action.html +512 -0
- data/docs/api/Brut/CLI/Apps/Scaffold/Component.html +398 -0
- data/docs/api/Brut/CLI/Apps/Scaffold/CustomElementTest.html +374 -0
- data/docs/api/Brut/CLI/Apps/Scaffold/E2ETest.html +410 -0
- data/docs/api/Brut/CLI/Apps/Scaffold/Form.html +262 -0
- data/docs/api/Brut/CLI/Apps/Scaffold/Page/Route.html +303 -0
- data/docs/api/Brut/CLI/Apps/Scaffold/Page.html +480 -0
- data/docs/api/Brut/CLI/Apps/Scaffold/RoutesEditor.html +450 -0
- data/docs/api/Brut/CLI/Apps/Scaffold/Test.html +380 -0
- data/docs/api/Brut/CLI/Apps/Scaffold.html +253 -0
- data/docs/api/Brut/CLI/Apps/Test/Audit.html +464 -0
- data/docs/api/Brut/CLI/Apps/Test/E2e.html +407 -0
- data/docs/api/Brut/CLI/Apps/Test/JS.html +262 -0
- data/docs/api/Brut/CLI/Apps/Test/Run.html +578 -0
- data/docs/api/Brut/CLI/Apps/Test.html +253 -0
- data/docs/api/Brut/CLI/Apps.html +125 -0
- data/docs/api/Brut/CLI/Command.html +2342 -0
- data/docs/api/Brut/CLI/Error.html +139 -0
- data/docs/api/Brut/CLI/ExecutionResults/Result.html +664 -0
- data/docs/api/Brut/CLI/ExecutionResults.html +675 -0
- data/docs/api/Brut/CLI/Executor.html +430 -0
- data/docs/api/Brut/CLI/InvalidOption.html +245 -0
- data/docs/api/Brut/CLI/Options.html +753 -0
- data/docs/api/Brut/CLI/Output.html +699 -0
- data/docs/api/Brut/CLI/SystemExecError.html +451 -0
- data/docs/api/Brut/CLI.html +263 -0
- data/docs/api/Brut/FactoryBot.html +225 -0
- data/docs/api/Brut/Framework/App.html +1097 -0
- data/docs/api/Brut/Framework/Config.html +1045 -0
- data/docs/api/Brut/Framework/Container.html +1379 -0
- data/docs/api/Brut/Framework/Error.html +140 -0
- data/docs/api/Brut/Framework/Errors/AbstractMethod.html +144 -0
- data/docs/api/Brut/Framework/Errors/Bug.html +234 -0
- data/docs/api/Brut/Framework/Errors/MissingConfiguration.html +257 -0
- data/docs/api/Brut/Framework/Errors/MissingParameter.html +273 -0
- data/docs/api/Brut/Framework/Errors/NoClassForPath.html +471 -0
- data/docs/api/Brut/Framework/Errors/NotFound.html +308 -0
- data/docs/api/Brut/Framework/Errors/NotImplemented.html +234 -0
- data/docs/api/Brut/Framework/Errors.html +328 -0
- data/docs/api/Brut/Framework/FussyTypeEnforcement.html +392 -0
- data/docs/api/Brut/Framework/MCP.html +861 -0
- data/docs/api/Brut/Framework/ProjectEnvironment.html +648 -0
- data/docs/api/Brut/Framework.html +129 -0
- data/docs/api/Brut/FrontEnd/AssetPathResolver.html +317 -0
- data/docs/api/Brut/FrontEnd/Component/Helpers.html +326 -0
- data/docs/api/Brut/FrontEnd/Component.html +365 -0
- data/docs/api/Brut/FrontEnd/Components/ConstraintViolations.html +470 -0
- data/docs/api/Brut/FrontEnd/Components/FormTag.html +518 -0
- data/docs/api/Brut/FrontEnd/Components/I18nTranslations.html +317 -0
- data/docs/api/Brut/FrontEnd/Components/Input.html +195 -0
- data/docs/api/Brut/FrontEnd/Components/Inputs/CsrfToken.html +339 -0
- data/docs/api/Brut/FrontEnd/Components/Inputs/InputTag.html +660 -0
- data/docs/api/Brut/FrontEnd/Components/Inputs/RadioButton.html +417 -0
- data/docs/api/Brut/FrontEnd/Components/Inputs/SelectTagWithOptions.html +918 -0
- data/docs/api/Brut/FrontEnd/Components/Inputs/TextareaTag.html +651 -0
- data/docs/api/Brut/FrontEnd/Components/Inputs.html +125 -0
- data/docs/api/Brut/FrontEnd/Components/LocaleDetection.html +367 -0
- data/docs/api/Brut/FrontEnd/Components/PageIdentifier.html +336 -0
- data/docs/api/Brut/FrontEnd/Components/TimeTag.html +655 -0
- data/docs/api/Brut/FrontEnd/Components/Traceparent.html +352 -0
- data/docs/api/Brut/FrontEnd/Components.html +135 -0
- data/docs/api/Brut/FrontEnd/Download.html +467 -0
- data/docs/api/Brut/FrontEnd/Flash.html +1150 -0
- data/docs/api/Brut/FrontEnd/Form.html +1157 -0
- data/docs/api/Brut/FrontEnd/Forms/ConstraintViolation.html +634 -0
- data/docs/api/Brut/FrontEnd/Forms/Input.html +615 -0
- data/docs/api/Brut/FrontEnd/Forms/InputDeclarations.html +547 -0
- data/docs/api/Brut/FrontEnd/Forms/InputDefinition.html +1318 -0
- data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInput.html +609 -0
- data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInputDefinition.html +587 -0
- data/docs/api/Brut/FrontEnd/Forms/SelectInput.html +613 -0
- data/docs/api/Brut/FrontEnd/Forms/SelectInputDefinition.html +582 -0
- data/docs/api/Brut/FrontEnd/Forms/ValidityState.html +609 -0
- data/docs/api/Brut/FrontEnd/Forms.html +127 -0
- data/docs/api/Brut/FrontEnd/GenericResponse.html +377 -0
- data/docs/api/Brut/FrontEnd/Handler.html +442 -0
- data/docs/api/Brut/FrontEnd/Handlers/CspReportingHandler.html +318 -0
- data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler/TraceParent.html +336 -0
- data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler.html +399 -0
- data/docs/api/Brut/FrontEnd/Handlers/LocaleDetectionHandler.html +354 -0
- data/docs/api/Brut/FrontEnd/Handlers/MissingHandler/Form.html +151 -0
- data/docs/api/Brut/FrontEnd/Handlers/MissingHandler.html +315 -0
- data/docs/api/Brut/FrontEnd/Handlers.html +125 -0
- data/docs/api/Brut/FrontEnd/HandlingResults.html +339 -0
- data/docs/api/Brut/FrontEnd/HttpMethod.html +661 -0
- data/docs/api/Brut/FrontEnd/HttpStatus.html +496 -0
- data/docs/api/Brut/FrontEnd/InlineSvgLocator.html +284 -0
- data/docs/api/Brut/FrontEnd/Layout.html +318 -0
- data/docs/api/Brut/FrontEnd/Middleware.html +135 -0
- data/docs/api/Brut/FrontEnd/Middlewares/AnnotateBrutOwnedPaths.html +288 -0
- data/docs/api/Brut/FrontEnd/Middlewares/Favicon.html +292 -0
- data/docs/api/Brut/FrontEnd/Middlewares/OpenTelemetrySpan.html +324 -0
- data/docs/api/Brut/FrontEnd/Middlewares/ReloadApp.html +372 -0
- data/docs/api/Brut/FrontEnd/Middlewares.html +125 -0
- data/docs/api/Brut/FrontEnd/Page.html +773 -0
- data/docs/api/Brut/FrontEnd/Pages/MissingPage.html +797 -0
- data/docs/api/Brut/FrontEnd/Pages.html +125 -0
- data/docs/api/Brut/FrontEnd/RequestContext.html +1312 -0
- data/docs/api/Brut/FrontEnd/RouteHook.html +424 -0
- data/docs/api/Brut/FrontEnd/RouteHooks/AgeFlash.html +242 -0
- data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineScripts.html +249 -0
- data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts/ReportOnly.html +264 -0
- data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts.html +261 -0
- data/docs/api/Brut/FrontEnd/RouteHooks/LocaleDetection.html +284 -0
- data/docs/api/Brut/FrontEnd/RouteHooks/SetupRequestContext.html +252 -0
- data/docs/api/Brut/FrontEnd/RouteHooks.html +115 -0
- data/docs/api/Brut/FrontEnd/Routing/FormHandlerRoute.html +227 -0
- data/docs/api/Brut/FrontEnd/Routing/FormRoute.html +305 -0
- data/docs/api/Brut/FrontEnd/Routing/MissingForm.html +324 -0
- data/docs/api/Brut/FrontEnd/Routing/MissingHandler.html +319 -0
- data/docs/api/Brut/FrontEnd/Routing/MissingPage.html +315 -0
- data/docs/api/Brut/FrontEnd/Routing/MissingPath.html +315 -0
- data/docs/api/Brut/FrontEnd/Routing/PageRoute.html +327 -0
- data/docs/api/Brut/FrontEnd/Routing/Route.html +761 -0
- data/docs/api/Brut/FrontEnd/Routing.html +927 -0
- data/docs/api/Brut/FrontEnd/Session.html +1195 -0
- data/docs/api/Brut/FrontEnd.html +134 -0
- data/docs/api/Brut/I18n/BaseMethods.html +931 -0
- data/docs/api/Brut/I18n/ForBackEnd.html +302 -0
- data/docs/api/Brut/I18n/ForCLI.html +302 -0
- data/docs/api/Brut/I18n/ForHTML.html +296 -0
- data/docs/api/Brut/I18n/HTTPAcceptLanguage/AlwaysEnglish.html +316 -0
- data/docs/api/Brut/I18n/HTTPAcceptLanguage.html +930 -0
- data/docs/api/Brut/I18n.html +127 -0
- data/docs/api/Brut/Instrumentation/LoggerSpanExporter.html +435 -0
- data/docs/api/Brut/Instrumentation/OpenTelemetry/NormalizedAttributes.html +286 -0
- data/docs/api/Brut/Instrumentation/OpenTelemetry/Span.html +302 -0
- data/docs/api/Brut/Instrumentation/OpenTelemetry.html +864 -0
- data/docs/api/Brut/Instrumentation.html +126 -0
- data/docs/api/Brut/SinatraHelpers/ClassMethods.html +532 -0
- data/docs/api/Brut/SinatraHelpers.html +281 -0
- data/docs/api/Brut/SpecSupport/ClockSupport.html +383 -0
- data/docs/api/Brut/SpecSupport/ComponentSupport.html +502 -0
- data/docs/api/Brut/SpecSupport/E2ETestServer.html +503 -0
- data/docs/api/Brut/SpecSupport/E2eSupport.html +142 -0
- data/docs/api/Brut/SpecSupport/EnhancedNode.html +403 -0
- data/docs/api/Brut/SpecSupport/FlashSupport.html +278 -0
- data/docs/api/Brut/SpecSupport/GeneralSupport/ClassMethods.html +401 -0
- data/docs/api/Brut/SpecSupport/GeneralSupport.html +195 -0
- data/docs/api/Brut/SpecSupport/HandlerSupport.html +160 -0
- data/docs/api/Brut/SpecSupport/Matchers/HaveConstraintViolation.html +553 -0
- data/docs/api/Brut/SpecSupport/Matchers/HaveHTMLAttribute.html +439 -0
- data/docs/api/Brut/SpecSupport/Matchers.html +125 -0
- data/docs/api/Brut/SpecSupport/RSpecSetup/OptionalSidekiqSupport.html +335 -0
- data/docs/api/Brut/SpecSupport/RSpecSetup.html +602 -0
- data/docs/api/Brut/SpecSupport/SessionSupport.html +196 -0
- data/docs/api/Brut/SpecSupport.html +129 -0
- data/docs/api/Brut.html +225 -0
- data/docs/api/Clock.html +603 -0
- data/docs/api/RichString.html +968 -0
- data/docs/api/SemanticLogger/Appender/Async.html +219 -0
- data/docs/api/Sequel/Extensions/BrutInstrumentation.html +115 -0
- data/docs/api/Sequel/Extensions/BrutMigrations.html +533 -0
- data/docs/api/Sequel/Extensions.html +117 -0
- data/docs/api/Sequel/Plugins/CreatedAt/InstanceMethods.html +105 -0
- data/docs/api/Sequel/Plugins/CreatedAt.html +125 -0
- data/docs/api/Sequel/Plugins/ExternalId/ClassMethods.html +207 -0
- data/docs/api/Sequel/Plugins/ExternalId/InstanceMethods.html +186 -0
- data/docs/api/Sequel/Plugins/ExternalId.html +218 -0
- data/docs/api/Sequel/Plugins/FindBang/ClassMethods.html +202 -0
- data/docs/api/Sequel/Plugins/FindBang.html +125 -0
- data/docs/api/Sequel/Plugins.html +117 -0
- data/docs/api/Sequel.html +117 -0
- data/docs/api/_index.html +1553 -0
- data/docs/api/class_list.html +54 -0
- data/docs/api/css/common.css +1 -0
- data/docs/api/css/full_list.css +58 -0
- data/docs/api/css/style.css +503 -0
- data/docs/api/file.README.html +127 -0
- data/docs/api/file_list.html +59 -0
- data/docs/api/frames.html +22 -0
- data/docs/api/index.html +127 -0
- data/docs/api/js/app.js +344 -0
- data/docs/api/js/full_list.js +242 -0
- data/docs/api/js/jquery.js +4 -0
- data/docs/api/method_list.html +3998 -0
- data/docs/api/top-level-namespace.html +112 -0
- data/docs/assets/ai.md.tZrjP9im.js +1 -0
- data/docs/assets/ai.md.tZrjP9im.lean.js +1 -0
- data/docs/assets/app.D_yaTITQ.js +1 -0
- data/docs/assets/assets.md.D3wunzLx.js +19 -0
- data/docs/assets/assets.md.D3wunzLx.lean.js +1 -0
- data/docs/assets/brut-js.md.o2DAO2s2.js +12 -0
- data/docs/assets/brut-js.md.o2DAO2s2.lean.js +1 -0
- data/docs/assets/business-logic.md.BY4hGy0m.js +1 -0
- data/docs/assets/business-logic.md.BY4hGy0m.lean.js +1 -0
- data/docs/assets/chunks/@localSearchIndexroot.BsN5i0Fi.js +1 -0
- data/docs/assets/chunks/VPLocalSearchBox.B2-ZzyTY.js +8 -0
- data/docs/assets/chunks/framework.1L-BeKqY.js +18 -0
- data/docs/assets/chunks/theme.CfGFVRvE.js +2 -0
- data/docs/assets/cli.md.RmeA2b0i.js +127 -0
- data/docs/assets/cli.md.RmeA2b0i.lean.js +1 -0
- data/docs/assets/components.md.eCttGlN-.js +104 -0
- data/docs/assets/components.md.eCttGlN-.lean.js +1 -0
- data/docs/assets/configuration.md.BRriU0cL.js +78 -0
- data/docs/assets/configuration.md.BRriU0cL.lean.js +1 -0
- data/docs/assets/css.md.DJgj2clw.js +21 -0
- data/docs/assets/css.md.DJgj2clw.lean.js +1 -0
- data/docs/assets/custom-element-tests.md.BrYJQEl3.js +69 -0
- data/docs/assets/custom-element-tests.md.BrYJQEl3.lean.js +1 -0
- data/docs/assets/database-access.md.C7l-Vuvb.js +63 -0
- data/docs/assets/database-access.md.C7l-Vuvb.lean.js +1 -0
- data/docs/assets/database-schema.md.BUjR0VS1.js +63 -0
- data/docs/assets/database-schema.md.BUjR0VS1.lean.js +1 -0
- data/docs/assets/deployment.md.Dbka4OTr.js +1 -0
- data/docs/assets/deployment.md.Dbka4OTr.lean.js +1 -0
- data/docs/assets/dev-env-overview.Gj7NWM8-.png +0 -0
- data/docs/assets/dev-env-protocol.DysDAtnz.png +0 -0
- data/docs/assets/dev-environment.md.BNc8AYiK.js +11 -0
- data/docs/assets/dev-environment.md.BNc8AYiK.lean.js +1 -0
- data/docs/assets/doc-conventions.md.DCfRXXi-.js +1 -0
- data/docs/assets/doc-conventions.md.DCfRXXi-.lean.js +1 -0
- data/docs/assets/end-to-end-tests.md.yfQHC0b5.js +26 -0
- data/docs/assets/end-to-end-tests.md.yfQHC0b5.lean.js +1 -0
- data/docs/assets/flash-and-session.md.BXY8RvT0.js +93 -0
- data/docs/assets/flash-and-session.md.BXY8RvT0.lean.js +1 -0
- data/docs/assets/forms.md.CBTYQ_Cz.js +379 -0
- data/docs/assets/forms.md.CBTYQ_Cz.lean.js +1 -0
- data/docs/assets/getting-started.md.Bz2s1Vjb.js +2 -0
- data/docs/assets/getting-started.md.Bz2s1Vjb.lean.js +1 -0
- data/docs/assets/handlers.md.089DVD3v.js +69 -0
- data/docs/assets/handlers.md.089DVD3v.lean.js +1 -0
- data/docs/assets/hooks.md.C4-moMny.js +80 -0
- data/docs/assets/hooks.md.C4-moMny.lean.js +1 -0
- data/docs/assets/i18n.md.Do9i1qWl.js +23 -0
- data/docs/assets/i18n.md.Do9i1qWl.lean.js +1 -0
- data/docs/assets/index.md.B28EwVpq.js +1 -0
- data/docs/assets/index.md.B28EwVpq.lean.js +1 -0
- data/docs/assets/instrumentation.md.CL6ax7nT.js +35 -0
- data/docs/assets/instrumentation.md.CL6ax7nT.lean.js +1 -0
- data/docs/assets/javascript.md.GWbhRS51.js +31 -0
- data/docs/assets/javascript.md.GWbhRS51.lean.js +1 -0
- data/docs/assets/jobs.md.S-2amAYp.js +1 -0
- data/docs/assets/jobs.md.S-2amAYp.lean.js +1 -0
- data/docs/assets/keyword-injection.md.Dt2tKREs.js +25 -0
- data/docs/assets/keyword-injection.md.Dt2tKREs.lean.js +1 -0
- data/docs/assets/markdown-examples.md.CCFEQO44.js +33 -0
- data/docs/assets/markdown-examples.md.CCFEQO44.lean.js +1 -0
- data/docs/assets/middleware.md.Czz_UlJN.js +20 -0
- data/docs/assets/middleware.md.Czz_UlJN.lean.js +1 -0
- data/docs/assets/not-released.md.BBy28McC.js +1 -0
- data/docs/assets/not-released.md.BBy28McC.lean.js +1 -0
- data/docs/assets/overview.Da81cB9R.png +0 -0
- data/docs/assets/overview.md.CDalkuxV.js +133 -0
- data/docs/assets/overview.md.CDalkuxV.lean.js +1 -0
- data/docs/assets/pages.md.BE3kfOc5.js +122 -0
- data/docs/assets/pages.md.BE3kfOc5.lean.js +1 -0
- data/docs/assets/routes.md.BMM7peut.js +29 -0
- data/docs/assets/routes.md.BMM7peut.lean.js +1 -0
- data/docs/assets/security.md.C668yXCi.js +1 -0
- data/docs/assets/security.md.C668yXCi.lean.js +1 -0
- data/docs/assets/seed-data.md.BvFZlqIk.js +14 -0
- data/docs/assets/seed-data.md.BvFZlqIk.lean.js +1 -0
- data/docs/assets/spa.qejUdp-5.png +0 -0
- data/docs/assets/space-time-continuum.md.KPUIKysQ.js +1 -0
- data/docs/assets/space-time-continuum.md.KPUIKysQ.lean.js +1 -0
- data/docs/assets/style.D73IYGCX.css +1 -0
- data/docs/assets/tutorial.md.BnoGjrdK.js +1 -0
- data/docs/assets/tutorial.md.BnoGjrdK.lean.js +1 -0
- data/docs/assets/unit-tests.md.DUGrnLj5.js +13 -0
- data/docs/assets/unit-tests.md.DUGrnLj5.lean.js +1 -0
- data/docs/assets/workspace-protocol.C0gXsoDb.png +0 -0
- data/docs/assets.html +42 -0
- data/docs/brut-css/brut.css +1 -0
- data/docs/brut-css/brut.max.css +22372 -0
- data/docs/brut-css/classes/appearances.html +783 -0
- data/docs/brut-css/classes/background-colors.html +3529 -0
- data/docs/brut-css/classes/border-colors.html +3529 -0
- data/docs/brut-css/classes/borders.html +2293 -0
- data/docs/brut-css/classes/dimensions.html +2581 -0
- data/docs/brut-css/classes/flex.html +917 -0
- data/docs/brut-css/classes/foreground-colors.html +3261 -0
- data/docs/brut-css/classes/junk-drawer.html +431 -0
- data/docs/brut-css/classes/layout.html +668 -0
- data/docs/brut-css/classes/lists.html +331 -0
- data/docs/brut-css/classes/positioning.html +1751 -0
- data/docs/brut-css/classes/spacings.html +2633 -0
- data/docs/brut-css/classes/typography.html +2206 -0
- data/docs/brut-css/customization/advanced-configuration.html +204 -0
- data/docs/brut-css/customization/breakpoints.html +227 -0
- data/docs/brut-css/customization/design-system.html +197 -0
- data/docs/brut-css/customization/pseudo-classes.html +228 -0
- data/docs/brut-css/docs.css +98 -0
- data/docs/brut-css/getting-started/core-concepts.html +234 -0
- data/docs/brut-css/getting-started/installation.html +190 -0
- data/docs/brut-css/getting-started/overview.html +210 -0
- data/docs/brut-css/getting-started/simple-example.html +285 -0
- data/docs/brut-css/index.html +193 -0
- data/docs/brut-css/prism-twilight.min.css +1 -0
- data/docs/brut-css/properties/colors.html +1548 -0
- data/docs/brut-css/properties/spacings.html +614 -0
- data/docs/brut-css/properties/typography.html +777 -0
- data/docs/brut-js/api/AjaxSubmit.html +374 -0
- data/docs/brut-js/api/AjaxSubmit.js.html +435 -0
- data/docs/brut-js/api/Autosubmit.html +192 -0
- data/docs/brut-js/api/Autosubmit.js.html +114 -0
- data/docs/brut-js/api/BaseCustomElement.html +1091 -0
- data/docs/brut-js/api/BaseCustomElement.js.html +312 -0
- data/docs/brut-js/api/BrutCustomElements.html +172 -0
- data/docs/brut-js/api/BufferedLogger.html +173 -0
- data/docs/brut-js/api/ConfirmSubmit.html +278 -0
- data/docs/brut-js/api/ConfirmSubmit.js.html +167 -0
- data/docs/brut-js/api/ConfirmationDialog.html +425 -0
- data/docs/brut-js/api/ConfirmationDialog.js.html +194 -0
- data/docs/brut-js/api/ConstraintViolationMessage.html +448 -0
- data/docs/brut-js/api/ConstraintViolationMessage.js.html +176 -0
- data/docs/brut-js/api/ConstraintViolationMessages.html +590 -0
- data/docs/brut-js/api/ConstraintViolationMessages.js.html +149 -0
- data/docs/brut-js/api/CopyToClipboard.html +345 -0
- data/docs/brut-js/api/CopyToClipboard.js.html +147 -0
- data/docs/brut-js/api/Form.html +294 -0
- data/docs/brut-js/api/Form.js.html +202 -0
- data/docs/brut-js/api/I18nTranslation.html +409 -0
- data/docs/brut-js/api/I18nTranslation.js.html +112 -0
- data/docs/brut-js/api/LocaleDetection.html +312 -0
- data/docs/brut-js/api/LocaleDetection.js.html +168 -0
- data/docs/brut-js/api/Logger.html +702 -0
- data/docs/brut-js/api/Logger.js.html +141 -0
- data/docs/brut-js/api/Message.html +238 -0
- data/docs/brut-js/api/Message.js.html +107 -0
- data/docs/brut-js/api/PrefixedLogger.html +369 -0
- data/docs/brut-js/api/RichString.html +1049 -0
- data/docs/brut-js/api/RichString.js.html +164 -0
- data/docs/brut-js/api/Tabs.html +295 -0
- data/docs/brut-js/api/Tabs.js.html +219 -0
- data/docs/brut-js/api/Tracing.html +277 -0
- data/docs/brut-js/api/Tracing.js.html +298 -0
- data/docs/brut-js/api/external-CustomElementRegistry.html +140 -0
- data/docs/brut-js/api/external-Performance.html +138 -0
- data/docs/brut-js/api/external-Promise.html +138 -0
- data/docs/brut-js/api/external-ValidityState.html +138 -0
- data/docs/brut-js/api/external-Window.html +233 -0
- data/docs/brut-js/api/external-fetch.html +138 -0
- data/docs/brut-js/api/global.html +400 -0
- data/docs/brut-js/api/index.html +168 -0
- data/docs/brut-js/api/index.js.html +181 -0
- data/docs/brut-js/api/module-testing.html +383 -0
- data/docs/brut-js/api/scripts/linenumber.js +25 -0
- data/docs/brut-js/api/scripts/prettify/Apache-License-2.0.txt +202 -0
- data/docs/brut-js/api/scripts/prettify/lang-css.js +2 -0
- data/docs/brut-js/api/scripts/prettify/prettify.js +28 -0
- data/docs/brut-js/api/styles/jsdoc-default.css +327 -0
- data/docs/brut-js/api/styles/prettify-jsdoc.css +111 -0
- data/docs/brut-js/api/styles/prettify-tomorrow.css +132 -0
- data/docs/brut-js/api/testing.AssetMetadata.html +172 -0
- data/docs/brut-js/api/testing.AssetMetadataLoader.html +171 -0
- data/docs/brut-js/api/testing.CustomElementTest.html +679 -0
- data/docs/brut-js/api/testing.DOMCreator.html +171 -0
- data/docs/brut-js/api/testing_AssetMetadata.js.html +86 -0
- data/docs/brut-js/api/testing_AssetMetadataLoader.js.html +76 -0
- data/docs/brut-js/api/testing_CustomElementTest.js.html +286 -0
- data/docs/brut-js/api/testing_DOMCreator.js.html +96 -0
- data/docs/brut-js/api/testing_index.js.html +99 -0
- data/docs/brut-js.html +35 -0
- data/docs/business-logic.html +24 -0
- data/docs/cli.html +150 -0
- data/docs/components.html +127 -0
- data/docs/configuration.html +101 -0
- data/docs/css.html +44 -0
- data/docs/custom-element-tests.html +92 -0
- data/docs/database-access.html +86 -0
- data/docs/database-schema.html +86 -0
- data/docs/deployment.html +24 -0
- data/docs/dev-environment.html +34 -0
- data/docs/doc-conventions.html +24 -0
- data/docs/end-to-end-tests.html +49 -0
- data/docs/flash-and-session.html +116 -0
- data/docs/forms.html +402 -0
- data/docs/getting-started.html +25 -0
- data/docs/handlers.html +92 -0
- data/docs/hashmap.json +1 -0
- data/docs/hooks.html +103 -0
- data/docs/i18n.html +46 -0
- data/docs/images/logo-300.png +0 -0
- data/docs/images/logo.png +0 -0
- data/docs/index.html +24 -0
- data/docs/instrumentation.html +58 -0
- data/docs/javascript.html +54 -0
- data/docs/jobs.html +24 -0
- data/docs/keyword-injection.html +48 -0
- data/docs/markdown-examples.html +56 -0
- data/docs/middleware.html +43 -0
- data/docs/not-released.html +24 -0
- data/docs/overview.html +156 -0
- data/docs/pages.html +145 -0
- data/docs/routes.html +52 -0
- data/docs/security.html +24 -0
- data/docs/seed-data.html +37 -0
- data/docs/space-time-continuum.html +24 -0
- data/docs/tutorial.html +24 -0
- data/docs/unit-tests.html +36 -0
- data/docs/vp-icons.css +1 -0
- data/lib/brut/back_end/seed_data.rb +19 -2
- data/lib/brut/back_end/sidekiq/middlewares/server.rb +2 -1
- data/lib/brut/back_end/sidekiq/middlewares.rb +2 -1
- data/lib/brut/back_end/sidekiq.rb +2 -1
- data/lib/brut/back_end/validator.rb +5 -1
- data/lib/brut/back_end.rb +4 -2
- data/lib/brut/cli/app_runner.rb +1 -1
- data/lib/brut/cli/apps/test.rb +5 -0
- data/lib/brut/cli.rb +4 -3
- data/lib/brut/factory_bot.rb +0 -5
- data/lib/brut/framework/app.rb +70 -5
- data/lib/brut/framework/config.rb +5 -3
- data/lib/brut/framework/container.rb +3 -2
- data/lib/brut/framework/errors.rb +12 -4
- data/lib/brut/framework/mcp.rb +58 -1
- data/lib/brut/framework/project_environment.rb +6 -2
- data/lib/brut/framework.rb +1 -1
- data/lib/brut/front_end/component.rb +69 -71
- data/lib/brut/front_end/components/constraint_violations.rb +1 -4
- data/lib/brut/front_end/components/form_tag.rb +1 -1
- data/lib/brut/front_end/components/input.rb +3 -3
- data/lib/brut/front_end/components/inputs/csrf_token.rb +1 -1
- data/lib/brut/front_end/components/inputs/{text_field.rb → input_tag.rb} +7 -9
- data/lib/brut/front_end/components/inputs/radio_button.rb +1 -1
- data/lib/brut/front_end/components/inputs/select_tag_with_options.rb +187 -0
- data/lib/brut/front_end/components/inputs/{textarea.rb → textarea_tag.rb} +2 -2
- data/lib/brut/front_end/components/time_tag.rb +2 -1
- data/lib/brut/front_end/form.rb +4 -4
- data/lib/brut/front_end/forms/input.rb +2 -1
- data/lib/brut/front_end/forms/input_definition.rb +5 -2
- data/lib/brut/front_end/forms/radio_button_group_input.rb +2 -1
- data/lib/brut/front_end/forms/radio_button_group_input_definition.rb +2 -2
- data/lib/brut/front_end/forms/select_input.rb +2 -4
- data/lib/brut/front_end/forms/select_input_definition.rb +2 -2
- data/lib/brut/front_end/handler.rb +28 -26
- data/lib/brut/front_end/handlers/csp_reporting_handler.rb +5 -2
- data/lib/brut/front_end/handlers/instrumentation_handler.rb +8 -4
- data/lib/brut/front_end/handlers/locale_detection_handler.rb +9 -5
- data/lib/brut/front_end/handlers/missing_handler.rb +5 -2
- data/lib/brut/front_end/layout.rb +16 -0
- data/lib/brut/front_end/page.rb +52 -29
- data/lib/brut/front_end/request_context.rb +3 -2
- data/lib/brut/front_end/routing.rb +5 -1
- data/lib/brut/front_end.rb +4 -13
- data/lib/brut/i18n/base_methods.rb +167 -79
- data/lib/brut/i18n/for_back_end.rb +4 -0
- data/lib/brut/i18n/for_cli.rb +4 -0
- data/lib/brut/i18n/for_html.rb +32 -4
- data/lib/brut/i18n/http_accept_language.rb +47 -0
- data/lib/brut/instrumentation/open_telemetry.rb +36 -1
- data/lib/brut/instrumentation.rb +3 -5
- data/lib/brut/sinatra_helpers.rb +11 -3
- data/lib/brut/spec_support/component_support.rb +30 -16
- data/lib/brut/spec_support/e2e_support.rb +1 -1
- data/lib/brut/spec_support/e2e_test_server.rb +3 -0
- data/lib/brut/spec_support/general_support.rb +3 -0
- data/lib/brut/spec_support/handler_support.rb +6 -1
- data/lib/brut/spec_support/matcher.rb +1 -0
- data/lib/brut/spec_support/matchers/be_page_for.rb +1 -0
- data/lib/brut/spec_support/matchers/have_html_attribute.rb +1 -0
- data/lib/brut/spec_support/matchers/have_i18n_string.rb +2 -5
- data/lib/brut/spec_support/matchers/have_link_to.rb +1 -0
- data/lib/brut/spec_support/matchers/have_redirected_to.rb +1 -0
- data/lib/brut/spec_support/matchers/have_rendered.rb +1 -0
- data/lib/brut/spec_support/matchers/have_returned_rack_response.rb +44 -0
- data/lib/brut/spec_support.rb +1 -1
- data/lib/brut/version.rb +1 -1
- data/lib/brut.rb +5 -4
- data/lib/sequel/extensions/brut_migrations.rb +1 -1
- metadata +648 -13
- data/doc-src/architecture.md +0 -102
- data/doc-src/assets.md +0 -98
- data/doc-src/forms.md +0 -214
- data/doc-src/handlers.md +0 -83
- data/doc-src/javascript.md +0 -265
- data/doc-src/pages.md +0 -210
- data/doc-src/route-hooks.md +0 -59
- data/lib/brut/front_end/components/inputs/select.rb +0 -117
@@ -0,0 +1,668 @@
|
|
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>⌘</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">·</span>
|
27
|
+
<li><a href="/brut-js" class="gray-200 tdn hover-tdu">BrutJS</a></li>
|
28
|
+
<span aria-hidden="true">·</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="}-5">Layout Classes</h2>
|
159
|
+
|
160
|
+
<p>Classes that control the display and layout of elements.</p>
|
161
|
+
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
<h3 class="f-5 mt-4" id="class-group:display">Display</h3>
|
166
|
+
<p class="p">
|
167
|
+
<p>Various <code>display</code> values.</p>
|
168
|
+
|
169
|
+
</p>
|
170
|
+
|
171
|
+
<h4 class="f-2 b">See Also</h3>
|
172
|
+
<ul class="see-also">
|
173
|
+
|
174
|
+
<li><p><a href="/brut-css/classes/flex.html">Flex</a></p>
|
175
|
+
</li>
|
176
|
+
|
177
|
+
</ul>
|
178
|
+
|
179
|
+
|
180
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="db">
|
181
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.db</code></h4>
|
182
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.db</span> <span class="token punctuation">{</span>
|
183
|
+
<span class="token property">display</span><span class="token punctuation">:</span> block<span class="token punctuation">;</span>
|
184
|
+
<span class="token punctuation">}</span></pre>
|
185
|
+
</div>
|
186
|
+
<div class="ml-3">
|
187
|
+
<p class="p">
|
188
|
+
|
189
|
+
</p>
|
190
|
+
|
191
|
+
|
192
|
+
</div>
|
193
|
+
|
194
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="di">
|
195
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.di</code></h4>
|
196
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.di</span> <span class="token punctuation">{</span>
|
197
|
+
<span class="token property">display</span><span class="token punctuation">:</span> inline<span class="token punctuation">;</span>
|
198
|
+
<span class="token punctuation">}</span></pre>
|
199
|
+
</div>
|
200
|
+
<div class="ml-3">
|
201
|
+
<p class="p">
|
202
|
+
|
203
|
+
</p>
|
204
|
+
|
205
|
+
|
206
|
+
</div>
|
207
|
+
|
208
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="dib">
|
209
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.dib</code></h4>
|
210
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.dib</span> <span class="token punctuation">{</span>
|
211
|
+
<span class="token property">display</span><span class="token punctuation">:</span> inline-block<span class="token punctuation">;</span>
|
212
|
+
<span class="token punctuation">}</span></pre>
|
213
|
+
</div>
|
214
|
+
<div class="ml-3">
|
215
|
+
<p class="p">
|
216
|
+
|
217
|
+
</p>
|
218
|
+
|
219
|
+
|
220
|
+
</div>
|
221
|
+
|
222
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="dn">
|
223
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.dn</code></h4>
|
224
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.dn</span> <span class="token punctuation">{</span>
|
225
|
+
<span class="token property">display</span><span class="token punctuation">:</span> none<span class="token punctuation">;</span>
|
226
|
+
<span class="token punctuation">}</span></pre>
|
227
|
+
</div>
|
228
|
+
<div class="ml-3">
|
229
|
+
<p class="p">
|
230
|
+
|
231
|
+
</p>
|
232
|
+
|
233
|
+
|
234
|
+
</div>
|
235
|
+
|
236
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="dfr">
|
237
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.dfr</code></h4>
|
238
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.dfr</span> <span class="token punctuation">{</span>
|
239
|
+
<span class="token property">display</span><span class="token punctuation">:</span> flow-root<span class="token punctuation">;</span>
|
240
|
+
<span class="token punctuation">}</span></pre>
|
241
|
+
</div>
|
242
|
+
<div class="ml-3">
|
243
|
+
<p class="p">
|
244
|
+
|
245
|
+
</p>
|
246
|
+
|
247
|
+
|
248
|
+
</div>
|
249
|
+
|
250
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="dt">
|
251
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.dt</code></h4>
|
252
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.dt</span> <span class="token punctuation">{</span>
|
253
|
+
<span class="token property">display</span><span class="token punctuation">:</span> table<span class="token punctuation">;</span>
|
254
|
+
<span class="token punctuation">}</span></pre>
|
255
|
+
</div>
|
256
|
+
<div class="ml-3">
|
257
|
+
<p class="p">
|
258
|
+
|
259
|
+
</p>
|
260
|
+
|
261
|
+
|
262
|
+
</div>
|
263
|
+
|
264
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="dtc">
|
265
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.dtc</code></h4>
|
266
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.dtc</span> <span class="token punctuation">{</span>
|
267
|
+
<span class="token property">display</span><span class="token punctuation">:</span> table-cell<span class="token punctuation">;</span>
|
268
|
+
<span class="token punctuation">}</span></pre>
|
269
|
+
</div>
|
270
|
+
<div class="ml-3">
|
271
|
+
<p class="p">
|
272
|
+
|
273
|
+
</p>
|
274
|
+
|
275
|
+
|
276
|
+
</div>
|
277
|
+
|
278
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="dtrow">
|
279
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.dtrow</code></h4>
|
280
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.dtrow</span> <span class="token punctuation">{</span>
|
281
|
+
<span class="token property">display</span><span class="token punctuation">:</span> table-row<span class="token punctuation">;</span>
|
282
|
+
<span class="token punctuation">}</span></pre>
|
283
|
+
</div>
|
284
|
+
<div class="ml-3">
|
285
|
+
<p class="p">
|
286
|
+
|
287
|
+
</p>
|
288
|
+
|
289
|
+
|
290
|
+
</div>
|
291
|
+
|
292
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="dtrow-group">
|
293
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.dtrow-group</code></h4>
|
294
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.dtrow-group</span> <span class="token punctuation">{</span>
|
295
|
+
<span class="token property">display</span><span class="token punctuation">:</span> table-row-group<span class="token punctuation">;</span>
|
296
|
+
<span class="token punctuation">}</span></pre>
|
297
|
+
</div>
|
298
|
+
<div class="ml-3">
|
299
|
+
<p class="p">
|
300
|
+
|
301
|
+
</p>
|
302
|
+
|
303
|
+
|
304
|
+
</div>
|
305
|
+
|
306
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="dtcolumn">
|
307
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.dtcolumn</code></h4>
|
308
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.dtcolumn</span> <span class="token punctuation">{</span>
|
309
|
+
<span class="token property">display</span><span class="token punctuation">:</span> table-column<span class="token punctuation">;</span>
|
310
|
+
<span class="token punctuation">}</span></pre>
|
311
|
+
</div>
|
312
|
+
<div class="ml-3">
|
313
|
+
<p class="p">
|
314
|
+
|
315
|
+
</p>
|
316
|
+
|
317
|
+
|
318
|
+
</div>
|
319
|
+
|
320
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="dtcolumn-group">
|
321
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.dtcolumn-group</code></h4>
|
322
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.dtcolumn-group</span> <span class="token punctuation">{</span>
|
323
|
+
<span class="token property">display</span><span class="token punctuation">:</span> table-column-group<span class="token punctuation">;</span>
|
324
|
+
<span class="token punctuation">}</span></pre>
|
325
|
+
</div>
|
326
|
+
<div class="ml-3">
|
327
|
+
<p class="p">
|
328
|
+
|
329
|
+
</p>
|
330
|
+
|
331
|
+
|
332
|
+
</div>
|
333
|
+
|
334
|
+
|
335
|
+
<h3 class="f-5 mt-4" id="class-group:box-sizing">Box Sizing</h3>
|
336
|
+
<p class="p">
|
337
|
+
<p>Box-sizing classes.</p>
|
338
|
+
|
339
|
+
</p>
|
340
|
+
|
341
|
+
|
342
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="content-box">
|
343
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.content-box</code></h4>
|
344
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.content-box</span> <span class="token punctuation">{</span>
|
345
|
+
<span class="token property">box-sizing</span><span class="token punctuation">:</span> content-box<span class="token punctuation">;</span>
|
346
|
+
<span class="token punctuation">}</span></pre>
|
347
|
+
</div>
|
348
|
+
<div class="ml-3">
|
349
|
+
<p class="p">
|
350
|
+
|
351
|
+
</p>
|
352
|
+
|
353
|
+
|
354
|
+
</div>
|
355
|
+
|
356
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="border-box">
|
357
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.border-box</code></h4>
|
358
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.border-box</span> <span class="token punctuation">{</span>
|
359
|
+
<span class="token property">box-sizing</span><span class="token punctuation">:</span> border-box<span class="token punctuation">;</span>
|
360
|
+
<span class="token punctuation">}</span></pre>
|
361
|
+
</div>
|
362
|
+
<div class="ml-3">
|
363
|
+
<p class="p">
|
364
|
+
|
365
|
+
</p>
|
366
|
+
|
367
|
+
|
368
|
+
</div>
|
369
|
+
|
370
|
+
|
371
|
+
<h3 class="f-5 mt-4" id="class-group:overflow">Overflow</h3>
|
372
|
+
<p class="p">
|
373
|
+
<p>General overflow classes.</p>
|
374
|
+
|
375
|
+
</p>
|
376
|
+
|
377
|
+
<h4 class="f-2 b">See Also</h3>
|
378
|
+
<ul class="see-also">
|
379
|
+
|
380
|
+
<li><p><a href="/brut-css/classes/layout.html#class-group:overflow-x">Horizontal Overflow</a></p>
|
381
|
+
</li>
|
382
|
+
|
383
|
+
<li><p><a href="/brut-css/classes/layout.html#class-group:overflow-y">Vertical Overflow</a></p>
|
384
|
+
</li>
|
385
|
+
|
386
|
+
</ul>
|
387
|
+
|
388
|
+
|
389
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="overflow-visible">
|
390
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.overflow-visible</code></h4>
|
391
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.overflow-visible</span> <span class="token punctuation">{</span>
|
392
|
+
<span class="token property">overflow</span><span class="token punctuation">:</span> visible<span class="token punctuation">;</span>
|
393
|
+
<span class="token punctuation">}</span></pre>
|
394
|
+
</div>
|
395
|
+
<div class="ml-3">
|
396
|
+
<p class="p">
|
397
|
+
|
398
|
+
</p>
|
399
|
+
|
400
|
+
|
401
|
+
</div>
|
402
|
+
|
403
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="overflow-scroll">
|
404
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.overflow-scroll</code></h4>
|
405
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.overflow-scroll</span> <span class="token punctuation">{</span>
|
406
|
+
<span class="token property">overflow</span><span class="token punctuation">:</span> scroll<span class="token punctuation">;</span>
|
407
|
+
<span class="token punctuation">}</span></pre>
|
408
|
+
</div>
|
409
|
+
<div class="ml-3">
|
410
|
+
<p class="p">
|
411
|
+
|
412
|
+
</p>
|
413
|
+
|
414
|
+
|
415
|
+
</div>
|
416
|
+
|
417
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="overflow-hidden">
|
418
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.overflow-hidden</code></h4>
|
419
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.overflow-hidden</span> <span class="token punctuation">{</span>
|
420
|
+
<span class="token property">overflow</span><span class="token punctuation">:</span> hidden<span class="token punctuation">;</span>
|
421
|
+
<span class="token punctuation">}</span></pre>
|
422
|
+
</div>
|
423
|
+
<div class="ml-3">
|
424
|
+
<p class="p">
|
425
|
+
|
426
|
+
</p>
|
427
|
+
|
428
|
+
|
429
|
+
</div>
|
430
|
+
|
431
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="overflow-clip">
|
432
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.overflow-clip</code></h4>
|
433
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.overflow-clip</span> <span class="token punctuation">{</span>
|
434
|
+
<span class="token property">overflow</span><span class="token punctuation">:</span> clip<span class="token punctuation">;</span>
|
435
|
+
<span class="token punctuation">}</span></pre>
|
436
|
+
</div>
|
437
|
+
<div class="ml-3">
|
438
|
+
<p class="p">
|
439
|
+
|
440
|
+
</p>
|
441
|
+
|
442
|
+
|
443
|
+
</div>
|
444
|
+
|
445
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="overflow-auto">
|
446
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.overflow-auto</code></h4>
|
447
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.overflow-auto</span> <span class="token punctuation">{</span>
|
448
|
+
<span class="token property">overflow</span><span class="token punctuation">:</span> auto<span class="token punctuation">;</span>
|
449
|
+
<span class="token punctuation">}</span></pre>
|
450
|
+
</div>
|
451
|
+
<div class="ml-3">
|
452
|
+
<p class="p">
|
453
|
+
|
454
|
+
</p>
|
455
|
+
|
456
|
+
|
457
|
+
</div>
|
458
|
+
|
459
|
+
|
460
|
+
<h3 class="f-5 mt-4" id="class-group:overflow-x">Horizontal Overflow</h3>
|
461
|
+
<p class="p">
|
462
|
+
<p>General horizontal/x-axis overflow classes.</p>
|
463
|
+
|
464
|
+
</p>
|
465
|
+
|
466
|
+
<h4 class="f-2 b">See Also</h3>
|
467
|
+
<ul class="see-also">
|
468
|
+
|
469
|
+
<li><p><a href="/brut-css/classes/layout.html#class-group:overflow">Overflow</a></p>
|
470
|
+
</li>
|
471
|
+
|
472
|
+
<li><p><a href="/brut-css/classes/layout.html#class-group:overflow-y">Vertical Overflow</a></p>
|
473
|
+
</li>
|
474
|
+
|
475
|
+
</ul>
|
476
|
+
|
477
|
+
|
478
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="overflow-x-visible">
|
479
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.overflow-x-visible</code></h4>
|
480
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.overflow-x-visible</span> <span class="token punctuation">{</span>
|
481
|
+
<span class="token property">overflow-x</span><span class="token punctuation">:</span> visible<span class="token punctuation">;</span>
|
482
|
+
<span class="token punctuation">}</span></pre>
|
483
|
+
</div>
|
484
|
+
<div class="ml-3">
|
485
|
+
<p class="p">
|
486
|
+
|
487
|
+
</p>
|
488
|
+
|
489
|
+
|
490
|
+
</div>
|
491
|
+
|
492
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="overflow-x-scroll">
|
493
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.overflow-x-scroll</code></h4>
|
494
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.overflow-x-scroll</span> <span class="token punctuation">{</span>
|
495
|
+
<span class="token property">overflow-x</span><span class="token punctuation">:</span> scroll<span class="token punctuation">;</span>
|
496
|
+
<span class="token punctuation">}</span></pre>
|
497
|
+
</div>
|
498
|
+
<div class="ml-3">
|
499
|
+
<p class="p">
|
500
|
+
|
501
|
+
</p>
|
502
|
+
|
503
|
+
|
504
|
+
</div>
|
505
|
+
|
506
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="overflow-x-hidden">
|
507
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.overflow-x-hidden</code></h4>
|
508
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.overflow-x-hidden</span> <span class="token punctuation">{</span>
|
509
|
+
<span class="token property">overflow-x</span><span class="token punctuation">:</span> hidden<span class="token punctuation">;</span>
|
510
|
+
<span class="token punctuation">}</span></pre>
|
511
|
+
</div>
|
512
|
+
<div class="ml-3">
|
513
|
+
<p class="p">
|
514
|
+
|
515
|
+
</p>
|
516
|
+
|
517
|
+
|
518
|
+
</div>
|
519
|
+
|
520
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="overflow-x-clip">
|
521
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.overflow-x-clip</code></h4>
|
522
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.overflow-x-clip</span> <span class="token punctuation">{</span>
|
523
|
+
<span class="token property">overflow-x</span><span class="token punctuation">:</span> clip<span class="token punctuation">;</span>
|
524
|
+
<span class="token punctuation">}</span></pre>
|
525
|
+
</div>
|
526
|
+
<div class="ml-3">
|
527
|
+
<p class="p">
|
528
|
+
|
529
|
+
</p>
|
530
|
+
|
531
|
+
|
532
|
+
</div>
|
533
|
+
|
534
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="overflow-x-auto">
|
535
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.overflow-x-auto</code></h4>
|
536
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.overflow-x-auto</span> <span class="token punctuation">{</span>
|
537
|
+
<span class="token property">overflow-x</span><span class="token punctuation">:</span> auto<span class="token punctuation">;</span>
|
538
|
+
<span class="token punctuation">}</span></pre>
|
539
|
+
</div>
|
540
|
+
<div class="ml-3">
|
541
|
+
<p class="p">
|
542
|
+
|
543
|
+
</p>
|
544
|
+
|
545
|
+
|
546
|
+
</div>
|
547
|
+
|
548
|
+
|
549
|
+
<h3 class="f-5 mt-4" id="class-group:overflow-y">Vertical Overflow</h3>
|
550
|
+
<p class="p">
|
551
|
+
<p>General vertical/y-axis overflow classes.</p>
|
552
|
+
|
553
|
+
</p>
|
554
|
+
|
555
|
+
<h4 class="f-2 b">See Also</h3>
|
556
|
+
<ul class="see-also">
|
557
|
+
|
558
|
+
<li><p><a href="/brut-css/classes/layout.html#class-group:overflow">Overflow</a></p>
|
559
|
+
</li>
|
560
|
+
|
561
|
+
<li><p><a href="/brut-css/classes/layout.html#class-group:overflow-x">Horizontal Overflow</a></p>
|
562
|
+
</li>
|
563
|
+
|
564
|
+
</ul>
|
565
|
+
|
566
|
+
|
567
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="overflow-y-visible">
|
568
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.overflow-y-visible</code></h4>
|
569
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.overflow-y-visible</span> <span class="token punctuation">{</span>
|
570
|
+
<span class="token property">overflow-y</span><span class="token punctuation">:</span> visible<span class="token punctuation">;</span>
|
571
|
+
<span class="token punctuation">}</span></pre>
|
572
|
+
</div>
|
573
|
+
<div class="ml-3">
|
574
|
+
<p class="p">
|
575
|
+
|
576
|
+
</p>
|
577
|
+
|
578
|
+
|
579
|
+
</div>
|
580
|
+
|
581
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="overflow-y-scroll">
|
582
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.overflow-y-scroll</code></h4>
|
583
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.overflow-y-scroll</span> <span class="token punctuation">{</span>
|
584
|
+
<span class="token property">overflow-y</span><span class="token punctuation">:</span> scroll<span class="token punctuation">;</span>
|
585
|
+
<span class="token punctuation">}</span></pre>
|
586
|
+
</div>
|
587
|
+
<div class="ml-3">
|
588
|
+
<p class="p">
|
589
|
+
|
590
|
+
</p>
|
591
|
+
|
592
|
+
|
593
|
+
</div>
|
594
|
+
|
595
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="overflow-y-hidden">
|
596
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.overflow-y-hidden</code></h4>
|
597
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.overflow-y-hidden</span> <span class="token punctuation">{</span>
|
598
|
+
<span class="token property">overflow-y</span><span class="token punctuation">:</span> hidden<span class="token punctuation">;</span>
|
599
|
+
<span class="token punctuation">}</span></pre>
|
600
|
+
</div>
|
601
|
+
<div class="ml-3">
|
602
|
+
<p class="p">
|
603
|
+
|
604
|
+
</p>
|
605
|
+
|
606
|
+
|
607
|
+
</div>
|
608
|
+
|
609
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="overflow-y-clip">
|
610
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.overflow-y-clip</code></h4>
|
611
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.overflow-y-clip</span> <span class="token punctuation">{</span>
|
612
|
+
<span class="token property">overflow-y</span><span class="token punctuation">:</span> clip<span class="token punctuation">;</span>
|
613
|
+
<span class="token punctuation">}</span></pre>
|
614
|
+
</div>
|
615
|
+
<div class="ml-3">
|
616
|
+
<p class="p">
|
617
|
+
|
618
|
+
</p>
|
619
|
+
|
620
|
+
|
621
|
+
</div>
|
622
|
+
|
623
|
+
<div class="mt-4 flex gap-3 items-center justify-between" id="overflow-y-auto">
|
624
|
+
<h4 class="f-4 fw-3 ws-nowrap"><code>.overflow-y-auto</code></h4>
|
625
|
+
<pre class="f-3 highlighted-code"><span class="token selector">.overflow-y-auto</span> <span class="token punctuation">{</span>
|
626
|
+
<span class="token property">overflow-y</span><span class="token punctuation">:</span> auto<span class="token punctuation">;</span>
|
627
|
+
<span class="token punctuation">}</span></pre>
|
628
|
+
</div>
|
629
|
+
<div class="ml-3">
|
630
|
+
<p class="p">
|
631
|
+
|
632
|
+
</p>
|
633
|
+
|
634
|
+
|
635
|
+
</div>
|
636
|
+
|
637
|
+
|
638
|
+
</article>
|
639
|
+
<div class="z-5 ma-0 overflow-y-auto pa-2 w-20 h-100 pos-absolute top-0 right-2">
|
640
|
+
<div class="pa-3 ba bc-gray-700 bg-gray-900 br-3 shadow-1 ridiculous-liquid-glass-is-all-the-rage">
|
641
|
+
<h3>On this Page</h3>
|
642
|
+
<ul class="lst-none ma-0 pa-0">
|
643
|
+
|
644
|
+
<li class="lh-copy"><a href="#class-group:display">Display</a></li>
|
645
|
+
|
646
|
+
<li class="lh-copy"><a href="#class-group:box-sizing">Box Sizing</a></li>
|
647
|
+
|
648
|
+
<li class="lh-copy"><a href="#class-group:overflow">Overflow</a></li>
|
649
|
+
|
650
|
+
<li class="lh-copy"><a href="#class-group:overflow-x">Horizontal Overflow</a></li>
|
651
|
+
|
652
|
+
<li class="lh-copy"><a href="#class-group:overflow-y">Vertical Overflow</a></li>
|
653
|
+
|
654
|
+
</ul>
|
655
|
+
</div>
|
656
|
+
</div>
|
657
|
+
</div>
|
658
|
+
<footer class="bg-black white mt-auto">
|
659
|
+
<p class="tc">
|
660
|
+
Copyright © 2025 David Bryant Copeland.
|
661
|
+
</p>
|
662
|
+
</footer>
|
663
|
+
</section>
|
664
|
+
</main>
|
665
|
+
</body>
|
666
|
+
|
667
|
+
</html>
|
668
|
+
|