//= depend_on sprites/docs.png
//= depend_on sprites/docs@2x.png
//= depend_on sprites/docs.json

/*!
 * Copyright 2013-2024 Thibaut Courouble and other contributors
 *
 * This source code is licensed under the terms of the Mozilla
 * Public License, v. 2.0, a copy of which may be obtained at:
 * http://mozilla.org/MPL/2.0/
 */

/* https://github.com/rails/sass-rails/issues/139 */

<% manifest = JSON.parse(File.read('assets/images/sprites/docs.json')) %>

%svg-icon {
  display: inline-block;
  vertical-align: top;
  width: 1rem;
  height: 1rem;
  pointer-events: none;
  fill: currentColor;
}

%doc-icon {
  content: '';
  display: block;
  width: 1rem;
  height: 1rem;
  background-image: image-url('sprites/docs.png');
  background-size: <%= manifest['icons_per_row'] %>rem <%= manifest['icons_per_row'] %>rem;
}

@media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) {
  %doc-icon { background-image: image-url('sprites/docs@2x.png'); }
}

html._theme-dark {
  %darkIconFix {
    filter: invert(100%) grayscale(100%);
    -webkit-filter: invert(100%) grayscale(100%);
  }
}

<%=
  items = []

  manifest['items'].each do |item|
    rules = []
    rules << "background-position: -#{item['col']}rem -#{item['row']}rem;"
    rules << "@extend %darkIconFix !optional;" if item['dark_icon_fix']
    items << "._icon-#{item['type']}:before { #{rules.join(' ')} }"
  end

  items.join('')
 %>

._hide-in-development {
  <%= App.environment != :production ? 'display: none;' : '' %>
}


@import 'global/variables-light',
        'global/variables-dark',
        'global/variables',
        'global/mixins',
        'global/classes',
        'global/base';

@import 'components/app',
        'components/header',
        'components/notif',
        'components/sidebar',
        'components/settings',
        'components/content',
        'components/page',
        'components/fail',
        'components/path',
        'components/notice',
        'components/prism',
        'components/mobile';


@import 'pages/simple',
        'pages/angular',
        'pages/angularjs',
        'pages/apache',
        'pages/async',
        'pages/bash',
        'pages/bootstrap',
        'pages/cppref',
        'pages/cakephp',
        'pages/clojure',
        'pages/codeception',
        'pages/coffeescript',
        'pages/cordova',
        'pages/crystal',
        'pages/cypress',
        'pages/d',
        'pages/d3',
        'pages/dart',
        'pages/dojo',
        'pages/drupal',
        'pages/eigen3',
        'pages/elixir',
        'pages/elisp',
        'pages/ember',
        'pages/erlang',
        'pages/express',
        'pages/fastapi',
        'pages/fluture',
        'pages/git',
        'pages/github',
        'pages/gnuplot',
        'pages/go',
        'pages/graphite',
        'pages/groovy',
        'pages/gtk',
        'pages/hapi',
        'pages/haproxy',
        'pages/haskell',
        'pages/jasmine',
        'pages/jekyll',
        'pages/joi',
        'pages/jq',
        'pages/jquery',
        'pages/julia',
        'pages/knockout',
        'pages/kotlin',
        'pages/kubectl',
        'pages/kubernetes',
        'pages/laravel',
        'pages/liquid',
        'pages/love',
        'pages/lua',
        'pages/gnu_make',
        'pages/mariadb',
        'pages/mdn',
        'pages/meteor',
        'pages/mkdocs',
        'pages/modernizr',
        'pages/moment',
        'pages/nginx',
        'pages/node',
        'pages/npm',
        'pages/nushell',
        'pages/octave',
        'pages/openjdk',
        'pages/perl',
        'pages/phalcon',
        'pages/phaser',
        'pages/php',
        'pages/phpunit',
        'pages/postgres',
        'pages/pug',
        'pages/pygame',
        'pages/python',
        'pages/qt',
        'pages/ramda',
        'pages/rdoc',
        'pages/react_native',
        'pages/reactivex',
        'pages/redis',
        'pages/rethinkdb',
        'pages/rfc',
        'pages/rubydoc',
        'pages/rust',
        'pages/rxjs',
        'pages/sanctuary',
        'pages/sanctuary_def',
        'pages/sanctuary_type_classes',
        'pages/scala',
        'pages/sinon',
        'pages/sphinx',
        'pages/sphinx_simple',
        'pages/sqlite',
        'pages/support_tables',
        'pages/tailwindcss',
        'pages/tcl_tk',
        'pages/tensorflow',
        'pages/terraform',
        'pages/typescript',
        'pages/underscore',
        'pages/vue',
        'pages/webpack',
        'pages/wordpress',
        'pages/yard',
        'pages/yii';