├── .gitignore ├── LICENSE ├── README.md ├── docs ├── .gitignore ├── _config.yml ├── _includes │ ├── _config.yml │ ├── components │ │ ├── aux_nav.html │ │ ├── breadcrumbs.html │ │ ├── children_nav.html │ │ ├── footer.html │ │ ├── header.html │ │ ├── mermaid.html │ │ ├── search_footer.html │ │ ├── search_header.html │ │ └── sidebar.html │ ├── css │ │ ├── activation.scss.liquid │ │ ├── callouts.scss.liquid │ │ ├── custom.scss.liquid │ │ └── just-the-docs.scss.liquid │ ├── favicon.html │ ├── fix_linenos.html │ ├── footer_custom.html │ ├── head.html │ ├── head_custom.html │ ├── head_nav.html │ ├── header_custom.html │ ├── icons │ │ ├── code_copy.html │ │ ├── document.html │ │ ├── expand.html │ │ ├── external_link.html │ │ ├── icons.html │ │ ├── link.html │ │ ├── menu.html │ │ └── search.html │ ├── js │ │ └── custom.js │ ├── lunr │ │ ├── custom-data.json │ │ └── custom-index.js │ ├── mermaid_config.js │ ├── nav.html │ ├── nav_footer_custom.html │ ├── search_placeholder_custom.html │ ├── sorted_pages.html │ ├── title.html │ ├── toc.html │ ├── toc_heading_custom.html │ └── vendor │ │ └── anchor_headings.html ├── _layouts │ ├── about.html │ ├── default.html │ ├── home.html │ ├── minimal.html │ ├── page.html │ ├── post.html │ ├── table_wrappers.html │ └── vendor │ │ └── compress.html ├── _sass │ ├── base.scss │ ├── buttons.scss │ ├── code.scss │ ├── color_schemes │ │ ├── dark.scss │ │ ├── legacy_light.scss │ │ └── light.scss │ ├── content.scss │ ├── custom │ │ ├── custom.scss │ │ └── setup.scss │ ├── labels.scss │ ├── layout.scss │ ├── modules.scss │ ├── navigation.scss │ ├── print.scss │ ├── search.scss │ ├── skiptomain.scss │ ├── support │ │ ├── _variables.scss │ │ ├── mixins │ │ │ ├── _buttons.scss │ │ │ ├── _layout.scss │ │ │ ├── _typography.scss │ │ │ └── mixins.scss │ │ └── support.scss │ ├── tables.scss │ ├── typography.scss │ ├── utilities │ │ ├── _colors.scss │ │ ├── _layout.scss │ │ ├── _lists.scss │ │ ├── _spacing.scss │ │ ├── _typography.scss │ │ └── utilities.scss │ └── vendor │ │ ├── OneDarkJekyll │ │ ├── LICENSE │ │ └── syntax.scss │ │ ├── OneLightJekyll │ │ ├── LICENSE │ │ └── syntax.scss │ │ └── normalize.scss │ │ ├── README.md │ │ └── normalize.scss ├── commands │ ├── DataTypes.md │ ├── index.md │ └── yaml_structure.md ├── css │ └── custom.css ├── dashboards │ ├── DataTypes.md │ ├── index.md │ └── yaml_structure.md ├── images │ ├── dashboard-pods.png │ ├── dashboard-pvcs.png │ └── dashboard-strimzi-kafka-test.png ├── index.md └── installation.md ├── examples ├── commands │ ├── pods-wide.yml │ ├── pods.yml │ └── pvcs.yml ├── dashboards │ ├── pods.yml │ ├── pvcs.yml │ └── strimzi-kafka-test.yml └── dataSources │ └── prometheus_http.yml ├── kptop_tool.py ├── kubePtop ├── __init__.py ├── ascii_graph.py ├── cli_args.py ├── colors.py ├── command_run.py ├── command_yaml_loader.py ├── dashboard_monitor.py ├── dashboard_yaml_loader.py ├── global_attrs.py ├── helper.py ├── logging.py ├── old │ ├── cli.old.py │ ├── cli.py │ ├── node_metrics.py │ ├── node_monitor.py │ ├── pod_metrics.py │ ├── pod_monitor.py │ └── prometheus_http.yml ├── read_env.py ├── requirements.txt ├── session.py └── tests.to.delete │ ├── command.yaml │ ├── command2.yaml │ ├── dashboard.yaml │ ├── data_types.py │ ├── test.py │ ├── test2.py │ └── test3.py └── setup.py /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ 2 | kubePtop/__pycache__ 3 | build 4 | dist 5 | kptop.egg-info 6 | .DS_Store 7 | -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | _site -------------------------------------------------------------------------------- /docs/_config.yml: -------------------------------------------------------------------------------- 1 | # https://github.com/just-the-docs/just-the-docs/blob/main/_config.yml 2 | 3 | # theme: jekyll-theme-cayman 4 | remote_theme: "just-the-docs/just-the-docs@v0.7.0" # https://github.com/just-the-docs/just-the-docs/releases 5 | permalink: pretty 6 | 7 | exclude: 8 | # from https://github.com/jekyll/jekyll/blob/master/lib/site_template/_config.yml: 9 | - .sass-cache/ 10 | - .jekyll-cache/ 11 | - gemfiles/ 12 | - Gemfile 13 | - Gemfile.lock 14 | - node_modules/ 15 | - vendor/bundle/ 16 | - vendor/cache/ 17 | - vendor/gems/ 18 | - vendor/ruby/ 19 | # specific to the theme website: 20 | - bin/ 21 | - lib/ 22 | - "*.gemspec" 23 | - "*.gem" 24 | - LICENSE.txt 25 | - package.json 26 | - package-lock.json 27 | - Rakefile 28 | - README.md 29 | - CODE_OF_CONDUCT.md 30 | - docker-compose.yml 31 | - Dockerfile 32 | # theme test code 33 | - fixtures/ 34 | 35 | search_enabled: true 36 | search: 37 | # Split pages into sections that can be searched individually 38 | # Supports 1 - 6, default: 2 39 | heading_level: 2 40 | # Maximum amount of previews per search result 41 | # Default: 3 42 | previews: 2 43 | # Maximum amount of words to display before a matched word in the preview 44 | # Default: 5 45 | preview_words_before: 3 46 | # Maximum amount of words to display after a matched word in the preview 47 | # Default: 10 48 | preview_words_after: 3 49 | # Set the search token separator 50 | # Default: /[\s\-/]+/ 51 | # ample: enable support for hyphenated search words 52 | tokenizer_separator: /[\s/]+/ 53 | # Display the relative url in search results 54 | # Supports true (default) or false 55 | rel_url: true 56 | # Enable or disable the search button that appears in the bottom right corner of every page 57 | # Supports true or false (default) 58 | button: false 59 | 60 | # For copy button on code 61 | enable_copy_code_button: true 62 | 63 | # By default, consuming the theme as a gem leaves mermaid disabled; it is opt-in 64 | mermaid: 65 | # Version of mermaid library 66 | # Pick an available version from https://cdn.jsdelivr.net/npm/mermaid/ 67 | version: "9.1.3" 68 | # Put any additional configuration, such as setting the theme, in _includes/mermaid_config.js 69 | # See also docs/ui-components/code 70 | # To load mermaid from a local library, also use the `path` key to specify the location of the library; e.g. 71 | # for (v10+): 72 | # path: "/assets/js/mermaid.esm.min.mjs" 73 | # for (MIT license.' 105 | 106 | # Footer last edited timestamp 107 | last_edit_timestamp: true # show or hide edit time - page must have `last_modified_date` defined in the frontmatter 108 | last_edit_time_format: "%b %e %Y at %I:%M %p" # uses ruby's time format: https://ruby-doc.org/stdlib-2.7.0/libdoc/time/rdoc/Time.html 109 | 110 | # Footer "Edit this page on GitHub" link text 111 | gh_edit_link: true # show or hide edit this page link 112 | gh_edit_link_text: "Edit this page on GitHub" 113 | gh_edit_repository: "https://github.com/just-the-docs/just-the-docs" # the github URL for your repo 114 | gh_edit_branch: "main" # the branch that your docs is served from 115 | # gh_edit_source: docs # the source that your files originate from 116 | gh_edit_view_mode: "tree" # "tree" or "edit" if you want the user to jump into the editor immediately 117 | 118 | # Color scheme currently only supports "dark", "light"/nil (default), or a custom scheme that you define 119 | color_scheme: nil 120 | 121 | callouts_level: quiet # or loud 122 | callouts: 123 | highlight: 124 | color: yellow 125 | important: 126 | title: Important 127 | color: blue 128 | new: 129 | title: New 130 | color: green 131 | note: 132 | title: Note 133 | color: purple 134 | warning: 135 | title: Warning 136 | color: red 137 | 138 | plugins: 139 | - jekyll-seo-tag 140 | - jekyll-github-metadata 141 | - jekyll-include-cache 142 | 143 | kramdown: 144 | syntax_highlighter_opts: 145 | block: 146 | line_numbers: false 147 | 148 | compress_html: 149 | clippings: all 150 | comments: all 151 | endings: all 152 | startings: [] 153 | blanklines: false 154 | profile: false 155 | # ignore: 156 | # envs: all 157 | -------------------------------------------------------------------------------- /docs/_includes/_config.yml: -------------------------------------------------------------------------------- 1 | pagination: 2 | enabled: true 3 | per_page: 9 4 | permalink: '/page/:num/' 5 | title: ':title - page :num' 6 | sort_field: 'date' 7 | sort_reverse: true -------------------------------------------------------------------------------- /docs/_includes/components/aux_nav.html: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /docs/_includes/components/breadcrumbs.html: -------------------------------------------------------------------------------- 1 | {%- comment -%} 2 | Include as: {%- include components/breadcrumbs.html -%} 3 | Depends on: page, site. 4 | Results in: HTML for the breadcrumbs component. 5 | Overwrites: 6 | pages_list, parent_page, grandparent_page. 7 | {%- endcomment -%} 8 | 9 | {%- if page.url != "/" and page.parent -%} 10 | 11 | {%- assign pages_list = site[page.collection] 12 | | default: site.html_pages 13 | | where_exp: "item", "item.title != nil" 14 | | where_exp: "item", "item.has_children != nil" -%} 15 | 16 | {%- if page.grand_parent -%} 17 | {%- assign parent_page = pages_list 18 | | where: "title", page.parent 19 | | where: "parent", page.grand_parent 20 | | first -%} 21 | {%- assign grandparent_page = pages_list 22 | | where: "title", page.grand_parent 23 | | first -%} 24 | {%- else -%} 25 | {%- assign parent_page = pages_list 26 | | where: "title", page.parent 27 | | where_exp: "item", "item.parent == nil" 28 | | first -%} 29 | {%- endif -%} 30 | 31 | 42 | 43 | {%- endif -%} 44 | -------------------------------------------------------------------------------- /docs/_includes/components/children_nav.html: -------------------------------------------------------------------------------- 1 | {%- comment -%} 2 | Include as: {%- include components/children_nav.html -%} 3 | Depends on: page, site. 4 | Results in: HTML for the children-navigation component. 5 | Includes: 6 | sorted_pages.html 7 | toc_heading_custom.html 8 | Overwrites: 9 | child_pages. 10 | {%- endcomment -%} 11 | 12 | {%- if page.has_children == true and page.has_toc != false -%} 13 | {%- assign child_pages = site[page.collection] 14 | | default: site.html_pages 15 | | where: "parent", page.title 16 | | where: "grand_parent", page.parent -%} 17 | 18 | {%- include sorted_pages.html pages = child_pages -%} 19 | 20 | {%- if page.child_nav_order == 'desc' or page.child_nav_order == 'reversed' -%} 21 | {%- assign sorted_pages = sorted_pages | reverse -%} 22 | {%- endif -%} 23 | {%- endif -%} 24 | 25 |
26 | {% include toc_heading_custom.html %} 27 | 34 | -------------------------------------------------------------------------------- /docs/_includes/components/footer.html: -------------------------------------------------------------------------------- 1 | {% capture footer_custom %} 2 | {%- include footer_custom.html -%} 3 | {% endcapture %} 4 | {% if footer_custom != "" or site.last_edit_timestamp or site.gh_edit_link %} 5 |
6 | 34 | {% endif %} 35 | -------------------------------------------------------------------------------- /docs/_includes/components/header.html: -------------------------------------------------------------------------------- 1 |
2 | {% if site.search_enabled != false %} 3 | {% include components/search_header.html %} 4 | {% else %} 5 |
6 | {% endif %} 7 | {% include header_custom.html %} 8 | {% if site.aux_links %} 9 | {% include components/aux_nav.html %} 10 | {% endif %} 11 |
12 | -------------------------------------------------------------------------------- /docs/_includes/components/mermaid.html: -------------------------------------------------------------------------------- 1 | {% comment %} 2 | The complexity of this file comes from a breaking change in Mermaid v10; mermaid.init has been deprecated (and supposedly, didn't work earlier?). 3 | 4 | So, we check whether the user's Mermaid version is >= 10; if not, we fall back to the previous init syntax. 5 | 6 | If a user is using a custom mermaid file and doesn't specify a version, we default to the < v10 behaviour. Users who use version v10 or above should specify this in the version key. 7 | {% endcomment %} 8 | 9 | {% if site.mermaid.version %} 10 | {% assign mermaid_major_version = site.mermaid.version | split: "." | first | plus: 0 %} 11 | {% else %} 12 | {% assign mermaid_major_version = 9 %} 13 | {% endif %} 14 | 15 | {% if mermaid_major_version > 9 %} 16 | 17 | 30 | 31 | {% else %} 32 | 33 | {% if site.mermaid.path %} 34 | 35 | {% else %} 36 | 37 | {% endif %} 38 | 39 | 44 | 45 | {% endif %} 46 | -------------------------------------------------------------------------------- /docs/_includes/components/search_footer.html: -------------------------------------------------------------------------------- 1 | {% if site.search.button %} 2 | 5 | {% endif %} 6 | 7 |
8 | -------------------------------------------------------------------------------- /docs/_includes/components/search_header.html: -------------------------------------------------------------------------------- 1 | {% capture search_placeholder %}{% include search_placeholder_custom.html %}{% endcapture %} 2 | 3 | 10 | -------------------------------------------------------------------------------- /docs/_includes/components/sidebar.html: -------------------------------------------------------------------------------- 1 | {%- comment -%} 2 | Include as: {%- include components/sidebar.html -%} 3 | Depends on: page(?), site. 4 | Results in: HTML for the side bar. 5 | Includes: 6 | title.html, nav.html, nav_footer_custom.html 7 | Overwrites: 8 | pages_top_size, collections_size, collection_entry, 9 | collection_key, collection_value, collection, nav_footer_custom. 10 | Should not be cached, because nav_footer_custom.html might depend on page. 11 | {%- endcomment -%} 12 | 13 | 84 | -------------------------------------------------------------------------------- /docs/_includes/css/activation.scss.liquid: -------------------------------------------------------------------------------- 1 | {%- comment -%} 2 | Include as: {%- include css/activation.scss.liquid -%} 3 | Depends on: page, site. 4 | Results in: page-dependent SCSS rules for inclusion in a head style element. 5 | Includes: 6 | sorted_pages.html. 7 | Overwrites: 8 | activation_pages, activation_pages_top_size, activation_page, activation_title, 9 | activation_first_level, activation_second_level, activation_third_level, 10 | activation_first_level_reversed, activation_second_level_reversed, 11 | activation_first_level_index, activation_second_level_index, activation_third_level_index. 12 | Should not be cached, because it depends on page. 13 | (For a site with only top-level pages, the rendering of this file is always empty. 14 | This property could be detected, and might halve the build time for such sites.) 15 | {%- endcomment -%} 16 | 17 | {%- unless page.title == nil or page.nav_exclude == true -%} 18 | 19 | {%- assign activation_pages = site[page.collection] 20 | | default: site.html_pages 21 | | where_exp: "item", "item.title != nil" 22 | | where_exp: "item", "item.nav_exclude != true" -%} 23 | 24 | {%- assign activation_first_level_index = nil -%} 25 | {%- assign activation_second_level_index = nil -%} 26 | {%- assign activation_third_level_index = nil -%} 27 | {%- assign activation_first_level_reversed = nil -%} 28 | {%- assign activation_second_level_reversed = nil -%} 29 | 30 | {%- assign activation_title = page.grand_parent | default: page.parent | default: page.title -%} 31 | {%- assign activation_first_level = activation_pages 32 | | where_exp: "item", "item.parent == nil" -%} 33 | {%- include sorted_pages.html pages = activation_first_level -%} 34 | {%- for activation_page in sorted_pages -%} 35 | {%- if activation_page.title == activation_title -%} 36 | {%- assign activation_first_level_index = forloop.index -%} 37 | {%- assign activation_first_level_reversed = activation_page.child_nav_order -%} 38 | {%- break -%} 39 | {%- endif -%} 40 | {%- endfor -%} 41 | 42 | {%- unless activation_first_level_index == nil -%} 43 | 44 | {%- if page.grand_parent -%} 45 | {%- assign activation_title = page.parent -%} 46 | {%- assign activation_second_level = activation_pages 47 | | where_exp: "item", "item.grand_parent == nil" 48 | | where_exp: "item", "item.parent == page.grand_parent" -%} 49 | {%- elsif page.parent -%} 50 | {%- assign activation_title = page.title -%} 51 | {%- assign activation_second_level = activation_pages 52 | | where_exp: "item", "item.grand_parent == nil" 53 | | where_exp: "item", "item.parent == page.parent" -%} 54 | {%- endif -%} 55 | {%- if page.parent -%} 56 | {%- include sorted_pages.html pages = activation_second_level -%} 57 | {%- for activation_page in sorted_pages -%} 58 | {%- if activation_page.title == activation_title -%} 59 | {%- assign activation_second_level_index = forloop.index -%} 60 | {%- assign activation_second_level_reversed = activation_page.child_nav_order -%} 61 | {%- if activation_first_level_reversed -%} 62 | {%- assign activation_second_level_index = sorted_pages | size | plus: 1 | minus: activation_second_level_index -%} 63 | {%- endif -%} 64 | {%- break -%} 65 | {%- endif -%} 66 | {%- endfor -%} 67 | {%- endif -%} 68 | 69 | {%- if page.grand_parent -%} 70 | {%- assign activation_third_level = activation_pages 71 | | where_exp: "item", "item.parent == page.parent" 72 | | where_exp: "item", "item.grand_parent == page.grand_parent" -%} 73 | {%- include sorted_pages.html pages = activation_third_level -%} 74 | {%- assign activation_third_level = sorted_pages -%} 75 | {%- for activation_page in sorted_pages -%} 76 | {%- if activation_page.title == page.title -%} 77 | {%- assign activation_third_level_index = forloop.index -%} 78 | {%- if activation_second_level_reversed -%} 79 | {%- assign activation_third_level_index = sorted_pages | size | plus: 1 | minus: activation_third_level_index -%} 80 | {%- endif -%} 81 | {%- break -%} 82 | {%- endif -%} 83 | {%- endfor -%} 84 | {%- endif -%} 85 | 86 | {%- unless activation_second_level_index == nil and activation_third_level_index -%} 87 | 88 | {%- if page.collection == nil -%} 89 | 90 | {%- capture activation_collection_prefix -%} 91 | .site-nav > .nav-list:nth-child(1):not(.nav-category-list) 92 | {%- endcapture -%} 93 | 94 | {%- else -%} 95 | 96 | {%- for activation_collection in site.just_the_docs.collections -%} 97 | {%- if activation_collection[0] == page.collection -%} 98 | {%- assign activation_collection_index = forloop.index -%} 99 | {%- break -%} 100 | {%- endif -%} 101 | {%- endfor -%} 102 | {%- assign activation_index = activation_collection_index -%} 103 | {%- assign activation_pages_top_size = site.html_pages 104 | | where_exp:"item", "item.title != nil" 105 | | where_exp:"item", "item.parent == nil" 106 | | where_exp:"item", "item.nav_exclude != true" 107 | | size -%} 108 | {%- if activation_pages_top_size > 0 -%} 109 | {%- assign activation_index = activation_index | plus: 1 -%} 110 | {%- endif -%} 111 | {%- if site.nav_external_links -%} 112 | {%- assign activation_index = activation_index | plus: 1 -%} 113 | {%- endif -%} 114 | {%- capture activation_collection_prefix -%} 115 | .site-nav > .nav-list:nth-of-type({{ activation_index }}){% if site.just_the_docs.collections[page.collection].nav_fold == true %} > .nav-list-item > .nav-list{% endif %} 116 | {%- endcapture -%} 117 | 118 | {%- endif -%} 119 | 120 | // Styling for the nav-list-link to the current page: 121 | {{ activation_collection_prefix }} { 122 | > .nav-list-item:not(.external):nth-child({{ activation_first_level_index }}){%- if activation_second_level_index %} > .nav-list > .nav-list-item:nth-child({{ activation_second_level_index }}){%- if activation_third_level_index %} > .nav-list > .nav-list-item:nth-child({{ activation_third_level_index }}){% endif %}{% endif %} { 123 | > .nav-list-link { 124 | display: block; 125 | font-weight: 600; 126 | text-decoration: none; 127 | background-image: linear-gradient( 128 | -90deg, 129 | rgba($feedback-color, 1) 0%, 130 | rgba($feedback-color, 0.8) 80%, 131 | rgba($feedback-color, 0) 100% 132 | ); 133 | } 134 | } 135 | } 136 | 137 | // Styling for nav-list-expanders at first and second levels: 138 | {{ activation_collection_prefix }} { 139 | > .nav-list-item:nth-child({{ activation_first_level_index }}){%- if activation_second_level_index %}, 140 | > .nav-list-item:nth-child({{ activation_first_level_index }}) > .nav-list > .nav-list-item:nth-child({{ activation_second_level_index }}){% endif %} { 141 | > .nav-list-expander svg { 142 | @if $nav-list-expander-right { 143 | transform: rotate(-90deg); 144 | } @else { 145 | transform: rotate(90deg); 146 | } 147 | } 148 | 149 | > .nav-list { 150 | display: block; 151 | } 152 | } 153 | } 154 | 155 | // Styling for nav-list-expander for categories: 156 | .site-nav > .nav-category-list > .nav-list-item { 157 | > .nav-list-expander svg { 158 | @if $nav-list-expander-right { 159 | transform: rotate(-90deg); 160 | } @else { 161 | transform: rotate(90deg); 162 | } 163 | } 164 | 165 | > .nav-list { 166 | display: block; 167 | } 168 | } 169 | 170 | {%- endunless -%} 171 | {%- endunless -%} 172 | {%- endunless -%} 173 | -------------------------------------------------------------------------------- /docs/_includes/css/callouts.scss.liquid: -------------------------------------------------------------------------------- 1 | {%- comment -%} 2 | {% include css/callouts.scss.liquid color_scheme = string %} 3 | produces SCSS for all the callouts in site.callouts. For the "dark" 4 | color scheme, the levels of the text and background colors are reversed. 5 | {%- endcomment -%} 6 | 7 | {%- assign callout_background_hue = "000" -%} 8 | {%- assign callout_color_hue = "300" -%} 9 | {%- if site.callouts_level == "loud" or include.color_scheme == "dark" and site.callouts_level != "quiet" -%} 10 | {%- assign callout_background_hue = "300" -%} 11 | {%- assign callout_color_hue = "000" -%} 12 | {%- endif -%} 13 | 14 | div.opaque { 15 | background-color: $body-background-color; 16 | } 17 | 18 | {%- for callout in site.callouts %} 19 | 20 | {%- assign callout_opacity = callout[1].opacity | default: site.callouts_opacity | default: 0.2 -%} 21 | 22 | p.{{ callout[0] }}, blockquote.{{ callout[0] }} { 23 | background: rgba(${{ callout[1].color }}-{{ callout_background_hue }}, {{ callout_opacity }}); 24 | border-left: $border-radius solid ${{ callout[1].color }}-{{ callout_color_hue }}; 25 | border-radius: $border-radius; 26 | box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); 27 | padding: .8rem; 28 | {% if callout[1].title %} 29 | &::before { 30 | color: ${{ callout[1].color }}-{{ callout_color_hue }}; 31 | content: "{{ callout[1].title }}"; 32 | display: block; 33 | font-weight: bold; 34 | text-transform: uppercase; 35 | font-size: .75em; 36 | padding-bottom: .125rem; 37 | } 38 | {% endif %} 39 | > .{{ callout[0] }}-title { 40 | color: ${{ callout[1].color }}-{{ callout_color_hue }}; 41 | display: block; 42 | font-weight: bold; 43 | text-transform: uppercase; 44 | font-size: .75em; 45 | padding-bottom: .125rem; 46 | } 47 | } 48 | 49 | p.{{ callout[0] }}-title, blockquote.{{ callout[0] }}-title { 50 | background: rgba(${{ callout[1].color }}-{{ callout_background_hue }}, {{ callout_opacity }}); 51 | border-left: $border-radius solid ${{ callout[1].color }}-{{ callout_color_hue }}; 52 | border-radius: $border-radius; 53 | box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); 54 | padding: .8rem; 55 | > p:first-child { 56 | margin-top: 0; 57 | margin-bottom: 0; 58 | color: ${{ callout[1].color }}-{{ callout_color_hue }}; 59 | display: block; 60 | font-weight: bold; 61 | text-transform: uppercase; 62 | font-size: .75em; 63 | padding-bottom: .125rem; 64 | } 65 | } 66 | 67 | blockquote.{{ callout[0] }} { 68 | margin-left: 0; 69 | margin-right: 0; 70 | 71 | > p:first-child { 72 | margin-top: 0; 73 | } 74 | 75 | > p:last-child { 76 | margin-bottom: 0; 77 | } 78 | } 79 | 80 | blockquote.{{ callout[0] }}-title { 81 | margin-left: 0; 82 | margin-right: 0; 83 | 84 | > p:nth-child(2) { 85 | margin-top: 0; 86 | } 87 | 88 | > p:last-child { 89 | margin-bottom: 0; 90 | } 91 | } 92 | 93 | {% endfor -%} 94 | -------------------------------------------------------------------------------- /docs/_includes/css/custom.scss.liquid: -------------------------------------------------------------------------------- 1 | @import "./custom/custom"; 2 | -------------------------------------------------------------------------------- /docs/_includes/css/just-the-docs.scss.liquid: -------------------------------------------------------------------------------- 1 | {% if site.logo %} 2 | $logo: "{{ site.logo | relative_url }}"; 3 | {% endif %} 4 | @import "./support/support"; 5 | @import "./custom/setup"; 6 | @import "./color_schemes/light"; 7 | {% unless include.color_scheme == "light" %} 8 | @import "./color_schemes/{{ include.color_scheme }}"; 9 | {% endunless %} 10 | @import "./modules"; 11 | {% include css/callouts.scss.liquid color_scheme = include.color_scheme %} 12 | {% include css/custom.scss.liquid %} 13 | -------------------------------------------------------------------------------- /docs/_includes/favicon.html: -------------------------------------------------------------------------------- 1 | {%- comment -%} 2 | Include as: {%- include_cached favicon.html -%} 3 | Depends on: site.static_files. 4 | Results in: HTML for a link to an existing `favicon.ico` file. 5 | Overwrites: 6 | file. 7 | 8 | The endoflife.date site has 226 pages and 3410 static files. @marcwrobel pointed 9 | out that the time taken by evaluating the code in this file on every page when 10 | building that site was significant, and suggested making it optional. As it is 11 | page-independent, it can easily be cached. Doing that reduced the time taken by 12 | rendering `_includes/head.html` from 15.294s to 10.760s, thereby reducing the 13 | total build time from 26.074s to 21.656s -- a saving of about 17%. 14 | {%- endcomment -%} 15 | 16 | {% for file in site.static_files %} 17 | {% if file.path == site.favicon_ico or file.path == '/favicon.ico' %} 18 | {% assign favicon = true %} 19 | {% endif %} 20 | {% endfor %} 21 | {% if favicon %} 22 | 23 | {% endif %} 24 | -------------------------------------------------------------------------------- /docs/_includes/fix_linenos.html: -------------------------------------------------------------------------------- 1 | {%- comment -%} 2 | This file can be used to fix the HTML produced by Jekyll for highlighted 3 | code with line numbers. 4 | 5 | It works with `{% highlight some_language linenos %}...{% endhighlight %}` 6 | and with the Kramdown option to add line numbers to fenced code. 7 | 8 | The implementation was derived from the workaround provided by 9 | Dmitry Hrabrov (DeXP) at 10 | https://github.com/penibelst/jekyll-compress-html/issues/71#issuecomment-188144901 11 | 12 | EXPLANATION 13 | 14 | The HTML produced by Rouge highlighting with lie numbers is of the form 15 | `code table`. Jekyll (<= 4.1.1) always wraps the highlighted HTML 16 | with `pre`. This wrapping is not only unnecessary, but also transforms 17 | the conforming HTML produced by Rouge to non-conforming HTML, which 18 | results in HTML validation error reports. 19 | 20 | The fix removes the outer `pre` tags whenever they contain the pattern 21 | ``. 22 | 23 | Apart from avoiding HTML validation errors, the fix allows the use of 24 | the [Jekyll layout for compressing HTML](http://jch.penibelst.de), 25 | which relies on `pre` tags not being nested, according to 26 | https://github.com/penibelst/jekyll-compress-html/issues/71#issuecomment-172069842 27 | 28 | USAGE 29 | 30 | (Any names can be used for `some_var` and `some_language`.) 31 | 32 | {% capture some_var %} 33 | {% highlight some_language linenos %} 34 | Some code 35 | {% endhighlight %} 36 | {% endcapture %} 37 | {% include fix_linenos.html code=some_var %} 38 | 39 | For code fences: 40 | 41 | {% capture some_var %} 42 | ```some_language 43 | Some code 44 | ``` 45 | {% endcapture %} 46 | {% assign some_var = some_var | markdownify %} 47 | {% include fix_linenos.html code=some_var %} 48 | 49 | CAVEATS 50 | 51 | The above does not work when `Some code` happens to contain the matched string 52 | `
`. 53 | 54 | The use of this file overwrites the variable `fix_linenos_code` with `nil`. 55 | 56 | {%- endcomment -%} 57 | 58 | {% assign fix_linenos_code = include.code %} 59 | {% if fix_linenos_code contains '
' %} 60 | {% assign fix_linenos_code = fix_linenos_code | replace: '
', '
' %}
61 |   {% assign fix_linenos_code = fix_linenos_code | replace: "
", "" %} 63 | {% endif %} 64 | {{ fix_linenos_code }} 65 | {% assign fix_linenos_code = nil %} 66 | -------------------------------------------------------------------------------- /docs/_includes/footer_custom.html: -------------------------------------------------------------------------------- 1 | {%- if site.footer_content -%} 2 |

{{ site.footer_content }}

3 | {%- endif -%} 4 | -------------------------------------------------------------------------------- /docs/_includes/head.html: -------------------------------------------------------------------------------- 1 | {%- comment -%} 2 | Include as: {%- include head.html -%} 3 | Depends on: site.ga_tracking, site.ga_tracking_anonymize_ip, 4 | site.search_enabled, site.static_files, site.favicon_ico. 5 | Results in: HTML for the head element. 6 | Includes: 7 | head_nav.html, head_custom.html. 8 | Overwrites: 9 | ga_tracking_ids, ga_property, file, favicon. 10 | Should not be cached, because included files depend on page. 11 | {%- endcomment -%} 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | {% include head_nav.html %} 20 | 21 | {% if site.ga_tracking != nil %} 22 | {% assign ga_tracking_ids = site.ga_tracking | split: "," %} 23 | 24 | 33 | {% endif %} 34 | 35 | {% if site.search_enabled != false %} 36 | 37 | {% endif %} 38 | 39 | 40 | 41 | 42 | 43 | {% include_cached favicon.html %} 44 | 45 | {% seo %} 46 | 47 | {% include head_custom.html %} 48 | 49 | 50 | -------------------------------------------------------------------------------- /docs/_includes/head_custom.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eslam-gomaa/kptop/ed89939ea65e13dde973b3e291be34de067ca2ef/docs/_includes/head_custom.html -------------------------------------------------------------------------------- /docs/_includes/head_nav.html: -------------------------------------------------------------------------------- 1 | {%- comment -%} 2 | Include as: {%- include head_nav.html -%} 3 | Depends on: site.color_scheme. 4 | Results in: HTML for a page-specific style element. 5 | Includes: 6 | css/activation.scss.liquid. 7 | Overwrites: 8 | activation, test_scss, scss, css, index, count. 9 | Should not be cached, because css/activation.scss.liquid depends on page. 10 | {%- endcomment -%} 11 | 12 | {% capture activation %} 13 | {% include css/activation.scss.liquid %} 14 | {%- endcapture -%} 15 | 16 | {% capture test_scss %} 17 | @import "./support/support"; 18 | @import "./color_schemes/light"; 19 | {{ activation }} 20 | {%- endcapture -%} 21 | 22 | {%- capture scss -%} 23 | @import "./support/support"; 24 | @import "./custom/setup"; 25 | {% if site.color_scheme and site.color_scheme != "nil" -%} 26 | {%- assign color_scheme = site.color_scheme -%} 27 | {%- else -%} 28 | {%- assign color_scheme = "light" -%} 29 | {%- endif %} 30 | @import "./color_schemes/light"; 31 | {% unless color_scheme == "light" %} 32 | @import "./color_schemes/{{ color_scheme }}"; 33 | {% endunless %} 34 | {{ activation }} 35 | {%- endcapture -%} 36 | 37 | {%- comment -%} 38 | Convert to CSS, then remove the color_scheme import rules to avoid duplication. 39 | The value of count is page-dependent, but independent of custom color schemes. 40 | {%- endcomment -%} 41 | {%- assign count = test_scss | scssify | split: ".site-nav" | size -%} 42 | {%- unless count == 1 %} 43 | {%- assign index = 1 | minus: count -%} 44 | {%- assign css = scss | scssify | split: ".site-nav" | slice: index, count | join: ".site-nav" -%} 45 | 48 | {%- endunless %} 49 | -------------------------------------------------------------------------------- /docs/_includes/header_custom.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eslam-gomaa/kptop/ed89939ea65e13dde973b3e291be34de067ca2ef/docs/_includes/header_custom.html -------------------------------------------------------------------------------- /docs/_includes/icons/code_copy.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Copy 4 | 5 | 6 | 7 | 8 | 9 | 10 | Copied 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /docs/_includes/icons/document.html: -------------------------------------------------------------------------------- 1 | 2 | Document 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /docs/_includes/icons/expand.html: -------------------------------------------------------------------------------- 1 | 2 | Expand 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /docs/_includes/icons/external_link.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | (external link) 4 | 5 | 6 | -------------------------------------------------------------------------------- /docs/_includes/icons/icons.html: -------------------------------------------------------------------------------- 1 | 2 | {% include icons/link.html %} 3 | {% include icons/menu.html %} 4 | {% include icons/expand.html %} 5 | {% include icons/external_link.html %} 6 | {% if site.search_enabled != false %} 7 | {% include icons/document.html %} 8 | {% include icons/search.html %} 9 | {% endif %} 10 | {% if site.enable_copy_code_button != false %} 11 | {% include icons/code_copy.html %} 12 | {% endif %} 13 | 14 | -------------------------------------------------------------------------------- /docs/_includes/icons/link.html: -------------------------------------------------------------------------------- 1 | 2 | Link 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /docs/_includes/icons/menu.html: -------------------------------------------------------------------------------- 1 | 2 | Menu 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /docs/_includes/icons/search.html: -------------------------------------------------------------------------------- 1 | 2 | Search 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /docs/_includes/js/custom.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eslam-gomaa/kptop/ed89939ea65e13dde973b3e291be34de067ca2ef/docs/_includes/js/custom.js -------------------------------------------------------------------------------- /docs/_includes/lunr/custom-data.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eslam-gomaa/kptop/ed89939ea65e13dde973b3e291be34de067ca2ef/docs/_includes/lunr/custom-data.json -------------------------------------------------------------------------------- /docs/_includes/lunr/custom-index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eslam-gomaa/kptop/ed89939ea65e13dde973b3e291be34de067ca2ef/docs/_includes/lunr/custom-index.js -------------------------------------------------------------------------------- /docs/_includes/mermaid_config.js: -------------------------------------------------------------------------------- 1 | // _includes/mermaid_config.js 2 | { 3 | theme: "forest" 4 | } -------------------------------------------------------------------------------- /docs/_includes/nav.html: -------------------------------------------------------------------------------- 1 | {%- comment -%} 2 | Include as: {%- include_cached nav.html pages=pages -%} 3 | Depends on: include.pages. 4 | Results in: HTML for the navigation panel. 5 | Includes: 6 | sorted_pages.html 7 | Overwrites: 8 | nav_pages, first_level_pages, second_level_pages, third_level_pages, 9 | node, children_list, child, grand_children_list, grand_child. 10 | {%- endcomment -%} 11 | 12 | {%- assign nav_pages = include.pages 13 | | where_exp: "item", "item.title != nil" 14 | | where_exp: "item", "item.nav_exclude != true" -%} 15 | 16 | {%- include sorted_pages.html pages = nav_pages -%} 17 | 18 | {%- comment -%} 19 | It might be more efficient to sort the pages at each level separately. 20 | {%- endcomment -%} 21 | 22 | {%- assign first_level_pages = sorted_pages 23 | | where_exp: "item", "item.parent == nil" -%} 24 | {%- assign second_level_pages = sorted_pages 25 | | where_exp: "item", "item.parent != nil" 26 | | where_exp: "item", "item.grand_parent == nil" -%} 27 | {%- assign third_level_pages = sorted_pages 28 | | where_exp: "item", "item.grand_parent != nil" -%} 29 | 30 | 76 | -------------------------------------------------------------------------------- /docs/_includes/nav_footer_custom.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eslam-gomaa/kptop/ed89939ea65e13dde973b3e291be34de067ca2ef/docs/_includes/nav_footer_custom.html -------------------------------------------------------------------------------- /docs/_includes/search_placeholder_custom.html: -------------------------------------------------------------------------------- 1 | Search {{site.title}} 2 | -------------------------------------------------------------------------------- /docs/_includes/sorted_pages.html: -------------------------------------------------------------------------------- 1 | {%- comment -%} 2 | Include as: {%- include sorted_pages.html pages=array_of_pages -%} 3 | Depends on: include.pages. 4 | Assigns to: sorted_pages. 5 | Overwrites: 6 | nav_order_pages, title_order_pages, double_quote, empty_array, 7 | nav_number_pages, nav_string_pages, nav_order_groups, group, 8 | title_number_pages, title_string_pages, title_order_groups. 9 | {%- endcomment -%} 10 | 11 | {%- comment -%} 12 | The `nav_order` values of pages affect the order in which they are shown in 13 | the navigation panel and in the automatically generated tables of contents. 14 | Sibling pages with the same `nav_order` value may be shown in any order. 15 | Sibling pages with no `nav_order` value are shown after all pages that have 16 | explicit `nav_order` values, ordered by their `title` values. 17 | 18 | The `nav_order` and `title` values can be numbers or strings. To avoid build 19 | failures, we sort numbers and strings separately. We sort numbers by their 20 | values, and strings lexicographically. The case-sensitivity of string sorting 21 | is determined by the configuration setting of `nav_sort`. Pages with no `title` 22 | value are excluded from the navigation. 23 | 24 | Note: Numbers used as `title` or `nav_order` values should not be in quotes, 25 | unless you intend them to be lexicographically ordered. Numbers are written 26 | without spaces or thousands-separators. Negative numbers are preceded by `-`. 27 | Floats are written with the integral and fractional parts separated by `.`. 28 | (Bounds on the magnitude and precision are presumably the same as in Liquid.) 29 | {%- endcomment -%} 30 | 31 | {%- assign nav_order_pages = include.pages 32 | | where_exp: "item", "item.nav_order != nil" -%} 33 | {%- assign title_order_pages = include.pages 34 | | where_exp: "item", "item.nav_order == nil" -%} 35 | 36 | {%- comment -%} 37 | First, filter `nav_order_pages` and `title_order_pages` according to the type 38 | of value to be used for sorting. 39 | 40 | The first character of the result of filtering with `jsonify` is `"` only for 41 | strings. Removing `"` from its `slice : 0` has size 0 for strings and 1 for 42 | numbers, so grouping the pages gives at most two groups. 43 | {%- endcomment -%} 44 | 45 | {%- assign double_quote = '"' -%} 46 | {%- assign empty_array = "" | split: "" -%} 47 | 48 | {%- assign nav_string_pages = empty_array -%} 49 | {%- assign nav_number_pages = empty_array -%} 50 | {%- unless nav_order_pages == empty -%} 51 | {%- assign nav_order_groups = nav_order_pages 52 | | group_by_exp: "item", 53 | "item.nav_order | jsonify | slice: 0 | remove: double_quote | size" -%} 54 | {%- for group in nav_order_groups -%} 55 | {%- if group.name == 0 -%} 56 | {%- assign nav_string_pages = group.items -%} 57 | {%- elsif group.name == 1 -%} 58 | {%- assign nav_number_pages = group.items -%} 59 | {%- endif -%} 60 | {%- endfor -%} 61 | {%- endunless -%} 62 | 63 | {%- assign title_string_pages = empty_array -%} 64 | {%- assign title_number_pages = empty_array -%} 65 | {%- unless title_order_pages == empty -%} 66 | {%- assign title_order_groups = title_order_pages 67 | | group_by_exp: "item", 68 | "item.title | jsonify | slice: 0 | remove: double_quote | size" -%} 69 | {%- for group in title_order_groups -%} 70 | {%- if group.name == 0 -%} 71 | {%- assign title_string_pages = group.items -%} 72 | {%- elsif group.name == 1 -%} 73 | {%- assign title_number_pages = group.items -%} 74 | {%- endif -%} 75 | {%- endfor -%} 76 | {%- endunless -%} 77 | 78 | {%- comment -%} 79 | Now sort each array of pages separately, then concatenate the sorted arrays. 80 | {%- endcomment -%} 81 | 82 | {%- unless nav_number_pages == empty -%} 83 | {%- assign nav_number_pages = nav_number_pages | sort: "nav_order" -%} 84 | {%- endunless -%} 85 | 86 | {%- unless nav_string_pages == empty -%} 87 | {%- if site.nav_sort == 'case_insensitive' -%} 88 | {%- assign nav_string_pages = nav_string_pages | sort_natural: "nav_order" -%} 89 | {%- else -%} 90 | {%- assign nav_string_pages = nav_string_pages | sort: "nav_order" -%} 91 | {%- endif -%} 92 | {%- endunless -%} 93 | 94 | {%- unless title_number_pages == empty -%} 95 | {%- assign title_number_pages = title_number_pages | sort: "title" -%} 96 | {%- endunless -%} 97 | 98 | {%- unless title_string_pages == empty -%} 99 | {%- if site.nav_sort == 'case_insensitive' -%} 100 | {%- assign title_string_pages = title_string_pages | sort_natural: "title" -%} 101 | {%- else -%} 102 | {%- assign title_string_pages = title_string_pages | sort: "title" -%} 103 | {%- endif -%} 104 | {%- endunless -%} 105 | 106 | {%- assign sorted_pages = nav_number_pages 107 | | concat: nav_string_pages 108 | | concat: title_number_pages 109 | | concat: title_string_pages -%} 110 | -------------------------------------------------------------------------------- /docs/_includes/title.html: -------------------------------------------------------------------------------- 1 | {% if site.logo %} 2 | 3 | {% else %} 4 | {{ site.title }} 5 | {% endif %} 6 | -------------------------------------------------------------------------------- /docs/_includes/toc.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/_includes/toc_heading_custom.html: -------------------------------------------------------------------------------- 1 |

Table of contents

2 | -------------------------------------------------------------------------------- /docs/_layouts/about.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 | {{ content }} 6 | -------------------------------------------------------------------------------- /docs/_layouts/default.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: table_wrappers 3 | --- 4 | 5 | 6 | 7 | 8 | {% include head.html %} 9 | 10 | Skip to main content 11 | {% include icons/icons.html %} 12 | {% include components/sidebar.html %} 13 |
14 | {% include components/header.html %} 15 |
16 | {% include components/breadcrumbs.html %} 17 |
18 |
19 | {% if site.heading_anchors != false %} 20 | {% include vendor/anchor_headings.html html=content beforeHeading="true" anchorBody="" anchorClass="anchor-heading" anchorAttrs="aria-labelledby=\"%html_id%\"" %} 21 | {% else %} 22 | {{ content }} 23 | {% endif %} 24 | 25 | {% if page.has_children == true and page.has_toc != false %} 26 | {% include components/children_nav.html %} 27 | {% endif %} 28 |
29 | {% include components/footer.html %} 30 |
31 |
32 | {% if site.search_enabled != false %} 33 | {% include components/search_footer.html %} 34 | {% endif %} 35 |
36 | 37 | {% if site.mermaid %} 38 | {% include components/mermaid.html %} 39 | {% endif %} 40 | 41 | 42 | -------------------------------------------------------------------------------- /docs/_layouts/home.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 | {{ content }} 6 | -------------------------------------------------------------------------------- /docs/_layouts/minimal.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: table_wrappers 3 | --- 4 | 5 | 6 | 7 | 8 | {% include head.html %} 9 | 10 | Skip to main content 11 | {% include icons/icons.html %} 12 |
13 | {% include components/breadcrumbs.html %} 14 |
15 | {% if site.heading_anchors != false %} 16 | {% include vendor/anchor_headings.html html=content beforeHeading="true" anchorBody="" anchorClass="anchor-heading" anchorAttrs="aria-labelledby=\"%html_id%\"" %} 17 | {% else %} 18 | {{ content }} 19 | {% endif %} 20 | 21 | {% if page.has_children == true and page.has_toc != false %} 22 | {% include components/children_nav.html %} 23 | {% endif %} 24 | 25 | {% include components/footer.html %} 26 | 27 |
28 |
29 | 30 | {% if site.mermaid %} 31 | {% include components/mermaid.html %} 32 | {% endif %} 33 | 34 | 35 | -------------------------------------------------------------------------------- /docs/_layouts/page.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 | {{ content }} 6 | -------------------------------------------------------------------------------- /docs/_layouts/post.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 | {{ content }} 6 | -------------------------------------------------------------------------------- /docs/_layouts/table_wrappers.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: vendor/compress 3 | --- 4 | 5 | {% assign content_ = content | replace: '', '
' %} 7 | {{ content_ }} 8 | -------------------------------------------------------------------------------- /docs/_layouts/vendor/compress.html: -------------------------------------------------------------------------------- 1 | --- 2 | # Jekyll layout that compresses HTML 3 | # v3.1.0 4 | # http://jch.penibelst.de/ 5 | # © 2014–2015 Anatol Broder 6 | # MIT License 7 | --- 8 | 9 | {% capture _LINE_FEED %} 10 | {% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment or site.compress_html.ignore.envs == "all" %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "" %}{% endif %}{% unless _pre_before contains "" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " ;; ;" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %}
Step Bytes
raw {{ content | size }}{% if _profile_endings %}
endings {{ _profile_endings }}{% endif %}{% if _profile_startings %}
startings {{ _profile_startings }}{% endif %}{% if _profile_comments %}
comments {{ _profile_comments }}{% endif %}{% if _profile_collapse %}
collapse {{ _profile_collapse }}{% endif %}{% if _profile_clippings %}
clippings {{ _profile_clippings }}{% endif %}
{% endif %}{% endif %} 11 | -------------------------------------------------------------------------------- /docs/_sass/base.scss: -------------------------------------------------------------------------------- 1 | // Base element style overrides 2 | // stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id 3 | 4 | :root { 5 | color-scheme: $color-scheme; 6 | } 7 | 8 | * { 9 | box-sizing: border-box; 10 | } 11 | 12 | html { 13 | @include fs-4; 14 | 15 | scroll-behavior: smooth; 16 | } 17 | 18 | body { 19 | font-family: $body-font-family; 20 | font-size: inherit; 21 | line-height: $body-line-height; 22 | color: $body-text-color; 23 | background-color: $body-background-color; 24 | overflow-wrap: break-word; 25 | } 26 | 27 | ol, 28 | ul, 29 | dl, 30 | pre, 31 | address, 32 | blockquote, 33 | table, 34 | div, 35 | hr, 36 | form, 37 | fieldset, 38 | noscript .table-wrapper { 39 | margin-top: 0; 40 | } 41 | 42 | h1, 43 | h2, 44 | h3, 45 | h4, 46 | h5, 47 | h6, 48 | #toctitle { 49 | margin-top: 0; 50 | margin-bottom: 1em; 51 | font-weight: 500; 52 | line-height: $body-heading-line-height; 53 | color: $body-heading-color; 54 | } 55 | 56 | p { 57 | margin-top: 1em; 58 | margin-bottom: 1em; 59 | } 60 | 61 | a { 62 | color: $link-color; 63 | text-decoration: none; 64 | } 65 | 66 | a:not([class]) { 67 | text-decoration: underline; 68 | text-decoration-color: $border-color; 69 | text-underline-offset: 2px; 70 | 71 | &:hover { 72 | text-decoration-color: rgba($link-color, 0.45); 73 | } 74 | } 75 | 76 | code { 77 | font-family: $mono-font-family; 78 | font-size: 0.75em; 79 | line-height: $body-line-height; 80 | } 81 | 82 | figure, 83 | pre { 84 | margin: 0; 85 | } 86 | 87 | li { 88 | margin: 0.25em 0; 89 | } 90 | 91 | img { 92 | max-width: 100%; 93 | height: auto; 94 | } 95 | 96 | hr { 97 | height: 1px; 98 | padding: 0; 99 | margin: $sp-6 0; 100 | background-color: $border-color; 101 | border: 0; 102 | } 103 | 104 | // adds a GitHub-style sidebar to blockquotes 105 | blockquote { 106 | margin: 10px 0; 107 | 108 | // resets user-agent stylesheets for blockquotes 109 | margin-block-start: 0; 110 | margin-inline-start: 0; 111 | padding-left: 1rem; 112 | border-left: 3px solid $border-color; 113 | } 114 | -------------------------------------------------------------------------------- /docs/_sass/buttons.scss: -------------------------------------------------------------------------------- 1 | // Buttons and things that look like buttons 2 | // stylelint-disable color-named 3 | 4 | .btn { 5 | display: inline-block; 6 | box-sizing: border-box; 7 | padding: 0.3em 1em; 8 | margin: 0; 9 | font-family: inherit; 10 | font-size: inherit; 11 | font-weight: 500; 12 | line-height: 1.5; 13 | color: $link-color; 14 | text-decoration: none; 15 | vertical-align: baseline; 16 | cursor: pointer; 17 | background-color: $base-button-color; 18 | border-width: 0; 19 | border-radius: $border-radius; 20 | box-shadow: 21 | 0 1px 2px rgba(0, 0, 0, 0.12), 22 | 0 3px 10px rgba(0, 0, 0, 0.08); 23 | appearance: none; 24 | 25 | &:focus { 26 | text-decoration: none; 27 | outline: none; 28 | box-shadow: 0 0 0 3px rgba(blue, 0.25); 29 | } 30 | 31 | &:focus:hover, 32 | &.selected:focus { 33 | box-shadow: 0 0 0 3px rgba(blue, 0.25); 34 | } 35 | 36 | &:hover, 37 | &.zeroclipboard-is-hover { 38 | color: darken($link-color, 2%); 39 | } 40 | 41 | &:hover, 42 | &:active, 43 | &.zeroclipboard-is-hover, 44 | &.zeroclipboard-is-active { 45 | text-decoration: none; 46 | background-color: darken($base-button-color, 1%); 47 | } 48 | 49 | &:active, 50 | &.selected, 51 | &.zeroclipboard-is-active { 52 | background-color: darken($base-button-color, 3%); 53 | background-image: none; 54 | box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); 55 | } 56 | 57 | &.selected:hover { 58 | background-color: darken(#dcdcdc, 5%); 59 | } 60 | 61 | &:disabled, 62 | &.disabled { 63 | &, 64 | &:hover { 65 | color: rgba(102, 102, 102, 0.5); 66 | cursor: default; 67 | background-color: rgba(229, 229, 229, 0.5); 68 | background-image: none; 69 | box-shadow: none; 70 | } 71 | } 72 | } 73 | 74 | .btn-outline { 75 | color: $link-color; 76 | background: transparent; 77 | box-shadow: inset 0 0 0 2px $grey-lt-300; 78 | 79 | &:hover, 80 | &:active, 81 | &.zeroclipboard-is-hover, 82 | &.zeroclipboard-is-active { 83 | color: darken($link-color, 4%); 84 | text-decoration: none; 85 | background-color: transparent; 86 | box-shadow: inset 0 0 0 3px $grey-lt-300; 87 | } 88 | 89 | &:focus { 90 | text-decoration: none; 91 | outline: none; 92 | box-shadow: 93 | inset 0 0 0 2px $grey-dk-100, 94 | 0 0 0 3px rgba(blue, 0.25); 95 | } 96 | 97 | &:focus:hover, 98 | &.selected:focus { 99 | box-shadow: inset 0 0 0 2px $grey-dk-100; 100 | } 101 | } 102 | 103 | .btn-primary { 104 | @include btn-color($white, $btn-primary-color); 105 | } 106 | 107 | .btn-purple { 108 | @include btn-color($white, $purple-100); 109 | } 110 | 111 | .btn-blue { 112 | @include btn-color($white, $blue-000); 113 | } 114 | 115 | .btn-green { 116 | @include btn-color($white, $green-100); 117 | } 118 | 119 | .btn-reset { 120 | background: none; 121 | border: none; 122 | margin: 0; 123 | text-align: inherit; 124 | font: inherit; 125 | border-radius: 0; 126 | appearance: none; 127 | } 128 | -------------------------------------------------------------------------------- /docs/_sass/color_schemes/dark.scss: -------------------------------------------------------------------------------- 1 | $color-scheme: dark; 2 | $body-background-color: $grey-dk-300; 3 | $body-heading-color: $grey-lt-000; 4 | $body-text-color: $grey-lt-300; 5 | $link-color: $blue-000; 6 | $nav-child-link-color: $grey-dk-000; 7 | $sidebar-color: $grey-dk-300; 8 | $base-button-color: $grey-dk-250; 9 | $btn-primary-color: $blue-200; 10 | $code-background-color: #31343f; // OneDarkJekyll default for syntax-one-dark-vivid 11 | $code-linenumber-color: #dee2f7; // OneDarkJekyll .nf for syntax-one-dark-vivid 12 | $feedback-color: darken($sidebar-color, 3%); 13 | $table-background-color: $grey-dk-250; 14 | $search-background-color: $grey-dk-250; 15 | $search-result-preview-color: $grey-dk-000; 16 | $border-color: $grey-dk-200; 17 | 18 | @import "./vendor/OneDarkJekyll/syntax"; // this is the one-dark-vivid atom syntax theme 19 | -------------------------------------------------------------------------------- /docs/_sass/color_schemes/legacy_light.scss: -------------------------------------------------------------------------------- 1 | // Moved from _sass/code.scss 2 | 3 | .highlight .c { 4 | color: #586e75; 5 | } // comment // 6 | .highlight .err { 7 | color: #93a1a1; 8 | } // error // 9 | .highlight .g { 10 | color: #93a1a1; 11 | } // generic // 12 | .highlight .k { 13 | color: #859900; 14 | } // keyword // 15 | .highlight .l { 16 | color: #93a1a1; 17 | } // literal // 18 | .highlight .n { 19 | color: #93a1a1; 20 | } // name // 21 | .highlight .o { 22 | color: #859900; 23 | } // operator // 24 | .highlight .x { 25 | color: #cb4b16; 26 | } // other // 27 | .highlight .p { 28 | color: #93a1a1; 29 | } // punctuation // 30 | .highlight .cm { 31 | color: #586e75; 32 | } // comment.multiline // 33 | .highlight .cp { 34 | color: #859900; 35 | } // comment.preproc // 36 | .highlight .c1 { 37 | color: #586e75; 38 | } // comment.single // 39 | .highlight .cs { 40 | color: #859900; 41 | } // comment.special // 42 | .highlight .gd { 43 | color: #2aa198; 44 | } // generic.deleted // 45 | .highlight .ge { 46 | font-style: italic; 47 | color: #93a1a1; 48 | } // generic.emph // 49 | .highlight .gr { 50 | color: #dc322f; 51 | } // generic.error // 52 | .highlight .gh { 53 | color: #cb4b16; 54 | } // generic.heading // 55 | .highlight .gi { 56 | color: #859900; 57 | } // generic.inserted // 58 | .highlight .go { 59 | color: #93a1a1; 60 | } // generic.output // 61 | .highlight .gp { 62 | color: #93a1a1; 63 | } // generic.prompt // 64 | .highlight .gs { 65 | font-weight: bold; 66 | color: #93a1a1; 67 | } // generic.strong // 68 | .highlight .gu { 69 | color: #cb4b16; 70 | } // generic.subheading // 71 | .highlight .gt { 72 | color: #93a1a1; 73 | } // generic.traceback // 74 | .highlight .kc { 75 | color: #cb4b16; 76 | } // keyword.constant // 77 | .highlight .kd { 78 | color: #268bd2; 79 | } // keyword.declaration // 80 | .highlight .kn { 81 | color: #859900; 82 | } // keyword.namespace // 83 | .highlight .kp { 84 | color: #859900; 85 | } // keyword.pseudo // 86 | .highlight .kr { 87 | color: #268bd2; 88 | } // keyword.reserved // 89 | .highlight .kt { 90 | color: #dc322f; 91 | } // keyword.type // 92 | .highlight .ld { 93 | color: #93a1a1; 94 | } // literal.date // 95 | .highlight .m { 96 | color: #2aa198; 97 | } // literal.number // 98 | .highlight .s { 99 | color: #2aa198; 100 | } // literal.string // 101 | .highlight .na { 102 | color: #555; 103 | } // name.attribute // 104 | .highlight .nb { 105 | color: #b58900; 106 | } // name.builtin // 107 | .highlight .nc { 108 | color: #268bd2; 109 | } // name.class // 110 | .highlight .no { 111 | color: #cb4b16; 112 | } // name.constant // 113 | .highlight .nd { 114 | color: #268bd2; 115 | } // name.decorator // 116 | .highlight .ni { 117 | color: #cb4b16; 118 | } // name.entity // 119 | .highlight .ne { 120 | color: #cb4b16; 121 | } // name.exception // 122 | .highlight .nf { 123 | color: #268bd2; 124 | } // name.function // 125 | .highlight .nl { 126 | color: #555; 127 | } // name.label // 128 | .highlight .nn { 129 | color: #93a1a1; 130 | } // name.namespace // 131 | .highlight .nx { 132 | color: #555; 133 | } // name.other // 134 | .highlight .py { 135 | color: #93a1a1; 136 | } // name.property // 137 | .highlight .nt { 138 | color: #268bd2; 139 | } // name.tag // 140 | .highlight .nv { 141 | color: #268bd2; 142 | } // name.variable // 143 | .highlight .ow { 144 | color: #859900; 145 | } // operator.word // 146 | .highlight .w { 147 | color: #93a1a1; 148 | } // text.whitespace // 149 | .highlight .mf { 150 | color: #2aa198; 151 | } // literal.number.float // 152 | .highlight .mh { 153 | color: #2aa198; 154 | } // literal.number.hex // 155 | .highlight .mi { 156 | color: #2aa198; 157 | } // literal.number.integer // 158 | .highlight .mo { 159 | color: #2aa198; 160 | } // literal.number.oct // 161 | .highlight .sb { 162 | color: #586e75; 163 | } // literal.string.backtick // 164 | .highlight .sc { 165 | color: #2aa198; 166 | } // literal.string.char // 167 | .highlight .sd { 168 | color: #93a1a1; 169 | } // literal.string.doc // 170 | .highlight .s2 { 171 | color: #2aa198; 172 | } // literal.string.double // 173 | .highlight .se { 174 | color: #cb4b16; 175 | } // literal.string.escape // 176 | .highlight .sh { 177 | color: #93a1a1; 178 | } // literal.string.heredoc // 179 | .highlight .si { 180 | color: #2aa198; 181 | } // literal.string.interpol // 182 | .highlight .sx { 183 | color: #2aa198; 184 | } // literal.string.other // 185 | .highlight .sr { 186 | color: #dc322f; 187 | } // literal.string.regex // 188 | .highlight .s1 { 189 | color: #2aa198; 190 | } // literal.string.single // 191 | .highlight .ss { 192 | color: #2aa198; 193 | } // literal.string.symbol // 194 | .highlight .bp { 195 | color: #268bd2; 196 | } // name.builtin.pseudo // 197 | .highlight .vc { 198 | color: #268bd2; 199 | } // name.variable.class // 200 | .highlight .vg { 201 | color: #268bd2; 202 | } // name.variable.global // 203 | .highlight .vi { 204 | color: #268bd2; 205 | } // name.variable.instance // 206 | .highlight .il { 207 | color: #2aa198; 208 | } // literal.number.integer.long // 209 | -------------------------------------------------------------------------------- /docs/_sass/color_schemes/light.scss: -------------------------------------------------------------------------------- 1 | $color-scheme: light !default; 2 | $body-background-color: $white !default; 3 | $body-heading-color: $grey-dk-300 !default; 4 | $body-text-color: $grey-dk-100 !default; 5 | $link-color: $purple-000 !default; 6 | $nav-child-link-color: $grey-dk-100 !default; 7 | $sidebar-color: $grey-lt-000 !default; 8 | $base-button-color: #f7f7f7 !default; 9 | $btn-primary-color: $purple-100 !default; 10 | $code-background-color: $grey-lt-000 !default; 11 | $feedback-color: darken($sidebar-color, 3%) !default; 12 | $table-background-color: $white !default; 13 | $search-background-color: $white !default; 14 | $search-result-preview-color: $grey-dk-000 !default; 15 | 16 | @import "./vendor/OneLightJekyll/syntax"; 17 | -------------------------------------------------------------------------------- /docs/_sass/content.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | // Styles for rendered markdown in the .main-content container 4 | // stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity, selector-max-id 5 | 6 | .main-content { 7 | line-height: $content-line-height; 8 | 9 | ol, 10 | ul, 11 | dl, 12 | pre, 13 | address, 14 | blockquote, 15 | .table-wrapper { 16 | margin-top: 0.5em; 17 | } 18 | 19 | a { 20 | overflow: hidden; 21 | text-overflow: ellipsis; 22 | } 23 | 24 | ul, 25 | ol { 26 | padding-left: 1.5em; 27 | } 28 | 29 | li { 30 | .highlight { 31 | margin-top: $sp-1; 32 | } 33 | } 34 | 35 | ol { 36 | list-style-type: none; 37 | counter-reset: step-counter; 38 | 39 | > li { 40 | position: relative; 41 | 42 | &::before { 43 | position: absolute; 44 | top: 0.2em; 45 | left: -1.6em; 46 | color: $grey-dk-000; 47 | content: counter(step-counter); 48 | counter-increment: step-counter; 49 | @include fs-3; 50 | 51 | @include mq(sm) { 52 | top: 0.11em; 53 | } 54 | } 55 | 56 | ol { 57 | counter-reset: sub-counter; 58 | 59 | > li { 60 | &::before { 61 | content: counter(sub-counter, lower-alpha); 62 | counter-increment: sub-counter; 63 | } 64 | } 65 | } 66 | } 67 | } 68 | 69 | ul { 70 | list-style: none; 71 | 72 | > li { 73 | &::before { 74 | position: absolute; 75 | margin-left: -1.4em; 76 | color: $grey-dk-000; 77 | content: "•"; 78 | } 79 | } 80 | } 81 | 82 | .task-list-item { 83 | &::before { 84 | content: ""; 85 | } 86 | } 87 | 88 | .task-list-item-checkbox { 89 | margin-right: 0.6em; 90 | margin-left: -1.4em; 91 | 92 | // The same margin-left is used above for ul > li::before 93 | } 94 | 95 | hr + * { 96 | margin-top: 0; 97 | } 98 | 99 | h1:first-of-type { 100 | margin-top: 0.5em; 101 | } 102 | 103 | dl { 104 | display: grid; 105 | grid-template: auto / 10em 1fr; 106 | } 107 | 108 | dt, 109 | dd { 110 | margin: 0.25em 0; 111 | } 112 | 113 | dt { 114 | grid-column: 1; 115 | font-weight: 500; 116 | text-align: right; 117 | 118 | &::after { 119 | content: ":"; 120 | } 121 | } 122 | 123 | dd { 124 | grid-column: 2; 125 | margin-bottom: 0; 126 | margin-left: 1em; 127 | 128 | blockquote, 129 | div, 130 | dl, 131 | dt, 132 | h1, 133 | h2, 134 | h3, 135 | h4, 136 | h5, 137 | h6, 138 | li, 139 | ol, 140 | p, 141 | pre, 142 | table, 143 | ul, 144 | .table-wrapper { 145 | &:first-child { 146 | margin-top: 0; 147 | } 148 | } 149 | } 150 | 151 | dd, 152 | ol, 153 | ul { 154 | dl:first-child { 155 | dt:first-child, 156 | dd:nth-child(2) { 157 | margin-top: 0; 158 | } 159 | } 160 | } 161 | 162 | .anchor-heading { 163 | position: absolute; 164 | right: -$sp-4; 165 | width: $sp-5; 166 | height: 100%; 167 | padding-right: $sp-1; 168 | padding-left: $sp-1; 169 | overflow: visible; 170 | 171 | @include mq(md) { 172 | right: auto; 173 | left: -$sp-5; 174 | } 175 | 176 | svg { 177 | display: inline-block; 178 | width: 100%; 179 | height: 100%; 180 | color: $link-color; 181 | visibility: hidden; 182 | } 183 | } 184 | 185 | .anchor-heading:hover, 186 | .anchor-heading:focus, 187 | h1:hover > .anchor-heading, 188 | h2:hover > .anchor-heading, 189 | h3:hover > .anchor-heading, 190 | h4:hover > .anchor-heading, 191 | h5:hover > .anchor-heading, 192 | h6:hover > .anchor-heading { 193 | svg { 194 | visibility: visible; 195 | } 196 | } 197 | 198 | summary { 199 | cursor: pointer; 200 | } 201 | 202 | h1, 203 | h2, 204 | h3, 205 | h4, 206 | h5, 207 | h6, 208 | #toctitle { 209 | position: relative; 210 | margin-top: 1.5em; 211 | margin-bottom: 0.25em; 212 | 213 | + table, 214 | + .table-wrapper, 215 | + .code-example, 216 | + .highlighter-rouge, 217 | + .sectionbody .listingblock { 218 | margin-top: 1em; 219 | } 220 | 221 | + p:not(.label) { 222 | margin-top: 0; 223 | } 224 | } 225 | 226 | > h1:first-child, 227 | > h2:first-child, 228 | > h3:first-child, 229 | > h4:first-child, 230 | > h5:first-child, 231 | > h6:first-child, 232 | > .sect1:first-child > h2, 233 | > .sect2:first-child > h3, 234 | > .sect3:first-child > h4, 235 | > .sect4:first-child > h5, 236 | > .sect5:first-child > h6 { 237 | margin-top: $sp-2; 238 | } 239 | } 240 | -------------------------------------------------------------------------------- /docs/_sass/custom/custom.scss: -------------------------------------------------------------------------------- 1 | // custom SCSS (or CSS) goes here 2 | -------------------------------------------------------------------------------- /docs/_sass/custom/setup.scss: -------------------------------------------------------------------------------- 1 | // custom setup code goes here 2 | -------------------------------------------------------------------------------- /docs/_sass/labels.scss: -------------------------------------------------------------------------------- 1 | // Labels (not the form kind) 2 | 3 | // this :not() prevents a style clash with Mermaid.js's 4 | // diagram labels, which also use .label 5 | // for more, see https://github.com/just-the-docs/just-the-docs/issues/1272 6 | // and the accompanying PR 7 | .label:not(g), 8 | .label-blue:not(g) { 9 | display: inline-block; 10 | padding: 0.16em 0.56em; 11 | margin-right: $sp-2; 12 | margin-left: $sp-2; 13 | color: $white; 14 | text-transform: uppercase; 15 | vertical-align: middle; 16 | background-color: $blue-100; 17 | @include fs-2; 18 | 19 | border-radius: 12px; 20 | } 21 | 22 | .label-green:not(g) { 23 | background-color: $green-200; 24 | } 25 | 26 | .label-purple:not(g) { 27 | background-color: $purple-100; 28 | } 29 | 30 | .label-red:not(g) { 31 | background-color: $red-200; 32 | } 33 | 34 | .label-yellow:not(g) { 35 | color: $grey-dk-200; 36 | background-color: $yellow-200; 37 | } 38 | -------------------------------------------------------------------------------- /docs/_sass/layout.scss: -------------------------------------------------------------------------------- 1 | // The basic two column layout 2 | 3 | .side-bar { 4 | z-index: 0; 5 | display: flex; 6 | flex-wrap: wrap; 7 | background-color: $sidebar-color; 8 | 9 | @include mq(md) { 10 | flex-flow: column nowrap; 11 | position: fixed; 12 | width: $nav-width-md; 13 | height: 100%; 14 | border-right: $border $border-color; 15 | align-items: flex-end; 16 | } 17 | 18 | @include mq(lg) { 19 | width: calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width}); 20 | min-width: $nav-width; 21 | } 22 | } 23 | 24 | .main { 25 | @include mq(md) { 26 | position: relative; 27 | max-width: $content-width; 28 | margin-left: $nav-width-md; 29 | } 30 | 31 | @include mq(lg) { 32 | // stylelint-disable function-name-case 33 | // disable for Max(), we want to use the CSS max() function 34 | margin-left: Max( 35 | #{$nav-width}, 36 | calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width}) 37 | ); 38 | // stylelint-enable function-name-case 39 | } 40 | } 41 | 42 | .main-content-wrap { 43 | @include container; 44 | 45 | padding-top: $gutter-spacing-sm; 46 | padding-bottom: $gutter-spacing-sm; 47 | 48 | @include mq(md) { 49 | padding-top: $gutter-spacing; 50 | padding-bottom: $gutter-spacing; 51 | } 52 | } 53 | 54 | .main-header { 55 | z-index: 0; 56 | display: none; 57 | background-color: $sidebar-color; 58 | 59 | @include mq(md) { 60 | display: flex; 61 | justify-content: space-between; 62 | height: $header-height; 63 | background-color: $body-background-color; 64 | border-bottom: $border $border-color; 65 | } 66 | 67 | &.nav-open { 68 | display: block; 69 | 70 | @include mq(md) { 71 | display: flex; 72 | } 73 | } 74 | } 75 | 76 | .site-nav, 77 | .site-header, 78 | .site-footer { 79 | width: 100%; 80 | 81 | @include mq(lg) { 82 | width: $nav-width; 83 | } 84 | } 85 | 86 | .site-nav { 87 | display: none; 88 | 89 | &.nav-open { 90 | display: block; 91 | } 92 | 93 | @include mq(md) { 94 | display: block; 95 | padding-top: $sp-8; 96 | padding-bottom: $gutter-spacing-sm; 97 | overflow-y: auto; 98 | flex: 1 1 auto; 99 | } 100 | } 101 | 102 | .site-header { 103 | display: flex; 104 | min-height: $header-height; 105 | align-items: center; 106 | 107 | @include mq(md) { 108 | height: $header-height; 109 | max-height: $header-height; 110 | border-bottom: $border $border-color; 111 | } 112 | } 113 | 114 | .site-title { 115 | @include container; 116 | 117 | flex-grow: 1; 118 | display: flex; 119 | height: 100%; 120 | align-items: center; 121 | padding-top: $sp-3; 122 | padding-bottom: $sp-3; 123 | color: $body-heading-color; 124 | @include fs-6; 125 | 126 | @include mq(md) { 127 | padding-top: $sp-2; 128 | padding-bottom: $sp-2; 129 | } 130 | } 131 | 132 | @if variable-exists(logo) { 133 | .site-logo { 134 | width: 100%; 135 | height: 100%; 136 | background-image: url($logo); 137 | background-repeat: no-repeat; 138 | background-position: left center; 139 | background-size: contain; 140 | } 141 | } 142 | 143 | .site-button { 144 | display: flex; 145 | height: 100%; 146 | padding: $gutter-spacing-sm; 147 | align-items: center; 148 | } 149 | 150 | @include mq(md) { 151 | .site-header .site-button { 152 | display: none; 153 | } 154 | } 155 | 156 | .site-title:hover { 157 | background-image: linear-gradient( 158 | -90deg, 159 | rgba($feedback-color, 1) 0%, 160 | rgba($feedback-color, 0.8) 80%, 161 | rgba($feedback-color, 0) 100% 162 | ); 163 | } 164 | 165 | .site-button:hover { 166 | background-image: linear-gradient( 167 | -90deg, 168 | rgba($feedback-color, 1) 0%, 169 | rgba($feedback-color, 0.8) 100% 170 | ); 171 | } 172 | 173 | // stylelint-disable selector-max-type 174 | 175 | body { 176 | position: relative; 177 | padding-bottom: $sp-10; 178 | overflow-y: scroll; 179 | 180 | @include mq(md) { 181 | position: static; 182 | padding-bottom: 0; 183 | } 184 | } 185 | 186 | // stylelint-enable selector-max-type 187 | 188 | .site-footer { 189 | @include container; 190 | 191 | position: absolute; 192 | bottom: 0; 193 | left: 0; 194 | padding-top: $sp-4; 195 | padding-bottom: $sp-4; 196 | color: $grey-dk-000; 197 | @include fs-2; 198 | 199 | @include mq(md) { 200 | position: static; 201 | justify-self: end; 202 | } 203 | } 204 | 205 | .icon { 206 | width: $sp-5; 207 | height: $sp-5; 208 | color: $link-color; 209 | } 210 | -------------------------------------------------------------------------------- /docs/_sass/modules.scss: -------------------------------------------------------------------------------- 1 | // Import external dependencies 2 | @import "./vendor/normalize.scss/normalize"; 3 | 4 | // Modules 5 | @import "./base"; 6 | @import "./layout"; 7 | @import "./content"; 8 | @import "./navigation"; 9 | @import "./typography"; 10 | @import "./labels"; 11 | @import "./buttons"; 12 | @import "./search"; 13 | @import "./tables"; 14 | @import "./code"; 15 | @import "./utilities/utilities"; 16 | @import "./print"; 17 | @import "./skiptomain"; 18 | -------------------------------------------------------------------------------- /docs/_sass/navigation.scss: -------------------------------------------------------------------------------- 1 | // Main nav, breadcrumb, etc... 2 | // stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity 3 | 4 | .nav-list { 5 | padding: 0; 6 | margin-top: 0; 7 | margin-bottom: 0; 8 | list-style: none; 9 | 10 | .nav-list-item { 11 | @include fs-4; 12 | 13 | position: relative; 14 | margin: 0; 15 | 16 | @include mq(md) { 17 | @include fs-3; 18 | } 19 | 20 | .nav-list-link { 21 | display: block; 22 | min-height: $nav-list-item-height-sm; 23 | padding-top: $sp-1; 24 | padding-bottom: $sp-1; 25 | line-height: #{$nav-list-item-height-sm - 2 * $sp-1}; 26 | @if $nav-list-expander-right { 27 | padding-right: $nav-list-item-height-sm; 28 | padding-left: $gutter-spacing-sm; 29 | } @else { 30 | padding-right: $gutter-spacing-sm; 31 | padding-left: $nav-list-item-height-sm; 32 | } 33 | 34 | @include mq(md) { 35 | min-height: $nav-list-item-height; 36 | line-height: #{$nav-list-item-height - 2 * $sp-1}; 37 | @if $nav-list-expander-right { 38 | padding-right: $nav-list-item-height; 39 | padding-left: $gutter-spacing; 40 | } @else { 41 | padding-right: $gutter-spacing; 42 | padding-left: $nav-list-item-height; 43 | } 44 | } 45 | 46 | &.external > svg { 47 | width: $sp-4; 48 | height: $sp-4; 49 | vertical-align: text-bottom; 50 | } 51 | 52 | &.active { 53 | font-weight: 600; 54 | text-decoration: none; 55 | } 56 | 57 | &:hover, 58 | &.active { 59 | background-image: linear-gradient( 60 | -90deg, 61 | rgba($feedback-color, 1) 0%, 62 | rgba($feedback-color, 0.8) 80%, 63 | rgba($feedback-color, 0) 100% 64 | ); 65 | } 66 | } 67 | 68 | .nav-list-expander { 69 | position: absolute; 70 | @if $nav-list-expander-right { 71 | right: 0; 72 | } 73 | 74 | width: $nav-list-item-height-sm; 75 | height: $nav-list-item-height-sm; 76 | padding: #{$nav-list-item-height-sm * 0.25}; 77 | color: $link-color; 78 | 79 | @include mq(md) { 80 | width: $nav-list-item-height; 81 | height: $nav-list-item-height; 82 | padding: #{$nav-list-item-height * 0.25}; 83 | } 84 | 85 | &:hover { 86 | background-image: linear-gradient( 87 | -90deg, 88 | rgba($feedback-color, 1) 0%, 89 | rgba($feedback-color, 0.8) 100% 90 | ); 91 | } 92 | 93 | @if $nav-list-expander-right { 94 | svg { 95 | transform: rotate(90deg); 96 | } 97 | } 98 | } 99 | 100 | > .nav-list { 101 | display: none; 102 | padding-left: $sp-3; 103 | list-style: none; 104 | 105 | .nav-list-item { 106 | position: relative; 107 | 108 | .nav-list-link { 109 | color: $nav-child-link-color; 110 | } 111 | 112 | .nav-list-expander { 113 | color: $nav-child-link-color; 114 | } 115 | } 116 | } 117 | 118 | &.active { 119 | > .nav-list-expander svg { 120 | @if $nav-list-expander-right { 121 | transform: rotate(-90deg); 122 | } @else { 123 | transform: rotate(90deg); 124 | } 125 | } 126 | 127 | > .nav-list { 128 | display: block; 129 | } 130 | } 131 | } 132 | } 133 | 134 | .nav-category { 135 | padding: $sp-2 $gutter-spacing-sm; 136 | font-weight: 600; 137 | text-align: start; 138 | text-transform: uppercase; 139 | border-bottom: $border $border-color; 140 | @include fs-2; 141 | 142 | @include mq(md) { 143 | padding: $sp-2 $gutter-spacing; 144 | margin-top: $gutter-spacing-sm; 145 | text-align: start; 146 | 147 | &:first-child { 148 | margin-top: 0; 149 | } 150 | } 151 | } 152 | 153 | .nav-list.nav-category-list { 154 | > .nav-list-item { 155 | margin: 0; 156 | 157 | > .nav-list { 158 | padding: 0; 159 | 160 | > .nav-list-item { 161 | > .nav-list-link { 162 | color: $link-color; 163 | } 164 | 165 | > .nav-list-expander { 166 | color: $link-color; 167 | } 168 | } 169 | } 170 | } 171 | } 172 | 173 | // Aux nav 174 | 175 | .aux-nav { 176 | height: 100%; 177 | overflow-x: auto; 178 | @include fs-2; 179 | 180 | .aux-nav-list { 181 | display: flex; 182 | height: 100%; 183 | padding: 0; 184 | margin: 0; 185 | list-style: none; 186 | } 187 | 188 | .aux-nav-list-item { 189 | display: inline-block; 190 | height: 100%; 191 | padding: 0; 192 | margin: 0; 193 | } 194 | 195 | @include mq(md) { 196 | padding-right: $gutter-spacing-sm; 197 | } 198 | } 199 | 200 | // Breadcrumb nav 201 | 202 | .breadcrumb-nav { 203 | @include mq(md) { 204 | margin-top: -$sp-4; 205 | } 206 | } 207 | 208 | .breadcrumb-nav-list { 209 | padding-left: 0; 210 | margin-bottom: $sp-3; 211 | list-style: none; 212 | } 213 | 214 | .breadcrumb-nav-list-item { 215 | display: table-cell; 216 | @include fs-2; 217 | 218 | &::before { 219 | display: none; 220 | } 221 | 222 | &::after { 223 | display: inline-block; 224 | margin-right: $sp-2; 225 | margin-left: $sp-2; 226 | color: $grey-dk-000; 227 | content: "/"; 228 | } 229 | 230 | &:last-child { 231 | &::after { 232 | content: ""; 233 | } 234 | } 235 | } 236 | -------------------------------------------------------------------------------- /docs/_sass/print.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable selector-max-specificity, selector-max-id, selector-max-type, selector-no-qualifying-type 2 | 3 | @media print { 4 | .site-footer, 5 | .site-button, 6 | #edit-this-page, 7 | #back-to-top, 8 | .site-nav, 9 | .main-header { 10 | display: none !important; 11 | } 12 | 13 | .side-bar { 14 | width: 100%; 15 | height: auto; 16 | border-right: 0 !important; 17 | } 18 | 19 | .site-header { 20 | border-bottom: 1px solid $border-color; 21 | } 22 | 23 | .site-title { 24 | font-size: 1rem !important; 25 | font-weight: 700 !important; 26 | } 27 | 28 | .text-small { 29 | font-size: 8pt !important; 30 | } 31 | 32 | pre.highlight { 33 | border: 1px solid $border-color; 34 | } 35 | 36 | .main { 37 | max-width: none; 38 | margin-left: 0; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /docs/_sass/search.scss: -------------------------------------------------------------------------------- 1 | // Search input and autocomplete 2 | 3 | .search { 4 | position: relative; 5 | z-index: 2; 6 | flex-grow: 1; 7 | height: $sp-10; 8 | padding: $sp-2; 9 | transition: padding linear #{$transition-duration * 0.5}; 10 | 11 | @include mq(md) { 12 | position: relative !important; 13 | width: auto !important; 14 | height: 100% !important; 15 | padding: 0; 16 | transition: none; 17 | } 18 | } 19 | 20 | .search-input-wrap { 21 | position: relative; 22 | z-index: 1; 23 | height: $sp-8; 24 | overflow: hidden; 25 | border-radius: $border-radius; 26 | box-shadow: 27 | 0 1px 2px rgba(0, 0, 0, 0.12), 28 | 0 3px 10px rgba(0, 0, 0, 0.08); 29 | transition: height linear #{$transition-duration * 0.5}; 30 | 31 | @include mq(md) { 32 | position: absolute; 33 | width: 100%; 34 | max-width: $search-results-width; 35 | height: 100% !important; 36 | border-radius: 0; 37 | box-shadow: none; 38 | transition: width ease $transition-duration; 39 | } 40 | } 41 | 42 | .search-input { 43 | position: absolute; 44 | width: 100%; 45 | height: 100%; 46 | padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing-sm + $sp-5}; 47 | font-size: 1rem; 48 | color: $body-text-color; 49 | background-color: $search-background-color; 50 | border-top: 0; 51 | border-right: 0; 52 | border-bottom: 0; 53 | border-left: 0; 54 | border-radius: 0; 55 | 56 | @include mq(md) { 57 | padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing + $sp-5}; 58 | font-size: 0.875rem; 59 | background-color: $body-background-color; 60 | transition: padding-left linear #{$transition-duration * 0.5}; 61 | } 62 | 63 | &:focus { 64 | outline: 0; 65 | 66 | + .search-label .search-icon { 67 | color: $link-color; 68 | } 69 | } 70 | } 71 | 72 | .search-label { 73 | position: absolute; 74 | display: flex; 75 | height: 100%; 76 | padding-left: $gutter-spacing-sm; 77 | 78 | @include mq(md) { 79 | padding-left: $gutter-spacing; 80 | transition: padding-left linear #{$transition-duration * 0.5}; 81 | } 82 | 83 | .search-icon { 84 | width: #{$sp-4 * 1.2}; 85 | height: #{$sp-4 * 1.2}; 86 | align-self: center; 87 | color: $grey-dk-000; 88 | } 89 | } 90 | 91 | .search-results { 92 | position: absolute; 93 | left: 0; 94 | display: none; 95 | width: 100%; 96 | max-height: calc(100% - #{$sp-10}); 97 | overflow-y: auto; 98 | background-color: $search-background-color; 99 | border-bottom-right-radius: $border-radius; 100 | border-bottom-left-radius: $border-radius; 101 | box-shadow: 102 | 0 1px 2px rgba(0, 0, 0, 0.12), 103 | 0 3px 10px rgba(0, 0, 0, 0.08); 104 | 105 | @include mq(md) { 106 | top: 100%; 107 | width: $search-results-width; 108 | max-height: calc(100vh - 200%) !important; 109 | } 110 | } 111 | 112 | .search-results-list { 113 | padding-left: 0; 114 | margin-bottom: $sp-1; 115 | list-style: none; 116 | @include fs-4; 117 | 118 | @include mq(md) { 119 | @include fs-3; 120 | } 121 | } 122 | 123 | .search-results-list-item { 124 | padding: 0; 125 | margin: 0; 126 | } 127 | 128 | .search-result { 129 | display: block; 130 | padding: $sp-1 $sp-3; 131 | 132 | &:hover, 133 | &.active { 134 | background-color: $feedback-color; 135 | } 136 | } 137 | 138 | .search-result-title { 139 | display: block; 140 | padding-top: $sp-2; 141 | padding-bottom: $sp-2; 142 | 143 | @include mq(sm) { 144 | display: inline-block; 145 | width: 40%; 146 | padding-right: $sp-2; 147 | vertical-align: top; 148 | } 149 | } 150 | 151 | .search-result-doc { 152 | display: flex; 153 | align-items: center; 154 | word-wrap: break-word; 155 | 156 | &.search-result-doc-parent { 157 | opacity: 0.5; 158 | @include fs-3; 159 | 160 | @include mq(md) { 161 | @include fs-2; 162 | } 163 | } 164 | 165 | .search-result-icon { 166 | width: $sp-4; 167 | height: $sp-4; 168 | margin-right: $sp-2; 169 | color: $link-color; 170 | flex-shrink: 0; 171 | } 172 | 173 | .search-result-doc-title { 174 | overflow: auto; 175 | } 176 | } 177 | 178 | .search-result-section { 179 | margin-left: #{$sp-4 + $sp-2}; 180 | word-wrap: break-word; 181 | } 182 | 183 | .search-result-rel-url { 184 | display: block; 185 | margin-left: #{$sp-4 + $sp-2}; 186 | overflow: hidden; 187 | color: $search-result-preview-color; 188 | text-overflow: ellipsis; 189 | white-space: nowrap; 190 | @include fs-1; 191 | } 192 | 193 | .search-result-previews { 194 | display: block; 195 | padding-top: $sp-2; 196 | padding-bottom: $sp-2; 197 | padding-left: $sp-4; 198 | margin-left: $sp-2; 199 | color: $search-result-preview-color; 200 | word-wrap: break-word; 201 | border-left: $border; 202 | border-left-color: $border-color; 203 | @include fs-2; 204 | 205 | @include mq(sm) { 206 | display: inline-block; 207 | width: 60%; 208 | padding-left: $sp-2; 209 | margin-left: 0; 210 | vertical-align: top; 211 | } 212 | } 213 | 214 | .search-result-preview + .search-result-preview { 215 | margin-top: $sp-1; 216 | } 217 | 218 | .search-result-highlight { 219 | font-weight: bold; 220 | } 221 | 222 | .search-no-result { 223 | padding: $sp-2 $sp-3; 224 | @include fs-3; 225 | } 226 | 227 | .search-button { 228 | position: fixed; 229 | right: $sp-4; 230 | bottom: $sp-4; 231 | display: flex; 232 | width: $sp-9; 233 | height: $sp-9; 234 | background-color: $search-background-color; 235 | border: 1px solid rgba($link-color, 0.3); 236 | border-radius: #{$sp-9 * 0.5}; 237 | box-shadow: 238 | 0 1px 2px rgba(0, 0, 0, 0.12), 239 | 0 3px 10px rgba(0, 0, 0, 0.08); 240 | align-items: center; 241 | justify-content: center; 242 | } 243 | 244 | .search-overlay { 245 | position: fixed; 246 | top: 0; 247 | left: 0; 248 | z-index: 1; 249 | width: 0; 250 | height: 0; 251 | background-color: rgba(0, 0, 0, 0.3); 252 | opacity: 0; 253 | transition: 254 | opacity ease $transition-duration, 255 | width 0s $transition-duration, 256 | height 0s $transition-duration; 257 | } 258 | 259 | .search-active { 260 | .search { 261 | position: fixed; 262 | top: 0; 263 | left: 0; 264 | width: 100%; 265 | height: 100%; 266 | padding: 0; 267 | } 268 | 269 | .search-input-wrap { 270 | height: $sp-10; 271 | border-radius: 0; 272 | 273 | @include mq(md) { 274 | width: $search-results-width; 275 | box-shadow: 276 | 0 1px 2px rgba(0, 0, 0, 0.12), 277 | 0 3px 10px rgba(0, 0, 0, 0.08); 278 | } 279 | } 280 | 281 | .search-input { 282 | background-color: $search-background-color; 283 | 284 | @include mq(md) { 285 | padding-left: 2.3rem; 286 | } 287 | } 288 | 289 | .search-label { 290 | @include mq(md) { 291 | padding-left: 0.6rem; 292 | } 293 | } 294 | 295 | .search-results { 296 | display: block; 297 | } 298 | 299 | .search-overlay { 300 | width: 100%; 301 | height: 100%; 302 | opacity: 1; 303 | transition: 304 | opacity ease $transition-duration, 305 | width 0s, 306 | height 0s; 307 | } 308 | 309 | @include mq(md) { 310 | .main { 311 | position: fixed; 312 | right: 0; 313 | left: 0; 314 | } 315 | } 316 | 317 | .main-header { 318 | padding-top: $sp-10; 319 | 320 | @include mq(md) { 321 | padding-top: 0; 322 | } 323 | } 324 | } 325 | -------------------------------------------------------------------------------- /docs/_sass/skiptomain.scss: -------------------------------------------------------------------------------- 1 | // Skipnav 2 | // Skip to main content 3 | 4 | a.skip-to-main { 5 | left: -999px; 6 | position: absolute; 7 | top: auto; 8 | width: 1px; 9 | height: 1px; 10 | overflow: hidden; 11 | z-index: -999; 12 | } 13 | 14 | a.skip-to-main:focus, 15 | a.skip-to-main:active { 16 | color: $link-color; 17 | background-color: $body-background-color; 18 | left: auto; 19 | top: auto; 20 | width: 30%; 21 | height: auto; 22 | overflow: auto; 23 | margin: 10px 35%; 24 | padding: 5px; 25 | border-radius: 15px; 26 | border: 4px solid $btn-primary-color; 27 | text-align: center; 28 | font-size: 1.2em; 29 | z-index: 999; 30 | } 31 | -------------------------------------------------------------------------------- /docs/_sass/support/_variables.scss: -------------------------------------------------------------------------------- 1 | // Typography 2 | 3 | // prettier-ignore 4 | $body-font-family: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", 5 | roboto, "Helvetica Neue", arial, sans-serif, "Segoe UI Emoji" !default; 6 | $mono-font-family: "SFMono-Regular", menlo, consolas, monospace !default; 7 | $root-font-size: 16px !default; // DEPRECATED: previously base font-size for rems 8 | $body-line-height: 1.4 !default; 9 | $content-line-height: 1.6 !default; 10 | $body-heading-line-height: 1.25 !default; 11 | 12 | // Font size 13 | // `-sm` suffix is the size at the small (and above) media query 14 | 15 | $font-size-1: 0.5625rem !default; 16 | $font-size-1-sm: 0.625rem !default; 17 | $font-size-2: 0.6875rem !default; // h4 - uppercased!, h6 not uppercased, text-small 18 | $font-size-3: 0.75rem !default; // h5 19 | $font-size-4: 0.875rem !default; 20 | $font-size-5: 1rem !default; // h3 21 | $font-size-6: 1.125rem !default; // h2 22 | $font-size-7: 1.5rem !default; 23 | $font-size-8: 2rem !default; // h1 24 | $font-size-9: 2.25rem !default; 25 | $font-size-10: 2.625rem !default; 26 | $font-size-10-sm: 3rem !default; 27 | 28 | // Colors 29 | 30 | $white: #fff !default; 31 | $grey-dk-000: #959396 !default; 32 | $grey-dk-100: #5c5962 !default; 33 | $grey-dk-200: #44434d !default; 34 | $grey-dk-250: #302d36 !default; 35 | $grey-dk-300: #27262b !default; 36 | $grey-lt-000: #f5f6fa !default; 37 | $grey-lt-100: #eeebee !default; 38 | $grey-lt-200: #ecebed !default; 39 | $grey-lt-300: #e6e1e8 !default; 40 | $purple-000: #7253ed !default; 41 | $purple-100: #5e41d0 !default; 42 | $purple-200: #4e26af !default; 43 | $purple-300: #381885 !default; 44 | $blue-000: #2c84fa !default; 45 | $blue-100: #2869e6 !default; 46 | $blue-200: #264caf !default; 47 | $blue-300: #183385 !default; 48 | $green-000: #41d693 !default; 49 | $green-100: #11b584 !default; 50 | $green-200: #009c7b !default; 51 | $green-300: #026e57 !default; 52 | $yellow-000: #ffeb82 !default; 53 | $yellow-100: #fadf50 !default; 54 | $yellow-200: #f7d12e !default; 55 | $yellow-300: #e7af06 !default; 56 | $red-000: #f77e7e !default; 57 | $red-100: #f96e65 !default; 58 | $red-200: #e94c4c !default; 59 | $red-300: #dd2e2e !default; 60 | 61 | // Spacing 62 | 63 | $spacing-unit: 1rem; // 1rem == 16px 64 | 65 | $spacers: ( 66 | sp-0: 0, 67 | sp-1: $spacing-unit * 0.25, 68 | sp-2: $spacing-unit * 0.5, 69 | sp-3: $spacing-unit * 0.75, 70 | sp-4: $spacing-unit, 71 | sp-5: $spacing-unit * 1.5, 72 | sp-6: $spacing-unit * 2, 73 | sp-7: $spacing-unit * 2.5, 74 | sp-8: $spacing-unit * 3, 75 | sp-9: $spacing-unit * 3.5, 76 | sp-10: $spacing-unit * 4, 77 | ) !default; 78 | $sp-1: map-get($spacers, sp-1) !default; // 0.25 rem == 4px 79 | $sp-2: map-get($spacers, sp-2) !default; // 0.5 rem == 8px 80 | $sp-3: map-get($spacers, sp-3) !default; // 0.75 rem == 12px 81 | $sp-4: map-get($spacers, sp-4) !default; // 1 rem == 16px 82 | $sp-5: map-get($spacers, sp-5) !default; // 1.5 rem == 24px 83 | $sp-6: map-get($spacers, sp-6) !default; // 2 rem == 32px 84 | $sp-7: map-get($spacers, sp-7) !default; // 2.5 rem == 40px 85 | $sp-8: map-get($spacers, sp-8) !default; // 3 rem == 48px 86 | $sp-9: map-get($spacers, sp-9) !default; // 3.5 rem == 56px 87 | $sp-10: map-get($spacers, sp-10) !default; // 4 rem == 64px 88 | 89 | // Borders 90 | 91 | $border: 1px solid !default; 92 | $border-radius: 4px !default; 93 | $border-color: $grey-lt-100 !default; 94 | 95 | // Grid system 96 | 97 | $gutter-spacing: $sp-6 !default; 98 | $gutter-spacing-sm: $sp-4 !default; 99 | $nav-width: 16.5rem !default; 100 | $nav-width-md: 15.5rem !default; 101 | $nav-list-item-height: $sp-6 !default; 102 | $nav-list-item-height-sm: $sp-8 !default; 103 | $nav-list-expander-right: true; 104 | $content-width: 50rem !default; 105 | $header-height: 3.75rem !default; 106 | $search-results-width: $content-width - $nav-width !default; 107 | $transition-duration: 400ms; 108 | 109 | // Media queries in pixels 110 | 111 | $media-queries: ( 112 | xs: 20rem, 113 | sm: 31.25rem, 114 | md: $content-width, 115 | lg: $content-width + $nav-width, 116 | xl: 87.5rem, 117 | ) !default; 118 | -------------------------------------------------------------------------------- /docs/_sass/support/mixins/_buttons.scss: -------------------------------------------------------------------------------- 1 | // Colored button 2 | 3 | @mixin btn-color($fg, $bg) { 4 | color: $fg; 5 | background-color: darken($bg, 2%); 6 | background-image: linear-gradient(lighten($bg, 5%), darken($bg, 2%)); 7 | box-shadow: 8 | 0 1px 3px rgba(0, 0, 0, 0.25), 9 | 0 4px 10px rgba(0, 0, 0, 0.12); 10 | 11 | &:hover, 12 | &.zeroclipboard-is-hover { 13 | color: $fg; 14 | background-color: darken($bg, 4%); 15 | background-image: linear-gradient((lighten($bg, 2%), darken($bg, 4%))); 16 | } 17 | 18 | &:active, 19 | &.selected, 20 | &.zeroclipboard-is-active { 21 | background-color: darken($bg, 5%); 22 | background-image: none; 23 | box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); 24 | } 25 | 26 | &.selected:hover { 27 | background-color: darken($bg, 10%); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /docs/_sass/support/mixins/_layout.scss: -------------------------------------------------------------------------------- 1 | // Media query 2 | 3 | // Media query mixin 4 | // Usage: 5 | // @include mq(md) { 6 | // ..medium and up styles 7 | // } 8 | @mixin mq($name) { 9 | // Retrieves the value from the key 10 | $value: map-get($media-queries, $name); 11 | 12 | // If the key exists in the map 13 | @if $value { 14 | // Prints a media query based on the value 15 | @media (min-width: $value) { 16 | @content; 17 | } 18 | } @else { 19 | @warn "No value could be retrieved from `#{$media-query}`. Please make sure it is defined in `$media-queries` map."; 20 | } 21 | } 22 | 23 | // Responsive container 24 | 25 | @mixin container { 26 | padding-right: $gutter-spacing-sm; 27 | padding-left: $gutter-spacing-sm; 28 | 29 | @include mq(md) { 30 | padding-right: $gutter-spacing; 31 | padding-left: $gutter-spacing; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /docs/_sass/support/mixins/_typography.scss: -------------------------------------------------------------------------------- 1 | @mixin fs-1 { 2 | font-size: $font-size-1 !important; 3 | 4 | @include mq(sm) { 5 | font-size: $font-size-1-sm !important; 6 | } 7 | } 8 | 9 | @mixin fs-2 { 10 | font-size: $font-size-2 !important; 11 | 12 | @include mq(sm) { 13 | font-size: $font-size-3 !important; 14 | } 15 | } 16 | 17 | @mixin fs-3 { 18 | font-size: $font-size-3 !important; 19 | 20 | @include mq(sm) { 21 | font-size: $font-size-4 !important; 22 | } 23 | } 24 | 25 | @mixin fs-4 { 26 | font-size: $font-size-4 !important; 27 | 28 | @include mq(sm) { 29 | font-size: $font-size-5 !important; 30 | } 31 | } 32 | 33 | @mixin fs-5 { 34 | font-size: $font-size-5 !important; 35 | 36 | @include mq(sm) { 37 | font-size: $font-size-6 !important; 38 | } 39 | } 40 | 41 | @mixin fs-6 { 42 | font-size: $font-size-6 !important; 43 | 44 | @include mq(sm) { 45 | font-size: $font-size-7 !important; 46 | line-height: $body-heading-line-height; 47 | } 48 | } 49 | 50 | @mixin fs-7 { 51 | font-size: $font-size-7 !important; 52 | line-height: $body-heading-line-height; 53 | 54 | @include mq(sm) { 55 | font-size: $font-size-8 !important; 56 | } 57 | } 58 | 59 | @mixin fs-8 { 60 | font-size: $font-size-8 !important; 61 | line-height: $body-heading-line-height; 62 | 63 | @include mq(sm) { 64 | font-size: $font-size-9 !important; 65 | } 66 | } 67 | 68 | @mixin fs-9 { 69 | font-size: $font-size-9 !important; 70 | line-height: $body-heading-line-height; 71 | 72 | @include mq(sm) { 73 | font-size: $font-size-10 !important; 74 | } 75 | } 76 | 77 | @mixin fs-10 { 78 | font-size: $font-size-10 !important; 79 | line-height: $body-heading-line-height; 80 | 81 | @include mq(sm) { 82 | font-size: $font-size-10-sm !important; 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /docs/_sass/support/mixins/mixins.scss: -------------------------------------------------------------------------------- 1 | @import "./layout"; 2 | @import "./buttons"; 3 | @import "./typography"; 4 | -------------------------------------------------------------------------------- /docs/_sass/support/support.scss: -------------------------------------------------------------------------------- 1 | @import "./variables"; 2 | @import "./mixins/mixins"; 3 | -------------------------------------------------------------------------------- /docs/_sass/tables.scss: -------------------------------------------------------------------------------- 1 | // Tables 2 | // stylelint-disable max-nesting-depth, selector-no-type, selector-max-type 3 | 4 | .table-wrapper { 5 | display: block; 6 | width: 100%; 7 | max-width: 100%; 8 | margin-bottom: $sp-5; 9 | overflow-x: auto; 10 | border-radius: $border-radius; 11 | box-shadow: 12 | 0 1px 2px rgba(0, 0, 0, 0.12), 13 | 0 3px 10px rgba(0, 0, 0, 0.08); 14 | } 15 | 16 | table { 17 | display: table; 18 | min-width: 100%; 19 | border-collapse: separate; 20 | } 21 | 22 | th, 23 | td { 24 | @include fs-3; 25 | 26 | min-width: 7.5rem; 27 | padding: $sp-2 $sp-3; 28 | background-color: $table-background-color; 29 | border-bottom: $border rgba($border-color, 0.5); 30 | border-left: $border $border-color; 31 | 32 | &:first-of-type { 33 | border-left: 0; 34 | } 35 | } 36 | 37 | tbody { 38 | tr { 39 | &:last-of-type { 40 | th, 41 | td { 42 | border-bottom: 0; 43 | } 44 | 45 | td { 46 | padding-bottom: $sp-3; 47 | } 48 | } 49 | } 50 | } 51 | 52 | thead { 53 | th { 54 | border-bottom: $border $border-color; 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /docs/_sass/typography.scss: -------------------------------------------------------------------------------- 1 | // Typography 2 | // stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id 3 | 4 | h1, 5 | .text-alpha { 6 | @include fs-8; 7 | 8 | font-weight: 300; 9 | } 10 | 11 | h2, 12 | .text-beta, 13 | #toctitle { 14 | @include fs-6; 15 | } 16 | 17 | h3, 18 | .text-gamma { 19 | @include fs-5; 20 | } 21 | 22 | h4, 23 | .text-delta { 24 | @include fs-2; 25 | 26 | font-weight: 400; 27 | text-transform: uppercase; 28 | letter-spacing: 0.1em; 29 | } 30 | 31 | h4 code { 32 | text-transform: none; 33 | } 34 | 35 | h5, 36 | .text-epsilon { 37 | @include fs-3; 38 | } 39 | 40 | h6, 41 | .text-zeta { 42 | @include fs-2; 43 | } 44 | 45 | .text-small { 46 | @include fs-2; 47 | } 48 | 49 | .text-mono { 50 | font-family: $mono-font-family !important; 51 | } 52 | 53 | .text-left { 54 | text-align: left !important; 55 | } 56 | 57 | .text-center { 58 | text-align: center !important; 59 | } 60 | 61 | .text-right { 62 | text-align: right !important; 63 | } 64 | -------------------------------------------------------------------------------- /docs/_sass/utilities/_colors.scss: -------------------------------------------------------------------------------- 1 | // Utility classes for colors 2 | 3 | // Text colors 4 | 5 | .text-grey-dk-000 { 6 | color: $grey-dk-000 !important; 7 | } 8 | 9 | .text-grey-dk-100 { 10 | color: $grey-dk-100 !important; 11 | } 12 | 13 | .text-grey-dk-200 { 14 | color: $grey-dk-200 !important; 15 | } 16 | 17 | .text-grey-dk-250 { 18 | color: $grey-dk-250 !important; 19 | } 20 | 21 | .text-grey-dk-300 { 22 | color: $grey-dk-300 !important; 23 | } 24 | 25 | .text-grey-lt-000 { 26 | color: $grey-lt-000 !important; 27 | } 28 | 29 | .text-grey-lt-100 { 30 | color: $grey-lt-100 !important; 31 | } 32 | 33 | .text-grey-lt-200 { 34 | color: $grey-lt-200 !important; 35 | } 36 | 37 | .text-grey-lt-300 { 38 | color: $grey-lt-300 !important; 39 | } 40 | 41 | .text-blue-000 { 42 | color: $blue-000 !important; 43 | } 44 | 45 | .text-blue-100 { 46 | color: $blue-100 !important; 47 | } 48 | 49 | .text-blue-200 { 50 | color: $blue-200 !important; 51 | } 52 | 53 | .text-blue-300 { 54 | color: $blue-300 !important; 55 | } 56 | 57 | .text-green-000 { 58 | color: $green-000 !important; 59 | } 60 | 61 | .text-green-100 { 62 | color: $green-100 !important; 63 | } 64 | 65 | .text-green-200 { 66 | color: $green-200 !important; 67 | } 68 | 69 | .text-green-300 { 70 | color: $green-300 !important; 71 | } 72 | 73 | .text-purple-000 { 74 | color: $purple-000 !important; 75 | } 76 | 77 | .text-purple-100 { 78 | color: $purple-100 !important; 79 | } 80 | 81 | .text-purple-200 { 82 | color: $purple-200 !important; 83 | } 84 | 85 | .text-purple-300 { 86 | color: $purple-300 !important; 87 | } 88 | 89 | .text-yellow-000 { 90 | color: $yellow-000 !important; 91 | } 92 | 93 | .text-yellow-100 { 94 | color: $yellow-100 !important; 95 | } 96 | 97 | .text-yellow-200 { 98 | color: $yellow-200 !important; 99 | } 100 | 101 | .text-yellow-300 { 102 | color: $yellow-300 !important; 103 | } 104 | 105 | .text-red-000 { 106 | color: $red-000 !important; 107 | } 108 | 109 | .text-red-100 { 110 | color: $red-100 !important; 111 | } 112 | 113 | .text-red-200 { 114 | color: $red-200 !important; 115 | } 116 | 117 | .text-red-300 { 118 | color: $red-300 !important; 119 | } 120 | 121 | // Background colors 122 | 123 | .bg-grey-dk-000 { 124 | background-color: $grey-dk-000 !important; 125 | } 126 | 127 | .bg-grey-dk-100 { 128 | background-color: $grey-dk-100 !important; 129 | } 130 | 131 | .bg-grey-dk-200 { 132 | background-color: $grey-dk-200 !important; 133 | } 134 | 135 | .bg-grey-dk-250 { 136 | background-color: $grey-dk-250 !important; 137 | } 138 | 139 | .bg-grey-dk-300 { 140 | background-color: $grey-dk-300 !important; 141 | } 142 | 143 | .bg-grey-lt-000 { 144 | background-color: $grey-lt-000 !important; 145 | } 146 | 147 | .bg-grey-lt-100 { 148 | background-color: $grey-lt-100 !important; 149 | } 150 | 151 | .bg-grey-lt-200 { 152 | background-color: $grey-lt-200 !important; 153 | } 154 | 155 | .bg-grey-lt-300 { 156 | background-color: $grey-lt-300 !important; 157 | } 158 | 159 | .bg-blue-000 { 160 | background-color: $blue-000 !important; 161 | } 162 | 163 | .bg-blue-100 { 164 | background-color: $blue-100 !important; 165 | } 166 | 167 | .bg-blue-200 { 168 | background-color: $blue-200 !important; 169 | } 170 | 171 | .bg-blue-300 { 172 | background-color: $blue-300 !important; 173 | } 174 | 175 | .bg-green-000 { 176 | background-color: $green-000 !important; 177 | } 178 | 179 | .bg-green-100 { 180 | background-color: $green-100 !important; 181 | } 182 | 183 | .bg-green-200 { 184 | background-color: $green-200 !important; 185 | } 186 | 187 | .bg-green-300 { 188 | background-color: $green-300 !important; 189 | } 190 | 191 | .bg-purple-000 { 192 | background-color: $purple-000 !important; 193 | } 194 | 195 | .bg-purple-100 { 196 | background-color: $purple-100 !important; 197 | } 198 | 199 | .bg-purple-200 { 200 | background-color: $purple-200 !important; 201 | } 202 | 203 | .bg-purple-300 { 204 | background-color: $purple-300 !important; 205 | } 206 | 207 | .bg-yellow-000 { 208 | background-color: $yellow-000 !important; 209 | } 210 | 211 | .bg-yellow-100 { 212 | background-color: $yellow-100 !important; 213 | } 214 | 215 | .bg-yellow-200 { 216 | background-color: $yellow-200 !important; 217 | } 218 | 219 | .bg-yellow-300 { 220 | background-color: $yellow-300 !important; 221 | } 222 | 223 | .bg-red-000 { 224 | background-color: $red-000 !important; 225 | } 226 | 227 | .bg-red-100 { 228 | background-color: $red-100 !important; 229 | } 230 | 231 | .bg-red-200 { 232 | background-color: $red-200 !important; 233 | } 234 | 235 | .bg-red-300 { 236 | background-color: $red-300 !important; 237 | } 238 | -------------------------------------------------------------------------------- /docs/_sass/utilities/_layout.scss: -------------------------------------------------------------------------------- 1 | // Utility classes for layout 2 | 3 | // Display 4 | 5 | .d-block { 6 | display: block !important; 7 | } 8 | 9 | .d-flex { 10 | display: flex !important; 11 | } 12 | 13 | .d-inline { 14 | display: inline !important; 15 | } 16 | 17 | .d-inline-block { 18 | display: inline-block !important; 19 | } 20 | 21 | .d-none { 22 | display: none !important; 23 | } 24 | 25 | @each $media-query in map-keys($media-queries) { 26 | @for $i from 1 through length($spacers) { 27 | @include mq($media-query) { 28 | $size: #{map-get($spacers, sp-#{$i - 1})}; 29 | $scale: #{$i - 1}; 30 | 31 | // .d-sm-block, .d-md-none, .d-lg-inline 32 | .d-#{$media-query}-block { 33 | display: block !important; 34 | } 35 | .d-#{$media-query}-flex { 36 | display: flex !important; 37 | } 38 | .d-#{$media-query}-inline { 39 | display: inline !important; 40 | } 41 | .d-#{$media-query}-inline-block { 42 | display: inline-block !important; 43 | } 44 | .d-#{$media-query}-none { 45 | display: none !important; 46 | } 47 | } 48 | } 49 | } 50 | 51 | // Horizontal alignment 52 | 53 | .float-left { 54 | float: left !important; 55 | } 56 | 57 | .float-right { 58 | float: right !important; 59 | } 60 | 61 | .flex-justify-start { 62 | justify-content: flex-start !important; 63 | } 64 | 65 | .flex-justify-end { 66 | justify-content: flex-end !important; 67 | } 68 | 69 | .flex-justify-between { 70 | justify-content: space-between !important; 71 | } 72 | 73 | .flex-justify-around { 74 | justify-content: space-around !important; 75 | } 76 | 77 | // Vertical alignment 78 | 79 | .v-align-baseline { 80 | vertical-align: baseline !important; 81 | } 82 | 83 | .v-align-bottom { 84 | vertical-align: bottom !important; 85 | } 86 | 87 | .v-align-middle { 88 | vertical-align: middle !important; 89 | } 90 | 91 | .v-align-text-bottom { 92 | vertical-align: text-bottom !important; 93 | } 94 | 95 | .v-align-text-top { 96 | vertical-align: text-top !important; 97 | } 98 | 99 | .v-align-top { 100 | vertical-align: top !important; 101 | } 102 | -------------------------------------------------------------------------------- /docs/_sass/utilities/_lists.scss: -------------------------------------------------------------------------------- 1 | // Utility classes for lists 2 | 3 | // stylelint-disable selector-max-type 4 | 5 | .list-style-none { 6 | padding: 0 !important; 7 | margin: 0 !important; 8 | list-style: none !important; 9 | 10 | li { 11 | &::before { 12 | display: none !important; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /docs/_sass/utilities/_spacing.scss: -------------------------------------------------------------------------------- 1 | // Utility classes for margins and padding 2 | 3 | // stylelint-disable block-opening-brace-space-after, block-opening-brace-space-before 4 | 5 | // Margin spacer utilities 6 | 7 | .mx-auto { 8 | margin-right: auto !important; 9 | margin-left: auto !important; 10 | } 11 | 12 | @for $i from 1 through length($spacers) { 13 | $size: #{map-get($spacers, sp-#{$i - 1})}; 14 | $scale: #{$i - 1}; 15 | 16 | // .m-0, .m-1, .m-2... 17 | .m-#{$scale} { 18 | margin: #{$size} !important; 19 | } 20 | .mt-#{$scale} { 21 | margin-top: #{$size} !important; 22 | } 23 | .mr-#{$scale} { 24 | margin-right: #{$size} !important; 25 | } 26 | .mb-#{$scale} { 27 | margin-bottom: #{$size} !important; 28 | } 29 | .ml-#{$scale} { 30 | margin-left: #{$size} !important; 31 | } 32 | 33 | .mx-#{$scale} { 34 | margin-right: #{$size} !important; 35 | margin-left: #{$size} !important; 36 | } 37 | 38 | .my-#{$scale} { 39 | margin-top: #{$size} !important; 40 | margin-bottom: #{$size} !important; 41 | } 42 | 43 | .mxn-#{$scale} { 44 | margin-right: -#{$size} !important; 45 | margin-left: -#{$size} !important; 46 | } 47 | .mx-#{$scale}-auto { 48 | margin-right: auto !important; 49 | margin-left: auto !important; 50 | } 51 | } 52 | 53 | @each $media-query in map-keys($media-queries) { 54 | @for $i from 1 through length($spacers) { 55 | @include mq($media-query) { 56 | $size: #{map-get($spacers, sp-#{$i - 1})}; 57 | $scale: #{$i - 1}; 58 | 59 | // .m-sm-0, .m-md-1, .m-lg-2... 60 | .m-#{$media-query}-#{$scale} { 61 | margin: #{$size} !important; 62 | } 63 | .mt-#{$media-query}-#{$scale} { 64 | margin-top: #{$size} !important; 65 | } 66 | .mr-#{$media-query}-#{$scale} { 67 | margin-right: #{$size} !important; 68 | } 69 | .mb-#{$media-query}-#{$scale} { 70 | margin-bottom: #{$size} !important; 71 | } 72 | .ml-#{$media-query}-#{$scale} { 73 | margin-left: #{$size} !important; 74 | } 75 | 76 | .mx-#{$media-query}-#{$scale} { 77 | margin-right: #{$size} !important; 78 | margin-left: #{$size} !important; 79 | } 80 | 81 | .my-#{$media-query}-#{$scale} { 82 | margin-top: #{$size} !important; 83 | margin-bottom: #{$size} !important; 84 | } 85 | 86 | .mxn-#{$media-query}-#{$scale} { 87 | margin-right: -#{$size} !important; 88 | margin-left: -#{$size} !important; 89 | } 90 | } 91 | } 92 | } 93 | 94 | // Padding spacer utilities 95 | 96 | @for $i from 1 through length($spacers) { 97 | $size: #{map-get($spacers, sp-#{$i - 1})}; 98 | $scale: #{$i - 1}; 99 | 100 | // .p-0, .p-1, .p-2... 101 | .p-#{$scale} { 102 | padding: #{$size} !important; 103 | } 104 | .pt-#{$scale} { 105 | padding-top: #{$size} !important; 106 | } 107 | .pr-#{$scale} { 108 | padding-right: #{$size} !important; 109 | } 110 | .pb-#{$scale} { 111 | padding-bottom: #{$size} !important; 112 | } 113 | .pl-#{$scale} { 114 | padding-left: #{$size} !important; 115 | } 116 | 117 | .px-#{$scale} { 118 | padding-right: #{$size} !important; 119 | padding-left: #{$size} !important; 120 | } 121 | 122 | .py-#{$scale} { 123 | padding-top: #{$size} !important; 124 | padding-bottom: #{$size} !important; 125 | } 126 | } 127 | 128 | @each $media-query in map-keys($media-queries) { 129 | @include mq($media-query) { 130 | @for $i from 1 through length($spacers) { 131 | $size: #{map-get($spacers, sp-#{$i - 1})}; 132 | $scale: #{$i - 1}; 133 | 134 | // .p-sm-0, .p-md-1, .p-lg-2... 135 | .p-#{$media-query}-#{$scale} { 136 | padding: #{$size} !important; 137 | } 138 | .pt-#{$media-query}-#{$scale} { 139 | padding-top: #{$size} !important; 140 | } 141 | .pr-#{$media-query}-#{$scale} { 142 | padding-right: #{$size} !important; 143 | } 144 | .pb-#{$media-query}-#{$scale} { 145 | padding-bottom: #{$size} !important; 146 | } 147 | .pl-#{$media-query}-#{$scale} { 148 | padding-left: #{$size} !important; 149 | } 150 | 151 | .px-#{$media-query}-#{$scale} { 152 | padding-right: #{$size} !important; 153 | padding-left: #{$size} !important; 154 | } 155 | 156 | .py-#{$media-query}-#{$scale} { 157 | padding-top: #{$size} !important; 158 | padding-bottom: #{$size} !important; 159 | } 160 | } 161 | } 162 | } 163 | -------------------------------------------------------------------------------- /docs/_sass/utilities/_typography.scss: -------------------------------------------------------------------------------- 1 | // Utility classes for typography 2 | 3 | .fs-1 { 4 | @include fs-1; 5 | } 6 | 7 | .fs-2 { 8 | @include fs-2; 9 | } 10 | 11 | .fs-3 { 12 | @include fs-3; 13 | } 14 | 15 | .fs-4 { 16 | @include fs-4; 17 | } 18 | 19 | .fs-5 { 20 | @include fs-5; 21 | } 22 | 23 | .fs-6 { 24 | @include fs-6; 25 | } 26 | 27 | .fs-7 { 28 | @include fs-7; 29 | } 30 | 31 | .fs-8 { 32 | @include fs-8; 33 | } 34 | 35 | .fs-9 { 36 | @include fs-9; 37 | } 38 | 39 | .fs-10 { 40 | @include fs-10; 41 | } 42 | 43 | .fw-300 { 44 | font-weight: 300 !important; 45 | } 46 | 47 | .fw-400 { 48 | font-weight: 400 !important; 49 | } 50 | 51 | .fw-500 { 52 | font-weight: 500 !important; 53 | } 54 | 55 | .fw-700 { 56 | font-weight: 700 !important; 57 | } 58 | 59 | .lh-0 { 60 | line-height: 0 !important; 61 | } 62 | 63 | .lh-default { 64 | line-height: $body-line-height; 65 | } 66 | 67 | .lh-tight { 68 | line-height: $body-heading-line-height; 69 | } 70 | 71 | .ls-5 { 72 | letter-spacing: 0.05em !important; 73 | } 74 | 75 | .ls-10 { 76 | letter-spacing: 0.1em !important; 77 | } 78 | 79 | .ls-0 { 80 | letter-spacing: 0 !important; 81 | } 82 | 83 | .text-uppercase { 84 | text-transform: uppercase !important; 85 | } 86 | -------------------------------------------------------------------------------- /docs/_sass/utilities/utilities.scss: -------------------------------------------------------------------------------- 1 | @import "./colors"; 2 | @import "./layout"; 3 | @import "./typography"; 4 | @import "./lists"; 5 | @import "./spacing"; 6 | -------------------------------------------------------------------------------- /docs/_sass/vendor/OneDarkJekyll/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Mihály Gyöngyösi 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /docs/_sass/vendor/OneDarkJekyll/syntax.scss: -------------------------------------------------------------------------------- 1 | // Generated with OneDarkJekyll applied to Atom's One Dark Vivid theme 2 | 3 | .highlight, 4 | pre.highlight { 5 | background: #31343f; 6 | color: #dee2f7; 7 | } 8 | .highlight pre { 9 | background: #31343f; 10 | } 11 | .highlight .hll { 12 | background: #31343f; 13 | } 14 | .highlight .c { 15 | color: #63677e; 16 | font-style: italic; 17 | } 18 | .highlight .err { 19 | color: #960050; 20 | background-color: #1e0010; 21 | } 22 | .highlight .k { 23 | color: #e19ef5; 24 | } 25 | .highlight .l { 26 | color: #a3eea0; 27 | } 28 | .highlight .n { 29 | color: #dee2f7; 30 | } 31 | .highlight .o { 32 | color: #dee2f7; 33 | } 34 | .highlight .p { 35 | color: #dee2f7; 36 | } 37 | .highlight .cm { 38 | color: #63677e; 39 | font-style: italic; 40 | } 41 | .highlight .cp { 42 | color: #63677e; 43 | font-style: italic; 44 | } 45 | .highlight .c1 { 46 | color: #63677e; 47 | font-style: italic; 48 | } 49 | .highlight .cs { 50 | color: #63677e; 51 | font-style: italic; 52 | } 53 | .highlight .ge { 54 | font-style: italic; 55 | } 56 | .highlight .gs { 57 | font-weight: 700; 58 | } 59 | .highlight .kc { 60 | color: #e19ef5; 61 | } 62 | .highlight .kd { 63 | color: #e19ef5; 64 | } 65 | .highlight .kn { 66 | color: #e19ef5; 67 | } 68 | .highlight .kp { 69 | color: #e19ef5; 70 | } 71 | .highlight .kr { 72 | color: #e19ef5; 73 | } 74 | .highlight .kt { 75 | color: #e19ef5; 76 | } 77 | .highlight .ld { 78 | color: #a3eea0; 79 | } 80 | .highlight .m { 81 | color: #eddc96; 82 | } 83 | .highlight .s { 84 | color: #a3eea0; 85 | } 86 | .highlight .na { 87 | color: #eddc96; 88 | } 89 | .highlight .nb { 90 | color: #fdce68; 91 | } 92 | .highlight .nc { 93 | color: #fdce68; 94 | } 95 | .highlight .no { 96 | color: #fdce68; 97 | } 98 | .highlight .nd { 99 | color: #fdce68; 100 | } 101 | .highlight .ni { 102 | color: #fdce68; 103 | } 104 | .highlight .ne { 105 | color: #fdce68; 106 | } 107 | .highlight .nf { 108 | color: #dee2f7; 109 | } 110 | .highlight .nl { 111 | color: #fdce68; 112 | } 113 | .highlight .nn { 114 | color: #dee2f7; 115 | } 116 | .highlight .nx { 117 | color: #dee2f7; 118 | } 119 | .highlight .py { 120 | color: #fdce68; 121 | } 122 | .highlight .nt { 123 | color: #f9867b; 124 | } 125 | .highlight .nv { 126 | color: #fdce68; 127 | } 128 | .highlight .ow { 129 | font-weight: 700; 130 | } 131 | .highlight .w { 132 | color: #f8f8f2; 133 | } 134 | .highlight .mf { 135 | color: #eddc96; 136 | } 137 | .highlight .mh { 138 | color: #eddc96; 139 | } 140 | .highlight .mi { 141 | color: #eddc96; 142 | } 143 | .highlight .mo { 144 | color: #eddc96; 145 | } 146 | .highlight .sb { 147 | color: #a3eea0; 148 | } 149 | .highlight .sc { 150 | color: #a3eea0; 151 | } 152 | .highlight .sd { 153 | color: #a3eea0; 154 | } 155 | .highlight .s2 { 156 | color: #a3eea0; 157 | } 158 | .highlight .se { 159 | color: #a3eea0; 160 | } 161 | .highlight .sh { 162 | color: #a3eea0; 163 | } 164 | .highlight .si { 165 | color: #a3eea0; 166 | } 167 | .highlight .sx { 168 | color: #a3eea0; 169 | } 170 | .highlight .sr { 171 | color: #7be2f9; 172 | } 173 | .highlight .s1 { 174 | color: #a3eea0; 175 | } 176 | .highlight .ss { 177 | color: #7be2f9; 178 | } 179 | .highlight .bp { 180 | color: #fdce68; 181 | } 182 | .highlight .vc { 183 | color: #fdce68; 184 | } 185 | .highlight .vg { 186 | color: #fdce68; 187 | } 188 | .highlight .vi { 189 | color: #f9867b; 190 | } 191 | .highlight .il { 192 | color: #eddc96; 193 | } 194 | .highlight .gu { 195 | color: #75715e; 196 | } 197 | .highlight .gd { 198 | color: #f92672; 199 | } 200 | .highlight .gi { 201 | color: #a6e22e; 202 | } 203 | -------------------------------------------------------------------------------- /docs/_sass/vendor/OneLightJekyll/LICENSE: -------------------------------------------------------------------------------- 1 | OneLightJekyll relies on two works: OneDarkJekyll, and Atom's One Light theme. This file contains the licensing for all the related software. 2 | 3 | --- 4 | 5 | OneLightJekyll (https://github.com/just-the-docs/OneLightJekyll/blob/main/LICENSE) 6 | 7 | MIT License 8 | 9 | Copyright (c) 2023 Matthew Wang 10 | 11 | Permission is hereby granted, free of charge, to any person obtaining a copy 12 | of this software and associated documentation files (the "Software"), to deal 13 | in the Software without restriction, including without limitation the rights 14 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | copies of the Software, and to permit persons to whom the Software is 16 | furnished to do so, subject to the following conditions: 17 | 18 | The above copyright notice and this permission notice shall be included in all 19 | copies or substantial portions of the Software. 20 | 21 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 27 | SOFTWARE. 28 | 29 | --- 30 | 31 | OneDarkJekyll (https://github.com/mgyongyosi/OneDarkJekyll/blob/master/LICENSE) 32 | 33 | MIT License 34 | 35 | Copyright (c) 2016 Mihály Gyöngyösi 36 | 37 | Permission is hereby granted, free of charge, to any person obtaining a copy 38 | of this software and associated documentation files (the "Software"), to deal 39 | in the Software without restriction, including without limitation the rights 40 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 41 | copies of the Software, and to permit persons to whom the Software is 42 | furnished to do so, subject to the following conditions: 43 | 44 | The above copyright notice and this permission notice shall be included in all 45 | copies or substantial portions of the Software. 46 | 47 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 48 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 49 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 50 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 51 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 52 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 53 | SOFTWARE. 54 | 55 | --- 56 | 57 | Atom One Light (https://github.com/atom/atom/blob/master/LICENSE.md) 58 | 59 | Copyright (c) 2011-2022 GitHub Inc. 60 | 61 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 62 | 63 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 64 | 65 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 66 | -------------------------------------------------------------------------------- /docs/_sass/vendor/OneLightJekyll/syntax.scss: -------------------------------------------------------------------------------- 1 | // Generated with OneLightJekyll applied to Atom's One Light theme 2 | 3 | .highlight, 4 | pre.highlight { 5 | background: #f9f9f9; 6 | color: #383942; 7 | } 8 | .highlight pre { 9 | background: #f9f9f9; 10 | } 11 | .highlight .hll { 12 | background: #f9f9f9; 13 | } 14 | .highlight .c { 15 | color: #9fa0a6; 16 | font-style: italic; 17 | } 18 | .highlight .err { 19 | color: #fff; 20 | background-color: #e05151; 21 | } 22 | .highlight .k { 23 | color: #a625a4; 24 | } 25 | .highlight .l { 26 | color: #50a04f; 27 | } 28 | .highlight .n { 29 | color: #383942; 30 | } 31 | .highlight .o { 32 | color: #383942; 33 | } 34 | .highlight .p { 35 | color: #383942; 36 | } 37 | .highlight .cm { 38 | color: #9fa0a6; 39 | font-style: italic; 40 | } 41 | .highlight .cp { 42 | color: #9fa0a6; 43 | font-style: italic; 44 | } 45 | .highlight .c1 { 46 | color: #9fa0a6; 47 | font-style: italic; 48 | } 49 | .highlight .cs { 50 | color: #9fa0a6; 51 | font-style: italic; 52 | } 53 | .highlight .ge { 54 | font-style: italic; 55 | } 56 | .highlight .gs { 57 | font-weight: 700; 58 | } 59 | .highlight .kc { 60 | color: #a625a4; 61 | } 62 | .highlight .kd { 63 | color: #a625a4; 64 | } 65 | .highlight .kn { 66 | color: #a625a4; 67 | } 68 | .highlight .kp { 69 | color: #a625a4; 70 | } 71 | .highlight .kr { 72 | color: #a625a4; 73 | } 74 | .highlight .kt { 75 | color: #a625a4; 76 | } 77 | .highlight .ld { 78 | color: #50a04f; 79 | } 80 | .highlight .m { 81 | color: #b66a00; 82 | } 83 | .highlight .s { 84 | color: #50a04f; 85 | } 86 | .highlight .na { 87 | color: #b66a00; 88 | } 89 | .highlight .nb { 90 | color: #ca7601; 91 | } 92 | .highlight .nc { 93 | color: #ca7601; 94 | } 95 | .highlight .no { 96 | color: #ca7601; 97 | } 98 | .highlight .nd { 99 | color: #ca7601; 100 | } 101 | .highlight .ni { 102 | color: #ca7601; 103 | } 104 | .highlight .ne { 105 | color: #ca7601; 106 | } 107 | .highlight .nf { 108 | color: #383942; 109 | } 110 | .highlight .nl { 111 | color: #ca7601; 112 | } 113 | .highlight .nn { 114 | color: #383942; 115 | } 116 | .highlight .nx { 117 | color: #383942; 118 | } 119 | .highlight .py { 120 | color: #ca7601; 121 | } 122 | .highlight .nt { 123 | color: #e35549; 124 | } 125 | .highlight .nv { 126 | color: #ca7601; 127 | } 128 | .highlight .ow { 129 | font-weight: 700; 130 | } 131 | .highlight .w { 132 | color: #f8f8f2; 133 | } 134 | .highlight .mf { 135 | color: #b66a00; 136 | } 137 | .highlight .mh { 138 | color: #b66a00; 139 | } 140 | .highlight .mi { 141 | color: #b66a00; 142 | } 143 | .highlight .mo { 144 | color: #b66a00; 145 | } 146 | .highlight .sb { 147 | color: #50a04f; 148 | } 149 | .highlight .sc { 150 | color: #50a04f; 151 | } 152 | .highlight .sd { 153 | color: #50a04f; 154 | } 155 | .highlight .s2 { 156 | color: #50a04f; 157 | } 158 | .highlight .se { 159 | color: #50a04f; 160 | } 161 | .highlight .sh { 162 | color: #50a04f; 163 | } 164 | .highlight .si { 165 | color: #50a04f; 166 | } 167 | .highlight .sx { 168 | color: #50a04f; 169 | } 170 | .highlight .sr { 171 | color: #0083bb; 172 | } 173 | .highlight .s1 { 174 | color: #50a04f; 175 | } 176 | .highlight .ss { 177 | color: #0083bb; 178 | } 179 | .highlight .bp { 180 | color: #ca7601; 181 | } 182 | .highlight .vc { 183 | color: #ca7601; 184 | } 185 | .highlight .vg { 186 | color: #ca7601; 187 | } 188 | .highlight .vi { 189 | color: #e35549; 190 | } 191 | .highlight .il { 192 | color: #b66a00; 193 | } 194 | .highlight .gu { 195 | color: #75715e; 196 | } 197 | .highlight .gd { 198 | color: #e05151; 199 | } 200 | .highlight .gi { 201 | color: #43d089; 202 | } 203 | .highlight .language-json .w + .s2 { 204 | color: #e35549; 205 | } 206 | .highlight .language-json .kc { 207 | color: #0083bb; 208 | } 209 | -------------------------------------------------------------------------------- /docs/_sass/vendor/normalize.scss/README.md: -------------------------------------------------------------------------------- 1 | # normalize.scss 2 | 3 | Normalize.scss is an SCSS copy of [normalize.css](http://necolas.github.io/normalize.css), a customisable CSS file that makes browsers render all elements more consistently and in line with modern standards. 4 | 5 | The [normalize.scss fork](https://github.com/guerrero/normalize.scss) of [normalize.css](http://necolas.github.io/normalize.css) was archived in 2014, and has not been updated since v0.1.0. 6 | 7 | [View the normalize.css test file](http://necolas.github.io/normalize.css/latest/test.html) 8 | -------------------------------------------------------------------------------- /docs/commands/DataTypes.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | nav_order: 2 4 | # permalink: / 5 | parent: Custom Commands 6 | title: Command Data Types 7 | markdown: Kramdown 8 | has_children: false 9 | kramdown: 10 | parse_block_html: true 11 | auto_ids: true 12 | syntax_highlighter: coderay 13 | --- 14 | 15 |