[
  {
    "path": ".browserslistrc",
    "content": "[production]\ndefaults\n> 5% in US\nlast 2 versions\nFirefox ESR\niOS >= 12\n\n[development]\nlast 1 version\n"
  },
  {
    "path": ".editorconfig",
    "content": "# editorconfig.org\n\nroot = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\nindent_size = 2\nindent_style = space\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "content": "# These are supported funding model platforms\n\ngithub: [risadams]\npatreon: # Replace with a single Patreon username\nopen_collective: # Replace with a single Open Collective username\nko_fi: # Replace with a single Ko-fi username\ntidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel\ncommunity_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry\nliberapay: # Replace with a single Liberapay username\nissuehunt: # Replace with a single IssueHunt username\notechie: # Replace with a single Otechie username\ncustom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE.md",
    "content": "Welcome to the Selectize bug tracker. Thank you for taking the time to\nmake Selectize a better library!\n\nPlease keep in mind this repository has an important issue backlog and\nthat maintainers have limited time to fix issues, triage, and understand\nthem.\n\nIf you've never done so, please read the\n[guide to reporting issues](https://github.com/selectize/selectize.js/wiki/Reporting-issues-guide)\nin the Wiki to help us better understand your issue.\n\nPlace an `x` in the checklist steps (`[ ]` becomes `[x]`) to demonstrate\nyou have done/verified all the steps you needed to do.\n\nThank you for reading this! You can now erase everything up to the\nfollowing dashes, and then complete what's after.\n\nISSUES THAT EITHER:\n\n* IGNORE THE ISSUE GUIDELINES\n* ERASE THE FOLLOWING TEMPLATE\n* DON'T FOLLOW THE PROPER NUMBERED FORMAT FOR STEPS TO REPRODUCE\n\nCOULD BE CLOSED.\n\n---\n\nI did:\n\n* [ ] Search for if my issue has already been submitted\n* [ ] Make sure I'm reporting something precise that needs to be fixed\n* [ ] Give my issue a descriptive and concise title\n* [ ] Create a *minimal* working example on JsFiddle or Codepen\n\t(or gave a link to a demo on the Selectize docs)\n* [ ] Indicate *precise* steps to reproduce in *numbers* and the result,\n\t  like below\n\n[replace me with a short description of issue]\n\nSteps to reproduce:\n\n1.\n2.\n3.\n\nExpected result:\n\nActual result:\n\n[you can add explanations here of the context/what you were trying to\ndo, and if you have findings about what the cause might be]\n"
  },
  {
    "path": ".github/codeql/codeql-config.yml",
    "content": "paths:\n  - src\n  - dist\npaths-ignore:\n  - docs\n  - examples\n  - test\n"
  },
  {
    "path": ".github/dependabot.yml",
    "content": "# To get started with Dependabot version updates, you'll need to specify which\n# package ecosystems to update and where the package manifests are located.\n# Please see the documentation for all configuration options:\n# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates\n\nversion: 2\nupdates:\n  - package-ecosystem: \"npm\" # See documentation for possible values\n    directory: \"/\" # Location of package manifests\n    schedule:\n      interval: \"daily\"\n    labels:\n      - \"npm\"\n      - \"dependencies\"\n\n  - package-ecosystem: \"github-actions\"\n    directory: \"/\"\n    schedule:\n      # Check for updates to GitHub Actions every weekday\n      interval: \"daily\"\n"
  },
  {
    "path": ".github/workflows/UpdateContributors.yml",
    "content": "name: Update Contributors\non:\n  schedule:\n    - cron: \"0 0 1 * *\"\n  workflow_dispatch:\njobs:\n  main:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: risadams/contributors-update@v3.1.1\n        with:\n          repo: selectize/selectize.js\n          output: CONTRIBUTORS.md\n          exclude_bots: true\n      - name: Commit changes\n        uses: test-room-7/action-update-file@v1\n        with:\n          file-path: CONTRIBUTORS.md\n          commit-msg: Update Contributors\n          github-token: ${{ secrets.GITHUB_TOKEN }}\n"
  },
  {
    "path": ".github/workflows/codeql-analysis.yml",
    "content": "# For most projects, this workflow file will not need changing; you simply need\n# to commit it to your repository.\n#\n# You may wish to alter this file to override the set of languages analyzed,\n# or to provide custom queries or build logic.\n#\n# ******** NOTE ********\n# We have attempted to detect the languages in your repository. Please check\n# the `language` matrix defined below to confirm you have the correct set of\n# supported CodeQL languages.\n#\nname: \"CodeQL\"\n\non:\n  push:\n    branches: [ master ]\n  pull_request:\n    # The branches below must be a subset of the branches above\n    branches: [ master ]\n  schedule:\n    - cron: '20 7 * * 0'\n\njobs:\n  analyze:\n    name: Analyze\n    runs-on: ubuntu-latest\n    permissions:\n      actions: read\n      contents: read\n      security-events: write\n\n    strategy:\n      fail-fast: false\n      matrix:\n        language: [ 'javascript' ]\n        # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]\n        # Learn more:\n        # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed\n\n    steps:\n    - name: Checkout repository\n      uses: actions/checkout@v3\n\n    # Initializes the CodeQL tools for scanning.\n    - name: Initialize CodeQL\n      uses: github/codeql-action/init@v2\n      with:\n        config-file: ./.github/codeql/codeql-config.yml\n        languages: ${{ matrix.language }}\n        # If you wish to specify custom queries, you can do so here or in a config file.\n        # By default, queries listed here will override any specified in a config file.\n        # Prefix the list here with \"+\" to use these queries and those in the config file.\n        # queries: ./path/to/local/query, your-org/your-repo/queries@main\n\n    # Autobuild attempts to build any compiled languages  (C/C++, C#, or Java).\n    # If this step fails, then you should remove it and run the build manually (see below)\n    - name: Autobuild\n      uses: github/codeql-action/autobuild@v2\n\n    # ℹ️ Command-line programs to run using the OS shell.\n    # 📚 https://git.io/JvXDl\n\n    # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines\n    #    and modify them (or add more) to build your code if your project\n    #    uses a compiled language\n\n    #- run: |\n    #   make bootstrap\n    #   make release\n\n    - name: Perform CodeQL Analysis\n      uses: github/codeql-action/analyze@v2\n"
  },
  {
    "path": ".github/workflows/node.js.yml",
    "content": "# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node\n# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions\n\nname: Node.js CI\n\non:\n  workflow_dispatch:\n  push:\n  pull_request:\njobs:\n  build:\n    runs-on: ubuntu-latest\n\n    strategy:\n      matrix:\n        node-version: [16.x, 18.x, 19.x]\n        os: [ubuntu-latest, windows-latest]\n\n    steps:\n      - uses: actions/checkout@v3\n      - name: Use Node.js ${{ matrix.node-version }}\n        uses: actions/setup-node@v3\n        with:\n          node-version: ${{ matrix.node-version }}          \n      - run: npm ci\n      - run: npm run build --if-present\n      - run: npm test\n"
  },
  {
    "path": ".github/workflows/stale.yml",
    "content": "name: Mark stale issues and pull requests\n\non:\n  schedule:\n  - cron: \"30 1 * * *\"\n\njobs:\n  stale:\n\n    runs-on: ubuntu-latest\n\n    steps:\n    - uses: actions/stale@v7\n      with:\n        repo-token: ${{ secrets.GITHUB_TOKEN }}\n        stale-issue-message: 'This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 5 days'\n        stale-pr-message: 'This pull request is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 5 days'\n        stale-issue-label: 'no-issue-activity'\n        stale-pr-label: 'no-pr-activity'\n        exempt-issue-labels: 'awaiting-approval,work-in-progress,pending review,discussion'\n        exempt-pr-labels: 'awaiting-approval,work-in-progress,pending review,discussion'\n        days-before-stale: 120\n        days-before-close: 15\n"
  },
  {
    "path": ".gitignore",
    "content": ".DS_Store\n.DAV\nnode_modules\nbower_components\n*.log\n.vscode\nbuild\ncoverage/\n_site/\n"
  },
  {
    "path": ".npmrc",
    "content": "fund=false\n"
  },
  {
    "path": "CHANGELOG.md",
    "content": "# Changelog\n\n<!-- Feel free to put either your handle and/or full name, according to\n     your privacy needs -->\n\n## v0.15.1 · 17 11 2022\n\n- New feature: dynamically add option groups\n  _@jackbentley_\n\n## v0.15.0 · 14 11 2022\n\n### Breaking changes\n\n- The distribution files no longer include a _standalone_ version. The files in the `dist/js` folder are now standalone by default. If you previously referenced files from the `dist/js/standalone` folder you will need to update your references to `dist/js`.\n- We have always included all plugins in the distributions files, but no longer provide a way to exclude them from the build.\n- We now build the distribution files using `Gulp` instead of `Grunt`\n- the `NPM` package now includes the `dist` folder only. If you previously referenced source files directly you will need to update your references to `dist/js/selectize.js` or `dist/js/selectize.min.js`.\n\n## v0.14.0 · 02 10 2022\n\n- _Breaking change:_ Removed the dependencies on MicroPlugin and Sifter - These are now included in the selectize package directly.\n\n- Fixed missing style for dropdown*header plugin [*@fabienwnklr\\_](https://github.com/fabienwnklr)\n- Fixed ([#1818](https://github.com/selectize/selectize.js/issues/1818)) Scroll left when I click on a selectized item and page is scrolled right [_@fabienwnklr_](https://github.com/fabienwnklr)\n- Added option to enable setting the first option in the list as active.\n\n  _@joshuan92_\n\n## v0.13.0 · 03 11 2020\n\n- Support for Bootstrap v4.x.\n  - Adding SASS styles, LESS styles still available for bootstrap 2.x\n- Fixed bug (#851) for placeholder text clipping\n- Fixed bug (#870) for remove button plugin closing bootstrap modals\n\n  _@risadams_\n\n## v0.12.4, v0.12.5 · 27 June 2018\n\n- Allow the dropdown to reopen on click if it is closed without losing focus\n  by closeAfterSelect: true\n\n  _@fishpercolator_\n\n- Fixed bug making `clearOptions` function. Now it doesn't remove already selected options.\n\n  _(thanks @caseymct - #1079)_\n\n- New feature: allow to disable single options or complete optgroups\n\n  _@zeitiger_\n\n## v0.12.3 · 24 August 2016\n\n- Make `label[for]` work after applying Selectize (#755)\n\n  _Barrett Sonntag_ (@barretts)\n\n- Output friendly error message when Microplguin is missing (#1137).\n  Special thanks to @styxxx for proposing the improvement.\n\n- Add local server command `grunt server`.\n\n- Stop creating items automatically when text is pasted, only create\n  them when pasted text contains delimiter.\n\n- Fix regression 'Required fields can not be focusable' in Chrome\n  (#733)\n\n- Fix detection of Validity API, we had false negatives before.\n\n  _Jonathan Allard_ (@joallard)\n\n- Fix open keyboard bug under iOS after closing selection (#1127)\n\n  _@zeitiger_\n\n- Fix highlighting more than one character (#1099, #1098)\n\n  _@skimi_\n\n## v0.12.2 · 23 June 2016\n\n- Fix issue preventing build (\"Cannot assign to read only property\n  'subarray'\") because of bug in uglifyjs. (#1072)\n\n  _@jaridmargolin_\n\n- Fix tabbing issue (#877) on IE11. (#997)\n\n  _@bwilson-ux_\n\n- Fix jQuery initialization for jQuery >= 1.9 (#1045)\n\n  _@mpokrywka_\n\n- Make `remove_button` work for single-option usage (#848)\n\n  _@ChoppyThing_\n\n- Fixed bug that made `allowEmptyOption: true` useless (#739)\n\n  _@mcavalletto_\n\n- Functions in option `render` can now return a DOM node in addition to\n  text. (#617)\n\n  _@topaxi_\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participation in our\ncommunity a harassment-free experience for everyone, regardless of age, body\nsize, visible or invisible disability, ethnicity, sex characteristics, gender\nidentity and expression, level of experience, education, socio-economic status,\nnationality, personal appearance, race, religion, or sexual identity\nand orientation.\n\nWe pledge to act and interact in ways that contribute to an open, welcoming,\ndiverse, inclusive, and healthy community.\n\n## Our Standards\n\nExamples of behavior that contributes to a positive environment for our\ncommunity include:\n\n* Demonstrating empathy and kindness toward other people\n* Being respectful of differing opinions, viewpoints, and experiences\n* Giving and gracefully accepting constructive feedback\n* Accepting responsibility and apologizing to those affected by our mistakes,\n  and learning from the experience\n* Focusing on what is best not just for us as individuals, but for the\n  overall community\n\nExamples of unacceptable behavior include:\n\n* The use of sexualized language or imagery, and sexual attention or\n  advances of any kind\n* Trolling, insulting or derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or email\n  address, without their explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Enforcement Responsibilities\n\nCommunity leaders are responsible for clarifying and enforcing our standards of\nacceptable behavior and will take appropriate and fair corrective action in\nresponse to any behavior that they deem inappropriate, threatening, offensive,\nor harmful.\n\nCommunity leaders have the right and responsibility to remove, edit, or reject\ncomments, commits, code, wiki edits, issues, and other contributions that are\nnot aligned to this Code of Conduct, and will communicate reasons for moderation\ndecisions when appropriate.\n\n## Scope\n\nThis Code of Conduct applies within all community spaces, and also applies when\nan individual is officially representing the community in public spaces.\nExamples of representing our community include using an official e-mail address,\nposting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported to the community leaders responsible for enforcement at\nhttps://keybase.io/team/selectize.\nAll complaints will be reviewed and investigated promptly and fairly.\n\nAll community leaders are obligated to respect the privacy and security of the\nreporter of any incident.\n\n## Enforcement Guidelines\n\nCommunity leaders will follow these Community Impact Guidelines in determining\nthe consequences for any action they deem in violation of this Code of Conduct:\n\n### 1. Correction\n\n**Community Impact**: Use of inappropriate language or other behavior deemed\nunprofessional or unwelcome in the community.\n\n**Consequence**: A private, written warning from community leaders, providing\nclarity around the nature of the violation and an explanation of why the\nbehavior was inappropriate. A public apology may be requested.\n\n### 2. Warning\n\n**Community Impact**: A violation through a single incident or series\nof actions.\n\n**Consequence**: A warning with consequences for continued behavior. No\ninteraction with the people involved, including unsolicited interaction with\nthose enforcing the Code of Conduct, for a specified period of time. This\nincludes avoiding interactions in community spaces as well as external channels\nlike social media. Violating these terms may lead to a temporary or\npermanent ban.\n\n### 3. Temporary Ban\n\n**Community Impact**: A serious violation of community standards, including\nsustained inappropriate behavior.\n\n**Consequence**: A temporary ban from any sort of interaction or public\ncommunication with the community for a specified period of time. No public or\nprivate interaction with the people involved, including unsolicited interaction\nwith those enforcing the Code of Conduct, is allowed during this period.\nViolating these terms may lead to a permanent ban.\n\n### 4. Permanent Ban\n\n**Community Impact**: Demonstrating a pattern of violation of community\nstandards, including sustained inappropriate behavior,  harassment of an\nindividual, or aggression toward or disparagement of classes of individuals.\n\n**Consequence**: A permanent ban from any sort of public interaction within\nthe community.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage],\nversion 2.0, available at\nhttps://www.contributor-covenant.org/version/2/0/code_of_conduct.html.\n\nCommunity Impact Guidelines were inspired by [Mozilla's code of conduct\nenforcement ladder](https://github.com/mozilla/diversity).\n\n[homepage]: https://www.contributor-covenant.org\n\nFor answers to common questions about this code of conduct, see the FAQ at\nhttps://www.contributor-covenant.org/faq. Translations are available at\nhttps://www.contributor-covenant.org/translations.\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# Contributing to Selectize\n\nFirst off, thanks for taking the time to contribute! ❤️\n\nAll types of contributions are encouraged and valued. See the [Table of Contents](#table-of-contents) for different ways to help and details about how this project handles them. Please make sure to read the relevant section before making your contribution. It will make it easier for us maintainers and smooth out the experience for all involved. The community looks forward to your contributions. 🎉\n\n> And if you like the project, but just don't have time to contribute, that's fine. There are other easy ways to support the project and show your appreciation, which we would also be very happy about:\n>\n> - Star the project\n> - Sponsor the project and/or individual contributors\n> - Tweet about it\n> - Refer this project in your project's readme\n> - Mention the project at local meetups and tell your friends/colleagues\n\n## Table of Contents\n\n- [Code of Conduct](#code-of-conduct)\n- [I Have a Question](#i-have-a-question)\n- [I Want To Contribute](#i-want-to-contribute)\n- [Reporting Bugs](#reporting-bugs)\n- [Suggesting Enhancements](#suggesting-enhancements)\n- [Your First Code Contribution](#your-first-code-contribution)\n- [Improving The Documentation](#improving-the-documentation)\n- [Commit Messages](#commit-messages)\n\n## Code of Conduct\n\nThis project and everyone participating in it is governed by the\n[Selectize Code of Conduct](CODE_OF_CONDUCT.md).\nBy participating, you are expected to uphold this code. Please report unacceptable behavior\nto the [maintainers](selectize@risadams.com).\n\n## I Have a Question\n\n> If you want to ask a question, we assume that you have read the available [Documentation](https://selectize.dev).\n\nBefore you ask a question, it is best to search for existing [Issues](https://github.com/selectize/selectize.js/issues) that might help you. In case you have found a suitable issue and still need clarification, you can write your question in this issue. It is also advisable to search the internet for answers first.\n\nIf you then still feel the need to ask a question and need clarification, we recommend the following:\n\n- Open an [Issue](https://github.com/selectize/selectize.js/issues/new).\n- Provide as much context as you can about what you're running into.\n- Provide project and platform versions (nodejs, npm, etc), depending on what seems relevant.\n\nWe will then take care of the issue as soon as possible.\n\n## I Want To Contribute\n\n> ### Legal Notice\n>\n> When contributing to this project, you must agree that you have authored 100% of the content, that you have the necessary rights to the content and that the content you contribute may be provided under the project license.\n\n### Reporting Bugs\n\n#### Before Submitting a Bug Report\n\nA good bug report shouldn't leave others needing to chase you up for more information. Therefore, we ask you to investigate carefully, collect information and describe the issue in detail in your report. Please complete the following steps in advance to help us fix any potential bug as fast as possible.\n\n- Make sure that you are using the latest version.\n- Determine if your bug is really a bug and not an error on your side e.g. using incompatible environment components/versions (Make sure that you have read the [documentation](https://selectize.dev). If you are looking for support, you might want to check [this section](#i-have-a-question)).\n- To see if other users have experienced (and potentially already solved) the same issue you are having, check if there is not already a bug report existing for your bug or error in the [bug tracker](https://github.com/selectize/selectize.jsissues?q=label%3Abug).\n- Make sure to search the internet (including Stack Overflow) to see if users outside of the GitHub community have discussed the issue.\n- Collect information about the bug:\n  - Stack trace (Traceback)\n  - OS, Platform and Version (Windows, Linux, macOS, x86, ARM)\n  - Version of the interpreter, compiler, SDK, runtime environment, package manager, depending on what seems relevant.\n- Possibly your input and the output\n- Can you reliably reproduce the issue? And can you also reproduce it with older versions?\n\n#### How Do I Submit a Good Bug Report?\n\n> You must never report security related issues, vulnerabilities or bugs including sensitive information to the issue tracker, or elsewhere in public. Instead sensitive bugs must be sent by email to .\n\nWe use GitHub issues to track bugs and errors. If you run into an issue with the project:\n\n- Open an [Issue](https://github.com/selectize/selectize.js/issues/new). (Since we can't be sure at this point whether it is a bug or not, we ask you not to talk about a bug yet and not to label the issue.)\n- Explain the behavior you would expect and the actual behavior.\n- Please provide as much context as possible and describe the _reproduction steps_ that someone else can follow to recreate the issue on their own. This usually includes your code. For good bug reports you should isolate the problem and create a reduced test case.\n- Provide the information you collected in the previous section.\n\nOnce it's filed:\n\n- The project team will label the issue accordingly.\n- A team member will try to reproduce the issue with your provided steps. If there are no reproduction steps or no obvious way to reproduce the issue, the team will ask you for those steps and mark the issue as `needs-repro`. Bugs with the `needs-repro` tag will not be addressed until they are reproduced.\n- If the team can reproduce the issue, it will be marked `needs-fix`, as well as possibly other tags (such as `critical`), and the issue will be left to be [implemented by someone](#your-first-code-contribution).\n\n### Suggesting Enhancements\n\nThis section guides you through submitting an enhancement suggestion for Selectize, **including entirely new features and minor improvements to existing functionality**. Following these guidelines will help maintainers and the community to understand your request and find related suggestions.\n\n#### Before Submitting an Enhancement\n\n- Make sure that you are using the latest version.\n- Read the [documentation](https://selectize.dev) carefully and find out if the functionality is already covered, maybe by an individual configuration.\n- Perform a [search](https://github.com/selectize/selectize.js/issues) to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one.\n- Find out whether your idea fits with the scope and aims of the project. It's up to you to make a strong case to convince the project's developers of the merits of this feature. Keep in mind that we want features that will be useful to the majority of our users and not just a small subset. If you're just targeting a minority of users, consider writing an add-on/plugin library.\n\n#### How Do I Submit a Good Enhancement Suggestion?\n\nEnhancement suggestions are tracked as [GitHub issues](https://github.com/selectize/selectize.js/issues).\n\n- Use a **clear and descriptive title** for the issue to identify the suggestion.\n- Provide a **step-by-step description of the suggested enhancement** in as many details as possible.\n- **Describe the current behavior** and **explain which behavior you expected to see instead** and why. At this point, you can also tell which alternatives do not work for you.\n- You may want to **include screenshots and animated GIFs** which help you demonstrate the steps or point out the part to which the suggestion is related. You can use [this tool](https://www.cockos.com/licecap/) to record GIFs on macOS and Windows and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://github.com/GNOME/byzanz) on Linux. <!-- this should only be included if the project has a GUI -->\n- **Explain why this enhancement would be useful** to most Selectize users. You may also want to point out the other projects that solved it better and which could serve as inspiration.\n\n### Your First Code Contribution\n\n#### Build from source\n\nCompile Javascript, SCSS and LESS in the `/src` directory to JavaScript and CSS in the `/build` directory.\n\nRunning `make` will build the project, run all tests, and update the distribution files in `/dist`.\n\n#### Local Environment\n\nRunning `npm start` on your repo will start a web server allowing you to view a local copy of this documentation, where you can test your changes against our example pages.\n\nIf you are adding a new plugin, you should add a corresponding example page to the `/docs/docs/plugins` directory.\n\nYou can then run the examples at `https://loopback.website:4000/`.\n\n### Improving The Documentation\n\n### Commit Messages\n\nCommit messages should be concise and descriptive and whenever possible reference the issue that they are addressing. They should follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification.\n\n### Pull Requests\n\nIf you're motivated to fix a bug or to develop a new feature, we'd love to see your code. When submitting pull requests, please remember the following:\n\n- Make sure tests pass: Run `npm test` to make sure your changes don't break existing functionality\n- Do not make changes to files in `/dist`. Limiting your edits to files in `/src` directories keeps the size of your pull request down and makes it easier for us to evaluate. We'll update the `/dist` folder after your pull request is approved.\n- Add tests: In the best-case scenario, you are also adding tests to back up your changes, but don't sweat it if you don't. We can discuss them at a later date.\n- Squash your commits together in one or a few complete, logical commits with a concise and descriptive message. One commit means one\n  feature/bugfix/thing that has changed or a diff bringing the code one step forward to a better, working state.\n"
  },
  {
    "path": "CONTRIBUTORS.md",
    "content": "# Contributors\n\nThank you to our top contributors!\n\n - @[brianreavis](https://github.com/brianreavis)\n - @[risadams](https://github.com/risadams)\n - @[joallard](https://github.com/joallard)\n - @[fabienwnklr](https://github.com/fabienwnklr)\n - @[sjhewitt](https://github.com/sjhewitt)\n - @[rotdrop](https://github.com/rotdrop)\n - @[jhash](https://github.com/jhash)\n - @[Scottmitch](https://github.com/Scottmitch)\n - @[abhij89](https://github.com/abhij89)\n - @[parsonsmatt](https://github.com/parsonsmatt)\n - @[olegatro](https://github.com/olegatro)\n - @[Pictor13](https://github.com/Pictor13)\n - @[topaxi](https://github.com/topaxi)\n - @[comerc](https://github.com/comerc)\n - @[graingert](https://github.com/graingert)\n - @[roblevintennis](https://github.com/roblevintennis)\n - @[micahjon](https://github.com/micahjon)\n - @[marcandre](https://github.com/marcandre)\n - @[zeitiger](https://github.com/zeitiger)\n - @[mpokrywka](https://github.com/mpokrywka)\n - @[dosource](https://github.com/dosource)\n - @[ViktorQvarfordt](https://github.com/ViktorQvarfordt)\n - @[urban](https://github.com/urban)\n - @[TiuSh](https://github.com/TiuSh)\n - @[ryanwersal](https://github.com/ryanwersal)\n - @[reklatsmasters](https://github.com/reklatsmasters)\n - @[YoYuUm](https://github.com/YoYuUm)\n - @[paulkolbovich](https://github.com/paulkolbovich)\n"
  },
  {
    "path": "LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright 2013–2015 Brian Reavis & Contributors\n   Copyright 2020 Ris Adams & Contributors\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "Makefile",
    "content": ".PHONY: compile release test\nGULP=node_modules/.bin/gulp\nCURRENT_VERSION := $(shell sed -n '/\"version\":/{s/.*\"version\": \"\\([^\"]*\\)\".*/\\1/p;q}' package.json)\nversion ?= $(CURRENT_VERSION) ## Version to release\n\nall: compile test ## (default) Run Compile and test targets\ntest: ## runs all tests (equivalent to `npm test`)\n\tnpm test\ncompile: ## compile the project, update package versions if specified, installs dependencies, and builds the project\n\tnpm i\n\tcd docs && npm i\n\trm -rf dist\n\t$(GULP) loadDependencies\n\tnpm run build\n\t$(GULP) docs\nrelease: ## make release version=x.x.x -- commit, tag, and npm publish the specified version\nifeq ($(strip $(version)),)\n\t@echo \"\\033[31mERROR:\\033[0;39m No version provided.\"\n\t@echo \"\\033[1;30mmake release version=1.0.0\\033[0;39m\"\nelse\n\tsed -i 's/\"version\": \"[^\"]*\"/\"version\": \"$(version)\"/' package.json\n\tsed -i \"s/\\\"version\\\": \\\"$(CURRENT_VERSION)\\\"/\\\"version\\\": \\\"$(version)\\\"/\" package-lock.json\n\tmake compile\n\tnpm test || exit 1\n\tgit add .\n\tgit commit -a -m \"Released $(version).\"\n\tgit tag v$(version)\n\tgit push origin master\n\tgit push origin --tags\n\tnpm publish --access public\n\t@echo \"\\033[32mv${version} released\\033[0;39m\"\nendif\n\nhelp: ## show this help\n\t@sed -ne \"s/^##\\(.*\\)/\\1/p\" $(MAKEFILE_LIST)\n\t@printf \"────────────────────────`tput bold``tput setaf 2` Make Commands `tput sgr0`────────────────────────────────\\n\"\n\t@sed -ne \"/@sed/!s/\\(^[^#?=]*:\\).*##\\(.*\\)/`tput setaf 2``tput bold`\\1`tput sgr0`\\2/p\" $(MAKEFILE_LIST)\n\t@printf \"────────────────────────`tput bold``tput setaf 4` Make Variables `tput sgr0`───────────────────────────────\\n\"\n\t@sed -ne \"/@sed/!s/\\(.*\\)?=\\(.*\\)##\\(.*\\)/`tput setaf 4``tput bold`\\1:`tput setaf 5`\\2`tput sgr0`\\3/p\" $(MAKEFILE_LIST)\n\t@printf \"───────────────────────────────────────────────────────────────────────\\n\"\n"
  },
  {
    "path": "README.md",
    "content": "# selectize.js\n\n![Selectize.js](docs/static/img/selectize-wordmark.png)\n\n→ Selectize is looking for [new members on the maintenance team](https://github.com/selectize/selectize.js/discussions/1678)!\n\n[![NPM version](http://img.shields.io/npm/v/@selectize/selectize.svg?style=flat)](https://www.npmjs.com/package/@selectize/selectize)\n[![CDNJS version](http://img.shields.io/cdnjs/v/selectize.js.svg?style=flat)](https://cdnjs.com/libraries/selectize.js)\n\\\n![Node.js CI](https://github.com/selectize/selectize.js/workflows/Node.js%20CI/badge.svg)\n\\\n[![Discussion & Help](https://img.shields.io/badge/Discuss-Keybase-cc004c?style=flat)](https://keybase.io/team/selectize)\n\nSelectize is an extensible [jQuery](http://jquery.com/)-based custom `<select>`; UI control. It's useful for tagging, contact lists, country selectors, and so on. The goal is to provide a solid & usable experience with a clean and powerful API.\n\n- [Demos](https://selectize.dev/docs/demos)\n- [Changelog](https://github.com/selectize/selectize.js/releases)\n- [Documentation](https://selectize.dev/docs/api)\n\n## Features\n\n- **Smart Option Searching / Ranking**\n  Options are efficiently scored and sorted on-the-fly (using [sifter](https://github.com/brianreavis/sifter.js)). Want to search for an item's title _and_ description? No problem.\n- **Caret between items**\n  Order matters sometimes. Use the <kbd>&larr;</kbd> and <kbd>&rarr;</kbd> arrow keys to move between selected items.\n- **Select & delete multiple items at once**\n  Hold down <kbd>option</kbd> on Mac or <kbd>ctrl</kbd> on Windows to select more than one item to delete.\n- **Díåcritîçs supported**\n  Great for international environments.\n- **Item creation**\n  Allow users to create items on the fly (async saving is supported; the control locks until the callback is fired).\n- **Remote data loading**\n  For when you have thousands of options and want them provided by the server as the user types.\n- **Clean API &amp; code**\n  Interface with it and make modifications easily. Pull requests are always welcome!\n- **Extensible**\n  [Plugin API](docs/plugins.md) for developing custom features (uses [microplugin](https://github.com/brianreavis/microplugin.js)).\n- **Touch Support**\n  Plays nice with iOS 5+ devices.\n\n### Dependencies\n\n- [jquery](https://github.com/jquery/jquery) (1.7 and greater), as [peer dependency](https://nodejs.org/en/blog/npm/peer-dependencies/)\n  - **Note:** it is installed automatically in development, or in projects using NPM 1 or 2. When using NPM from version 3 on, just a warning is thrown and the user needs to manually install an explicit version in their own project (e.g. `npm install --save jquery@3.5.1`).\n\n**Optional:**\n\n- [jquery-ui](https://github.com/jquery/jquery-ui) (required by `drag_drop` plugin)\n\n### Installation\n\nSelectize can be installed via NPM `npm install @selectize/selectize`\n\n#### Installing Manually\n\nAll pre-built files needed to use Selectize can be found in the\n[\"dist\"](dist/) folder.\n\nIf you're looking to get started with minimal fuss, include\n`selectize.min.js` (bundles Sifter and Microplugin\ndependencies – also available un-minified for debugging, just remove the\n`.min` part) and `css/selectize.default.css`.\n\nSelectize is available at [cdnjs](https://cdnjs.com/libraries/selectize.js).\n\n- [**js/**](dist/js)\n  - [selectize.js](dist/js/selectize.js) — With dependencies, minus jquery\n  - [selectize.min.js](dist/js/selectize.min.js) — With dependencies, minus jquery\n- [**scss/**](dist/scss) — Sass source files for customization (Bootstrap 3+ compatible)\n- [**less/**](dist/less) — Less source files for customization (Bootstrap 2/3 compatible)\n- [**css/**](dist/css)\n  - [selectize.css](dist/css/selectize.css) — Core styles\n  - [selectize.default.css](dist/css/selectize.default.css) — Default theme (with core styles)\n  - [selectize.bootstrap2.css](dist/css/selectize.bootstrap2.css) - Bootstrap 2 theme\n  - [selectize.bootstrap3.css](dist/css/selectize.bootstrap3.css) - Bootstrap 3 theme\n  - [selectize.bootstrap4.css](dist/css/selectize.bootstrap4.css) - Bootstrap 4 theme\n  - [selectize.bootstrap5.css](dist/css/selectize.bootstrap5.css) - Bootstrap 5 theme\n\n### Usage\n\n```js\n$(\"select\").selectize(options);\n```\n\nThe available options are [documented here](https://selectize.dev/docs/api).\n\n### Contributing\n\nWhen issuing a pull request:\n\n- please **do not include/commit changes in the `dist/` or `lib/` folders** to avoid\n  merge conflicts. A good way to include the right files is to use\n  `git gui` or `git add` when committing to select the files you want to\n  add to your commit.\n\n- please **include tests** with your feature so that we're not tempted to\n  break it in the future!\n\nAdd an entry to the top of the CHANGELOG, and update the documentation\nin `docs/` as needed. (Refactors and documentation changes don't need a\nchangelog entry.)\n\nSquash your commits together in one or a few complete, logical commits,\nwith a concise and descriptive message. One commit means one\nfeature/bugfix/thing that has changed, or a diff bringing the code one\nstep forward to a better, working state.\n\nOnce your commit is nice and clean, and you want to _discard the other\nchanges_, you can use `git checkout .` (that will erase changes to\ntracked files) and `git clean [-i/--interactive]` (to erase untracked\nfiles). **However, be careful with those commands, as their function\nis to erase things/changes.**\n\nHowever, be careful not to add the `dist/` files in your commit, as\nGrunt automatically regenerates the files in `dist/` as the source is\nchanged.\n\n#### Tests\n\nPlease ensure all the tests pass:\n\n```sh\nnpm test # defaults to ChromHeadless\nBROWSERS=Firefox npm test\nBROWSERS=Firefox,Chrome npm test\nBROWSERS=Firefox,Chrome,Safari npm test\n```\n\n#### Local environment\n\nTo run Selectize locally:\n\n```sh\nnpm start\n```\n\nYou can then run the examples at `https://loopback.website:4000/`.\n\n## License\n\nCopyright &copy; 2013–2016 [Brian Reavis](http://twitter.com/brianreavis) & [Contributors](https://github.com/selectize/selectize.js/graphs/contributors)\\\nCopyright &copy; 2020-2022 Selectize Team & [Contributors](https://github.com/selectize/selectize.js/graphs/contributors)\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at: <http://www.apache.org/licenses/LICENSE-2.0>\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.\n"
  },
  {
    "path": "SECURITY.md",
    "content": "# Security Policy\n\n## Supported Versions\n\nThe following versions are currently being supported with security updates.\n\n| Version  | Supported          |\n| -------- | ------------------ |\n| 0.15.x   | :white_check_mark: |\n| 0.14.x   | :white_check_mark: |\n| 0.13.x   | :white_check_mark: |\n| 0.12.x   | :x:                |\n| < 0.12.0 | :x:                |\n\n## Reporting a Vulnerability\n\nFile an issue with details and create a pull request with proposed changes\n\n- [Open an issue!](https://github.com/selectize/selectize.js/issues/new)\n"
  },
  {
    "path": "dist/css/selectize.bootstrap2.css",
    "content": "/**\n * Selectize (v0.15.2)\n * https://selectize.dev\n *\n * Copyright (c) 2013-2015 Brian Reavis & contributors\n * Copyright (c) 2020-2023 Selectize Team & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis <brian@thirdroute.com>\n * @author Ris Adams <selectize@risadams.com>\n */\n.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:\"\";line-height:0}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#333;font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;-webkit-font-smoothing:inherit}.selectize-input,.selectize-control.single .selectize-input.input-active{background:#fff;cursor:text;display:inline-block}.selectize-input{border:1px solid #d0d0d0;padding:7px 10px;display:inline-block;width:100%;overflow:hidden;position:relative;z-index:1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:none;box-shadow:none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.selectize-control.multi .selectize-input.has-items{padding:5px 10px 2px}.selectize-input.full{background-color:#fff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default !important}.selectize-input.focus{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}.selectize-input.dropdown-active{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.selectize-input>*{vertical-align:baseline;display:-moz-inline-stack;display:inline-block;zoom:1;*display:inline}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:0 3px 3px 0;padding:1px 3px;background:#e6e6e6;color:#333;border:1px solid #ccc}.selectize-control.multi .selectize-input>div.active{background:#08c;color:#fff;border:1px solid #0077b3}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:#474747;background:#fafafa;border:1px solid #e0e0e0}.selectize-input>input{display:inline-block !important;padding:0 !important;min-height:0 !important;max-height:none !important;max-width:100% !important;margin:0 !important;text-indent:0 !important;border:0 none !important;background:none !important;line-height:inherit !important;-webkit-user-select:auto !important;-webkit-box-shadow:none !important;box-shadow:none !important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:none !important}.selectize-input>input[placeholder]{box-sizing:initial}.selectize-input::after{content:' ';display:block;clear:left}.selectize-input.dropdown-active::before{content:' ';display:block;position:absolute;background:#e5e5e5;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;z-index:10;border:1px solid #ccc;background:#fff;margin:-1px 0 0 0;border-top:0 none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1);-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(255,237,40,0.4);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.selectize-dropdown .option,.selectize-dropdown .optgroup-header{padding:3px 10px}.selectize-dropdown .option,.selectize-dropdown [data-disabled],.selectize-dropdown [data-disabled] [data-selectable].option{cursor:inherit;opacity:.5}.selectize-dropdown [data-selectable].option{opacity:1}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.selectize-dropdown .optgroup-header{color:#999;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#08c;color:#fff}.selectize-dropdown .active.create{color:#fff}.selectize-dropdown .create{color:rgba(51,51,51,0.5)}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px;-webkit-overflow-scrolling:touch}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input{cursor:text}.selectize-control.single .selectize-input:after{content:' ';display:block;position:absolute;top:50%;right:15px;margin-top:-3px;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#000 transparent transparent transparent}.selectize-control.single .selectize-input.dropdown-active:after{margin-top:-4px;border-width:0 5px 5px 5px;border-color:transparent transparent #000 transparent}.selectize-control.rtl.single .selectize-input:after{left:15px;right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px !important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fff}.selectize-dropdown{margin:2px 0 0 0;z-index:1000;border:1px solid rgba(0,0,0,0.2);border-radius:4px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.selectize-dropdown .optgroup-header{font-size:11px;font-weight:bold;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.selectize-dropdown .optgroup:first-child:before{display:none}.selectize-dropdown .optgroup:before{content:' ';display:block;*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff;margin-left:-10px;margin-right:-10px}.selectize-dropdown [data-selectable].active{background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.selectize-dropdown-content{padding:5px 0}.selectize-dropdown-header{padding:6px 10px}.selectize-input{-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}.selectize-input.dropdown-active{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.selectize-input.dropdown-active::before{display:none}.selectize-input.input-active,.selectize-input.input-active:hover,.selectize-control.multi .selectize-input.focus{background:#fff !important;border-color:rgba(82,168,236,0.8) !important;outline:0 !important;outline:thin dotted \\9 !important;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6) !important;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6) !important;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6) !important}.selectize-control.single .selectize-input{color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.selectize-control.single .selectize-input:hover,.selectize-control.single .selectize-input:focus,.selectize-control.single .selectize-input:active,.selectize-control.single .selectize-input.active,.selectize-control.single .selectize-input.disabled,.selectize-control.single .selectize-input[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.selectize-control.single .selectize-input:active,.selectize-control.single .selectize-input.active{background-color:#ccc \\9}.selectize-control.single .selectize-input:hover{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.selectize-control.single .selectize-input.disabled{background:#e6e6e6 !important;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.selectize-control.multi .selectize-input{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.selectize-control.multi .selectize-input.has-items{padding-left:7px;padding-right:7px}.selectize-control.multi .selectize-input>div{color:#333;text-shadow:none;background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#e6e6e6;border:1px solid #ccc;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.selectize-control.multi .selectize-input>div.active{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05);color:#fff;text-shadow:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0);border-color:#0077b3 #0077b3 #046;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#08c;border:1px solid #08c}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #d0d0d0;border-bottom:0 none;border-radius:3px 3px 0 0}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:0 0 3px 3px;border-top:0 none}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active::before{top:0;bottom:unset}.selectize-control.plugin-clear_button .clear{text-decoration:none;display:flex;position:absolute;height:100%;width:25px;top:0;right:calc(10px - 3px);color:rgba(0,0,0);opacity:.4;font-weight:bold;border:0;cursor:pointer;z-index:1;font-size:21px;justify-content:center;align-items:center}.selectize-control.plugin-clear_button .clear:hover{opacity:1}.selectize-control.plugin-clear_button.single .clear{right:calc(10px - 3px + 1.5rem)}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;-webkit-box-shadow:inset 0 0 12px 4px #fff;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:'!';visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{-webkit-box-shadow:0 2px 5px rgba(0,0,0,0.2);box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown-header{position:relative;padding:3px 10px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.selectize-dropdown-header-close{position:absolute;right:10px;top:50%;color:#333;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px !important;text-decoration:none}.selectize-dropdown-header-close:hover{color:#000}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button [data-value]{position:relative;padding-right:24px !important}.selectize-control.plugin-remove_button [data-value] .remove{z-index:1;position:absolute;top:0;right:0;bottom:0;width:17px;text-align:center;font-weight:bold;font-size:12px;color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:1px 0 0 0;border-left:1px solid #ccc;-webkit-border-radius:0 2px 2px 0;-moz-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-control.plugin-remove_button [data-value] .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button [data-value].active .remove{border-left-color:#0077b3}.selectize-control.plugin-remove_button .disabled [data-value] .remove:hover{background:0}.selectize-control.plugin-remove_button .disabled [data-value] .remove{border-left-color:#e0e0e0}.selectize-control.plugin-remove_button .remove-single{position:absolute;right:0;top:0;font-size:23px}"
  },
  {
    "path": "dist/css/selectize.bootstrap3.css",
    "content": "/**\n * Selectize (v0.15.2)\n * https://selectize.dev\n *\n * Copyright (c) 2013-2015 Brian Reavis & contributors\n * Copyright (c) 2020-2023 Selectize Team & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis <brian@thirdroute.com>\n * @author Ris Adams <selectize@risadams.com>\n */\n.selectize-control.plugin-drag_drop.multi>.selectize-input.dragging{overflow:visible}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:\"!\";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header{position:relative;padding:6px 12px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:4px 4px 0 0}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close{position:absolute;right:12px;top:50%;color:#333;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px !important;text-decoration:none}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close:hover{color:black}.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content{display:flex}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button .item{display:inline-flex;align-items:center;padding-right:0 !important}.selectize-control.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:1px 5px;border-left:1px solid rgba(0,0,0,0);border-radius:0 2px 2px 0;box-sizing:border-box;margin-left:5px}.selectize-control.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button .item.active .remove{border-left-color:rgba(0,0,0,0)}.selectize-control.plugin-remove_button .disabled .item .remove:hover{background:0}.selectize-control.plugin-remove_button .disabled .item .remove{border-left-color:rgba(77,77,77,0)}.selectize-control.plugin-clear_button .clear{text-decoration:none;display:flex;position:absolute;height:100%;width:25px;top:0;right:calc(12px - 5px);color:#000;opacity:.4;font-weight:bold;border:0;cursor:pointer;z-index:1;font-size:21px;justify-content:center;align-items:center}.selectize-control.plugin-clear_button .clear:hover{opacity:1}.selectize-control.plugin-clear_button.single .clear{right:calc(12px - 5px + 1.5rem)}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #d0d0d0;border-bottom:0 none;border-radius:3px 3px 0 0;box-shadow:0 -6px 12px rgba(0,0,0,0.18)}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:0 0 3px 3px;border-top:0 none}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active::before{top:0;bottom:unset}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#333;font-family:inherit;font-size:inherit;line-height:20px;font-smoothing:inherit}.selectize-input,.selectize-control.single .selectize-input.input-active{background:#fff;cursor:text;display:inline-block}.selectize-input{border:1px solid #ccc;padding:6px 12px;display:inline-block;width:100%;position:relative;z-index:1;box-sizing:border-box;box-shadow:none;border-radius:4px}.selectize-control.multi .selectize-input.has-items{padding:calc(6px - 1px - 0px) 12px calc(6px - 1px - 3px - 0px)}.selectize-input.full{background-color:#fff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default !important}.selectize-input.focus{box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}.selectize-input.dropdown-active{border-radius:4px 4px 0 0}.selectize-input>*{vertical-align:baseline;display:inline-block;zoom:1}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:0 3px 3px 0;padding:1px 5px;background:#efefef;color:#333;border:0 solid rgba(0,0,0,0)}.selectize-control.multi .selectize-input>div.active{background:#337ab7;color:#fff;border:0 solid rgba(0,0,0,0)}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:gray;background:white;border:0 solid rgba(77,77,77,0)}.selectize-input>input{display:inline-block !important;padding:0 !important;min-height:0 !important;max-height:none !important;max-width:100% !important;margin:0 !important;text-indent:0 !important;border:0 none !important;background:none !important;line-height:inherit !important;user-select:auto !important;box-shadow:none !important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:none !important}.selectize-input>input[placeholder]{box-sizing:initial}.selectize-input.has-items>input{margin:0 0 !important}.selectize-input::after{content:\" \";display:block;clear:left}.selectize-input.dropdown-active::before{content:\" \";display:block;position:absolute;background:#d6d6d6;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;top:100%;left:0;width:100%;z-index:10;border:1px solid #d0d0d0;background:#fff;margin:-1px 0 0 0;border-top:0 none;box-sizing:border-box;box-shadow:0 1px 3px rgba(0,0,0,0.1);border-radius:0 0 4px 4px}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(255,237,40,0.4);border-radius:1px}.selectize-dropdown .option,.selectize-dropdown .optgroup-header,.selectize-dropdown .no-results,.selectize-dropdown .create{padding:3px 12px}.selectize-dropdown .option,.selectize-dropdown [data-disabled],.selectize-dropdown [data-disabled] [data-selectable].option{cursor:inherit;opacity:.5}.selectize-dropdown [data-selectable].option{opacity:1;cursor:pointer}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.selectize-dropdown .optgroup-header{color:#777;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#337ab7;color:#fff}.selectize-dropdown .active.create{color:#262626}.selectize-dropdown .selected{background-color:#337ab7;color:#fff}.selectize-dropdown .create{color:rgba(51,51,51,0.5)}.selectize-dropdown .active:not(.selected){background:#f5f5f5;color:#262626}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px;overflow-scrolling:touch}.selectize-dropdown-emptyoptionlabel{text-align:center}.selectize-dropdown .spinner{display:inline-block;width:30px;height:30px;margin:3px 12px}.selectize-dropdown .spinner:after{content:\" \";display:block;width:24px;height:24px;margin:3px;border-radius:50%;border:5px solid #d0d0d0;border-color:#d0d0d0 transparent #d0d0d0 transparent;animation:lds-dual-ring 1.2s linear infinite}@keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input:not(:read-only){cursor:text}.selectize-control.single .selectize-input:not(.no-arrow):after{content:\" \";display:block;position:absolute;top:50%;right:17px;margin-top:-3px;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#333 transparent transparent transparent}.selectize-control.single .selectize-input:not(.no-arrow).dropdown-active:after{margin-top:-4px;border-width:0 5px 5px 5px;border-color:transparent transparent #333 transparent}.selectize-control.rtl{text-align:right}.selectize-control.rtl.single .selectize-input:after{left:17px;right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px !important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fff}.selectize-dropdown,.selectize-dropdown.form-control{height:auto;padding:0;margin:2px 0 0 0;z-index:1000;background:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;box-shadow:0 6px 12px rgba(0,0,0,0.175)}.selectize-dropdown .optgroup-header{font-size:12px;line-height:1.428571429}.selectize-dropdown .optgroup:first-child:before{display:none}.selectize-dropdown .optgroup:before{content:\" \";display:block;height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5;margin-left:-12px;margin-right:-12px}.selectize-dropdown-content{padding:5px 0}.selectize-dropdown-emptyoptionlabel{text-align:center}.selectize-input{min-height:34px}.selectize-input.dropdown-active{border-radius:4px}.selectize-input.dropdown-active::before{display:none}.selectize-input.focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.has-error .selectize-input{border-color:#a94442;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .selectize-input:focus{border-color:#843534;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.selectize-control.multi .selectize-input.has-items{padding-left:7px;padding-right:7px}.selectize-control.multi .selectize-input>div{border-radius:3px}.form-control.selectize-control{padding:0;height:auto;border:0;background:0;box-shadow:none;border-radius:0}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #d0d0d0;border-bottom:0 none;border-radius:3px 3px 0 0;box-shadow:0 -6px 12px rgba(0,0,0,0.18)}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:0 0 3px 3px;border-top:0 none}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active::before{top:0;bottom:unset}.selectize-control.plugin-clear_button .clear{text-decoration:none;display:flex;position:absolute;height:100%;width:25px;top:0;right:calc(12px - 5px);color:#000;opacity:.4;font-weight:bold;border:0;cursor:pointer;z-index:1;font-size:21px;justify-content:center;align-items:center}.selectize-control.plugin-clear_button .clear:hover{opacity:1}.selectize-control.plugin-clear_button.single .clear{right:calc(12px - 5px + 1.5rem)}.selectize-control.plugin-drag_drop.multi>.selectize-input.dragging{overflow:visible}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:\"!\";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header{position:relative;padding:6px 12px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:4px 4px 0 0}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close{position:absolute;right:12px;top:50%;color:#333;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px !important;text-decoration:none}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close:hover{color:black}.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content{display:flex}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button .item{display:inline-flex;align-items:center;padding-right:0 !important}.selectize-control.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:1px 5px;border-left:1px solid rgba(0,0,0,0);border-radius:0 2px 2px 0;box-sizing:border-box;margin-left:5px}.selectize-control.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button .item.active .remove{border-left-color:rgba(0,0,0,0)}.selectize-control.plugin-remove_button .disabled .item .remove:hover{background:0}.selectize-control.plugin-remove_button .disabled .item .remove{border-left-color:rgba(77,77,77,0)}"
  },
  {
    "path": "dist/css/selectize.bootstrap4.css",
    "content": "/**\n * Selectize (v0.15.2)\n * https://selectize.dev\n *\n * Copyright (c) 2013-2015 Brian Reavis & contributors\n * Copyright (c) 2020-2023 Selectize Team & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis <brian@thirdroute.com>\n * @author Ris Adams <selectize@risadams.com>\n */\n.selectize-control.plugin-drag_drop.multi>.selectize-input.dragging{overflow:visible}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:\"!\";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header{position:relative;padding:6px .75rem;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:.25rem .25rem 0 0}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close{position:absolute;right:.75rem;top:50%;color:#343a40;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px !important;text-decoration:none}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close:hover{color:black}.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content{display:flex}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button .item{display:inline-flex;align-items:center;padding-right:0 !important}.selectize-control.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:1px 5px;border-left:1px solid #dee2e6;border-radius:0 2px 2px 0;box-sizing:border-box;margin-left:5px}.selectize-control.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button .item.active .remove{border-left-color:rgba(0,0,0,0)}.selectize-control.plugin-remove_button .disabled .item .remove:hover{background:0}.selectize-control.plugin-remove_button .disabled .item .remove{border-left-color:white}.selectize-control.plugin-clear_button .clear{text-decoration:none;display:flex;position:absolute;height:100%;width:25px;top:0;right:calc(0.75rem - 5px);color:#000;opacity:.4;font-weight:bold;border:0;cursor:pointer;z-index:1;font-size:21px;justify-content:center;align-items:center}.selectize-control.plugin-clear_button .clear:hover{opacity:1}.selectize-control.plugin-clear_button.single .clear{right:calc(0.75rem - 5px + 1.5rem)}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #d0d0d0;border-bottom:0 none;border-radius:3px 3px 0 0;box-shadow:0 -6px 12px rgba(0,0,0,0.18)}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:0 0 3px 3px;border-top:0 none}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active::before{top:0;bottom:unset}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#343a40;font-family:inherit;font-size:inherit;line-height:1.5;font-smoothing:inherit}.selectize-input,.selectize-control.single .selectize-input.input-active{background:#fff;cursor:text;display:inline-block}.selectize-input{border:1px solid #ced4da;padding:.375rem .75rem;display:inline-block;width:100%;position:relative;z-index:1;box-sizing:border-box;box-shadow:none;border-radius:.25rem}.selectize-control.multi .selectize-input.has-items{padding:calc(0.375rem - 1px - 0px) 0.75rem calc(0.375rem - 1px - 3px - 0px)}.selectize-input.full{background-color:#fff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default !important}.selectize-input.focus{box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}.selectize-input.dropdown-active{border-radius:.25rem .25rem 0 0}.selectize-input>*{vertical-align:baseline;display:inline-block;zoom:1}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:0 3px 3px 0;padding:1px 5px;background:#efefef;color:#343a40;border:0 solid #dee2e6}.selectize-control.multi .selectize-input>div.active{background:#007bff;color:#fff;border:0 solid rgba(0,0,0,0)}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:#878787;background:white;border:0 solid white}.selectize-input>input{display:inline-block !important;padding:0 !important;min-height:0 !important;max-height:none !important;max-width:100% !important;margin:0 !important;text-indent:0 !important;border:0 none !important;background:none !important;line-height:inherit !important;user-select:auto !important;box-shadow:none !important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:none !important}.selectize-input>input[placeholder]{box-sizing:initial}.selectize-input.has-items>input{margin:0 0 !important}.selectize-input::after{content:\" \";display:block;clear:left}.selectize-input.dropdown-active::before{content:\" \";display:block;position:absolute;background:#d8dde1;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;top:100%;left:0;width:100%;z-index:10;border:1px solid #d0d0d0;background:#fff;margin:-1px 0 0 0;border-top:0 none;box-sizing:border-box;box-shadow:0 1px 3px rgba(0,0,0,0.1);border-radius:0 0 .25rem .25rem}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(255,237,40,0.4);border-radius:1px}.selectize-dropdown .option,.selectize-dropdown .optgroup-header,.selectize-dropdown .no-results,.selectize-dropdown .create{padding:3px .75rem}.selectize-dropdown .option,.selectize-dropdown [data-disabled],.selectize-dropdown [data-disabled] [data-selectable].option{cursor:inherit;opacity:.5}.selectize-dropdown [data-selectable].option{opacity:1;cursor:pointer}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.selectize-dropdown .optgroup-header{color:#6c757d;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#007bff;color:#fff}.selectize-dropdown .active.create{color:#16181b}.selectize-dropdown .selected{background-color:#007bff;color:#fff}.selectize-dropdown .create{color:rgba(52,58,64,0.5)}.selectize-dropdown .active:not(.selected){background:#e9ecef;color:#16181b}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px;overflow-scrolling:touch}.selectize-dropdown-emptyoptionlabel{text-align:center}.selectize-dropdown .spinner{display:inline-block;width:30px;height:30px;margin:3px .75rem}.selectize-dropdown .spinner:after{content:\" \";display:block;width:24px;height:24px;margin:3px;border-radius:50%;border:5px solid #d0d0d0;border-color:#d0d0d0 transparent #d0d0d0 transparent;animation:lds-dual-ring 1.2s linear infinite}@keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input:not(:read-only){cursor:text}.selectize-control.single .selectize-input:not(.no-arrow):after{content:\" \";display:block;position:absolute;top:50%;right:calc(0.75rem + 5px);margin-top:-3px;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#343a40 transparent transparent transparent}.selectize-control.single .selectize-input:not(.no-arrow).dropdown-active:after{margin-top:-4px;border-width:0 5px 5px 5px;border-color:transparent transparent #343a40 transparent}.selectize-control.rtl{text-align:right}.selectize-control.rtl.single .selectize-input:after{left:calc(0.75rem + 5px);right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px !important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fff}.selectize-dropdown,.selectize-dropdown.form-control{height:auto;padding:0;margin:2px 0 0 0;z-index:1000;background:#fff;border:1px solid rgba(0,0,0,0.15);border-radius:.25rem;box-shadow:0 6px 12px rgba(0,0,0,0.175)}.selectize-dropdown .optgroup-header{font-size:.875rem;line-height:1.5}.selectize-dropdown .optgroup:first-child:before{display:none}.selectize-dropdown .optgroup:before{content:\" \";display:block;height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef;margin-left:-0.75rem;margin-right:-0.75rem}.selectize-dropdown .create{padding-left:.75rem}.selectize-dropdown-content{padding:5px 0}.selectize-dropdown-emptyoptionlabel{text-align:center}.selectize-input{min-height:calc(1.5em + 0.75rem + 2px);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.selectize-input{transition:none}}.selectize-input.dropdown-active{border-radius:.25rem}.selectize-input.dropdown-active::before{display:none}.selectize-input.focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,0.25)}.is-invalid .selectize-input{border-color:#dc3545;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.is-invalid .selectize-input:focus{border-color:#bd2130;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #eb8c95}.selectize-control.form-control-sm .selectize-input.has-items{min-height:calc(1.5em + 0.5rem + 2px) !important;height:calc(1.5em + 0.5rem + 2px);padding:.25rem .5rem !important;font-size:.875rem;line-height:1.5}.selectize-control.multi .selectize-input.has-items{height:auto;padding-left:calc(0.75rem - 5px);padding-right:calc(0.75rem - 5px)}.selectize-control.multi .selectize-input>div{border-radius:calc(0.25rem - 1px)}.form-control.selectize-control{padding:0;height:auto;border:0;background:0;box-shadow:none;border-radius:0}.input-group .selectize-control:not(:last-child) .selectize-input{overflow:unset;border-top-right-radius:0;border-bottom-right-radius:0}.input-group .selectize-control:not(:first-child) .selectize-input{overflow:unset;border-top-left-radius:0;border-bottom-left-radius:0}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #ced4da !important;border-bottom:1px solid #ced4da !important;border-radius:.25rem !important}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:.25rem !important;border-top:1px solid #ced4da !important}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #d0d0d0;border-bottom:0 none;border-radius:3px 3px 0 0;box-shadow:0 -6px 12px rgba(0,0,0,0.18)}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:0 0 3px 3px;border-top:0 none}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active::before{top:0;bottom:unset}.selectize-control.plugin-clear_button .clear{text-decoration:none;display:flex;position:absolute;height:100%;width:25px;top:0;right:calc(0.75rem - 5px);color:#000;opacity:.4;font-weight:bold;border:0;cursor:pointer;z-index:1;font-size:21px;justify-content:center;align-items:center}.selectize-control.plugin-clear_button .clear:hover{opacity:1}.selectize-control.plugin-clear_button.single .clear{right:calc(0.75rem - 5px + 1.5rem)}.selectize-control.plugin-drag_drop.multi>.selectize-input.dragging{overflow:visible}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:\"!\";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header{position:relative;padding:6px .75rem;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:.25rem .25rem 0 0}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close{position:absolute;right:.75rem;top:50%;color:#343a40;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px !important;text-decoration:none}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close:hover{color:black}.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content{display:flex}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button .item{display:inline-flex;align-items:center;padding-right:0 !important}.selectize-control.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:1px 5px;border-left:1px solid #dee2e6;border-radius:0 2px 2px 0;box-sizing:border-box;margin-left:5px}.selectize-control.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button .item.active .remove{border-left-color:rgba(0,0,0,0)}.selectize-control.plugin-remove_button .disabled .item .remove:hover{background:0}.selectize-control.plugin-remove_button .disabled .item .remove{border-left-color:white}"
  },
  {
    "path": "dist/css/selectize.bootstrap5.css",
    "content": "/**\n * Selectize (v0.15.2)\n * https://selectize.dev\n *\n * Copyright (c) 2013-2015 Brian Reavis & contributors\n * Copyright (c) 2020-2023 Selectize Team & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis <brian@thirdroute.com>\n * @author Ris Adams <selectize@risadams.com>\n */\n.selectize-control.plugin-drag_drop.multi>.selectize-input.dragging{overflow:visible}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:\"!\";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header{position:relative;padding:6px .75rem;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:.375rem .375rem 0 0}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close{position:absolute;right:.75rem;top:50%;color:#343a40;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px !important;text-decoration:none}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close:hover{color:black}.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content{display:flex}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button .item{display:inline-flex;align-items:center;padding-right:0 !important}.selectize-control.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:1px 5px;border-left:1px solid #dee2e6;border-radius:0 2px 2px 0;box-sizing:border-box;margin-left:5px}.selectize-control.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button .item.active .remove{border-left-color:rgba(0,0,0,0)}.selectize-control.plugin-remove_button .disabled .item .remove:hover{background:0}.selectize-control.plugin-remove_button .disabled .item .remove{border-left-color:white}.selectize-control.plugin-clear_button .clear{text-decoration:none;display:flex;position:absolute;height:100%;width:25px;top:0;right:calc(0.75rem - 5px);color:#000;opacity:.4;font-weight:bold;border:0;cursor:pointer;z-index:1;font-size:21px;justify-content:center;align-items:center}.selectize-control.plugin-clear_button .clear:hover{opacity:1}.selectize-control.plugin-clear_button.single .clear{right:calc(0.75rem - 5px + 1.5rem)}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #d0d0d0;border-bottom:0 none;border-radius:3px 3px 0 0;box-shadow:0 -6px 12px rgba(0,0,0,0.18)}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:0 0 3px 3px;border-top:0 none}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active::before{top:0;bottom:unset}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#343a40;font-family:inherit;font-size:inherit;line-height:1.5;font-smoothing:inherit}.selectize-input,.selectize-control.single .selectize-input.input-active{background:#fff;cursor:text;display:inline-block}.selectize-input{border:1px solid #ced4da;padding:.375rem .75rem;display:inline-block;width:100%;position:relative;z-index:1;box-sizing:border-box;box-shadow:none;border-radius:.375rem}.selectize-control.multi .selectize-input.has-items{padding:calc(0.375rem - 1px - 0px) 0.75rem calc(0.375rem - 1px - 3px - 0px)}.selectize-input.full{background-color:#fff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default !important}.selectize-input.focus{box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}.selectize-input.dropdown-active{border-radius:.375rem .375rem 0 0}.selectize-input>*{vertical-align:baseline;display:inline-block;zoom:1}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:0 3px 3px 0;padding:1px 5px;background:#efefef;color:#343a40;border:0 solid #dee2e6}.selectize-control.multi .selectize-input>div.active{background:#0d6efd;color:#fff;border:0 solid rgba(0,0,0,0)}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:#878787;background:white;border:0 solid white}.selectize-input>input{display:inline-block !important;padding:0 !important;min-height:0 !important;max-height:none !important;max-width:100% !important;margin:0 !important;text-indent:0 !important;border:0 none !important;background:none !important;line-height:inherit !important;user-select:auto !important;box-shadow:none !important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:none !important}.selectize-input>input[placeholder]{box-sizing:initial}.selectize-input.has-items>input{margin:0 0 !important}.selectize-input::after{content:\" \";display:block;clear:left}.selectize-input.dropdown-active::before{content:\" \";display:block;position:absolute;background:#d8dde1;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;top:100%;left:0;width:100%;z-index:10;border:1px solid #d0d0d0;background:#fff;margin:-1px 0 0 0;border-top:0 none;box-sizing:border-box;box-shadow:0 1px 3px rgba(0,0,0,0.1);border-radius:0 0 .375rem .375rem}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(255,237,40,0.4);border-radius:1px}.selectize-dropdown .option,.selectize-dropdown .optgroup-header,.selectize-dropdown .no-results,.selectize-dropdown .create{padding:3px .75rem}.selectize-dropdown .option,.selectize-dropdown [data-disabled],.selectize-dropdown [data-disabled] [data-selectable].option{cursor:inherit;opacity:.5}.selectize-dropdown [data-selectable].option{opacity:1;cursor:pointer}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.selectize-dropdown .optgroup-header{color:#6c757d;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#0d6efd;color:#fff}.selectize-dropdown .active.create{color:#1e2125}.selectize-dropdown .selected{background-color:#0d6efd;color:#fff}.selectize-dropdown .create{color:rgba(52,58,64,0.5)}.selectize-dropdown .active:not(.selected){background:#e9ecef;color:#1e2125}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px;overflow-scrolling:touch}.selectize-dropdown-emptyoptionlabel{text-align:center}.selectize-dropdown .spinner{display:inline-block;width:30px;height:30px;margin:3px .75rem}.selectize-dropdown .spinner:after{content:\" \";display:block;width:24px;height:24px;margin:3px;border-radius:50%;border:5px solid #d0d0d0;border-color:#d0d0d0 transparent #d0d0d0 transparent;animation:lds-dual-ring 1.2s linear infinite}@keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input:not(:read-only){cursor:text}.selectize-control.single .selectize-input:not(.no-arrow):after{content:\" \";display:block;position:absolute;top:50%;right:calc(0.75rem + 5px);margin-top:-3px;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#343a40 transparent transparent transparent}.selectize-control.single .selectize-input:not(.no-arrow).dropdown-active:after{margin-top:-4px;border-width:0 5px 5px 5px;border-color:transparent transparent #343a40 transparent}.selectize-control.rtl{text-align:right}.selectize-control.rtl.single .selectize-input:after{left:calc(0.75rem + 5px);right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px !important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fff}.selectize-dropdown,.selectize-dropdown.form-control{height:auto;padding:0;margin:2px 0 0 0;z-index:1000;background:#fff;border:1px solid var(--bs-border-color-translucent);border-radius:.375rem;box-shadow:0 6px 12px rgba(0,0,0,0.175)}.selectize-dropdown .optgroup-header{font-size:.875rem;line-height:1.5}.selectize-dropdown .optgroup:first-child:before{display:none}.selectize-dropdown .optgroup:before{content:\" \";display:block;height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid var(--bs-border-color-translucent);margin-left:-0.75rem;margin-right:-0.75rem}.selectize-dropdown .create{padding-left:.75rem}.selectize-dropdown-content{padding:5px 0}.selectize-dropdown-emptyoptionlabel{text-align:center}.selectize-input{min-height:calc(1.5em + 0.75rem + 2px);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.selectize-input{transition:none}}.selectize-input.dropdown-active{border-radius:.375rem}.selectize-input.dropdown-active::before{display:none}.selectize-input.focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,0.25)}.is-invalid .selectize-input{border-color:#dc3545;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.is-invalid .selectize-input:focus{border-color:#bd2130;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #eb8c95}.selectize-control.form-control-sm .selectize-input{min-height:calc(1.5em + 0.5rem + 2px) !important;height:calc(1.5em + 0.5rem + 2px);padding:.25rem .5rem !important;font-size:.875rem;line-height:1.25}.selectize-control.multi .selectize-input{height:auto;padding-left:calc(0.75rem - 5px);padding-right:calc(0.75rem - 5px)}.selectize-control.multi .selectize-input>div{border-radius:calc(0.375rem - 1px)}.form-select.selectize-control,.form-control.selectize-control{padding:0;height:auto;border:0;background:0;box-shadow:none;border-radius:0}.input-group>.input-group-append>.btn,.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.input-group-prepend>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group .selectize-control:not(:last-child) .selectize-input{overflow:unset;border-top-right-radius:0;border-bottom-right-radius:0}.input-group .selectize-control:not(:first-child) .selectize-input{overflow:unset;border-top-left-radius:0;border-bottom-left-radius:0}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #ced4da !important;border-bottom:1px solid #ced4da !important;border-radius:.375rem !important}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:.375rem !important;border-top:1px solid #ced4da !important}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #d0d0d0;border-bottom:0 none;border-radius:3px 3px 0 0;box-shadow:0 -6px 12px rgba(0,0,0,0.18)}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:0 0 3px 3px;border-top:0 none}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active::before{top:0;bottom:unset}.selectize-control.plugin-clear_button .clear{text-decoration:none;display:flex;position:absolute;height:100%;width:25px;top:0;right:calc(0.75rem - 5px);color:#000;opacity:.4;font-weight:bold;border:0;cursor:pointer;z-index:1;font-size:21px;justify-content:center;align-items:center}.selectize-control.plugin-clear_button .clear:hover{opacity:1}.selectize-control.plugin-clear_button.single .clear{right:calc(0.75rem - 5px + 1.5rem)}.selectize-control.plugin-drag_drop.multi>.selectize-input.dragging{overflow:visible}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:\"!\";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header{position:relative;padding:6px .75rem;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:.375rem .375rem 0 0}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close{position:absolute;right:.75rem;top:50%;color:#343a40;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px !important;text-decoration:none}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close:hover{color:black}.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content{display:flex}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button .item{display:inline-flex;align-items:center;padding-right:0 !important}.selectize-control.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:1px 5px;border-left:1px solid #dee2e6;border-radius:0 2px 2px 0;box-sizing:border-box;margin-left:5px}.selectize-control.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button .item.active .remove{border-left-color:rgba(0,0,0,0)}.selectize-control.plugin-remove_button .disabled .item .remove:hover{background:0}.selectize-control.plugin-remove_button .disabled .item .remove{border-left-color:white}"
  },
  {
    "path": "dist/css/selectize.css",
    "content": "/**\n * Selectize (v0.15.2)\n * https://selectize.dev\n *\n * Copyright (c) 2013-2015 Brian Reavis & contributors\n * Copyright (c) 2020-2023 Selectize Team & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis <brian@thirdroute.com>\n * @author Ris Adams <selectize@risadams.com>\n */\n.selectize-control.plugin-drag_drop.multi>.selectize-input.dragging{overflow:visible}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:\"!\";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header{position:relative;padding:10px 8px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:3px 3px 0 0}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close{position:absolute;right:8px;top:50%;color:#303030;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px !important;text-decoration:none}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close:hover{color:black}.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content{display:flex}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button .item{display:inline-flex;align-items:center;padding-right:0 !important}.selectize-control.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:2px 6px;border-left:1px solid #d0d0d0;border-radius:0 2px 2px 0;box-sizing:border-box;margin-left:6px}.selectize-control.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button .item.active .remove{border-left-color:#cacaca}.selectize-control.plugin-remove_button .disabled .item .remove:hover{background:0}.selectize-control.plugin-remove_button .disabled .item .remove{border-left-color:white}.selectize-control.plugin-clear_button .clear{text-decoration:none;display:flex;position:absolute;height:100%;width:25px;top:0;right:calc(8px - 6px);color:#000;opacity:.4;font-weight:bold;border:0;cursor:pointer;z-index:1;font-size:21px;justify-content:center;align-items:center}.selectize-control.plugin-clear_button .clear:hover{opacity:1}.selectize-control.plugin-clear_button.single .clear{right:calc(8px - 6px + 1.5rem)}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #d0d0d0;border-bottom:0 none;border-radius:3px 3px 0 0;box-shadow:0 -6px 12px rgba(0,0,0,0.18)}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:0 0 3px 3px;border-top:0 none}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active::before{top:0;bottom:unset}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#303030;font-family:inherit;font-size:13px;line-height:18px;font-smoothing:inherit}.selectize-input,.selectize-control.single .selectize-input.input-active{background:#fff;cursor:text;display:inline-block}.selectize-input{border:1px solid #d0d0d0;padding:8px 8px;display:inline-block;width:100%;position:relative;z-index:1;box-sizing:border-box;box-shadow:inset 0 1px 1px rgba(0,0,0,0.1);border-radius:3px}.selectize-control.multi .selectize-input.has-items{padding:calc(8px - 2px - 0px) 8px calc(8px - 2px - 3px - 0px)}.selectize-input.full{background-color:#fff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default !important}.selectize-input.focus{box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}.selectize-input.dropdown-active{border-radius:3px 3px 0 0}.selectize-input>*{vertical-align:baseline;display:inline-block;zoom:1}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:0 3px 3px 0;padding:2px 6px;background:#f2f2f2;color:#303030;border:0 solid #d0d0d0}.selectize-control.multi .selectize-input>div.active{background:#e8e8e8;color:#303030;border:0 solid #cacaca}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:#7d7d7d;background:white;border:0 solid white}.selectize-input>input{display:inline-block !important;padding:0 !important;min-height:0 !important;max-height:none !important;max-width:100% !important;margin:0 !important;text-indent:0 !important;border:0 none !important;background:none !important;line-height:inherit !important;user-select:auto !important;box-shadow:none !important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:none !important}.selectize-input>input[placeholder]{box-sizing:initial}.selectize-input.has-items>input{margin:0 0 !important}.selectize-input::after{content:\" \";display:block;clear:left}.selectize-input.dropdown-active::before{content:\" \";display:block;position:absolute;background:#f0f0f0;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;top:100%;left:0;width:100%;z-index:10;border:1px solid #d0d0d0;background:#fff;margin:-1px 0 0 0;border-top:0 none;box-sizing:border-box;box-shadow:0 1px 3px rgba(0,0,0,0.1);border-radius:0 0 3px 3px}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(125,168,208,0.2);border-radius:1px}.selectize-dropdown .option,.selectize-dropdown .optgroup-header,.selectize-dropdown .no-results,.selectize-dropdown .create{padding:5px 8px}.selectize-dropdown .option,.selectize-dropdown [data-disabled],.selectize-dropdown [data-disabled] [data-selectable].option{cursor:inherit;opacity:.5}.selectize-dropdown [data-selectable].option{opacity:1;cursor:pointer}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.selectize-dropdown .optgroup-header{color:#303030;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#e8e8e8;color:#303030}.selectize-dropdown .active.create{color:#495c68}.selectize-dropdown .selected{background-color:#e8e8e8;color:#303030}.selectize-dropdown .create{color:rgba(48,48,48,0.5)}.selectize-dropdown .active:not(.selected){background:#f5fafd;color:#495c68}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px;overflow-scrolling:touch}.selectize-dropdown-emptyoptionlabel{text-align:center}.selectize-dropdown .spinner{display:inline-block;width:30px;height:30px;margin:5px 8px}.selectize-dropdown .spinner:after{content:\" \";display:block;width:24px;height:24px;margin:3px;border-radius:50%;border:5px solid #d0d0d0;border-color:#d0d0d0 transparent #d0d0d0 transparent;animation:lds-dual-ring 1.2s linear infinite}@keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input:not(:read-only){cursor:text}.selectize-control.single .selectize-input:not(.no-arrow):after{content:\" \";display:block;position:absolute;top:50%;right:15px;margin-top:-3px;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#808080 transparent transparent transparent}.selectize-control.single .selectize-input:not(.no-arrow).dropdown-active:after{margin-top:-4px;border-width:0 5px 5px 5px;border-color:transparent transparent #808080 transparent}.selectize-control.rtl{text-align:right}.selectize-control.rtl.single .selectize-input:after{left:15px;right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px !important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fafafa}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #d0d0d0;border-bottom:0 none;border-radius:3px 3px 0 0;box-shadow:0 -6px 12px rgba(0,0,0,0.18)}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:0 0 3px 3px;border-top:0 none}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active::before{top:0;bottom:unset}.selectize-control.plugin-clear_button .clear{text-decoration:none;display:flex;position:absolute;height:100%;width:25px;top:0;right:calc(8px - 6px);color:#000;opacity:.4;font-weight:bold;border:0;cursor:pointer;z-index:1;font-size:21px;justify-content:center;align-items:center}.selectize-control.plugin-clear_button .clear:hover{opacity:1}.selectize-control.plugin-clear_button.single .clear{right:calc(8px - 6px + 1.5rem)}.selectize-control.plugin-drag_drop.multi>.selectize-input.dragging{overflow:visible}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:\"!\";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header{position:relative;padding:10px 8px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:3px 3px 0 0}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close{position:absolute;right:8px;top:50%;color:#303030;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px !important;text-decoration:none}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close:hover{color:black}.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content{display:flex}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button .item{display:inline-flex;align-items:center;padding-right:0 !important}.selectize-control.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:2px 6px;border-left:1px solid #d0d0d0;border-radius:0 2px 2px 0;box-sizing:border-box;margin-left:6px}.selectize-control.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button .item.active .remove{border-left-color:#cacaca}.selectize-control.plugin-remove_button .disabled .item .remove:hover{background:0}.selectize-control.plugin-remove_button .disabled .item .remove{border-left-color:white}"
  },
  {
    "path": "dist/css/selectize.default.css",
    "content": "/**\n * Selectize (v0.15.2)\n * https://selectize.dev\n *\n * Copyright (c) 2013-2015 Brian Reavis & contributors\n * Copyright (c) 2020-2023 Selectize Team & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis <brian@thirdroute.com>\n * @author Ris Adams <selectize@risadams.com>\n */\n.selectize-control.plugin-drag_drop.multi>.selectize-input.dragging{overflow:visible}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:\"!\";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header{position:relative;padding:10px 8px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:3px 3px 0 0}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close{position:absolute;right:8px;top:50%;color:#303030;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px !important;text-decoration:none}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close:hover{color:black}.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content{display:flex}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button .item{display:inline-flex;align-items:center;padding-right:0 !important}.selectize-control.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:2px 6px;border-left:1px solid #0073bb;border-radius:0 2px 2px 0;box-sizing:border-box;margin-left:6px}.selectize-control.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button .item.active .remove{border-left-color:#00578d}.selectize-control.plugin-remove_button .disabled .item .remove:hover{background:0}.selectize-control.plugin-remove_button .disabled .item .remove{border-left-color:#aaa}.selectize-control.plugin-clear_button .clear{text-decoration:none;display:flex;position:absolute;height:100%;width:25px;top:0;right:calc(8px - 6px);color:#000;opacity:.4;font-weight:bold;border:0;cursor:pointer;z-index:1;font-size:21px;justify-content:center;align-items:center}.selectize-control.plugin-clear_button .clear:hover{opacity:1}.selectize-control.plugin-clear_button.single .clear{right:calc(8px - 6px + 1.5rem)}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #d0d0d0;border-bottom:0 none;border-radius:3px 3px 0 0;box-shadow:0 -6px 12px rgba(0,0,0,0.18)}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:0 0 3px 3px;border-top:0 none}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active::before{top:0;bottom:unset}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#303030;font-family:inherit;font-size:13px;line-height:18px;font-smoothing:inherit}.selectize-input,.selectize-control.single .selectize-input.input-active{background:#fff;cursor:text;display:inline-block}.selectize-input{border:1px solid #d0d0d0;padding:8px 8px;display:inline-block;width:100%;position:relative;z-index:1;box-sizing:border-box;box-shadow:inset 0 1px 1px rgba(0,0,0,0.1);border-radius:3px}.selectize-control.multi .selectize-input.has-items{padding:calc(8px - 2px - 1px) 8px calc(8px - 2px - 3px - 1px)}.selectize-input.full{background-color:#fff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default !important}.selectize-input.focus{box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}.selectize-input.dropdown-active{border-radius:3px 3px 0 0}.selectize-input>*{vertical-align:baseline;display:inline-block;zoom:1}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:0 3px 3px 0;padding:2px 6px;background:#1da7ee;color:#fff;border:1px solid #0073bb}.selectize-control.multi .selectize-input>div.active{background:#92c836;color:#fff;border:1px solid #00578d}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:white;background:#d2d2d2;border:1px solid #aaa}.selectize-input>input{display:inline-block !important;padding:0 !important;min-height:0 !important;max-height:none !important;max-width:100% !important;margin:0 !important;text-indent:0 !important;border:0 none !important;background:none !important;line-height:inherit !important;user-select:auto !important;box-shadow:none !important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:none !important}.selectize-input>input[placeholder]{box-sizing:initial}.selectize-input.has-items>input{margin:0 0 !important}.selectize-input::after{content:\" \";display:block;clear:left}.selectize-input.dropdown-active::before{content:\" \";display:block;position:absolute;background:#f0f0f0;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;top:100%;left:0;width:100%;z-index:10;border:1px solid #d0d0d0;background:#fff;margin:-1px 0 0 0;border-top:0 none;box-sizing:border-box;box-shadow:0 1px 3px rgba(0,0,0,0.1);border-radius:0 0 3px 3px}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(125,168,208,0.2);border-radius:1px}.selectize-dropdown .option,.selectize-dropdown .optgroup-header,.selectize-dropdown .no-results,.selectize-dropdown .create{padding:5px 8px}.selectize-dropdown .option,.selectize-dropdown [data-disabled],.selectize-dropdown [data-disabled] [data-selectable].option{cursor:inherit;opacity:.5}.selectize-dropdown [data-selectable].option{opacity:1;cursor:pointer}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.selectize-dropdown .optgroup-header{color:#303030;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#92c836;color:#fff}.selectize-dropdown .active.create{color:#495c68}.selectize-dropdown .selected{background-color:#92c836;color:#fff}.selectize-dropdown .create{color:rgba(48,48,48,0.5)}.selectize-dropdown .active:not(.selected){background:#f5fafd;color:#495c68}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px;overflow-scrolling:touch}.selectize-dropdown-emptyoptionlabel{text-align:center}.selectize-dropdown .spinner{display:inline-block;width:30px;height:30px;margin:5px 8px}.selectize-dropdown .spinner:after{content:\" \";display:block;width:24px;height:24px;margin:3px;border-radius:50%;border:5px solid #d0d0d0;border-color:#d0d0d0 transparent #d0d0d0 transparent;animation:lds-dual-ring 1.2s linear infinite}@keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input:not(:read-only){cursor:text}.selectize-control.single .selectize-input:not(.no-arrow):after{content:\" \";display:block;position:absolute;top:50%;right:15px;margin-top:-3px;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#808080 transparent transparent transparent}.selectize-control.single .selectize-input:not(.no-arrow).dropdown-active:after{margin-top:-4px;border-width:0 5px 5px 5px;border-color:transparent transparent #808080 transparent}.selectize-control.rtl{text-align:right}.selectize-control.rtl.single .selectize-input:after{left:15px;right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px !important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fafafa}.selectize-control.multi .selectize-input.has-items{padding-left:5px;padding-right:5px}.selectize-control.multi .selectize-input.disabled [data-value]{color:#999;text-shadow:none;background:0;box-shadow:none}.selectize-control.multi .selectize-input.disabled [data-value],.selectize-control.multi .selectize-input.disabled [data-value] .remove{border-color:#e6e6e6}.selectize-control.multi .selectize-input.disabled [data-value] .remove{background:0}.selectize-control.multi .selectize-input [data-value]{text-shadow:0 1px 0 rgba(0,51,83,0.3);border-radius:3px;background-color:#1b9dec;background-image:linear-gradient(to bottom,#1da7ee,#178ee9);background-repeat:repeat-x;box-shadow:0 1px 0 rgba(0,0,0,0.2),inset 0 1px rgba(255,255,255,0.03)}.selectize-control.multi .selectize-input [data-value].active{background-color:#0085d4;background-image:linear-gradient(to bottom,#008fd8,#0075cf);background-repeat:repeat-x}.selectize-control.single .selectize-input{box-shadow:0 1px 0 rgba(0,0,0,0.05),inset 0 1px 0 rgba(255,255,255,0.8);background-color:#f9f9f9;background-image:linear-gradient(to bottom,#fefefe,#f2f2f2);background-repeat:repeat-x}.selectize-control.single .selectize-input,.selectize-dropdown.single{border-color:#b8b8b8}.selectize-dropdown .optgroup-header{padding-top:7px;font-weight:bold;font-size:.85em}.selectize-dropdown .optgroup{border-top:1px solid #f0f0f0}.selectize-dropdown .optgroup:first-child{border-top:0 none}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #d0d0d0;border-bottom:0 none;border-radius:3px 3px 0 0;box-shadow:0 -6px 12px rgba(0,0,0,0.18)}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:0 0 3px 3px;border-top:0 none}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active::before{top:0;bottom:unset}.selectize-control.plugin-clear_button .clear{text-decoration:none;display:flex;position:absolute;height:100%;width:25px;top:0;right:calc(8px - 6px);color:#000;opacity:.4;font-weight:bold;border:0;cursor:pointer;z-index:1;font-size:21px;justify-content:center;align-items:center}.selectize-control.plugin-clear_button .clear:hover{opacity:1}.selectize-control.plugin-clear_button.single .clear{right:calc(8px - 6px + 1.5rem)}.selectize-control.plugin-drag_drop.multi>.selectize-input.dragging{overflow:visible}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:\"!\";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header{position:relative;padding:10px 8px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:3px 3px 0 0}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close{position:absolute;right:8px;top:50%;color:#303030;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px !important;text-decoration:none}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close:hover{color:black}.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content{display:flex}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button .item{display:inline-flex;align-items:center;padding-right:0 !important}.selectize-control.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:2px 6px;border-left:1px solid #0073bb;border-radius:0 2px 2px 0;box-sizing:border-box;margin-left:6px}.selectize-control.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button .item.active .remove{border-left-color:#00578d}.selectize-control.plugin-remove_button .disabled .item .remove:hover{background:0}.selectize-control.plugin-remove_button .disabled .item .remove{border-left-color:#aaa}"
  },
  {
    "path": "dist/js/selectize.js",
    "content": "/**\n * Selectize (v0.15.2)\n * https://selectize.dev\n *\n * Copyright (c) 2013-2015 Brian Reavis & contributors\n * Copyright (c) 2020-2023 Selectize Team & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis <brian@thirdroute.com>\n * @author Ris Adams <selectize@risadams.com>\n */\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && typeof module.exports === 'object') {\n    module.exports = factory(require('jquery'));\n  } else {\n    root.Selectize = factory(root.jQuery);\n  }\n}(this, function ($) {\n  'use strict';\nvar highlight = function ($element, pattern) {\n  if (typeof pattern === 'string' && !pattern.length) return;\n  var regex = (typeof pattern === 'string') ? new RegExp(pattern, 'i') : pattern;\n\n  var highlight = function (node) {\n    var skip = 0;\n    if (node.nodeType === 3) {\n      var pos = node.data.search(regex);\n      if (pos >= 0 && node.data.length > 0) {\n        var match = node.data.match(regex);\n        var spannode = document.createElement('span');\n        spannode.className = 'highlight';\n        var middlebit = node.splitText(pos);\n        var endbit = middlebit.splitText(match[0].length);\n        var middleclone = middlebit.cloneNode(true);\n        spannode.appendChild(middleclone);\n        middlebit.parentNode.replaceChild(spannode, middlebit);\n        skip = 1;\n      }\n    }\n    else if (node.nodeType === 1 && node.childNodes && !/(script|style)/i.test(node.tagName) && (node.className !== 'highlight' || node.tagName !== 'SPAN')) {\n      for (var i = 0; i < node.childNodes.length; ++i) {\n        i += highlight(node.childNodes[i]);\n      }\n    }\n    return skip;\n  };\n\n  return $element.each(function () {\n    highlight(this);\n  });\n};\n\n$.fn.removeHighlight = function () {\n  return this.find(\"span.highlight\").each(function () {\n    this.parentNode.firstChild.nodeName;\n    var parent = this.parentNode;\n    parent.replaceChild(this.firstChild, this);\n    parent.normalize();\n  }).end();\n};\n\nvar MicroEvent = function () { };\nMicroEvent.prototype = {\n  on: function (event, fct) {\n    this._events = this._events || {};\n    this._events[event] = this._events[event] || [];\n    this._events[event].push(fct);\n  },\n  off: function (event, fct) {\n    var n = arguments.length;\n    if (n === 0) return delete this._events;\n    if (n === 1) return delete this._events[event];\n\n    this._events = this._events || {};\n    if (event in this._events === false) return;\n    this._events[event].splice(this._events[event].indexOf(fct), 1);\n  },\n  trigger: function (event ) {\n    const events = this._events = this._events || {};\n    if (event in events === false) return;\n    for (var i = 0; i < events[event].length; i++) {\n      events[event][i].apply(this, Array.prototype.slice.call(arguments, 1));\n    }\n  }\n};\n\nMicroEvent.mixin = function (destObject) {\n  var props = ['on', 'off', 'trigger'];\n  for (var i = 0; i < props.length; i++) {\n    destObject.prototype[props[i]] = MicroEvent.prototype[props[i]];\n  }\n};\n\nvar MicroPlugin = {};\nMicroPlugin.mixin = function (Interface) {\n\n  Interface.plugins = {};\n\n  Interface.prototype.initializePlugins = function (plugins) {\n    var i, n, key;\n    var self = this;\n    var queue = [];\n\n    self.plugins = {\n      names: [],\n      settings: {},\n      requested: {},\n      loaded: {}\n    };\n\n    if (isArray(plugins)) {\n      for (i = 0, n = plugins.length; i < n; i++) {\n        if (typeof plugins[i] === 'string') {\n          queue.push(plugins[i]);\n        } else {\n          self.plugins.settings[plugins[i].name] = plugins[i].options;\n          queue.push(plugins[i].name);\n        }\n      }\n    } else if (plugins) {\n      for (key in plugins) {\n        if (plugins.hasOwnProperty(key)) {\n          self.plugins.settings[key] = plugins[key];\n          queue.push(key);\n        }\n      }\n    }\n\n    while (queue.length) {\n      self.require(queue.shift());\n    }\n  };\n\n\n  Interface.prototype.loadPlugin = function (name) {\n    var self = this;\n    var plugins = self.plugins;\n    var plugin = Interface.plugins[name];\n\n    if (!Interface.plugins.hasOwnProperty(name)) {\n      throw new Error('Unable to find \"' + name + '\" plugin');\n    }\n\n    plugins.requested[name] = true;\n    plugins.loaded[name] = plugin.fn.apply(self, [self.plugins.settings[name] || {}]);\n    plugins.names.push(name);\n  };\n\n  Interface.prototype.require = function (name) {\n    var self = this;\n    var plugins = self.plugins;\n\n    if (!self.plugins.loaded.hasOwnProperty(name)) {\n      if (plugins.requested[name]) {\n        throw new Error('Plugin has circular dependency (\"' + name + '\")');\n      }\n      self.loadPlugin(name);\n    }\n\n    return plugins.loaded[name];\n  };\n\n  Interface.define = function (name, fn) {\n    Interface.plugins[name] = {\n      'name': name,\n      'fn': fn\n    };\n  };\n};\n\nconst nanoid = (t = 21) => crypto.getRandomValues(new Uint8Array(t))\n  .reduce(((t, e) =>\n    t += (e &= 63) < 36 ? e.toString(36) :\n      e < 62 ? (e - 26).toString(36).toUpperCase()\n        : e > 62 ? \"-\" : \"_\"), \"\");\n\n\nvar Sifter = function (items, settings) {\n  this.items = items;\n  this.settings = settings || { diacritics: true };\n};\n\nSifter.prototype.tokenize = function (query, respect_word_boundaries) {\n  query = trim(String(query || '').toLowerCase());\n  if (!query || !query.length) return [];\n\n  var i, n, regex, letter;\n  var tokens = [];\n  var words = query.split(/ +/);\n\n  for (i = 0, n = words.length; i < n; i++) {\n    regex = escape_regex(words[i]);\n    if (this.settings.diacritics) {\n      for (letter in DIACRITICS) {\n        if (DIACRITICS.hasOwnProperty(letter)) {\n          regex = regex.replace(new RegExp(letter, 'g'), DIACRITICS[letter]);\n        }\n      }\n    }\n    if (respect_word_boundaries) regex = \"\\\\b\" + regex\n    tokens.push({\n      string: words[i],\n      regex: new RegExp(regex, 'i')\n    });\n  }\n\n  return tokens;\n};\n\nSifter.prototype.iterator = function (object, callback) {\n  var iterator;\n  if (is_array(object)) {\n    iterator = Array.prototype.forEach || function (callback) {\n      for (var i = 0, n = this.length; i < n; i++) {\n        callback(this[i], i, this);\n      }\n    };\n  } else {\n    iterator = function (callback) {\n      for (var key in this) {\n        if (this.hasOwnProperty(key)) {\n          callback(this[key], key, this);\n        }\n      }\n    };\n  }\n\n  iterator.apply(object, [callback]);\n};\n\nSifter.prototype.getScoreFunction = function (search, options) {\n  var self, fields, tokens, token_count, nesting;\n\n  self = this;\n  search = self.prepareSearch(search, options);\n  tokens = search.tokens;\n  fields = search.options.fields;\n  token_count = tokens.length;\n  nesting = search.options.nesting;\n\n  var scoreValue = function (value, token) {\n    var score, pos;\n\n    if (!value) return 0;\n    value = String(value || '');\n    pos = value.search(token.regex);\n    if (pos === -1) return 0;\n    score = token.string.length / value.length;\n    if (pos === 0) score += 0.5;\n    return score;\n  };\n\n  var scoreObject = (function () {\n    var field_count = fields.length;\n    if (!field_count) {\n      return function () { return 0; };\n    }\n    if (field_count === 1) {\n      return function (token, data) {\n        return scoreValue(getattr(data, fields[0], nesting), token);\n      };\n    }\n    return function (token, data) {\n      for (var i = 0, sum = 0; i < field_count; i++) {\n        sum += scoreValue(getattr(data, fields[i], nesting), token);\n      }\n      return sum / field_count;\n    };\n  })();\n\n  if (!token_count) {\n    return function () { return 0; };\n  }\n  if (token_count === 1) {\n    return function (data) {\n      return scoreObject(tokens[0], data);\n    };\n  }\n\n  if (search.options.conjunction === 'and') {\n    return function (data) {\n      var score;\n      for (var i = 0, sum = 0; i < token_count; i++) {\n        score = scoreObject(tokens[i], data);\n        if (score <= 0) return 0;\n        sum += score;\n      }\n      return sum / token_count;\n    };\n  } else {\n    return function (data) {\n      for (var i = 0, sum = 0; i < token_count; i++) {\n        sum += scoreObject(tokens[i], data);\n      }\n      return sum / token_count;\n    };\n  }\n};\n\nSifter.prototype.getSortFunction = function (search, options) {\n  var i, n, self, field, fields, fields_count, multiplier, multipliers, get_field, implicit_score, sort;\n\n  self = this;\n  search = self.prepareSearch(search, options);\n  sort = (!search.query && options.sort_empty) || options.sort;\n\n  get_field = function (name, result) {\n    if (name === '$score') return result.score;\n    return getattr(self.items[result.id], name, options.nesting);\n  };\n\n  fields = [];\n  if (sort) {\n    for (i = 0, n = sort.length; i < n; i++) {\n      if (search.query || sort[i].field !== '$score') {\n        fields.push(sort[i]);\n      }\n    }\n  }\n\n  if (search.query) {\n    implicit_score = true;\n    for (i = 0, n = fields.length; i < n; i++) {\n      if (fields[i].field === '$score') {\n        implicit_score = false;\n        break;\n      }\n    }\n    if (implicit_score) {\n      fields.unshift({ field: '$score', direction: 'desc' });\n    }\n  } else {\n    for (i = 0, n = fields.length; i < n; i++) {\n      if (fields[i].field === '$score') {\n        fields.splice(i, 1);\n        break;\n      }\n    }\n  }\n\n  multipliers = [];\n  for (i = 0, n = fields.length; i < n; i++) {\n    multipliers.push(fields[i].direction === 'desc' ? -1 : 1);\n  }\n\n  fields_count = fields.length;\n  if (!fields_count) {\n    return null;\n  } else if (fields_count === 1) {\n    field = fields[0].field;\n    multiplier = multipliers[0];\n    return function (a, b) {\n      return multiplier * cmp(\n        get_field(field, a),\n        get_field(field, b)\n      );\n    };\n  } else {\n    return function (a, b) {\n      var i, result, a_value, b_value, field;\n      for (i = 0; i < fields_count; i++) {\n        field = fields[i].field;\n        result = multipliers[i] * cmp(\n          get_field(field, a),\n          get_field(field, b)\n        );\n        if (result) return result;\n      }\n      return 0;\n    };\n  }\n};\n\nSifter.prototype.prepareSearch = function (query, options) {\n  if (typeof query === 'object') return query;\n\n  options = extend({}, options);\n\n  var option_fields = options.fields;\n  var option_sort = options.sort;\n  var option_sort_empty = options.sort_empty;\n\n  if (option_fields && !is_array(option_fields)) options.fields = [option_fields];\n  if (option_sort && !is_array(option_sort)) options.sort = [option_sort];\n  if (option_sort_empty && !is_array(option_sort_empty)) options.sort_empty = [option_sort_empty];\n\n  return {\n    options: options,\n    query: String(query || '').toLowerCase(),\n    tokens: this.tokenize(query, options.respect_word_boundaries),\n    total: 0,\n    items: []\n  };\n};\n\nSifter.prototype.search = function (query, options) {\n  var self = this, value, score, search, calculateScore;\n  var fn_sort;\n  var fn_score;\n\n  search = this.prepareSearch(query, options);\n  options = search.options;\n  query = search.query;\n\n  fn_score = options.score || self.getScoreFunction(search);\n\n  if (query.length) {\n    self.iterator(self.items, function (item, id) {\n      score = fn_score(item);\n      if (options.filter === false || score > 0) {\n        search.items.push({ 'score': score, 'id': id });\n      }\n    });\n  } else {\n    self.iterator(self.items, function (item, id) {\n      search.items.push({ 'score': 1, 'id': id });\n    });\n  }\n\n  fn_sort = self.getSortFunction(search, options);\n  if (fn_sort) search.items.sort(fn_sort);\n\n  search.total = search.items.length;\n  if (typeof options.limit === 'number') {\n    search.items = search.items.slice(0, options.limit);\n  }\n\n  return search;\n};\n\nvar cmp = function (a, b) {\n  if (typeof a === 'number' && typeof b === 'number') {\n    return a > b ? 1 : (a < b ? -1 : 0);\n  }\n  a = asciifold(String(a || ''));\n  b = asciifold(String(b || ''));\n  if (a > b) return 1;\n  if (b > a) return -1;\n  return 0;\n};\n\nvar extend = function (a, b) {\n  var i, n, k, object;\n  for (i = 1, n = arguments.length; i < n; i++) {\n    object = arguments[i];\n    if (!object) continue;\n    for (k in object) {\n      if (object.hasOwnProperty(k)) {\n        a[k] = object[k];\n      }\n    }\n  }\n  return a;\n};\n\nvar getattr = function (obj, name, nesting) {\n  if (!obj || !name) return;\n  if (!nesting) return obj[name];\n  var names = name.split(\".\");\n  while (names.length && (obj = obj[names.shift()]));\n  return obj;\n};\n\nvar trim = function (str) {\n  return (str + '').replace(/^\\s+|\\s+$|/g, '');\n};\n\nvar escape_regex = function (str) {\n  return (str + '').replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1');\n};\n\nvar is_array = Array.isArray || function (object) {\n  return Object.prototype.toString.call(object) === '[object Array]';\n};\n\nvar DIACRITICS = {\n  'a': '[aḀḁĂăÂâǍǎȺⱥȦȧẠạÄäÀàÁáĀāÃãÅåąĄÃąĄ]',\n  'b': '[b␢βΒB฿𐌁ᛒ]',\n  'c': '[cĆćĈĉČčĊċC̄c̄ÇçḈḉȻȼƇƈɕᴄＣｃ]',\n  'd': '[dĎďḊḋḐḑḌḍḒḓḎḏĐđD̦d̦ƉɖƊɗƋƌᵭᶁᶑȡᴅＤｄð]',\n  'e': '[eÉéÈèÊêḘḙĚěĔĕẼẽḚḛẺẻĖėËëĒēȨȩĘęᶒɆɇȄȅẾếỀềỄễỂểḜḝḖḗḔḕȆȇẸẹỆệⱸᴇＥｅɘǝƏƐε]',\n  'f': '[fƑƒḞḟ]',\n  'g': '[gɢ₲ǤǥĜĝĞğĢģƓɠĠġ]',\n  'h': '[hĤĥĦħḨḩẖẖḤḥḢḣɦʰǶƕ]',\n  'i': '[iÍíÌìĬĭÎîǏǐÏïḮḯĨĩĮįĪīỈỉȈȉȊȋỊịḬḭƗɨɨ̆ᵻᶖİiIıɪＩｉ]',\n  'j': '[jȷĴĵɈɉʝɟʲ]',\n  'k': '[kƘƙꝀꝁḰḱǨǩḲḳḴḵκϰ₭]',\n  'l': '[lŁłĽľĻļĹĺḶḷḸḹḼḽḺḻĿŀȽƚⱠⱡⱢɫɬᶅɭȴʟＬｌ]',\n  'n': '[nŃńǸǹŇňÑñṄṅŅņṆṇṊṋṈṉN̈n̈ƝɲȠƞᵰᶇɳȵɴＮｎŊŋ]',\n  'o': '[oØøÖöÓóÒòÔôǑǒŐőŎŏȮȯỌọƟɵƠơỎỏŌōÕõǪǫȌȍՕօ]',\n  'p': '[pṔṕṖṗⱣᵽƤƥᵱ]',\n  'q': '[qꝖꝗʠɊɋꝘꝙq̃]',\n  'r': '[rŔŕɌɍŘřŖŗṘṙȐȑȒȓṚṛⱤɽ]',\n  's': '[sŚśṠṡṢṣꞨꞩŜŝŠšŞşȘșS̈s̈]',\n  't': '[tŤťṪṫŢţṬṭƮʈȚțṰṱṮṯƬƭ]',\n  'u': '[uŬŭɄʉỤụÜüÚúÙùÛûǓǔŰűŬŭƯưỦủŪūŨũŲųȔȕ∪]',\n  'v': '[vṼṽṾṿƲʋꝞꝟⱱʋ]',\n  'w': '[wẂẃẀẁŴŵẄẅẆẇẈẉ]',\n  'x': '[xẌẍẊẋχ]',\n  'y': '[yÝýỲỳŶŷŸÿỸỹẎẏỴỵɎɏƳƴ]',\n  'z': '[zŹźẐẑŽžŻżẒẓẔẕƵƶ]'\n};\n\nvar asciifold = (function () {\n  var i, n, k, chunk;\n  var i18nChars = '';\n  var lookup = {};\n  for (k in DIACRITICS) {\n    if (DIACRITICS.hasOwnProperty(k)) {\n      chunk = DIACRITICS[k].substring(2, DIACRITICS[k].length - 1);\n      i18nChars += chunk;\n      for (i = 0, n = chunk.length; i < n; i++) {\n        lookup[chunk.charAt(i)] = k;\n      }\n    }\n  }\n  var regexp = new RegExp('[' + i18nChars + ']', 'g');\n  return function (str) {\n    return str.replace(regexp, function (i18nChar) {\n      return lookup[i18nChar];\n    }).toLowerCase();\n  };\n})();\n\nvar IS_MAC = uaDetect(\"macOS\", /Mac/);\nvar KEY_A = 65;\nvar KEY_COMMA = 188;\nvar KEY_RETURN = 13;\nvar KEY_ESC = 27;\nvar KEY_LEFT = 37;\nvar KEY_UP = 38;\nvar KEY_P = 80;\nvar KEY_RIGHT = 39;\nvar KEY_DOWN = 40;\nvar KEY_N = 78;\nvar KEY_BACKSPACE = 8;\nvar KEY_DELETE = 46;\nvar KEY_SHIFT = 16;\nvar KEY_CMD = IS_MAC ? 91 : 17;\nvar KEY_CTRL = IS_MAC ? 18 : 17;\nvar KEY_TAB = 9;\nvar TAG_SELECT = 1;\nvar TAG_INPUT = 2;\n\nvar SUPPORTS_VALIDITY_API = !uaDetect(\"Android\", /android/i) && !!document.createElement('input').validity;\n\nvar isset = function (object) {\n  return typeof object !== 'undefined';\n};\n\nvar isArray = Array.isArray || function (vArg) {\n  return Object.prototype.toString.call(vArg) === '[object Array]';\n}\n\nvar hash_key = function (value) {\n  if (typeof value === 'undefined' || value === null) return null;\n  if (typeof value === 'boolean') return value ? '1' : '0';\n  return value + '';\n};\n\nvar escape_html = function (str) {\n  return (str + '')\n    .replace(/&/g, '&amp;')\n    .replace(/</g, '&lt;')\n    .replace(/>/g, '&gt;')\n    .replace(/\"/g, '&quot;');\n};\n\nvar escape_replace = function (str) {\n  return (str + '').replace(/\\$/g, '$$$$');\n};\n\nvar hook = {};\n\nhook.before = function (self, method, fn) {\n  var original = self[method];\n  self[method] = function () {\n    fn.apply(self, arguments);\n    return original.apply(self, arguments);\n  };\n};\n\nhook.after = function (self, method, fn) {\n  var original = self[method];\n  self[method] = function () {\n    var result = original.apply(self, arguments);\n    fn.apply(self, arguments);\n    return result;\n  };\n};\n\nvar once = function (fn) {\n  var called = false;\n  return function () {\n    if (called) return;\n    called = true;\n    fn.apply(this, arguments);\n  };\n};\n\nvar debounce = function (fn, delay) {\n  var timeout;\n  return function () {\n    var self = this;\n    var args = arguments;\n    window.clearTimeout(timeout);\n    timeout = window.setTimeout(function () {\n      fn.apply(self, args);\n    }, delay);\n  };\n};\n\nvar debounce_events = function (self, types, fn) {\n  var type;\n  var trigger = self.trigger;\n  var event_args = {};\n\n  self.trigger = function () {\n    var type = arguments[0];\n    if (types.indexOf(type) !== -1) {\n      event_args[type] = arguments;\n    } else {\n      return trigger.apply(self, arguments);\n    }\n  };\n\n  fn.apply(self, []);\n  self.trigger = trigger;\n\n  for (type in event_args) {\n    if (event_args.hasOwnProperty(type)) {\n      trigger.apply(self, event_args[type]);\n    }\n  }\n};\n\nvar watchChildEvent = function ($parent, event, selector, fn) {\n  $parent.on(event, selector, function (e) {\n    var child = e.target;\n    while (child && child.parentNode !== $parent[0]) {\n      child = child.parentNode;\n    }\n    e.currentTarget = child;\n    return fn.apply(this, [e]);\n  });\n};\n\nvar getInputSelection = function (input) {\n  var result = {};\n  if (input === undefined) {\n    console.warn('WARN getInputSelection cannot locate input control');\n    return result;\n  }\n  if ('selectionStart' in input) {\n    result.start = input.selectionStart;\n    result.length = input.selectionEnd - result.start;\n  } else if (document.selection) {\n    input.focus();\n    var sel = document.selection.createRange();\n    var selLen = document.selection.createRange().text.length;\n    sel.moveStart('character', -input.value.length);\n    result.start = sel.text.length - selLen;\n    result.length = selLen;\n  }\n  return result;\n};\n\nvar transferStyles = function ($from, $to, properties) {\n  var i, n, styles = {};\n  if (properties) {\n    for (i = 0, n = properties.length; i < n; i++) {\n      styles[properties[i]] = $from.css(properties[i]);\n    }\n  } else {\n    styles = $from.css();\n  }\n  $to.css(styles);\n};\n\nvar measureString = function (str, $parent) {\n  if (!str) {\n    return 0;\n  }\n\n  if (!Selectize.$testInput) {\n    Selectize.$testInput = $('<span />').css({\n      position: 'absolute',\n      width: 'auto',\n      padding: 0,\n      whiteSpace: 'pre'\n    });\n\n    $('<div />').css({\n      position: 'absolute',\n      width: 0,\n      height: 0,\n      overflow: 'hidden'\n    }).attr({\n      'aria-hidden': true\n    }).append(Selectize.$testInput).appendTo('body');\n  }\n\n  Selectize.$testInput.text(str);\n\n  transferStyles($parent, Selectize.$testInput, [\n    'letterSpacing',\n    'fontSize',\n    'fontFamily',\n    'fontWeight',\n    'textTransform'\n  ]);\n\n  return Selectize.$testInput.width();\n};\n\nvar autoGrow = function ($input) {\n  var currentWidth = null;\n\n  var update = function (e, options) {\n    var value, keyCode, printable, width;\n    var placeholder, placeholderWidth;\n    var shift, character, selection;\n    e = e || window.event || {};\n    options = options || {};\n\n    if (e.metaKey || e.altKey) return;\n    if (!options.force && $input.data('grow') === false) return;\n\n    value = $input.val();\n    if (e.type && e.type.toLowerCase() === 'keydown') {\n      keyCode = e.keyCode;\n      printable = (\n        (keyCode >= 48 && keyCode <= 57) || \n        (keyCode >= 65 && keyCode <= 90) || \n        (keyCode >= 96 && keyCode <= 111) || \n        (keyCode >= 186 && keyCode <= 222) || \n        keyCode === 32 \n      );\n\n      if (keyCode === KEY_DELETE || keyCode === KEY_BACKSPACE) {\n        selection = getInputSelection($input[0]);\n        if (selection.length) {\n          value = value.substring(0, selection.start) + value.substring(selection.start + selection.length);\n        } else if (keyCode === KEY_BACKSPACE && selection.start) {\n          value = value.substring(0, selection.start - 1) + value.substring(selection.start + 1);\n        } else if (keyCode === KEY_DELETE && typeof selection.start !== 'undefined') {\n          value = value.substring(0, selection.start) + value.substring(selection.start + 1);\n        }\n      } else if (printable) {\n        shift = e.shiftKey;\n        character = String.fromCharCode(e.keyCode);\n        if (shift) character = character.toUpperCase();\n        else character = character.toLowerCase();\n        value += character;\n      }\n    }\n\n    var width = $input.attr('readonly') ? 0 : 4;\n    placeholder = $input.attr('placeholder');\n    if (placeholder) {\n      placeholderWidth = measureString(placeholder, $input) + width;\n    } else {\n      placeholderWidth = 0;\n    }\n\n    width = Math.max(measureString(value, $input), placeholderWidth) + width;\n    if (width !== currentWidth) {\n      currentWidth = width;\n      $input.width(width);\n      $input.triggerHandler('resize');\n    }\n  };\n\n  $input.on('keydown keyup update blur', update);\n  update();\n};\n\nvar domToString = function (d) {\n  var tmp = document.createElement('div');\n\n  tmp.appendChild(d.cloneNode(true));\n\n  return tmp.innerHTML;\n};\n\nvar logError = function (message, options) {\n  if (!options) options = {};\n  var component = \"Selectize\";\n\n  console.error(component + \": \" + message)\n\n  if (options.explanation) {\n    if (console.group) console.group();\n    console.error(options.explanation);\n    if (console.group) console.groupEnd();\n  }\n};\n\nvar isJSON = function (data) {\n  try {\n    JSON.parse(data);\n  } catch (e) {\n    return false;\n  }\n  return true;\n};\n\nfunction uaDetect(platform, re) {\n  if (navigator.userAgentData) {\n    return platform === navigator.userAgentData.platform;\n  }\n\n  return re.test(navigator.userAgent);\n}\n\nvar Selectize = function($input, settings) {\n\tvar key, i, n, dir, input, self = this;\n\tinput = $input[0];\n\tinput.selectize = self;\n\n\tvar computedStyle = window.getComputedStyle && window.getComputedStyle(input, null);\n\tdir = computedStyle ? computedStyle.getPropertyValue('direction') : input.currentStyle && input.currentStyle.direction;\n  dir = dir || $input.parents('[dir]:first').attr('dir') || '';\n\n  self.settings = {};\n\n\t$.extend(self, {\n\t\torder            : 0,\n\t\tsettings         : settings,\n\t\t$input           : $input,\n\t\ttabIndex         : $input.attr('tabindex') || '',\n\t\ttagType          : input.tagName.toLowerCase() === 'select' ? TAG_SELECT : TAG_INPUT,\n\t\trtl              : /rtl/i.test(dir),\n\n\t\teventNS          : '.selectize' + (++Selectize.count),\n\t\thighlightedValue : null,\n\t\tisBlurring       : false,\n\t\tisOpen           : false,\n\t\tisDisabled       : false,\n\t\tisRequired       : $input.is('[required]'),\n\t\tisInvalid        : false,\n\t\tisLocked         : false,\n\t\tisFocused        : false,\n\t\tisInputHidden    : false,\n\t\tisSetup          : false,\n\t\tisShiftDown      : false,\n\t\tisCmdDown        : false,\n\t\tisCtrlDown       : false,\n\t\tignoreFocus      : false,\n\t\tignoreBlur       : false,\n\t\tignoreHover      : false,\n\t\thasOptions       : false,\n\t\tcurrentResults   : null,\n\t\tlastValue        : '',\n\t\tlastValidValue   : '',\n\t\tlastOpenTarget   : false,\n\t\tcaretPos         : 0,\n\t\tloading          : 0,\n\t\tloadedSearches   : {},\n    isDropdownClosing: false,\n\n\t\t$activeOption    : null,\n\t\t$activeItems     : [],\n\n\t\toptgroups        : {},\n\t\toptions          : {},\n\t\tuserOptions      : {},\n\t\titems            : [],\n\t\trenderCache      : {},\n\t\tonSearchChange   : settings.loadThrottle === null ? self.onSearchChange : debounce(self.onSearchChange, settings.loadThrottle)\n\t});\n\n\tself.sifter = new Sifter(this.options, {diacritics: settings.diacritics});\n\n\tif (self.settings.options) {\n\t\tfor (i = 0, n = self.settings.options.length; i < n; i++) {\n\t\t\tself.registerOption(self.settings.options[i]);\n\t\t}\n\t\tdelete self.settings.options;\n  }\n\n\tif (self.settings.optgroups) {\n\t\tfor (i = 0, n = self.settings.optgroups.length; i < n; i++) {\n\t\t\tself.registerOptionGroup(self.settings.optgroups[i]);\n\t\t}\n\t\tdelete self.settings.optgroups;\n\t}\n\n\tself.settings.mode = self.settings.mode || (self.settings.maxItems === 1 ? 'single' : 'multi');\n\tif (typeof self.settings.hideSelected !== 'boolean') {\n\t\tself.settings.hideSelected = self.settings.mode === 'multi';\n\t}\n\n\tself.initializePlugins(self.settings.plugins);\n\tself.setupCallbacks();\n\tself.setupTemplates();\n\tself.setup();\n};\n\nMicroEvent.mixin(Selectize);\nMicroPlugin.mixin(Selectize);\n\n$.extend(Selectize.prototype, {\n\n\tsetup: function() {\n\t\tvar self      = this;\n\t\tvar settings  = self.settings;\n\t\tvar eventNS   = self.eventNS;\n\t\tvar $window   = $(window);\n\t\tvar $document = $(document);\n\t\tvar $input    = self.$input;\n\n\t\tvar $wrapper;\n\t\tvar $control;\n\t\tvar $control_input;\n\t\tvar $dropdown;\n\t\tvar $dropdown_content;\n\t\tvar $dropdown_parent;\n\t\tvar inputMode;\n\t\tvar timeout_blur;\n\t\tvar timeout_focus;\n\t\tvar classes;\n\t\tvar classes_plugins;\n\t\tvar inputId;\n    var noArrowClass;\n\n\t\tinputMode         = self.settings.mode;\n    classes           = $input.attr('class') || '';\n    noArrowClass      = settings.showArrow ? '' : ' no-arrow';\n\n    $wrapper          = $('<div>').addClass(settings.wrapperClass).addClass(classes + ' selectize-control').addClass(inputMode);\n\t\t$control          = $('<div>').addClass(settings.inputClass + noArrowClass + ' selectize-input items').appendTo($wrapper);\n\t\t$control_input    = $('<input type=\"text\" autocomplete=\"new-password\" autofill=\"no\" />').appendTo($control).attr('tabindex', $input.is(':disabled') ? '-1' : self.tabIndex);\n\t\t$dropdown_parent  = $(settings.dropdownParent || $wrapper);\n\t\t$dropdown         = $('<div>').addClass(settings.dropdownClass).addClass(inputMode + ' selectize-dropdown').hide().appendTo($dropdown_parent);\n\t\t$dropdown_content = $('<div>').addClass(settings.dropdownContentClass + ' selectize-dropdown-content').attr('tabindex', '-1').appendTo($dropdown);\n\n\t\tif(inputId = $input.attr('id')) {\n\t\t\t$control_input.attr('id', inputId + '-selectized');\n\t\t\t$(\"label[for='\"+inputId+\"']\").attr('for', inputId + '-selectized');\n\t\t}\n\n\t\tif(self.settings.copyClassesToDropdown) {\n\t\t\t$dropdown.addClass(classes);\n\t\t}\n\n\t\t$wrapper.css({\n\t\t\twidth: $input[0].style.width\n\t\t});\n\n\t\tif (self.plugins.names.length) {\n\t\t\tclasses_plugins = 'plugin-' + self.plugins.names.join(' plugin-');\n\t\t\t$wrapper.addClass(classes_plugins);\n\t\t\t$dropdown.addClass(classes_plugins);\n\t\t}\n\n\t\tif ((settings.maxItems === null || settings.maxItems > 1) && self.tagType === TAG_SELECT) {\n\t\t\t$input.attr('multiple', 'multiple');\n\t\t}\n\n\t\tif (self.settings.placeholder) {\n\t\t\t$control_input.attr('placeholder', settings.placeholder);\n\t\t}\n\n    if (!self.settings.search) {\n      $control_input.attr('readonly', true);\n\t    $control_input.attr('inputmode', 'none');\n      $control.css('cursor', 'pointer');\n    }\n\n\t\tif (!self.settings.splitOn && self.settings.delimiter) {\n\t\t\tvar delimiterEscaped = self.settings.delimiter.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\t\t\tself.settings.splitOn = new RegExp('\\\\s*' + delimiterEscaped + '+\\\\s*');\n\t\t}\n\n\t\tif ($input.attr('autocorrect')) {\n\t\t\t$control_input.attr('autocorrect', $input.attr('autocorrect'));\n\t\t}\n\n\t\tif ($input.attr('autocapitalize')) {\n\t\t\t$control_input.attr('autocapitalize', $input.attr('autocapitalize'));\n\t\t}\n\t\tif ($input.is('input')) {\n\t\t\t$control_input[0].type = $input[0].type;\n\t\t}\n\n\t\tself.$wrapper          = $wrapper;\n\t\tself.$control          = $control;\n\t\tself.$control_input    = $control_input;\n\t\tself.$dropdown         = $dropdown;\n\t\tself.$dropdown_content = $dropdown_content;\n\n\t\t$dropdown.on('mouseenter mousedown mouseup click', '[data-disabled]>[data-selectable]', function(e) { e.stopImmediatePropagation(); });\n\t\t$dropdown.on('mouseenter', '[data-selectable]', function() { return self.onOptionHover.apply(self, arguments); });\n\t\t$dropdown.on('mouseup click', '[data-selectable]', function() { return self.onOptionSelect.apply(self, arguments); });\n\t\twatchChildEvent($control, 'mouseup', '*:not(input)', function() { return self.onItemSelect.apply(self, arguments); });\n\t\tautoGrow($control_input);\n\n\t\t$control.on({\n\t\t\tmousedown : function() { return self.onMouseDown.apply(self, arguments); },\n\t\t\tclick     : function() { return self.onClick.apply(self, arguments); }\n\t\t});\n\n\t\t$control_input.on({\n\t\t\tmousedown : function(e) {\n\t\t\t\tif (self.$control_input.val() !== '' || self.settings.openOnFocus) {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t}\n\t\t\t},\n\t\t\tkeydown   : function() { return self.onKeyDown.apply(self, arguments); },\n\t\t\tkeypress  : function() { return self.onKeyPress.apply(self, arguments); },\n\t\t\tinput     : function() { return self.onInput.apply(self, arguments); },\n\t\t\tresize    : function() { self.positionDropdown.apply(self, []); },\n\t\t\tblur      : function() { return self.onBlur.apply(self, arguments); },\n\t\t\tfocus     : function() { return self.onFocus.apply(self, arguments); },\n\t\t\tpaste     : function() { return self.onPaste.apply(self, arguments); }\n\t\t});\n\n\t\t$document.on('keydown' + eventNS, function(e) {\n\t\t\tself.isCmdDown = e[IS_MAC ? 'metaKey' : 'ctrlKey'];\n\t\t\tself.isCtrlDown = e[IS_MAC ? 'altKey' : 'ctrlKey'];\n\t\t\tself.isShiftDown = e.shiftKey;\n\t\t});\n\n\t\t$document.on('keyup' + eventNS, function(e) {\n\t\t\tif (e.keyCode === KEY_CTRL) self.isCtrlDown = false;\n\t\t\tif (e.keyCode === KEY_SHIFT) self.isShiftDown = false;\n\t\t\tif (e.keyCode === KEY_CMD) self.isCmdDown = false;\n\t\t});\n\n\t\t$document.on('mousedown' + eventNS, function(e) {\n\t\t\tif (self.isFocused) {\n\t\t\t\tif (\n\t\t\t\t\te.target === self.$dropdown[0] ||\n\t\t\t\t\tself.$dropdown.has(e.target).length)\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (e.target !== self.$control[0]) {\n\t\t\t\t\tself.blur(e.target);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t$window.on(['scroll' + eventNS, 'resize' + eventNS].join(' '), function() {\n\t\t\tif (self.isOpen) {\n\t\t\t\tself.positionDropdown.apply(self, arguments);\n\t\t\t}\n\t\t});\n\t\t$window.on('mousemove' + eventNS, function() {\n      self.ignoreHover = self.settings.ignoreHover;\n\t\t});\n\n    var inputPlaceholder = $('<div></div>');\n\t\tvar inputChildren = $input.children().detach();\n\n    $input.replaceWith(inputPlaceholder);\n    inputPlaceholder.replaceWith($input);\n\n    this.revertSettings = {\n\t\t\t$children : inputChildren,\n\t\t\ttabindex  : $input.attr('tabindex')\n\t\t};\n\n\t\t$input.attr('tabindex', -1).hide().after(self.$wrapper);\n\n\t\tif (Array.isArray(settings.items)) {\n\t\t\tself.lastValidValue = settings.items;\n\t\t\tself.setValue(settings.items);\n\t\t\tdelete settings.items;\n\t\t}\n\n\t\tif (SUPPORTS_VALIDITY_API) {\n\t\t\t$input.on('invalid' + eventNS, function(e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.isInvalid = true;\n\t\t\t\tself.refreshState();\n\t\t\t});\n\t\t}\n\n\t\tself.updateOriginalInput();\n\t\tself.refreshItems();\n\t\tself.refreshState();\n\t\tself.updatePlaceholder();\n\t\tself.isSetup = true;\n\n\t\tif ($input.is(':disabled')) {\n\t\t\tself.disable();\n\t\t}\n\n\t\tself.on('change', this.onChange);\n\n\t\t$input.data('selectize', self);\n\t\t$input.addClass('selectized');\n\t\tself.trigger('initialize');\n\n\t\tif (settings.preload === true) {\n\t\t\tself.onSearchChange('');\n\t\t}\n\n\t},\n\n\tsetupTemplates: function() {\n\t\tvar self = this;\n\t\tvar field_label = self.settings.labelField;\n\t\tvar field_value = self.settings.valueField;\n\t\tvar field_optgroup = self.settings.optgroupLabelField;\n\n\t\tvar templates = {\n\t\t\t'optgroup': function(data) {\n\t\t\t\treturn '<div class=\"optgroup\">' + data.html + '</div>';\n\t\t\t},\n\t\t\t'optgroup_header': function(data, escape) {\n\t\t\t\treturn '<div class=\"optgroup-header\">' + escape(data[field_optgroup]) + '</div>';\n\t\t\t},\n\t\t\t'option': function(data, escape) {\n        var classes = data.classes ? ' ' + data.classes : '';\n        classes += data[field_value] === '' ? ' selectize-dropdown-emptyoptionlabel' : '';\n\n        var styles = data.styles ? ' style=\"' + data.styles +  '\"': '';\n\t\t\t\treturn '<div' + styles + ' class=\"option' + classes + '\">' + escape(data[field_label]) + '</div>';\n\t\t\t},\n\t\t\t'item': function(data, escape) {\n\t\t\t\treturn '<div class=\"item\">' + escape(data[field_label]) + '</div>';\n\t\t\t},\n\t\t\t'option_create': function(data, escape) {\n\t\t\t\treturn '<div class=\"create\">Add <strong>' + escape(data.input) + '</strong>&#x2026;</div>';\n\t\t\t}\n\t\t};\n\n\t\tself.settings.render = $.extend({}, templates, self.settings.render);\n\t},\n\n\tsetupCallbacks: function() {\n\t\tvar key, fn, callbacks = {\n\t\t\t'initialize'      : 'onInitialize',\n\t\t\t'change'          : 'onChange',\n\t\t\t'item_add'        : 'onItemAdd',\n\t\t\t'item_remove'     : 'onItemRemove',\n\t\t\t'clear'           : 'onClear',\n\t\t\t'option_add'      : 'onOptionAdd',\n\t\t\t'option_remove'   : 'onOptionRemove',\n\t\t\t'option_clear'    : 'onOptionClear',\n\t\t\t'optgroup_add'    : 'onOptionGroupAdd',\n\t\t\t'optgroup_remove' : 'onOptionGroupRemove',\n\t\t\t'optgroup_clear'  : 'onOptionGroupClear',\n\t\t\t'dropdown_open'   : 'onDropdownOpen',\n\t\t\t'dropdown_close'  : 'onDropdownClose',\n\t\t\t'type'            : 'onType',\n\t\t\t'load'            : 'onLoad',\n\t\t\t'focus'           : 'onFocus',\n\t\t\t'blur'            : 'onBlur',\n\t\t\t'dropdown_item_activate'        : 'onDropdownItemActivate',\n\t\t\t'dropdown_item_deactivate'      : 'onDropdownItemDeactivate'\n\t\t};\n\n\t\tfor (key in callbacks) {\n\t\t\tif (callbacks.hasOwnProperty(key)) {\n\t\t\t\tfn = this.settings[callbacks[key]];\n\t\t\t\tif (fn) this.on(key, fn);\n\t\t\t}\n\t\t}\n\t},\n\n\tonClick: function(e) {\n\t\tvar self = this;\n\n    if (self.isDropdownClosing) {\n      return;\n    }\n\n\t\tif (!self.isFocused || !self.isOpen) {\n\t\t\tself.focus();\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\n\tonMouseDown: function(e) {\n\t\tvar self = this;\n\t\tvar defaultPrevented = e.isDefaultPrevented();\n\t\tvar $target = $(e.target);\n\n\t\tif (!self.isFocused) {\n\t\t\tif (!defaultPrevented) {\n        window.setTimeout(function () {\n          if (!self.isOpen) {\n            self.focus();\n          }\n        }, 0);\n\t\t\t}\n\t\t}\n\t\tif ($target !== self.$control_input[0] || self.$control_input.val() === '') {\n\t\t\tif (self.settings.mode === 'single') {\n\t\t\t\tself.isOpen ? self.close() : self.open();\n\t\t\t} else {\n\t\t\t\tif (!defaultPrevented) {\n\t\t\t\t\t\tself.setActiveItem(null);\n\t\t\t\t}\n\t\t\t\tif (!self.settings.openOnFocus) {\n\t\t\t\t\tif (self.isOpen && $target === self.lastOpenTarget) {\n\t\t\t\t\t\tself.close();\n\t\t\t\t\t\tself.lastOpenTarget = false;\n\t\t\t\t\t} else if (!self.isOpen) {\n\t\t\t\t\t\tself.refreshOptions();\n\t\t\t\t\t\tself.open();\n\t\t\t\t\t\tself.lastOpenTarget = $target;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.lastOpenTarget = $target;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t},\n\n\tonChange: function() {\n\t\tvar self = this;\n\t\tif (self.getValue() !== \"\") {\n\t\t\tself.lastValidValue = self.getValue();\n\t\t}\n\t\tthis.$input.trigger('input');\n\t\tthis.$input.trigger('change');\n\t},\n\n\tonPaste: function(e) {\n\t\tvar self = this;\n\n\t\tif (self.isFull() || self.isInputHidden || self.isLocked) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (self.settings.splitOn) {\n\n\t\t\tsetTimeout(function() {\n\t\t\t\tvar pastedText = self.$control_input.val();\n\t\t\t\tif(!pastedText.match(self.settings.splitOn)){ return }\n\n\t\t\t\tvar splitInput = pastedText\n\t\t\t\t\t.trim()\n\t\t\t\t\t.split(self.settings.splitOn);\n\t\t\t\tfor (var i = 0, n = splitInput.length; i < n; i++) {\n\t\t\t\t\tself.createItem(splitInput[i]);\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t}\n\t},\n\n\tonKeyPress: function(e) {\n\t\tif (this.isLocked) return e && e.preventDefault();\n\t\tvar character = String.fromCharCode(e.keyCode || e.which);\n\t\tif (this.settings.create && this.settings.mode === 'multi' && character === this.settings.delimiter) {\n\t\t\tthis.createItem();\n\t\t\te.preventDefault();\n\t\t\treturn false;\n\t\t}\n\t},\n\n\tonKeyDown: function(e) {\n\t\tvar isInput = e.target === this.$control_input[0];\n\t\tvar self = this;\n\n\t\tif (self.isLocked) {\n\t\t\tif (e.keyCode !== KEY_TAB) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tswitch (e.keyCode) {\n\t\t\tcase KEY_A:\n\t\t\t\tif (self.isCmdDown) {\n\t\t\t\t\tself.selectAll();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase KEY_ESC:\n\t\t\t\tif (self.isOpen) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tself.close();\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\tcase KEY_N:\n\t\t\t\tif (!e.ctrlKey || e.altKey) break;\n\t\t\tcase KEY_DOWN:\n\t\t\t\tif (!self.isOpen && self.hasOptions) {\n\t\t\t\t\tself.open();\n\t\t\t\t} else if (self.$activeOption) {\n\t\t\t\t\tself.ignoreHover = true;\n\t\t\t\t\tvar $next = self.getAdjacentOption(self.$activeOption, 1);\n\t\t\t\t\tif ($next.length) self.setActiveOption($next, true, true);\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t\treturn;\n\t\t\tcase KEY_P:\n\t\t\t\tif (!e.ctrlKey || e.altKey) break;\n\t\t\tcase KEY_UP:\n\t\t\t\tif (self.$activeOption) {\n\t\t\t\t\tself.ignoreHover = true;\n\t\t\t\t\tvar $prev = self.getAdjacentOption(self.$activeOption, -1);\n\t\t\t\t\tif ($prev.length) self.setActiveOption($prev, true, true);\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t\treturn;\n\t\t\tcase KEY_RETURN:\n\t\t\t\tif (self.isOpen && self.$activeOption) {\n\t\t\t\t\tself.onOptionSelect({currentTarget: self.$activeOption});\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\tcase KEY_LEFT:\n\t\t\t\tself.advanceSelection(-1, e);\n\t\t\t\treturn;\n\t\t\tcase KEY_RIGHT:\n\t\t\t\tself.advanceSelection(1, e);\n\t\t\t\treturn;\n\t\t\tcase KEY_TAB:\n\t\t\t\tif (self.settings.selectOnTab && self.isOpen && self.$activeOption) {\n\t\t\t\t\tself.onOptionSelect({currentTarget: self.$activeOption});\n\n\t\t\t\t\tif (!self.isFull()) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (self.settings.create && self.createItem() && self.settings.showAddOptionOnCreate) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\tcase KEY_BACKSPACE:\n\t\t\tcase KEY_DELETE:\n\t\t\t\tself.deleteSelection(e);\n\t\t\t\treturn;\n\t\t}\n\n\t\tif ((self.isFull() || self.isInputHidden) && !(IS_MAC ? e.metaKey : e.ctrlKey)) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\t},\n\n\tonInput: function(e) {\n\t\tvar self = this;\n\n\t\tvar value = self.$control_input.val() || '';\n\t\tif (self.lastValue !== value) {\n\t\t\tself.lastValue = value;\n\t\t\tself.onSearchChange(value);\n\t\t\tself.refreshOptions();\n\t\t\tself.trigger('type', value);\n\t\t}\n\t},\n\n\tonSearchChange: function(value) {\n\t\tvar self = this;\n\t\tvar fn = self.settings.load;\n\t\tif (!fn) return;\n\t\tif (self.loadedSearches.hasOwnProperty(value)) return;\n\t\tself.loadedSearches[value] = true;\n\t\tself.load(function(callback) {\n\t\t\tfn.apply(self, [value, callback]);\n\t\t});\n\t},\n\n\tonFocus: function(e) {\n\t\tvar self = this;\n\t\tvar wasFocused = self.isFocused;\n\n\t\tif (self.isDisabled) {\n\t\t\tself.blur();\n\t\t\te && e.preventDefault();\n\t\t\treturn false;\n\t\t}\n\n\t\tif (self.ignoreFocus) return;\n\t\tself.isFocused = true;\n\t\tif (self.settings.preload === 'focus') self.onSearchChange('');\n\n\t\tif (!wasFocused) self.trigger('focus');\n\n\t\tif (!self.$activeItems.length) {\n\t\t\tself.showInput();\n\t\t\tself.setActiveItem(null);\n\t\t\tself.refreshOptions(!!self.settings.openOnFocus);\n\t\t}\n\n\t\tself.refreshState();\n\t},\n\n\tonBlur: function(e, dest) {\n\t\tvar self = this;\n\n\t\tif (!self.isFocused) return;\n\t\tself.isFocused = false;\n\n\t\tif (self.ignoreFocus) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar deactivate = function() {\n\t\t\tself.close();\n\t\t\tself.setTextboxValue('');\n\t\t\tself.setActiveItem(null);\n\t\t\tself.setActiveOption(null);\n\t\t\tself.setCaret(self.items.length);\n\t\t\tself.refreshState();\n\n\t\t\tdest && dest.focus && dest.focus();\n\n\t\t\tself.isBlurring = false;\n\t\t\tself.ignoreFocus = false;\n\t\t\tself.trigger('blur');\n\t\t};\n\n\t\tself.isBlurring = true;\n\t\tself.ignoreFocus = true;\n\t\tif (self.settings.create && self.settings.createOnBlur) {\n\t\t\tself.createItem(null, false, deactivate);\n\t\t} else {\n\t\t\tdeactivate();\n\t\t}\n\t},\n\n\tonOptionHover: function(e) {\n\t\tif (this.ignoreHover) return;\n\t\tthis.setActiveOption(e.currentTarget, false);\n\t},\n\n\tonOptionSelect: function(e) {\n\t\tvar value, $target, $option, self = this;\n\n\t\tif (e.preventDefault) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\t$target = $(e.currentTarget);\n\t\tif ($target.hasClass('create')) {\n\t\t\tself.createItem(null, function() {\n\t\t\t\tif (self.settings.closeAfterSelect) {\n\t\t\t\t\tself.close();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tvalue = $target.attr('data-value');\n\t\t\tif (typeof value !== 'undefined') {\n\t\t\t\tself.lastQuery = null;\n\t\t\t\tself.setTextboxValue('');\n\t\t\t\tself.addItem(value);\n\t\t\t\tif (self.settings.closeAfterSelect) {\n\t\t\t\t\tself.close();\n\t\t\t\t} else if (!self.settings.hideSelected && e.type && /mouse/.test(e.type)) {\n\t\t\t\t\tself.setActiveOption(self.getOption(value));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tonItemSelect: function(e) {\n\t\tvar self = this;\n\n\t\tif (self.isLocked) return;\n\t\tif (self.settings.mode === 'multi') {\n\t\t\te.preventDefault();\n\t\t\tself.setActiveItem(e.currentTarget, e);\n\t\t}\n\t},\n\n\tload: function(fn) {\n\t\tvar self = this;\n\t\tvar $wrapper = self.$wrapper.addClass(self.settings.loadingClass);\n\n\t\tself.loading++;\n\t\tfn.apply(self, [function(results) {\n\t\t\tself.loading = Math.max(self.loading - 1, 0);\n\t\t\tif (results && results.length) {\n\t\t\t\tself.addOption(results);\n\t\t\t\tself.refreshOptions(self.isFocused && !self.isInputHidden);\n\t\t\t}\n\t\t\tif (!self.loading) {\n\t\t\t\t$wrapper.removeClass(self.settings.loadingClass);\n\t\t\t}\n\t\t\tself.trigger('load', results);\n\t\t}]);\n\t},\n\n\tgetTextboxValue: function() {\n\t\tvar $input = this.$control_input;\n\t\treturn $input.val();\n\t},\n\n\tsetTextboxValue: function(value) {\n\t\tvar $input = this.$control_input;\n\t\tvar changed = $input.val() !== value;\n\t\tif (changed) {\n\t\t\t$input.val(value).triggerHandler('update');\n\t\t\tthis.lastValue = value;\n\t\t}\n\t},\n\n\tgetValue: function() {\n\t\tif (this.tagType === TAG_SELECT && this.$input.attr('multiple')) {\n\t\t\treturn this.items;\n\t\t} else {\n\t\t\treturn this.items.join(this.settings.delimiter);\n\t\t}\n\t},\n\n\tsetValue: function(value, silent) {\n\t\tconst items = Array.isArray(value) ? value : [value];\n\t\tif (items.join('') === this.items.join('')) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar events = silent ? [] : ['change'];\n\n\t\tdebounce_events(this, events, function() {\n\t\t\tthis.clear(silent);\n\t\t\tthis.addItems(value, silent);\n\t\t});\n\t},\n\n\tsetMaxItems: function(value){\n\t\tif(value === 0) value = null; \n\t\tthis.settings.maxItems = value;\n\t\tthis.settings.mode = this.settings.mode || (this.settings.maxItems === 1 ? 'single' : 'multi');\n\t\tthis.refreshState();\n\t},\n\n\tsetActiveItem: function($item, e) {\n\t\tvar self = this;\n\t\tvar eventName;\n\t\tvar i, idx, begin, end, item, swap;\n\t\tvar $last;\n\n\t\tif (self.settings.mode === 'single') return;\n\t\t$item = $($item);\n\n\t\tif (!$item.length) {\n\t\t\t$(self.$activeItems).removeClass('active');\n\t\t\tself.$activeItems = [];\n\t\t\tif (self.isFocused) {\n\t\t\t\tself.showInput();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\teventName = e && e.type.toLowerCase();\n\n\t\tif (eventName === 'mousedown' && self.isShiftDown && self.$activeItems.length) {\n\t\t\t$last = self.$control.children('.active:last');\n\t\t\tbegin = Array.prototype.indexOf.apply(self.$control[0].childNodes, [$last[0]]);\n\t\t\tend   = Array.prototype.indexOf.apply(self.$control[0].childNodes, [$item[0]]);\n\t\t\tif (begin > end) {\n\t\t\t\tswap  = begin;\n\t\t\t\tbegin = end;\n\t\t\t\tend   = swap;\n\t\t\t}\n\t\t\tfor (i = begin; i <= end; i++) {\n\t\t\t\titem = self.$control[0].childNodes[i];\n\t\t\t\tif (self.$activeItems.indexOf(item) === -1) {\n\t\t\t\t\t$(item).addClass('active');\n\t\t\t\t\tself.$activeItems.push(item);\n\t\t\t\t}\n\t\t\t}\n\t\t\te.preventDefault();\n\t\t} else if ((eventName === 'mousedown' && self.isCtrlDown) || (eventName === 'keydown' && this.isShiftDown)) {\n\t\t\tif ($item.hasClass('active')) {\n\t\t\t\tidx = self.$activeItems.indexOf($item[0]);\n\t\t\t\tself.$activeItems.splice(idx, 1);\n\t\t\t\t$item.removeClass('active');\n\t\t\t} else {\n\t\t\t\tself.$activeItems.push($item.addClass('active')[0]);\n\t\t\t}\n\t\t} else {\n\t\t\t$(self.$activeItems).removeClass('active');\n\t\t\tself.$activeItems = [$item.addClass('active')[0]];\n\t\t}\n\n\t\tself.hideInput();\n\t\tif (!this.isFocused) {\n\t\t\tself.focus();\n\t\t}\n\t},\n\n\tsetActiveOption: function($option, scroll, animate) {\n\t\tvar height_menu, height_item, y;\n\t\tvar scroll_top, scroll_bottom;\n\t\tvar self = this;\n\n\t\tif (self.$activeOption) {\n\t\t\tself.$activeOption.removeClass('active');\n\t\t\tself.trigger('dropdown_item_deactivate', self.$activeOption.attr('data-value'));\n\t\t}\n\t\tself.$activeOption = null;\n\n\t\t$option = $($option);\n\t\tif (!$option.length) return;\n\n\t\tself.$activeOption = $option.addClass('active');\n\t\tif (self.isOpen) self.trigger('dropdown_item_activate', self.$activeOption.attr('data-value'));\n\n\t\tif (scroll || !isset(scroll)) {\n\n\t\t\theight_menu   = self.$dropdown_content.height();\n\t\t\theight_item   = self.$activeOption.outerHeight(true);\n\t\t\tscroll        = self.$dropdown_content.scrollTop() || 0;\n\t\t\ty             = self.$activeOption.offset().top - self.$dropdown_content.offset().top + scroll;\n\t\t\tscroll_top    = y;\n\t\t\tscroll_bottom = y - height_menu + height_item;\n\n\t\t\tif (y + height_item > height_menu + scroll) {\n\t\t\t\tself.$dropdown_content.stop().animate({scrollTop: scroll_bottom}, animate ? self.settings.scrollDuration : 0);\n\t\t\t} else if (y < scroll) {\n\t\t\t\tself.$dropdown_content.stop().animate({scrollTop: scroll_top}, animate ? self.settings.scrollDuration : 0);\n\t\t\t}\n\n\t\t}\n\t},\n\n\tselectAll: function() {\n\t\tvar self = this;\n\t\tif (self.settings.mode === 'single') return;\n\n\t\tself.$activeItems = Array.prototype.slice.apply(self.$control.children(':not(input)').addClass('active'));\n\t\tif (self.$activeItems.length) {\n\t\t\tself.hideInput();\n\t\t\tself.close();\n\t\t}\n\t\tself.focus();\n\t},\n\n\thideInput: function() {\n\t\tvar self = this;\n\n\t\tself.setTextboxValue('');\n\t\tself.$control_input.css({opacity: 0, position: 'absolute', left: self.rtl ? 10000 : 0});\n\t\tself.isInputHidden = true;\n\t},\n\n\tshowInput: function() {\n\t\tthis.$control_input.css({opacity: 1, position: 'relative', left: 0});\n\t\tthis.isInputHidden = false;\n\t},\n\n\tfocus: function() {\n\t\tvar self = this;\n\t\tif (self.isDisabled) return self;\n\n\t\tself.ignoreFocus = true;\n\t\tself.$control_input[0].focus();\n\t\twindow.setTimeout(function() {\n\t\t\tself.ignoreFocus = false;\n\t\t\tself.onFocus();\n\t\t}, 0);\n\t\treturn self;\n\t},\n\n\tblur: function(dest) {\n\t\tthis.$control_input[0].blur();\n\t\tthis.onBlur(null, dest);\n\t\treturn this;\n\t},\n\n\tgetScoreFunction: function(query) {\n\t\treturn this.sifter.getScoreFunction(query, this.getSearchOptions());\n\t},\n\n\tgetSearchOptions: function() {\n\t\tvar settings = this.settings;\n\t\tvar sort = settings.sortField;\n\t\tif (typeof sort === 'string') {\n\t\t\tsort = [{field: sort}];\n\t\t}\n\n\t\treturn {\n\t\t\tfields      : settings.searchField,\n\t\t\tconjunction : settings.searchConjunction,\n\t\t\tsort        : sort,\n\t\t\tnesting     : settings.nesting,\n      filter      : settings.filter,\n      respect_word_boundaries : settings.respect_word_boundaries\n\t\t};\n\t},\n\n\tsearch: function(query) {\n\t\tvar i, value, score, result, calculateScore;\n\t\tvar self     = this;\n\t\tvar settings = self.settings;\n\t\tvar options  = this.getSearchOptions();\n\n\t\tif (settings.score) {\n\t\t\tcalculateScore = self.settings.score.apply(this, [query]);\n\t\t\tif (typeof calculateScore !== 'function') {\n\t\t\t\tthrow new Error('Selectize \"score\" setting must be a function that returns a function');\n\t\t\t}\n\t\t}\n\n    if (query !== self.lastQuery) {\n      if (settings.normalize) query = query.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n\t\t\tself.lastQuery = query;\n\t\t\tresult = self.sifter.search(query, $.extend(options, {score: calculateScore}));\n\t\t\tself.currentResults = result;\n\t\t} else {\n\t\t\tresult = $.extend(true, {}, self.currentResults);\n\t\t}\n\n\t\tif (settings.hideSelected) {\n\t\t\tfor (i = result.items.length - 1; i >= 0; i--) {\n\t\t\t\tif (self.items.indexOf(hash_key(result.items[i].id)) !== -1) {\n\t\t\t\t\tresult.items.splice(i, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t},\n\n\trefreshOptions: function(triggerDropdown) {\n\t\tvar i, j, k, n, groups, groups_order, option, option_html, optgroup, optgroups, html, html_children, has_create_option;\n\t\tvar $active, $active_before, $create;\n\n\t\tif (typeof triggerDropdown === 'undefined') {\n\t\t\ttriggerDropdown = true;\n\t\t}\n\n\t\tvar self              = this;\n\t\tvar query             = (self.$control_input.val()).trim();\n\t\tvar results           = self.search(query);\n\t\tvar $dropdown_content = self.$dropdown_content;\n\t\tvar active_before     = self.$activeOption && hash_key(self.$activeOption.attr('data-value'));\n\n\t\tn = results.items.length;\n\t\tif (typeof self.settings.maxOptions === 'number') {\n\t\t\tn = Math.min(n, self.settings.maxOptions);\n\t\t}\n\n\t\tgroups = {};\n\t\tgroups_order = [];\n\n\t\tfor (i = 0; i < n; i++) {\n\t\t\toption      = self.options[results.items[i].id];\n\t\t\toption_html = self.render('option', option);\n\t\t\toptgroup    = option[self.settings.optgroupField] || '';\n\t\t\toptgroups   = Array.isArray(optgroup) ? optgroup : [optgroup];\n\n\t\t\tfor (j = 0, k = optgroups && optgroups.length; j < k; j++) {\n\t\t\t\toptgroup = optgroups[j];\n\t\t\t\tif (!self.optgroups.hasOwnProperty(optgroup) && typeof self.settings.optionGroupRegister === 'function') {\n\t\t\t\t\tvar regGroup;\n\t\t\t\t\tif (regGroup = self.settings.optionGroupRegister.apply(self, [optgroup])) {\n\t\t\t\t\t\tself.registerOptionGroup(regGroup);\n\t\t\t\t\t}\n\t\t\t\t}\n        if (!self.optgroups.hasOwnProperty(optgroup)) {\n\t\t\t\t\toptgroup = '';\n\t\t\t\t}\n\t\t\t\tif (!groups.hasOwnProperty(optgroup)) {\n\t\t\t\t\tgroups[optgroup] = document.createDocumentFragment();\n\t\t\t\t\tgroups_order.push(optgroup);\n\t\t\t\t}\n\t\t\t\tgroups[optgroup].appendChild(option_html);\n\t\t\t}\n\t\t}\n\n\t\tif (this.settings.lockOptgroupOrder) {\n\t\t\tgroups_order.sort(function(a, b) {\n\t\t\t\tvar a_order = self.optgroups[a] && self.optgroups[a].$order || 0;\n\t\t\t\tvar b_order = self.optgroups[b] && self.optgroups[b].$order || 0;\n\t\t\t\treturn a_order - b_order;\n\t\t\t});\n\t\t}\n\n\t\thtml = document.createDocumentFragment();\n\t\tfor (i = 0, n = groups_order.length; i < n; i++) {\n\t\t\toptgroup = groups_order[i];\n\t\t\tif (self.optgroups.hasOwnProperty(optgroup) && groups[optgroup].childNodes.length) {\n\t\t\t\thtml_children = document.createDocumentFragment();\n\t\t\t\thtml_children.appendChild(self.render('optgroup_header', self.optgroups[optgroup]));\n\t\t\t\thtml_children.appendChild(groups[optgroup]);\n\n\t\t\t\thtml.appendChild(self.render('optgroup', $.extend({}, self.optgroups[optgroup], {\n\t\t\t\t\thtml: domToString(html_children),\n\t\t\t\t\tdom:  html_children\n\t\t\t\t})));\n\t\t\t} else {\n\t\t\t\thtml.appendChild(groups[optgroup]);\n\t\t\t}\n\t\t}\n\n\t\t$dropdown_content.html(html);\n\n\t\tif (self.settings.highlight) {\n\t\t\t$dropdown_content.removeHighlight();\n\t\t\tif (results.query.length && results.tokens.length) {\n\t\t\t\tfor (i = 0, n = results.tokens.length; i < n; i++) {\n\t\t\t\t\thighlight($dropdown_content, results.tokens[i].regex);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!self.settings.hideSelected) {\n\t\t\tself.$dropdown.find('.selected').removeClass('selected');\n\n\t\t\tfor (i = 0, n = self.items.length; i < n; i++) {\n\t\t\t\tself.getOption(self.items[i]).addClass('selected');\n\t\t\t}\n\t\t}\n\n\t\tif (self.settings.dropdownSize.sizeType !== 'auto' && self.isOpen) {\n\t\t\tself.setupDropdownHeight();\n\t\t}\n\n\t\tself.positionDropdown();\n\n\t\thas_create_option = self.canCreate(query);\n\t\tif (has_create_option) {\n\t\t\tif(self.settings.showAddOptionOnCreate) {\n\t\t\t\t$dropdown_content.prepend(self.render('option_create', {input: query}));\n\t\t\t\t$create = $($dropdown_content[0].childNodes[0]);\n\t\t\t}\n\t\t}\n\n\t\tself.hasOptions = results.items.length > 0 || ( has_create_option && self.settings.showAddOptionOnCreate ) || self.settings.setFirstOptionActive;\n\n\t\tif (self.hasOptions) {\n      \t\tif (results.items.length > 0) {\n\t\t\t$active_before = active_before && self.getOption(active_before);\n\t\t\tif (results.query !== \"\" && self.settings.setFirstOptionActive) {\n\t\t\t$active = $dropdown_content.find('[data-selectable]:first')\n\t\t\t} else if (results.query !== \"\" && $active_before && $active_before.length) {\n\t\t\t$active = $active_before;\n\t\t\t} else if (self.settings.mode === 'single' && self.items.length) {\n\t\t\t$active = self.getOption(self.items[0]);\n\t\t\t}\n\t\t\tif (!$active || !$active.length) {\n\t\t\tif ($create && !self.settings.addPrecedence) {\n\t\t\t\t$active = self.getAdjacentOption($create, 1);\n\t\t\t} else {\n\t\t\t\t$active = $dropdown_content.find('[data-selectable]:first');\n\t\t\t}\n\t\t\t}\n\t\t\t} else {\n\t\t\t\t$active = $create;\n\t\t\t}\n\t\t\tself.setActiveOption($active);\n\t\t\tif (triggerDropdown && !self.isOpen) { self.open(); }\n\t\t} else {\n\t\t\tself.setActiveOption(null);\n\t\t\tif (triggerDropdown && self.isOpen) { self.close(); }\n\t\t}\n\t},\n\n\taddOption: function(data) {\n\t\tvar i, n, value, self = this;\n\n\t\tif (Array.isArray(data)) {\n\t\t\tfor (i = 0, n = data.length; i < n; i++) {\n\t\t\t\tself.addOption(data[i]);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (value = self.registerOption(data)) {\n\t\t\tself.userOptions[value] = true;\n\t\t\tself.lastQuery = null;\n\t\t\tself.trigger('option_add', value, data);\n\t\t}\n\t},\n\n\tregisterOption: function(data) {\n\t\tvar key = hash_key(data[this.settings.valueField]);\n\t\tif (typeof key === 'undefined' || key === null || this.options.hasOwnProperty(key)) return false;\n\t\tdata.$order = data.$order || ++this.order;\n\t\tthis.options[key] = data;\n\t\treturn key;\n\t},\n\n\tregisterOptionGroup: function(data) {\n\t\tvar key = hash_key(data[this.settings.optgroupValueField]);\n\t\tif (!key) return false;\n\n\t\tdata.$order = data.$order || ++this.order;\n\t\tthis.optgroups[key] = data;\n\t\treturn key;\n\t},\n\n\taddOptionGroup: function(id, data) {\n\t\tdata[this.settings.optgroupValueField] = id;\n\t\tif (id = this.registerOptionGroup(data)) {\n\t\t\tthis.trigger('optgroup_add', id, data);\n\t\t}\n\t},\n\n\tremoveOptionGroup: function(id) {\n\t\tif (this.optgroups.hasOwnProperty(id)) {\n\t\t\tdelete this.optgroups[id];\n\t\t\tthis.renderCache = {};\n\t\t\tthis.trigger('optgroup_remove', id);\n\t\t}\n\t},\n\n\tclearOptionGroups: function() {\n\t\tthis.optgroups = {};\n\t\tthis.renderCache = {};\n\t\tthis.trigger('optgroup_clear');\n\t},\n\n\tupdateOption: function(value, data) {\n\t\tvar self = this;\n\t\tvar $item, $item_new;\n\t\tvar value_new, index_item, cache_items, cache_options, order_old;\n\n\t\tvalue     = hash_key(value);\n\t\tvalue_new = hash_key(data[self.settings.valueField]);\n\n\t\tif (value === null) return;\n\t\tif (!self.options.hasOwnProperty(value)) return;\n\t\tif (typeof value_new !== 'string') throw new Error('Value must be set in option data');\n\n\t\torder_old = self.options[value].$order;\n\n\t\tif (value_new !== value) {\n\t\t\tdelete self.options[value];\n\t\t\tindex_item = self.items.indexOf(value);\n\t\t\tif (index_item !== -1) {\n\t\t\t\tself.items.splice(index_item, 1, value_new);\n\t\t\t}\n\t\t}\n\t\tdata.$order = data.$order || order_old;\n\t\tself.options[value_new] = data;\n\n\t\tcache_items = self.renderCache['item'];\n\t\tcache_options = self.renderCache['option'];\n\n\t\tif (cache_items) {\n\t\t\tdelete cache_items[value];\n\t\t\tdelete cache_items[value_new];\n\t\t}\n\t\tif (cache_options) {\n\t\t\tdelete cache_options[value];\n\t\t\tdelete cache_options[value_new];\n\t\t}\n\n\t\tif (self.items.indexOf(value_new) !== -1) {\n\t\t\t$item = self.getItem(value);\n\t\t\t$item_new = $(self.render('item', data));\n\t\t\tif ($item.hasClass('active')) $item_new.addClass('active');\n\t\t\t$item.replaceWith($item_new);\n\t\t}\n\n\t\tself.lastQuery = null;\n\n\t\tif (self.isOpen) {\n\t\t\tself.refreshOptions(false);\n\t\t}\n\t},\n\n\tremoveOption: function(value, silent) {\n\t\tvar self = this;\n\t\tvalue = hash_key(value);\n\n\t\tvar cache_items = self.renderCache['item'];\n\t\tvar cache_options = self.renderCache['option'];\n\t\tif (cache_items) delete cache_items[value];\n\t\tif (cache_options) delete cache_options[value];\n\n\t\tdelete self.userOptions[value];\n\t\tdelete self.options[value];\n\t\tself.lastQuery = null;\n\t\tself.trigger('option_remove', value);\n\t\tself.removeItem(value, silent);\n\t},\n\n\tclearOptions: function(silent) {\n\t\tvar self = this;\n\n\t\tself.loadedSearches = {};\n\t\tself.userOptions = {};\n\t\tself.renderCache = {};\n\t\tvar options = self.options;\n\t\t$.each(self.options, function(key, value) {\n\t\t\tif(self.items.indexOf(key) == -1) {\n\t\t\t\tdelete options[key];\n\t\t\t}\n\t\t});\n\t\tself.options = self.sifter.items = options;\n\t\tself.lastQuery = null;\n\t\tself.trigger('option_clear');\n\t\tself.clear(silent);\n\t},\n\n\tgetOption: function(value) {\n\t\treturn this.getElementWithValue(value, this.$dropdown_content.find('[data-selectable]'));\n\t},\n\n\tgetFirstOption: function() {\n\t\tvar $options = this.$dropdown.find('[data-selectable]');\n\t\treturn $options.length > 0 ? $options.eq(0) : $();\n\t},\n\n\tgetAdjacentOption: function($option, direction) {\n\t\tvar $options = this.$dropdown.find('[data-selectable]');\n\t\tvar index    = $options.index($option) + direction;\n\n\t\treturn index >= 0 && index < $options.length ? $options.eq(index) : $();\n\t},\n\n\tgetElementWithValue: function(value, $els) {\n\t\tvalue = hash_key(value);\n\n\t\tif (typeof value !== 'undefined' && value !== null) {\n\t\t\tfor (var i = 0, n = $els.length; i < n; i++) {\n\t\t\t\tif ($els[i].getAttribute('data-value') === value) {\n\t\t\t\t\treturn $($els[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn $();\n\t},\n\n\tgetElementWithTextContent: function(textContent, ignoreCase ,$els) {\n\t\ttextContent = hash_key(textContent);\n\n\t\tif (typeof textContent !== 'undefined' && textContent !== null) {\n\t\t\tfor (var i = 0, n = $els.length; i < n; i++) {\n\t\t\t\tvar eleTextContent = $els[i].textContent\n\t\t\t\tif (ignoreCase == true) {\n\t\t\t\t\teleTextContent = (eleTextContent !== null) ? eleTextContent.toLowerCase() : null;\n\t\t\t\t\ttextContent = textContent.toLowerCase();\n\t\t\t\t}\n\t\t\t\tif (eleTextContent === textContent) {\n\t\t\t\t\treturn $($els[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn $();\n\t},\n\n\tgetItem: function(value) {\n\t\treturn this.getElementWithValue(value, this.$control.children());\n\t},\n\n\tgetFirstItemMatchedByTextContent: function(textContent, ignoreCase) {\n\t\tignoreCase = (ignoreCase !== null && ignoreCase === true) ? true : false;\n\t\treturn this.getElementWithTextContent(textContent, ignoreCase, this.$dropdown_content.find('[data-selectable]'));\n\t},\n\n\taddItems: function(values, silent) {\n\t\tthis.buffer = document.createDocumentFragment();\n\n\t\tvar childNodes = this.$control[0].childNodes;\n\t\tfor (var i = 0; i < childNodes.length; i++) {\n\t\t\tthis.buffer.appendChild(childNodes[i]);\n\t\t}\n\n\t\tvar items = Array.isArray(values) ? values : [values];\n\t\tfor (var i = 0, n = items.length; i < n; i++) {\n\t\t\tthis.isPending = (i < n - 1);\n\t\t\tthis.addItem(items[i], silent);\n\t\t}\n\n\t\tvar control = this.$control[0];\n\t\tcontrol.insertBefore(this.buffer, control.firstChild);\n\n\t\tthis.buffer = null;\n\t},\n\n\taddItem: function(value, silent) {\n\t\tvar events = silent ? [] : ['change'];\n\n\t\tdebounce_events(this, events, function() {\n\t\t\tvar $item, $option, $options;\n\t\t\tvar self = this;\n\t\t\tvar inputMode = self.settings.mode;\n\t\t\tvar i, active, value_next, wasFull;\n\t\t\tvalue = hash_key(value);\n\n\t\t\tif (self.items.indexOf(value) !== -1) {\n\t\t\t\tif (inputMode === 'single') self.close();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!self.options.hasOwnProperty(value)) return;\n\t\t\tif (inputMode === 'single') self.clear(silent);\n\t\t\tif (inputMode === 'multi' && self.isFull()) return;\n\n      $item = $(self.render('item', self.options[value]));\n\t\t\twasFull = self.isFull();\n\t\t\tself.items.splice(self.caretPos, 0, value);\n      self.insertAtCaret($item);\n\t\t\tif (!self.isPending || (!wasFull && self.isFull())) {\n\t\t\t\tself.refreshState();\n\t\t\t}\n\n\t\t\tif (self.isSetup) {\n\t\t\t\t$options = self.$dropdown_content.find('[data-selectable]');\n\n\t\t\t\tif (!self.isPending) {\n\t\t\t\t\t$option = self.getOption(value);\n\t\t\t\t\tvalue_next = self.getAdjacentOption($option, 1).attr('data-value');\n\t\t\t\t\tself.refreshOptions(self.isFocused && inputMode !== 'single');\n\t\t\t\t\tif (value_next) {\n\t\t\t\t\t\tself.setActiveOption(self.getOption(value_next));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!$options.length || self.isFull()) {\n\t\t\t\t\tself.close();\n\t\t\t\t} else if (!self.isPending) {\n\t\t\t\t\tself.positionDropdown();\n\t\t\t\t}\n\n\t\t\t\tself.updatePlaceholder();\n\t\t\t\tself.trigger('item_add', value, $item);\n\n\t\t\t\tif (!self.isPending) {\n\t\t\t\t\tself.updateOriginalInput({silent: silent});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tremoveItem: function(value, silent) {\n\t\tvar self = this;\n\t\tvar $item, i, idx;\n\n\t\t$item = (value instanceof $) ? value : self.getItem(value);\n\t\tvalue = hash_key($item.attr('data-value'));\n\t\ti = self.items.indexOf(value);\n\n\t\tif (i !== -1) {\n\t\t\tself.trigger('item_before_remove', value, $item);\n\t\t\t$item.remove();\n      if ($item.hasClass('active')) {\n        $item.removeClass('active');\n\t\t\t\tidx = self.$activeItems.indexOf($item[0]);\n\t\t\t\tself.$activeItems.splice(idx, 1);\n\t\t\t\t$item.removeClass('active');\n\t\t\t}\n\n\t\t\tself.items.splice(i, 1);\n\t\t\tself.lastQuery = null;\n\t\t\tif (!self.settings.persist && self.userOptions.hasOwnProperty(value)) {\n\t\t\t\tself.removeOption(value, silent);\n\t\t\t}\n\n\t\t\tif (i < self.caretPos) {\n\t\t\t\tself.setCaret(self.caretPos - 1);\n\t\t\t}\n\n\t\t\tself.refreshState();\n\t\t\tself.updatePlaceholder();\n\t\t\tself.updateOriginalInput({silent: silent});\n\t\t\tself.positionDropdown();\n\t\t\tself.trigger('item_remove', value, $item);\n\t\t}\n\t},\n\n\tcreateItem: function(input, triggerDropdown) {\n\t\tvar self  = this;\n\t\tvar caret = self.caretPos;\n\t\tinput = input || (self.$control_input.val() || '').trim();\n\n\t\tvar callback = arguments[arguments.length - 1];\n\t\tif (typeof callback !== 'function') callback = function() {};\n\n\t\tif (typeof triggerDropdown !== 'boolean') {\n\t\t\ttriggerDropdown = true;\n\t\t}\n\n\t\tif (!self.canCreate(input)) {\n\t\t\tcallback();\n\t\t\treturn false;\n\t\t}\n\n\t\tself.lock();\n\n\t\tvar setup = (typeof self.settings.create === 'function') ? this.settings.create : function(input) {\n\t\t\tvar data = {};\n\t\t\tdata[self.settings.labelField] = input;\n\t\t\tvar key = input;\n\t\t\tif ( self.settings.formatValueToKey && typeof self.settings.formatValueToKey === 'function' ) {\n\t\t\t\tkey = self.settings.formatValueToKey.apply(this, [key]);\n\t\t\t\tif (key === null || typeof key === 'undefined' || typeof key === 'object' || typeof key === 'function') {\n\t\t\t\t\tthrow new Error('Selectize \"formatValueToKey\" setting must be a function that returns a value other than object or function.');\n\t\t\t\t}\n\t\t\t}\n\t\t\tdata[self.settings.valueField] = key;\n\t\t\treturn data;\n\t\t};\n\n\t\tvar create = once(function(data) {\n\t\t\tself.unlock();\n\n\t\t\tif (!data || typeof data !== 'object') return callback();\n\t\t\tvar value = hash_key(data[self.settings.valueField]);\n\t\t\tif (typeof value !== 'string') return callback();\n\n\t\t\tself.setTextboxValue('');\n\t\t\tself.addOption(data);\n\t\t\tself.setCaret(caret);\n\t\t\tself.addItem(value);\n\t\t\tself.refreshOptions(triggerDropdown && self.settings.mode !== 'single');\n\t\t\tcallback(data);\n\t\t});\n\n\t\tvar output = setup.apply(this, [input, create]);\n\t\tif (typeof output !== 'undefined') {\n\t\t\tcreate(output);\n\t\t}\n\n\t\treturn true;\n\t},\n\n\trefreshItems: function(silent) {\n\t\tthis.lastQuery = null;\n\n\t\tif (this.isSetup) {\n\t\t\tthis.addItem(this.items, silent);\n\t\t}\n\n\t\tthis.refreshState();\n\t\tthis.updateOriginalInput({silent: silent});\n\t},\n\n\trefreshState: function() {\n\t\tthis.refreshValidityState();\n\t\tthis.refreshClasses();\n\t},\n\n\trefreshValidityState: function() {\n\t\tif (!this.isRequired) return false;\n\n\t\tvar invalid = !this.items.length;\n\n\t\tthis.isInvalid = invalid;\n\t\tthis.$control_input.prop('required', invalid);\n\t\tthis.$input.prop('required', !invalid);\n\t},\n\n\trefreshClasses: function() {\n\t\tvar self     = this;\n\t\tvar isFull   = self.isFull();\n\t\tvar isLocked = self.isLocked;\n\n\t\tself.$wrapper\n\t\t\t.toggleClass('rtl', self.rtl);\n\n\t\tself.$control\n\t\t\t.toggleClass('focus', self.isFocused)\n\t\t\t.toggleClass('disabled', self.isDisabled)\n\t\t\t.toggleClass('required', self.isRequired)\n\t\t\t.toggleClass('invalid', self.isInvalid)\n\t\t\t.toggleClass('locked', isLocked)\n\t\t\t.toggleClass('full', isFull).toggleClass('not-full', !isFull)\n\t\t\t.toggleClass('input-active', self.isFocused && !self.isInputHidden)\n\t\t\t.toggleClass('dropdown-active', self.isOpen)\n\t\t\t.toggleClass('has-options', !$.isEmptyObject(self.options))\n\t\t\t.toggleClass('has-items', self.items.length > 0);\n\n\t\tself.$control_input.data('grow', !isFull && !isLocked);\n\t},\n\n\tisFull: function() {\n\t\treturn this.settings.maxItems !== null && this.items.length >= this.settings.maxItems;\n\t},\n\n\tupdateOriginalInput: function(opts) {\n\t\tvar i, n, existing, fresh, old, $options, label, value, values, self = this;\n\t\topts = opts || {};\n\n\t\tif (self.tagType === TAG_SELECT) {\n\t\t\t$options  = self.$input.find('option');\n\t\t\texisting  = [];\n\t\t\tfresh     = [];\n\t\t\told       = [];\n\t\t\tvalues    = [];\n\n\t\t\t$options.get().forEach(function(option) {\n\t\t\t\texisting.push(option.value);\n\t\t\t});\n\n\t\t\tself.items.forEach(function(item) {\n\t\t\t\tlabel = self.options[item][self.settings.labelField] || '';\n\n\t\t\t\tvalues.push(item);\n\n\t\t\t\tif (existing.indexOf(item) != -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfresh.push('<option value=\"' + escape_html(item) + '\" selected=\"selected\">' + escape_html(label) + '</option>');\n\t\t\t});\n\n\t\t\told = existing.filter(function(value) {\n\t\t\t\treturn values.indexOf(value) < 0;\n\t\t\t}).map(function(value) {\n\t\t\t\treturn 'option[value=\"' + escape_html(value) + '\"]';\n\t\t\t});\n\n\t\t\tif (existing.length - old.length + fresh.length === 0 && !self.$input.attr('multiple')) {\n\t\t\t\tfresh.push('<option value=\"\" selected=\"selected\"></option>');\n\t\t\t}\n\n\t\t\tself.$input.find(old.join(', ')).remove();\n\t\t\tself.$input.append(fresh.join(''));\n\t\t} else {\n\t\t\tself.$input.val(self.getValue());\n\t\t\tself.$input.attr('value',self.$input.val());\n\t\t}\n\n\t\tif (self.isSetup) {\n\t\t\tif (!opts.silent) {\n\t\t\t\tself.trigger('change', self.$input.val());\n\t\t\t}\n\t\t}\n\t},\n\n\tupdatePlaceholder: function() {\n\t\tif (!this.settings.placeholder) return;\n\t\tvar $input = this.$control_input;\n\n\t\tif (this.items.length) {\n\t\t\t$input.removeAttr('placeholder');\n\t\t} else {\n\t\t\t$input.attr('placeholder', this.settings.placeholder);\n\t\t}\n\t\t$input.triggerHandler('update', {force: true});\n\t},\n\n\topen: function() {\n\t\tvar self = this;\n\n\t\tif (\n      self.isLocked ||\n      self.isOpen ||\n      (self.settings.mode === \"multi\" && self.isFull())\n    )\n      return;\n\t\tself.focus();\n\t\tself.isOpen = true;\n\t\tself.refreshState();\n\t\tself.$dropdown.css({ visibility: 'hidden', display: 'block' });\n\t\tself.setupDropdownHeight();\n    self.positionDropdown();\n\t\tself.$dropdown.css({visibility: 'visible'});\n\t\tself.trigger('dropdown_open', self.$dropdown);\n\t},\n\n\tclose: function() {\n\t\tvar self = this;\n\t\tvar trigger = self.isOpen;\n\n\t\tif (self.settings.mode === 'single' && self.items.length) {\n\t\t\tself.hideInput();\n\n\t\t\tif (self.isBlurring) {\n\t\t\t\tself.$control_input[0].blur(); \n\t\t\t}\n\t\t}\n\n\t\tself.isOpen = false;\n\t\tself.$dropdown.hide();\n\t\tself.setActiveOption(null);\n\t\tself.refreshState();\n\n\t\tif (trigger) self.trigger('dropdown_close', self.$dropdown);\n\t},\n\n\tpositionDropdown: function() {\n\t\tvar $control = this.$control;\n\t\tvar offset = this.settings.dropdownParent === 'body' ? $control.offset() : $control.position();\n\t\toffset.top += $control.outerHeight(true);\n\t\tvar w = this.$wrapper[0].style.width !== 'fit-content' ? this.settings.dropdownParent === 'body' ? 'max-content' : '100%' : 'max-content';\n\t\tif (this.settings.minWidth && this.settings.minWidth > w)\n\t\t{\n\t\t\tw = this.settings.minWidth;\n\t\t}\n\n    if (this.settings.dropdownParent !== 'body' && w === 'max-content' && $control.outerWidth(true) >= this.$dropdown.outerWidth(true)) {\n      w = '100%';\n    }\n\n    this.$dropdown.css({\n\t\t\twidth : w,\n      minWidth : $control.outerWidth(true),\n\t\t\ttop   : offset.top,\n\t\t\tleft  : offset.left\n\t\t});\n\t},\n\n  setupDropdownHeight: function () {\n    if (typeof this.settings.dropdownSize === 'object' && this.settings.dropdownSize.sizeType !== 'auto') {\n      var height = this.settings.dropdownSize.sizeValue;\n\n      if (this.settings.dropdownSize.sizeType === 'numberItems') {\n        var $items = this.$dropdown_content.find('*').not('.optgroup, .highlight').not(this.settings.ignoreOnDropwdownHeight);\n        var totalHeight = 0;\n        var marginTop = 0;\n        var marginBottom = 0;\n        var separatorHeight = 0;\n\n\n        for (var i = 0; i < height; i++) {\n          var $item = $($items[i]);\n\n          if ($item.length === 0) {\n            break;\n          }\n\n          totalHeight += $item.outerHeight(true);\n          if (typeof $item.data('selectable') == 'undefined') {\n            if ($item.hasClass('optgroup-header')) {\n              var styles = window.getComputedStyle($item.parent()[0], ':before');\n\n              if (styles) {\n                marginTop = styles.marginTop ? Number(styles.marginTop.replace(/\\W*(\\w)\\w*/g, '$1')) : 0;\n                marginBottom = styles.marginBottom ? Number(styles.marginBottom.replace(/\\W*(\\w)\\w*/g, '$1')) : 0;\n                separatorHeight = styles.borderTopWidth ? Number(styles.borderTopWidth.replace(/\\W*(\\w)\\w*/g, '$1')) : 0;\n              }\n            }\n            height++;\n          }\n\n        }\n\n        var paddingTop = this.$dropdown_content.css('padding-top') ? Number(this.$dropdown_content.css('padding-top').replace(/\\W*(\\w)\\w*/g, '$1')) : 0;\n        var paddingBottom = this.$dropdown_content.css('padding-bottom') ? Number(this.$dropdown_content.css('padding-bottom').replace(/\\W*(\\w)\\w*/g, '$1')) : 0;\n\n        height = (totalHeight + paddingTop + paddingBottom + marginTop + marginBottom + separatorHeight) + 'px';\n      } else if (this.settings.dropdownSize.sizeType !== 'fixedHeight') {\n        console.warn('Selectize.js - Value of \"sizeType\" must be \"fixedHeight\" or \"numberItems');\n        return;\n      }\n\n      this.$dropdown_content.css({ height: height, maxHeight: 'none' });\n    }\n  },\n\n\tclear: function(silent) {\n\t\tvar self = this;\n\n\t\tif (!self.items.length) return;\n\t\tself.$control.children(':not(input)').remove();\n\t\tself.items = [];\n\t\tself.lastQuery = null;\n\t\tself.setCaret(0);\n\t\tself.setActiveItem(null);\n\t\tself.updatePlaceholder();\n\t\tself.updateOriginalInput({silent: silent});\n\t\tself.refreshState();\n\t\tself.showInput();\n\t\tself.trigger('clear');\n\t},\n\n\tinsertAtCaret: function($el) {\n\t\tvar caret = Math.min(this.caretPos, this.items.length);\n    var el = $el[0];\n\t\tvar target = this.buffer || this.$control[0];\n\n\t\tif (caret === 0) {\n\t\t\ttarget.insertBefore(el, target.firstChild);\n\t\t} else {\n\t\t\ttarget.insertBefore(el, target.childNodes[caret]);\n\t\t}\n\n\t\tthis.setCaret(caret + 1);\n\t},\n\n\tdeleteSelection: function(e) {\n\t\tvar i, n, direction, selection, values, caret, option_select, $option_select, $tail;\n\t\tvar self = this;\n\n\t\tdirection = (e && e.keyCode === KEY_BACKSPACE) ? -1 : 1;\n\t\tselection = getInputSelection(self.$control_input[0]);\n\n\t\tif (self.$activeOption && !self.settings.hideSelected) {\n\t\t\tif (typeof self.settings.deselectBehavior === 'string' && self.settings.deselectBehavior === 'top') {\n\t\t\t\toption_select = self.getFirstOption().attr('data-value');\n\t\t\t} else {\n\t\t\t\toption_select = self.getAdjacentOption(self.$activeOption, -1).attr('data-value');\n\t\t\t}\n\t\t}\n\n\t\tvalues = [];\n\n\t\tif (self.$activeItems.length) {\n\t\t\t$tail = self.$control.children('.active:' + (direction > 0 ? 'last' : 'first'));\n\t\t\tcaret = self.$control.children(':not(input)').index($tail);\n\t\t\tif (direction > 0) { caret++; }\n\n\t\t\tfor (i = 0, n = self.$activeItems.length; i < n; i++) {\n\t\t\t\tvalues.push($(self.$activeItems[i]).attr('data-value'));\n\t\t\t}\n\t\t\tif (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t}\n\t\t} else if ((self.isFocused || self.settings.mode === 'single') && self.items.length) {\n\t\t\tif (direction < 0 && selection.start === 0 && selection.length === 0) {\n\t\t\t\tvalues.push(self.items[self.caretPos - 1]);\n\t\t\t} else if (direction > 0 && selection.start === self.$control_input.val().length) {\n\t\t\t\tvalues.push(self.items[self.caretPos]);\n\t\t\t}\n\t\t}\n\n\t\tif (!values.length || (typeof self.settings.onDelete === 'function' && self.settings.onDelete.apply(self, [values]) === false)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (typeof caret !== 'undefined') {\n\t\t\tself.setCaret(caret);\n\t\t}\n\t\twhile (values.length) {\n\t\t\tself.removeItem(values.pop());\n\t\t}\n\n\t\tself.showInput();\n\t\tself.positionDropdown();\n\t\tself.refreshOptions(true);\n\n\t\tif (option_select) {\n\t\t\t$option_select = self.getOption(option_select);\n\t\t\tif ($option_select.length) {\n\t\t\t\tself.setActiveOption($option_select);\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t},\n\n\tadvanceSelection: function(direction, e) {\n\t\tvar tail, selection, idx, valueLength, cursorAtEdge, $tail;\n\t\tvar self = this;\n\n\t\tif (direction === 0) return;\n\t\tif (self.rtl) direction *= -1;\n\n\t\ttail = direction > 0 ? 'last' : 'first';\n\t\tselection = getInputSelection(self.$control_input[0]);\n\n\t\tif (self.isFocused && !self.isInputHidden) {\n\t\t\tvalueLength = self.$control_input.val().length;\n\t\t\tcursorAtEdge = direction < 0\n\t\t\t\t? selection.start === 0 && selection.length === 0\n\t\t\t\t: selection.start === valueLength;\n\n\t\t\tif (cursorAtEdge && !valueLength) {\n\t\t\t\tself.advanceCaret(direction, e);\n\t\t\t}\n\t\t} else {\n\t\t\t$tail = self.$control.children('.active:' + tail);\n\t\t\tif ($tail.length) {\n\t\t\t\tidx = self.$control.children(':not(input)').index($tail);\n\t\t\t\tself.setActiveItem(null);\n\t\t\t\tself.setCaret(direction > 0 ? idx + 1 : idx);\n\t\t\t}\n\t\t}\n\t},\n\n\tadvanceCaret: function(direction, e) {\n\t\tvar self = this, fn, $adj;\n\n\t\tif (direction === 0) return;\n\n\t\tfn = direction > 0 ? 'next' : 'prev';\n\t\tif (self.isShiftDown) {\n\t\t\t$adj = self.$control_input[fn]();\n\t\t\tif ($adj.length) {\n\t\t\t\tself.hideInput();\n\t\t\t\tself.setActiveItem($adj);\n\t\t\t\te && e.preventDefault();\n\t\t\t}\n\t\t} else {\n\t\t\tself.setCaret(self.caretPos + direction);\n\t\t}\n\t},\n\n\tsetCaret: function(i) {\n\t\tvar self = this;\n\n\t\tif (self.settings.mode === 'single') {\n\t\t\ti = self.items.length;\n\t\t} else {\n\t\t\ti = Math.max(0, Math.min(self.items.length, i));\n\t\t}\n\n\t\tif(!self.isPending) {\n\t\t\tvar j, n, fn, $children, $child;\n\t\t\t$children = self.$control.children(':not(input)');\n\t\t\tfor (j = 0, n = $children.length; j < n; j++) {\n\t\t\t\t$child = $($children[j]).detach();\n\t\t\t\tif (j <  i) {\n\t\t\t\t\tself.$control_input.before($child);\n\t\t\t\t} else {\n\t\t\t\t\tself.$control.append($child);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tself.caretPos = i;\n\t},\n\n\tlock: function() {\n\t\tthis.close();\n\t\tthis.isLocked = true;\n\t\tthis.refreshState();\n\t},\n\n\tunlock: function() {\n\t\tthis.isLocked = false;\n\t\tthis.refreshState();\n\t},\n\n\tdisable: function() {\n\t\tvar self = this;\n\t\tself.$input.prop('disabled', true);\n\t\tself.$control_input.prop('disabled', true).prop('tabindex', -1);\n\t\tself.isDisabled = true;\n\t\tself.lock();\n\t},\n\n\tenable: function() {\n\t\tvar self = this;\n\t\tself.$input.prop('disabled', false);\n\t\tself.$control_input.prop('disabled', false).prop('tabindex', self.tabIndex);\n\t\tself.isDisabled = false;\n\t\tself.unlock();\n\t},\n\n\tdestroy: function() {\n\t\tvar self = this;\n\t\tvar eventNS = self.eventNS;\n\t\tvar revertSettings = self.revertSettings;\n\n\t\tself.trigger('destroy');\n\t\tself.off();\n\t\tself.$wrapper.remove();\n\t\tself.$dropdown.remove();\n\n\t\tself.$input\n\t\t\t.html('')\n\t\t\t.append(revertSettings.$children)\n\t\t\t.removeAttr('tabindex')\n\t\t\t.removeClass('selectized')\n\t\t\t.attr({tabindex: revertSettings.tabindex})\n\t\t\t.show();\n\n\t\tself.$control_input.removeData('grow');\n\t\tself.$input.removeData('selectize');\n\n\t\tif (--Selectize.count == 0 && Selectize.$testInput) {\n\t\t\tSelectize.$testInput.remove();\n\t\t\tSelectize.$testInput = undefined;\n\t\t}\n\n\t\t$(window).off(eventNS);\n\t\t$(document).off(eventNS);\n\t\t$(document.body).off(eventNS);\n\n\t\tdelete self.$input[0].selectize;\n\t},\n\n\trender: function(templateName, data) {\n\t\tvar value, id, label;\n\t\tvar html = '';\n\t\tvar cache = false;\n\t\tvar self = this;\n\t\tvar regex_tag = /^[\\t \\r\\n]*<([a-z][a-z0-9\\-_]*(?:\\:[a-z][a-z0-9\\-_]*)?)/i;\n\n\t\tif (templateName === 'option' || templateName === 'item') {\n\t\t\tvalue = hash_key(data[self.settings.valueField]);\n\t\t\tcache = !!value;\n\t\t}\n\n\t\tif (cache) {\n\t\t\tif (!isset(self.renderCache[templateName])) {\n\t\t\t\tself.renderCache[templateName] = {};\n\t\t\t}\n\t\t\tif (self.renderCache[templateName].hasOwnProperty(value)) {\n\t\t\t\treturn self.renderCache[templateName][value];\n\t\t\t}\n\t\t}\n\n\t\thtml = $(self.settings.render[templateName].apply(this, [data, escape_html]));\n\n\t\tif (templateName === 'option' || templateName === 'option_create') {\n\t\t\tif (!data[self.settings.disabledField]) {\n\t\t\t\thtml.attr('data-selectable', '');\n\t\t\t}\n\t\t}\n\t\telse if (templateName === 'optgroup') {\n\t\t\tid = data[self.settings.optgroupValueField] || '';\n\t\t\thtml.attr('data-group', id);\n\t\t\tif(data[self.settings.disabledField]) {\n\t\t\t\thtml.attr('data-disabled', '');\n\t\t\t}\n\t\t}\n\t\tif (templateName === 'option' || templateName === 'item') {\n\t\t\thtml.attr('data-value', value || '');\n\t\t}\n\n\t\tif (cache) {\n\t\t\tself.renderCache[templateName][value] = html[0];\n\t\t}\n\n\t\treturn html[0];\n\t},\n\n\tclearCache: function(templateName) {\n\t\tvar self = this;\n\t\tif (typeof templateName === 'undefined') {\n\t\t\tself.renderCache = {};\n\t\t} else {\n\t\t\tdelete self.renderCache[templateName];\n\t\t}\n\t},\n\n\tcanCreate: function(input) {\n\t\tvar self = this;\n\t\tif (!self.settings.create) return false;\n\t\tvar filter = self.settings.createFilter;\n\t\treturn input.length\n\t\t\t&& (typeof filter !== 'function' || filter.apply(self, [input]))\n\t\t\t&& (typeof filter !== 'string' || new RegExp(filter).test(input))\n\t\t\t&& (!(filter instanceof RegExp) || filter.test(input));\n\t}\n});\n\nSelectize.count = 0;\nSelectize.defaults = {\n  options: [],\n  optgroups: [],\n\n  plugins: [],\n  delimiter: ',',\n  splitOn: null, \n  persist: true,\n  diacritics: true,\n  create: false,\n  showAddOptionOnCreate: true,\n  createOnBlur: false,\n  createFilter: null,\n  highlight: true,\n  openOnFocus: true,\n  maxOptions: 1000,\n  maxItems: null,\n  hideSelected: null,\n  addPrecedence: false,\n  selectOnTab: true,\n  preload: false,\n  allowEmptyOption: false,\n  showEmptyOptionInDropdown: false,\n  emptyOptionLabel: '--',\n  setFirstOptionActive: false,\n  closeAfterSelect: false,\n  closeDropdownThreshold: 250, \n\n  scrollDuration: 60,\n  deselectBehavior: 'previous', \n  loadThrottle: 300,\n  loadingClass: 'loading',\n\n  dataAttr: 'data-data',\n  optgroupField: 'optgroup',\n  valueField: 'value',\n  labelField: 'text',\n  disabledField: 'disabled',\n  optgroupLabelField: 'label',\n  optgroupValueField: 'value',\n  lockOptgroupOrder: false,\n\n  sortField: '$order',\n  searchField: ['text'],\n  searchConjunction: 'and',\n  respect_word_boundaries: false, \n  normalize: true,\n\n  mode: null,\n  wrapperClass: '',\n  inputClass: '',\n  dropdownClass: '',\n  dropdownContentClass: '',\n\n  dropdownParent: null,\n\n  copyClassesToDropdown: true,\n  dropdownSize: {\n    sizeType: 'auto',\n    sizeValue: 'auto',\n  },\n\n  ignoreOnDropwdownHeight: 'img, i',\n  search: true,\n  showArrow: true,\n\n  render: {\n  }\n};\n\n$.fn.selectize = function (settings_user) {\n  var defaults = $.fn.selectize.defaults;\n  var settings = $.extend({}, defaults, settings_user);\n  var attr_data = settings.dataAttr;\n  var field_label = settings.labelField;\n  var field_value = settings.valueField;\n  var field_disabled = settings.disabledField;\n  var field_optgroup = settings.optgroupField;\n  var field_optgroup_label = settings.optgroupLabelField;\n  var field_optgroup_value = settings.optgroupValueField;\n\n  var init_textbox = function ($input, settings_element) {\n    var i, n, values, option;\n\n    var data_raw = $input.attr(attr_data);\n\n    if (!data_raw) {\n      var value = ($input.val() || '').trim();\n      if (!settings.allowEmptyOption && !value.length) return;\n      values = value.split(settings.delimiter);\n      for (i = 0, n = values.length; i < n; i++) {\n        option = {};\n        option[field_label] = values[i];\n        option[field_value] = values[i];\n        settings_element.options.push(option);\n      }\n      settings_element.items = values;\n    } else {\n      settings_element.options = JSON.parse(data_raw);\n      for (i = 0, n = settings_element.options.length; i < n; i++) {\n        settings_element.items.push(settings_element.options[i][field_value]);\n      }\n    }\n  };\n\n  var init_select = function ($input, settings_element) {\n    var i, n, tagName, $children, order = 0;\n    var options = settings_element.options;\n    var optionsMap = {};\n\n    var readData = function ($el) {\n      var data = attr_data && $el.attr(attr_data);\n      var allData = $el.data();\n      var obj = {};\n\n      if (typeof data === 'string' && data.length) {\n        if (isJSON(data)) {\n          Object.assign(obj, JSON.parse(data))\n        } else {\n          obj[data] = data;\n        }\n      }\n\n\n      Object.assign(obj, allData);\n\n      return obj || null;\n    };\n\n    var addOption = function ($option, group) {\n      $option = $($option);\n\n      var value = hash_key($option.val());\n      if (!value && !settings.allowEmptyOption) return;\n\n      if (optionsMap.hasOwnProperty(value)) {\n        if (group) {\n          var arr = optionsMap[value][field_optgroup];\n          if (!arr) {\n            optionsMap[value][field_optgroup] = group;\n          } else if (!Array.isArray(arr)) {\n            optionsMap[value][field_optgroup] = [arr, group];\n          } else {\n            arr.push(group);\n          }\n        }\n        return;\n      }\n\n      var option = readData($option) || {};\n      option[field_label] = option[field_label] || $option.text();\n      option[field_value] = option[field_value] || value;\n      option[field_disabled] = option[field_disabled] || $option.prop('disabled');\n      option[field_optgroup] = option[field_optgroup] || group;\n      option.styles = $option.attr('style') || '';\n      option.classes = $option.attr('class') || '';\n\n      optionsMap[value] = option;\n      options.push(option);\n\n      if ($option.is(':selected')) {\n        settings_element.items.push(value);\n      }\n    };\n\n    var addGroup = function ($optgroup) {\n      var i, n, id, optgroup, $options;\n\n      $optgroup = $($optgroup);\n      id = $optgroup.attr('label');\n\n      if (id) {\n        optgroup = readData($optgroup) || {};\n        optgroup[field_optgroup_label] = id;\n        optgroup[field_optgroup_value] = id;\n        optgroup[field_disabled] = $optgroup.prop('disabled');\n        settings_element.optgroups.push(optgroup);\n      }\n\n      $options = $('option', $optgroup);\n      for (i = 0, n = $options.length; i < n; i++) {\n        addOption($options[i], id);\n      }\n    };\n\n    settings_element.maxItems = $input.attr('multiple') ? null : 1;\n\n    $children = $input.children();\n    for (i = 0, n = $children.length; i < n; i++) {\n      tagName = $children[i].tagName.toLowerCase();\n      if (tagName === 'optgroup') {\n        addGroup($children[i]);\n      } else if (tagName === 'option') {\n        addOption($children[i]);\n      }\n    }\n  };\n\n  return this.each(function () {\n    if (this.selectize) return;\n\n    var instance;\n    var $input = $(this);\n    var tag_name = this.tagName.toLowerCase();\n    var placeholder = $input.attr('placeholder') || $input.attr('data-placeholder');\n    if (!placeholder && !settings.allowEmptyOption) {\n      placeholder = $input.children('option[value=\"\"]').text();\n    }\n    if (settings.allowEmptyOption && settings.showEmptyOptionInDropdown && !$input.children('option[value=\"\"]').length) {\n      var input_html = $input.html();\n      var label = escape_html(settings.emptyOptionLabel || '--');\n      $input.html('<option value=\"\">' + label + '</option>' + input_html);\n    }\n\n    var settings_element = {\n      'placeholder': placeholder,\n      'options': [],\n      'optgroups': [],\n      'items': []\n    };\n\n    if (tag_name === 'select') {\n      init_select($input, settings_element);\n    } else {\n      init_textbox($input, settings_element);\n    }\n\n    instance = new Selectize($input, $.extend(true, {}, defaults, settings_element, settings_user));\n    instance.settings_user = settings_user;\n  });\n};\n\n$.fn.selectize.defaults = Selectize.defaults;\n$.fn.selectize.support = {\n  validity: SUPPORTS_VALIDITY_API\n};\n\nSelectize.define(\"auto_position\", function () {\n  var self = this;\n\n  const POSITION = {\n    top: 'top',\n    bottom: 'bottom',\n  };\n\n  self.positionDropdown = (function () {\n    return function () {\n      const $control = this.$control;\n      const offset = this.settings.dropdownParent === 'body' ? $control.offset() : $control.position();\n      offset.top += $control.outerHeight(true);\n\n      const dropdownHeight = this.$dropdown.prop('scrollHeight') + 5; \n      const controlPosTop = this.$control.get(0).getBoundingClientRect().top;\n      const wrapperHeight = this.$wrapper.height();\n      const controlPosBottom = self.$control.get(0).getBoundingClientRect().bottom\n      const position =\n        controlPosTop + dropdownHeight + wrapperHeight > window.innerHeight &&\n          controlPosBottom - dropdownHeight - wrapperHeight >= 0 ?\n          POSITION.top :\n          POSITION.bottom;\n      let w = this.$wrapper[0].style.width !== 'fit-content' ? this.settings.dropdownParent === 'body' ? 'max-content' : '100%' : 'max-content';\n      const styles = {\n        width: w,\n        minWidth : $control.outerWidth(true),\n        left: offset.left\n      };\n\n      if (position === POSITION.top) {\n        const styleToAdd = { bottom: offset.top, top: 'unset' };\n\n        if (this.settings.dropdownParent === 'body') {\n          styleToAdd.top = offset.top - this.$dropdown.outerHeight(true) - $control.outerHeight(true);\n          styleToAdd.bottom = 'unset';\n        }\n        Object.assign(styles, styleToAdd);\n        this.$dropdown.addClass('selectize-position-top');\n        this.$control.addClass('selectize-position-top');\n      } else {\n        Object.assign(styles, { top: offset.top, bottom: 'unset' });\n        this.$dropdown.removeClass('selectize-position-top');\n        this.$control.removeClass('selectize-position-top');\n      }\n\n      if (this.settings.dropdownParent !== 'body' && w === 'max-content' && $control.outerWidth(true) >= this.$dropdown.outerWidth(true)) {\n        w = '100%';\n      }\n\n      this.$dropdown.css(styles);\n    };\n  }());\n});\n\nSelectize.define('auto_select_on_type', function(options) {\n\tvar self = this;\n\n\tself.onBlur = (function() {\n\t\tvar originalBlur = self.onBlur;\n\t\treturn function(e) {\n\t\t\tvar $matchedItem = self.getFirstItemMatchedByTextContent(self.lastValue, true);\n\t\t\tif (typeof $matchedItem.attr('data-value') !== 'undefined' && self.getValue() !== $matchedItem.attr('data-value'))\n\t\t\t{\n\t\t\t\tself.setValue($matchedItem.attr('data-value'));\n\t\t\t}\n\t\t\treturn originalBlur.apply(this, arguments);\n\t\t}\n\t}());\n});\n\nSelectize.define(\"autofill_disable\", function (options) {\n  var self = this;\n\n  self.setup = (function () {\n    var original = self.setup;\n    return function () {\n      original.apply(self, arguments);\n\n      self.$control_input.attr({ name: nanoid(21), autocomplete: nanoid(21) });\n    };\n  })();\n});\n\nSelectize.define(\"clear_button\", function (options) {\n  var self = this;\n\n  options = $.extend(\n    {\n      title: \"Clear\",\n      className: \"clear\",\n      label: \"×\",\n      html: function (data) {\n        return (\n          '<a class=\"' + data.className + '\" title=\"' + data.title + '\"> ' + data.label + '</a>'\n        );\n      },\n    },\n    options\n  );\n\n  self.setup = (function () {\n    var original = self.setup;\n    return function () {\n      original.apply(self, arguments);\n      self.$button_clear = $(options.html(options));\n\n      if (self.settings.mode === \"single\") self.$wrapper.addClass(\"single\");\n\n      self.$wrapper.append(self.$button_clear);\n\n      if (self.getValue() === \"\" || self.getValue().length === 0) {\n        self.$wrapper.find(\".\" + options.className).css(\"display\", \"none\");\n      }\n\n      self.on(\"change\", function () {\n        if (self.getValue() === \"\" || self.getValue().length === 0) {\n          self.$wrapper.find(\".\" + options.className).css(\"display\", \"none\");\n        } else {\n          self.$wrapper.find(\".\" + options.className).css(\"display\", \"\");\n        }\n      });\n\n      self.$wrapper.on(\"click\", \".\" + options.className, function (e) {\n        e.preventDefault();\n        e.stopImmediatePropagation();\n        e.stopPropagation();\n\n        if (self.isLocked) return;\n\n        self.clear();\n        self.$wrapper.find(\".\" + options.className).css(\"display\", \"none\");\n      });\n    };\n  })();\n});\n\nSelectize.define('drag_drop', function(options) {\n\tif (!$.fn.sortable) throw new Error('The \"drag_drop\" plugin requires jQuery UI \"sortable\".');\n\tif (this.settings.mode !== 'multi') return;\n\tvar self = this;\n\n\tself.lock = (function() {\n\t\tvar original = self.lock;\n\t\treturn function() {\n\t\t\tvar sortable = self.$control.data('sortable');\n\t\t\tif (sortable) sortable.disable();\n\t\t\treturn original.apply(self, arguments);\n\t\t};\n\t})();\n\n\tself.unlock = (function() {\n\t\tvar original = self.unlock;\n\t\treturn function() {\n\t\t\tvar sortable = self.$control.data('sortable');\n\t\t\tif (sortable) sortable.enable();\n\t\t\treturn original.apply(self, arguments);\n\t\t};\n\t})();\n\n\tself.setup = (function() {\n\t\tvar original = self.setup;\n\t\treturn function() {\n\t\t\toriginal.apply(this, arguments);\n\n\t\t\tvar $control = self.$control.sortable({\n\t\t\t\titems: '[data-value]',\n\t\t\t\tforcePlaceholderSize: true,\n\t\t\t\tdisabled: self.isLocked,\n\t\t\t\tstart: function(e, ui) {\n\t\t\t\t\tui.placeholder.css('width', ui.helper.css('width'));\n\t\t\t\t\t$control.addClass('dragging');\n\t\t\t\t},\n\t\t\t\tstop: function() {\n\t\t\t\t\t$control.removeClass('dragging');\n\t\t\t\t\tvar active = self.$activeItems ? self.$activeItems.slice() : null;\n\t\t\t\t\tvar values = [];\n\t\t\t\t\t$control.children('[data-value]').each(function() {\n\t\t\t\t\t\tvalues.push($(this).attr('data-value'));\n\t\t\t\t\t});\n\t\t\t\t\tself.isFocused = false;\n\t\t\t\t\tself.setValue(values);\n\t\t\t\t\tself.isFocused = true;\n\t\t\t\t\tself.setActiveItem(active);\n\t\t\t\t\tself.positionDropdown();\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t})();\n\n});\n\nSelectize.define('dropdown_header', function(options) {\n\tvar self = this;\n\n\toptions = $.extend({\n\t\ttitle         : 'Untitled',\n\t\theaderClass   : 'selectize-dropdown-header',\n\t\ttitleRowClass : 'selectize-dropdown-header-title',\n\t\tlabelClass    : 'selectize-dropdown-header-label',\n\t\tcloseClass    : 'selectize-dropdown-header-close',\n\n\t\thtml: function(data) {\n\t\t\treturn (\n\t\t\t\t'<div class=\"' + data.headerClass + '\">' +\n\t\t\t\t\t'<div class=\"' + data.titleRowClass + '\">' +\n\t\t\t\t\t\t'<span class=\"' + data.labelClass + '\">' + data.title + '</span>' +\n\t\t\t\t\t\t'<a href=\"javascript:void(0)\" class=\"' + data.closeClass + '\">&#xd7;</a>' +\n\t\t\t\t\t'</div>' +\n\t\t\t\t'</div>'\n\t\t\t);\n\t\t}\n\t}, options);\n\n\tself.setup = (function() {\n\t\tvar original = self.setup;\n\t\treturn function() {\n\t\t\toriginal.apply(self, arguments);\n\t\t\tself.$dropdown_header = $(options.html(options));\n      self.$dropdown.prepend(self.$dropdown_header);\n      self.$dropdown_header.find('.' + options.closeClass).on('click', function () {\n        self.close();\n      });\n\t\t};\n\t})();\n\n});\n\nSelectize.define('optgroup_columns', function(options) {\n\tvar self = this;\n\n\toptions = $.extend({\n\t\tequalizeWidth  : true,\n\t\tequalizeHeight : true\n\t}, options);\n\n\tthis.getAdjacentOption = function($option, direction) {\n\t\tvar $options = $option.closest('[data-group]').find('[data-selectable]');\n\t\tvar index    = $options.index($option) + direction;\n\n\t\treturn index >= 0 && index < $options.length ? $options.eq(index) : $();\n\t};\n\n\tthis.onKeyDown = (function() {\n\t\tvar original = self.onKeyDown;\n\t\treturn function(e) {\n\t\t\tvar index, $option, $options, $optgroup;\n\n\t\t\tif (this.isOpen && (e.keyCode === KEY_LEFT || e.keyCode === KEY_RIGHT)) {\n\t\t\t\tself.ignoreHover = true;\n\t\t\t\t$optgroup = this.$activeOption.closest('[data-group]');\n\t\t\t\tindex = $optgroup.find('[data-selectable]').index(this.$activeOption);\n\n\t\t\t\tif(e.keyCode === KEY_LEFT) {\n\t\t\t\t\t$optgroup = $optgroup.prev('[data-group]');\n\t\t\t\t} else {\n\t\t\t\t\t$optgroup = $optgroup.next('[data-group]');\n\t\t\t\t}\n\n\t\t\t\t$options = $optgroup.find('[data-selectable]');\n\t\t\t\t$option  = $options.eq(Math.min($options.length - 1, index));\n\t\t\t\tif ($option.length) {\n\t\t\t\t\tthis.setActiveOption($option);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treturn original.apply(this, arguments);\n\t\t};\n\t})();\n\n\tvar getScrollbarWidth = function() {\n\t\tvar div;\n\t\tvar width = getScrollbarWidth.width;\n\t\tvar doc = document;\n\n\t\tif (typeof width === 'undefined') {\n\t\t\tdiv = doc.createElement('div');\n\t\t\tdiv.innerHTML = '<div style=\"width:50px;height:50px;position:absolute;left:-50px;top:-50px;overflow:auto;\"><div style=\"width:1px;height:100px;\"></div></div>';\n\t\t\tdiv = div.firstChild;\n\t\t\tdoc.body.appendChild(div);\n\t\t\twidth = getScrollbarWidth.width = div.offsetWidth - div.clientWidth;\n\t\t\tdoc.body.removeChild(div);\n\t\t}\n\t\treturn width;\n\t};\n\n\tvar equalizeSizes = function() {\n\t\tvar i, n, height_max, width, width_last, width_parent, $optgroups;\n\n\t\t$optgroups = $('[data-group]', self.$dropdown_content);\n\t\tn = $optgroups.length;\n\t\tif (!n || !self.$dropdown_content.width()) return;\n\n\t\tif (options.equalizeHeight) {\n\t\t\theight_max = 0;\n\t\t\tfor (i = 0; i < n; i++) {\n\t\t\t\theight_max = Math.max(height_max, $optgroups.eq(i).height());\n\t\t\t}\n\t\t\t$optgroups.css({height: height_max});\n\t\t}\n\n\t\tif (options.equalizeWidth) {\n\t\t\twidth_parent = self.$dropdown_content.innerWidth() - getScrollbarWidth();\n\t\t\twidth = Math.round(width_parent / n);\n\t\t\t$optgroups.css({width: width});\n\t\t\tif (n > 1) {\n\t\t\t\twidth_last = width_parent - width * (n - 1);\n\t\t\t\t$optgroups.eq(n - 1).css({width: width_last});\n\t\t\t}\n\t\t}\n\t};\n\n\tif (options.equalizeHeight || options.equalizeWidth) {\n\t\thook.after(this, 'positionDropdown', equalizeSizes);\n\t\thook.after(this, 'refreshOptions', equalizeSizes);\n\t}\n\n\n});\n\nSelectize.define('read-only', function(options){\n\tvar self = this;\n\tthis.setup = (function() {\n\t\tvar original = self.setup;\n\t\treturn function() {\n\t\t\toriginal.apply(this, arguments);\n\t\t\tif(this.$dropdown.hasClass(\"read-only\"))this.$control_input.attr('readonly', 'readonly');\n\t\t};\n\t})();\n\tthis.readonly = (function() {\n\t\treturn function(state) {\n\t\t\tif(state){\n\t\t\t\tthis.$control_input.attr('readonly', 'readonly');\n\t\t\t\tthis.$dropdown.addClass(\"read-only\")\n\t\t\t}\n\t\t\telse{\n\t\t\t\tthis.$control_input.removeAttr('readonly');\n\t\t\t\tthis.$dropdown.removeClass(\"read-only\")\n\t\t\t}\n\t\t};\n\t})();\n});\n\nSelectize.define('remove_button', function (options) {\n  if (this.settings.mode === 'single') return;\n\n\toptions = $.extend({\n\t\t\tlabel     : '&#xd7;',\n\t\t\ttitle     : 'Remove',\n\t\t\tclassName : 'remove',\n\t\t\tappend    : true\n\t\t}, options);\n\n\t\tvar multiClose = function(thisRef, options) {\n\n\t\t\tvar self = thisRef;\n\t\t\tvar html = '<a href=\"javascript:void(0)\" class=\"' + options.className + '\" tabindex=\"-1\" title=\"' + escape_html(options.title) + '\">' + options.label + '</a>';\n\n\t\t\tvar append = function(html_container, html_element) {\n\t\t\t\tvar pos = html_container.search(/(<\\/[^>]+>\\s*)$/);\n\t\t\t\treturn html_container.substring(0, pos) + html_element + html_container.substring(pos);\n\t\t\t};\n\n\t\t\tthisRef.setup = (function() {\n\t\t\t\tvar original = self.setup;\n\t\t\t\treturn function() {\n\t\t\t\t\tif (options.append) {\n\t\t\t\t\t\tvar render_item = self.settings.render.item;\n\t\t\t\t\t\tself.settings.render.item = function(data) {\n\t\t\t\t\t\t\treturn append(render_item.apply(thisRef, arguments), html);\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\toriginal.apply(thisRef, arguments);\n\n\t\t\t\t\tthisRef.$control.on('click', '.' + options.className, function(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tif (self.isLocked) return;\n\n\t\t\t\t\t\tvar $item = $(e.currentTarget).parent();\n\t\t\t\t\t\tself.setActiveItem($item);\n\t\t\t\t\t\tif (self.deleteSelection()) {\n\t\t\t\t\t\t\tself.setCaret(self.items.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\n\t\t\t\t};\n\t\t\t})();\n\t\t};\n\n    multiClose(this, options);\n});\n\nSelectize.define('restore_on_backspace', function(options) {\n\tvar self = this;\n\n\toptions.text = options.text || function(option) {\n\t\treturn option[this.settings.labelField];\n\t};\n\n\tthis.onKeyDown = (function() {\n\t\tvar original = self.onKeyDown;\n\t\treturn function(e) {\n\t\t\tvar index, option;\n\t\t\tif (e.keyCode === KEY_BACKSPACE && this.$control_input.val() === '' && !this.$activeItems.length) {\n\t\t\t\tindex = this.caretPos - 1;\n\t\t\t\tif (index >= 0 && index < this.items.length) {\n\t\t\t\t\toption = this.options[this.items[index]];\n\t\t\t\t\tif (this.deleteSelection(e)) {\n\t\t\t\t\t\tthis.setTextboxValue(options.text.apply(this, [option]));\n\t\t\t\t\t\tthis.refreshOptions(true);\n\t\t\t\t\t}\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn original.apply(this, arguments);\n\t\t};\n\t})();\n});\n\nSelectize.define('select_on_focus', function(options) {\n\tvar self = this;\n\n\tself.on('focus', function() {\n\t\tvar originalFocus = self.onFocus;\n\t\treturn function(e) {\n\t\t\tvar value = self.getItem(self.getValue()).text();\n\t\t\tself.clear();\n\t\t\tself.setTextboxValue(value);\n\t\t\tself.$control_input.select();\n\t\t\tsetTimeout( function () {\n\t\t\t\tif (self.settings.selectOnTab) {\n\t\t\t\t\tself.setActiveOption(self.getFirstItemMatchedByTextContent(value));\n\t\t\t\t}\n\t\t\t\tself.settings.score = null;\n\t\t\t},0);\n\t\t\treturn originalFocus.apply(this, arguments);\n\t\t};\n\t}());\n\n\tself.onBlur = (function() {\n\t\tvar originalBlur = self.onBlur;\n\t\treturn function(e) {\n\t\t\tif (self.getValue() === \"\" && self.lastValidValue !== self.getValue()) {\n\t\t\t\tself.setValue(self.lastValidValue);\n\t\t\t}\n\t\t\tsetTimeout( function () {\n\t\t\t\tself.settings.score = function() {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\treturn 1;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}, 0 );\n\t\t\treturn originalBlur.apply(this, arguments);\n\t\t}\n\t}());\n\tself.settings.score = function() {\n\t\treturn function() { return 1; };\n\t};\n\n});\n\nSelectize.define('tag_limit', function (options) {\n    const self = this\n    options.tagLimit = options.tagLimit\n    this.onBlur = (function (e) {\n        const original = self.onBlur\n\n        return function (e) {\n            original.apply(this, e);\n            if (!e)\n                return\n            const $control = this.$control\n            const $items = $control.find('.item')\n            const limit = options.tagLimit\n            if (limit === undefined || $items.length <= limit)\n                return\n\n            $items.toArray().forEach(function(item, index) {\n                if (index < limit)\n                    return\n                $(item).hide()\n            });\n\n            $control.append('<span><b>' + ($items.length - limit) + '</b></span>')\n        };\n    })()\n\n    this.onFocus = (function (e) {\n        const original = self.onFocus\n\n        return function (e) {\n            original.apply(this, e);\n            if (!e)\n                return\n            const $control = this.$control\n            const $items = $control.find('.item')\n            $items.show()\n            $control.find('span').remove()\n\n        };\n    })()\n});\n\n  return Selectize;\n}));\n"
  },
  {
    "path": "dist/less/plugins/auto_position.less",
    "content": ".selectize-dropdown.plugin-auto_position.selectize-position-top {\n  border-top: 1px solid @selectize-color-border;\n  border-bottom: 0 none;\n  border-radius: 3px 3px 0 0;\n}\n\n.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active {\n  border-radius: 0 0 3px 3px;\n  border-top: 0 none;\n\n  &::before {\n    top: 0;\n    bottom: unset;\n  }\n}\n"
  },
  {
    "path": "dist/less/plugins/clear_button.less",
    "content": ".selectize-control.plugin-clear_button {\n  .clear {\n      text-decoration: none;\n      display: flex;\n      position: absolute;\n      height: 100%;\n      width: 25px;\n      top: 0;\n      right: calc(@selectize-padding-x - @selectize-padding-item-x);\n      color: rgba(0, 0, 0);\n      opacity: 0.4;\n      font-weight: bold;\n      border: none;\n      cursor: pointer;\n      z-index: 1;\n      font-size: 21px;\n      justify-content: center;\n      align-items: center;\n  }\n\n  .clear:hover {\n      opacity: 1;\n  }\n\n  &.single .clear {\n      right: calc(@selectize-padding-x - @selectize-padding-item-x + 1.5rem);\n  }\n\n}\n"
  },
  {
    "path": "dist/less/plugins/drag_drop.less",
    "content": ".selectize-control.plugin-drag_drop {\n\t&.multi > .selectize-input > div.ui-sortable-placeholder {\n\t\tvisibility: visible !important;\n\t\tbackground: #f2f2f2 !important;\n\t\tbackground: rgba(0,0,0,0.06) !important;\n\t\tborder: 0 none !important;\n\t\t.selectize-box-shadow(inset 0 0 12px 4px #fff);\n\t}\n\t.ui-sortable-placeholder::after {\n\t\tcontent: '!';\n\t\tvisibility: hidden;\n\t}\n\t.ui-sortable-helper {\n\t\t.selectize-box-shadow(0 2px 5px rgba(0,0,0,0.2));\n\t}\n}"
  },
  {
    "path": "dist/less/plugins/dropdown_header.less",
    "content": ".selectize-dropdown-header {\n\tposition: relative;\n\tpadding: @selectize-padding-dropdown-item-y @selectize-padding-dropdown-item-x;\n\tborder-bottom: 1px solid @selectize-color-border;\n\tbackground: mix(@selectize-color-dropdown, @selectize-color-border, 85%);\n\t.selectize-border-radius(@selectize-border-radius @selectize-border-radius 0 0);\n}\n.selectize-dropdown-header-close {\n\tposition: absolute;\n\tright: @selectize-padding-dropdown-item-x;\n\ttop: 50%;\n\tcolor: @selectize-color-text;\n\topacity: 0.4;\n\tmargin-top: -12px;\n\tline-height: 20px;\n\tfont-size: 20px !important;\n  text-decoration: none;\n}\n.selectize-dropdown-header-close:hover {\n\tcolor: darken(@selectize-color-text, 25%);\n}\n"
  },
  {
    "path": "dist/less/plugins/optgroup_columns.less",
    "content": ".selectize-dropdown.plugin-optgroup_columns {\n\t.optgroup {\n\t\tborder-right: 1px solid #f2f2f2;\n\t\tborder-top: 0 none;\n\t\tfloat: left;\n\t\t.selectize-box-sizing(border-box);\n\t}\n\t.optgroup:last-child {\n\t\tborder-right: 0 none;\n\t}\n\t.optgroup:before {\n\t\tdisplay: none;\n\t}\n\t.optgroup-header {\n\t\tborder-top: 0 none;\n\t}\n}"
  },
  {
    "path": "dist/less/plugins/remove_button.less",
    "content": ".selectize-control.plugin-remove_button {\n\t[data-value] {\n\t\tposition: relative;\n\t\tpadding-right: 24px !important;\n\t}\n\t[data-value] .remove {\n\t\tz-index: 1; /* fixes ie bug (see #392) */\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\twidth: 17px;\n\t\ttext-align: center;\n\t\tfont-weight: bold;\n\t\tfont-size: 12px;\n\t\tcolor: inherit;\n\t\ttext-decoration: none;\n\t\tvertical-align: middle;\n\t\tdisplay: inline-block;\n\t\tpadding: @selectize-padding-item-y 0 0 0;\n\t\tborder-left: 1px solid @selectize-color-item-border;\n\t\t.selectize-border-radius(0 2px 2px 0);\n\t\t.selectize-box-sizing(border-box);\n\t}\n\t[data-value] .remove:hover {\n\t\tbackground: rgba(0,0,0,0.05);\n\t}\n\t[data-value].active .remove {\n\t\tborder-left-color: @selectize-color-item-active-border;\n\t}\n\t.disabled [data-value] .remove:hover {\n\t\tbackground: none;\n\t}\n\t.disabled [data-value] .remove {\n\t\tborder-left-color: lighten(desaturate(@selectize-color-item-border, 100%), @selectize-lighten-disabled-item-border);\n\t}\n\t.remove-single {\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttop: 0;\n\t\tfont-size: 23px;\n\t}\n}\n"
  },
  {
    "path": "dist/less/selectize.bootstrap2.less",
    "content": " @import \"lib/bootstrap2/variables.less\";\n @import \"lib/bootstrap2/mixins.less\";\n @import \"selectize\";\n\n@selectize-font-family: @baseFontFamily;\n@selectize-font-size: @baseFontSize;\n@selectize-line-height: @baseLineHeight;\n\n@selectize-color-text: @textColor;\n@selectize-color-highlight: rgba(255,237,40,0.4);\n@selectize-color-input: @inputBackground;\n@selectize-color-input-full: @inputBackground;\n@selectize-color-disabled: @inputBackground;\n@selectize-color-item: @btnBackgroundHighlight;\n@selectize-color-item-border: @btnBorder;\n@selectize-color-item-active: @dropdownLinkBackgroundHover;\n@selectize-color-item-active-text: @dropdownLinkColorHover;\n@selectize-color-item-active-border: darken(@selectize-color-item-active, 5%);\n@selectize-color-optgroup: @dropdownBackground;\n@selectize-color-optgroup-text: @grayLight;\n@selectize-color-optgroup-border: @dropdownDividerTop;\n@selectize-color-dropdown: @dropdownBackground;\n@selectize-color-dropdown-border: @inputBorder;\n@selectize-color-dropdown-border-top: @dropdownDividerTop;\n@selectize-color-dropdown-item-active: @dropdownLinkBackgroundHover;\n@selectize-color-dropdown-item-active-text: @dropdownLinkColorHover;\n@selectize-color-dropdown-item-create-active-text: @dropdownLinkColorHover;\n@selectize-lighten-disabled-item: 8%;\n@selectize-lighten-disabled-item-text: 8%;\n@selectize-lighten-disabled-item-border: 8%;\n@selectize-opacity-disabled: 0.5;\n@selectize-shadow-input: none;\n@selectize-shadow-input-focus: inset 0 1px 2px rgba(0,0,0,0.15);\n@selectize-border-radius: @inputBorderRadius;\n\n@selectize-padding-x: 10px;\n@selectize-padding-y: 7px;\n@selectize-padding-dropdown-item-x: @selectize-padding-x;\n@selectize-padding-dropdown-item-y: 3px;\n@selectize-padding-item-x: 3px;\n@selectize-padding-item-y: 1px;\n@selectize-margin-item-x: 3px;\n@selectize-margin-item-y: 3px;\n@selectize-caret-margin: 0;\n\n@selectize-arrow-size: 5px;\n@selectize-arrow-color: @black;\n@selectize-arrow-offset: @selectize-padding-x + 5px;\n\n@selectize-width-item-border: 1px;\n\n.selectize-dropdown {\n\tmargin: 2px 0 0 0;\n\tz-index: @zindexDropdown;\n\tborder: 1px solid @dropdownBorder;\n\tborder-radius: @baseBorderRadius;\n\t.box-shadow(0 5px 10px rgba(0,0,0,.2));\n\n\t.optgroup-header {\n\t\tfont-size: 11px;\n\t\tfont-weight: bold;\n\t\ttext-shadow: 0 1px 0 rgba(255,255,255,.5);\n\t\ttext-transform: uppercase;\n\t}\n\t.optgroup:first-child:before {\n\t\tdisplay: none;\n\t}\n\t.optgroup:before {\n\t\tcontent: ' ';\n\t\tdisplay: block;\n\t\t.nav-divider();\n\t\tmargin-left: @selectize-padding-dropdown-item-x * -1;\n\t\tmargin-right: @selectize-padding-dropdown-item-x * -1;\n\t}\n\n\t[data-selectable].active {\n\t\t#gradient > .vertical(@dropdownLinkBackgroundHover, darken(@dropdownLinkBackgroundHover, 5%));\n\t}\n}\n\n.selectize-dropdown-content {\n\tpadding: 5px 0;\n}\n\n.selectize-dropdown-header {\n\tpadding: @selectize-padding-dropdown-item-y * 2 @selectize-padding-dropdown-item-x;\n}\n\n.selectize-input {\n\t.transition(~\"border linear .2s, box-shadow linear .2s\");\n\n\t&.dropdown-active {\n\t\t.selectize-border-radius(@selectize-border-radius);\n\t}\n\t&.dropdown-active::before {\n\t\tdisplay: none;\n\t}\n\t&.input-active, &.input-active:hover, .selectize-control.multi &.focus {\n\t\tbackground: @selectize-color-input !important;\n\t\tborder-color: rgba(82,168,236,.8) !important;\n\t\toutline: 0 !important;\n\t\toutline: thin dotted \\9 !important;\n\t\t.box-shadow(~\"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)\") !important;\n\t}\n}\n\n.selectize-control {\n\t&.single {\n\t\t.selectize-input {\n\t\t\t.buttonBackground(@btnBackground, @btnBackgroundHighlight, @grayDark, 0 1px 1px rgba(255,255,255,.75));\n  \t\t\t.box-shadow(~\"inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)\");\n  \t\t\t&:hover {\n\t\t\t\tcolor: @grayDark;\n\t\t\t\ttext-decoration: none;\n\t\t\t\tbackground-position: 0 -15px;\n\t\t\t\t.transition(background-position .1s linear);\n  \t\t\t}\n  \t\t\t&.disabled {\n\t\t\t\tbackground: @btnBackgroundHighlight !important;\n\t\t\t\t.box-shadow(none);\n\t\t\t}\n\t\t}\n\t}\n\t&.multi {\n\t\t.selectize-input {\n\t\t\t.box-shadow(inset 0 1px 1px rgba(0,0,0,.075));\n\t\t\t&.has-items {\n\t\t\t\t@padding-x: @selectize-padding-x - @selectize-padding-item-x;\n\t\t\t\tpadding-left: @padding-x;\n\t\t\t\tpadding-right: @padding-x;\n\t\t\t}\n\t\t}\n\t\t.selectize-input > div {\n\t\t\t.gradientBar(@btnBackground, @btnBackgroundHighlight, @selectize-color-item-text, none);\n\t\t\t*background-color: @selectize-color-item;\n\t\t\tborder: @selectize-width-item-border solid @selectize-color-item-border;\n\t\t\t.border-radius(@baseBorderRadius);\n\t\t\t.box-shadow(~\"inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)\");\n\t\t\t&.active {\n\t\t\t\t.box-shadow(~\"0 1px 2px rgba(0,0,0,.05)\");\n\t\t\t\t.gradientBar(@selectize-color-item-active, @selectize-color-item-active-border, @selectize-color-item-active-text, none);\n\t\t\t\t*background-color: @selectize-color-item-active;\n\t\t\t\tborder: @selectize-width-item-border solid @dropdownLinkBackgroundHover;\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "dist/less/selectize.bootstrap3.less",
    "content": "@import \"selectize\";\n\n@selectize-font-family: inherit;\n@selectize-font-size: inherit;\n@selectize-line-height: @line-height-computed;\n\n@selectize-color-text: @text-color;\n@selectize-color-highlight: rgba(255,237,40,0.4);\n@selectize-color-input: @input-bg;\n@selectize-color-input-full: @input-bg;\n@selectize-color-input-error: @state-danger-text;\n@selectize-color-input-error-focus: darken(@selectize-color-input-error, 10%);\n@selectize-color-disabled: @input-bg;\n@selectize-color-item: #efefef;\n@selectize-color-item-border: rgba(0,0,0,0);\n@selectize-color-item-active: @component-active-bg;\n@selectize-color-item-active-text: #fff;\n@selectize-color-item-active-border: rgba(0,0,0,0);\n@selectize-color-optgroup: @dropdown-bg;\n@selectize-color-optgroup-text: @dropdown-header-color;\n@selectize-color-optgroup-border: @dropdown-divider-bg;\n@selectize-color-dropdown: @dropdown-bg;\n@selectize-color-dropdown-border-top: mix(@input-border, @input-bg, 0.8);\n@selectize-color-dropdown-item-active: @dropdown-link-hover-bg;\n@selectize-color-dropdown-item-active-text: @dropdown-link-hover-color;\n@selectize-color-dropdown-item-create-active-text: @dropdown-link-hover-color;\n@selectize-opacity-disabled: 0.5;\n@selectize-shadow-input: none;\n@selectize-shadow-input-focus: inset 0 1px 2px rgba(0,0,0,0.15);\n@selectize-shadow-input-error: inset 0 1px 1px rgba(0, 0, 0, .075);\n@selectize-shadow-input-error-focus: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px lighten(@selectize-color-input-error, 20%);\n@selectize-border: 1px solid @input-border;\n@selectize-border-radius: @input-border-radius;\n\n@selectize-width-item-border: 0;\n@selectize-padding-x: @padding-base-horizontal;\n@selectize-padding-y: @padding-base-vertical;\n@selectize-padding-dropdown-item-x: @padding-base-horizontal;\n@selectize-padding-dropdown-item-y: 3px;\n@selectize-padding-item-x: 3px;\n@selectize-padding-item-y: 1px;\n@selectize-margin-item-x: 3px;\n@selectize-margin-item-y: 3px;\n@selectize-caret-margin: 0;\n\n@selectize-arrow-size: 5px;\n@selectize-arrow-color: @selectize-color-text;\n@selectize-arrow-offset: @selectize-padding-x + 5px;\n\n.selectize-dropdown, .selectize-dropdown.form-control {\n\theight: auto;\n\tpadding: 0;\n\tmargin: 2px 0 0 0;\n\tz-index: @zindex-dropdown;\n\tbackground: @selectize-color-dropdown;\n\tborder: 1px solid @dropdown-fallback-border;\n\tborder: 1px solid @dropdown-border;\n\t.selectize-border-radius(@border-radius-base);\n\t.selectize-box-shadow(0 6px 12px rgba(0,0,0,.175));\n}\n\n.selectize-dropdown {\n\t.optgroup-header {\n\t\tfont-size: @font-size-small;\n\t\tline-height: @line-height-base;\n\t}\n\t.optgroup:first-child:before {\n\t\tdisplay: none;\n\t}\n\t.optgroup:before {\n\t\tcontent: ' ';\n\t\tdisplay: block;\n\t\t.nav-divider();\n\t\tmargin-left: @selectize-padding-dropdown-item-x * -1;\n\t\tmargin-right: @selectize-padding-dropdown-item-x * -1;\n\t}\n}\n\n.selectize-dropdown-content {\n\tpadding: 5px 0;\n}\n\n.selectize-dropdown-header {\n\tpadding: @selectize-padding-dropdown-item-y * 2 @selectize-padding-dropdown-item-x;\n}\n\n.selectize-input {\n\tmin-height: @input-height-base;\n\n\t&.dropdown-active {\n\t\t.selectize-border-radius(@selectize-border-radius);\n\t}\n\t&.dropdown-active::before {\n\t\tdisplay: none;\n\t}\n\t&.focus {\n\t\t@color: @input-border-focus;\n\t\t@color-rgba: rgba(red(@color), green(@color), blue(@color), .6);\n\t\tborder-color: @color;\n\t\toutline: 0;\n\t\t.selectize-box-shadow(~\"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}\");\n\t}\n}\n\n.has-error .selectize-input {\n    border-color: @selectize-color-input-error;\n    .selectize-box-shadow(@selectize-shadow-input-error);\n\n    &:focus {\n        border-color: @selectize-color-input-error-focus;\n        .selectize-box-shadow(@selectize-shadow-input-error-focus);\n    }\n}\n\n.selectize-control {\n\t&.multi {\n\t\t.selectize-input.has-items {\n\t\t\tpadding-left: @selectize-padding-x - @selectize-padding-item-x;\n\t\t\tpadding-right: @selectize-padding-x - @selectize-padding-item-x;\n\t\t}\n\t\t.selectize-input > div {\n\t\t\t.selectize-border-radius(@selectize-border-radius - 1px);\n\t\t}\n\t}\n}\n\n.form-control.selectize-control {\n\tpadding: 0;\n\theight: auto;\n\tborder: none;\n\tbackground: none;\n\t.selectize-box-shadow(none);\n\t.selectize-border-radius(0);\n}\n"
  },
  {
    "path": "dist/less/selectize.default.less",
    "content": "@import \"selectize\";\n\n@selectize-color-item: #1da7ee;\n@selectize-color-item-text: #fff;\n@selectize-color-item-active-text: #fff;\n@selectize-color-item-border: #0073bb;\n@selectize-color-item-active: #92c836;\n@selectize-color-item-active-border: #00578d;\n@selectize-width-item-border: 1px;\n@selectize-caret-margin: 0 1px;\n\n.selectize-control {\n\t&.multi {\n\t\t.selectize-input {\n\t\t\t&.has-items {\n\t\t\t\t@padding-x: @selectize-padding-x - 3px;\n\t\t\t\tpadding-left: @padding-x;\n\t\t\t\tpadding-right: @padding-x;\n\t\t\t}\n\t\t\t&.disabled [data-value] {\n\t\t\t\tcolor: #999;\n\t\t\t\ttext-shadow: none;\n\t\t\t\tbackground: none;\n\t\t\t\t.selectize-box-shadow(none);\n\n\t\t\t\t&, .remove {\n\t\t\t\t\tborder-color: #e6e6e6;\n\t\t\t\t}\n\t\t\t\t.remove {\n\t\t\t\t\tbackground: none;\n\t\t\t\t}\n\t\t\t}\n\t\t\t[data-value] {\n\t\t\t\ttext-shadow: 0 1px 0 rgba(0,51,83,0.3);\n\t\t\t\t.selectize-border-radius(3px);\n\t\t\t\t.selectize-vertical-gradient(#1da7ee, #178ee9);\n\t\t\t\t.selectize-box-shadow(~\"0 1px 0 rgba(0,0,0,0.2),inset 0 1px rgba(255,255,255,0.03)\");\n\t\t\t\t&.active {\n\t\t\t\t\t.selectize-vertical-gradient(#008fd8, #0075cf);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t&.single {\n\t\t.selectize-input {\n\t\t\t.selectize-box-shadow(~\"0 1px 0 rgba(0,0,0,0.05), inset 0 1px 0 rgba(255,255,255,0.8)\");\n\t\t\t.selectize-vertical-gradient(#fefefe, #f2f2f2);\n\t\t}\n\t}\n}\n\n.selectize-control.single .selectize-input, .selectize-dropdown.single {\n\tborder-color: #b8b8b8;\n}\n\n.selectize-dropdown {\n\t.optgroup-header {\n\t\tpadding-top: @selectize-padding-dropdown-item-y + 2px;\n\t\tfont-weight: bold;\n\t\tfont-size: 0.85em;\n\t}\n\t.optgroup {\n\t\tborder-top: 1px solid @selectize-color-dropdown-border-top;\n\t\t&:first-child {\n\t\t\tborder-top: 0 none;\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "dist/less/selectize.less",
    "content": "// base styles\n\n@selectize-font-family: inherit;\n@selectize-font-smoothing: inherit;\n@selectize-font-size: 13px;\n@selectize-line-height: 18px;\n\n@selectize-color-text: #303030;\n@selectize-color-border: #d0d0d0;\n@selectize-color-highlight: rgba(125,168,208,0.2);\n@selectize-color-input: #fff;\n@selectize-color-input-full: @selectize-color-input;\n@selectize-color-disabled: #fafafa;\n@selectize-color-item: #f2f2f2;\n@selectize-color-item-text: @selectize-color-text;\n@selectize-color-item-border: #d0d0d0;\n@selectize-color-item-active: #e8e8e8;\n@selectize-color-item-active-text: @selectize-color-text;\n@selectize-color-item-active-border: #cacaca;\n@selectize-color-dropdown: #fff;\n@selectize-color-dropdown-border: @selectize-color-border;\n@selectize-color-dropdown-border-top: #f0f0f0;\n@selectize-color-dropdown-item-active: #f5fafd;\n@selectize-color-dropdown-item-active-text: #495c68;\n@selectize-color-dropdown-item-create-text: rgba(red(@selectize-color-text), green(@selectize-color-text), blue(@selectize-color-text), 0.5);\n@selectize-color-dropdown-item-create-active-text: @selectize-color-dropdown-item-active-text;\n@selectize-color-optgroup: @selectize-color-dropdown;\n@selectize-color-optgroup-text: @selectize-color-text;\n@selectize-lighten-disabled-item: 30%;\n@selectize-lighten-disabled-item-text: 30%;\n@selectize-lighten-disabled-item-border: 30%;\n@selectize-opacity-disabled: 0.5;\n\n@selectize-shadow-input: inset 0 1px 1px rgba(0,0,0,0.1);\n@selectize-shadow-input-focus: inset 0 1px 2px rgba(0,0,0,0.15);\n@selectize-border: 1px solid @selectize-color-border;\n@selectize-dropdown-border: 1px solid @selectize-color-dropdown-border;\n@selectize-border-radius: 3px;\n\n@selectize-width-item-border: 0;\n@selectize-max-height-dropdown: 200px;\n\n@selectize-padding-x: 8px;\n@selectize-padding-y: 8px;\n@selectize-padding-item-x: 6px;\n@selectize-padding-item-y: 2px;\n@selectize-padding-dropdown-item-x: @selectize-padding-x;\n@selectize-padding-dropdown-item-y: 5px;\n@selectize-margin-item-x: 3px;\n@selectize-margin-item-y: 3px;\n\n@selectize-arrow-size: 5px;\n@selectize-arrow-color: #808080;\n@selectize-arrow-offset: 15px;\n\n@selectize-caret-margin: 0 2px 0 0;\n@selectize-caret-margin-rtl: 0 4px 0 -2px;\n\n.selectize-border-radius (@radii) {\n\t-webkit-border-radius: @radii;\n\t-moz-border-radius: @radii;\n\tborder-radius: @radii;\n}\n.selectize-unselectable () {\n\t-webkit-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n}\n.selectize-box-shadow (@shadow) {\n\t-webkit-box-shadow: @shadow;\n\tbox-shadow: @shadow;\n}\n.selectize-box-sizing (@type: border-box) {\n\t-webkit-box-sizing: @type;\n\t-moz-box-sizing: @type;\n\tbox-sizing: @type;\n}\n.selectize-vertical-gradient (@color-top, @color-bottom) {\n    background-color: mix(@color-top, @color-bottom, 60%);\n    background-image: -moz-linear-gradient(top, @color-top, @color-bottom); // FF 3.6+\n    background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@color-top), to(@color-bottom)); // Safari 4+, Chrome 2+\n    background-image: -webkit-linear-gradient(top, @color-top, @color-bottom); // Safari 5.1+, Chrome 10+\n    background-image: -o-linear-gradient(top, @color-top, @color-bottom); // Opera 11.10\n    background-image: linear-gradient(to bottom, @color-top, @color-bottom); // Standard, IE10\n    background-repeat: repeat-x;\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@color-top),argb(@color-bottom))); // IE9 and down\n}\n\n.selectize-control {\n\tposition: relative;\n}\n\n.selectize-dropdown, .selectize-input, .selectize-input input {\n\tcolor: @selectize-color-text;\n\tfont-family: @selectize-font-family;\n\tfont-size: @selectize-font-size;\n\tline-height: @selectize-line-height;\n\t-webkit-font-smoothing: @selectize-font-smoothing;\n}\n\n.selectize-input, .selectize-control.single .selectize-input.input-active {\n\tbackground: @selectize-color-input;\n\tcursor: text;\n\tdisplay: inline-block;\n}\n\n.selectize-input {\n\tborder: @selectize-border;\n\tpadding: @selectize-padding-y @selectize-padding-x;\n\tdisplay: inline-block;\n\twidth: 100%;\n\toverflow: hidden;\n\tposition: relative;\n\tz-index: 1;\n\t.selectize-box-sizing(border-box);\n\t.selectize-box-shadow(@selectize-shadow-input);\n\t.selectize-border-radius(@selectize-border-radius);\n\n\t.selectize-control.multi &.has-items {\n\t\t@padding-x: @selectize-padding-x;\n\t\t@padding-top: @selectize-padding-y - @selectize-padding-item-y - @selectize-width-item-border;\n\t\t@padding-bottom: @selectize-padding-y - @selectize-padding-item-y - @selectize-margin-item-y - @selectize-width-item-border;\n\t\tpadding: @padding-top @padding-x @padding-bottom;\n\t}\n\n\t&.full {\n\t\tbackground-color: @selectize-color-input-full;\n\t}\n\t&.disabled, &.disabled * {\n\t\tcursor: default !important;\n\t}\n\t&.focus {\n\t\t.selectize-box-shadow(@selectize-shadow-input-focus);\n\t}\n\t&.dropdown-active {\n\t\t.selectize-border-radius(@selectize-border-radius @selectize-border-radius 0 0);\n\t}\n\n\t> * {\n\t\tvertical-align: baseline;\n\t\tdisplay: -moz-inline-stack;\n\t\tdisplay: inline-block;\n\t\tzoom: 1;\n\t\t*display: inline;\n\t}\n\t.selectize-control.multi & > div {\n\t\tcursor: pointer;\n\t\tmargin: 0 @selectize-margin-item-x @selectize-margin-item-y 0;\n\t\tpadding: @selectize-padding-item-y @selectize-padding-item-x;\n\t\tbackground: @selectize-color-item;\n\t\tcolor: @selectize-color-item-text;\n\t\tborder: @selectize-width-item-border solid @selectize-color-item-border;\n\n\t\t&.active {\n\t\t\tbackground: @selectize-color-item-active;\n\t\t\tcolor: @selectize-color-item-active-text;\n\t\t\tborder: @selectize-width-item-border solid @selectize-color-item-active-border;\n\t\t}\n\t}\n\t.selectize-control.multi &.disabled > div {\n\t\t&, &.active {\n\t\t\tcolor: lighten(desaturate(@selectize-color-item-text, 100%), @selectize-lighten-disabled-item-text);\n\t\t\tbackground: lighten(desaturate(@selectize-color-item, 100%), @selectize-lighten-disabled-item);\n\t\t\tborder: @selectize-width-item-border solid lighten(desaturate(@selectize-color-item-border, 100%), @selectize-lighten-disabled-item-border);\n\t\t}\n\t}\n\t> input {\n\t\t&::-ms-clear {\n\t\t\tdisplay: none;\n\t\t}\n\t\tdisplay: inline-block !important;\n\t\tpadding: 0 !important;\n\t\tmin-height: 0 !important;\n\t\tmax-height: none !important;\n\t\tmax-width: 100% !important;\n\t\tmargin: @selectize-caret-margin !important;\n\t\ttext-indent: 0 !important;\n\t\tborder: 0 none !important;\n\t\tbackground: none !important;\n\t\tline-height: inherit !important;\n\t\t-webkit-user-select: auto !important;\n\t\t.selectize-box-shadow(none) !important;\n\t\t&:focus { outline: none !important; }\n\t\t&[placeholder] {\n      box-sizing: initial;\n    }\n\t}\n}\n\n.selectize-input::after {\n\tcontent: ' ';\n\tdisplay: block;\n\tclear: left;\n}\n\n.selectize-input.dropdown-active::before {\n\tcontent: ' ';\n\tdisplay: block;\n\tposition: absolute;\n\tbackground: @selectize-color-dropdown-border-top;\n\theight: 1px;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n}\n\n.selectize-dropdown {\n\tposition: absolute;\n\tz-index: 10;\n\tborder: @selectize-dropdown-border;\n\tbackground: @selectize-color-dropdown;\n\tmargin: -1px 0 0 0;\n\tborder-top: 0 none;\n\t.selectize-box-sizing(border-box);\n\t.selectize-box-shadow(0 1px 3px rgba(0,0,0,0.1));\n\t.selectize-border-radius(0 0 @selectize-border-radius @selectize-border-radius);\n\n\t[data-selectable] {\n\t\tcursor: pointer;\n\t\toverflow: hidden;\n\t\t.highlight {\n\t\t\tbackground: @selectize-color-highlight;\n\t\t\t.selectize-border-radius(1px);\n\t\t}\n\t}\n\t.option, .optgroup-header {\n\t\tpadding: @selectize-padding-dropdown-item-y @selectize-padding-dropdown-item-x;\n\t}\n\t.option, [data-disabled], [data-disabled] [data-selectable].option {\n\t\tcursor: inherit;\n\t\topacity: 0.5;\n\t}\n\t[data-selectable].option {\n\t\topacity: 1;\n\t}\n\t.optgroup:first-child .optgroup-header {\n\t\tborder-top: 0 none;\n\t}\n\t.optgroup-header {\n\t\tcolor: @selectize-color-optgroup-text;\n\t\tbackground: @selectize-color-optgroup;\n\t\tcursor: default;\n\t}\n\t.active {\n\t\tbackground-color: @selectize-color-dropdown-item-active;\n\t\tcolor: @selectize-color-dropdown-item-active-text;\n\t\t&.create {\n\t\t\tcolor: @selectize-color-dropdown-item-create-active-text;\n\t\t}\n\t}\n\t.create {\n\t\tcolor: @selectize-color-dropdown-item-create-text;\n\t}\n}\n\n.selectize-dropdown-content {\n\toverflow-y: auto;\n\toverflow-x: hidden;\n\tmax-height: @selectize-max-height-dropdown;\n\t-webkit-overflow-scrolling: touch;\n}\n\n.selectize-control.single .selectize-input {\n\t&, input { cursor: pointer; }\n\t&.input-active, &.input-active input { cursor: text; }\n\n\t&:after {\n\t\tcontent: ' ';\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\ttop: 50%;\n\t\tright: @selectize-arrow-offset;\n\t\tmargin-top: round((-1 * @selectize-arrow-size / 2));\n\t\twidth: 0;\n\t\theight: 0;\n\t\tborder-style: solid;\n\t\tborder-width: @selectize-arrow-size @selectize-arrow-size 0 @selectize-arrow-size;\n\t\tborder-color: @selectize-arrow-color transparent transparent transparent;\n\t}\n\t&.dropdown-active:after {\n\t\tmargin-top: @selectize-arrow-size * -0.8;\n\t\tborder-width: 0 @selectize-arrow-size @selectize-arrow-size @selectize-arrow-size;\n\t\tborder-color: transparent transparent @selectize-arrow-color transparent;\n\t}\n}\n\n.selectize-control.rtl {\n\t&.single .selectize-input:after {\n\t\tleft: @selectize-arrow-offset;\n\t\tright: auto;\n\t}\n\t.selectize-input > input {\n\t\tmargin: @selectize-caret-margin-rtl !important;\n\t}\n}\n\n.selectize-control .selectize-input.disabled {\n\topacity: @selectize-opacity-disabled;\n\tbackground-color: @selectize-color-disabled;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_alerts.scss",
    "content": "//\n// Alerts\n// --------------------------------------------------\n\n\n// Base styles\n// -------------------------\n\n.alert {\n  padding: $alert-padding;\n  margin-bottom: $line-height-computed;\n  border: 1px solid transparent;\n  border-radius: $alert-border-radius;\n\n  // Headings for larger alerts\n  h4 {\n    margin-top: 0;\n    color: inherit; // Specified for the h4 to prevent conflicts of changing $headings-color\n  }\n\n  // Provide class for links that match alerts\n  .alert-link {\n    font-weight: $alert-link-font-weight;\n  }\n\n  // Improve alignment and spacing of inner content\n  > p,\n  > ul {\n    margin-bottom: 0;\n  }\n\n  > p + p {\n    margin-top: 5px;\n  }\n}\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n// The misspelled .alert-dismissable was deprecated in 3.2.0.\n.alert-dismissable,\n.alert-dismissible {\n  padding-right: ($alert-padding + 20);\n\n  // Adjust close link position\n  .close {\n    position: relative;\n    top: -2px;\n    right: -21px;\n    color: inherit;\n  }\n}\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n.alert-success {\n  @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text);\n}\n\n.alert-info {\n  @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text);\n}\n\n.alert-warning {\n  @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text);\n}\n\n.alert-danger {\n  @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_badges.scss",
    "content": "//\n// Badges\n// --------------------------------------------------\n\n\n// Base class\n.badge {\n  display: inline-block;\n  min-width: 10px;\n  padding: 3px 7px;\n  font-size: $font-size-small;\n  font-weight: $badge-font-weight;\n  line-height: $badge-line-height;\n  color: $badge-color;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: middle;\n  background-color: $badge-bg;\n  border-radius: $badge-border-radius;\n\n  // Empty badges collapse automatically (not available in IE8)\n  &:empty {\n    display: none;\n  }\n\n  // Quick fix for badges in buttons\n  .btn & {\n    position: relative;\n    top: -1px;\n  }\n\n  .btn-xs &,\n  .btn-group-xs > .btn & {\n    top: 0;\n    padding: 1px 5px;\n  }\n\n  // [converter] extracted a& to a.badge\n\n  // Account for badges in navs\n  .list-group-item.active > &,\n  .nav-pills > .active > a > & {\n    color: $badge-active-color;\n    background-color: $badge-active-bg;\n  }\n\n  .list-group-item > & {\n    float: right;\n  }\n\n  .list-group-item > & + & {\n    margin-right: 5px;\n  }\n\n  .nav-pills > li > a > & {\n    margin-left: 3px;\n  }\n}\n\n// Hover state, but only for links\na.badge {\n  &:hover,\n  &:focus {\n    color: $badge-link-hover-color;\n    text-decoration: none;\n    cursor: pointer;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_breadcrumbs.scss",
    "content": "//\n// Breadcrumbs\n// --------------------------------------------------\n\n\n.breadcrumb {\n  padding: $breadcrumb-padding-vertical $breadcrumb-padding-horizontal;\n  margin-bottom: $line-height-computed;\n  list-style: none;\n  background-color: $breadcrumb-bg;\n  border-radius: $border-radius-base;\n\n  > li {\n    display: inline-block;\n\n    + li:before {\n      padding: 0 5px;\n      color: $breadcrumb-color;\n      // [converter] Workaround for https://github.com/sass/libsass/issues/1115\n      $nbsp: \"\\00a0\";\n      content: \"#{$breadcrumb-separator}#{$nbsp}\"; // Unicode space added since inline-block means non-collapsing white-space\n    }\n  }\n\n  > .active {\n    color: $breadcrumb-active-color;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_button-groups.scss",
    "content": "//\n// Button groups\n// --------------------------------------------------\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle; // match .btn alignment given font-size hack above\n  > .btn {\n    position: relative;\n    float: left;\n    // Bring the \"active\" button to the front\n    &:hover,\n    &:focus,\n    &:active,\n    &.active {\n      z-index: 2;\n    }\n  }\n}\n\n// Prevent double borders when buttons are next to each other\n.btn-group {\n  .btn + .btn,\n  .btn + .btn-group,\n  .btn-group + .btn,\n  .btn-group + .btn-group {\n    margin-left: -1px;\n  }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n  margin-left: -5px; // Offset the first child's margin\n  @include clearfix;\n\n  .btn,\n  .btn-group,\n  .input-group {\n    float: left;\n  }\n  > .btn,\n  > .btn-group,\n  > .input-group {\n    margin-left: 5px;\n  }\n}\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n  border-radius: 0;\n}\n\n// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match\n.btn-group > .btn:first-child {\n  margin-left: 0;\n  &:not(:last-child):not(.dropdown-toggle) {\n    @include border-right-radius(0);\n  }\n}\n// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n  @include border-left-radius(0);\n}\n\n// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)\n.btn-group > .btn-group {\n  float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) {\n  > .btn:last-child,\n  > .dropdown-toggle {\n    @include border-right-radius(0);\n  }\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  @include border-left-radius(0);\n}\n\n// On active and open, don't show outline\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n  outline: 0;\n}\n\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-xs > .btn { @extend .btn-xs; }\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n// Split button dropdowns\n// ----------------------\n\n// Give the line between buttons some depth\n.btn-group > .btn + .dropdown-toggle {\n  padding-right: 8px;\n  padding-left: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n  padding-right: 12px;\n  padding-left: 12px;\n}\n\n// The clickable button for toggling the menu\n// Remove the gradient and set the same inset shadow as the :active state\n.btn-group.open .dropdown-toggle {\n  @include box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125));\n\n  // Show no shadow for `.btn-link` since it has no other button styles.\n  &.btn-link {\n    @include box-shadow(none);\n  }\n}\n\n\n// Reposition the caret\n.btn .caret {\n  margin-left: 0;\n}\n// Carets in other button sizes\n.btn-lg .caret {\n  border-width: $caret-width-large $caret-width-large 0;\n  border-bottom-width: 0;\n}\n// Upside down carets for .dropup\n.dropup .btn-lg .caret {\n  border-width: 0 $caret-width-large $caret-width-large;\n}\n\n\n// Vertical button groups\n// ----------------------\n\n.btn-group-vertical {\n  > .btn,\n  > .btn-group,\n  > .btn-group > .btn {\n    display: block;\n    float: none;\n    width: 100%;\n    max-width: 100%;\n  }\n\n  // Clear floats so dropdown menus can be properly placed\n  > .btn-group {\n    @include clearfix;\n    > .btn {\n      float: none;\n    }\n  }\n\n  > .btn + .btn,\n  > .btn + .btn-group,\n  > .btn-group + .btn,\n  > .btn-group + .btn-group {\n    margin-top: -1px;\n    margin-left: 0;\n  }\n}\n\n.btn-group-vertical > .btn {\n  &:not(:first-child):not(:last-child) {\n    border-radius: 0;\n  }\n  &:first-child:not(:last-child) {\n    @include border-top-radius($btn-border-radius-base);\n    @include border-bottom-radius(0);\n  }\n  &:last-child:not(:first-child) {\n    @include border-top-radius(0);\n    @include border-bottom-radius($btn-border-radius-base);\n  }\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) {\n  > .btn:last-child,\n  > .dropdown-toggle {\n    @include border-bottom-radius(0);\n  }\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  @include border-top-radius(0);\n}\n\n\n// Justified button groups\n// ----------------------\n\n.btn-group-justified {\n  display: table;\n  width: 100%;\n  table-layout: fixed;\n  border-collapse: separate;\n  > .btn,\n  > .btn-group {\n    display: table-cell;\n    float: none;\n    width: 1%;\n  }\n  > .btn-group .btn {\n    width: 100%;\n  }\n\n  > .btn-group .dropdown-menu {\n    left: auto;\n  }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n[data-toggle=\"buttons\"] {\n  > .btn,\n  > .btn-group > .btn {\n    input[type=\"radio\"],\n    input[type=\"checkbox\"] {\n      position: absolute;\n      clip: rect(0, 0, 0, 0);\n      pointer-events: none;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_buttons.scss",
    "content": "//\n// Buttons\n// --------------------------------------------------\n\n\n// Base styles\n// --------------------------------------------------\n\n.btn {\n  display: inline-block;\n  margin-bottom: 0; // For input.btn\n  font-weight: $btn-font-weight;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: middle;\n  touch-action: manipulation;\n  cursor: pointer;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid transparent;\n  @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $btn-border-radius-base);\n  @include user-select(none);\n\n  &,\n  &:active,\n  &.active {\n    &:focus,\n    &.focus {\n      @include tab-focus;\n    }\n  }\n\n  &:hover,\n  &:focus,\n  &.focus {\n    color: $btn-default-color;\n    text-decoration: none;\n  }\n\n  &:active,\n  &.active {\n    background-image: none;\n    outline: 0;\n    @include box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125));\n  }\n\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    cursor: $cursor-disabled;\n    @include opacity(.65);\n    @include box-shadow(none);\n  }\n\n  // [converter] extracted a& to a.btn\n}\n\na.btn {\n  &.disabled,\n  fieldset[disabled] & {\n    pointer-events: none; // Future-proof disabling of clicks on `<a>` elements\n  }\n}\n\n\n// Alternate buttons\n// --------------------------------------------------\n\n.btn-default {\n  @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border);\n}\n.btn-primary {\n  @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border);\n}\n// Success appears as green\n.btn-success {\n  @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border);\n}\n// Info appears as blue-green\n.btn-info {\n  @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border);\n}\n// Warning appears as orange\n.btn-warning {\n  @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border);\n}\n// Danger and error appear as red\n.btn-danger {\n  @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border);\n}\n\n\n// Link buttons\n// -------------------------\n\n// Make a button look and behave like a link\n.btn-link {\n  font-weight: 400;\n  color: $link-color;\n  border-radius: 0;\n\n  &,\n  &:active,\n  &.active,\n  &[disabled],\n  fieldset[disabled] & {\n    background-color: transparent;\n    @include box-shadow(none);\n  }\n  &,\n  &:hover,\n  &:focus,\n  &:active {\n    border-color: transparent;\n  }\n  &:hover,\n  &:focus {\n    color: $link-hover-color;\n    text-decoration: $link-hover-decoration;\n    background-color: transparent;\n  }\n  &[disabled],\n  fieldset[disabled] & {\n    &:hover,\n    &:focus {\n      color: $btn-link-disabled-color;\n      text-decoration: none;\n    }\n  }\n}\n\n\n// Button Sizes\n// --------------------------------------------------\n\n.btn-lg {\n  // line-height: ensure even-numbered height of button next to large input\n  @include button-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $btn-border-radius-large);\n}\n.btn-sm {\n  // line-height: ensure proper height of button next to small input\n  @include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small);\n}\n.btn-xs {\n  @include button-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small);\n}\n\n\n// Block button\n// --------------------------------------------------\n\n.btn-block {\n  display: block;\n  width: 100%;\n}\n\n// Vertically space out multiple block buttons\n.btn-block + .btn-block {\n  margin-top: 5px;\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n  &.btn-block {\n    width: 100%;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_carousel.scss",
    "content": "@use \"sass:math\";\n//\n// Carousel\n// --------------------------------------------------\n\n\n// Wrapper for the slide container and indicators\n.carousel {\n  position: relative;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n\n  > .item {\n    position: relative;\n    display: none;\n    @include transition(.6s ease-in-out left);\n\n    // Account for jankitude on images\n    > img,\n    > a > img {\n      @include img-responsive;\n      line-height: 1;\n    }\n\n    // WebKit CSS3 transforms for supported devices\n    @media all and (transform-3d), (-webkit-transform-3d) {\n      @include transition-transform(0.6s ease-in-out);\n      @include backface-visibility(hidden);\n      @include perspective(1000px);\n\n      &.next,\n      &.active.right {\n        @include translate3d(100%, 0, 0);\n        left: 0;\n      }\n      &.prev,\n      &.active.left {\n        @include translate3d(-100%, 0, 0);\n        left: 0;\n      }\n      &.next.left,\n      &.prev.right,\n      &.active {\n        @include translate3d(0, 0, 0);\n        left: 0;\n      }\n    }\n  }\n\n  > .active,\n  > .next,\n  > .prev {\n    display: block;\n  }\n\n  > .active {\n    left: 0;\n  }\n\n  > .next,\n  > .prev {\n    position: absolute;\n    top: 0;\n    width: 100%;\n  }\n\n  > .next {\n    left: 100%;\n  }\n  > .prev {\n    left: -100%;\n  }\n  > .next.left,\n  > .prev.right {\n    left: 0;\n  }\n\n  > .active.left {\n    left: -100%;\n  }\n  > .active.right {\n    left: 100%;\n  }\n\n}\n\n// Left/right controls for nav\n// ---------------------------\n\n.carousel-control {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  width: $carousel-control-width;\n  font-size: $carousel-control-font-size;\n  color: $carousel-control-color;\n  text-align: center;\n  text-shadow: $carousel-text-shadow;\n  background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug\n  @include opacity($carousel-control-opacity);\n  // We can't have this transition here because WebKit cancels the carousel\n  // animation if you trip this while in the middle of another animation.\n\n  // Set gradients for backgrounds\n  &.left {\n    @include gradient-horizontal($start-color: rgba(0, 0, 0, .5), $end-color: rgba(0, 0, 0, .0001));\n  }\n  &.right {\n    right: 0;\n    left: auto;\n    @include gradient-horizontal($start-color: rgba(0, 0, 0, .0001), $end-color: rgba(0, 0, 0, .5));\n  }\n\n  // Hover/focus state\n  &:hover,\n  &:focus {\n    color: $carousel-control-color;\n    text-decoration: none;\n    outline: 0;\n    @include opacity(.9);\n  }\n\n  // Toggles\n  .icon-prev,\n  .icon-next,\n  .glyphicon-chevron-left,\n  .glyphicon-chevron-right {\n    position: absolute;\n    top: 50%;\n    z-index: 5;\n    display: inline-block;\n    margin-top: -10px;\n  }\n  .icon-prev,\n  .glyphicon-chevron-left {\n    left: 50%;\n    margin-left: -10px;\n  }\n  .icon-next,\n  .glyphicon-chevron-right {\n    right: 50%;\n    margin-right: -10px;\n  }\n  .icon-prev,\n  .icon-next {\n    width: 20px;\n    height: 20px;\n    font-family: serif;\n    line-height: 1;\n  }\n\n  .icon-prev {\n    &:before {\n      content: \"\\2039\";// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)\n    }\n  }\n  .icon-next {\n    &:before {\n      content: \"\\203a\";// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)\n    }\n  }\n}\n\n// Optional indicator pips\n//\n// Add an unordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n  position: absolute;\n  bottom: 10px;\n  left: 50%;\n  z-index: 15;\n  width: 60%;\n  padding-left: 0;\n  margin-left: -30%;\n  text-align: center;\n  list-style: none;\n\n  li {\n    display: inline-block;\n    width: 10px;\n    height: 10px;\n    margin: 1px;\n    text-indent: -999px;\n    cursor: pointer;\n    // IE8-9 hack for event handling\n    //\n    // Internet Explorer 8-9 does not support clicks on elements without a set\n    // `background-color`. We cannot use `filter` since that's not viewed as a\n    // background color by the browser. Thus, a hack is needed.\n    // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer\n    //\n    // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we\n    // set alpha transparency for the best results possible.\n    background-color: #000 \\9; // IE8\n    background-color: rgba(0, 0, 0, 0); // IE9\n\n    border: 1px solid $carousel-indicator-border-color;\n    border-radius: 10px;\n  }\n\n  .active {\n    width: 12px;\n    height: 12px;\n    margin: 0;\n    background-color: $carousel-indicator-active-bg;\n  }\n}\n\n// Optional captions\n// -----------------------------\n// Hidden by default for smaller viewports\n.carousel-caption {\n  position: absolute;\n  right: 15%;\n  bottom: 20px;\n  left: 15%;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: $carousel-caption-color;\n  text-align: center;\n  text-shadow: $carousel-text-shadow;\n\n  & .btn {\n    text-shadow: none; // No shadow for button elements in carousel-caption\n  }\n}\n\n\n// Scale up controls for tablets and up\n@media screen and (min-width: $screen-sm-min) {\n\n  // Scale up the controls a smidge\n  .carousel-control {\n    .glyphicon-chevron-left,\n    .glyphicon-chevron-right,\n    .icon-prev,\n    .icon-next {\n      width: ($carousel-control-font-size * 1.5);\n      height: ($carousel-control-font-size * 1.5);\n      margin-top: math.div($carousel-control-font-size, -2);\n      font-size: ($carousel-control-font-size * 1.5);\n    }\n    .glyphicon-chevron-left,\n    .icon-prev {\n      margin-left: math.div($carousel-control-font-size, -2);\n    }\n    .glyphicon-chevron-right,\n    .icon-next {\n      margin-right: math.div($carousel-control-font-size, -2);\n    }\n  }\n\n  // Show and left align the captions\n  .carousel-caption {\n    right: 20%;\n    left: 20%;\n    padding-bottom: 30px;\n  }\n\n  // Move up the indicators\n  .carousel-indicators {\n    bottom: 20px;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_close.scss",
    "content": "//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n  float: right;\n  font-size: ($font-size-base * 1.5);\n  font-weight: $close-font-weight;\n  line-height: 1;\n  color: $close-color;\n  text-shadow: $close-text-shadow;\n  @include opacity(.2);\n\n  &:hover,\n  &:focus {\n    color: $close-color;\n    text-decoration: none;\n    cursor: pointer;\n    @include opacity(.5);\n  }\n\n  // [converter] extracted button& to button.close\n}\n\n// Additional properties for button version\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\nbutton.close {\n  padding: 0;\n  cursor: pointer;\n  background: transparent;\n  border: 0;\n  -webkit-appearance: none;\n  appearance: none;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_code.scss",
    "content": "@use \"sass:math\";\n//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n  font-family: $font-family-monospace;\n}\n\n// Inline code\ncode {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: $code-color;\n  background-color: $code-bg;\n  border-radius: $border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: $kbd-color;\n  background-color: $kbd-bg;\n  border-radius: $border-radius-small;\n  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);\n\n  kbd {\n    padding: 0;\n    font-size: 100%;\n    font-weight: 700;\n    box-shadow: none;\n  }\n}\n\n// Blocks of code\npre {\n  display: block;\n  padding: math.div(($line-height-computed - 1), 2);\n  margin: 0 0 math.div($line-height-computed, 2);\n  font-size: ($font-size-base - 1); // 14px to 13px\n  line-height: $line-height-base;\n  color: $pre-color;\n  word-break: break-all;\n  word-wrap: break-word;\n  background-color: $pre-bg;\n  border: 1px solid $pre-border-color;\n  border-radius: $border-radius-base;\n\n  // Account for some code outputs that place code tags in pre tags\n  code {\n    padding: 0;\n    font-size: inherit;\n    color: inherit;\n    white-space: pre-wrap;\n    background-color: transparent;\n    border-radius: 0;\n  }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n  max-height: $pre-scrollable-max-height;\n  overflow-y: scroll;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_component-animations.scss",
    "content": "//\n// Component animations\n// --------------------------------------------------\n\n// Heads up!\n//\n// We don't use the `.opacity()` mixin here since it causes a bug with text\n// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.\n\n.fade {\n  opacity: 0;\n  @include transition(opacity .15s linear);\n\n  &.in {\n    opacity: 1;\n  }\n}\n\n.collapse {\n  display: none;\n\n  &.in      { display: block; }\n  // [converter] extracted tr&.in to tr.collapse.in\n  // [converter] extracted tbody&.in to tbody.collapse.in\n}\n\ntr.collapse.in    { display: table-row; }\n\ntbody.collapse.in { display: table-row-group; }\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  @include transition-property(height, visibility);\n  @include transition-duration(.35s);\n  @include transition-timing-function(ease);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_dropdowns.scss",
    "content": "//\n// Dropdown menus\n// --------------------------------------------------\n\n\n// Dropdown arrow/caret\n.caret {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 2px;\n  vertical-align: middle;\n  border-top: $caret-width-base dashed;\n  border-top: $caret-width-base solid \\9; // IE8\n  border-right: $caret-width-base solid transparent;\n  border-left: $caret-width-base solid transparent;\n}\n\n// The dropdown wrapper (div)\n.dropup,\n.dropdown {\n  position: relative;\n}\n\n// Prevent the focus on the dropdown toggle when closing dropdowns\n.dropdown-toggle:focus {\n  outline: 0;\n}\n\n// The dropdown menu (ul)\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: $zindex-dropdown;\n  display: none; // none by default, but block on \"open\" of the menu\n  float: left;\n  min-width: 160px;\n  padding: 5px 0;\n  margin: 2px 0 0; // override default ul\n  font-size: $font-size-base;\n  text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n  list-style: none;\n  background-color: $dropdown-bg;\n  background-clip: padding-box;\n  border: 1px solid $dropdown-fallback-border; // IE8 fallback\n  border: 1px solid $dropdown-border;\n  border-radius: $border-radius-base;\n  @include box-shadow(0 6px 12px rgba(0, 0, 0, .175));\n\n  // Aligns the dropdown menu to right\n  //\n  // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`\n  &.pull-right {\n    right: 0;\n    left: auto;\n  }\n\n  // Dividers (basically an hr) within the dropdown\n  .divider {\n    @include nav-divider($dropdown-divider-bg);\n  }\n\n  // Links within the dropdown menu\n  > li > a {\n    display: block;\n    padding: 3px 20px;\n    clear: both;\n    font-weight: 400;\n    line-height: $line-height-base;\n    color: $dropdown-link-color;\n    white-space: nowrap; // prevent links from randomly breaking onto new lines\n\n    &:hover,\n    &:focus {\n      color: $dropdown-link-hover-color;\n      text-decoration: none;\n      background-color: $dropdown-link-hover-bg;\n    }\n  }\n}\n\n// Active state\n.dropdown-menu > .active > a {\n  &,\n  &:hover,\n  &:focus {\n    color: $dropdown-link-active-color;\n    text-decoration: none;\n    background-color: $dropdown-link-active-bg;\n    outline: 0;\n  }\n}\n\n// Disabled state\n//\n// Gray out text and ensure the hover/focus state remains gray\n\n.dropdown-menu > .disabled > a {\n  &,\n  &:hover,\n  &:focus {\n    color: $dropdown-link-disabled-color;\n  }\n\n  // Nuke hover/focus effects\n  &:hover,\n  &:focus {\n    text-decoration: none;\n    cursor: $cursor-disabled;\n    background-color: transparent;\n    background-image: none; // Remove CSS gradient\n    @include reset-filter;\n  }\n}\n\n// Open state for the dropdown\n.open {\n  // Show the menu\n  > .dropdown-menu {\n    display: block;\n  }\n\n  // Remove the outline when :focus is triggered\n  > a {\n    outline: 0;\n  }\n}\n\n// Menu positioning\n//\n// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown\n// menu with the parent.\n.dropdown-menu-right {\n  right: 0;\n  left: auto; // Reset the default from `.dropdown-menu`\n}\n// With v3, we enabled auto-flipping if you have a dropdown within a right\n// aligned nav component. To enable the undoing of that, we provide an override\n// to restore the default dropdown menu alignment.\n//\n// This is only for left-aligning a dropdown menu within a `.navbar-right` or\n// `.pull-right` nav component.\n.dropdown-menu-left {\n  right: auto;\n  left: 0;\n}\n\n// Dropdown section headers\n.dropdown-header {\n  display: block;\n  padding: 3px 20px;\n  font-size: $font-size-small;\n  line-height: $line-height-base;\n  color: $dropdown-header-color;\n  white-space: nowrap; // as with > li > a\n}\n\n// Backdrop to catch body clicks on mobile, etc.\n.dropdown-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: ($zindex-dropdown - 10);\n}\n\n// Right aligned dropdowns\n.pull-right > .dropdown-menu {\n  right: 0;\n  left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n//\n// Just add .dropup after the standard .dropdown class and you're set, bro.\n// TODO: abstract this so that the navbar fixed styles are not placed here?\n\n.dropup,\n.navbar-fixed-bottom .dropdown {\n  // Reverse the caret\n  .caret {\n    content: \"\";\n    border-top: 0;\n    border-bottom: $caret-width-base dashed;\n    border-bottom: $caret-width-base solid \\9; // IE8\n  }\n  // Different positioning for bottom up menu\n  .dropdown-menu {\n    top: auto;\n    bottom: 100%;\n    margin-bottom: 2px;\n  }\n}\n\n\n// Component alignment\n//\n// Reiterate per navbar.less and the modified component alignment there.\n\n@media (min-width: $grid-float-breakpoint) {\n  .navbar-right {\n    .dropdown-menu {\n      right: 0; left: auto;\n    }\n    // Necessary for overrides of the default right aligned menu.\n    // Will remove come v4 in all likelihood.\n    .dropdown-menu-left {\n      left: 0; right: auto;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_forms.scss",
    "content": "@use \"sass:math\";\n//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n  // Chrome and Firefox set a `min-width: min-content;` on fieldsets,\n  // so we reset that to ensure it behaves more like a standard block element.\n  // See https://github.com/twbs/bootstrap/issues/12359.\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: $line-height-computed;\n  font-size: ($font-size-base * 1.5);\n  line-height: inherit;\n  color: $legend-color;\n  border: 0;\n  border-bottom: 1px solid $legend-border-color;\n}\n\nlabel {\n  display: inline-block;\n  max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)\n  margin-bottom: 5px;\n  font-weight: 700;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\ninput[type=\"search\"] {\n  // Override content-box in Normalize (* isn't specific enough)\n  @include box-sizing(border-box);\n\n  // Search inputs in iOS\n  //\n  // This overrides the extra rounded corners on search inputs in iOS so that our\n  // `.form-control` class can properly style them. Note that this cannot simply\n  // be added to `.form-control` as it's not specific enough. For details, see\n  // https://github.com/twbs/bootstrap/issues/11586.\n  -webkit-appearance: none;\n  appearance: none;\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  margin: 4px 0 0;\n  margin-top: 1px \\9; // IE8-9\n  line-height: normal;\n\n  // Apply same disabled cursor tweak as for inputs\n  // Some special care is needed because <label>s don't inherit their parent's `cursor`.\n  //\n  // Note: Neither radios nor checkboxes can be readonly.\n  &[disabled],\n  &.disabled,\n  fieldset[disabled] & {\n    cursor: $cursor-disabled;\n  }\n}\n\ninput[type=\"file\"] {\n  display: block;\n}\n\n// Make range inputs behave like textual form controls\ninput[type=\"range\"] {\n  display: block;\n  width: 100%;\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n  height: auto;\n}\n\n// Focus for file, radio, and checkbox\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n  @include tab-focus;\n}\n\n// Adjust output element\noutput {\n  display: block;\n  padding-top: ($padding-base-vertical + 1);\n  font-size: $font-size-base;\n  line-height: $line-height-base;\n  color: $input-color;\n}\n\n\n// Common form controls\n//\n// Shared size and type resets for form controls. Apply `.form-control` to any\n// of the following form controls:\n//\n// select\n// textarea\n// input[type=\"text\"]\n// input[type=\"password\"]\n// input[type=\"datetime\"]\n// input[type=\"datetime-local\"]\n// input[type=\"date\"]\n// input[type=\"month\"]\n// input[type=\"time\"]\n// input[type=\"week\"]\n// input[type=\"number\"]\n// input[type=\"email\"]\n// input[type=\"url\"]\n// input[type=\"search\"]\n// input[type=\"tel\"]\n// input[type=\"color\"]\n\n.form-control {\n  display: block;\n  width: 100%;\n  height: $input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n  padding: $padding-base-vertical $padding-base-horizontal;\n  font-size: $font-size-base;\n  line-height: $line-height-base;\n  color: $input-color;\n  background-color: $input-bg;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid $input-border;\n  border-radius: $input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.\n  @include box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075));\n  @include transition(border-color ease-in-out .15s, box-shadow ease-in-out .15s);\n\n  // Customize the `:focus` state to imitate native WebKit styles.\n  @include form-control-focus;\n\n  // Placeholder\n  @include placeholder;\n\n  // Unstyle the caret on `<select>`s in IE10+.\n  &::-ms-expand {\n    background-color: transparent;\n    border: 0;\n  }\n\n  // Disabled and read-only inputs\n  //\n  // HTML5 says that controls under a fieldset > legend:first-child won't be\n  // disabled if the fieldset is disabled. Due to implementation difficulty, we\n  // don't honor that edge case; we style them as disabled anyway.\n  &[disabled],\n  &[readonly],\n  fieldset[disabled] & {\n    background-color: $input-bg-disabled;\n    opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655\n  }\n\n  &[disabled],\n  fieldset[disabled] & {\n    cursor: $cursor-disabled;\n  }\n\n  // [converter] extracted textarea& to textarea.form-control\n}\n\n// Reset height for `textarea`s\ntextarea.form-control {\n  height: auto;\n}\n\n\n// Special styles for iOS temporal inputs\n//\n// In Mobile Safari, setting `display: block` on temporal inputs causes the\n// text within the input to become vertically misaligned. As a workaround, we\n// set a pixel line-height that matches the given height of the input, but only\n// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848\n//\n// Note that as of 9.3, iOS doesn't support `week`.\n\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n  input[type=\"date\"],\n  input[type=\"time\"],\n  input[type=\"datetime-local\"],\n  input[type=\"month\"] {\n    &.form-control {\n      line-height: $input-height-base;\n    }\n\n    &.input-sm,\n    .input-group-sm & {\n      line-height: $input-height-small;\n    }\n\n    &.input-lg,\n    .input-group-lg & {\n      line-height: $input-height-large;\n    }\n  }\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n  margin-bottom: $form-group-margin-bottom;\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.radio,\n.checkbox {\n  position: relative;\n  display: block;\n  margin-top: 10px;\n  margin-bottom: 10px;\n\n  // These are used on elements with <label> descendants\n  &.disabled,\n  fieldset[disabled] & {\n    label {\n      cursor: $cursor-disabled;\n    }\n  }\n\n  label {\n    min-height: $line-height-computed; // Ensure the input doesn't jump when there is no text\n    padding-left: 20px;\n    margin-bottom: 0;\n    font-weight: 400;\n    cursor: pointer;\n  }\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n  position: absolute;\n  margin-top: 4px \\9;\n  margin-left: -20px;\n}\n\n.radio + .radio,\n.checkbox + .checkbox {\n  margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing\n}\n\n// Radios and checkboxes on same line\n.radio-inline,\n.checkbox-inline {\n  position: relative;\n  display: inline-block;\n  padding-left: 20px;\n  margin-bottom: 0;\n  font-weight: 400;\n  vertical-align: middle;\n  cursor: pointer;\n\n  // These are used directly on <label>s\n  &.disabled,\n  fieldset[disabled] & {\n    cursor: $cursor-disabled;\n  }\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n  margin-top: 0;\n  margin-left: 10px; // space out consecutive inline controls\n}\n\n\n// Static form control text\n//\n// Apply class to a `p` element to make any string of text align with labels in\n// a horizontal form layout.\n\n.form-control-static {\n  min-height: ($line-height-computed + $font-size-base);\n  // Size it appropriately next to real form controls\n  padding-top: ($padding-base-vertical + 1);\n  padding-bottom: ($padding-base-vertical + 1);\n  // Remove default margin from `p`\n  margin-bottom: 0;\n\n  &.input-lg,\n  &.input-sm {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// The `.form-group-* form-control` variations are sadly duplicated to avoid the\n// issue documented in https://github.com/twbs/bootstrap/issues/15074.\n\n@include input-size('.input-sm', $input-height-small, $padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $input-border-radius-small);\n.form-group-sm {\n  .form-control {\n    height: $input-height-small;\n    padding: $padding-small-vertical $padding-small-horizontal;\n    font-size: $font-size-small;\n    line-height: $line-height-small;\n    border-radius: $input-border-radius-small;\n  }\n  select.form-control {\n    height: $input-height-small;\n    line-height: $input-height-small;\n  }\n  textarea.form-control,\n  select[multiple].form-control {\n    height: auto;\n  }\n  .form-control-static {\n    height: $input-height-small;\n    min-height: ($line-height-computed + $font-size-small);\n    padding: ($padding-small-vertical + 1) $padding-small-horizontal;\n    font-size: $font-size-small;\n    line-height: $line-height-small;\n  }\n}\n\n@include input-size('.input-lg', $input-height-large, $padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $input-border-radius-large);\n.form-group-lg {\n  .form-control {\n    height: $input-height-large;\n    padding: $padding-large-vertical $padding-large-horizontal;\n    font-size: $font-size-large;\n    line-height: $line-height-large;\n    border-radius: $input-border-radius-large;\n  }\n  select.form-control {\n    height: $input-height-large;\n    line-height: $input-height-large;\n  }\n  textarea.form-control,\n  select[multiple].form-control {\n    height: auto;\n  }\n  .form-control-static {\n    height: $input-height-large;\n    min-height: ($line-height-computed + $font-size-large);\n    padding: ($padding-large-vertical + 1) $padding-large-horizontal;\n    font-size: $font-size-large;\n    line-height: $line-height-large;\n  }\n}\n\n\n// Form control feedback states\n//\n// Apply contextual and semantic states to individual form controls.\n\n.has-feedback {\n  // Enable absolute positioning\n  position: relative;\n\n  // Ensure icons don't overlap text\n  .form-control {\n    padding-right: ($input-height-base * 1.25);\n  }\n}\n// Feedback icon (requires .glyphicon classes)\n.form-control-feedback {\n  position: absolute;\n  top: 0;\n  right: 0;\n  z-index: 2; // Ensure icon is above input groups\n  display: block;\n  width: $input-height-base;\n  height: $input-height-base;\n  line-height: $input-height-base;\n  text-align: center;\n  pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n  width: $input-height-large;\n  height: $input-height-large;\n  line-height: $input-height-large;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n  width: $input-height-small;\n  height: $input-height-small;\n  line-height: $input-height-small;\n}\n\n// Feedback states\n.has-success {\n  @include form-control-validation($state-success-text, $state-success-text, $state-success-bg);\n}\n.has-warning {\n  @include form-control-validation($state-warning-text, $state-warning-text, $state-warning-bg);\n}\n.has-error {\n  @include form-control-validation($state-danger-text, $state-danger-text, $state-danger-bg);\n}\n\n// Reposition feedback icon if input has visible label above\n.has-feedback label {\n\n  & ~ .form-control-feedback {\n    top: ($line-height-computed + 5); // Height of the `label` and its margin\n  }\n  &.sr-only ~ .form-control-feedback {\n    top: 0;\n  }\n}\n\n\n// Help text\n//\n// Apply to any element you wish to create light text for placement immediately\n// below a form control. Use for general help, formatting, or instructional text.\n\n.help-block {\n  display: block; // account for any element using help-block\n  margin-top: 5px;\n  margin-bottom: 10px;\n  color: lighten($text-color, 25%); // lighten the text some for contrast\n}\n\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n//\n// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.\n\n// [converter] extracted from `.form-inline` for libsass compatibility\n@mixin form-inline {\n\n  // Kick in the inline\n  @media (min-width: $screen-sm-min) {\n    // Inline-block all the things for \"inline\"\n    .form-group {\n      display: inline-block;\n      margin-bottom: 0;\n      vertical-align: middle;\n    }\n\n    // In navbar-form, allow folks to *not* use `.form-group`\n    .form-control {\n      display: inline-block;\n      width: auto; // Prevent labels from stacking above inputs in `.form-group`\n      vertical-align: middle;\n    }\n\n    // Make static controls behave like regular ones\n    .form-control-static {\n      display: inline-block;\n    }\n\n    .input-group {\n      display: inline-table;\n      vertical-align: middle;\n\n      .input-group-addon,\n      .input-group-btn,\n      .form-control {\n        width: auto;\n      }\n    }\n\n    // Input groups need that 100% width though\n    .input-group > .form-control {\n      width: 100%;\n    }\n\n    .control-label {\n      margin-bottom: 0;\n      vertical-align: middle;\n    }\n\n    // Remove default margin on radios/checkboxes that were used for stacking, and\n    // then undo the floating of radios and checkboxes to match.\n    .radio,\n    .checkbox {\n      display: inline-block;\n      margin-top: 0;\n      margin-bottom: 0;\n      vertical-align: middle;\n\n      label {\n        padding-left: 0;\n      }\n    }\n    .radio input[type=\"radio\"],\n    .checkbox input[type=\"checkbox\"] {\n      position: relative;\n      margin-left: 0;\n    }\n\n    // Re-override the feedback icon.\n    .has-feedback .form-control-feedback {\n      top: 0;\n    }\n  }\n}\n// [converter] extracted as `@mixin form-inline` for libsass compatibility\n.form-inline {\n  @include form-inline;\n}\n\n\n\n// Horizontal forms\n//\n// Horizontal forms are built on grid classes and allow you to create forms with\n// labels on the left and inputs on the right.\n\n.form-horizontal {\n\n  // Consistent vertical alignment of radios and checkboxes\n  //\n  // Labels also get some reset styles, but that is scoped to a media query below.\n  .radio,\n  .checkbox,\n  .radio-inline,\n  .checkbox-inline {\n    padding-top: ($padding-base-vertical + 1); // Default padding plus a border\n    margin-top: 0;\n    margin-bottom: 0;\n  }\n  // Account for padding we're adding to ensure the alignment and of help text\n  // and other content below items\n  .radio,\n  .checkbox {\n    min-height: ($line-height-computed + ($padding-base-vertical + 1));\n  }\n\n  // Make form groups behave like rows\n  .form-group {\n    @include make-row;\n  }\n\n  // Reset spacing and right align labels, but scope to media queries so that\n  // labels on narrow viewports stack the same as a default form example.\n  @media (min-width: $screen-sm-min) {\n    .control-label {\n      padding-top: ($padding-base-vertical + 1); // Default padding plus a border\n      margin-bottom: 0;\n      text-align: right;\n    }\n  }\n\n  // Validation states\n  //\n  // Reposition the icon because it's now within a grid column and columns have\n  // `position: relative;` on them. Also accounts for the grid gutter padding.\n  .has-feedback .form-control-feedback {\n    right: floor(math.div($grid-gutter-width, 2));\n  }\n\n  // Form group sizes\n  //\n  // Quick utility class for applying `.input-lg` and `.input-sm` styles to the\n  // inputs and labels within a `.form-group`.\n  .form-group-lg {\n    @media (min-width: $screen-sm-min) {\n      .control-label {\n        padding-top: ($padding-large-vertical + 1);\n        font-size: $font-size-large;\n      }\n    }\n  }\n  .form-group-sm {\n    @media (min-width: $screen-sm-min) {\n      .control-label {\n        padding-top: ($padding-small-vertical + 1);\n        font-size: $font-size-small;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_glyphicons.scss",
    "content": "//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// <a href=\"#\"><span class=\"glyphicon glyphicon-star\"></span> Star</a>\n\n@at-root {\n  // Import the fonts\n  @font-face {\n    font-family: \"Glyphicons Halflings\";\n    src: url(if($bootstrap-sass-asset-helper, twbs-font-path(\"#{$icon-font-path}#{$icon-font-name}.eot\"), \"#{$icon-font-path}#{$icon-font-name}.eot\"));\n    src: url(if($bootstrap-sass-asset-helper, twbs-font-path(\"#{$icon-font-path}#{$icon-font-name}.eot?#iefix\"), \"#{$icon-font-path}#{$icon-font-name}.eot?#iefix\")) format(\"embedded-opentype\"),\n         url(if($bootstrap-sass-asset-helper, twbs-font-path(\"#{$icon-font-path}#{$icon-font-name}.woff2\"), \"#{$icon-font-path}#{$icon-font-name}.woff2\")) format(\"woff2\"),\n         url(if($bootstrap-sass-asset-helper, twbs-font-path(\"#{$icon-font-path}#{$icon-font-name}.woff\"), \"#{$icon-font-path}#{$icon-font-name}.woff\")) format(\"woff\"),\n         url(if($bootstrap-sass-asset-helper, twbs-font-path(\"#{$icon-font-path}#{$icon-font-name}.ttf\"), \"#{$icon-font-path}#{$icon-font-name}.ttf\")) format(\"truetype\"),\n         url(if($bootstrap-sass-asset-helper, twbs-font-path(\"#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}\"), \"#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}\")) format(\"svg\");\n  }\n}\n\n// Catchall baseclass\n.glyphicon {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  font-family: \"Glyphicons Halflings\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk               { &:before { content: \"\\002a\"; } }\n.glyphicon-plus                   { &:before { content: \"\\002b\"; } }\n.glyphicon-euro,\n.glyphicon-eur                    { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus                  { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud                  { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope               { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil                 { &:before { content: \"\\270f\"; } }\n.glyphicon-glass                  { &:before { content: \"\\e001\"; } }\n.glyphicon-music                  { &:before { content: \"\\e002\"; } }\n.glyphicon-search                 { &:before { content: \"\\e003\"; } }\n.glyphicon-heart                  { &:before { content: \"\\e005\"; } }\n.glyphicon-star                   { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty             { &:before { content: \"\\e007\"; } }\n.glyphicon-user                   { &:before { content: \"\\e008\"; } }\n.glyphicon-film                   { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large               { &:before { content: \"\\e010\"; } }\n.glyphicon-th                     { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list                { &:before { content: \"\\e012\"; } }\n.glyphicon-ok                     { &:before { content: \"\\e013\"; } }\n.glyphicon-remove                 { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in                { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out               { &:before { content: \"\\e016\"; } }\n.glyphicon-off                    { &:before { content: \"\\e017\"; } }\n.glyphicon-signal                 { &:before { content: \"\\e018\"; } }\n.glyphicon-cog                    { &:before { content: \"\\e019\"; } }\n.glyphicon-trash                  { &:before { content: \"\\e020\"; } }\n.glyphicon-home                   { &:before { content: \"\\e021\"; } }\n.glyphicon-file                   { &:before { content: \"\\e022\"; } }\n.glyphicon-time                   { &:before { content: \"\\e023\"; } }\n.glyphicon-road                   { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt           { &:before { content: \"\\e025\"; } }\n.glyphicon-download               { &:before { content: \"\\e026\"; } }\n.glyphicon-upload                 { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox                  { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle            { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat                 { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh                { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt               { &:before { content: \"\\e032\"; } }\n.glyphicon-lock                   { &:before { content: \"\\e033\"; } }\n.glyphicon-flag                   { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones             { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off             { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down            { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up              { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode                 { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode                { &:before { content: \"\\e040\"; } }\n.glyphicon-tag                    { &:before { content: \"\\e041\"; } }\n.glyphicon-tags                   { &:before { content: \"\\e042\"; } }\n.glyphicon-book                   { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark               { &:before { content: \"\\e044\"; } }\n.glyphicon-print                  { &:before { content: \"\\e045\"; } }\n.glyphicon-camera                 { &:before { content: \"\\e046\"; } }\n.glyphicon-font                   { &:before { content: \"\\e047\"; } }\n.glyphicon-bold                   { &:before { content: \"\\e048\"; } }\n.glyphicon-italic                 { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height            { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width             { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left             { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center           { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right            { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify          { &:before { content: \"\\e055\"; } }\n.glyphicon-list                   { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left            { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right           { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video         { &:before { content: \"\\e059\"; } }\n.glyphicon-picture                { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker             { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust                 { &:before { content: \"\\e063\"; } }\n.glyphicon-tint                   { &:before { content: \"\\e064\"; } }\n.glyphicon-edit                   { &:before { content: \"\\e065\"; } }\n.glyphicon-share                  { &:before { content: \"\\e066\"; } }\n.glyphicon-check                  { &:before { content: \"\\e067\"; } }\n.glyphicon-move                   { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward          { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward          { &:before { content: \"\\e070\"; } }\n.glyphicon-backward               { &:before { content: \"\\e071\"; } }\n.glyphicon-play                   { &:before { content: \"\\e072\"; } }\n.glyphicon-pause                  { &:before { content: \"\\e073\"; } }\n.glyphicon-stop                   { &:before { content: \"\\e074\"; } }\n.glyphicon-forward                { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward           { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward           { &:before { content: \"\\e077\"; } }\n.glyphicon-eject                  { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left           { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right          { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign              { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign             { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign            { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign                { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign          { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign              { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot             { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle          { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle              { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle             { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left             { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right            { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up               { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down             { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt              { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full            { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small           { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign       { &:before { content: \"\\e101\"; } }\n.glyphicon-gift                   { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf                   { &:before { content: \"\\e103\"; } }\n.glyphicon-fire                   { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open               { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close              { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign           { &:before { content: \"\\e107\"; } }\n.glyphicon-plane                  { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar               { &:before { content: \"\\e109\"; } }\n.glyphicon-random                 { &:before { content: \"\\e110\"; } }\n.glyphicon-comment                { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet                 { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up             { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down           { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet                { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart          { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close           { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open            { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical        { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal      { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd                    { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn               { &:before { content: \"\\e122\"; } }\n.glyphicon-bell                   { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate            { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up              { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down            { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right             { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left              { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up                { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down              { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right     { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left      { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up        { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down      { &:before { content: \"\\e134\"; } }\n.glyphicon-globe                  { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench                 { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks                  { &:before { content: \"\\e137\"; } }\n.glyphicon-filter                 { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase              { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen             { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard              { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip              { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty            { &:before { content: \"\\e143\"; } }\n.glyphicon-link                   { &:before { content: \"\\e144\"; } }\n.glyphicon-phone                  { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin                { &:before { content: \"\\e146\"; } }\n.glyphicon-usd                    { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp                    { &:before { content: \"\\e149\"; } }\n.glyphicon-sort                   { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet       { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt   { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order          { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt      { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes     { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked              { &:before { content: \"\\e157\"; } }\n.glyphicon-expand                 { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down          { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up            { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in                 { &:before { content: \"\\e161\"; } }\n.glyphicon-flash                  { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out                { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window             { &:before { content: \"\\e164\"; } }\n.glyphicon-record                 { &:before { content: \"\\e165\"; } }\n.glyphicon-save                   { &:before { content: \"\\e166\"; } }\n.glyphicon-open                   { &:before { content: \"\\e167\"; } }\n.glyphicon-saved                  { &:before { content: \"\\e168\"; } }\n.glyphicon-import                 { &:before { content: \"\\e169\"; } }\n.glyphicon-export                 { &:before { content: \"\\e170\"; } }\n.glyphicon-send                   { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk            { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved           { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove          { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save            { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open            { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card            { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer               { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery                { &:before { content: \"\\e179\"; } }\n.glyphicon-header                 { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed             { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone               { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt              { &:before { content: \"\\e183\"; } }\n.glyphicon-tower                  { &:before { content: \"\\e184\"; } }\n.glyphicon-stats                  { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video               { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video               { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles              { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo           { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby            { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1              { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1              { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1              { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark         { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark      { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download         { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload           { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer           { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous         { &:before { content: \"\\e200\"; } }\n.glyphicon-cd                     { &:before { content: \"\\e201\"; } }\n.glyphicon-save-file              { &:before { content: \"\\e202\"; } }\n.glyphicon-open-file              { &:before { content: \"\\e203\"; } }\n.glyphicon-level-up               { &:before { content: \"\\e204\"; } }\n.glyphicon-copy                   { &:before { content: \"\\e205\"; } }\n.glyphicon-paste                  { &:before { content: \"\\e206\"; } }\n// The following 2 Glyphicons are omitted for the time being because\n// they currently use Unicode codepoints that are outside the\n// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle\n// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.\n// Notably, the bug affects some older versions of the Android Browser.\n// More info: https://github.com/twbs/bootstrap/issues/10106\n// .glyphicon-door                   { &:before { content: \"\\1f6aa\"; } }\n// .glyphicon-key                    { &:before { content: \"\\1f511\"; } }\n.glyphicon-alert                  { &:before { content: \"\\e209\"; } }\n.glyphicon-equalizer              { &:before { content: \"\\e210\"; } }\n.glyphicon-king                   { &:before { content: \"\\e211\"; } }\n.glyphicon-queen                  { &:before { content: \"\\e212\"; } }\n.glyphicon-pawn                   { &:before { content: \"\\e213\"; } }\n.glyphicon-bishop                 { &:before { content: \"\\e214\"; } }\n.glyphicon-knight                 { &:before { content: \"\\e215\"; } }\n.glyphicon-baby-formula           { &:before { content: \"\\e216\"; } }\n.glyphicon-tent                   { &:before { content: \"\\26fa\"; } }\n.glyphicon-blackboard             { &:before { content: \"\\e218\"; } }\n.glyphicon-bed                    { &:before { content: \"\\e219\"; } }\n.glyphicon-apple                  { &:before { content: \"\\f8ff\"; } }\n.glyphicon-erase                  { &:before { content: \"\\e221\"; } }\n.glyphicon-hourglass              { &:before { content: \"\\231b\"; } }\n.glyphicon-lamp                   { &:before { content: \"\\e223\"; } }\n.glyphicon-duplicate              { &:before { content: \"\\e224\"; } }\n.glyphicon-piggy-bank             { &:before { content: \"\\e225\"; } }\n.glyphicon-scissors               { &:before { content: \"\\e226\"; } }\n.glyphicon-bitcoin                { &:before { content: \"\\e227\"; } }\n.glyphicon-btc                    { &:before { content: \"\\e227\"; } }\n.glyphicon-xbt                    { &:before { content: \"\\e227\"; } }\n.glyphicon-yen                    { &:before { content: \"\\00a5\"; } }\n.glyphicon-jpy                    { &:before { content: \"\\00a5\"; } }\n.glyphicon-ruble                  { &:before { content: \"\\20bd\"; } }\n.glyphicon-rub                    { &:before { content: \"\\20bd\"; } }\n.glyphicon-scale                  { &:before { content: \"\\e230\"; } }\n.glyphicon-ice-lolly              { &:before { content: \"\\e231\"; } }\n.glyphicon-ice-lolly-tasted       { &:before { content: \"\\e232\"; } }\n.glyphicon-education              { &:before { content: \"\\e233\"; } }\n.glyphicon-option-horizontal      { &:before { content: \"\\e234\"; } }\n.glyphicon-option-vertical        { &:before { content: \"\\e235\"; } }\n.glyphicon-menu-hamburger         { &:before { content: \"\\e236\"; } }\n.glyphicon-modal-window           { &:before { content: \"\\e237\"; } }\n.glyphicon-oil                    { &:before { content: \"\\e238\"; } }\n.glyphicon-grain                  { &:before { content: \"\\e239\"; } }\n.glyphicon-sunglasses             { &:before { content: \"\\e240\"; } }\n.glyphicon-text-size              { &:before { content: \"\\e241\"; } }\n.glyphicon-text-color             { &:before { content: \"\\e242\"; } }\n.glyphicon-text-background        { &:before { content: \"\\e243\"; } }\n.glyphicon-object-align-top       { &:before { content: \"\\e244\"; } }\n.glyphicon-object-align-bottom    { &:before { content: \"\\e245\"; } }\n.glyphicon-object-align-horizontal{ &:before { content: \"\\e246\"; } }\n.glyphicon-object-align-left      { &:before { content: \"\\e247\"; } }\n.glyphicon-object-align-vertical  { &:before { content: \"\\e248\"; } }\n.glyphicon-object-align-right     { &:before { content: \"\\e249\"; } }\n.glyphicon-triangle-right         { &:before { content: \"\\e250\"; } }\n.glyphicon-triangle-left          { &:before { content: \"\\e251\"; } }\n.glyphicon-triangle-bottom        { &:before { content: \"\\e252\"; } }\n.glyphicon-triangle-top           { &:before { content: \"\\e253\"; } }\n.glyphicon-console                { &:before { content: \"\\e254\"; } }\n.glyphicon-superscript            { &:before { content: \"\\e255\"; } }\n.glyphicon-subscript              { &:before { content: \"\\e256\"; } }\n.glyphicon-menu-left              { &:before { content: \"\\e257\"; } }\n.glyphicon-menu-right             { &:before { content: \"\\e258\"; } }\n.glyphicon-menu-down              { &:before { content: \"\\e259\"; } }\n.glyphicon-menu-up                { &:before { content: \"\\e260\"; } }\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_grid.scss",
    "content": "//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n  @include container-fixed;\n\n  @media (min-width: $screen-sm-min) {\n    width: $container-sm;\n  }\n  @media (min-width: $screen-md-min) {\n    width: $container-md;\n  }\n  @media (min-width: $screen-lg-min) {\n    width: $container-lg;\n  }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n  @include container-fixed;\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n  @include make-row;\n}\n\n.row-no-gutters {\n  margin-right: 0;\n  margin-left: 0;\n\n  [class*=\"col-\"] {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@include make-grid-columns;\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n@include make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: $screen-sm-min) {\n  @include make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: $screen-md-min) {\n  @include make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: $screen-lg-min) {\n  @include make-grid(lg);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_input-groups.scss",
    "content": "//\n// Input groups\n// --------------------------------------------------\n\n// Base styles\n// -------------------------\n.input-group {\n  position: relative; // For dropdowns\n  display: table;\n  border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table\n\n  // Undo padding and float of grid classes\n  &[class*=\"col-\"] {\n    float: none;\n    padding-right: 0;\n    padding-left: 0;\n  }\n\n  .form-control {\n    // Ensure that the input is always above the *appended* addon button for\n    // proper border colors.\n    position: relative;\n    z-index: 2;\n\n    // IE9 fubars the placeholder attribute in text inputs and the arrows on\n    // select elements in input groups. To fix it, we float the input. Details:\n    // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855\n    float: left;\n\n    width: 100%;\n    margin-bottom: 0;\n\n    &:focus {\n      z-index: 3;\n    }\n  }\n}\n\n// Sizing options\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n  @extend .input-lg;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n  @extend .input-sm;\n}\n\n\n// Display as table-cell\n// -------------------------\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n  display: table-cell;\n\n  &:not(:first-child):not(:last-child) {\n    border-radius: 0;\n  }\n}\n// Addon and addon wrapper for buttons\n.input-group-addon,\n.input-group-btn {\n  width: 1%;\n  white-space: nowrap;\n  vertical-align: middle; // Match the inputs\n}\n\n// Text input groups\n// -------------------------\n.input-group-addon {\n  padding: $padding-base-vertical $padding-base-horizontal;\n  font-size: $font-size-base;\n  font-weight: 400;\n  line-height: 1;\n  color: $input-color;\n  text-align: center;\n  background-color: $input-group-addon-bg;\n  border: 1px solid $input-group-addon-border-color;\n  border-radius: $input-border-radius;\n\n  // Sizing\n  &.input-sm {\n    padding: $padding-small-vertical $padding-small-horizontal;\n    font-size: $font-size-small;\n    border-radius: $input-border-radius-small;\n  }\n  &.input-lg {\n    padding: $padding-large-vertical $padding-large-horizontal;\n    font-size: $font-size-large;\n    border-radius: $input-border-radius-large;\n  }\n\n  // Nuke default margins from checkboxes and radios to vertically center within.\n  input[type=\"radio\"],\n  input[type=\"checkbox\"] {\n    margin-top: 0;\n  }\n}\n\n// Reset rounded corners\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n  @include border-right-radius(0);\n}\n.input-group-addon:first-child {\n  border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n  @include border-left-radius(0);\n}\n.input-group-addon:last-child {\n  border-left: 0;\n}\n\n// Button input groups\n// -------------------------\n.input-group-btn {\n  position: relative;\n  // Jankily prevent input button groups from wrapping with `white-space` and\n  // `font-size` in combination with `inline-block` on buttons.\n  font-size: 0;\n  white-space: nowrap;\n\n  // Negative margin for spacing, position for bringing hovered/focused/actived\n  // element above the siblings.\n  > .btn {\n    position: relative;\n    + .btn {\n      margin-left: -1px;\n    }\n    // Bring the \"active\" button to the front\n    &:hover,\n    &:focus,\n    &:active {\n      z-index: 2;\n    }\n  }\n\n  // Negative margin to only have a 1px border between the two\n  &:first-child {\n    > .btn,\n    > .btn-group {\n      margin-right: -1px;\n    }\n  }\n  &:last-child {\n    > .btn,\n    > .btn-group {\n      z-index: 2;\n      margin-left: -1px;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_jumbotron.scss",
    "content": "@use \"sass:math\";\n//\n// Jumbotron\n// --------------------------------------------------\n\n\n.jumbotron {\n  padding-top: $jumbotron-padding;\n  padding-bottom: $jumbotron-padding;\n  margin-bottom: $jumbotron-padding;\n  color: $jumbotron-color;\n  background-color: $jumbotron-bg;\n\n  h1,\n  .h1 {\n    color: $jumbotron-heading-color;\n  }\n\n  p {\n    margin-bottom: math.div($jumbotron-padding, 2);\n    font-size: $jumbotron-font-size;\n    font-weight: 200;\n  }\n\n  > hr {\n    border-top-color: darken($jumbotron-bg, 10%);\n  }\n\n  .container &,\n  .container-fluid & {\n    padding-right: math.div($grid-gutter-width, 2);\n    padding-left: math.div($grid-gutter-width, 2);\n    border-radius: $border-radius-large; // Only round corners at higher resolutions if contained in a container\n  }\n\n  .container {\n    max-width: 100%;\n  }\n\n  @media screen and (min-width: $screen-sm-min) {\n    padding-top: ($jumbotron-padding * 1.6);\n    padding-bottom: ($jumbotron-padding * 1.6);\n\n    .container &,\n    .container-fluid & {\n      padding-right: ($jumbotron-padding * 2);\n      padding-left: ($jumbotron-padding * 2);\n    }\n\n    h1,\n    .h1 {\n      font-size: $jumbotron-heading-font-size;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_labels.scss",
    "content": "//\n// Labels\n// --------------------------------------------------\n\n.label {\n  display: inline;\n  padding: .2em .6em .3em;\n  font-size: 75%;\n  font-weight: 700;\n  line-height: 1;\n  color: $label-color;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: .25em;\n\n  // [converter] extracted a& to a.label\n\n  // Empty labels collapse automatically (not available in IE8)\n  &:empty {\n    display: none;\n  }\n\n  // Quick fix for labels in buttons\n  .btn & {\n    position: relative;\n    top: -1px;\n  }\n}\n\n// Add hover effects, but only for links\na.label {\n  &:hover,\n  &:focus {\n    color: $label-link-hover-color;\n    text-decoration: none;\n    cursor: pointer;\n  }\n}\n\n// Colors\n// Contextual variations (linked labels get darker on :hover)\n\n.label-default {\n  @include label-variant($label-default-bg);\n}\n\n.label-primary {\n  @include label-variant($label-primary-bg);\n}\n\n.label-success {\n  @include label-variant($label-success-bg);\n}\n\n.label-info {\n  @include label-variant($label-info-bg);\n}\n\n.label-warning {\n  @include label-variant($label-warning-bg);\n}\n\n.label-danger {\n  @include label-variant($label-danger-bg);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_list-group.scss",
    "content": "//\n// List groups\n// --------------------------------------------------\n\n\n// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n  // No need to set list-style: none; since .list-group-item is block level\n  padding-left: 0; // reset padding because ul and ol\n  margin-bottom: 20px;\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n  // Place the border on the list items and negative margin up for better styling\n  margin-bottom: -1px;\n  background-color: $list-group-bg;\n  border: 1px solid $list-group-border;\n\n  // Round the first and last items\n  &:first-child {\n    @include border-top-radius($list-group-border-radius);\n  }\n  &:last-child {\n    margin-bottom: 0;\n    @include border-bottom-radius($list-group-border-radius);\n  }\n\n  // Disabled state\n  &.disabled,\n  &.disabled:hover,\n  &.disabled:focus {\n    color: $list-group-disabled-color;\n    cursor: $cursor-disabled;\n    background-color: $list-group-disabled-bg;\n\n    // Force color to inherit for custom content\n    .list-group-item-heading {\n      color: inherit;\n    }\n    .list-group-item-text {\n      color: $list-group-disabled-text-color;\n    }\n  }\n\n  // Active class on item itself, not parent\n  &.active,\n  &.active:hover,\n  &.active:focus {\n    z-index: 2; // Place active items above their siblings for proper border styling\n    color: $list-group-active-color;\n    background-color: $list-group-active-bg;\n    border-color: $list-group-active-border;\n\n    // Force color to inherit for custom content\n    .list-group-item-heading,\n    .list-group-item-heading > small,\n    .list-group-item-heading > .small {\n      color: inherit;\n    }\n    .list-group-item-text {\n      color: $list-group-active-text-color;\n    }\n  }\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive items.\n// Includes an extra `.active` modifier class for showing selected items.\n\na.list-group-item,\nbutton.list-group-item {\n  color: $list-group-link-color;\n\n  .list-group-item-heading {\n    color: $list-group-link-heading-color;\n  }\n\n  // Hover state\n  &:hover,\n  &:focus {\n    color: $list-group-link-hover-color;\n    text-decoration: none;\n    background-color: $list-group-hover-bg;\n  }\n}\n\nbutton.list-group-item {\n  width: 100%;\n  text-align: left;\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n@include list-group-item-variant(success, $state-success-bg, $state-success-text);\n@include list-group-item-variant(info, $state-info-bg, $state-info-text);\n@include list-group-item-variant(warning, $state-warning-bg, $state-warning-text);\n@include list-group-item-variant(danger, $state-danger-bg, $state-danger-text);\n\n\n// Custom content options\n//\n// Extra classes for creating well-formatted content within `.list-group-item`s.\n\n.list-group-item-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n.list-group-item-text {\n  margin-bottom: 0;\n  line-height: 1.3;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_media.scss",
    "content": ".media {\n  // Proper spacing between instances of .media\n  margin-top: 15px;\n\n  &:first-child {\n    margin-top: 0;\n  }\n}\n\n.media,\n.media-body {\n  overflow: hidden;\n  zoom: 1;\n}\n\n.media-body {\n  width: 10000px;\n}\n\n.media-object {\n  display: block;\n\n  // Fix collapse in webkit from max-width: 100% and display: table-cell.\n  &.img-thumbnail {\n    max-width: none;\n  }\n}\n\n.media-right,\n.media > .pull-right {\n  padding-left: 10px;\n}\n\n.media-left,\n.media > .pull-left {\n  padding-right: 10px;\n}\n\n.media-left,\n.media-right,\n.media-body {\n  display: table-cell;\n  vertical-align: top;\n}\n\n.media-middle {\n  vertical-align: middle;\n}\n\n.media-bottom {\n  vertical-align: bottom;\n}\n\n// Reset margins on headings for tighter default spacing\n.media-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n\n// Media list variation\n//\n// Undo default ul/ol styles\n.media-list {\n  padding-left: 0;\n  list-style: none;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_mixins.scss",
    "content": "// Mixins\n// --------------------------------------------------\n\n// Utilities\n@import \"mixins/hide-text\";\n@import \"mixins/opacity\";\n@import \"mixins/image\";\n@import \"mixins/labels\";\n@import \"mixins/reset-filter\";\n@import \"mixins/resize\";\n@import \"mixins/responsive-visibility\";\n@import \"mixins/size\";\n@import \"mixins/tab-focus\";\n@import \"mixins/reset-text\";\n@import \"mixins/text-emphasis\";\n@import \"mixins/text-overflow\";\n@import \"mixins/vendor-prefixes\";\n\n// Components\n@import \"mixins/alerts\";\n@import \"mixins/buttons\";\n@import \"mixins/panels\";\n@import \"mixins/pagination\";\n@import \"mixins/list-group\";\n@import \"mixins/nav-divider\";\n@import \"mixins/forms\";\n@import \"mixins/progress-bar\";\n@import \"mixins/table-row\";\n\n// Skins\n@import \"mixins/background-variant\";\n@import \"mixins/border-radius\";\n@import \"mixins/gradients\";\n\n// Layout\n@import \"mixins/clearfix\";\n@import \"mixins/center-block\";\n@import \"mixins/nav-vertical-align\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_modals.scss",
    "content": "//\n// Modals\n// --------------------------------------------------\n\n// .modal-open      - body class for killing the scroll\n// .modal           - container to scroll within\n// .modal-dialog    - positioning shell for the actual modal\n// .modal-content   - actual modal w/ bg and corners and shit\n\n// Kill the scroll on the body\n.modal-open {\n  overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $zindex-modal;\n  display: none;\n  overflow: hidden;\n  -webkit-overflow-scrolling: touch;\n\n  // Prevent Chrome on Windows from adding a focus outline. For details, see\n  // https://github.com/twbs/bootstrap/pull/10951.\n  outline: 0;\n\n  // When fading in the modal, animate it to slide down\n  &.fade .modal-dialog {\n    @include translate(0, -25%);\n    @include transition-transform(0.3s ease-out);\n  }\n  &.in .modal-dialog { @include translate(0, 0); }\n}\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 10px;\n}\n\n// Actual modal\n.modal-content {\n  position: relative;\n  background-color: $modal-content-bg;\n  background-clip: padding-box;\n  border: 1px solid $modal-content-fallback-border-color; //old browsers fallback (ie8 etc)\n  border: 1px solid $modal-content-border-color;\n  border-radius: $border-radius-large;\n  @include box-shadow(0 3px 9px rgba(0, 0, 0, .5));\n  // Remove focus outline from opened modal\n  outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $zindex-modal-background;\n  background-color: $modal-backdrop-bg;\n  // Fade for backdrop\n  &.fade { @include opacity(0); }\n  &.in { @include opacity($modal-backdrop-opacity); }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n  padding: $modal-title-padding;\n  border-bottom: 1px solid $modal-header-border-color;\n  @include clearfix;\n}\n// Close icon\n.modal-header .close {\n  margin-top: -2px;\n}\n\n// Title text within header\n.modal-title {\n  margin: 0;\n  line-height: $modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n  position: relative;\n  padding: $modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n  padding: $modal-inner-padding;\n  text-align: right; // right align buttons\n  border-top: 1px solid $modal-footer-border-color;\n  @include clearfix; // clear it in case folks use .pull-* classes on buttons\n\n  // Properly space out buttons\n  .btn + .btn {\n    margin-bottom: 0; // account for input[type=\"submit\"] which gets the bottom margin like all other inputs\n    margin-left: 5px;\n  }\n  // but override that for button groups\n  .btn-group .btn + .btn {\n    margin-left: -1px;\n  }\n  // and override it for block buttons as well\n  .btn-block + .btn-block {\n    margin-left: 0;\n  }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n// Scale up the modal\n@media (min-width: $screen-sm-min) {\n  // Automatically set modal's width for larger viewports\n  .modal-dialog {\n    width: $modal-md;\n    margin: 30px auto;\n  }\n  .modal-content {\n    @include box-shadow(0 5px 15px rgba(0, 0, 0, .5));\n  }\n\n  // Modal sizes\n  .modal-sm { width: $modal-sm; }\n}\n\n@media (min-width: $screen-md-min) {\n  .modal-lg { width: $modal-lg; }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_navbar.scss",
    "content": "@use \"sass:math\";\n//\n// Navbars\n// --------------------------------------------------\n\n\n// Wrapper and base class\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n  position: relative;\n  min-height: $navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)\n  margin-bottom: $navbar-margin-bottom;\n  border: 1px solid transparent;\n\n  // Prevent floats from breaking the navbar\n  @include clearfix;\n\n  @media (min-width: $grid-float-breakpoint) {\n    border-radius: $navbar-border-radius;\n  }\n}\n\n\n// Navbar heading\n//\n// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy\n// styling of responsive aspects.\n\n.navbar-header {\n  @include clearfix;\n\n  @media (min-width: $grid-float-breakpoint) {\n    float: left;\n  }\n}\n\n\n// Navbar collapse (body)\n//\n// Group your navbar content into this for easy collapsing and expanding across\n// various device sizes. By default, this content is collapsed when <768px, but\n// will expand past that for a horizontal display.\n//\n// To start (on mobile devices) the navbar links, forms, and buttons are stacked\n// vertically and include a `max-height` to overflow in case you have too much\n// content for the user's viewport.\n\n.navbar-collapse {\n  padding-right: $navbar-padding-horizontal;\n  padding-left: $navbar-padding-horizontal;\n  overflow-x: visible;\n  border-top: 1px solid transparent;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);\n  @include clearfix;\n  -webkit-overflow-scrolling: touch;\n\n  &.in {\n    overflow-y: auto;\n  }\n\n  @media (min-width: $grid-float-breakpoint) {\n    width: auto;\n    border-top: 0;\n    box-shadow: none;\n\n    &.collapse {\n      display: block !important;\n      height: auto !important;\n      padding-bottom: 0; // Override default setting\n      overflow: visible !important;\n    }\n\n    &.in {\n      overflow-y: visible;\n    }\n\n    // Undo the collapse side padding for navbars with containers to ensure\n    // alignment of right-aligned contents.\n    .navbar-fixed-top &,\n    .navbar-static-top &,\n    .navbar-fixed-bottom & {\n      padding-right: 0;\n      padding-left: 0;\n    }\n  }\n}\n\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  .navbar-collapse {\n    max-height: $navbar-collapse-max-height;\n\n    @media (max-device-width: $screen-xs-min) and (orientation: landscape) {\n      max-height: 200px;\n    }\n  }\n\n  // Fix the top/bottom navbars when screen real estate supports it\n  position: fixed;\n  right: 0;\n  left: 0;\n  z-index: $zindex-navbar-fixed;\n\n  // Undo the rounded corners\n  @media (min-width: $grid-float-breakpoint) {\n    border-radius: 0;\n  }\n}\n\n.navbar-fixed-top {\n  top: 0;\n  border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n  bottom: 0;\n  margin-bottom: 0; // override .navbar defaults\n  border-width: 1px 0 0;\n}\n\n\n// Both navbar header and collapse\n//\n// When a container is present, change the behavior of the header and collapse.\n\n.container,\n.container-fluid {\n  > .navbar-header,\n  > .navbar-collapse {\n    margin-right: -$navbar-padding-horizontal;\n    margin-left: -$navbar-padding-horizontal;\n\n    @media (min-width: $grid-float-breakpoint) {\n      margin-right: 0;\n      margin-left: 0;\n    }\n  }\n}\n\n\n//\n// Navbar alignment options\n//\n// Display the navbar across the entirety of the page or fixed it to the top or\n// bottom of the page.\n\n// Static top (unfixed, but 100% wide) navbar\n.navbar-static-top {\n  z-index: $zindex-navbar;\n  border-width: 0 0 1px;\n\n  @media (min-width: $grid-float-breakpoint) {\n    border-radius: 0;\n  }\n}\n\n\n// Brand/project name\n\n.navbar-brand {\n  float: left;\n  height: $navbar-height;\n  padding: $navbar-padding-vertical $navbar-padding-horizontal;\n  font-size: $font-size-large;\n  line-height: $line-height-computed;\n\n  &:hover,\n  &:focus {\n    text-decoration: none;\n  }\n\n  > img {\n    display: block;\n  }\n\n  @media (min-width: $grid-float-breakpoint) {\n    .navbar > .container &,\n    .navbar > .container-fluid & {\n      margin-left: -$navbar-padding-horizontal;\n    }\n  }\n}\n\n\n// Navbar toggle\n//\n// Custom button for toggling the `.navbar-collapse`, powered by the collapse\n// JavaScript plugin.\n\n.navbar-toggle {\n  position: relative;\n  float: right;\n  padding: 9px 10px;\n  margin-right: $navbar-padding-horizontal;\n  @include navbar-vertical-align(34px);\n  background-color: transparent;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid transparent;\n  border-radius: $border-radius-base;\n\n  // We remove the `outline` here, but later compensate by attaching `:hover`\n  // styles to `:focus`.\n  &:focus {\n    outline: 0;\n  }\n\n  // Bars\n  .icon-bar {\n    display: block;\n    width: 22px;\n    height: 2px;\n    border-radius: 1px;\n  }\n  .icon-bar + .icon-bar {\n    margin-top: 4px;\n  }\n\n  @media (min-width: $grid-float-breakpoint) {\n    display: none;\n  }\n}\n\n\n// Navbar nav links\n//\n// Builds on top of the `.nav` components with its own modifier class to make\n// the nav the full height of the horizontal nav (above 768px).\n\n.navbar-nav {\n  margin: math.div($navbar-padding-vertical, 2) (-$navbar-padding-horizontal);\n\n  > li > a {\n    padding-top: 10px;\n    padding-bottom: 10px;\n    line-height: $line-height-computed;\n  }\n\n  @media (max-width: $grid-float-breakpoint-max) {\n    // Dropdowns get custom display when collapsed\n    .open .dropdown-menu {\n      position: static;\n      float: none;\n      width: auto;\n      margin-top: 0;\n      background-color: transparent;\n      border: 0;\n      box-shadow: none;\n      > li > a,\n      .dropdown-header {\n        padding: 5px 15px 5px 25px;\n      }\n      > li > a {\n        line-height: $line-height-computed;\n        &:hover,\n        &:focus {\n          background-image: none;\n        }\n      }\n    }\n  }\n\n  // Uncollapse the nav\n  @media (min-width: $grid-float-breakpoint) {\n    float: left;\n    margin: 0;\n\n    > li {\n      float: left;\n      > a {\n        padding-top: $navbar-padding-vertical;\n        padding-bottom: $navbar-padding-vertical;\n      }\n    }\n  }\n}\n\n\n// Navbar form\n//\n// Extension of the `.form-inline` with some extra flavor for optimum display in\n// our navbars.\n\n.navbar-form {\n  padding: 10px $navbar-padding-horizontal;\n  margin-right: -$navbar-padding-horizontal;\n  margin-left: -$navbar-padding-horizontal;\n  border-top: 1px solid transparent;\n  border-bottom: 1px solid transparent;\n  $shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);\n  @include box-shadow($shadow);\n\n  // Mixin behavior for optimum display\n  @include form-inline;\n\n  .form-group {\n    @media (max-width: $grid-float-breakpoint-max) {\n      margin-bottom: 5px;\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  // Vertically center in expanded, horizontal navbar\n  @include navbar-vertical-align($input-height-base);\n\n  // Undo 100% width for pull classes\n  @media (min-width: $grid-float-breakpoint) {\n    width: auto;\n    padding-top: 0;\n    padding-bottom: 0;\n    margin-right: 0;\n    margin-left: 0;\n    border: 0;\n    @include box-shadow(none);\n  }\n}\n\n\n// Dropdown menus\n\n// Menu position and menu carets\n.navbar-nav > li > .dropdown-menu {\n  margin-top: 0;\n  @include border-top-radius(0);\n}\n// Menu position and menu caret support for dropups via extra dropup class\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n  margin-bottom: 0;\n  @include border-top-radius($navbar-border-radius);\n  @include border-bottom-radius(0);\n}\n\n\n// Buttons in navbars\n//\n// Vertically center a button within a navbar (when *not* in a form).\n\n.navbar-btn {\n  @include navbar-vertical-align($input-height-base);\n\n  &.btn-sm {\n    @include navbar-vertical-align($input-height-small);\n  }\n  &.btn-xs {\n    @include navbar-vertical-align(22);\n  }\n}\n\n\n// Text in navbars\n//\n// Add a class to make any element properly align itself vertically within the navbars.\n\n.navbar-text {\n  @include navbar-vertical-align($line-height-computed);\n\n  @media (min-width: $grid-float-breakpoint) {\n    float: left;\n    margin-right: $navbar-padding-horizontal;\n    margin-left: $navbar-padding-horizontal;\n  }\n}\n\n\n// Component alignment\n//\n// Repurpose the pull utilities as their own navbar utilities to avoid specificity\n// issues with parents and chaining. Only do this when the navbar is uncollapsed\n// though so that navbar contents properly stack and align in mobile.\n//\n// Declared after the navbar components to ensure more specificity on the margins.\n\n@media (min-width: $grid-float-breakpoint) {\n  .navbar-left {\n    float: left !important;\n  }\n  .navbar-right {\n    float: right !important;\n  margin-right: -$navbar-padding-horizontal;\n\n    ~ .navbar-right {\n      margin-right: 0;\n    }\n  }\n}\n\n\n// Alternate navbars\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n  background-color: $navbar-default-bg;\n  border-color: $navbar-default-border;\n\n  .navbar-brand {\n    color: $navbar-default-brand-color;\n    &:hover,\n    &:focus {\n      color: $navbar-default-brand-hover-color;\n      background-color: $navbar-default-brand-hover-bg;\n    }\n  }\n\n  .navbar-text {\n    color: $navbar-default-color;\n  }\n\n  .navbar-nav {\n    > li > a {\n      color: $navbar-default-link-color;\n\n      &:hover,\n      &:focus {\n        color: $navbar-default-link-hover-color;\n        background-color: $navbar-default-link-hover-bg;\n      }\n    }\n    > .active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: $navbar-default-link-active-color;\n        background-color: $navbar-default-link-active-bg;\n      }\n    }\n    > .disabled > a {\n      &,\n      &:hover,\n      &:focus {\n        color: $navbar-default-link-disabled-color;\n        background-color: $navbar-default-link-disabled-bg;\n      }\n    }\n\n    // Dropdown menu items\n    // Remove background color from open dropdown\n    > .open > a {\n      &,\n      &:hover,\n      &:focus {\n        color: $navbar-default-link-active-color;\n        background-color: $navbar-default-link-active-bg;\n      }\n    }\n\n    @media (max-width: $grid-float-breakpoint-max) {\n      // Dropdowns get custom display when collapsed\n      .open .dropdown-menu {\n        > li > a {\n          color: $navbar-default-link-color;\n          &:hover,\n          &:focus {\n            color: $navbar-default-link-hover-color;\n            background-color: $navbar-default-link-hover-bg;\n          }\n        }\n        > .active > a {\n          &,\n          &:hover,\n          &:focus {\n            color: $navbar-default-link-active-color;\n            background-color: $navbar-default-link-active-bg;\n          }\n        }\n        > .disabled > a {\n          &,\n          &:hover,\n          &:focus {\n            color: $navbar-default-link-disabled-color;\n            background-color: $navbar-default-link-disabled-bg;\n          }\n        }\n      }\n    }\n  }\n\n  .navbar-toggle {\n    border-color: $navbar-default-toggle-border-color;\n    &:hover,\n    &:focus {\n      background-color: $navbar-default-toggle-hover-bg;\n    }\n    .icon-bar {\n      background-color: $navbar-default-toggle-icon-bar-bg;\n    }\n  }\n\n  .navbar-collapse,\n  .navbar-form {\n    border-color: $navbar-default-border;\n  }\n\n\n  // Links in navbars\n  //\n  // Add a class to ensure links outside the navbar nav are colored correctly.\n\n  .navbar-link {\n    color: $navbar-default-link-color;\n    &:hover {\n      color: $navbar-default-link-hover-color;\n    }\n  }\n\n  .btn-link {\n    color: $navbar-default-link-color;\n    &:hover,\n    &:focus {\n      color: $navbar-default-link-hover-color;\n    }\n    &[disabled],\n    fieldset[disabled] & {\n      &:hover,\n      &:focus {\n        color: $navbar-default-link-disabled-color;\n      }\n    }\n  }\n}\n\n// Inverse navbar\n\n.navbar-inverse {\n  background-color: $navbar-inverse-bg;\n  border-color: $navbar-inverse-border;\n\n  .navbar-brand {\n    color: $navbar-inverse-brand-color;\n    &:hover,\n    &:focus {\n      color: $navbar-inverse-brand-hover-color;\n      background-color: $navbar-inverse-brand-hover-bg;\n    }\n  }\n\n  .navbar-text {\n    color: $navbar-inverse-color;\n  }\n\n  .navbar-nav {\n    > li > a {\n      color: $navbar-inverse-link-color;\n\n      &:hover,\n      &:focus {\n        color: $navbar-inverse-link-hover-color;\n        background-color: $navbar-inverse-link-hover-bg;\n      }\n    }\n    > .active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: $navbar-inverse-link-active-color;\n        background-color: $navbar-inverse-link-active-bg;\n      }\n    }\n    > .disabled > a {\n      &,\n      &:hover,\n      &:focus {\n        color: $navbar-inverse-link-disabled-color;\n        background-color: $navbar-inverse-link-disabled-bg;\n      }\n    }\n\n    // Dropdowns\n    > .open > a {\n      &,\n      &:hover,\n      &:focus {\n        color: $navbar-inverse-link-active-color;\n        background-color: $navbar-inverse-link-active-bg;\n      }\n    }\n\n    @media (max-width: $grid-float-breakpoint-max) {\n      // Dropdowns get custom display\n      .open .dropdown-menu {\n        > .dropdown-header {\n          border-color: $navbar-inverse-border;\n        }\n        .divider {\n          background-color: $navbar-inverse-border;\n        }\n        > li > a {\n          color: $navbar-inverse-link-color;\n          &:hover,\n          &:focus {\n            color: $navbar-inverse-link-hover-color;\n            background-color: $navbar-inverse-link-hover-bg;\n          }\n        }\n        > .active > a {\n          &,\n          &:hover,\n          &:focus {\n            color: $navbar-inverse-link-active-color;\n            background-color: $navbar-inverse-link-active-bg;\n          }\n        }\n        > .disabled > a {\n          &,\n          &:hover,\n          &:focus {\n            color: $navbar-inverse-link-disabled-color;\n            background-color: $navbar-inverse-link-disabled-bg;\n          }\n        }\n      }\n    }\n  }\n\n  // Darken the responsive nav toggle\n  .navbar-toggle {\n    border-color: $navbar-inverse-toggle-border-color;\n    &:hover,\n    &:focus {\n      background-color: $navbar-inverse-toggle-hover-bg;\n    }\n    .icon-bar {\n      background-color: $navbar-inverse-toggle-icon-bar-bg;\n    }\n  }\n\n  .navbar-collapse,\n  .navbar-form {\n    border-color: darken($navbar-inverse-bg, 7%);\n  }\n\n  .navbar-link {\n    color: $navbar-inverse-link-color;\n    &:hover {\n      color: $navbar-inverse-link-hover-color;\n    }\n  }\n\n  .btn-link {\n    color: $navbar-inverse-link-color;\n    &:hover,\n    &:focus {\n      color: $navbar-inverse-link-hover-color;\n    }\n    &[disabled],\n    fieldset[disabled] & {\n      &:hover,\n      &:focus {\n        color: $navbar-inverse-link-disabled-color;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_navs.scss",
    "content": "//\n// Navs\n// --------------------------------------------------\n\n\n// Base class\n// --------------------------------------------------\n\n.nav {\n  padding-left: 0; // Override default ul/ol\n  margin-bottom: 0;\n  list-style: none;\n  @include clearfix;\n\n  > li {\n    position: relative;\n    display: block;\n\n    > a {\n      position: relative;\n      display: block;\n      padding: $nav-link-padding;\n      &:hover,\n      &:focus {\n        text-decoration: none;\n        background-color: $nav-link-hover-bg;\n      }\n    }\n\n    // Disabled state sets text to gray and nukes hover/tab effects\n    &.disabled > a {\n      color: $nav-disabled-link-color;\n\n      &:hover,\n      &:focus {\n        color: $nav-disabled-link-hover-color;\n        text-decoration: none;\n        cursor: $cursor-disabled;\n        background-color: transparent;\n      }\n    }\n  }\n\n  // Open dropdowns\n  .open > a {\n    &,\n    &:hover,\n    &:focus {\n      background-color: $nav-link-hover-bg;\n      border-color: $link-color;\n    }\n  }\n\n  // Nav dividers (deprecated with v3.0.1)\n  //\n  // This should have been removed in v3 with the dropping of `.nav-list`, but\n  // we missed it. We don't currently support this anywhere, but in the interest\n  // of maintaining backward compatibility in case you use it, it's deprecated.\n  .nav-divider {\n    @include nav-divider;\n  }\n\n  // Prevent IE8 from misplacing imgs\n  //\n  // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989\n  > li > a > img {\n    max-width: none;\n  }\n}\n\n\n// Tabs\n// -------------------------\n\n// Give the tabs something to sit on\n.nav-tabs {\n  border-bottom: 1px solid $nav-tabs-border-color;\n  > li {\n    float: left;\n    // Make the list-items overlay the bottom border\n    margin-bottom: -1px;\n\n    // Actual tabs (as links)\n    > a {\n      margin-right: 2px;\n      line-height: $line-height-base;\n      border: 1px solid transparent;\n      border-radius: $border-radius-base $border-radius-base 0 0;\n      &:hover {\n        border-color: $nav-tabs-link-hover-border-color $nav-tabs-link-hover-border-color $nav-tabs-border-color;\n      }\n    }\n\n    // Active state, and its :hover to override normal :hover\n    &.active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: $nav-tabs-active-link-hover-color;\n        cursor: default;\n        background-color: $nav-tabs-active-link-hover-bg;\n        border: 1px solid $nav-tabs-active-link-hover-border-color;\n        border-bottom-color: transparent;\n      }\n    }\n  }\n  // pulling this in mainly for less shorthand\n  &.nav-justified {\n    @extend .nav-justified;\n    @extend .nav-tabs-justified;\n  }\n}\n\n\n// Pills\n// -------------------------\n.nav-pills {\n  > li {\n    float: left;\n\n    // Links rendered as pills\n    > a {\n      border-radius: $nav-pills-border-radius;\n    }\n    + li {\n      margin-left: 2px;\n    }\n\n    // Active state\n    &.active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: $nav-pills-active-link-hover-color;\n        background-color: $nav-pills-active-link-hover-bg;\n      }\n    }\n  }\n}\n\n\n// Stacked pills\n.nav-stacked {\n  > li {\n    float: none;\n    + li {\n      margin-top: 2px;\n      margin-left: 0; // no need for this gap between nav items\n    }\n  }\n}\n\n\n// Nav variations\n// --------------------------------------------------\n\n// Justified nav links\n// -------------------------\n\n.nav-justified {\n  width: 100%;\n\n  > li {\n    float: none;\n    > a {\n      margin-bottom: 5px;\n      text-align: center;\n    }\n  }\n\n  > .dropdown .dropdown-menu {\n    top: auto;\n    left: auto;\n  }\n\n  @media (min-width: $screen-sm-min) {\n    > li {\n      display: table-cell;\n      width: 1%;\n      > a {\n        margin-bottom: 0;\n      }\n    }\n  }\n}\n\n// Move borders to anchors instead of bottom of list\n//\n// Mixin for adding on top the shared `.nav-justified` styles for our tabs\n.nav-tabs-justified {\n  border-bottom: 0;\n\n  > li > a {\n    // Override margin from .nav-tabs\n    margin-right: 0;\n    border-radius: $border-radius-base;\n  }\n\n  > .active > a,\n  > .active > a:hover,\n  > .active > a:focus {\n    border: 1px solid $nav-tabs-justified-link-border-color;\n  }\n\n  @media (min-width: $screen-sm-min) {\n    > li > a {\n      border-bottom: 1px solid $nav-tabs-justified-link-border-color;\n      border-radius: $border-radius-base $border-radius-base 0 0;\n    }\n    > .active > a,\n    > .active > a:hover,\n    > .active > a:focus {\n      border-bottom-color: $nav-tabs-justified-active-link-border-color;\n    }\n  }\n}\n\n\n// Tabbable tabs\n// -------------------------\n\n// Hide tabbable panes to start, show them when `.active`\n.tab-content {\n  > .tab-pane {\n    display: none;\n  }\n  > .active {\n    display: block;\n  }\n}\n\n\n// Dropdowns\n// -------------------------\n\n// Specific dropdowns\n.nav-tabs .dropdown-menu {\n  // make dropdown border overlap tab border\n  margin-top: -1px;\n  // Remove the top rounded corners here since there is a hard edge above the menu\n  @include border-top-radius(0);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_normalize.scss",
    "content": "/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS and IE text size adjust after device orientation change,\n//    without disabling user zoom.\n//\n\nhtml {\n  font-family: sans-serif; // 1\n  -ms-text-size-adjust: 100%; // 2\n  -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n  margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined for any HTML5 element in IE 8/9.\n// Correct `block` display not defined for `details` or `summary` in IE 10/11\n// and Firefox.\n// Correct `block` display not defined for `main` in IE 11.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n  display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n  display: inline-block; // 1\n  vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n  display: none;\n  height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9/10.\n// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n  display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n  background-color: transparent;\n}\n\n//\n// Improve readability of focused elements when they are also in an\n// active/hover state.\n//\n\na:active,\na:hover {\n  outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// 1. Remove the bottom border in Chrome 57- and Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n//\n\nabbr[title] {\n  border-bottom: none; // 1\n  text-decoration: underline; // 2\n  text-decoration: underline dotted; // 2\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n//\n\nb,\nstrong {\n  font-weight: bold;\n}\n\n//\n// Address styling not present in Safari and Chrome.\n//\n\ndfn {\n  font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari, and Chrome.\n//\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n  background: #ff0;\n  color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n  font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\n\nsup {\n  top: -0.5em;\n}\n\nsub {\n  bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9/10.\n//\n\nimg {\n  border: 0;\n}\n\n//\n// Correct overflow not hidden in IE 9/10/11.\n//\n\nsvg:not(:root) {\n  overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari.\n//\n\nfigure {\n  margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n  overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n//    Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  color: inherit; // 1\n  font: inherit; // 2\n  margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10/11.\n//\n\nbutton {\n  overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n  text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n//    and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n//    `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  -webkit-appearance: button; // 2\n  cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n  cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  border: 0;\n  padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n  line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n  box-sizing: border-box; // 1\n  padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n//\n\ninput[type=\"search\"] {\n  -webkit-appearance: textfield; // 1\n  box-sizing: content-box; //2\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n  border: 1px solid #c0c0c0;\n  margin: 0 2px;\n  padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9/10/11.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n  border: 0; // 1\n  padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9/10/11.\n//\n\ntextarea {\n  overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n  font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\ntd,\nth {\n  padding: 0;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_pager.scss",
    "content": "//\n// Pager pagination\n// --------------------------------------------------\n\n\n.pager {\n  padding-left: 0;\n  margin: $line-height-computed 0;\n  text-align: center;\n  list-style: none;\n  @include clearfix;\n  li {\n    display: inline;\n    > a,\n    > span {\n      display: inline-block;\n      padding: 5px 14px;\n      background-color: $pager-bg;\n      border: 1px solid $pager-border;\n      border-radius: $pager-border-radius;\n    }\n\n    > a:hover,\n    > a:focus {\n      text-decoration: none;\n      background-color: $pager-hover-bg;\n    }\n  }\n\n  .next {\n    > a,\n    > span {\n      float: right;\n    }\n  }\n\n  .previous {\n    > a,\n    > span {\n      float: left;\n    }\n  }\n\n  .disabled {\n    > a,\n    > a:hover,\n    > a:focus,\n    > span {\n      color: $pager-disabled-color;\n      cursor: $cursor-disabled;\n      background-color: $pager-bg;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_pagination.scss",
    "content": "//\n// Pagination (multiple pages)\n// --------------------------------------------------\n.pagination {\n  display: inline-block;\n  padding-left: 0;\n  margin: $line-height-computed 0;\n  border-radius: $border-radius-base;\n\n  > li {\n    display: inline; // Remove list-style and block-level defaults\n    > a,\n    > span {\n      position: relative;\n      float: left; // Collapse white-space\n      padding: $padding-base-vertical $padding-base-horizontal;\n      margin-left: -1px;\n      line-height: $line-height-base;\n      color: $pagination-color;\n      text-decoration: none;\n      background-color: $pagination-bg;\n      border: 1px solid $pagination-border;\n\n      &:hover,\n      &:focus {\n        z-index: 2;\n        color: $pagination-hover-color;\n        background-color: $pagination-hover-bg;\n        border-color: $pagination-hover-border;\n      }\n    }\n    &:first-child {\n      > a,\n      > span {\n        margin-left: 0;\n        @include border-left-radius($border-radius-base);\n      }\n    }\n    &:last-child {\n      > a,\n      > span {\n        @include border-right-radius($border-radius-base);\n      }\n    }\n  }\n\n  > .active > a,\n  > .active > span {\n    &,\n    &:hover,\n    &:focus {\n      z-index: 3;\n      color: $pagination-active-color;\n      cursor: default;\n      background-color: $pagination-active-bg;\n      border-color: $pagination-active-border;\n    }\n  }\n\n  > .disabled {\n    > span,\n    > span:hover,\n    > span:focus,\n    > a,\n    > a:hover,\n    > a:focus {\n      color: $pagination-disabled-color;\n      cursor: $cursor-disabled;\n      background-color: $pagination-disabled-bg;\n      border-color: $pagination-disabled-border;\n    }\n  }\n}\n\n// Sizing\n// --------------------------------------------------\n\n// Large\n.pagination-lg {\n  @include pagination-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $border-radius-large);\n}\n\n// Small\n.pagination-sm {\n  @include pagination-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $border-radius-small);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_panels.scss",
    "content": "//\n// Panels\n// --------------------------------------------------\n\n\n// Base class\n.panel {\n  margin-bottom: $line-height-computed;\n  background-color: $panel-bg;\n  border: 1px solid transparent;\n  border-radius: $panel-border-radius;\n  @include box-shadow(0 1px 1px rgba(0, 0, 0, .05));\n}\n\n// Panel contents\n.panel-body {\n  padding: $panel-body-padding;\n  @include clearfix;\n}\n\n// Optional heading\n.panel-heading {\n  padding: $panel-heading-padding;\n  border-bottom: 1px solid transparent;\n  @include border-top-radius(($panel-border-radius - 1));\n\n  > .dropdown .dropdown-toggle {\n    color: inherit;\n  }\n}\n\n// Within heading, strip any `h*` tag of its default margins for spacing.\n.panel-title {\n  margin-top: 0;\n  margin-bottom: 0;\n  font-size: ceil(($font-size-base * 1.125));\n  color: inherit;\n\n  > a,\n  > small,\n  > .small,\n  > small > a,\n  > .small > a {\n    color: inherit;\n  }\n}\n\n// Optional footer (stays gray in every modifier class)\n.panel-footer {\n  padding: $panel-footer-padding;\n  background-color: $panel-footer-bg;\n  border-top: 1px solid $panel-inner-border;\n  @include border-bottom-radius(($panel-border-radius - 1));\n}\n\n\n// List groups in panels\n//\n// By default, space out list group content from panel headings to account for\n// any kind of custom content between the two.\n\n.panel {\n  > .list-group,\n  > .panel-collapse > .list-group {\n    margin-bottom: 0;\n\n    .list-group-item {\n      border-width: 1px 0;\n      border-radius: 0;\n    }\n\n    // Add border top radius for first one\n    &:first-child {\n      .list-group-item:first-child {\n        border-top: 0;\n        @include border-top-radius(($panel-border-radius - 1));\n      }\n    }\n\n    // Add border bottom radius for last one\n    &:last-child {\n      .list-group-item:last-child {\n        border-bottom: 0;\n        @include border-bottom-radius(($panel-border-radius - 1));\n      }\n    }\n  }\n  > .panel-heading + .panel-collapse > .list-group {\n    .list-group-item:first-child {\n      @include border-top-radius(0);\n    }\n  }\n}\n// Collapse space between when there's no additional content.\n.panel-heading + .list-group {\n  .list-group-item:first-child {\n    border-top-width: 0;\n  }\n}\n.list-group + .panel-footer {\n  border-top-width: 0;\n}\n\n// Tables in panels\n//\n// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and\n// watch it go full width.\n\n.panel {\n  > .table,\n  > .table-responsive > .table,\n  > .panel-collapse > .table {\n    margin-bottom: 0;\n\n    caption {\n      padding-right: $panel-body-padding;\n      padding-left: $panel-body-padding;\n    }\n  }\n  // Add border top radius for first one\n  > .table:first-child,\n  > .table-responsive:first-child > .table:first-child {\n    @include border-top-radius(($panel-border-radius - 1));\n\n    > thead:first-child,\n    > tbody:first-child {\n      > tr:first-child {\n        border-top-left-radius: ($panel-border-radius - 1);\n        border-top-right-radius: ($panel-border-radius - 1);\n\n        td:first-child,\n        th:first-child {\n          border-top-left-radius: ($panel-border-radius - 1);\n        }\n        td:last-child,\n        th:last-child {\n          border-top-right-radius: ($panel-border-radius - 1);\n        }\n      }\n    }\n  }\n  // Add border bottom radius for last one\n  > .table:last-child,\n  > .table-responsive:last-child > .table:last-child {\n    @include border-bottom-radius(($panel-border-radius - 1));\n\n    > tbody:last-child,\n    > tfoot:last-child {\n      > tr:last-child {\n        border-bottom-right-radius: ($panel-border-radius - 1);\n        border-bottom-left-radius: ($panel-border-radius - 1);\n\n        td:first-child,\n        th:first-child {\n          border-bottom-left-radius: ($panel-border-radius - 1);\n        }\n        td:last-child,\n        th:last-child {\n          border-bottom-right-radius: ($panel-border-radius - 1);\n        }\n      }\n    }\n  }\n  > .panel-body + .table,\n  > .panel-body + .table-responsive,\n  > .table + .panel-body,\n  > .table-responsive + .panel-body {\n    border-top: 1px solid $table-border-color;\n  }\n  > .table > tbody:first-child > tr:first-child th,\n  > .table > tbody:first-child > tr:first-child td {\n    border-top: 0;\n  }\n  > .table-bordered,\n  > .table-responsive > .table-bordered {\n    border: 0;\n    > thead,\n    > tbody,\n    > tfoot {\n      > tr {\n        > th:first-child,\n        > td:first-child {\n          border-left: 0;\n        }\n        > th:last-child,\n        > td:last-child {\n          border-right: 0;\n        }\n      }\n    }\n    > thead,\n    > tbody {\n      > tr:first-child {\n        > td,\n        > th {\n          border-bottom: 0;\n        }\n      }\n    }\n    > tbody,\n    > tfoot {\n      > tr:last-child {\n        > td,\n        > th {\n          border-bottom: 0;\n        }\n      }\n    }\n  }\n  > .table-responsive {\n    margin-bottom: 0;\n    border: 0;\n  }\n}\n\n\n// Collapsible panels (aka, accordion)\n//\n// Wrap a series of panels in `.panel-group` to turn them into an accordion with\n// the help of our collapse JavaScript plugin.\n\n.panel-group {\n  margin-bottom: $line-height-computed;\n\n  // Tighten up margin so it's only between panels\n  .panel {\n    margin-bottom: 0;\n    border-radius: $panel-border-radius;\n\n    + .panel {\n      margin-top: 5px;\n    }\n  }\n\n  .panel-heading {\n    border-bottom: 0;\n\n    + .panel-collapse > .panel-body,\n    + .panel-collapse > .list-group {\n      border-top: 1px solid $panel-inner-border;\n    }\n  }\n\n  .panel-footer {\n    border-top: 0;\n    + .panel-collapse .panel-body {\n      border-bottom: 1px solid $panel-inner-border;\n    }\n  }\n}\n\n\n// Contextual variations\n.panel-default {\n  @include panel-variant($panel-default-border, $panel-default-text, $panel-default-heading-bg, $panel-default-border);\n}\n.panel-primary {\n  @include panel-variant($panel-primary-border, $panel-primary-text, $panel-primary-heading-bg, $panel-primary-border);\n}\n.panel-success {\n  @include panel-variant($panel-success-border, $panel-success-text, $panel-success-heading-bg, $panel-success-border);\n}\n.panel-info {\n  @include panel-variant($panel-info-border, $panel-info-text, $panel-info-heading-bg, $panel-info-border);\n}\n.panel-warning {\n  @include panel-variant($panel-warning-border, $panel-warning-text, $panel-warning-heading-bg, $panel-warning-border);\n}\n.panel-danger {\n  @include panel-variant($panel-danger-border, $panel-danger-text, $panel-danger-heading-bg, $panel-danger-border);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_popovers.scss",
    "content": "//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: $zindex-popover;\n  display: none;\n  max-width: $popover-max-width;\n  padding: 1px;\n  // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  @include reset-text;\n  font-size: $font-size-base;\n  background-color: $popover-bg;\n  background-clip: padding-box;\n  border: 1px solid $popover-fallback-border-color;\n  border: 1px solid $popover-border-color;\n  border-radius: $border-radius-large;\n  @include box-shadow(0 5px 10px rgba(0, 0, 0, .2));\n\n  // Offset the popover to account for the popover arrow\n  &.top { margin-top: -$popover-arrow-width; }\n  &.right { margin-left: $popover-arrow-width; }\n  &.bottom { margin-top: $popover-arrow-width; }\n  &.left { margin-left: -$popover-arrow-width; }\n\n  // Arrows\n  // .arrow is outer, .arrow:after is inner\n  > .arrow {\n    border-width: $popover-arrow-outer-width;\n\n    &,\n    &:after {\n      position: absolute;\n      display: block;\n      width: 0;\n      height: 0;\n      border-color: transparent;\n      border-style: solid;\n    }\n\n    &:after {\n      content: \"\";\n      border-width: $popover-arrow-width;\n    }\n  }\n\n  &.top > .arrow {\n    bottom: -$popover-arrow-outer-width;\n    left: 50%;\n    margin-left: -$popover-arrow-outer-width;\n    border-top-color: $popover-arrow-outer-fallback-color; // IE8 fallback\n    border-top-color: $popover-arrow-outer-color;\n    border-bottom-width: 0;\n    &:after {\n      bottom: 1px;\n      margin-left: -$popover-arrow-width;\n      content: \" \";\n      border-top-color: $popover-arrow-color;\n      border-bottom-width: 0;\n    }\n  }\n  &.right > .arrow {\n    top: 50%;\n    left: -$popover-arrow-outer-width;\n    margin-top: -$popover-arrow-outer-width;\n    border-right-color: $popover-arrow-outer-fallback-color; // IE8 fallback\n    border-right-color: $popover-arrow-outer-color;\n    border-left-width: 0;\n    &:after {\n      bottom: -$popover-arrow-width;\n      left: 1px;\n      content: \" \";\n      border-right-color: $popover-arrow-color;\n      border-left-width: 0;\n    }\n  }\n  &.bottom > .arrow {\n    top: -$popover-arrow-outer-width;\n    left: 50%;\n    margin-left: -$popover-arrow-outer-width;\n    border-top-width: 0;\n    border-bottom-color: $popover-arrow-outer-fallback-color; // IE8 fallback\n    border-bottom-color: $popover-arrow-outer-color;\n    &:after {\n      top: 1px;\n      margin-left: -$popover-arrow-width;\n      content: \" \";\n      border-top-width: 0;\n      border-bottom-color: $popover-arrow-color;\n    }\n  }\n\n  &.left > .arrow {\n    top: 50%;\n    right: -$popover-arrow-outer-width;\n    margin-top: -$popover-arrow-outer-width;\n    border-right-width: 0;\n    border-left-color: $popover-arrow-outer-fallback-color; // IE8 fallback\n    border-left-color: $popover-arrow-outer-color;\n    &:after {\n      right: 1px;\n      bottom: -$popover-arrow-width;\n      content: \" \";\n      border-right-width: 0;\n      border-left-color: $popover-arrow-color;\n    }\n  }\n}\n\n.popover-title {\n  padding: 8px 14px;\n  margin: 0; // reset heading margin\n  font-size: $font-size-base;\n  background-color: $popover-title-bg;\n  border-bottom: 1px solid darken($popover-title-bg, 5%);\n  border-radius: ($border-radius-large - 1) ($border-radius-large - 1) 0 0;\n}\n\n.popover-content {\n  padding: 9px 14px;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_print.scss",
    "content": "/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request: h5bp.com/r\n// ==========================================================================\n\n@media print {\n  *,\n  *:before,\n  *:after {\n    color: #000 !important; // Black prints faster: h5bp.com/s\n    text-shadow: none !important;\n    background: transparent !important;\n    box-shadow: none !important;\n  }\n\n  a,\n  a:visited {\n    text-decoration: underline;\n  }\n\n  a[href]:after {\n    content: \" (\" attr(href) \")\";\n  }\n\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\";\n  }\n\n  // Don't show links that are fragment identifiers,\n  // or use the `javascript:` pseudo protocol\n  a[href^=\"#\"]:after,\n  a[href^=\"javascript:\"]:after {\n    content: \"\";\n  }\n\n  pre,\n  blockquote {\n    border: 1px solid #999;\n    page-break-inside: avoid;\n  }\n\n  thead {\n    display: table-header-group; // h5bp.com/t\n  }\n\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n\n  img {\n    max-width: 100% !important;\n  }\n\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n\n  // Bootstrap specific changes start\n\n  // Bootstrap components\n  .navbar {\n    display: none;\n  }\n  .btn,\n  .dropup > .btn {\n    > .caret {\n      border-top-color: #000 !important;\n    }\n  }\n  .label {\n    border: 1px solid #000;\n  }\n\n  .table {\n    border-collapse: collapse !important;\n\n    td,\n    th {\n      background-color: #fff !important;\n    }\n  }\n  .table-bordered {\n    th,\n    td {\n      border: 1px solid #ddd !important;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_progress-bars.scss",
    "content": "//\n// Progress bars\n// --------------------------------------------------\n\n\n// Bar animations\n// -------------------------\n\n// WebKit\n@-webkit-keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n// Spec and IE10+\n@keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n\n// Bar itself\n// -------------------------\n\n// Outer container\n.progress {\n  height: $line-height-computed;\n  margin-bottom: $line-height-computed;\n  overflow: hidden;\n  background-color: $progress-bg;\n  border-radius: $progress-border-radius;\n  @include box-shadow(inset 0 1px 2px rgba(0, 0, 0, .1));\n}\n\n// Bar of progress\n.progress-bar {\n  float: left;\n  width: 0%;\n  height: 100%;\n  font-size: $font-size-small;\n  line-height: $line-height-computed;\n  color: $progress-bar-color;\n  text-align: center;\n  background-color: $progress-bar-bg;\n  @include box-shadow(inset 0 -1px 0 rgba(0, 0, 0, .15));\n  @include transition(width .6s ease);\n}\n\n// Striped bars\n//\n// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar-striped` class, which you just add to an existing\n// `.progress-bar`.\n.progress-striped .progress-bar,\n.progress-bar-striped {\n  @include gradient-striped;\n  background-size: 40px 40px;\n}\n\n// Call animation for the active one\n//\n// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar.active` approach.\n.progress.active .progress-bar,\n.progress-bar.active {\n  @include animation(progress-bar-stripes 2s linear infinite);\n}\n\n\n// Variations\n// -------------------------\n\n.progress-bar-success {\n  @include progress-bar-variant($progress-bar-success-bg);\n}\n\n.progress-bar-info {\n  @include progress-bar-variant($progress-bar-info-bg);\n}\n\n.progress-bar-warning {\n  @include progress-bar-variant($progress-bar-warning-bg);\n}\n\n.progress-bar-danger {\n  @include progress-bar-variant($progress-bar-danger-bg);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_responsive-embed.scss",
    "content": "// Embeds responsive\n//\n// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  height: 0;\n  padding: 0;\n  overflow: hidden;\n\n  .embed-responsive-item,\n  iframe,\n  embed,\n  object,\n  video {\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    border: 0;\n  }\n}\n\n// Modifier class for 16:9 aspect ratio\n.embed-responsive-16by9 {\n  padding-bottom: 56.25%;\n}\n\n// Modifier class for 4:3 aspect ratio\n.embed-responsive-4by3 {\n  padding-bottom: 75%;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_responsive-utilities.scss",
    "content": "//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 in Windows (Phone) 8\n//\n// Support for responsive views via media queries is kind of borked in IE10, for\n// Surface/desktop in split view and for Windows Phone 8. This particular fix\n// must be accompanied by a snippet of JavaScript to sniff the user agent and\n// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at\n// our Getting Started page for more information on this bug.\n//\n// For more information, see the following:\n//\n// Issue: https://github.com/twbs/bootstrap/issues/10497\n// Docs: https://getbootstrap.com/docs/3.4/getting-started/#support-ie10-width\n// Source: https://timkadlec.com/2013/01/windows-phone-8-and-device-width/\n// Source: https://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/\n\n@at-root {\n  @-ms-viewport {\n    width: device-width;\n  }\n}\n\n\n// Visibility utilities\n// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0\n\n@include responsive-invisibility('.visible-xs');\n@include responsive-invisibility('.visible-sm');\n@include responsive-invisibility('.visible-md');\n@include responsive-invisibility('.visible-lg');\n\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n  display: none !important;\n}\n\n@media (max-width: $screen-xs-max) {\n  @include responsive-visibility('.visible-xs');\n}\n.visible-xs-block {\n  @media (max-width: $screen-xs-max) {\n    display: block !important;\n  }\n}\n.visible-xs-inline {\n  @media (max-width: $screen-xs-max) {\n    display: inline !important;\n  }\n}\n.visible-xs-inline-block {\n  @media (max-width: $screen-xs-max) {\n    display: inline-block !important;\n  }\n}\n\n@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {\n  @include responsive-visibility('.visible-sm');\n}\n.visible-sm-block {\n  @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {\n    display: block !important;\n  }\n}\n.visible-sm-inline {\n  @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {\n    display: inline !important;\n  }\n}\n.visible-sm-inline-block {\n  @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {\n    display: inline-block !important;\n  }\n}\n\n@media (min-width: $screen-md-min) and (max-width: $screen-md-max) {\n  @include responsive-visibility('.visible-md');\n}\n.visible-md-block {\n  @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {\n    display: block !important;\n  }\n}\n.visible-md-inline {\n  @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {\n    display: inline !important;\n  }\n}\n.visible-md-inline-block {\n  @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {\n    display: inline-block !important;\n  }\n}\n\n@media (min-width: $screen-lg-min) {\n  @include responsive-visibility('.visible-lg');\n}\n.visible-lg-block {\n  @media (min-width: $screen-lg-min) {\n    display: block !important;\n  }\n}\n.visible-lg-inline {\n  @media (min-width: $screen-lg-min) {\n    display: inline !important;\n  }\n}\n.visible-lg-inline-block {\n  @media (min-width: $screen-lg-min) {\n    display: inline-block !important;\n  }\n}\n\n@media (max-width: $screen-xs-max) {\n  @include responsive-invisibility('.hidden-xs');\n}\n\n@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {\n  @include responsive-invisibility('.hidden-sm');\n}\n\n@media (min-width: $screen-md-min) and (max-width: $screen-md-max) {\n  @include responsive-invisibility('.hidden-md');\n}\n\n@media (min-width: $screen-lg-min) {\n  @include responsive-invisibility('.hidden-lg');\n}\n\n\n// Print utilities\n//\n// Media queries are placed on the inside to be mixin-friendly.\n\n// Note: Deprecated .visible-print as of v3.2.0\n\n@include responsive-invisibility('.visible-print');\n\n@media print {\n  @include responsive-visibility('.visible-print');\n}\n.visible-print-block {\n  display: none !important;\n\n  @media print {\n    display: block !important;\n  }\n}\n.visible-print-inline {\n  display: none !important;\n\n  @media print {\n    display: inline !important;\n  }\n}\n.visible-print-inline-block {\n  display: none !important;\n\n  @media print {\n    display: inline-block !important;\n  }\n}\n\n@media print {\n  @include responsive-invisibility('.hidden-print');\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_scaffolding.scss",
    "content": "//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// https://getbootstrap.com/docs/3.4/getting-started/#third-box-sizing\n* {\n  @include box-sizing(border-box);\n}\n*:before,\n*:after {\n  @include box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n  font-size: 10px;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\nbody {\n  font-family: $font-family-base;\n  font-size: $font-size-base;\n  line-height: $line-height-base;\n  color: $text-color;\n  background-color: $body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\n\n// Links\n\na {\n  color: $link-color;\n  text-decoration: none;\n\n  &:hover,\n  &:focus {\n    color: $link-hover-color;\n    text-decoration: $link-hover-decoration;\n  }\n\n  &:focus {\n    @include tab-focus;\n  }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n  margin: 0;\n}\n\n\n// Images\n\nimg {\n  vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n  @include img-responsive;\n}\n\n// Rounded corners\n.img-rounded {\n  border-radius: $border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n  padding: $thumbnail-padding;\n  line-height: $line-height-base;\n  background-color: $thumbnail-bg;\n  border: 1px solid $thumbnail-border;\n  border-radius: $thumbnail-border-radius;\n  @include transition(all .2s ease-in-out);\n\n  // Keep them at most 100% wide\n  @include img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n  border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n  margin-top: $line-height-computed;\n  margin-bottom: $line-height-computed;\n  border: 0;\n  border-top: 1px solid $hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: https://a11yproject.com/posts/how-to-hide-content\n\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable {\n  &:active,\n  &:focus {\n    position: static;\n    width: auto;\n    height: auto;\n    margin: 0;\n    overflow: visible;\n    clip: auto;\n  }\n}\n\n\n// iOS \"clickable elements\" fix for role=\"button\"\n//\n// Fixes \"clickability\" issue (and more generally, the firing of events such as focus as well)\n// for traditionally non-focusable elements with role=\"button\"\n// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n[role=\"button\"] {\n  cursor: pointer;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_tables.scss",
    "content": "//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n  background-color: $table-bg;\n\n  // Table cell sizing\n  //\n  // Reset default table behavior\n\n  col[class*=\"col-\"] {\n    position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n    display: table-column;\n    float: none;\n  }\n\n  td,\n  th {\n    &[class*=\"col-\"] {\n      position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n      display: table-cell;\n      float: none;\n    }\n  }\n}\n\ncaption {\n  padding-top: $table-cell-padding;\n  padding-bottom: $table-cell-padding;\n  color: $text-muted;\n  text-align: left;\n}\n\nth {\n  text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: $line-height-computed;\n  // Cells\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        padding: $table-cell-padding;\n        line-height: $line-height-base;\n        vertical-align: top;\n        border-top: 1px solid $table-border-color;\n      }\n    }\n  }\n  // Bottom align for column headings\n  > thead > tr > th {\n    vertical-align: bottom;\n    border-bottom: 2px solid $table-border-color;\n  }\n  // Remove top border from thead by default\n  > caption + thead,\n  > colgroup + thead,\n  > thead:first-child {\n    > tr:first-child {\n      > th,\n      > td {\n        border-top: 0;\n      }\n    }\n  }\n  // Account for multiple tbody instances\n  > tbody + tbody {\n    border-top: 2px solid $table-border-color;\n  }\n\n  // Nesting\n  .table {\n    background-color: $body-bg;\n  }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        padding: $table-condensed-cell-padding;\n      }\n    }\n  }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n  border: 1px solid $table-border-color;\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        border: 1px solid $table-border-color;\n      }\n    }\n  }\n  > thead > tr {\n    > th,\n    > td {\n      border-bottom-width: 2px;\n    }\n  }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n  > tbody > tr:nth-of-type(odd) {\n    background-color: $table-bg-accent;\n  }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n  > tbody > tr:hover {\n    background-color: $table-bg-hover;\n  }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n@include table-row-variant('active', $table-bg-active);\n@include table-row-variant('success', $state-success-bg);\n@include table-row-variant('info', $state-info-bg);\n@include table-row-variant('warning', $state-warning-bg);\n@include table-row-variant('danger', $state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n.table-responsive {\n  min-height: .01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)\n  overflow-x: auto;\n\n  @media screen and (max-width: $screen-xs-max) {\n    width: 100%;\n    margin-bottom: ($line-height-computed * .75);\n    overflow-y: hidden;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n    border: 1px solid $table-border-color;\n\n    // Tighten up spacing\n    > .table {\n      margin-bottom: 0;\n\n      // Ensure the content doesn't wrap\n      > thead,\n      > tbody,\n      > tfoot {\n        > tr {\n          > th,\n          > td {\n            white-space: nowrap;\n          }\n        }\n      }\n    }\n\n    // Special overrides for the bordered tables\n    > .table-bordered {\n      border: 0;\n\n      // Nuke the appropriate borders so that the parent can handle them\n      > thead,\n      > tbody,\n      > tfoot {\n        > tr {\n          > th:first-child,\n          > td:first-child {\n            border-left: 0;\n          }\n          > th:last-child,\n          > td:last-child {\n            border-right: 0;\n          }\n        }\n      }\n\n      // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n      // chances are there will be only one `tr` in a `thead` and that would\n      // remove the border altogether.\n      > tbody,\n      > tfoot {\n        > tr:last-child {\n          > th,\n          > td {\n            border-bottom: 0;\n          }\n        }\n      }\n\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_theme.scss",
    "content": "/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables\";\n@import \"mixins\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);\n  $shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);\n  @include box-shadow($shadow);\n\n  // Reset the shadow\n  &:active,\n  &.active {\n    @include box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125));\n  }\n\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    @include box-shadow(none);\n  }\n\n  .badge {\n    text-shadow: none;\n  }\n}\n\n// Mixin for generating new styles\n@mixin btn-styles($btn-color: #555) {\n  @include gradient-vertical($start-color: $btn-color, $end-color: darken($btn-color, 12%));\n  @include reset-filter; // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n  background-repeat: repeat-x;\n  border-color: darken($btn-color, 14%);\n\n  &:hover,\n  &:focus  {\n    background-color: darken($btn-color, 12%);\n    background-position: 0 -15px;\n  }\n\n  &:active,\n  &.active {\n    background-color: darken($btn-color, 12%);\n    border-color: darken($btn-color, 14%);\n  }\n\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    &,\n    &:hover,\n    &:focus,\n    &.focus,\n    &:active,\n    &.active {\n      background-color: darken($btn-color, 12%);\n      background-image: none;\n    }\n  }\n}\n\n// Common styles\n.btn {\n  // Remove the gradient for the pressed/active state\n  &:active,\n  &.active {\n    background-image: none;\n  }\n}\n\n// Apply the mixin to the buttons\n.btn-default {\n  @include btn-styles($btn-default-bg);\n  text-shadow: 0 1px 0 #fff;\n  border-color: #ccc;\n}\n.btn-primary { @include btn-styles($btn-primary-bg); }\n.btn-success { @include btn-styles($btn-success-bg); }\n.btn-info    { @include btn-styles($btn-info-bg); }\n.btn-warning { @include btn-styles($btn-warning-bg); }\n.btn-danger  { @include btn-styles($btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n  @include box-shadow(0 1px 2px rgba(0, 0, 0, .075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n  @include gradient-vertical($start-color: $dropdown-link-hover-bg, $end-color: darken($dropdown-link-hover-bg, 5%));\n  background-color: darken($dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n  @include gradient-vertical($start-color: $dropdown-link-active-bg, $end-color: darken($dropdown-link-active-bg, 5%));\n  background-color: darken($dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n  @include gradient-vertical($start-color: lighten($navbar-default-bg, 10%), $end-color: $navbar-default-bg);\n  @include reset-filter; // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n  border-radius: $navbar-border-radius;\n  $shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);\n  @include box-shadow($shadow);\n\n  .navbar-nav > .open > a,\n  .navbar-nav > .active > a {\n    @include gradient-vertical($start-color: darken($navbar-default-link-active-bg, 5%), $end-color: darken($navbar-default-link-active-bg, 2%));\n    @include box-shadow(inset 0 3px 9px rgba(0, 0, 0, .075));\n  }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n  text-shadow: 0 1px 0 rgba(255, 255, 255, .25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n  @include gradient-vertical($start-color: lighten($navbar-inverse-bg, 10%), $end-color: $navbar-inverse-bg);\n  @include reset-filter; // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n  border-radius: $navbar-border-radius;\n  .navbar-nav > .open > a,\n  .navbar-nav > .active > a {\n    @include gradient-vertical($start-color: $navbar-inverse-link-active-bg, $end-color: lighten($navbar-inverse-link-active-bg, 2.5%));\n    @include box-shadow(inset 0 3px 9px rgba(0, 0, 0, .25));\n  }\n\n  .navbar-brand,\n  .navbar-nav > li > a {\n    text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);\n  }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: $grid-float-breakpoint-max) {\n  .navbar .navbar-nav .open .dropdown-menu > .active > a {\n    &,\n    &:hover,\n    &:focus {\n      color: #fff;\n      @include gradient-vertical($start-color: $dropdown-link-active-bg, $end-color: darken($dropdown-link-active-bg, 5%));\n    }\n  }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n  text-shadow: 0 1px 0 rgba(255, 255, 255, .2);\n  $shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);\n  @include box-shadow($shadow);\n}\n\n// Mixin for generating new styles\n@mixin alert-styles($color) {\n  @include gradient-vertical($start-color: $color, $end-color: darken($color, 7.5%));\n  border-color: darken($color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success    { @include alert-styles($alert-success-bg); }\n.alert-info       { @include alert-styles($alert-info-bg); }\n.alert-warning    { @include alert-styles($alert-warning-bg); }\n.alert-danger     { @include alert-styles($alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n  @include gradient-vertical($start-color: darken($progress-bg, 4%), $end-color: $progress-bg)\n}\n\n// Mixin for generating new styles\n@mixin progress-bar-styles($color) {\n  @include gradient-vertical($start-color: $color, $end-color: darken($color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar            { @include progress-bar-styles($progress-bar-bg); }\n.progress-bar-success    { @include progress-bar-styles($progress-bar-success-bg); }\n.progress-bar-info       { @include progress-bar-styles($progress-bar-info-bg); }\n.progress-bar-warning    { @include progress-bar-styles($progress-bar-warning-bg); }\n.progress-bar-danger     { @include progress-bar-styles($progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n  @include gradient-striped;\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n  border-radius: $border-radius-base;\n  @include box-shadow(0 1px 2px rgba(0, 0, 0, .075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n  text-shadow: 0 -1px 0 darken($list-group-active-bg, 10%);\n  @include gradient-vertical($start-color: $list-group-active-bg, $end-color: darken($list-group-active-bg, 7.5%));\n  border-color: darken($list-group-active-border, 7.5%);\n\n  .badge {\n    text-shadow: none;\n  }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n  @include box-shadow(0 1px 2px rgba(0, 0, 0, .05));\n}\n\n// Mixin for generating new styles\n@mixin panel-heading-styles($color) {\n  @include gradient-vertical($start-color: $color, $end-color: darken($color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading   { @include panel-heading-styles($panel-default-heading-bg); }\n.panel-primary > .panel-heading   { @include panel-heading-styles($panel-primary-heading-bg); }\n.panel-success > .panel-heading   { @include panel-heading-styles($panel-success-heading-bg); }\n.panel-info > .panel-heading      { @include panel-heading-styles($panel-info-heading-bg); }\n.panel-warning > .panel-heading   { @include panel-heading-styles($panel-warning-heading-bg); }\n.panel-danger > .panel-heading    { @include panel-heading-styles($panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n  @include gradient-vertical($start-color: darken($well-bg, 5%), $end-color: $well-bg);\n  border-color: darken($well-bg, 10%);\n  $shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);\n  @include box-shadow($shadow);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_thumbnails.scss",
    "content": "//\n// Thumbnails\n// --------------------------------------------------\n\n\n// Mixin and adjust the regular image class\n.thumbnail {\n  display: block;\n  padding: $thumbnail-padding;\n  margin-bottom: $line-height-computed;\n  line-height: $line-height-base;\n  background-color: $thumbnail-bg;\n  border: 1px solid $thumbnail-border;\n  border-radius: $thumbnail-border-radius;\n  @include transition(border .2s ease-in-out);\n\n  > img,\n  a > img {\n    @include img-responsive;\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  // [converter] extracted a&:hover, a&:focus, a&.active to a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active\n\n  // Image captions\n  .caption {\n    padding: $thumbnail-caption-padding;\n    color: $thumbnail-caption-color;\n  }\n}\n\n// Add a hover state for linked versions only\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n  border-color: $link-color;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_tooltip.scss",
    "content": "//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n  position: absolute;\n  z-index: $zindex-tooltip;\n  display: block;\n  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  @include reset-text;\n  font-size: $font-size-small;\n\n  @include opacity(0);\n\n  &.in { @include opacity($tooltip-opacity); }\n  &.top {\n    padding: $tooltip-arrow-width 0;\n    margin-top: -3px;\n  }\n  &.right {\n    padding: 0 $tooltip-arrow-width;\n    margin-left: 3px;\n  }\n  &.bottom {\n    padding: $tooltip-arrow-width 0;\n    margin-top: 3px;\n  }\n  &.left {\n    padding: 0 $tooltip-arrow-width;\n    margin-left: -3px;\n  }\n\n  // Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1\n  &.top .tooltip-arrow {\n    bottom: 0;\n    left: 50%;\n    margin-left: -$tooltip-arrow-width;\n    border-width: $tooltip-arrow-width $tooltip-arrow-width 0;\n    border-top-color: $tooltip-arrow-color;\n  }\n  &.top-left .tooltip-arrow {\n    right: $tooltip-arrow-width;\n    bottom: 0;\n    margin-bottom: -$tooltip-arrow-width;\n    border-width: $tooltip-arrow-width $tooltip-arrow-width 0;\n    border-top-color: $tooltip-arrow-color;\n  }\n  &.top-right .tooltip-arrow {\n    bottom: 0;\n    left: $tooltip-arrow-width;\n    margin-bottom: -$tooltip-arrow-width;\n    border-width: $tooltip-arrow-width $tooltip-arrow-width 0;\n    border-top-color: $tooltip-arrow-color;\n  }\n  &.right .tooltip-arrow {\n    top: 50%;\n    left: 0;\n    margin-top: -$tooltip-arrow-width;\n    border-width: $tooltip-arrow-width $tooltip-arrow-width $tooltip-arrow-width 0;\n    border-right-color: $tooltip-arrow-color;\n  }\n  &.left .tooltip-arrow {\n    top: 50%;\n    right: 0;\n    margin-top: -$tooltip-arrow-width;\n    border-width: $tooltip-arrow-width 0 $tooltip-arrow-width $tooltip-arrow-width;\n    border-left-color: $tooltip-arrow-color;\n  }\n  &.bottom .tooltip-arrow {\n    top: 0;\n    left: 50%;\n    margin-left: -$tooltip-arrow-width;\n    border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;\n    border-bottom-color: $tooltip-arrow-color;\n  }\n  &.bottom-left .tooltip-arrow {\n    top: 0;\n    right: $tooltip-arrow-width;\n    margin-top: -$tooltip-arrow-width;\n    border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;\n    border-bottom-color: $tooltip-arrow-color;\n  }\n  &.bottom-right .tooltip-arrow {\n    top: 0;\n    left: $tooltip-arrow-width;\n    margin-top: -$tooltip-arrow-width;\n    border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;\n    border-bottom-color: $tooltip-arrow-color;\n  }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n  max-width: $tooltip-max-width;\n  padding: 3px 8px;\n  color: $tooltip-color;\n  text-align: center;\n  background-color: $tooltip-bg;\n  border-radius: $border-radius-base;\n}\n\n// Arrows\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_type.scss",
    "content": "@use \"sass:math\";\n//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  font-family: $headings-font-family;\n  font-weight: $headings-font-weight;\n  line-height: $headings-line-height;\n  color: $headings-color;\n\n  small,\n  .small {\n    font-weight: 400;\n    line-height: 1;\n    color: $headings-small-color;\n  }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n  margin-top: $line-height-computed;\n  margin-bottom: math.div($line-height-computed, 2);\n\n  small,\n  .small {\n    font-size: 65%;\n  }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  margin-top: math.div($line-height-computed, 2);\n  margin-bottom: math.div($line-height-computed, 2);\n\n  small,\n  .small {\n    font-size: 75%;\n  }\n}\n\nh1, .h1 { font-size: $font-size-h1; }\nh2, .h2 { font-size: $font-size-h2; }\nh3, .h3 { font-size: $font-size-h3; }\nh4, .h4 { font-size: $font-size-h4; }\nh5, .h5 { font-size: $font-size-h5; }\nh6, .h6 { font-size: $font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n  margin: 0 0 math.div($line-height-computed, 2);\n}\n\n.lead {\n  margin-bottom: $line-height-computed;\n  font-size: floor(($font-size-base * 1.15));\n  font-weight: 300;\n  line-height: 1.4;\n\n  @media (min-width: $screen-sm-min) {\n    font-size: ($font-size-base * 1.5);\n  }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: math.div(12px small font, 14px base font) * 100% = about 85%\nsmall,\n.small {\n  font-size: floor(math.div(100% * $font-size-small, $font-size-base));\n}\n\nmark,\n.mark {\n  padding: .2em;\n  background-color: $state-warning-bg;\n}\n\n// Alignment\n.text-left           { text-align: left; }\n.text-right          { text-align: right; }\n.text-center         { text-align: center; }\n.text-justify        { text-align: justify; }\n.text-nowrap         { white-space: nowrap; }\n\n// Transformation\n.text-lowercase      { text-transform: lowercase; }\n.text-uppercase      { text-transform: uppercase; }\n.text-capitalize     { text-transform: capitalize; }\n\n// Contextual colors\n.text-muted {\n  color: $text-muted;\n}\n\n@include text-emphasis-variant('.text-primary', $brand-primary);\n\n@include text-emphasis-variant('.text-success', $state-success-text);\n\n@include text-emphasis-variant('.text-info', $state-info-text);\n\n@include text-emphasis-variant('.text-warning', $state-warning-text);\n\n@include text-emphasis-variant('.text-danger', $state-danger-text);\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n  // Given the contrast here, this is the only class to have its color inverted\n  // automatically.\n  color: #fff;\n}\n@include bg-variant('.bg-primary', $brand-primary);\n\n@include bg-variant('.bg-success', $state-success-bg);\n\n@include bg-variant('.bg-info', $state-info-bg);\n\n@include bg-variant('.bg-warning', $state-warning-bg);\n\n@include bg-variant('.bg-danger', $state-danger-bg);\n\n\n// Page header\n// -------------------------\n\n.page-header {\n  padding-bottom: (math.div($line-height-computed, 2) - 1);\n  margin: ($line-height-computed * 2) 0 $line-height-computed;\n  border-bottom: 1px solid $page-header-border-color;\n}\n\n\n// Lists\n// -------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n  margin-top: 0;\n  margin-bottom: math.div($line-height-computed, 2);\n  ul,\n  ol {\n    margin-bottom: 0;\n  }\n}\n\n// List options\n\n// [converter] extracted from `.list-unstyled` for libsass compatibility\n@mixin list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n// [converter] extracted as `@mixin list-unstyled` for libsass compatibility\n.list-unstyled {\n  @include list-unstyled;\n}\n\n\n// Inline turns list items into inline-block\n.list-inline {\n  @include list-unstyled;\n  margin-left: -5px;\n\n  > li {\n    display: inline-block;\n    padding-right: 5px;\n    padding-left: 5px;\n  }\n}\n\n// Description Lists\ndl {\n  margin-top: 0; // Remove browser default\n  margin-bottom: $line-height-computed;\n}\ndt,\ndd {\n  line-height: $line-height-base;\n}\ndt {\n  font-weight: 700;\n}\ndd {\n  margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n.dl-horizontal {\n  dd {\n    @include clearfix; // Clear the floated `dt` if an empty `dd` is present\n  }\n\n  @media (min-width: $dl-horizontal-breakpoint) {\n    dt {\n      float: left;\n      width: ($dl-horizontal-offset - 20);\n      clear: left;\n      text-align: right;\n      @include text-overflow;\n    }\n    dd {\n      margin-left: $dl-horizontal-offset;\n    }\n  }\n}\n\n\n// Misc\n// -------------------------\n\n// Abbreviations and acronyms\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[title],\nabbr[data-original-title] {\n  cursor: help;\n}\n\n.initialism {\n  font-size: 90%;\n  @extend .text-uppercase;\n}\n\n// Blockquotes\nblockquote {\n  padding: math.div($line-height-computed, 2) $line-height-computed;\n  margin: 0 0 $line-height-computed;\n  font-size: $blockquote-font-size;\n  border-left: 5px solid $blockquote-border-color;\n\n  p,\n  ul,\n  ol {\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Note: Deprecated small and .small as of v3.1.0\n  // Context: https://github.com/twbs/bootstrap/issues/11660\n  footer,\n  small,\n  .small {\n    display: block;\n    font-size: 80%; // back to default font-size\n    line-height: $line-height-base;\n    color: $blockquote-small-color;\n\n    &:before {\n      content: \"\\2014 \\00A0\"; // em dash, nbsp\n    }\n  }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n  padding-right: 15px;\n  padding-left: 0;\n  text-align: right;\n  border-right: 5px solid $blockquote-border-color;\n  border-left: 0;\n\n  // Account for citation\n  footer,\n  small,\n  .small {\n    &:before { content: \"\"; }\n    &:after {\n      content: \"\\00A0 \\2014\"; // nbsp, em dash\n    }\n  }\n}\n\n// Addresses\naddress {\n  margin-bottom: $line-height-computed;\n  font-style: normal;\n  line-height: $line-height-base;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_utilities.scss",
    "content": "//\n// Utility classes\n// --------------------------------------------------\n\n\n// Floats\n// -------------------------\n\n.clearfix {\n  @include clearfix;\n}\n.center-block {\n  @include center-block;\n}\n.pull-right {\n  float: right !important;\n}\n.pull-left {\n  float: left !important;\n}\n\n\n// Toggling content\n// -------------------------\n\n// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1\n.hide {\n  display: none !important;\n}\n.show {\n  display: block !important;\n}\n.invisible {\n  visibility: hidden;\n}\n.text-hide {\n  @include text-hide;\n}\n\n\n// Hide from screenreaders and browsers\n//\n// Credit: HTML5 Boilerplate\n\n.hidden {\n  display: none !important;\n}\n\n\n// For Affix plugin\n// -------------------------\n\n.affix {\n  position: fixed;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_variables.scss",
    "content": "$bootstrap-sass-asset-helper: false !default;\n@use \"sass:math\";\n//\n// Variables\n// --------------------------------------------------\n\n\n//== Colors\n//\n//## Gray and brand colors for use across Bootstrap.\n\n$gray-base:              #000 !default;\n$gray-darker:            lighten($gray-base, 13.5%) !default; // #222\n$gray-dark:              lighten($gray-base, 20%) !default;   // #333\n$gray:                   lighten($gray-base, 33.5%) !default; // #555\n$gray-light:             lighten($gray-base, 46.7%) !default; // #777\n$gray-lighter:           lighten($gray-base, 93.5%) !default; // #eee\n\n$brand-primary:         darken(#428bca, 6.5%) !default; // #337ab7\n$brand-success:         #5cb85c !default;\n$brand-info:            #5bc0de !default;\n$brand-warning:         #f0ad4e !default;\n$brand-danger:          #d9534f !default;\n\n\n//== Scaffolding\n//\n//## Settings for some of the most global styles.\n\n//** Background color for `<body>`.\n$body-bg:               #fff !default;\n//** Global text color on `<body>`.\n$text-color:            $gray-dark !default;\n\n//** Global textual link color.\n$link-color:            $brand-primary !default;\n//** Link hover color set via `darken()` function.\n$link-hover-color:      darken($link-color, 15%) !default;\n//** Link hover decoration.\n$link-hover-decoration: underline !default;\n\n\n//== Typography\n//\n//## Font, line-height, and color for body text, headings, and more.\n\n$font-family-sans-serif:  \"Helvetica Neue\", Helvetica, Arial, sans-serif !default;\n$font-family-serif:       Georgia, \"Times New Roman\", Times, serif !default;\n//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.\n$font-family-monospace:   Menlo, Monaco, Consolas, \"Courier New\", monospace !default;\n$font-family-base:        $font-family-sans-serif !default;\n\n$font-size-base:          14px !default;\n$font-size-large:         ceil(($font-size-base * 1.25)) !default; // ~18px\n$font-size-small:         ceil(($font-size-base * .85)) !default; // ~12px\n\n$font-size-h1:            floor(($font-size-base * 2.6)) !default; // ~36px\n$font-size-h2:            floor(($font-size-base * 2.15)) !default; // ~30px\n$font-size-h3:            ceil(($font-size-base * 1.7)) !default; // ~24px\n$font-size-h4:            ceil(($font-size-base * 1.25)) !default; // ~18px\n$font-size-h5:            $font-size-base !default;\n$font-size-h6:            ceil(($font-size-base * .85)) !default; // ~12px\n\n//** Unit-less `line-height` for use in components like buttons.\n$line-height-base:        1.428571429 !default; // 20/14\n//** Computed \"line-height\" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.\n$line-height-computed:    floor(($font-size-base * $line-height-base)) !default; // ~20px\n\n//** By default, this inherits from the `<body>`.\n$headings-font-family:    inherit !default;\n$headings-font-weight:    500 !default;\n$headings-line-height:    1.1 !default;\n$headings-color:          inherit !default;\n\n\n//== Iconography\n//\n//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.\n\n//** Load fonts from this directory.\n\n// [converter] If $bootstrap-sass-asset-helper if used, provide path relative to the assets load path.\n// [converter] This is because some asset helpers, such as Sprockets, do not work with file-relative paths.\n$icon-font-path: if($bootstrap-sass-asset-helper, \"bootstrap/\", \"../fonts/bootstrap/\") !default;\n\n//** File name for all font files.\n$icon-font-name:          \"glyphicons-halflings-regular\" !default;\n//** Element ID within SVG icon file.\n$icon-font-svg-id:        \"glyphicons_halflingsregular\" !default;\n\n\n//== Components\n//\n//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).\n\n$padding-base-vertical:     6px !default;\n$padding-base-horizontal:   12px !default;\n\n$padding-large-vertical:    10px !default;\n$padding-large-horizontal:  16px !default;\n\n$padding-small-vertical:    5px !default;\n$padding-small-horizontal:  10px !default;\n\n$padding-xs-vertical:       1px !default;\n$padding-xs-horizontal:     5px !default;\n\n$line-height-large:         1.3333333 !default; // extra decimals for Win 8.1 Chrome\n$line-height-small:         1.5 !default;\n\n$border-radius-base:        4px !default;\n$border-radius-large:       6px !default;\n$border-radius-small:       3px !default;\n\n//** Global color for active items (e.g., navs or dropdowns).\n$component-active-color:    #fff !default;\n//** Global background color for active items (e.g., navs or dropdowns).\n$component-active-bg:       $brand-primary !default;\n\n//** Width of the `border` for generating carets that indicate dropdowns.\n$caret-width-base:          4px !default;\n//** Carets increase slightly in size for larger components.\n$caret-width-large:         5px !default;\n\n\n//== Tables\n//\n//## Customizes the `.table` component with basic values, each used across all table variations.\n\n//** Padding for `<th>`s and `<td>`s.\n$table-cell-padding:            8px !default;\n//** Padding for cells in `.table-condensed`.\n$table-condensed-cell-padding:  5px !default;\n\n//** Default background color used for all tables.\n$table-bg:                      transparent !default;\n//** Background color used for `.table-striped`.\n$table-bg-accent:               #f9f9f9 !default;\n//** Background color used for `.table-hover`.\n$table-bg-hover:                #f5f5f5 !default;\n$table-bg-active:               $table-bg-hover !default;\n\n//** Border color for table and cell borders.\n$table-border-color:            #ddd !default;\n\n\n//== Buttons\n//\n//## For each of Bootstrap's buttons, define text, background and border color.\n\n$btn-font-weight:                normal !default;\n\n$btn-default-color:              #333 !default;\n$btn-default-bg:                 #fff !default;\n$btn-default-border:             #ccc !default;\n\n$btn-primary-color:              #fff !default;\n$btn-primary-bg:                 $brand-primary !default;\n$btn-primary-border:             darken($btn-primary-bg, 5%) !default;\n\n$btn-success-color:              #fff !default;\n$btn-success-bg:                 $brand-success !default;\n$btn-success-border:             darken($btn-success-bg, 5%) !default;\n\n$btn-info-color:                 #fff !default;\n$btn-info-bg:                    $brand-info !default;\n$btn-info-border:                darken($btn-info-bg, 5%) !default;\n\n$btn-warning-color:              #fff !default;\n$btn-warning-bg:                 $brand-warning !default;\n$btn-warning-border:             darken($btn-warning-bg, 5%) !default;\n\n$btn-danger-color:               #fff !default;\n$btn-danger-bg:                  $brand-danger !default;\n$btn-danger-border:              darken($btn-danger-bg, 5%) !default;\n\n$btn-link-disabled-color:        $gray-light !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius-base:         $border-radius-base !default;\n$btn-border-radius-large:        $border-radius-large !default;\n$btn-border-radius-small:        $border-radius-small !default;\n\n\n//== Forms\n//\n//##\n\n//** `<input>` background color\n$input-bg:                       #fff !default;\n//** `<input disabled>` background color\n$input-bg-disabled:              $gray-lighter !default;\n\n//** Text color for `<input>`s\n$input-color:                    $gray !default;\n//** `<input>` border color\n$input-border:                   #ccc !default;\n\n// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4\n//** Default `.form-control` border radius\n// This has no effect on `<select>`s in some browsers, due to the limited stylability of `<select>`s in CSS.\n$input-border-radius:            $border-radius-base !default;\n//** Large `.form-control` border radius\n$input-border-radius-large:      $border-radius-large !default;\n//** Small `.form-control` border radius\n$input-border-radius-small:      $border-radius-small !default;\n\n//** Border color for inputs on focus\n$input-border-focus:             #66afe9 !default;\n\n//** Placeholder text color\n$input-color-placeholder:        #999 !default;\n\n//** Default `.form-control` height\n$input-height-base:              ($line-height-computed + ($padding-base-vertical * 2) + 2) !default;\n//** Large `.form-control` height\n$input-height-large:             (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default;\n//** Small `.form-control` height\n$input-height-small:             (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default;\n\n//** `.form-group` margin\n$form-group-margin-bottom:       15px !default;\n\n$legend-color:                   $gray-dark !default;\n$legend-border-color:            #e5e5e5 !default;\n\n//** Background color for textual input addons\n$input-group-addon-bg:           $gray-lighter !default;\n//** Border color for textual input addons\n$input-group-addon-border-color: $input-border !default;\n\n//** Disabled cursor for form controls and buttons.\n$cursor-disabled:                not-allowed !default;\n\n\n//== Dropdowns\n//\n//## Dropdown menu container and contents.\n\n//** Background for the dropdown menu.\n$dropdown-bg:                    #fff !default;\n//** Dropdown menu `border-color`.\n$dropdown-border:                rgba(0, 0, 0, .15) !default;\n//** Dropdown menu `border-color` **for IE8**.\n$dropdown-fallback-border:       #ccc !default;\n//** Divider color for between dropdown items.\n$dropdown-divider-bg:            #e5e5e5 !default;\n\n//** Dropdown link text color.\n$dropdown-link-color:            $gray-dark !default;\n//** Hover color for dropdown links.\n$dropdown-link-hover-color:      darken($gray-dark, 5%) !default;\n//** Hover background for dropdown links.\n$dropdown-link-hover-bg:         #f5f5f5 !default;\n\n//** Active dropdown menu item text color.\n$dropdown-link-active-color:     $component-active-color !default;\n//** Active dropdown menu item background color.\n$dropdown-link-active-bg:        $component-active-bg !default;\n\n//** Disabled dropdown menu item background color.\n$dropdown-link-disabled-color:   $gray-light !default;\n\n//** Text color for headers within dropdown menus.\n$dropdown-header-color:          $gray-light !default;\n\n//** Deprecated `$dropdown-caret-color` as of v3.1.0\n$dropdown-caret-color:           #000 !default;\n\n\n//-- Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n//\n// Note: These variables are not generated into the Customizer.\n\n$zindex-navbar:            1000 !default;\n$zindex-dropdown:          1000 !default;\n$zindex-popover:           1060 !default;\n$zindex-tooltip:           1070 !default;\n$zindex-navbar-fixed:      1030 !default;\n$zindex-modal-background:  1040 !default;\n$zindex-modal:             1050 !default;\n\n\n//== Media queries breakpoints\n//\n//## Define the breakpoints at which your layout will change, adapting to different screen sizes.\n\n// Extra small screen / phone\n//** Deprecated `$screen-xs` as of v3.0.1\n$screen-xs:                  480px !default;\n//** Deprecated `$screen-xs-min` as of v3.2.0\n$screen-xs-min:              $screen-xs !default;\n//** Deprecated `$screen-phone` as of v3.0.1\n$screen-phone:               $screen-xs-min !default;\n\n// Small screen / tablet\n//** Deprecated `$screen-sm` as of v3.0.1\n$screen-sm:                  768px !default;\n$screen-sm-min:              $screen-sm !default;\n//** Deprecated `$screen-tablet` as of v3.0.1\n$screen-tablet:              $screen-sm-min !default;\n\n// Medium screen / desktop\n//** Deprecated `$screen-md` as of v3.0.1\n$screen-md:                  992px !default;\n$screen-md-min:              $screen-md !default;\n//** Deprecated `$screen-desktop` as of v3.0.1\n$screen-desktop:             $screen-md-min !default;\n\n// Large screen / wide desktop\n//** Deprecated `$screen-lg` as of v3.0.1\n$screen-lg:                  1200px !default;\n$screen-lg-min:              $screen-lg !default;\n//** Deprecated `$screen-lg-desktop` as of v3.0.1\n$screen-lg-desktop:          $screen-lg-min !default;\n\n// So media queries don't overlap when required, provide a maximum\n$screen-xs-max:              ($screen-sm-min - 1) !default;\n$screen-sm-max:              ($screen-md-min - 1) !default;\n$screen-md-max:              ($screen-lg-min - 1) !default;\n\n\n//== Grid system\n//\n//## Define your custom responsive grid.\n\n//** Number of columns in the grid.\n$grid-columns:              12 !default;\n//** Padding between columns. Gets divided in half for the left and right.\n$grid-gutter-width:         30px !default;\n// Navbar collapse\n//** Point at which the navbar becomes uncollapsed.\n$grid-float-breakpoint:     $screen-sm-min !default;\n//** Point at which the navbar begins collapsing.\n$grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default;\n\n\n//== Container sizes\n//\n//## Define the maximum width of `.container` for different screen sizes.\n\n// Small screen / tablet\n$container-tablet:             (720px + $grid-gutter-width) !default;\n//** For `$screen-sm-min` and up.\n$container-sm:                 $container-tablet !default;\n\n// Medium screen / desktop\n$container-desktop:            (940px + $grid-gutter-width) !default;\n//** For `$screen-md-min` and up.\n$container-md:                 $container-desktop !default;\n\n// Large screen / wide desktop\n$container-large-desktop:      (1140px + $grid-gutter-width) !default;\n//** For `$screen-lg-min` and up.\n$container-lg:                 $container-large-desktop !default;\n\n\n//== Navbar\n//\n//##\n\n// Basics of a navbar\n$navbar-height:                    50px !default;\n$navbar-margin-bottom:             $line-height-computed !default;\n$navbar-border-radius:             $border-radius-base !default;\n$navbar-padding-horizontal:        floor(math.div($grid-gutter-width, 2)) !default;\n$navbar-padding-vertical:          math.div(($navbar-height - $line-height-computed), 2) !default;\n$navbar-collapse-max-height:       340px !default;\n\n$navbar-default-color:             #777 !default;\n$navbar-default-bg:                #f8f8f8 !default;\n$navbar-default-border:            darken($navbar-default-bg, 6.5%) !default;\n\n// Navbar links\n$navbar-default-link-color:                #777 !default;\n$navbar-default-link-hover-color:          #333 !default;\n$navbar-default-link-hover-bg:             transparent !default;\n$navbar-default-link-active-color:         #555 !default;\n$navbar-default-link-active-bg:            darken($navbar-default-bg, 6.5%) !default;\n$navbar-default-link-disabled-color:       #ccc !default;\n$navbar-default-link-disabled-bg:          transparent !default;\n\n// Navbar brand label\n$navbar-default-brand-color:               $navbar-default-link-color !default;\n$navbar-default-brand-hover-color:         darken($navbar-default-brand-color, 10%) !default;\n$navbar-default-brand-hover-bg:            transparent !default;\n\n// Navbar toggle\n$navbar-default-toggle-hover-bg:           #ddd !default;\n$navbar-default-toggle-icon-bar-bg:        #888 !default;\n$navbar-default-toggle-border-color:       #ddd !default;\n\n\n//=== Inverted navbar\n// Reset inverted navbar basics\n$navbar-inverse-color:                      lighten($gray-light, 15%) !default;\n$navbar-inverse-bg:                         #222 !default;\n$navbar-inverse-border:                     darken($navbar-inverse-bg, 10%) !default;\n\n// Inverted navbar links\n$navbar-inverse-link-color:                 lighten($gray-light, 15%) !default;\n$navbar-inverse-link-hover-color:           #fff !default;\n$navbar-inverse-link-hover-bg:              transparent !default;\n$navbar-inverse-link-active-color:          $navbar-inverse-link-hover-color !default;\n$navbar-inverse-link-active-bg:             darken($navbar-inverse-bg, 10%) !default;\n$navbar-inverse-link-disabled-color:        #444 !default;\n$navbar-inverse-link-disabled-bg:           transparent !default;\n\n// Inverted navbar brand label\n$navbar-inverse-brand-color:                $navbar-inverse-link-color !default;\n$navbar-inverse-brand-hover-color:          #fff !default;\n$navbar-inverse-brand-hover-bg:             transparent !default;\n\n// Inverted navbar toggle\n$navbar-inverse-toggle-hover-bg:            #333 !default;\n$navbar-inverse-toggle-icon-bar-bg:         #fff !default;\n$navbar-inverse-toggle-border-color:        #333 !default;\n\n\n//== Navs\n//\n//##\n\n//=== Shared nav styles\n$nav-link-padding:                          10px 15px !default;\n$nav-link-hover-bg:                         $gray-lighter !default;\n\n$nav-disabled-link-color:                   $gray-light !default;\n$nav-disabled-link-hover-color:             $gray-light !default;\n\n//== Tabs\n$nav-tabs-border-color:                     #ddd !default;\n\n$nav-tabs-link-hover-border-color:          $gray-lighter !default;\n\n$nav-tabs-active-link-hover-bg:             $body-bg !default;\n$nav-tabs-active-link-hover-color:          $gray !default;\n$nav-tabs-active-link-hover-border-color:   #ddd !default;\n\n$nav-tabs-justified-link-border-color:            #ddd !default;\n$nav-tabs-justified-active-link-border-color:     $body-bg !default;\n\n//== Pills\n$nav-pills-border-radius:                   $border-radius-base !default;\n$nav-pills-active-link-hover-bg:            $component-active-bg !default;\n$nav-pills-active-link-hover-color:         $component-active-color !default;\n\n\n//== Pagination\n//\n//##\n\n$pagination-color:                     $link-color !default;\n$pagination-bg:                        #fff !default;\n$pagination-border:                    #ddd !default;\n\n$pagination-hover-color:               $link-hover-color !default;\n$pagination-hover-bg:                  $gray-lighter !default;\n$pagination-hover-border:              #ddd !default;\n\n$pagination-active-color:              #fff !default;\n$pagination-active-bg:                 $brand-primary !default;\n$pagination-active-border:             $brand-primary !default;\n\n$pagination-disabled-color:            $gray-light !default;\n$pagination-disabled-bg:               #fff !default;\n$pagination-disabled-border:           #ddd !default;\n\n\n//== Pager\n//\n//##\n\n$pager-bg:                             $pagination-bg !default;\n$pager-border:                         $pagination-border !default;\n$pager-border-radius:                  15px !default;\n\n$pager-hover-bg:                       $pagination-hover-bg !default;\n\n$pager-active-bg:                      $pagination-active-bg !default;\n$pager-active-color:                   $pagination-active-color !default;\n\n$pager-disabled-color:                 $pagination-disabled-color !default;\n\n\n//== Jumbotron\n//\n//##\n\n$jumbotron-padding:              30px !default;\n$jumbotron-color:                inherit !default;\n$jumbotron-bg:                   $gray-lighter !default;\n$jumbotron-heading-color:        inherit !default;\n$jumbotron-font-size:            ceil(($font-size-base * 1.5)) !default;\n$jumbotron-heading-font-size:    ceil(($font-size-base * 4.5)) !default;\n\n\n//== Form states and alerts\n//\n//## Define colors for form feedback states and, by default, alerts.\n\n$state-success-text:             #3c763d !default;\n$state-success-bg:               #dff0d8 !default;\n$state-success-border:           darken(adjust-hue($state-success-bg, -10), 5%) !default;\n\n$state-info-text:                #31708f !default;\n$state-info-bg:                  #d9edf7 !default;\n$state-info-border:              darken(adjust-hue($state-info-bg, -10), 7%) !default;\n\n$state-warning-text:             #8a6d3b !default;\n$state-warning-bg:               #fcf8e3 !default;\n$state-warning-border:           darken(adjust-hue($state-warning-bg, -10), 5%) !default;\n\n$state-danger-text:              #a94442 !default;\n$state-danger-bg:                #f2dede !default;\n$state-danger-border:            darken(adjust-hue($state-danger-bg, -10), 5%) !default;\n\n\n//== Tooltips\n//\n//##\n\n//** Tooltip max width\n$tooltip-max-width:           200px !default;\n//** Tooltip text color\n$tooltip-color:               #fff !default;\n//** Tooltip background color\n$tooltip-bg:                  #000 !default;\n$tooltip-opacity:             .9 !default;\n\n//** Tooltip arrow width\n$tooltip-arrow-width:         5px !default;\n//** Tooltip arrow color\n$tooltip-arrow-color:         $tooltip-bg !default;\n\n\n//== Popovers\n//\n//##\n\n//** Popover body background color\n$popover-bg:                          #fff !default;\n//** Popover maximum width\n$popover-max-width:                   276px !default;\n//** Popover border color\n$popover-border-color:                rgba(0, 0, 0, .2) !default;\n//** Popover fallback border color\n$popover-fallback-border-color:       #ccc !default;\n\n//** Popover title background color\n$popover-title-bg:                    darken($popover-bg, 3%) !default;\n\n//** Popover arrow width\n$popover-arrow-width:                 10px !default;\n//** Popover arrow color\n$popover-arrow-color:                 $popover-bg !default;\n\n//** Popover outer arrow width\n$popover-arrow-outer-width:           ($popover-arrow-width + 1) !default;\n//** Popover outer arrow color\n$popover-arrow-outer-color:           fade_in($popover-border-color, 0.05) !default;\n//** Popover outer arrow fallback color\n$popover-arrow-outer-fallback-color:  darken($popover-fallback-border-color, 20%) !default;\n\n\n//== Labels\n//\n//##\n\n//** Default label background color\n$label-default-bg:            $gray-light !default;\n//** Primary label background color\n$label-primary-bg:            $brand-primary !default;\n//** Success label background color\n$label-success-bg:            $brand-success !default;\n//** Info label background color\n$label-info-bg:               $brand-info !default;\n//** Warning label background color\n$label-warning-bg:            $brand-warning !default;\n//** Danger label background color\n$label-danger-bg:             $brand-danger !default;\n\n//** Default label text color\n$label-color:                 #fff !default;\n//** Default text color of a linked label\n$label-link-hover-color:      #fff !default;\n\n\n//== Modals\n//\n//##\n\n//** Padding applied to the modal body\n$modal-inner-padding:         15px !default;\n\n//** Padding applied to the modal title\n$modal-title-padding:         15px !default;\n//** Modal title line-height\n$modal-title-line-height:     $line-height-base !default;\n\n//** Background color of modal content area\n$modal-content-bg:                             #fff !default;\n//** Modal content border color\n$modal-content-border-color:                   rgba(0, 0, 0, .2) !default;\n//** Modal content border color **for IE8**\n$modal-content-fallback-border-color:          #999 !default;\n\n//** Modal backdrop background color\n$modal-backdrop-bg:           #000 !default;\n//** Modal backdrop opacity\n$modal-backdrop-opacity:      .5 !default;\n//** Modal header border color\n$modal-header-border-color:   #e5e5e5 !default;\n//** Modal footer border color\n$modal-footer-border-color:   $modal-header-border-color !default;\n\n$modal-lg:                    900px !default;\n$modal-md:                    600px !default;\n$modal-sm:                    300px !default;\n\n\n//== Alerts\n//\n//## Define alert colors, border radius, and padding.\n\n$alert-padding:               15px !default;\n$alert-border-radius:         $border-radius-base !default;\n$alert-link-font-weight:      bold !default;\n\n$alert-success-bg:            $state-success-bg !default;\n$alert-success-text:          $state-success-text !default;\n$alert-success-border:        $state-success-border !default;\n\n$alert-info-bg:               $state-info-bg !default;\n$alert-info-text:             $state-info-text !default;\n$alert-info-border:           $state-info-border !default;\n\n$alert-warning-bg:            $state-warning-bg !default;\n$alert-warning-text:          $state-warning-text !default;\n$alert-warning-border:        $state-warning-border !default;\n\n$alert-danger-bg:             $state-danger-bg !default;\n$alert-danger-text:           $state-danger-text !default;\n$alert-danger-border:         $state-danger-border !default;\n\n\n//== Progress bars\n//\n//##\n\n//** Background color of the whole progress component\n$progress-bg:                 #f5f5f5 !default;\n//** Progress bar text color\n$progress-bar-color:          #fff !default;\n//** Variable for setting rounded corners on progress bar.\n$progress-border-radius:      $border-radius-base !default;\n\n//** Default progress bar color\n$progress-bar-bg:             $brand-primary !default;\n//** Success progress bar color\n$progress-bar-success-bg:     $brand-success !default;\n//** Warning progress bar color\n$progress-bar-warning-bg:     $brand-warning !default;\n//** Danger progress bar color\n$progress-bar-danger-bg:      $brand-danger !default;\n//** Info progress bar color\n$progress-bar-info-bg:        $brand-info !default;\n\n\n//== List group\n//\n//##\n\n//** Background color on `.list-group-item`\n$list-group-bg:                 #fff !default;\n//** `.list-group-item` border color\n$list-group-border:             #ddd !default;\n//** List group border radius\n$list-group-border-radius:      $border-radius-base !default;\n\n//** Background color of single list items on hover\n$list-group-hover-bg:           #f5f5f5 !default;\n//** Text color of active list items\n$list-group-active-color:       $component-active-color !default;\n//** Background color of active list items\n$list-group-active-bg:          $component-active-bg !default;\n//** Border color of active list elements\n$list-group-active-border:      $list-group-active-bg !default;\n//** Text color for content within active list items\n$list-group-active-text-color:  lighten($list-group-active-bg, 40%) !default;\n\n//** Text color of disabled list items\n$list-group-disabled-color:      $gray-light !default;\n//** Background color of disabled list items\n$list-group-disabled-bg:         $gray-lighter !default;\n//** Text color for content within disabled list items\n$list-group-disabled-text-color: $list-group-disabled-color !default;\n\n$list-group-link-color:         #555 !default;\n$list-group-link-hover-color:   $list-group-link-color !default;\n$list-group-link-heading-color: #333 !default;\n\n\n//== Panels\n//\n//##\n\n$panel-bg:                    #fff !default;\n$panel-body-padding:          15px !default;\n$panel-heading-padding:       10px 15px !default;\n$panel-footer-padding:        $panel-heading-padding !default;\n$panel-border-radius:         $border-radius-base !default;\n\n//** Border color for elements within panels\n$panel-inner-border:          #ddd !default;\n$panel-footer-bg:             #f5f5f5 !default;\n\n$panel-default-text:          $gray-dark !default;\n$panel-default-border:        #ddd !default;\n$panel-default-heading-bg:    #f5f5f5 !default;\n\n$panel-primary-text:          #fff !default;\n$panel-primary-border:        $brand-primary !default;\n$panel-primary-heading-bg:    $brand-primary !default;\n\n$panel-success-text:          $state-success-text !default;\n$panel-success-border:        $state-success-border !default;\n$panel-success-heading-bg:    $state-success-bg !default;\n\n$panel-info-text:             $state-info-text !default;\n$panel-info-border:           $state-info-border !default;\n$panel-info-heading-bg:       $state-info-bg !default;\n\n$panel-warning-text:          $state-warning-text !default;\n$panel-warning-border:        $state-warning-border !default;\n$panel-warning-heading-bg:    $state-warning-bg !default;\n\n$panel-danger-text:           $state-danger-text !default;\n$panel-danger-border:         $state-danger-border !default;\n$panel-danger-heading-bg:     $state-danger-bg !default;\n\n\n//== Thumbnails\n//\n//##\n\n//** Padding around the thumbnail image\n$thumbnail-padding:           4px !default;\n//** Thumbnail background color\n$thumbnail-bg:                $body-bg !default;\n//** Thumbnail border color\n$thumbnail-border:            #ddd !default;\n//** Thumbnail border radius\n$thumbnail-border-radius:     $border-radius-base !default;\n\n//** Custom text color for thumbnail captions\n$thumbnail-caption-color:     $text-color !default;\n//** Padding around the thumbnail caption\n$thumbnail-caption-padding:   9px !default;\n\n\n//== Wells\n//\n//##\n\n$well-bg:                     #f5f5f5 !default;\n$well-border:                 darken($well-bg, 7%) !default;\n\n\n//== Badges\n//\n//##\n\n$badge-color:                 #fff !default;\n//** Linked badge text color on hover\n$badge-link-hover-color:      #fff !default;\n$badge-bg:                    $gray-light !default;\n\n//** Badge text color in active nav link\n$badge-active-color:          $link-color !default;\n//** Badge background color in active nav link\n$badge-active-bg:             #fff !default;\n\n$badge-font-weight:           bold !default;\n$badge-line-height:           1 !default;\n$badge-border-radius:         10px !default;\n\n\n//== Breadcrumbs\n//\n//##\n\n$breadcrumb-padding-vertical:   8px !default;\n$breadcrumb-padding-horizontal: 15px !default;\n//** Breadcrumb background color\n$breadcrumb-bg:                 #f5f5f5 !default;\n//** Breadcrumb text color\n$breadcrumb-color:              #ccc !default;\n//** Text color of current page in the breadcrumb\n$breadcrumb-active-color:       $gray-light !default;\n//** Textual separator for between breadcrumb elements\n$breadcrumb-separator:          \"/\" !default;\n\n\n//== Carousel\n//\n//##\n\n$carousel-text-shadow:                        0 1px 2px rgba(0, 0, 0, .6) !default;\n\n$carousel-control-color:                      #fff !default;\n$carousel-control-width:                      15% !default;\n$carousel-control-opacity:                    .5 !default;\n$carousel-control-font-size:                  20px !default;\n\n$carousel-indicator-active-bg:                #fff !default;\n$carousel-indicator-border-color:             #fff !default;\n\n$carousel-caption-color:                      #fff !default;\n\n\n//== Close\n//\n//##\n\n$close-font-weight:           bold !default;\n$close-color:                 #000 !default;\n$close-text-shadow:           0 1px 0 #fff !default;\n\n\n//== Code\n//\n//##\n\n$code-color:                  #c7254e !default;\n$code-bg:                     #f9f2f4 !default;\n\n$kbd-color:                   #fff !default;\n$kbd-bg:                      #333 !default;\n\n$pre-bg:                      #f5f5f5 !default;\n$pre-color:                   $gray-dark !default;\n$pre-border-color:            #ccc !default;\n$pre-scrollable-max-height:   340px !default;\n\n\n//== Type\n//\n//##\n\n//** Horizontal offset for forms and lists.\n$component-offset-horizontal: 180px !default;\n//** Text muted color\n$text-muted:                  $gray-light !default;\n//** Abbreviations and acronyms border color\n$abbr-border-color:           $gray-light !default;\n//** Headings small color\n$headings-small-color:        $gray-light !default;\n//** Blockquote small color\n$blockquote-small-color:      $gray-light !default;\n//** Blockquote font size\n$blockquote-font-size:        ($font-size-base * 1.25) !default;\n//** Blockquote border color\n$blockquote-border-color:     $gray-lighter !default;\n//** Page header border color\n$page-header-border-color:    $gray-lighter !default;\n//** Width of horizontal description list titles\n$dl-horizontal-offset:        $component-offset-horizontal !default;\n//** Point at which .dl-horizontal becomes horizontal\n$dl-horizontal-breakpoint:    $grid-float-breakpoint !default;\n//** Horizontal line color.\n$hr-border:                   $gray-lighter !default;\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/_wells.scss",
    "content": "//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n  min-height: 20px;\n  padding: 19px;\n  margin-bottom: 20px;\n  background-color: $well-bg;\n  border: 1px solid $well-border;\n  border-radius: $border-radius-base;\n  @include box-shadow(inset 0 1px 1px rgba(0, 0, 0, .05));\n  blockquote {\n    border-color: #ddd;\n    border-color: rgba(0, 0, 0, .15);\n  }\n}\n\n// Sizes\n.well-lg {\n  padding: 24px;\n  border-radius: $border-radius-large;\n}\n.well-sm {\n  padding: 9px;\n  border-radius: $border-radius-small;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_alerts.scss",
    "content": "// Alerts\n\n@mixin alert-variant($background, $border, $text-color) {\n  color: $text-color;\n  background-color: $background;\n  border-color: $border;\n\n  hr {\n    border-top-color: darken($border, 5%);\n  }\n\n  .alert-link {\n    color: darken($text-color, 10%);\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_background-variant.scss",
    "content": "// Contextual backgrounds\n\n// [converter] $parent hack\n@mixin bg-variant($parent, $color) {\n  #{$parent} {\n    background-color: $color;\n  }\n  a#{$parent}:hover,\n  a#{$parent}:focus {\n    background-color: darken($color, 10%);\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_border-radius.scss",
    "content": "// Single side border-radius\n\n@mixin border-top-radius($radius) {\n  border-top-left-radius: $radius;\n  border-top-right-radius: $radius;\n}\n@mixin border-right-radius($radius) {\n  border-top-right-radius: $radius;\n  border-bottom-right-radius: $radius;\n}\n@mixin border-bottom-radius($radius) {\n  border-bottom-right-radius: $radius;\n  border-bottom-left-radius: $radius;\n}\n@mixin border-left-radius($radius) {\n  border-top-left-radius: $radius;\n  border-bottom-left-radius: $radius;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_buttons.scss",
    "content": "// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($color, $background, $border) {\n  color: $color;\n  background-color: $background;\n  border-color: $border;\n\n  &:focus,\n  &.focus {\n    color: $color;\n    background-color: darken($background, 10%);\n    border-color: darken($border, 25%);\n  }\n  &:hover {\n    color: $color;\n    background-color: darken($background, 10%);\n    border-color: darken($border, 12%);\n  }\n  &:active,\n  &.active,\n  .open > &.dropdown-toggle {\n    color: $color;\n    background-color: darken($background, 10%);\n    background-image: none;\n    border-color: darken($border, 12%);\n\n    &:hover,\n    &:focus,\n    &.focus {\n      color: $color;\n      background-color: darken($background, 17%);\n      border-color: darken($border, 25%);\n    }\n  }\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    &:hover,\n    &:focus,\n    &.focus {\n      background-color: $background;\n      border-color: $border;\n    }\n  }\n\n  .badge {\n    color: $background;\n    background-color: $color;\n  }\n}\n\n// Button sizes\n@mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {\n  padding: $padding-vertical $padding-horizontal;\n  font-size: $font-size;\n  line-height: $line-height;\n  border-radius: $border-radius;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_center-block.scss",
    "content": "// Center-align a block level element\n\n@mixin center-block() {\n  display: block;\n  margin-right: auto;\n  margin-left: auto;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_clearfix.scss",
    "content": "// Clearfix\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n//    contenteditable attribute is included anywhere else in the document.\n//    Otherwise it causes space to appear at the top and bottom of elements\n//    that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n//    `:before` to contain the top-margins of child elements.\n//\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n\n@mixin clearfix() {\n  &:before,\n  &:after {\n    display: table; // 2\n    content: \" \"; // 1\n  }\n  &:after {\n    clear: both;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_forms.scss",
    "content": "// Form validation states\n//\n// Used in forms.less to generate the form validation CSS for warnings, errors,\n// and successes.\n\n@mixin form-control-validation($text-color: #555, $border-color: #ccc, $background-color: #f5f5f5) {\n  // Color the label and help text\n  .help-block,\n  .control-label,\n  .radio,\n  .checkbox,\n  .radio-inline,\n  .checkbox-inline,\n  &.radio label,\n  &.checkbox label,\n  &.radio-inline label,\n  &.checkbox-inline label  {\n    color: $text-color;\n  }\n  // Set the border and box shadow on specific inputs to match\n  .form-control {\n    border-color: $border-color;\n    @include box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075)); // Redeclare so transitions work\n    &:focus {\n      border-color: darken($border-color, 10%);\n      $shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px lighten($border-color, 20%);\n      @include box-shadow($shadow);\n    }\n  }\n  // Set validation states also for addons\n  .input-group-addon {\n    color: $text-color;\n    background-color: $background-color;\n    border-color: $border-color;\n  }\n  // Optional feedback icon\n  .form-control-feedback {\n    color: $text-color;\n  }\n}\n\n\n// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `$input-border-focus` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n@mixin form-control-focus($color: $input-border-focus) {\n  $color-rgba: rgba(red($color), green($color), blue($color), .6);\n  &:focus {\n    border-color: $color;\n    outline: 0;\n    @include box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px $color-rgba);\n  }\n}\n\n// Form control sizing\n//\n// Relative text size, padding, and border-radii changes for form controls. For\n// horizontal sizing, wrap controls in the predefined grid classes. `<select>`\n// element gets special love because it's special, and that's a fact!\n// [converter] $parent hack\n@mixin input-size($parent, $input-height, $padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {\n  #{$parent} {\n    height: $input-height;\n    padding: $padding-vertical $padding-horizontal;\n    font-size: $font-size;\n    line-height: $line-height;\n    border-radius: $border-radius;\n  }\n\n  select#{$parent} {\n    height: $input-height;\n    line-height: $input-height;\n  }\n\n  textarea#{$parent},\n  select[multiple]#{$parent} {\n    height: auto;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_gradients.scss",
    "content": "\n\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n// Color stops are not available in IE9 and below.\n@mixin gradient-horizontal($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {\n  background-image: -webkit-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Safari 5.1-6, Chrome 10+\n  background-image: -o-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Opera 12\n  background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down\n  background-repeat: repeat-x;\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n// Color stops are not available in IE9 and below.\n@mixin gradient-vertical($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {\n  background-image: -webkit-linear-gradient(top, $start-color $start-percent, $end-color $end-percent);  // Safari 5.1-6, Chrome 10+\n  background-image: -o-linear-gradient(top, $start-color $start-percent, $end-color $end-percent);  // Opera 12\n  background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down\n  background-repeat: repeat-x;\n}\n\n@mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {\n  background-image: -webkit-linear-gradient($deg, $start-color, $end-color); // Safari 5.1-6, Chrome 10+\n  background-image: -o-linear-gradient($deg, $start-color, $end-color); // Opera 12\n  background-image: linear-gradient($deg, $start-color, $end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n  background-repeat: repeat-x;\n}\n@mixin gradient-horizontal-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {\n  background-image: -webkit-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);\n  background-image: -o-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);\n  background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down, gets no color-stop at all for proper fallback\n  background-repeat: no-repeat;\n}\n@mixin gradient-vertical-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {\n  background-image: -webkit-linear-gradient($start-color, $mid-color $color-stop, $end-color);\n  background-image: -o-linear-gradient($start-color, $mid-color $color-stop, $end-color);\n  background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down, gets no color-stop at all for proper fallback\n  background-repeat: no-repeat;\n}\n@mixin gradient-radial($inner-color: #555, $outer-color: #333) {\n  background-image: -webkit-radial-gradient(circle, $inner-color, $outer-color);\n  background-image: radial-gradient(circle, $inner-color, $outer-color);\n  background-repeat: no-repeat;\n}\n@mixin gradient-striped($color: rgba(255, 255, 255, .15), $angle: 45deg) {\n  background-image: -webkit-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n  background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_grid-framework.scss",
    "content": "@use \"sass:math\";\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n// [converter] This is defined recursively in LESS, but Sass supports real loops\n@mixin make-grid-columns($i: 1, $list: \".col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}\") {\n  @for $i from (1 + 1) through $grid-columns {\n    $list: \"#{$list}, .col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}\";\n  }\n  #{$list} {\n    position: relative;\n    // Prevent columns from collapsing when empty\n    min-height: 1px;\n    // Inner gutter via padding\n    padding-right: floor(math.div($grid-gutter-width, 2));\n    padding-left: ceil(math.div($grid-gutter-width, 2));\n  }\n}\n\n\n// [converter] This is defined recursively in LESS, but Sass supports real loops\n@mixin float-grid-columns($class, $i: 1, $list: \".col-#{$class}-#{$i}\") {\n  @for $i from (1 + 1) through $grid-columns {\n    $list: \"#{$list}, .col-#{$class}-#{$i}\";\n  }\n  #{$list} {\n    float: left;\n  }\n}\n\n\n@mixin calc-grid-column($index, $class, $type) {\n  @if ($type == width) and ($index > 0) {\n    .col-#{$class}-#{$index} {\n      width: percentage(math.div($index, $grid-columns));\n    }\n  }\n  @if ($type == push) and ($index > 0) {\n    .col-#{$class}-push-#{$index} {\n      left: percentage(math.div($index, $grid-columns));\n    }\n  }\n  @if ($type == push) and ($index == 0) {\n    .col-#{$class}-push-0 {\n      left: auto;\n    }\n  }\n  @if ($type == pull) and ($index > 0) {\n    .col-#{$class}-pull-#{$index} {\n      right: percentage(math.div($index, $grid-columns));\n    }\n  }\n  @if ($type == pull) and ($index == 0) {\n    .col-#{$class}-pull-0 {\n      right: auto;\n    }\n  }\n  @if ($type == offset) {\n    .col-#{$class}-offset-#{$index} {\n      margin-left: percentage(math.div($index, $grid-columns));\n    }\n  }\n}\n\n// [converter] This is defined recursively in LESS, but Sass supports real loops\n@mixin loop-grid-columns($columns, $class, $type) {\n  @for $i from 0 through $columns {\n    @include calc-grid-column($i, $class, $type);\n  }\n}\n\n\n// Create grid for specific class\n@mixin make-grid($class) {\n  @include float-grid-columns($class);\n  @include loop-grid-columns($grid-columns, $class, width);\n  @include loop-grid-columns($grid-columns, $class, pull);\n  @include loop-grid-columns($grid-columns, $class, push);\n  @include loop-grid-columns($grid-columns, $class, offset);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_grid.scss",
    "content": "@use \"sass:math\";\n// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n// Centered container element\n@mixin container-fixed($gutter: $grid-gutter-width) {\n  padding-right: ceil(math.div($gutter, 2));\n  padding-left: floor(math.div($gutter, 2));\n  margin-right: auto;\n  margin-left: auto;\n  @include clearfix;\n}\n\n// Creates a wrapper for a series of columns\n@mixin make-row($gutter: $grid-gutter-width) {\n  margin-right: floor(math.div($gutter, -2));\n  margin-left: ceil(math.div($gutter, -2));\n  @include clearfix;\n}\n\n// Generate the extra small columns\n@mixin make-xs-column($columns, $gutter: $grid-gutter-width) {\n  position: relative;\n  float: left;\n  width: percentage(math.div($columns, $grid-columns));\n  min-height: 1px;\n  padding-right: math.div($gutter, 2);\n  padding-left: math.div($gutter, 2);\n}\n@mixin make-xs-column-offset($columns) {\n  margin-left: percentage(math.div($columns, $grid-columns));\n}\n@mixin make-xs-column-push($columns) {\n  left: percentage(math.div($columns, $grid-columns));\n}\n@mixin make-xs-column-pull($columns) {\n  right: percentage(math.div($columns, $grid-columns));\n}\n\n// Generate the small columns\n@mixin make-sm-column($columns, $gutter: $grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-right: math.div($gutter, 2);\n  padding-left: math.div($gutter, 2);\n\n  @media (min-width: $screen-sm-min) {\n    float: left;\n    width: percentage(math.div($columns, $grid-columns));\n  }\n}\n@mixin make-sm-column-offset($columns) {\n  @media (min-width: $screen-sm-min) {\n    margin-left: percentage(math.div($columns, $grid-columns));\n  }\n}\n@mixin make-sm-column-push($columns) {\n  @media (min-width: $screen-sm-min) {\n    left: percentage(math.div($columns, $grid-columns));\n  }\n}\n@mixin make-sm-column-pull($columns) {\n  @media (min-width: $screen-sm-min) {\n    right: percentage(math.div($columns, $grid-columns));\n  }\n}\n\n// Generate the medium columns\n@mixin make-md-column($columns, $gutter: $grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-right: math.div($gutter, 2);\n  padding-left: math.div($gutter, 2);\n\n  @media (min-width: $screen-md-min) {\n    float: left;\n    width: percentage(math.div($columns, $grid-columns));\n  }\n}\n@mixin make-md-column-offset($columns) {\n  @media (min-width: $screen-md-min) {\n    margin-left: percentage(math.div($columns, $grid-columns));\n  }\n}\n@mixin make-md-column-push($columns) {\n  @media (min-width: $screen-md-min) {\n    left: percentage(math.div($columns, $grid-columns));\n  }\n}\n@mixin make-md-column-pull($columns) {\n  @media (min-width: $screen-md-min) {\n    right: percentage(math.div($columns, $grid-columns));\n  }\n}\n\n// Generate the large columns\n@mixin make-lg-column($columns, $gutter: $grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-right: math.div($gutter, 2);\n  padding-left: math.div($gutter, 2);\n\n  @media (min-width: $screen-lg-min) {\n    float: left;\n    width: percentage(math.div($columns, $grid-columns));\n  }\n}\n@mixin make-lg-column-offset($columns) {\n  @media (min-width: $screen-lg-min) {\n    margin-left: percentage(math.div($columns, $grid-columns));\n  }\n}\n@mixin make-lg-column-push($columns) {\n  @media (min-width: $screen-lg-min) {\n    left: percentage(math.div($columns, $grid-columns));\n  }\n}\n@mixin make-lg-column-pull($columns) {\n  @media (min-width: $screen-lg-min) {\n    right: percentage(math.div($columns, $grid-columns));\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_hide-text.scss",
    "content": "// CSS image replacement\n//\n// Heads up! v3 launched with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (has been removed in v4)\n@mixin hide-text() {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n// New mixin to use as of v3.0.1\n@mixin text-hide() {\n  @include hide-text;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_image.scss",
    "content": "// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n@mixin img-responsive($display: block) {\n  display: $display;\n  max-width: 100%; // Part 1: Set a maximum relative to the parent\n  height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size. Note that the\n// spelling of `min--moz-device-pixel-ratio` is intentional.\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n  background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path(\"#{$file-1x}\"), \"#{$file-1x}\"));\n\n  @media\n  only screen and (-webkit-min-device-pixel-ratio: 2),\n  only screen and ( min--moz-device-pixel-ratio: 2),\n  only screen and ( -o-min-device-pixel-ratio: 2/1),\n  only screen and ( min-device-pixel-ratio: 2),\n  only screen and ( min-resolution: 192dpi),\n  only screen and ( min-resolution: 2dppx) {\n    background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path(\"#{$file-2x}\"), \"#{$file-2x}\"));\n    background-size: $width-1x $height-1x;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_labels.scss",
    "content": "// Labels\n\n@mixin label-variant($color) {\n  background-color: $color;\n\n  &[href] {\n    &:hover,\n    &:focus {\n      background-color: darken($color, 10%);\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_list-group.scss",
    "content": "// List Groups\n\n@mixin list-group-item-variant($state, $background, $color) {\n  .list-group-item-#{$state} {\n    color: $color;\n    background-color: $background;\n\n    // [converter] extracted a&, button& to a.list-group-item-#{$state}, button.list-group-item-#{$state}\n  }\n\n  a.list-group-item-#{$state},\n  button.list-group-item-#{$state} {\n    color: $color;\n\n    .list-group-item-heading {\n      color: inherit;\n    }\n\n    &:hover,\n    &:focus {\n      color: $color;\n      background-color: darken($background, 5%);\n    }\n    &.active,\n    &.active:hover,\n    &.active:focus {\n      color: #fff;\n      background-color: $color;\n      border-color: $color;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_nav-divider.scss",
    "content": "@use \"sass:math\";\n// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n@mixin nav-divider($color: #e5e5e5) {\n  height: 1px;\n  margin: (math.div($line-height-computed, 2) - 1) 0;\n  overflow: hidden;\n  background-color: $color;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_nav-vertical-align.scss",
    "content": "@use \"sass:math\";\n// Navbar vertical align\n//\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.\n\n@mixin navbar-vertical-align($element-height) {\n  margin-top: math.div(($navbar-height - $element-height), 2);\n  margin-bottom: math.div(($navbar-height - $element-height), 2);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_opacity.scss",
    "content": "// Opacity\n\n@mixin opacity($opacity) {\n  $opacity-ie: ($opacity * 100);  // IE8 filter\n  filter: alpha(opacity=$opacity-ie);\n  opacity: $opacity;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_pagination.scss",
    "content": "// Pagination\n\n@mixin pagination-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {\n  > li {\n    > a,\n    > span {\n      padding: $padding-vertical $padding-horizontal;\n      font-size: $font-size;\n      line-height: $line-height;\n    }\n    &:first-child {\n      > a,\n      > span {\n        @include border-left-radius($border-radius);\n      }\n    }\n    &:last-child {\n      > a,\n      > span {\n        @include border-right-radius($border-radius);\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_panels.scss",
    "content": "// Panels\n\n@mixin panel-variant($border, $heading-text-color, $heading-bg-color, $heading-border) {\n  border-color: $border;\n\n  & > .panel-heading {\n    color: $heading-text-color;\n    background-color: $heading-bg-color;\n    border-color: $heading-border;\n\n    + .panel-collapse > .panel-body {\n      border-top-color: $border;\n    }\n    .badge {\n      color: $heading-bg-color;\n      background-color: $heading-text-color;\n    }\n  }\n  & > .panel-footer {\n    + .panel-collapse > .panel-body {\n      border-bottom-color: $border;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_progress-bar.scss",
    "content": "// Progress bars\n\n@mixin progress-bar-variant($color) {\n  background-color: $color;\n\n  // Deprecated parent class requirement as of v3.2.0\n  .progress-striped & {\n    @include gradient-striped;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_reset-filter.scss",
    "content": "// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n@mixin reset-filter() {\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_reset-text.scss",
    "content": "@mixin reset-text() {\n  font-family: $font-family-base;\n  // We deliberately do NOT reset font-size.\n  font-style: normal;\n  font-weight: 400;\n  line-height: $line-height-base;\n  line-break: auto;\n  text-align: left; // Fallback for where `start` is not supported\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  word-wrap: normal;\n  white-space: normal;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_resize.scss",
    "content": "// Resize anything\n\n@mixin resizable($direction) {\n  overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`\n  resize: $direction; // Options: horizontal, vertical, both\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_responsive-visibility.scss",
    "content": "// [converter] $parent hack\n@mixin responsive-visibility($parent) {\n  #{$parent} {\n    display: block !important;\n  }\n  table#{$parent}  { display: table !important; }\n  tr#{$parent}     { display: table-row !important; }\n  th#{$parent},\n  td#{$parent}     { display: table-cell !important; }\n}\n\n// [converter] $parent hack\n@mixin responsive-invisibility($parent) {\n  #{$parent} {\n    display: none !important;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_size.scss",
    "content": "// Sizing shortcuts\n\n@mixin size($width, $height) {\n  width: $width;\n  height: $height;\n}\n\n@mixin square($size) {\n  @include size($size, $size);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_tab-focus.scss",
    "content": "// WebKit-style focus\n\n@mixin tab-focus() {\n  // WebKit-specific. Other browsers will keep their default outline style.\n  // (Initially tried to also force default via `outline: initial`,\n  // but that seems to erroneously remove the outline in Firefox altogether.)\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_table-row.scss",
    "content": "// Tables\n\n@mixin table-row-variant($state, $background) {\n  // Exact selectors below required to override `.table-striped` and prevent\n  // inheritance to nested tables.\n  .table > thead > tr,\n  .table > tbody > tr,\n  .table > tfoot > tr {\n    > td.#{$state},\n    > th.#{$state},\n    &.#{$state} > td,\n    &.#{$state} > th {\n      background-color: $background;\n    }\n  }\n\n  // Hover states for `.table-hover`\n  // Note: this is not available for cells or rows within `thead` or `tfoot`.\n  .table-hover > tbody > tr {\n    > td.#{$state}:hover,\n    > th.#{$state}:hover,\n    &.#{$state}:hover > td,\n    &:hover > .#{$state},\n    &.#{$state}:hover > th {\n      background-color: darken($background, 5%);\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_text-emphasis.scss",
    "content": "// Typography\n\n// [converter] $parent hack\n@mixin text-emphasis-variant($parent, $color) {\n  #{$parent} {\n    color: $color;\n  }\n  a#{$parent}:hover,\n  a#{$parent}:focus {\n    color: darken($color, 10%);\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_text-overflow.scss",
    "content": "// Text overflow\n// Requires inline-block or block for proper styling\n\n@mixin text-overflow() {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap-sass/mixins/_vendor-prefixes.scss",
    "content": "// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n@mixin animation($animation) {\n  -webkit-animation: $animation;\n       -o-animation: $animation;\n          animation: $animation;\n}\n@mixin animation-name($name) {\n  -webkit-animation-name: $name;\n          animation-name: $name;\n}\n@mixin animation-duration($duration) {\n  -webkit-animation-duration: $duration;\n          animation-duration: $duration;\n}\n@mixin animation-timing-function($timing-function) {\n  -webkit-animation-timing-function: $timing-function;\n          animation-timing-function: $timing-function;\n}\n@mixin animation-delay($delay) {\n  -webkit-animation-delay: $delay;\n          animation-delay: $delay;\n}\n@mixin animation-iteration-count($iteration-count) {\n  -webkit-animation-iteration-count: $iteration-count;\n          animation-iteration-count: $iteration-count;\n}\n@mixin animation-direction($direction) {\n  -webkit-animation-direction: $direction;\n          animation-direction: $direction;\n}\n@mixin animation-fill-mode($fill-mode) {\n  -webkit-animation-fill-mode: $fill-mode;\n          animation-fill-mode: $fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n@mixin backface-visibility($visibility) {\n  -webkit-backface-visibility: $visibility;\n     -moz-backface-visibility: $visibility;\n          backface-visibility: $visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n@mixin box-shadow($shadow...) {\n  -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1\n          box-shadow: $shadow;\n}\n\n// Box sizing\n@mixin box-sizing($boxmodel) {\n  -webkit-box-sizing: $boxmodel;\n     -moz-box-sizing: $boxmodel;\n          box-sizing: $boxmodel;\n}\n\n// CSS3 Content Columns\n@mixin content-columns($column-count, $column-gap: $grid-gutter-width) {\n  -webkit-column-count: $column-count;\n     -moz-column-count: $column-count;\n          column-count: $column-count;\n  -webkit-column-gap: $column-gap;\n     -moz-column-gap: $column-gap;\n          column-gap: $column-gap;\n}\n\n// Optional hyphenation\n@mixin hyphens($mode: auto) {\n  -webkit-hyphens: $mode;\n     -moz-hyphens: $mode;\n      -ms-hyphens: $mode; // IE10+\n       -o-hyphens: $mode;\n          hyphens: $mode;\n  word-wrap: break-word;\n}\n\n// Placeholder text\n@mixin placeholder($color: $input-color-placeholder) {\n  // Firefox\n  &::-moz-placeholder {\n    color: $color;\n    opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n  }\n  &:-ms-input-placeholder { color: $color; } // Internet Explorer 10+\n  &::-webkit-input-placeholder  { color: $color; } // Safari and Chrome\n}\n\n// Transformations\n@mixin scale($ratio...) {\n  -webkit-transform: scale($ratio);\n      -ms-transform: scale($ratio); // IE9 only\n       -o-transform: scale($ratio);\n          transform: scale($ratio);\n}\n\n@mixin scaleX($ratio) {\n  -webkit-transform: scaleX($ratio);\n      -ms-transform: scaleX($ratio); // IE9 only\n       -o-transform: scaleX($ratio);\n          transform: scaleX($ratio);\n}\n@mixin scaleY($ratio) {\n  -webkit-transform: scaleY($ratio);\n      -ms-transform: scaleY($ratio); // IE9 only\n       -o-transform: scaleY($ratio);\n          transform: scaleY($ratio);\n}\n@mixin skew($x, $y) {\n  -webkit-transform: skewX($x) skewY($y);\n      -ms-transform: skewX($x) skewY($y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n       -o-transform: skewX($x) skewY($y);\n          transform: skewX($x) skewY($y);\n}\n@mixin translate($x, $y) {\n  -webkit-transform: translate($x, $y);\n      -ms-transform: translate($x, $y); // IE9 only\n       -o-transform: translate($x, $y);\n          transform: translate($x, $y);\n}\n@mixin translate3d($x, $y, $z) {\n  -webkit-transform: translate3d($x, $y, $z);\n          transform: translate3d($x, $y, $z);\n}\n@mixin rotate($degrees) {\n  -webkit-transform: rotate($degrees);\n      -ms-transform: rotate($degrees); // IE9 only\n       -o-transform: rotate($degrees);\n          transform: rotate($degrees);\n}\n@mixin rotateX($degrees) {\n  -webkit-transform: rotateX($degrees);\n      -ms-transform: rotateX($degrees); // IE9 only\n       -o-transform: rotateX($degrees);\n          transform: rotateX($degrees);\n}\n@mixin rotateY($degrees) {\n  -webkit-transform: rotateY($degrees);\n      -ms-transform: rotateY($degrees); // IE9 only\n       -o-transform: rotateY($degrees);\n          transform: rotateY($degrees);\n}\n@mixin perspective($perspective) {\n  -webkit-perspective: $perspective;\n     -moz-perspective: $perspective;\n          perspective: $perspective;\n}\n@mixin perspective-origin($perspective) {\n  -webkit-perspective-origin: $perspective;\n     -moz-perspective-origin: $perspective;\n          perspective-origin: $perspective;\n}\n@mixin transform-origin($origin) {\n  -webkit-transform-origin: $origin;\n     -moz-transform-origin: $origin;\n      -ms-transform-origin: $origin; // IE9 only\n          transform-origin: $origin;\n}\n\n\n// Transitions\n\n@mixin transition($transition...) {\n  -webkit-transition: $transition;\n       -o-transition: $transition;\n          transition: $transition;\n}\n@mixin transition-property($transition-property...) {\n  -webkit-transition-property: $transition-property;\n          transition-property: $transition-property;\n}\n@mixin transition-delay($transition-delay) {\n  -webkit-transition-delay: $transition-delay;\n          transition-delay: $transition-delay;\n}\n@mixin transition-duration($transition-duration...) {\n  -webkit-transition-duration: $transition-duration;\n          transition-duration: $transition-duration;\n}\n@mixin transition-timing-function($timing-function) {\n  -webkit-transition-timing-function: $timing-function;\n          transition-timing-function: $timing-function;\n}\n@mixin transition-transform($transition...) {\n  -webkit-transition: -webkit-transform $transition;\n     -moz-transition: -moz-transform $transition;\n       -o-transition: -o-transform $transition;\n          transition: transform $transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n@mixin user-select($select) {\n  -webkit-user-select: $select;\n     -moz-user-select: $select;\n      -ms-user-select: $select; // IE10+\n          user-select: $select;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/accordion.less",
    "content": "//\n// Accordion\n// --------------------------------------------------\n\n\n// Parent container\n.accordion {\n  margin-bottom: @baseLineHeight;\n}\n\n// Group == heading + body\n.accordion-group {\n  margin-bottom: 2px;\n  border: 1px solid #e5e5e5;\n  .border-radius(@baseBorderRadius);\n}\n.accordion-heading {\n  border-bottom: 0;\n}\n.accordion-heading .accordion-toggle {\n  display: block;\n  padding: 8px 15px;\n}\n\n// General toggle styles\n.accordion-toggle {\n  cursor: pointer;\n}\n\n// Inner needs the styles because you can't animate properly with any styles on the element\n.accordion-inner {\n  padding: 9px 15px;\n  border-top: 1px solid #e5e5e5;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/alerts.less",
    "content": "//\n// Alerts\n// --------------------------------------------------\n\n\n// Base styles\n// -------------------------\n\n.alert {\n  padding: 8px 35px 8px 14px;\n  margin-bottom: @baseLineHeight;\n  text-shadow: 0 1px 0 rgba(255,255,255,.5);\n  background-color: @warningBackground;\n  border: 1px solid @warningBorder;\n  .border-radius(@baseBorderRadius);\n}\n.alert,\n.alert h4 {\n  // Specified for the h4 to prevent conflicts of changing @headingsColor\n  color: @warningText;\n}\n.alert h4 {\n  margin: 0;\n}\n\n// Adjust close link position\n.alert .close {\n  position: relative;\n  top: -2px;\n  right: -21px;\n  line-height: @baseLineHeight;\n}\n\n\n// Alternate styles\n// -------------------------\n\n.alert-success {\n  background-color: @successBackground;\n  border-color: @successBorder;\n  color: @successText;\n}\n.alert-success h4 {\n  color: @successText;\n}\n.alert-danger,\n.alert-error {\n  background-color: @errorBackground;\n  border-color: @errorBorder;\n  color: @errorText;\n}\n.alert-danger h4,\n.alert-error h4 {\n  color: @errorText;\n}\n.alert-info {\n  background-color: @infoBackground;\n  border-color: @infoBorder;\n  color: @infoText;\n}\n.alert-info h4 {\n  color: @infoText;\n}\n\n\n// Block alerts\n// -------------------------\n\n.alert-block {\n  padding-top: 14px;\n  padding-bottom: 14px;\n}\n.alert-block > p,\n.alert-block > ul {\n  margin-bottom: 0;\n}\n.alert-block p + p {\n  margin-top: 5px;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/bootstrap.less",
    "content": "/*!\n * Bootstrap v2.3.2\n *\n * Copyright 2013 Twitter, Inc\n * Licensed under the Apache License v2.0\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Designed and built with all the love in the world by @mdo and @fat.\n */\n\n// Core variables and mixins\n@import \"variables.less\"; // Modify this for custom colors, font-sizes, etc\n@import \"mixins.less\";\n\n// CSS Reset\n@import \"reset.less\";\n\n// Grid system and page structure\n@import \"scaffolding.less\";\n@import \"grid.less\";\n@import \"layouts.less\";\n\n// Base CSS\n@import \"type.less\";\n@import \"code.less\";\n@import \"forms.less\";\n@import \"tables.less\";\n\n// Components: common\n@import \"sprites.less\";\n@import \"dropdowns.less\";\n@import \"wells.less\";\n@import \"component-animations.less\";\n@import \"close.less\";\n\n// Components: Buttons & Alerts\n@import \"buttons.less\";\n@import \"button-groups.less\";\n@import \"alerts.less\"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less\n\n// Components: Nav\n@import \"navs.less\";\n@import \"navbar.less\";\n@import \"breadcrumbs.less\";\n@import \"pagination.less\";\n@import \"pager.less\";\n\n// Components: Popovers\n@import \"modals.less\";\n@import \"tooltip.less\";\n@import \"popovers.less\";\n\n// Components: Misc\n@import \"thumbnails.less\";\n@import \"media.less\";\n@import \"labels-badges.less\";\n@import \"progress-bars.less\";\n@import \"accordion.less\";\n@import \"carousel.less\";\n@import \"hero-unit.less\";\n\n// Utility classes\n@import \"utilities.less\"; // Has to be last to override when necessary\n"
  },
  {
    "path": "dist/lib/bootstrap2/breadcrumbs.less",
    "content": "//\n// Breadcrumbs\n// --------------------------------------------------\n\n\n.breadcrumb {\n  padding: 8px 15px;\n  margin: 0 0 @baseLineHeight;\n  list-style: none;\n  background-color: #f5f5f5;\n  .border-radius(@baseBorderRadius);\n  > li {\n    display: inline-block;\n    .ie7-inline-block();\n    text-shadow: 0 1px 0 @white;\n    > .divider {\n      padding: 0 5px;\n      color: #ccc;\n    }\n  }\n  > .active {\n    color: @grayLight;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/button-groups.less",
    "content": "//\n// Button groups\n// --------------------------------------------------\n\n\n// Make the div behave like a button\n.btn-group {\n  position: relative;\n  display: inline-block;\n  .ie7-inline-block();\n  font-size: 0; // remove as part 1 of font-size inline-block hack\n  vertical-align: middle; // match .btn alignment given font-size hack above\n  white-space: nowrap; // prevent buttons from wrapping when in tight spaces (e.g., the table on the tests page)\n  .ie7-restore-left-whitespace();\n}\n\n// Space out series of button groups\n.btn-group + .btn-group {\n  margin-left: 5px;\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n  font-size: 0; // Hack to remove whitespace that results from using inline-block\n  margin-top: @baseLineHeight / 2;\n  margin-bottom: @baseLineHeight / 2;\n  > .btn + .btn,\n  > .btn-group + .btn,\n  > .btn + .btn-group {\n    margin-left: 5px;\n  }\n}\n\n// Float them, remove border radius, then re-add to first and last elements\n.btn-group > .btn {\n  position: relative;\n  .border-radius(0);\n}\n.btn-group > .btn + .btn {\n  margin-left: -1px;\n}\n.btn-group > .btn,\n.btn-group > .dropdown-menu,\n.btn-group > .popover {\n  font-size: @baseFontSize; // redeclare as part 2 of font-size inline-block hack\n}\n\n// Reset fonts for other sizes\n.btn-group > .btn-mini {\n  font-size: @fontSizeMini;\n}\n.btn-group > .btn-small {\n  font-size: @fontSizeSmall;\n}\n.btn-group > .btn-large {\n  font-size: @fontSizeLarge;\n}\n\n// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match\n.btn-group > .btn:first-child {\n  margin-left: 0;\n  .border-top-left-radius(@baseBorderRadius);\n  .border-bottom-left-radius(@baseBorderRadius);\n}\n// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it\n.btn-group > .btn:last-child,\n.btn-group > .dropdown-toggle {\n  .border-top-right-radius(@baseBorderRadius);\n  .border-bottom-right-radius(@baseBorderRadius);\n}\n// Reset corners for large buttons\n.btn-group > .btn.large:first-child {\n  margin-left: 0;\n  .border-top-left-radius(@borderRadiusLarge);\n  .border-bottom-left-radius(@borderRadiusLarge);\n}\n.btn-group > .btn.large:last-child,\n.btn-group > .large.dropdown-toggle {\n  .border-top-right-radius(@borderRadiusLarge);\n  .border-bottom-right-radius(@borderRadiusLarge);\n}\n\n// On hover/focus/active, bring the proper btn to front\n.btn-group > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group > .btn:active,\n.btn-group > .btn.active {\n  z-index: 2;\n}\n\n// On active and open, don't show outline\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n  outline: 0;\n}\n\n\n\n// Split button dropdowns\n// ----------------------\n\n// Give the line between buttons some depth\n.btn-group > .btn + .dropdown-toggle {\n  padding-left: 8px;\n  padding-right: 8px;\n  .box-shadow(~\"inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)\");\n  *padding-top: 5px;\n  *padding-bottom: 5px;\n}\n.btn-group > .btn-mini + .dropdown-toggle {\n  padding-left: 5px;\n  padding-right: 5px;\n  *padding-top: 2px;\n  *padding-bottom: 2px;\n}\n.btn-group > .btn-small + .dropdown-toggle {\n  *padding-top: 5px;\n  *padding-bottom: 4px;\n}\n.btn-group > .btn-large + .dropdown-toggle {\n  padding-left: 12px;\n  padding-right: 12px;\n  *padding-top: 7px;\n  *padding-bottom: 7px;\n}\n\n.btn-group.open {\n\n  // The clickable button for toggling the menu\n  // Remove the gradient and set the same inset shadow as the :active state\n  .dropdown-toggle {\n    background-image: none;\n    .box-shadow(~\"inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)\");\n  }\n\n  // Keep the hover's background when dropdown is open\n  .btn.dropdown-toggle {\n    background-color: @btnBackgroundHighlight;\n  }\n  .btn-primary.dropdown-toggle {\n    background-color: @btnPrimaryBackgroundHighlight;\n  }\n  .btn-warning.dropdown-toggle {\n    background-color: @btnWarningBackgroundHighlight;\n  }\n  .btn-danger.dropdown-toggle {\n    background-color: @btnDangerBackgroundHighlight;\n  }\n  .btn-success.dropdown-toggle {\n    background-color: @btnSuccessBackgroundHighlight;\n  }\n  .btn-info.dropdown-toggle {\n    background-color: @btnInfoBackgroundHighlight;\n  }\n  .btn-inverse.dropdown-toggle {\n    background-color: @btnInverseBackgroundHighlight;\n  }\n}\n\n\n// Reposition the caret\n.btn .caret {\n  margin-top: 8px;\n  margin-left: 0;\n}\n// Carets in other button sizes\n.btn-large .caret {\n  margin-top: 6px;\n}\n.btn-large .caret {\n  border-left-width:  5px;\n  border-right-width: 5px;\n  border-top-width:   5px;\n}\n.btn-mini .caret,\n.btn-small .caret {\n  margin-top: 8px;\n}\n// Upside down carets for .dropup\n.dropup .btn-large .caret {\n  border-bottom-width: 5px;\n}\n\n\n\n// Account for other colors\n.btn-primary,\n.btn-warning,\n.btn-danger,\n.btn-info,\n.btn-success,\n.btn-inverse {\n  .caret {\n    border-top-color: @white;\n    border-bottom-color: @white;\n  }\n}\n\n\n\n// Vertical button groups\n// ----------------------\n\n.btn-group-vertical {\n  display: inline-block; // makes buttons only take up the width they need\n  .ie7-inline-block();\n}\n.btn-group-vertical > .btn {\n  display: block;\n  float: none;\n  max-width: 100%;\n  .border-radius(0);\n}\n.btn-group-vertical > .btn + .btn {\n  margin-left: 0;\n  margin-top: -1px;\n}\n.btn-group-vertical > .btn:first-child {\n  .border-radius(@baseBorderRadius @baseBorderRadius 0 0);\n}\n.btn-group-vertical > .btn:last-child {\n  .border-radius(0 0 @baseBorderRadius @baseBorderRadius);\n}\n.btn-group-vertical > .btn-large:first-child {\n  .border-radius(@borderRadiusLarge @borderRadiusLarge 0 0);\n}\n.btn-group-vertical > .btn-large:last-child {\n  .border-radius(0 0 @borderRadiusLarge @borderRadiusLarge);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/buttons.less",
    "content": "//\n// Buttons\n// --------------------------------------------------\n\n\n// Base styles\n// --------------------------------------------------\n\n// Core\n.btn {\n  display: inline-block;\n  .ie7-inline-block();\n  padding: 4px 12px;\n  margin-bottom: 0; // For input.btn\n  font-size: @baseFontSize;\n  line-height: @baseLineHeight;\n  text-align: center;\n  vertical-align: middle;\n  cursor: pointer;\n  .buttonBackground(@btnBackground, @btnBackgroundHighlight, @grayDark, 0 1px 1px rgba(255,255,255,.75));\n  border: 1px solid @btnBorder;\n  *border: 0; // Remove the border to prevent IE7's black border on input:focus\n  border-bottom-color: darken(@btnBorder, 10%);\n  .border-radius(@baseBorderRadius);\n  .ie7-restore-left-whitespace(); // Give IE7 some love\n  .box-shadow(~\"inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)\");\n\n  // Hover/focus state\n  &:hover,\n  &:focus {\n    color: @grayDark;\n    text-decoration: none;\n    background-position: 0 -15px;\n\n    // transition is only when going to hover/focus, otherwise the background\n    // behind the gradient (there for IE<=9 fallback) gets mismatched\n    .transition(background-position .1s linear);\n  }\n\n  // Focus state for keyboard and accessibility\n  &:focus {\n    .tab-focus();\n  }\n\n  // Active state\n  &.active,\n  &:active {\n    background-image: none;\n    outline: 0;\n    .box-shadow(~\"inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)\");\n  }\n\n  // Disabled state\n  &.disabled,\n  &[disabled] {\n    cursor: default;\n    background-image: none;\n    .opacity(65);\n    .box-shadow(none);\n  }\n\n}\n\n\n\n// Button Sizes\n// --------------------------------------------------\n\n// Large\n.btn-large {\n  padding: @paddingLarge;\n  font-size: @fontSizeLarge;\n  .border-radius(@borderRadiusLarge);\n}\n.btn-large [class^=\"icon-\"],\n.btn-large [class*=\" icon-\"] {\n  margin-top: 4px;\n}\n\n// Small\n.btn-small {\n  padding: @paddingSmall;\n  font-size: @fontSizeSmall;\n  .border-radius(@borderRadiusSmall);\n}\n.btn-small [class^=\"icon-\"],\n.btn-small [class*=\" icon-\"] {\n  margin-top: 0;\n}\n.btn-mini [class^=\"icon-\"],\n.btn-mini [class*=\" icon-\"] {\n  margin-top: -1px;\n}\n\n// Mini\n.btn-mini {\n  padding: @paddingMini;\n  font-size: @fontSizeMini;\n  .border-radius(@borderRadiusSmall);\n}\n\n\n// Block button\n// -------------------------\n\n.btn-block {\n  display: block;\n  width: 100%;\n  padding-left: 0;\n  padding-right: 0;\n  .box-sizing(border-box);\n}\n\n// Vertically space out multiple block buttons\n.btn-block + .btn-block {\n  margin-top: 5px;\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n  &.btn-block {\n    width: 100%;\n  }\n}\n\n\n\n// Alternate buttons\n// --------------------------------------------------\n\n// Provide *some* extra contrast for those who can get it\n.btn-primary.active,\n.btn-warning.active,\n.btn-danger.active,\n.btn-success.active,\n.btn-info.active,\n.btn-inverse.active {\n  color: rgba(255,255,255,.75);\n}\n\n// Set the backgrounds\n// -------------------------\n.btn-primary {\n  .buttonBackground(@btnPrimaryBackground, @btnPrimaryBackgroundHighlight);\n}\n// Warning appears are orange\n.btn-warning {\n  .buttonBackground(@btnWarningBackground, @btnWarningBackgroundHighlight);\n}\n// Danger and error appear as red\n.btn-danger {\n  .buttonBackground(@btnDangerBackground, @btnDangerBackgroundHighlight);\n}\n// Success appears as green\n.btn-success {\n  .buttonBackground(@btnSuccessBackground, @btnSuccessBackgroundHighlight);\n}\n// Info appears as a neutral blue\n.btn-info {\n  .buttonBackground(@btnInfoBackground, @btnInfoBackgroundHighlight);\n}\n// Inverse appears as dark gray\n.btn-inverse {\n  .buttonBackground(@btnInverseBackground, @btnInverseBackgroundHighlight);\n}\n\n\n// Cross-browser Jank\n// --------------------------------------------------\n\nbutton.btn,\ninput[type=\"submit\"].btn {\n\n  // Firefox 3.6 only I believe\n  &::-moz-focus-inner {\n    padding: 0;\n    border: 0;\n  }\n\n  // IE7 has some default padding on button controls\n  *padding-top: 3px;\n  *padding-bottom: 3px;\n\n  &.btn-large {\n    *padding-top: 7px;\n    *padding-bottom: 7px;\n  }\n  &.btn-small {\n    *padding-top: 3px;\n    *padding-bottom: 3px;\n  }\n  &.btn-mini {\n    *padding-top: 1px;\n    *padding-bottom: 1px;\n  }\n}\n\n\n// Link buttons\n// --------------------------------------------------\n\n// Make a button look and behave like a link\n.btn-link,\n.btn-link:active,\n.btn-link[disabled] {\n  background-color: transparent;\n  background-image: none;\n  .box-shadow(none);\n}\n.btn-link {\n  border-color: transparent;\n  cursor: pointer;\n  color: @linkColor;\n  .border-radius(0);\n}\n.btn-link:hover,\n.btn-link:focus {\n  color: @linkColorHover;\n  text-decoration: underline;\n  background-color: transparent;\n}\n.btn-link[disabled]:hover,\n.btn-link[disabled]:focus {\n  color: @grayDark;\n  text-decoration: none;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/carousel.less",
    "content": "//\n// Carousel\n// --------------------------------------------------\n\n\n.carousel {\n  position: relative;\n  margin-bottom: @baseLineHeight;\n  line-height: 1;\n}\n\n.carousel-inner {\n  overflow: hidden;\n  width: 100%;\n  position: relative;\n}\n\n.carousel-inner {\n\n  > .item {\n    display: none;\n    position: relative;\n    .transition(.6s ease-in-out left);\n\n    // Account for jankitude on images\n    > img,\n    > a > img {\n      display: block;\n      line-height: 1;\n    }\n  }\n\n  > .active,\n  > .next,\n  > .prev { display: block; }\n\n  > .active {\n    left: 0;\n  }\n\n  > .next,\n  > .prev {\n    position: absolute;\n    top: 0;\n    width: 100%;\n  }\n\n  > .next {\n    left: 100%;\n  }\n  > .prev {\n    left: -100%;\n  }\n  > .next.left,\n  > .prev.right {\n    left: 0;\n  }\n\n  > .active.left {\n    left: -100%;\n  }\n  > .active.right {\n    left: 100%;\n  }\n\n}\n\n// Left/right controls for nav\n// ---------------------------\n\n.carousel-control {\n  position: absolute;\n  top: 40%;\n  left: 15px;\n  width: 40px;\n  height: 40px;\n  margin-top: -20px;\n  font-size: 60px;\n  font-weight: 100;\n  line-height: 30px;\n  color: @white;\n  text-align: center;\n  background: @grayDarker;\n  border: 3px solid @white;\n  .border-radius(23px);\n  .opacity(50);\n\n  // we can't have this transition here\n  // because webkit cancels the carousel\n  // animation if you trip this while\n  // in the middle of another animation\n  // ;_;\n  // .transition(opacity .2s linear);\n\n  // Reposition the right one\n  &.right {\n    left: auto;\n    right: 15px;\n  }\n\n  // Hover/focus state\n  &:hover,\n  &:focus {\n    color: @white;\n    text-decoration: none;\n    .opacity(90);\n  }\n}\n\n// Carousel indicator pips\n// -----------------------------\n.carousel-indicators {\n  position: absolute;\n  top: 15px;\n  right: 15px;\n  z-index: 5;\n  margin: 0;\n  list-style: none;\n\n  li {\n    display: block;\n    float: left;\n    width: 10px;\n    height: 10px;\n    margin-left: 5px;\n    text-indent: -999px;\n    background-color: #ccc;\n    background-color: rgba(255,255,255,.25);\n    border-radius: 5px;\n  }\n  .active {\n    background-color: #fff;\n  }\n}\n\n// Caption for text below images\n// -----------------------------\n\n.carousel-caption {\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  padding: 15px;\n  background: @grayDark;\n  background: rgba(0,0,0,.75);\n}\n.carousel-caption h4,\n.carousel-caption p {\n  color: @white;\n  line-height: @baseLineHeight;\n}\n.carousel-caption h4 {\n  margin: 0 0 5px;\n}\n.carousel-caption p {\n  margin-bottom: 0;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/close.less",
    "content": "//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n  float: right;\n  font-size: 20px;\n  font-weight: bold;\n  line-height: @baseLineHeight;\n  color: @black;\n  text-shadow: 0 1px 0 rgba(255,255,255,1);\n  .opacity(20);\n  &:hover,\n  &:focus {\n    color: @black;\n    text-decoration: none;\n    cursor: pointer;\n    .opacity(40);\n  }\n}\n\n// Additional properties for button version\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\nbutton.close {\n  padding: 0;\n  cursor: pointer;\n  background: transparent;\n  border: 0;\n  -webkit-appearance: none;\n}"
  },
  {
    "path": "dist/lib/bootstrap2/code.less",
    "content": "//\n// Code (inline and blocK)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\npre {\n  padding: 0 3px 2px;\n  #font > #family > .monospace;\n  font-size: @baseFontSize - 2;\n  color: @grayDark;\n  .border-radius(3px);\n}\n\n// Inline code\ncode {\n  padding: 2px 4px;\n  color: #d14;\n  background-color: #f7f7f9;\n  border: 1px solid #e1e1e8;\n  white-space: nowrap;\n}\n\n// Blocks of code\npre {\n  display: block;\n  padding: (@baseLineHeight - 1) / 2;\n  margin: 0 0 @baseLineHeight / 2;\n  font-size: @baseFontSize - 1; // 14px to 13px\n  line-height: @baseLineHeight;\n  word-break: break-all;\n  word-wrap: break-word;\n  white-space: pre;\n  white-space: pre-wrap;\n  background-color: #f5f5f5;\n  border: 1px solid #ccc; // fallback for IE7-8\n  border: 1px solid rgba(0,0,0,.15);\n  .border-radius(@baseBorderRadius);\n\n  // Make prettyprint styles more spaced out for readability\n  &.prettyprint {\n    margin-bottom: @baseLineHeight;\n  }\n\n  // Account for some code outputs that place code tags in pre tags\n  code {\n    padding: 0;\n    color: inherit;\n    white-space: pre;\n    white-space: pre-wrap;\n    background-color: transparent;\n    border: 0;\n  }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll;\n}"
  },
  {
    "path": "dist/lib/bootstrap2/component-animations.less",
    "content": "//\n// Component animations\n// --------------------------------------------------\n\n\n.fade {\n  opacity: 0;\n  .transition(opacity .15s linear);\n  &.in {\n    opacity: 1;\n  }\n}\n\n.collapse {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  .transition(height .35s ease);\n  &.in {\n    height: auto;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/dropdowns.less",
    "content": "//\n// Dropdown menus\n// --------------------------------------------------\n\n\n// Use the .menu class on any <li> element within the topbar or ul.tabs and you'll get some superfancy dropdowns\n.dropup,\n.dropdown {\n  position: relative;\n}\n.dropdown-toggle {\n  // The caret makes the toggle a bit too tall in IE7\n  *margin-bottom: -3px;\n}\n.dropdown-toggle:active,\n.open .dropdown-toggle {\n  outline: 0;\n}\n\n// Dropdown arrow/caret\n// --------------------\n.caret {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  vertical-align: top;\n  border-top:   4px solid @black;\n  border-right: 4px solid transparent;\n  border-left:  4px solid transparent;\n  content: \"\";\n}\n\n// Place the caret\n.dropdown .caret {\n  margin-top: 8px;\n  margin-left: 2px;\n}\n\n// The dropdown menu (ul)\n// ----------------------\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: @zindexDropdown;\n  display: none; // none by default, but block on \"open\" of the menu\n  float: left;\n  min-width: 160px;\n  padding: 5px 0;\n  margin: 2px 0 0; // override default ul\n  list-style: none;\n  background-color: @dropdownBackground;\n  border: 1px solid #ccc; // Fallback for IE7-8\n  border: 1px solid @dropdownBorder;\n  *border-right-width: 2px;\n  *border-bottom-width: 2px;\n  .border-radius(6px);\n  .box-shadow(0 5px 10px rgba(0,0,0,.2));\n  -webkit-background-clip: padding-box;\n     -moz-background-clip: padding;\n          background-clip: padding-box;\n\n  // Aligns the dropdown menu to right\n  &.pull-right {\n    right: 0;\n    left: auto;\n  }\n\n  // Dividers (basically an hr) within the dropdown\n  .divider {\n    .nav-divider(@dropdownDividerTop, @dropdownDividerBottom);\n  }\n\n  // Links within the dropdown menu\n  > li > a {\n    display: block;\n    padding: 3px 20px;\n    clear: both;\n    font-weight: normal;\n    line-height: @baseLineHeight;\n    color: @dropdownLinkColor;\n    white-space: nowrap;\n  }\n}\n\n// Hover/Focus state\n// -----------\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus,\n.dropdown-submenu:hover > a,\n.dropdown-submenu:focus > a {\n  text-decoration: none;\n  color: @dropdownLinkColorHover;\n  #gradient > .vertical(@dropdownLinkBackgroundHover, darken(@dropdownLinkBackgroundHover, 5%));\n}\n\n// Active state\n// ------------\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n  color: @dropdownLinkColorActive;\n  text-decoration: none;\n  outline: 0;\n  #gradient > .vertical(@dropdownLinkBackgroundActive, darken(@dropdownLinkBackgroundActive, 5%));\n}\n\n// Disabled state\n// --------------\n// Gray out text and ensure the hover/focus state remains gray\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n  color: @grayLight;\n}\n// Nuke hover/focus effects\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n  text-decoration: none;\n  background-color: transparent;\n  background-image: none; // Remove CSS gradient\n  .reset-filter();\n  cursor: default;\n}\n\n// Open state for the dropdown\n// ---------------------------\n.open {\n  // IE7's z-index only goes to the nearest positioned ancestor, which would\n  // make the menu appear below buttons that appeared later on the page\n  *z-index: @zindexDropdown;\n\n  & > .dropdown-menu {\n    display: block;\n  }\n}\n\n// Backdrop to catch body clicks on mobile, etc.\n// ---------------------------\n.dropdown-backdrop {\n  position: fixed;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  top: 0;\n  z-index: @zindexDropdown - 10;\n}\n\n// Right aligned dropdowns\n// ---------------------------\n.pull-right > .dropdown-menu {\n  right: 0;\n  left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// ------------------------------------------------------\n// Just add .dropup after the standard .dropdown class and you're set, bro.\n// TODO: abstract this so that the navbar fixed styles are not placed here?\n.dropup,\n.navbar-fixed-bottom .dropdown {\n  // Reverse the caret\n  .caret {\n    border-top: 0;\n    border-bottom: 4px solid @black;\n    content: \"\";\n  }\n  // Different positioning for bottom up menu\n  .dropdown-menu {\n    top: auto;\n    bottom: 100%;\n    margin-bottom: 1px;\n  }\n}\n\n// Sub menus\n// ---------------------------\n.dropdown-submenu {\n  position: relative;\n}\n// Default dropdowns\n.dropdown-submenu > .dropdown-menu {\n  top: 0;\n  left: 100%;\n  margin-top: -6px;\n  margin-left: -1px;\n  .border-radius(0 6px 6px 6px);\n}\n.dropdown-submenu:hover > .dropdown-menu {\n  display: block;\n}\n\n// Dropups\n.dropup .dropdown-submenu > .dropdown-menu {\n  top: auto;\n  bottom: 0;\n  margin-top: 0;\n  margin-bottom: -2px;\n  .border-radius(5px 5px 5px 0);\n}\n\n// Caret to indicate there is a submenu\n.dropdown-submenu > a:after {\n  display: block;\n  content: \" \";\n  float: right;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n  border-width: 5px 0 5px 5px;\n  border-left-color: darken(@dropdownBackground, 20%);\n  margin-top: 5px;\n  margin-right: -10px;\n}\n.dropdown-submenu:hover > a:after {\n  border-left-color: @dropdownLinkColorHover;\n}\n\n// Left aligned submenus\n.dropdown-submenu.pull-left {\n  // Undo the float\n  // Yes, this is awkward since .pull-left adds a float, but it sticks to our conventions elsewhere.\n  float: none;\n\n  // Positioning the submenu\n  > .dropdown-menu {\n    left: -100%;\n    margin-left: 10px;\n    .border-radius(6px 0 6px 6px);\n  }\n}\n\n// Tweak nav headers\n// -----------------\n// Increase padding from 15px to 20px on sides\n.dropdown .dropdown-menu .nav-header {\n  padding-left: 20px;\n  padding-right: 20px;\n}\n\n// Typeahead\n// ---------\n.typeahead {\n  z-index: 1051;\n  margin-top: 2px; // give it some space to breathe\n  .border-radius(@baseBorderRadius);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/forms.less",
    "content": "//\n// Forms\n// --------------------------------------------------\n\n\n// GENERAL STYLES\n// --------------\n\n// Make all forms have space below them\nform {\n  margin: 0 0 @baseLineHeight;\n}\n\nfieldset {\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\n// Groups of fields with labels on top (legends)\nlegend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: @baseLineHeight;\n  font-size: @baseFontSize * 1.5;\n  line-height: @baseLineHeight * 2;\n  color: @grayDark;\n  border: 0;\n  border-bottom: 1px solid #e5e5e5;\n\n  // Small\n  small {\n    font-size: @baseLineHeight * .75;\n    color: @grayLight;\n  }\n}\n\n// Set font for forms\nlabel,\ninput,\nbutton,\nselect,\ntextarea {\n  #font > .shorthand(@baseFontSize,normal,@baseLineHeight); // Set size, weight, line-height here\n}\ninput,\nbutton,\nselect,\ntextarea {\n  font-family: @baseFontFamily; // And only set font-family here for those that need it (note the missing label element)\n}\n\n// Identify controls by their labels\nlabel {\n  display: block;\n  margin-bottom: 5px;\n}\n\n// Form controls\n// -------------------------\n\n// Shared size and type resets\nselect,\ntextarea,\ninput[type=\"text\"],\ninput[type=\"password\"],\ninput[type=\"datetime\"],\ninput[type=\"datetime-local\"],\ninput[type=\"date\"],\ninput[type=\"month\"],\ninput[type=\"time\"],\ninput[type=\"week\"],\ninput[type=\"number\"],\ninput[type=\"email\"],\ninput[type=\"url\"],\ninput[type=\"search\"],\ninput[type=\"tel\"],\ninput[type=\"color\"],\n.uneditable-input {\n  display: inline-block;\n  height: @baseLineHeight;\n  padding: 4px 6px;\n  margin-bottom: @baseLineHeight / 2;\n  font-size: @baseFontSize;\n  line-height: @baseLineHeight;\n  color: @gray;\n  .border-radius(@inputBorderRadius);\n  vertical-align: middle;\n}\n\n// Reset appearance properties for textual inputs and textarea\n// Declare width for legacy (can't be on input[type=*] selectors or it's too specific)\ninput,\ntextarea,\n.uneditable-input {\n  width: 206px; // plus 12px padding and 2px border\n}\n// Reset height since textareas have rows\ntextarea {\n  height: auto;\n}\n// Everything else\ntextarea,\ninput[type=\"text\"],\ninput[type=\"password\"],\ninput[type=\"datetime\"],\ninput[type=\"datetime-local\"],\ninput[type=\"date\"],\ninput[type=\"month\"],\ninput[type=\"time\"],\ninput[type=\"week\"],\ninput[type=\"number\"],\ninput[type=\"email\"],\ninput[type=\"url\"],\ninput[type=\"search\"],\ninput[type=\"tel\"],\ninput[type=\"color\"],\n.uneditable-input {\n  background-color: @inputBackground;\n  border: 1px solid @inputBorder;\n  .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));\n  .transition(~\"border linear .2s, box-shadow linear .2s\");\n\n  // Focus state\n  &:focus {\n    border-color: rgba(82,168,236,.8);\n    outline: 0;\n    outline: thin dotted \\9; /* IE6-9 */\n    .box-shadow(~\"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)\");\n  }\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  margin: 4px 0 0;\n  *margin-top: 0; /* IE7 */\n  margin-top: 1px \\9; /* IE8-9 */\n  line-height: normal;\n}\n\n// Reset width of input images, buttons, radios, checkboxes\ninput[type=\"file\"],\ninput[type=\"image\"],\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"],\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  width: auto; // Override of generic input selector\n}\n\n// Set the height of select and file controls to match text inputs\nselect,\ninput[type=\"file\"] {\n  height: @inputHeight; /* In IE7, the height of the select element cannot be changed by height, only font-size */\n  *margin-top: 4px; /* For IE7, add top margin to align select with labels */\n  line-height: @inputHeight;\n}\n\n// Make select elements obey height by applying a border\nselect {\n  width: 220px; // default input width + 10px of padding that doesn't get applied\n  border: 1px solid @inputBorder;\n  background-color: @inputBackground; // Chrome on Linux and Mobile Safari need background-color\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n  height: auto;\n}\n\n// Focus for select, file, radio, and checkbox\nselect:focus,\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n  .tab-focus();\n}\n\n\n// Uneditable inputs\n// -------------------------\n\n// Make uneditable inputs look inactive\n.uneditable-input,\n.uneditable-textarea {\n  color: @grayLight;\n  background-color: darken(@inputBackground, 1%);\n  border-color: @inputBorder;\n  .box-shadow(inset 0 1px 2px rgba(0,0,0,.025));\n  cursor: not-allowed;\n}\n\n// For text that needs to appear as an input but should not be an input\n.uneditable-input {\n  overflow: hidden; // prevent text from wrapping, but still cut it off like an input does\n  white-space: nowrap;\n}\n\n// Make uneditable textareas behave like a textarea\n.uneditable-textarea {\n  width: auto;\n  height: auto;\n}\n\n\n// Placeholder\n// -------------------------\n\n// Placeholder text gets special styles because when browsers invalidate entire lines if it doesn't understand a selector\ninput,\ntextarea {\n  .placeholder();\n}\n\n\n// CHECKBOXES & RADIOS\n// -------------------\n\n// Indent the labels to position radios/checkboxes as hanging\n.radio,\n.checkbox {\n  min-height: @baseLineHeight; // clear the floating input if there is no label text\n  padding-left: 20px;\n}\n.radio input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"] {\n  float: left;\n  margin-left: -20px;\n}\n\n// Move the options list down to align with labels\n.controls > .radio:first-child,\n.controls > .checkbox:first-child {\n  padding-top: 5px; // has to be padding because margin collaspes\n}\n\n// Radios and checkboxes on same line\n// TODO v3: Convert .inline to .control-inline\n.radio.inline,\n.checkbox.inline {\n  display: inline-block;\n  padding-top: 5px;\n  margin-bottom: 0;\n  vertical-align: middle;\n}\n.radio.inline + .radio.inline,\n.checkbox.inline + .checkbox.inline {\n  margin-left: 10px; // space out consecutive inline controls\n}\n\n\n\n// INPUT SIZES\n// -----------\n\n// General classes for quick sizes\n.input-mini       { width: 60px; }\n.input-small      { width: 90px; }\n.input-medium     { width: 150px; }\n.input-large      { width: 210px; }\n.input-xlarge     { width: 270px; }\n.input-xxlarge    { width: 530px; }\n\n// Grid style input sizes\ninput[class*=\"span\"],\nselect[class*=\"span\"],\ntextarea[class*=\"span\"],\n.uneditable-input[class*=\"span\"],\n// Redeclare since the fluid row class is more specific\n.row-fluid input[class*=\"span\"],\n.row-fluid select[class*=\"span\"],\n.row-fluid textarea[class*=\"span\"],\n.row-fluid .uneditable-input[class*=\"span\"] {\n  float: none;\n  margin-left: 0;\n}\n// Ensure input-prepend/append never wraps\n.input-append input[class*=\"span\"],\n.input-append .uneditable-input[class*=\"span\"],\n.input-prepend input[class*=\"span\"],\n.input-prepend .uneditable-input[class*=\"span\"],\n.row-fluid input[class*=\"span\"],\n.row-fluid select[class*=\"span\"],\n.row-fluid textarea[class*=\"span\"],\n.row-fluid .uneditable-input[class*=\"span\"],\n.row-fluid .input-prepend [class*=\"span\"],\n.row-fluid .input-append [class*=\"span\"] {\n  display: inline-block;\n}\n\n\n\n// GRID SIZING FOR INPUTS\n// ----------------------\n\n// Grid sizes\n#grid > .input(@gridColumnWidth, @gridGutterWidth);\n\n// Control row for multiple inputs per line\n.controls-row {\n  .clearfix(); // Clear the float from controls\n}\n\n// Float to collapse white-space for proper grid alignment\n.controls-row [class*=\"span\"],\n// Redeclare the fluid grid collapse since we undo the float for inputs\n.row-fluid .controls-row [class*=\"span\"] {\n  float: left;\n}\n// Explicity set top padding on all checkboxes/radios, not just first-child\n.controls-row .checkbox[class*=\"span\"],\n.controls-row .radio[class*=\"span\"] {\n  padding-top: 5px;\n}\n\n\n\n\n// DISABLED STATE\n// --------------\n\n// Disabled and read-only inputs\ninput[disabled],\nselect[disabled],\ntextarea[disabled],\ninput[readonly],\nselect[readonly],\ntextarea[readonly] {\n  cursor: not-allowed;\n  background-color: @inputDisabledBackground;\n}\n// Explicitly reset the colors here\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"][readonly],\ninput[type=\"checkbox\"][readonly] {\n  background-color: transparent;\n}\n\n\n\n\n// FORM FIELD FEEDBACK STATES\n// --------------------------\n\n// Warning\n.control-group.warning {\n  .formFieldState(@warningText, @warningText, @warningBackground);\n}\n// Error\n.control-group.error {\n  .formFieldState(@errorText, @errorText, @errorBackground);\n}\n// Success\n.control-group.success {\n  .formFieldState(@successText, @successText, @successBackground);\n}\n// Success\n.control-group.info {\n  .formFieldState(@infoText, @infoText, @infoBackground);\n}\n\n// HTML5 invalid states\n// Shares styles with the .control-group.error above\ninput:focus:invalid,\ntextarea:focus:invalid,\nselect:focus:invalid {\n  color: #b94a48;\n  border-color: #ee5f5b;\n  &:focus {\n    border-color: darken(#ee5f5b, 10%);\n    @shadow: 0 0 6px lighten(#ee5f5b, 20%);\n    .box-shadow(@shadow);\n  }\n}\n\n\n\n// FORM ACTIONS\n// ------------\n\n.form-actions {\n  padding: (@baseLineHeight - 1) 20px @baseLineHeight;\n  margin-top: @baseLineHeight;\n  margin-bottom: @baseLineHeight;\n  background-color: @formActionsBackground;\n  border-top: 1px solid #e5e5e5;\n  .clearfix(); // Adding clearfix to allow for .pull-right button containers\n}\n\n\n\n// HELP TEXT\n// ---------\n\n.help-block,\n.help-inline {\n  color: lighten(@textColor, 15%); // lighten the text some for contrast\n}\n\n.help-block {\n  display: block; // account for any element using help-block\n  margin-bottom: @baseLineHeight / 2;\n}\n\n.help-inline {\n  display: inline-block;\n  .ie7-inline-block();\n  vertical-align: middle;\n  padding-left: 5px;\n}\n\n\n\n// INPUT GROUPS\n// ------------\n\n// Allow us to put symbols and text within the input field for a cleaner look\n.input-append,\n.input-prepend {\n  display: inline-block;\n  margin-bottom: @baseLineHeight / 2;\n  vertical-align: middle;\n  font-size: 0; // white space collapse hack\n  white-space: nowrap; // Prevent span and input from separating\n\n  // Reset the white space collapse hack\n  input,\n  select,\n  .uneditable-input,\n  .dropdown-menu,\n  .popover {\n    font-size: @baseFontSize;\n  }\n\n  input,\n  select,\n  .uneditable-input {\n    position: relative; // placed here by default so that on :focus we can place the input above the .add-on for full border and box-shadow goodness\n    margin-bottom: 0; // prevent bottom margin from screwing up alignment in stacked forms\n    *margin-left: 0;\n    vertical-align: top;\n    .border-radius(0 @inputBorderRadius @inputBorderRadius 0);\n    // Make input on top when focused so blue border and shadow always show\n    &:focus {\n      z-index: 2;\n    }\n  }\n  .add-on {\n    display: inline-block;\n    width: auto;\n    height: @baseLineHeight;\n    min-width: 16px;\n    padding: 4px 5px;\n    font-size: @baseFontSize;\n    font-weight: normal;\n    line-height: @baseLineHeight;\n    text-align: center;\n    text-shadow: 0 1px 0 @white;\n    background-color: @grayLighter;\n    border: 1px solid #ccc;\n  }\n  .add-on,\n  .btn,\n  .btn-group > .dropdown-toggle {\n    vertical-align: top;\n    .border-radius(0);\n  }\n  .active {\n    background-color: lighten(@green, 30);\n    border-color: @green;\n  }\n}\n\n.input-prepend {\n  .add-on,\n  .btn {\n    margin-right: -1px;\n  }\n  .add-on:first-child,\n  .btn:first-child {\n    // FYI, `.btn:first-child` accounts for a button group that's prepended\n    .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);\n  }\n}\n\n.input-append {\n  input,\n  select,\n  .uneditable-input {\n    .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);\n    + .btn-group .btn:last-child {\n      .border-radius(0 @inputBorderRadius @inputBorderRadius 0);\n    }\n  }\n  .add-on,\n  .btn,\n  .btn-group {\n    margin-left: -1px;\n  }\n  .add-on:last-child,\n  .btn:last-child,\n  .btn-group:last-child > .dropdown-toggle {\n    .border-radius(0 @inputBorderRadius @inputBorderRadius 0);\n  }\n}\n\n// Remove all border-radius for inputs with both prepend and append\n.input-prepend.input-append {\n  input,\n  select,\n  .uneditable-input {\n    .border-radius(0);\n    + .btn-group .btn {\n      .border-radius(0 @inputBorderRadius @inputBorderRadius 0);\n    }\n  }\n  .add-on:first-child,\n  .btn:first-child {\n    margin-right: -1px;\n    .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);\n  }\n  .add-on:last-child,\n  .btn:last-child {\n    margin-left: -1px;\n    .border-radius(0 @inputBorderRadius @inputBorderRadius 0);\n  }\n  .btn-group:first-child {\n    margin-left: 0;\n  }\n}\n\n\n\n\n// SEARCH FORM\n// -----------\n\ninput.search-query {\n  padding-right: 14px;\n  padding-right: 4px \\9;\n  padding-left: 14px;\n  padding-left: 4px \\9; /* IE7-8 doesn't have border-radius, so don't indent the padding */\n  margin-bottom: 0; // Remove the default margin on all inputs\n  .border-radius(15px);\n}\n\n/* Allow for input prepend/append in search forms */\n.form-search .input-append .search-query,\n.form-search .input-prepend .search-query {\n  .border-radius(0); // Override due to specificity\n}\n.form-search .input-append .search-query {\n  .border-radius(14px 0 0 14px);\n}\n.form-search .input-append .btn {\n  .border-radius(0 14px 14px 0);\n}\n.form-search .input-prepend .search-query {\n  .border-radius(0 14px 14px 0);\n}\n.form-search .input-prepend .btn {\n  .border-radius(14px 0 0 14px);\n}\n\n\n\n\n// HORIZONTAL & VERTICAL FORMS\n// ---------------------------\n\n// Common properties\n// -----------------\n\n.form-search,\n.form-inline,\n.form-horizontal {\n  input,\n  textarea,\n  select,\n  .help-inline,\n  .uneditable-input,\n  .input-prepend,\n  .input-append {\n    display: inline-block;\n    .ie7-inline-block();\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  // Re-hide hidden elements due to specifity\n  .hide {\n    display: none;\n  }\n}\n.form-search label,\n.form-inline label,\n.form-search .btn-group,\n.form-inline .btn-group {\n  display: inline-block;\n}\n// Remove margin for input-prepend/-append\n.form-search .input-append,\n.form-inline .input-append,\n.form-search .input-prepend,\n.form-inline .input-prepend {\n  margin-bottom: 0;\n}\n// Inline checkbox/radio labels (remove padding on left)\n.form-search .radio,\n.form-search .checkbox,\n.form-inline .radio,\n.form-inline .checkbox {\n  padding-left: 0;\n  margin-bottom: 0;\n  vertical-align: middle;\n}\n// Remove float and margin, set to inline-block\n.form-search .radio input[type=\"radio\"],\n.form-search .checkbox input[type=\"checkbox\"],\n.form-inline .radio input[type=\"radio\"],\n.form-inline .checkbox input[type=\"checkbox\"] {\n  float: left;\n  margin-right: 3px;\n  margin-left: 0;\n}\n\n\n// Margin to space out fieldsets\n.control-group {\n  margin-bottom: @baseLineHeight / 2;\n}\n\n// Legend collapses margin, so next element is responsible for spacing\nlegend + .control-group {\n  margin-top: @baseLineHeight;\n  -webkit-margin-top-collapse: separate;\n}\n\n// Horizontal-specific styles\n// --------------------------\n\n.form-horizontal {\n  // Increase spacing between groups\n  .control-group {\n    margin-bottom: @baseLineHeight;\n    .clearfix();\n  }\n  // Float the labels left\n  .control-label {\n    float: left;\n    width: @horizontalComponentOffset - 20;\n    padding-top: 5px;\n    text-align: right;\n  }\n  // Move over all input controls and content\n  .controls {\n    // Super jank IE7 fix to ensure the inputs in .input-append and input-prepend\n    // don't inherit the margin of the parent, in this case .controls\n    *display: inline-block;\n    *padding-left: 20px;\n    margin-left: @horizontalComponentOffset;\n    *margin-left: 0;\n    &:first-child {\n      *padding-left: @horizontalComponentOffset;\n    }\n  }\n  // Remove bottom margin on block level help text since that's accounted for on .control-group\n  .help-block {\n    margin-bottom: 0;\n  }\n  // And apply it only to .help-block instances that follow a form control\n  input,\n  select,\n  textarea,\n  .uneditable-input,\n  .input-prepend,\n  .input-append {\n    + .help-block {\n      margin-top: @baseLineHeight / 2;\n    }\n  }\n  // Move over buttons in .form-actions to align with .controls\n  .form-actions {\n    padding-left: @horizontalComponentOffset;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/grid.less",
    "content": "//\n// Grid system\n// --------------------------------------------------\n\n\n// Fixed (940px)\n#grid > .core(@gridColumnWidth, @gridGutterWidth);\n\n// Fluid (940px)\n#grid > .fluid(@fluidGridColumnWidth, @fluidGridGutterWidth);\n\n// Reset utility classes due to specificity\n[class*=\"span\"].hide,\n.row-fluid [class*=\"span\"].hide {\n  display: none;\n}\n\n[class*=\"span\"].pull-right,\n.row-fluid [class*=\"span\"].pull-right {\n  float: right;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/hero-unit.less",
    "content": "//\n// Hero unit\n// --------------------------------------------------\n\n\n.hero-unit {\n  padding: 60px;\n  margin-bottom: 30px;\n  font-size: 18px;\n  font-weight: 200;\n  line-height: @baseLineHeight * 1.5;\n  color: @heroUnitLeadColor;\n  background-color: @heroUnitBackground;\n  .border-radius(6px);\n  h1 {\n    margin-bottom: 0;\n    font-size: 60px;\n    line-height: 1;\n    color: @heroUnitHeadingColor;\n    letter-spacing: -1px;\n  }\n  li {\n    line-height: @baseLineHeight * 1.5; // Reset since we specify in type.less\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/labels-badges.less",
    "content": "//\n// Labels and badges\n// --------------------------------------------------\n\n\n// Base classes\n.label,\n.badge {\n  display: inline-block;\n  padding: 2px 4px;\n  font-size: @baseFontSize * .846;\n  font-weight: bold;\n  line-height: 14px; // ensure proper line-height if floated\n  color: @white;\n  vertical-align: baseline;\n  white-space: nowrap;\n  text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n  background-color: @grayLight;\n}\n// Set unique padding and border-radii\n.label {\n  .border-radius(3px);\n}\n.badge {\n  padding-left: 9px;\n  padding-right: 9px;\n  .border-radius(9px);\n}\n\n// Empty labels/badges collapse\n.label,\n.badge {\n  &:empty {\n    display: none;\n  }\n}\n\n// Hover/focus state, but only for links\na {\n  &.label:hover,\n  &.label:focus,\n  &.badge:hover,\n  &.badge:focus {\n    color: @white;\n    text-decoration: none;\n    cursor: pointer;\n  }\n}\n\n// Colors\n// Only give background-color difference to links (and to simplify, we don't qualifty with `a` but [href] attribute)\n.label,\n.badge {\n  // Important (red)\n  &-important         { background-color: @errorText; }\n  &-important[href]   { background-color: darken(@errorText, 10%); }\n  // Warnings (orange)\n  &-warning           { background-color: @orange; }\n  &-warning[href]     { background-color: darken(@orange, 10%); }\n  // Success (green)\n  &-success           { background-color: @successText; }\n  &-success[href]     { background-color: darken(@successText, 10%); }\n  // Info (turquoise)\n  &-info              { background-color: @infoText; }\n  &-info[href]        { background-color: darken(@infoText, 10%); }\n  // Inverse (black)\n  &-inverse           { background-color: @grayDark; }\n  &-inverse[href]     { background-color: darken(@grayDark, 10%); }\n}\n\n// Quick fix for labels/badges in buttons\n.btn {\n  .label,\n  .badge {\n    position: relative;\n    top: -1px;\n  }\n}\n.btn-mini {\n  .label,\n  .badge {\n    top: 0;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/layouts.less",
    "content": "//\n// Layouts\n// --------------------------------------------------\n\n\n// Container (centered, fixed-width layouts)\n.container {\n  .container-fixed();\n}\n\n// Fluid layouts (left aligned, with sidebar, min- & max-width content)\n.container-fluid {\n  padding-right: @gridGutterWidth;\n  padding-left: @gridGutterWidth;\n  .clearfix();\n}"
  },
  {
    "path": "dist/lib/bootstrap2/media.less",
    "content": "// Media objects\n// Source: http://stubbornella.org/content/?p=497\n// --------------------------------------------------\n\n\n// Common styles\n// -------------------------\n\n// Clear the floats\n.media,\n.media-body {\n  overflow: hidden;\n  *overflow: visible;\n  zoom: 1;\n}\n\n// Proper spacing between instances of .media\n.media,\n.media .media {\n  margin-top: 15px;\n}\n.media:first-child {\n  margin-top: 0;\n}\n\n// For images and videos, set to block\n.media-object {\n  display: block;\n}\n\n// Reset margins on headings for tighter default spacing\n.media-heading {\n  margin: 0 0 5px;\n}\n\n\n// Media image alignment\n// -------------------------\n\n.media > .pull-left {\n  margin-right: 10px;\n}\n.media > .pull-right {\n  margin-left: 10px;\n}\n\n\n// Media list variation\n// -------------------------\n\n// Undo default ul/ol styles\n.media-list {\n  margin-left: 0;\n  list-style: none;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/mixins.less",
    "content": "//\n// Mixins\n// --------------------------------------------------\n\n\n// UTILITY MIXINS\n// --------------------------------------------------\n\n// Clearfix\n// --------\n// For clearing floats like a boss h5bp.com/q\n.clearfix {\n  *zoom: 1;\n  &:before,\n  &:after {\n    display: table;\n    content: \"\";\n    // Fixes Opera/contenteditable bug:\n    // http://nicolasgallagher.com/micro-clearfix-hack/#comment-36952\n    line-height: 0;\n  }\n  &:after {\n    clear: both;\n  }\n}\n\n// Webkit-style focus\n// ------------------\n.tab-focus() {\n  // Default\n  outline: thin dotted #333;\n  // Webkit\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n\n// Center-align a block level element\n// ----------------------------------\n.center-block() {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n// IE7 inline-block\n// ----------------\n.ie7-inline-block() {\n  *display: inline; /* IE7 inline-block hack */\n  *zoom: 1;\n}\n\n// IE7 likes to collapse whitespace on either side of the inline-block elements.\n// Ems because we're attempting to match the width of a space character. Left\n// version is for form buttons, which typically come after other elements, and\n// right version is for icons, which come before. Applying both is ok, but it will\n// mean that space between those elements will be .6em (~2 space characters) in IE7,\n// instead of the 1 space in other browsers.\n.ie7-restore-left-whitespace() {\n  *margin-left: .3em;\n\n  &:first-child {\n    *margin-left: 0;\n  }\n}\n\n.ie7-restore-right-whitespace() {\n  *margin-right: .3em;\n}\n\n// Sizing shortcuts\n// -------------------------\n.size(@height, @width) {\n  width: @width;\n  height: @height;\n}\n.square(@size) {\n  .size(@size, @size);\n}\n\n// Placeholder text\n// -------------------------\n.placeholder(@color: @placeholderText) {\n  &:-moz-placeholder {\n    color: @color;\n  }\n  &:-ms-input-placeholder {\n    color: @color;\n  }\n  &::-webkit-input-placeholder {\n    color: @color;\n  }\n}\n\n// Text overflow\n// -------------------------\n// Requires inline-block or block for proper styling\n.text-overflow() {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n// CSS image replacement\n// -------------------------\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n.hide-text {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n\n// FONTS\n// --------------------------------------------------\n\n#font {\n  #family {\n    .serif() {\n      font-family: @serifFontFamily;\n    }\n    .sans-serif() {\n      font-family: @sansFontFamily;\n    }\n    .monospace() {\n      font-family: @monoFontFamily;\n    }\n  }\n  .shorthand(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {\n    font-size: @size;\n    font-weight: @weight;\n    line-height: @lineHeight;\n  }\n  .serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {\n    #font > #family > .serif;\n    #font > .shorthand(@size, @weight, @lineHeight);\n  }\n  .sans-serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {\n    #font > #family > .sans-serif;\n    #font > .shorthand(@size, @weight, @lineHeight);\n  }\n  .monospace(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {\n    #font > #family > .monospace;\n    #font > .shorthand(@size, @weight, @lineHeight);\n  }\n}\n\n\n// FORMS\n// --------------------------------------------------\n\n// Block level inputs\n.input-block-level {\n  display: block;\n  width: 100%;\n  min-height: @inputHeight; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n  .box-sizing(border-box); // Makes inputs behave like true block-level elements\n}\n\n\n\n// Mixin for form field states\n.formFieldState(@textColor: #555, @borderColor: #ccc, @backgroundColor: #f5f5f5) {\n  // Set the text color\n  .control-label,\n  .help-block,\n  .help-inline {\n    color: @textColor;\n  }\n  // Style inputs accordingly\n  .checkbox,\n  .radio,\n  input,\n  select,\n  textarea {\n    color: @textColor;\n  }\n  input,\n  select,\n  textarea {\n    border-color: @borderColor;\n    .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work\n    &:focus {\n      border-color: darken(@borderColor, 10%);\n      @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@borderColor, 20%);\n      .box-shadow(@shadow);\n    }\n  }\n  // Give a small background color for input-prepend/-append\n  .input-prepend .add-on,\n  .input-append .add-on {\n    color: @textColor;\n    background-color: @backgroundColor;\n    border-color: @textColor;\n  }\n}\n\n\n\n// CSS3 PROPERTIES\n// --------------------------------------------------\n\n// Border Radius\n.border-radius(@radius) {\n  -webkit-border-radius: @radius;\n     -moz-border-radius: @radius;\n          border-radius: @radius;\n}\n\n// Single Corner Border Radius\n.border-top-left-radius(@radius) {\n  -webkit-border-top-left-radius: @radius;\n      -moz-border-radius-topleft: @radius;\n          border-top-left-radius: @radius;\n}\n.border-top-right-radius(@radius) {\n  -webkit-border-top-right-radius: @radius;\n      -moz-border-radius-topright: @radius;\n          border-top-right-radius: @radius;\n}\n.border-bottom-right-radius(@radius) {\n  -webkit-border-bottom-right-radius: @radius;\n      -moz-border-radius-bottomright: @radius;\n          border-bottom-right-radius: @radius;\n}\n.border-bottom-left-radius(@radius) {\n  -webkit-border-bottom-left-radius: @radius;\n      -moz-border-radius-bottomleft: @radius;\n          border-bottom-left-radius: @radius;\n}\n\n// Single Side Border Radius\n.border-top-radius(@radius) {\n  .border-top-right-radius(@radius);\n  .border-top-left-radius(@radius);\n}\n.border-right-radius(@radius) {\n  .border-top-right-radius(@radius);\n  .border-bottom-right-radius(@radius);\n}\n.border-bottom-radius(@radius) {\n  .border-bottom-right-radius(@radius);\n  .border-bottom-left-radius(@radius);\n}\n.border-left-radius(@radius) {\n  .border-top-left-radius(@radius);\n  .border-bottom-left-radius(@radius);\n}\n\n// Drop shadows\n.box-shadow(@shadow) {\n  -webkit-box-shadow: @shadow;\n     -moz-box-shadow: @shadow;\n          box-shadow: @shadow;\n}\n\n// Transitions\n.transition(@transition) {\n  -webkit-transition: @transition;\n     -moz-transition: @transition;\n       -o-transition: @transition;\n          transition: @transition;\n}\n.transition-delay(@transition-delay) {\n  -webkit-transition-delay: @transition-delay;\n     -moz-transition-delay: @transition-delay;\n       -o-transition-delay: @transition-delay;\n          transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n  -webkit-transition-duration: @transition-duration;\n     -moz-transition-duration: @transition-duration;\n       -o-transition-duration: @transition-duration;\n          transition-duration: @transition-duration;\n}\n\n// Transformations\n.rotate(@degrees) {\n  -webkit-transform: rotate(@degrees);\n     -moz-transform: rotate(@degrees);\n      -ms-transform: rotate(@degrees);\n       -o-transform: rotate(@degrees);\n          transform: rotate(@degrees);\n}\n.scale(@ratio) {\n  -webkit-transform: scale(@ratio);\n     -moz-transform: scale(@ratio);\n      -ms-transform: scale(@ratio);\n       -o-transform: scale(@ratio);\n          transform: scale(@ratio);\n}\n.translate(@x, @y) {\n  -webkit-transform: translate(@x, @y);\n     -moz-transform: translate(@x, @y);\n      -ms-transform: translate(@x, @y);\n       -o-transform: translate(@x, @y);\n          transform: translate(@x, @y);\n}\n.skew(@x, @y) {\n  -webkit-transform: skew(@x, @y);\n     -moz-transform: skew(@x, @y);\n      -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885\n       -o-transform: skew(@x, @y);\n          transform: skew(@x, @y);\n  -webkit-backface-visibility: hidden; // See https://github.com/twbs/bootstrap/issues/5319\n}\n.translate3d(@x, @y, @z) {\n  -webkit-transform: translate3d(@x, @y, @z);\n     -moz-transform: translate3d(@x, @y, @z);\n       -o-transform: translate3d(@x, @y, @z);\n          transform: translate3d(@x, @y, @z);\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden\n// See git pull https://github.com/dannykeane/bootstrap.git backface-visibility for examples\n.backface-visibility(@visibility){\n\t-webkit-backface-visibility: @visibility;\n\t   -moz-backface-visibility: @visibility;\n\t        backface-visibility: @visibility;\n}\n\n// Background clipping\n// Heads up: FF 3.6 and under need \"padding\" instead of \"padding-box\"\n.background-clip(@clip) {\n  -webkit-background-clip: @clip;\n     -moz-background-clip: @clip;\n          background-clip: @clip;\n}\n\n// Background sizing\n.background-size(@size) {\n  -webkit-background-size: @size;\n     -moz-background-size: @size;\n       -o-background-size: @size;\n          background-size: @size;\n}\n\n\n// Box sizing\n.box-sizing(@boxmodel) {\n  -webkit-box-sizing: @boxmodel;\n     -moz-box-sizing: @boxmodel;\n          box-sizing: @boxmodel;\n}\n\n// User select\n// For selecting text on the page\n.user-select(@select) {\n  -webkit-user-select: @select;\n     -moz-user-select: @select;\n      -ms-user-select: @select;\n       -o-user-select: @select;\n          user-select: @select;\n}\n\n// Resize anything\n.resizable(@direction) {\n  resize: @direction; // Options: horizontal, vertical, both\n  overflow: auto; // Safari fix\n}\n\n// CSS3 Content Columns\n.content-columns(@columnCount, @columnGap: @gridGutterWidth) {\n  -webkit-column-count: @columnCount;\n     -moz-column-count: @columnCount;\n          column-count: @columnCount;\n  -webkit-column-gap: @columnGap;\n     -moz-column-gap: @columnGap;\n          column-gap: @columnGap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n  word-wrap: break-word;\n  -webkit-hyphens: @mode;\n     -moz-hyphens: @mode;\n      -ms-hyphens: @mode;\n       -o-hyphens: @mode;\n          hyphens: @mode;\n}\n\n// Opacity\n.opacity(@opacity) {\n  opacity: @opacity / 100;\n  filter: ~\"alpha(opacity=@{opacity})\";\n}\n\n\n\n// BACKGROUNDS\n// --------------------------------------------------\n\n// Add an alphatransparency value to any background or border color (via Elyse Holladay)\n#translucent {\n  .background(@color: @white, @alpha: 1) {\n    background-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);\n  }\n  .border(@color: @white, @alpha: 1) {\n    border-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);\n    .background-clip(padding-box);\n  }\n}\n\n// Gradient Bar Colors for buttons and alerts\n.gradientBar(@primaryColor, @secondaryColor, @textColor: #fff, @textShadow: 0 -1px 0 rgba(0,0,0,.25)) {\n  color: @textColor;\n  text-shadow: @textShadow;\n  #gradient > .vertical(@primaryColor, @secondaryColor);\n  border-color: @secondaryColor @secondaryColor darken(@secondaryColor, 15%);\n  border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) fadein(rgba(0,0,0,.1), 15%);\n}\n\n// Gradients\n#gradient {\n  .horizontal(@startColor: #555, @endColor: #333) {\n    background-color: @endColor;\n    background-image: -moz-linear-gradient(left, @startColor, @endColor); // FF 3.6+\n    background-image: -webkit-gradient(linear, 0 0, 100% 0, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+\n    background-image: -webkit-linear-gradient(left, @startColor, @endColor); // Safari 5.1+, Chrome 10+\n    background-image: -o-linear-gradient(left, @startColor, @endColor); // Opera 11.10\n    background-image: linear-gradient(to right, @startColor, @endColor); // Standard, IE10\n    background-repeat: repeat-x;\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@startColor),argb(@endColor))); // IE9 and down\n  }\n  .vertical(@startColor: #555, @endColor: #333) {\n    background-color: mix(@startColor, @endColor, 60%);\n    background-image: -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+\n    background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+\n    background-image: -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+\n    background-image: -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10\n    background-image: linear-gradient(to bottom, @startColor, @endColor); // Standard, IE10\n    background-repeat: repeat-x;\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@startColor),argb(@endColor))); // IE9 and down\n  }\n  .directional(@startColor: #555, @endColor: #333, @deg: 45deg) {\n    background-color: @endColor;\n    background-repeat: repeat-x;\n    background-image: -moz-linear-gradient(@deg, @startColor, @endColor); // FF 3.6+\n    background-image: -webkit-linear-gradient(@deg, @startColor, @endColor); // Safari 5.1+, Chrome 10+\n    background-image: -o-linear-gradient(@deg, @startColor, @endColor); // Opera 11.10\n    background-image: linear-gradient(@deg, @startColor, @endColor); // Standard, IE10\n  }\n  .horizontal-three-colors(@startColor: #00b3ee, @midColor: #7a43b6, @colorStop: 50%, @endColor: #c3325f) {\n    background-color: mix(@midColor, @endColor, 80%);\n    background-image: -webkit-gradient(left, linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor));\n    background-image: -webkit-linear-gradient(left, @startColor, @midColor @colorStop, @endColor);\n    background-image: -moz-linear-gradient(left, @startColor, @midColor @colorStop, @endColor);\n    background-image: -o-linear-gradient(left, @startColor, @midColor @colorStop, @endColor);\n    background-image: linear-gradient(to right, @startColor, @midColor @colorStop, @endColor);\n    background-repeat: no-repeat;\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@startColor),argb(@endColor))); // IE9 and down, gets no color-stop at all for proper fallback\n  }\n\n  .vertical-three-colors(@startColor: #00b3ee, @midColor: #7a43b6, @colorStop: 50%, @endColor: #c3325f) {\n    background-color: mix(@midColor, @endColor, 80%);\n    background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor));\n    background-image: -webkit-linear-gradient(@startColor, @midColor @colorStop, @endColor);\n    background-image: -moz-linear-gradient(top, @startColor, @midColor @colorStop, @endColor);\n    background-image: -o-linear-gradient(@startColor, @midColor @colorStop, @endColor);\n    background-image: linear-gradient(@startColor, @midColor @colorStop, @endColor);\n    background-repeat: no-repeat;\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@startColor),argb(@endColor))); // IE9 and down, gets no color-stop at all for proper fallback\n  }\n  .radial(@innerColor: #555, @outerColor: #333) {\n    background-color: @outerColor;\n    background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(@innerColor), to(@outerColor));\n    background-image: -webkit-radial-gradient(circle, @innerColor, @outerColor);\n    background-image: -moz-radial-gradient(circle, @innerColor, @outerColor);\n    background-image: -o-radial-gradient(circle, @innerColor, @outerColor);\n    background-repeat: no-repeat;\n  }\n  .striped(@color: #555, @angle: 45deg) {\n    background-color: @color;\n    background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,.15)), color-stop(.75, rgba(255,255,255,.15)), color-stop(.75, transparent), to(transparent));\n    background-image: -webkit-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);\n    background-image: -moz-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);\n    background-image: -o-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);\n    background-image: linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);\n  }\n}\n// Reset filters for IE\n.reset-filter() {\n  filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n\n\n\n// COMPONENT MIXINS\n// --------------------------------------------------\n\n// Horizontal dividers\n// -------------------------\n// Dividers (basically an hr) within dropdowns and nav lists\n.nav-divider(@top: #e5e5e5, @bottom: @white) {\n  // IE7 needs a set width since we gave a height. Restricting just\n  // to IE7 to keep the 1px left/right space in other browsers.\n  // It is unclear where IE is getting the extra space that we need\n  // to negative-margin away, but so it goes.\n  *width: 100%;\n  height: 1px;\n  margin: ((@baseLineHeight / 2) - 1) 1px; // 8px 1px\n  *margin: -5px 0 5px;\n  overflow: hidden;\n  background-color: @top;\n  border-bottom: 1px solid @bottom;\n}\n\n// Button backgrounds\n// ------------------\n.buttonBackground(@startColor, @endColor, @textColor: #fff, @textShadow: 0 -1px 0 rgba(0,0,0,.25)) {\n  // gradientBar will set the background to a pleasing blend of these, to support IE<=9\n  .gradientBar(@startColor, @endColor, @textColor, @textShadow);\n  *background-color: @endColor; /* Darken IE7 buttons by default so they stand out more given they won't have borders */\n  .reset-filter();\n\n  // in these cases the gradient won't cover the background, so we override\n  &:hover, &:focus, &:active, &.active, &.disabled, &[disabled] {\n    color: @textColor;\n    background-color: @endColor;\n    *background-color: darken(@endColor, 5%);\n  }\n\n  // IE 7 + 8 can't handle box-shadow to show active, so we darken a bit ourselves\n  &:active,\n  &.active {\n    background-color: darken(@endColor, 10%) e(\"\\9\");\n  }\n}\n\n// Navbar vertical align\n// -------------------------\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so write out `.navbarVerticalAlign(30px);` to calculate the appropriate top margin.\n.navbarVerticalAlign(@elementHeight) {\n  margin-top: (@navbarHeight - @elementHeight) / 2;\n}\n\n\n\n// Grid System\n// -----------\n\n// Centered container element\n.container-fixed() {\n  margin-right: auto;\n  margin-left: auto;\n  .clearfix();\n}\n\n// Table columns\n.tableColumns(@columnSpan: 1) {\n  float: none; // undo default grid column styles\n  width: ((@gridColumnWidth) * @columnSpan) + (@gridGutterWidth * (@columnSpan - 1)) - 16; // 16 is total padding on left and right of table cells\n  margin-left: 0; // undo default grid column styles\n}\n\n// Make a Grid\n// Use .makeRow and .makeColumn to assign semantic layouts grid system behavior\n.makeRow() {\n  margin-left: @gridGutterWidth * -1;\n  .clearfix();\n}\n.makeColumn(@columns: 1, @offset: 0) {\n  float: left;\n  margin-left: (@gridColumnWidth * @offset) + (@gridGutterWidth * (@offset - 1)) + (@gridGutterWidth * 2);\n  width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));\n}\n\n// The Grid\n#grid {\n\n  .core (@gridColumnWidth, @gridGutterWidth) {\n\n    .spanX (@index) when (@index > 0) {\n      .span@{index} { .span(@index); }\n      .spanX(@index - 1);\n    }\n    .spanX (0) {}\n\n    .offsetX (@index) when (@index > 0) {\n      .offset@{index} { .offset(@index); }\n      .offsetX(@index - 1);\n    }\n    .offsetX (0) {}\n\n    .offset (@columns) {\n      margin-left: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns + 1));\n    }\n\n    .span (@columns) {\n      width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));\n    }\n\n    .row {\n      margin-left: @gridGutterWidth * -1;\n      .clearfix();\n    }\n\n    [class*=\"span\"] {\n      float: left;\n      min-height: 1px; // prevent collapsing columns\n      margin-left: @gridGutterWidth;\n    }\n\n    // Set the container width, and override it for fixed navbars in media queries\n    .container,\n    .navbar-static-top .container,\n    .navbar-fixed-top .container,\n    .navbar-fixed-bottom .container { .span(@gridColumns); }\n\n    // generate .spanX and .offsetX\n    .spanX (@gridColumns);\n    .offsetX (@gridColumns);\n\n  }\n\n  .fluid (@fluidGridColumnWidth, @fluidGridGutterWidth) {\n\n    .spanX (@index) when (@index > 0) {\n      .span@{index} { .span(@index); }\n      .spanX(@index - 1);\n    }\n    .spanX (0) {}\n\n    .offsetX (@index) when (@index > 0) {\n      .offset@{index} { .offset(@index); }\n      .offset@{index}:first-child { .offsetFirstChild(@index); }\n      .offsetX(@index - 1);\n    }\n    .offsetX (0) {}\n\n    .offset (@columns) {\n      margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) + (@fluidGridGutterWidth*2);\n  \t  *margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%) + (@fluidGridGutterWidth*2) - (.5 / @gridRowWidth * 100 * 1%);\n    }\n\n    .offsetFirstChild (@columns) {\n      margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) + (@fluidGridGutterWidth);\n      *margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%) + @fluidGridGutterWidth - (.5 / @gridRowWidth * 100 * 1%);\n    }\n\n    .span (@columns) {\n      width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1));\n      *width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%);\n    }\n\n    .row-fluid {\n      width: 100%;\n      .clearfix();\n      [class*=\"span\"] {\n        .input-block-level();\n        float: left;\n        margin-left: @fluidGridGutterWidth;\n        *margin-left: @fluidGridGutterWidth - (.5 / @gridRowWidth * 100 * 1%);\n      }\n      [class*=\"span\"]:first-child {\n        margin-left: 0;\n      }\n\n      // Space grid-sized controls properly if multiple per line\n      .controls-row [class*=\"span\"] + [class*=\"span\"] {\n        margin-left: @fluidGridGutterWidth;\n      }\n\n      // generate .spanX and .offsetX\n      .spanX (@gridColumns);\n      .offsetX (@gridColumns);\n    }\n\n  }\n\n  .input(@gridColumnWidth, @gridGutterWidth) {\n\n    .spanX (@index) when (@index > 0) {\n      input.span@{index}, textarea.span@{index}, .uneditable-input.span@{index} { .span(@index); }\n      .spanX(@index - 1);\n    }\n    .spanX (0) {}\n\n    .span(@columns) {\n      width: ((@gridColumnWidth) * @columns) + (@gridGutterWidth * (@columns - 1)) - 14;\n    }\n\n    input,\n    textarea,\n    .uneditable-input {\n      margin-left: 0; // override margin-left from core grid system\n    }\n\n    // Space grid-sized controls properly if multiple per line\n    .controls-row [class*=\"span\"] + [class*=\"span\"] {\n      margin-left: @gridGutterWidth;\n    }\n\n    // generate .spanX\n    .spanX (@gridColumns);\n\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/modals.less",
    "content": "//\n// Modals\n// --------------------------------------------------\n\n// Background\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: @zindexModalBackdrop;\n  background-color: @black;\n  // Fade for backdrop\n  &.fade { opacity: 0; }\n}\n\n.modal-backdrop,\n.modal-backdrop.fade.in {\n  .opacity(80);\n}\n\n// Base modal\n.modal {\n  position: fixed;\n  top: 10%;\n  left: 50%;\n  z-index: @zindexModal;\n  width: 560px;\n  margin-left: -280px;\n  background-color: @white;\n  border: 1px solid #999;\n  border: 1px solid rgba(0,0,0,.3);\n  *border: 1px solid #999; /* IE6-7 */\n  .border-radius(6px);\n  .box-shadow(0 3px 7px rgba(0,0,0,0.3));\n  .background-clip(padding-box);\n  // Remove focus outline from opened modal\n  outline: none;\n\n  &.fade {\n    .transition(e('opacity .3s linear, top .3s ease-out'));\n    top: -25%;\n  }\n  &.fade.in { top: 10%; }\n}\n.modal-header {\n  padding: 9px 15px;\n  border-bottom: 1px solid #eee;\n  // Close icon\n  .close { margin-top: 2px; }\n  // Heading\n  h3 {\n    margin: 0;\n    line-height: 30px;\n  }\n}\n\n// Body (where all modal content resides)\n.modal-body {\n  position: relative;\n  overflow-y: auto;\n  max-height: 400px;\n  padding: 15px;\n}\n// Remove bottom margin if need be\n.modal-form {\n  margin-bottom: 0;\n}\n\n// Footer (for actions)\n.modal-footer {\n  padding: 14px 15px 15px;\n  margin-bottom: 0;\n  text-align: right; // right align buttons\n  background-color: #f5f5f5;\n  border-top: 1px solid #ddd;\n  .border-radius(0 0 6px 6px);\n  .box-shadow(inset 0 1px 0 @white);\n  .clearfix(); // clear it in case folks use .pull-* classes on buttons\n\n  // Properly space out buttons\n  .btn + .btn {\n    margin-left: 5px;\n    margin-bottom: 0; // account for input[type=\"submit\"] which gets the bottom margin like all other inputs\n  }\n  // but override that for button groups\n  .btn-group .btn + .btn {\n    margin-left: -1px;\n  }\n  // and override it for block buttons as well\n  .btn-block + .btn-block {\n    margin-left: 0;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/navbar.less",
    "content": "//\n// Navbars (Redux)\n// --------------------------------------------------\n\n\n// COMMON STYLES\n// -------------\n\n// Base class and wrapper\n.navbar {\n  overflow: visible;\n  margin-bottom: @baseLineHeight;\n\n  // Fix for IE7's bad z-indexing so dropdowns don't appear below content that follows the navbar\n  *position: relative;\n  *z-index: 2;\n}\n\n// Inner for background effects\n// Gradient is applied to its own element because overflow visible is not honored by IE when filter is present\n.navbar-inner {\n  min-height: @navbarHeight;\n  padding-left:  20px;\n  padding-right: 20px;\n  #gradient > .vertical(@navbarBackgroundHighlight, @navbarBackground);\n  border: 1px solid @navbarBorder;\n  .border-radius(@baseBorderRadius);\n  .box-shadow(0 1px 4px rgba(0,0,0,.065));\n\n  // Prevent floats from breaking the navbar\n  .clearfix();\n}\n\n// Set width to auto for default container\n// We then reset it for fixed navbars in the #gridSystem mixin\n.navbar .container {\n  width: auto;\n}\n\n// Override the default collapsed state\n.nav-collapse.collapse {\n  height: auto;\n  overflow: visible;\n}\n\n\n// Brand: website or project name\n// -------------------------\n.navbar .brand {\n  float: left;\n  display: block;\n  // Vertically center the text given @navbarHeight\n  padding: ((@navbarHeight - @baseLineHeight) / 2) 20px ((@navbarHeight - @baseLineHeight) / 2);\n  margin-left: -20px; // negative indent to left-align the text down the page\n  font-size: 20px;\n  font-weight: 200;\n  color: @navbarBrandColor;\n  text-shadow: 0 1px 0 @navbarBackgroundHighlight;\n  &:hover,\n  &:focus {\n    text-decoration: none;\n  }\n}\n\n// Plain text in topbar\n// -------------------------\n.navbar-text {\n  margin-bottom: 0;\n  line-height: @navbarHeight;\n  color: @navbarText;\n}\n\n// Janky solution for now to account for links outside the .nav\n// -------------------------\n.navbar-link {\n  color: @navbarLinkColor;\n  &:hover,\n  &:focus {\n    color: @navbarLinkColorHover;\n  }\n}\n\n// Dividers in navbar\n// -------------------------\n.navbar .divider-vertical {\n  height: @navbarHeight;\n  margin: 0 9px;\n  border-left: 1px solid @navbarBackground;\n  border-right: 1px solid @navbarBackgroundHighlight;\n}\n\n// Buttons in navbar\n// -------------------------\n.navbar .btn,\n.navbar .btn-group {\n  .navbarVerticalAlign(30px); // Vertically center in navbar\n}\n.navbar .btn-group .btn,\n.navbar .input-prepend .btn,\n.navbar .input-append .btn,\n.navbar .input-prepend .btn-group,\n.navbar .input-append .btn-group {\n  margin-top: 0; // then undo the margin here so we don't accidentally double it\n}\n\n// Navbar forms\n// -------------------------\n.navbar-form {\n  margin-bottom: 0; // remove default bottom margin\n  .clearfix();\n  input,\n  select,\n  .radio,\n  .checkbox {\n    .navbarVerticalAlign(30px); // Vertically center in navbar\n  }\n  input,\n  select,\n  .btn {\n    display: inline-block;\n    margin-bottom: 0;\n  }\n  input[type=\"image\"],\n  input[type=\"checkbox\"],\n  input[type=\"radio\"] {\n    margin-top: 3px;\n  }\n  .input-append,\n  .input-prepend {\n    margin-top: 5px;\n    white-space: nowrap; // preven two  items from separating within a .navbar-form that has .pull-left\n    input {\n      margin-top: 0; // remove the margin on top since it's on the parent\n    }\n  }\n}\n\n// Navbar search\n// -------------------------\n.navbar-search {\n  position: relative;\n  float: left;\n  .navbarVerticalAlign(30px); // Vertically center in navbar\n  margin-bottom: 0;\n  .search-query {\n    margin-bottom: 0;\n    padding: 4px 14px;\n    #font > .sans-serif(13px, normal, 1);\n    .border-radius(15px); // redeclare because of specificity of the type attribute\n  }\n}\n\n\n\n// Static navbar\n// -------------------------\n\n.navbar-static-top {\n  position: static;\n  margin-bottom: 0; // remove 18px margin for default navbar\n  .navbar-inner {\n    .border-radius(0);\n  }\n}\n\n\n\n// Fixed navbar\n// -------------------------\n\n// Shared (top/bottom) styles\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  position: fixed;\n  right: 0;\n  left: 0;\n  z-index: @zindexFixedNavbar;\n  margin-bottom: 0; // remove 18px margin for default navbar\n}\n.navbar-fixed-top .navbar-inner,\n.navbar-static-top .navbar-inner {\n  border-width: 0 0 1px;\n}\n.navbar-fixed-bottom .navbar-inner {\n  border-width: 1px 0 0;\n}\n.navbar-fixed-top .navbar-inner,\n.navbar-fixed-bottom .navbar-inner {\n  padding-left:  0;\n  padding-right: 0;\n  .border-radius(0);\n}\n\n// Reset container width\n// Required here as we reset the width earlier on and the grid mixins don't override early enough\n.navbar-static-top .container,\n.navbar-fixed-top .container,\n.navbar-fixed-bottom .container {\n  #grid > .core > .span(@gridColumns);\n}\n\n// Fixed to top\n.navbar-fixed-top {\n  top: 0;\n}\n.navbar-fixed-top,\n.navbar-static-top {\n  .navbar-inner {\n    .box-shadow(~\"0 1px 10px rgba(0,0,0,.1)\");\n  }\n}\n\n// Fixed to bottom\n.navbar-fixed-bottom {\n  bottom: 0;\n  .navbar-inner {\n    .box-shadow(~\"0 -1px 10px rgba(0,0,0,.1)\");\n  }\n}\n\n\n\n// NAVIGATION\n// ----------\n\n.navbar .nav {\n  position: relative;\n  left: 0;\n  display: block;\n  float: left;\n  margin: 0 10px 0 0;\n}\n.navbar .nav.pull-right {\n  float: right; // redeclare due to specificity\n  margin-right: 0; // remove margin on float right nav\n}\n.navbar .nav > li {\n  float: left;\n}\n\n// Links\n.navbar .nav > li > a {\n  float: none;\n  // Vertically center the text given @navbarHeight\n  padding: ((@navbarHeight - @baseLineHeight) / 2) 15px ((@navbarHeight - @baseLineHeight) / 2);\n  color: @navbarLinkColor;\n  text-decoration: none;\n  text-shadow: 0 1px 0 @navbarBackgroundHighlight;\n}\n.navbar .nav .dropdown-toggle .caret {\n  margin-top: 8px;\n}\n\n// Hover/focus\n.navbar .nav > li > a:focus,\n.navbar .nav > li > a:hover {\n  background-color: @navbarLinkBackgroundHover; // \"transparent\" is default to differentiate :hover/:focus from .active\n  color: @navbarLinkColorHover;\n  text-decoration: none;\n}\n\n// Active nav items\n.navbar .nav > .active > a,\n.navbar .nav > .active > a:hover,\n.navbar .nav > .active > a:focus {\n  color: @navbarLinkColorActive;\n  text-decoration: none;\n  background-color: @navbarLinkBackgroundActive;\n  .box-shadow(inset 0 3px 8px rgba(0,0,0,.125));\n}\n\n// Navbar button for toggling navbar items in responsive layouts\n// These definitions need to come after '.navbar .btn'\n.navbar .btn-navbar {\n  display: none;\n  float: right;\n  padding: 7px 10px;\n  margin-left: 5px;\n  margin-right: 5px;\n  .buttonBackground(darken(@navbarBackgroundHighlight, 5%), darken(@navbarBackground, 5%));\n  .box-shadow(~\"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075)\");\n}\n.navbar .btn-navbar .icon-bar {\n  display: block;\n  width: 18px;\n  height: 2px;\n  background-color: #f5f5f5;\n  .border-radius(1px);\n  .box-shadow(0 1px 0 rgba(0,0,0,.25));\n}\n.btn-navbar .icon-bar + .icon-bar {\n  margin-top: 3px;\n}\n\n\n\n// Dropdown menus\n// --------------\n\n// Menu position and menu carets\n.navbar .nav > li > .dropdown-menu {\n  &:before {\n    content: '';\n    display: inline-block;\n    border-left:   7px solid transparent;\n    border-right:  7px solid transparent;\n    border-bottom: 7px solid #ccc;\n    border-bottom-color: @dropdownBorder;\n    position: absolute;\n    top: -7px;\n    left: 9px;\n  }\n  &:after {\n    content: '';\n    display: inline-block;\n    border-left:   6px solid transparent;\n    border-right:  6px solid transparent;\n    border-bottom: 6px solid @dropdownBackground;\n    position: absolute;\n    top: -6px;\n    left: 10px;\n  }\n}\n// Menu position and menu caret support for dropups via extra dropup class\n.navbar-fixed-bottom .nav > li > .dropdown-menu {\n  &:before {\n    border-top: 7px solid #ccc;\n    border-top-color: @dropdownBorder;\n    border-bottom: 0;\n    bottom: -7px;\n    top: auto;\n  }\n  &:after {\n    border-top: 6px solid @dropdownBackground;\n    border-bottom: 0;\n    bottom: -6px;\n    top: auto;\n  }\n}\n\n// Caret should match text color on hover/focus\n.navbar .nav li.dropdown > a:hover .caret,\n.navbar .nav li.dropdown > a:focus .caret {\n  border-top-color: @navbarLinkColorHover;\n  border-bottom-color: @navbarLinkColorHover;\n}\n\n// Remove background color from open dropdown\n.navbar .nav li.dropdown.open > .dropdown-toggle,\n.navbar .nav li.dropdown.active > .dropdown-toggle,\n.navbar .nav li.dropdown.open.active > .dropdown-toggle {\n  background-color: @navbarLinkBackgroundActive;\n  color: @navbarLinkColorActive;\n}\n.navbar .nav li.dropdown > .dropdown-toggle .caret {\n  border-top-color: @navbarLinkColor;\n  border-bottom-color: @navbarLinkColor;\n}\n.navbar .nav li.dropdown.open > .dropdown-toggle .caret,\n.navbar .nav li.dropdown.active > .dropdown-toggle .caret,\n.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret {\n  border-top-color: @navbarLinkColorActive;\n  border-bottom-color: @navbarLinkColorActive;\n}\n\n// Right aligned menus need alt position\n.navbar .pull-right > li > .dropdown-menu,\n.navbar .nav > li > .dropdown-menu.pull-right {\n  left: auto;\n  right: 0;\n  &:before {\n    left: auto;\n    right: 12px;\n  }\n  &:after {\n    left: auto;\n    right: 13px;\n  }\n  .dropdown-menu {\n    left: auto;\n    right: 100%;\n    margin-left: 0;\n    margin-right: -1px;\n    .border-radius(6px 0 6px 6px);\n  }\n}\n\n\n// Inverted navbar\n// -------------------------\n\n.navbar-inverse {\n\n  .navbar-inner {\n    #gradient > .vertical(@navbarInverseBackgroundHighlight, @navbarInverseBackground);\n    border-color: @navbarInverseBorder;\n  }\n\n  .brand,\n  .nav > li > a {\n    color: @navbarInverseLinkColor;\n    text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n    &:hover,\n    &:focus {\n      color: @navbarInverseLinkColorHover;\n    }\n  }\n\n  .brand {\n    color: @navbarInverseBrandColor;\n  }\n\n  .navbar-text {\n    color: @navbarInverseText;\n  }\n\n  .nav > li > a:focus,\n  .nav > li > a:hover {\n    background-color: @navbarInverseLinkBackgroundHover;\n    color: @navbarInverseLinkColorHover;\n  }\n\n  .nav .active > a,\n  .nav .active > a:hover,\n  .nav .active > a:focus {\n    color: @navbarInverseLinkColorActive;\n    background-color: @navbarInverseLinkBackgroundActive;\n  }\n\n  // Inline text links\n  .navbar-link {\n    color: @navbarInverseLinkColor;\n    &:hover,\n    &:focus {\n      color: @navbarInverseLinkColorHover;\n    }\n  }\n\n  // Dividers in navbar\n  .divider-vertical {\n    border-left-color: @navbarInverseBackground;\n    border-right-color: @navbarInverseBackgroundHighlight;\n  }\n\n  // Dropdowns\n  .nav li.dropdown.open > .dropdown-toggle,\n  .nav li.dropdown.active > .dropdown-toggle,\n  .nav li.dropdown.open.active > .dropdown-toggle {\n    background-color: @navbarInverseLinkBackgroundActive;\n    color: @navbarInverseLinkColorActive;\n  }\n  .nav li.dropdown > a:hover .caret,\n  .nav li.dropdown > a:focus .caret {\n    border-top-color: @navbarInverseLinkColorActive;\n    border-bottom-color: @navbarInverseLinkColorActive;\n  }\n  .nav li.dropdown > .dropdown-toggle .caret {\n    border-top-color: @navbarInverseLinkColor;\n    border-bottom-color: @navbarInverseLinkColor;\n  }\n  .nav li.dropdown.open > .dropdown-toggle .caret,\n  .nav li.dropdown.active > .dropdown-toggle .caret,\n  .nav li.dropdown.open.active > .dropdown-toggle .caret {\n    border-top-color: @navbarInverseLinkColorActive;\n    border-bottom-color: @navbarInverseLinkColorActive;\n  }\n\n  // Navbar search\n  .navbar-search {\n    .search-query {\n      color: @white;\n      background-color: @navbarInverseSearchBackground;\n      border-color: @navbarInverseSearchBorder;\n      .box-shadow(~\"inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15)\");\n      .transition(none);\n      .placeholder(@navbarInverseSearchPlaceholderColor);\n\n      // Focus states (we use .focused since IE7-8 and down doesn't support :focus)\n      &:focus,\n      &.focused {\n        padding: 5px 15px;\n        color: @grayDark;\n        text-shadow: 0 1px 0 @white;\n        background-color: @navbarInverseSearchBackgroundFocus;\n        border: 0;\n        .box-shadow(0 0 3px rgba(0,0,0,.15));\n        outline: 0;\n      }\n    }\n  }\n\n  // Navbar collapse button\n  .btn-navbar {\n    .buttonBackground(darken(@navbarInverseBackgroundHighlight, 5%), darken(@navbarInverseBackground, 5%));\n  }\n\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/navs.less",
    "content": "//\n// Navs\n// --------------------------------------------------\n\n\n// BASE CLASS\n// ----------\n\n.nav {\n  margin-left: 0;\n  margin-bottom: @baseLineHeight;\n  list-style: none;\n}\n\n// Make links block level\n.nav > li > a {\n  display: block;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n  text-decoration: none;\n  background-color: @grayLighter;\n}\n\n// Prevent IE8 from misplacing imgs\n// See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989\n.nav > li > a > img {\n  max-width: none;\n}\n\n// Redeclare pull classes because of specifity\n.nav > .pull-right {\n  float: right;\n}\n\n// Nav headers (for dropdowns and lists)\n.nav-header {\n  display: block;\n  padding: 3px 15px;\n  font-size: 11px;\n  font-weight: bold;\n  line-height: @baseLineHeight;\n  color: @grayLight;\n  text-shadow: 0 1px 0 rgba(255,255,255,.5);\n  text-transform: uppercase;\n}\n// Space them out when they follow another list item (link)\n.nav li + .nav-header {\n  margin-top: 9px;\n}\n\n\n\n// NAV LIST\n// --------\n\n.nav-list {\n  padding-left: 15px;\n  padding-right: 15px;\n  margin-bottom: 0;\n}\n.nav-list > li > a,\n.nav-list .nav-header {\n  margin-left:  -15px;\n  margin-right: -15px;\n  text-shadow: 0 1px 0 rgba(255,255,255,.5);\n}\n.nav-list > li > a {\n  padding: 3px 15px;\n}\n.nav-list > .active > a,\n.nav-list > .active > a:hover,\n.nav-list > .active > a:focus {\n  color: @white;\n  text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n  background-color: @linkColor;\n}\n.nav-list [class^=\"icon-\"],\n.nav-list [class*=\" icon-\"] {\n  margin-right: 2px;\n}\n// Dividers (basically an hr) within the dropdown\n.nav-list .divider {\n  .nav-divider();\n}\n\n\n\n// TABS AND PILLS\n// -------------\n\n// Common styles\n.nav-tabs,\n.nav-pills {\n  .clearfix();\n}\n.nav-tabs > li,\n.nav-pills > li {\n  float: left;\n}\n.nav-tabs > li > a,\n.nav-pills > li > a {\n  padding-right: 12px;\n  padding-left: 12px;\n  margin-right: 2px;\n  line-height: 14px; // keeps the overall height an even number\n}\n\n// TABS\n// ----\n\n// Give the tabs something to sit on\n.nav-tabs {\n  border-bottom: 1px solid #ddd;\n}\n// Make the list-items overlay the bottom border\n.nav-tabs > li {\n  margin-bottom: -1px;\n}\n// Actual tabs (as links)\n.nav-tabs > li > a {\n  padding-top: 8px;\n  padding-bottom: 8px;\n  line-height: @baseLineHeight;\n  border: 1px solid transparent;\n  .border-radius(4px 4px 0 0);\n  &:hover,\n  &:focus {\n    border-color: @grayLighter @grayLighter #ddd;\n  }\n}\n// Active state, and it's :hover/:focus to override normal :hover/:focus\n.nav-tabs > .active > a,\n.nav-tabs > .active > a:hover,\n.nav-tabs > .active > a:focus {\n  color: @gray;\n  background-color: @bodyBackground;\n  border: 1px solid #ddd;\n  border-bottom-color: transparent;\n  cursor: default;\n}\n\n\n// PILLS\n// -----\n\n// Links rendered as pills\n.nav-pills > li > a {\n  padding-top: 8px;\n  padding-bottom: 8px;\n  margin-top: 2px;\n  margin-bottom: 2px;\n  .border-radius(5px);\n}\n\n// Active state\n.nav-pills > .active > a,\n.nav-pills > .active > a:hover,\n.nav-pills > .active > a:focus {\n  color: @white;\n  background-color: @linkColor;\n}\n\n\n\n// STACKED NAV\n// -----------\n\n// Stacked tabs and pills\n.nav-stacked > li {\n  float: none;\n}\n.nav-stacked > li > a {\n  margin-right: 0; // no need for the gap between nav items\n}\n\n// Tabs\n.nav-tabs.nav-stacked {\n  border-bottom: 0;\n}\n.nav-tabs.nav-stacked > li > a {\n  border: 1px solid #ddd;\n  .border-radius(0);\n}\n.nav-tabs.nav-stacked > li:first-child > a {\n  .border-top-radius(4px);\n}\n.nav-tabs.nav-stacked > li:last-child > a {\n  .border-bottom-radius(4px);\n}\n.nav-tabs.nav-stacked > li > a:hover,\n.nav-tabs.nav-stacked > li > a:focus {\n  border-color: #ddd;\n  z-index: 2;\n}\n\n// Pills\n.nav-pills.nav-stacked > li > a {\n  margin-bottom: 3px;\n}\n.nav-pills.nav-stacked > li:last-child > a {\n  margin-bottom: 1px; // decrease margin to match sizing of stacked tabs\n}\n\n\n\n// DROPDOWNS\n// ---------\n\n.nav-tabs .dropdown-menu {\n  .border-radius(0 0 6px 6px); // remove the top rounded corners here since there is a hard edge above the menu\n}\n.nav-pills .dropdown-menu {\n  .border-radius(6px); // make rounded corners match the pills\n}\n\n// Default dropdown links\n// -------------------------\n// Make carets use linkColor to start\n.nav .dropdown-toggle .caret {\n  border-top-color: @linkColor;\n  border-bottom-color: @linkColor;\n  margin-top: 6px;\n}\n.nav .dropdown-toggle:hover .caret,\n.nav .dropdown-toggle:focus .caret {\n  border-top-color: @linkColorHover;\n  border-bottom-color: @linkColorHover;\n}\n/* move down carets for tabs */\n.nav-tabs .dropdown-toggle .caret {\n  margin-top: 8px;\n}\n\n// Active dropdown links\n// -------------------------\n.nav .active .dropdown-toggle .caret {\n  border-top-color: #fff;\n  border-bottom-color: #fff;\n}\n.nav-tabs .active .dropdown-toggle .caret {\n  border-top-color: @gray;\n  border-bottom-color: @gray;\n}\n\n// Active:hover/:focus dropdown links\n// -------------------------\n.nav > .dropdown.active > a:hover,\n.nav > .dropdown.active > a:focus {\n  cursor: pointer;\n}\n\n// Open dropdowns\n// -------------------------\n.nav-tabs .open .dropdown-toggle,\n.nav-pills .open .dropdown-toggle,\n.nav > li.dropdown.open.active > a:hover,\n.nav > li.dropdown.open.active > a:focus {\n  color: @white;\n  background-color: @grayLight;\n  border-color: @grayLight;\n}\n.nav li.dropdown.open .caret,\n.nav li.dropdown.open.active .caret,\n.nav li.dropdown.open a:hover .caret,\n.nav li.dropdown.open a:focus .caret {\n  border-top-color: @white;\n  border-bottom-color: @white;\n  .opacity(100);\n}\n\n// Dropdowns in stacked tabs\n.tabs-stacked .open > a:hover,\n.tabs-stacked .open > a:focus {\n  border-color: @grayLight;\n}\n\n\n\n// TABBABLE\n// --------\n\n\n// COMMON STYLES\n// -------------\n\n// Clear any floats\n.tabbable {\n  .clearfix();\n}\n.tab-content {\n  overflow: auto; // prevent content from running below tabs\n}\n\n// Remove border on bottom, left, right\n.tabs-below > .nav-tabs,\n.tabs-right > .nav-tabs,\n.tabs-left > .nav-tabs {\n  border-bottom: 0;\n}\n\n// Show/hide tabbable areas\n.tab-content > .tab-pane,\n.pill-content > .pill-pane {\n  display: none;\n}\n.tab-content > .active,\n.pill-content > .active {\n  display: block;\n}\n\n\n// BOTTOM\n// ------\n\n.tabs-below > .nav-tabs {\n  border-top: 1px solid #ddd;\n}\n.tabs-below > .nav-tabs > li {\n  margin-top: -1px;\n  margin-bottom: 0;\n}\n.tabs-below > .nav-tabs > li > a {\n  .border-radius(0 0 4px 4px);\n  &:hover,\n  &:focus {\n    border-bottom-color: transparent;\n    border-top-color: #ddd;\n  }\n}\n.tabs-below > .nav-tabs > .active > a,\n.tabs-below > .nav-tabs > .active > a:hover,\n.tabs-below > .nav-tabs > .active > a:focus {\n  border-color: transparent #ddd #ddd #ddd;\n}\n\n// LEFT & RIGHT\n// ------------\n\n// Common styles\n.tabs-left > .nav-tabs > li,\n.tabs-right > .nav-tabs > li {\n  float: none;\n}\n.tabs-left > .nav-tabs > li > a,\n.tabs-right > .nav-tabs > li > a {\n  min-width: 74px;\n  margin-right: 0;\n  margin-bottom: 3px;\n}\n\n// Tabs on the left\n.tabs-left > .nav-tabs {\n  float: left;\n  margin-right: 19px;\n  border-right: 1px solid #ddd;\n}\n.tabs-left > .nav-tabs > li > a {\n  margin-right: -1px;\n  .border-radius(4px 0 0 4px);\n}\n.tabs-left > .nav-tabs > li > a:hover,\n.tabs-left > .nav-tabs > li > a:focus {\n  border-color: @grayLighter #ddd @grayLighter @grayLighter;\n}\n.tabs-left > .nav-tabs .active > a,\n.tabs-left > .nav-tabs .active > a:hover,\n.tabs-left > .nav-tabs .active > a:focus {\n  border-color: #ddd transparent #ddd #ddd;\n  *border-right-color: @white;\n}\n\n// Tabs on the right\n.tabs-right > .nav-tabs {\n  float: right;\n  margin-left: 19px;\n  border-left: 1px solid #ddd;\n}\n.tabs-right > .nav-tabs > li > a {\n  margin-left: -1px;\n  .border-radius(0 4px 4px 0);\n}\n.tabs-right > .nav-tabs > li > a:hover,\n.tabs-right > .nav-tabs > li > a:focus {\n  border-color: @grayLighter @grayLighter @grayLighter #ddd;\n}\n.tabs-right > .nav-tabs .active > a,\n.tabs-right > .nav-tabs .active > a:hover,\n.tabs-right > .nav-tabs .active > a:focus {\n  border-color: #ddd #ddd #ddd transparent;\n  *border-left-color: @white;\n}\n\n\n\n// DISABLED STATES\n// ---------------\n\n// Gray out text\n.nav > .disabled > a {\n  color: @grayLight;\n}\n// Nuke hover/focus effects\n.nav > .disabled > a:hover,\n.nav > .disabled > a:focus {\n  text-decoration: none;\n  background-color: transparent;\n  cursor: default;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/pager.less",
    "content": "//\n// Pager pagination\n// --------------------------------------------------\n\n\n.pager {\n  margin: @baseLineHeight 0;\n  list-style: none;\n  text-align: center;\n  .clearfix();\n}\n.pager li {\n  display: inline;\n}\n.pager li > a,\n.pager li > span {\n  display: inline-block;\n  padding: 5px 14px;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  .border-radius(15px);\n}\n.pager li > a:hover,\n.pager li > a:focus {\n  text-decoration: none;\n  background-color: #f5f5f5;\n}\n.pager .next > a,\n.pager .next > span {\n  float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n  float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n  color: @grayLight;\n  background-color: #fff;\n  cursor: default;\n}"
  },
  {
    "path": "dist/lib/bootstrap2/pagination.less",
    "content": "//\n// Pagination (multiple pages)\n// --------------------------------------------------\n\n// Space out pagination from surrounding content\n.pagination {\n  margin: @baseLineHeight 0;\n}\n\n.pagination ul {\n  // Allow for text-based alignment\n  display: inline-block;\n  .ie7-inline-block();\n  // Reset default ul styles\n  margin-left: 0;\n  margin-bottom: 0;\n  // Visuals\n  .border-radius(@baseBorderRadius);\n  .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n.pagination ul > li {\n  display: inline; // Remove list-style and block-level defaults\n}\n.pagination ul > li > a,\n.pagination ul > li > span {\n  float: left; // Collapse white-space\n  padding: 4px 12px;\n  line-height: @baseLineHeight;\n  text-decoration: none;\n  background-color: @paginationBackground;\n  border: 1px solid @paginationBorder;\n  border-left-width: 0;\n}\n.pagination ul > li > a:hover,\n.pagination ul > li > a:focus,\n.pagination ul > .active > a,\n.pagination ul > .active > span {\n  background-color: @paginationActiveBackground;\n}\n.pagination ul > .active > a,\n.pagination ul > .active > span {\n  color: @grayLight;\n  cursor: default;\n}\n.pagination ul > .disabled > span,\n.pagination ul > .disabled > a,\n.pagination ul > .disabled > a:hover,\n.pagination ul > .disabled > a:focus {\n  color: @grayLight;\n  background-color: transparent;\n  cursor: default;\n}\n.pagination ul > li:first-child > a,\n.pagination ul > li:first-child > span {\n  border-left-width: 1px;\n  .border-left-radius(@baseBorderRadius);\n}\n.pagination ul > li:last-child > a,\n.pagination ul > li:last-child > span {\n  .border-right-radius(@baseBorderRadius);\n}\n\n\n// Alignment\n// --------------------------------------------------\n\n.pagination-centered {\n  text-align: center;\n}\n.pagination-right {\n  text-align: right;\n}\n\n\n// Sizing\n// --------------------------------------------------\n\n// Large\n.pagination-large {\n  ul > li > a,\n  ul > li > span {\n    padding: @paddingLarge;\n    font-size: @fontSizeLarge;\n  }\n  ul > li:first-child > a,\n  ul > li:first-child > span {\n    .border-left-radius(@borderRadiusLarge);\n  }\n  ul > li:last-child > a,\n  ul > li:last-child > span {\n    .border-right-radius(@borderRadiusLarge);\n  }\n}\n\n// Small and mini\n.pagination-mini,\n.pagination-small {\n  ul > li:first-child > a,\n  ul > li:first-child > span {\n    .border-left-radius(@borderRadiusSmall);\n  }\n  ul > li:last-child > a,\n  ul > li:last-child > span {\n    .border-right-radius(@borderRadiusSmall);\n  }\n}\n\n// Small\n.pagination-small {\n  ul > li > a,\n  ul > li > span {\n    padding: @paddingSmall;\n    font-size: @fontSizeSmall;\n  }\n}\n// Mini\n.pagination-mini {\n  ul > li > a,\n  ul > li > span {\n    padding: @paddingMini;\n    font-size: @fontSizeMini;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/popovers.less",
    "content": "//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: @zindexPopover;\n  display: none;\n  max-width: 276px;\n  padding: 1px;\n  text-align: left; // Reset given new insertion method\n  background-color: @popoverBackground;\n  -webkit-background-clip: padding-box;\n     -moz-background-clip: padding;\n          background-clip: padding-box;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0,0,0,.2);\n  .border-radius(6px);\n  .box-shadow(0 5px 10px rgba(0,0,0,.2));\n\n  // Overrides for proper insertion\n  white-space: normal;\n\n  // Offset the popover to account for the popover arrow\n  &.top     { margin-top: -10px; }\n  &.right   { margin-left: 10px; }\n  &.bottom  { margin-top: 10px; }\n  &.left    { margin-left: -10px; }\n}\n\n.popover-title {\n  margin: 0; // reset heading margin\n  padding: 8px 14px;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 18px;\n  background-color: @popoverTitleBackground;\n  border-bottom: 1px solid darken(@popoverTitleBackground, 5%);\n  .border-radius(5px 5px 0 0);\n\n  &:empty {\n    display: none;\n  }\n}\n\n.popover-content {\n  padding: 9px 14px;\n}\n\n// Arrows\n//\n// .arrow is outer, .arrow:after is inner\n\n.popover .arrow,\n.popover .arrow:after {\n  position: absolute;\n  display: block;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n.popover .arrow {\n  border-width: @popoverArrowOuterWidth;\n}\n.popover .arrow:after {\n  border-width: @popoverArrowWidth;\n  content: \"\";\n}\n\n.popover {\n  &.top .arrow {\n    left: 50%;\n    margin-left: -@popoverArrowOuterWidth;\n    border-bottom-width: 0;\n    border-top-color: #999; // IE8 fallback\n    border-top-color: @popoverArrowOuterColor;\n    bottom: -@popoverArrowOuterWidth;\n    &:after {\n      bottom: 1px;\n      margin-left: -@popoverArrowWidth;\n      border-bottom-width: 0;\n      border-top-color: @popoverArrowColor;\n    }\n  }\n  &.right .arrow {\n    top: 50%;\n    left: -@popoverArrowOuterWidth;\n    margin-top: -@popoverArrowOuterWidth;\n    border-left-width: 0;\n    border-right-color: #999; // IE8 fallback\n    border-right-color: @popoverArrowOuterColor;\n    &:after {\n      left: 1px;\n      bottom: -@popoverArrowWidth;\n      border-left-width: 0;\n      border-right-color: @popoverArrowColor;\n    }\n  }\n  &.bottom .arrow {\n    left: 50%;\n    margin-left: -@popoverArrowOuterWidth;\n    border-top-width: 0;\n    border-bottom-color: #999; // IE8 fallback\n    border-bottom-color: @popoverArrowOuterColor;\n    top: -@popoverArrowOuterWidth;\n    &:after {\n      top: 1px;\n      margin-left: -@popoverArrowWidth;\n      border-top-width: 0;\n      border-bottom-color: @popoverArrowColor;\n    }\n  }\n\n  &.left .arrow {\n    top: 50%;\n    right: -@popoverArrowOuterWidth;\n    margin-top: -@popoverArrowOuterWidth;\n    border-right-width: 0;\n    border-left-color: #999; // IE8 fallback\n    border-left-color: @popoverArrowOuterColor;\n    &:after {\n      right: 1px;\n      border-right-width: 0;\n      border-left-color: @popoverArrowColor;\n      bottom: -@popoverArrowWidth;\n    }\n  }\n\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/progress-bars.less",
    "content": "//\n// Progress bars\n// --------------------------------------------------\n\n\n// ANIMATIONS\n// ----------\n\n// Webkit\n@-webkit-keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n// Firefox\n@-moz-keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n// IE9\n@-ms-keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n// Opera\n@-o-keyframes progress-bar-stripes {\n  from  { background-position: 0 0; }\n  to    { background-position: 40px 0; }\n}\n\n// Spec\n@keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n\n\n// THE BARS\n// --------\n\n// Outer container\n.progress {\n  overflow: hidden;\n  height: @baseLineHeight;\n  margin-bottom: @baseLineHeight;\n  #gradient > .vertical(#f5f5f5, #f9f9f9);\n  .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));\n  .border-radius(@baseBorderRadius);\n}\n\n// Bar of progress\n.progress .bar {\n  width: 0%;\n  height: 100%;\n  color: @white;\n  float: left;\n  font-size: 12px;\n  text-align: center;\n  text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n  #gradient > .vertical(#149bdf, #0480be);\n  .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));\n  .box-sizing(border-box);\n  .transition(width .6s ease);\n}\n.progress .bar + .bar {\n  .box-shadow(~\"inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15)\");\n}\n\n// Striped bars\n.progress-striped .bar {\n  #gradient > .striped(#149bdf);\n  .background-size(40px 40px);\n}\n\n// Call animation for the active one\n.progress.active .bar {\n  -webkit-animation: progress-bar-stripes 2s linear infinite;\n     -moz-animation: progress-bar-stripes 2s linear infinite;\n      -ms-animation: progress-bar-stripes 2s linear infinite;\n       -o-animation: progress-bar-stripes 2s linear infinite;\n          animation: progress-bar-stripes 2s linear infinite;\n}\n\n\n\n// COLORS\n// ------\n\n// Danger (red)\n.progress-danger .bar, .progress .bar-danger {\n  #gradient > .vertical(#ee5f5b, #c43c35);\n}\n.progress-danger.progress-striped .bar, .progress-striped .bar-danger {\n  #gradient > .striped(#ee5f5b);\n}\n\n// Success (green)\n.progress-success .bar, .progress .bar-success {\n  #gradient > .vertical(#62c462, #57a957);\n}\n.progress-success.progress-striped .bar, .progress-striped .bar-success {\n  #gradient > .striped(#62c462);\n}\n\n// Info (teal)\n.progress-info .bar, .progress .bar-info {\n  #gradient > .vertical(#5bc0de, #339bb9);\n}\n.progress-info.progress-striped .bar, .progress-striped .bar-info {\n  #gradient > .striped(#5bc0de);\n}\n\n// Warning (orange)\n.progress-warning .bar, .progress .bar-warning {\n  #gradient > .vertical(lighten(@orange, 15%), @orange);\n}\n.progress-warning.progress-striped .bar, .progress-striped .bar-warning {\n  #gradient > .striped(lighten(@orange, 15%));\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/reset.less",
    "content": "//\n// Reset CSS\n// Adapted from http://github.com/necolas/normalize.css\n// --------------------------------------------------\n\n\n// Display in IE6-9 and FF3\n// -------------------------\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nnav,\nsection {\n  display: block;\n}\n\n// Display block in IE6-9 and FF3\n// -------------------------\n\naudio,\ncanvas,\nvideo {\n  display: inline-block;\n  *display: inline;\n  *zoom: 1;\n}\n\n// Prevents modern browsers from displaying 'audio' without controls\n// -------------------------\n\naudio:not([controls]) {\n    display: none;\n}\n\n// Base settings\n// -------------------------\n\nhtml {\n  font-size: 100%;\n  -webkit-text-size-adjust: 100%;\n      -ms-text-size-adjust: 100%;\n}\n// Focus states\na:focus {\n  .tab-focus();\n}\n// Hover & Active\na:hover,\na:active {\n  outline: 0;\n}\n\n// Prevents sub and sup affecting line-height in all browsers\n// -------------------------\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\nsup {\n  top: -0.5em;\n}\nsub {\n  bottom: -0.25em;\n}\n\n// Img border in a's and image quality\n// -------------------------\n\nimg {\n  /* Responsive images (ensure images don't scale beyond their parents) */\n  max-width: 100%; /* Part 1: Set a maxium relative to the parent */\n  width: auto\\9; /* IE7-8 need help adjusting responsive images */\n  height: auto; /* Part 2: Scale the height according to the width, otherwise you get stretching */\n\n  vertical-align: middle;\n  border: 0;\n  -ms-interpolation-mode: bicubic;\n}\n\n// Prevent max-width from affecting Google Maps\n#map_canvas img,\n.google-maps img {\n  max-width: none;\n}\n\n// Forms\n// -------------------------\n\n// Font size in all browsers, margin changes, misc consistency\nbutton,\ninput,\nselect,\ntextarea {\n  margin: 0;\n  font-size: 100%;\n  vertical-align: middle;\n}\nbutton,\ninput {\n  *overflow: visible; // Inner spacing ie IE6/7\n  line-height: normal; // FF3/4 have !important on line-height in UA stylesheet\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner { // Inner padding and border oddities in FF3/4\n  padding: 0;\n  border: 0;\n}\nbutton,\nhtml input[type=\"button\"], // Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls.\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n    -webkit-appearance: button; // Corrects inability to style clickable `input` types in iOS.\n    cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others.\n}\nlabel,\nselect,\nbutton,\ninput[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"],\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n    cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others.\n}\ninput[type=\"search\"] { // Appearance in Safari/Chrome\n  .box-sizing(content-box);\n  -webkit-appearance: textfield;\n}\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-cancel-button {\n  -webkit-appearance: none; // Inner-padding issues in Chrome OSX, Safari 5\n}\ntextarea {\n  overflow: auto; // Remove vertical scrollbar in IE6-9\n  vertical-align: top; // Readability and alignment cross-browser\n}\n\n\n// Printing\n// -------------------------\n// Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css\n\n@media print {\n\n  * {\n    text-shadow: none !important;\n    color: #000 !important; // Black prints faster: h5bp.com/s\n    background: transparent !important;\n    box-shadow: none !important;\n  }\n\n  a,\n  a:visited {\n    text-decoration: underline;\n  }\n\n  a[href]:after {\n    content: \" (\" attr(href) \")\";\n  }\n\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\";\n  }\n\n  // Don't show links for images, or javascript/internal links\n  .ir a:after,\n  a[href^=\"javascript:\"]:after,\n  a[href^=\"#\"]:after {\n    content: \"\";\n  }\n\n  pre,\n  blockquote {\n    border: 1px solid #999;\n    page-break-inside: avoid;\n  }\n\n  thead {\n    display: table-header-group; // h5bp.com/t\n  }\n\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n\n  img {\n    max-width: 100% !important;\n  }\n\n  @page {\n    margin: 0.5cm;\n  }\n\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/responsive-1200px-min.less",
    "content": "//\n// Responsive: Large desktop and up\n// --------------------------------------------------\n\n\n@media (min-width: 1200px) {\n\n  // Fixed grid\n  #grid > .core(@gridColumnWidth1200, @gridGutterWidth1200);\n\n  // Fluid grid\n  #grid > .fluid(@fluidGridColumnWidth1200, @fluidGridGutterWidth1200);\n\n  // Input grid\n  #grid > .input(@gridColumnWidth1200, @gridGutterWidth1200);\n\n  // Thumbnails\n  .thumbnails {\n    margin-left: -@gridGutterWidth1200;\n  }\n  .thumbnails > li {\n    margin-left: @gridGutterWidth1200;\n  }\n  .row-fluid .thumbnails {\n    margin-left: 0;\n  }\n\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/responsive-767px-max.less",
    "content": "//\n// Responsive: Landscape phone to desktop/tablet\n// --------------------------------------------------\n\n\n@media (max-width: 767px) {\n\n  // Padding to set content in a bit\n  body {\n    padding-left: 20px;\n    padding-right: 20px;\n  }\n  // Negative indent the now static \"fixed\" navbar\n  .navbar-fixed-top,\n  .navbar-fixed-bottom,\n  .navbar-static-top {\n    margin-left: -20px;\n    margin-right: -20px;\n  }\n  // Remove padding on container given explicit padding set on body\n  .container-fluid {\n    padding: 0;\n  }\n\n  // TYPOGRAPHY\n  // ----------\n  // Reset horizontal dl\n  .dl-horizontal {\n    dt {\n      float: none;\n      clear: none;\n      width: auto;\n      text-align: left;\n    }\n    dd {\n      margin-left: 0;\n    }\n  }\n\n  // GRID & CONTAINERS\n  // -----------------\n  // Remove width from containers\n  .container {\n    width: auto;\n  }\n  // Fluid rows\n  .row-fluid {\n    width: 100%;\n  }\n  // Undo negative margin on rows and thumbnails\n  .row,\n  .thumbnails {\n    margin-left: 0;\n  }\n  .thumbnails > li {\n    float: none;\n    margin-left: 0; // Reset the default margin for all li elements when no .span* classes are present\n  }\n  // Make all grid-sized elements block level again\n  [class*=\"span\"],\n  .uneditable-input[class*=\"span\"], // Makes uneditable inputs full-width when using grid sizing\n  .row-fluid [class*=\"span\"] {\n    float: none;\n    display: block;\n    width: 100%;\n    margin-left: 0;\n    .box-sizing(border-box);\n  }\n  .span12,\n  .row-fluid .span12 {\n    width: 100%;\n    .box-sizing(border-box);\n  }\n  .row-fluid [class*=\"offset\"]:first-child {\n    margin-left: 0;\n  }\n\n  // FORM FIELDS\n  // -----------\n  // Make span* classes full width\n  .input-large,\n  .input-xlarge,\n  .input-xxlarge,\n  input[class*=\"span\"],\n  select[class*=\"span\"],\n  textarea[class*=\"span\"],\n  .uneditable-input {\n    .input-block-level();\n  }\n  // But don't let it screw up prepend/append inputs\n  .input-prepend input,\n  .input-append input,\n  .input-prepend input[class*=\"span\"],\n  .input-append input[class*=\"span\"] {\n    display: inline-block; // redeclare so they don't wrap to new lines\n    width: auto;\n  }\n  .controls-row [class*=\"span\"] + [class*=\"span\"] {\n    margin-left: 0;\n  }\n\n  // Modals\n  .modal {\n    position: fixed;\n    top:   20px;\n    left:  20px;\n    right: 20px;\n    width: auto;\n    margin: 0;\n    &.fade  { top: -100px; }\n    &.fade.in { top: 20px; }\n  }\n\n}\n\n\n\n// UP TO LANDSCAPE PHONE\n// ---------------------\n\n@media (max-width: 480px) {\n\n  // Smooth out the collapsing/expanding nav\n  .nav-collapse {\n    -webkit-transform: translate3d(0, 0, 0); // activate the GPU\n  }\n\n  // Block level the page header small tag for readability\n  .page-header h1 small {\n    display: block;\n    line-height: @baseLineHeight;\n  }\n\n  // Update checkboxes for iOS\n  input[type=\"checkbox\"],\n  input[type=\"radio\"] {\n    border: 1px solid #ccc;\n  }\n\n  // Remove the horizontal form styles\n  .form-horizontal {\n    .control-label {\n      float: none;\n      width: auto;\n      padding-top: 0;\n      text-align: left;\n    }\n    // Move over all input controls and content\n    .controls {\n      margin-left: 0;\n    }\n    // Move the options list down to align with labels\n    .control-list {\n      padding-top: 0; // has to be padding because margin collaspes\n    }\n    // Move over buttons in .form-actions to align with .controls\n    .form-actions {\n      padding-left: 10px;\n      padding-right: 10px;\n    }\n  }\n\n  // Medias\n  // Reset float and spacing to stack\n  .media .pull-left,\n  .media .pull-right  {\n    float: none;\n    display: block;\n    margin-bottom: 10px;\n  }\n  // Remove side margins since we stack instead of indent\n  .media-object {\n    margin-right: 0;\n    margin-left: 0;\n  }\n\n  // Modals\n  .modal {\n    top:   10px;\n    left:  10px;\n    right: 10px;\n  }\n  .modal-header .close {\n    padding: 10px;\n    margin: -10px;\n  }\n\n  // Carousel\n  .carousel-caption {\n    position: static;\n  }\n\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/responsive-768px-979px.less",
    "content": "//\n// Responsive: Tablet to desktop\n// --------------------------------------------------\n\n\n@media (min-width: 768px) and (max-width: 979px) {\n\n  // Fixed grid\n  #grid > .core(@gridColumnWidth768, @gridGutterWidth768);\n\n  // Fluid grid\n  #grid > .fluid(@fluidGridColumnWidth768, @fluidGridGutterWidth768);\n\n  // Input grid\n  #grid > .input(@gridColumnWidth768, @gridGutterWidth768);\n\n  // No need to reset .thumbnails here since it's the same @gridGutterWidth\n\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/responsive-navbar.less",
    "content": "//\n// Responsive: Navbar\n// --------------------------------------------------\n\n\n// TABLETS AND BELOW\n// -----------------\n@media (max-width: @navbarCollapseWidth) {\n\n  // UNFIX THE TOPBAR\n  // ----------------\n  // Remove any padding from the body\n  body {\n    padding-top: 0;\n  }\n  // Unfix the navbars\n  .navbar-fixed-top,\n  .navbar-fixed-bottom {\n    position: static;\n  }\n  .navbar-fixed-top {\n    margin-bottom: @baseLineHeight;\n  }\n  .navbar-fixed-bottom {\n    margin-top: @baseLineHeight;\n  }\n  .navbar-fixed-top .navbar-inner,\n  .navbar-fixed-bottom .navbar-inner {\n    padding: 5px;\n  }\n  .navbar .container {\n    width: auto;\n    padding: 0;\n  }\n  // Account for brand name\n  .navbar .brand {\n    padding-left: 10px;\n    padding-right: 10px;\n    margin: 0 0 0 -5px;\n  }\n\n  // COLLAPSIBLE NAVBAR\n  // ------------------\n  // Nav collapse clears brand\n  .nav-collapse {\n    clear: both;\n  }\n  // Block-level the nav\n  .nav-collapse .nav {\n    float: none;\n    margin: 0 0 (@baseLineHeight / 2);\n  }\n  .nav-collapse .nav > li {\n    float: none;\n  }\n  .nav-collapse .nav > li > a {\n    margin-bottom: 2px;\n  }\n  .nav-collapse .nav > .divider-vertical {\n    display: none;\n  }\n  .nav-collapse .nav .nav-header {\n    color: @navbarText;\n    text-shadow: none;\n  }\n  // Nav and dropdown links in navbar\n  .nav-collapse .nav > li > a,\n  .nav-collapse .dropdown-menu a {\n    padding: 9px 15px;\n    font-weight: bold;\n    color: @navbarLinkColor;\n    .border-radius(3px);\n  }\n  // Buttons\n  .nav-collapse .btn {\n    padding: 4px 10px 4px;\n    font-weight: normal;\n    .border-radius(@baseBorderRadius);\n  }\n  .nav-collapse .dropdown-menu li + li a {\n    margin-bottom: 2px;\n  }\n  .nav-collapse .nav > li > a:hover,\n  .nav-collapse .nav > li > a:focus,\n  .nav-collapse .dropdown-menu a:hover,\n  .nav-collapse .dropdown-menu a:focus {\n    background-color: @navbarBackground;\n  }\n  .navbar-inverse .nav-collapse .nav > li > a,\n  .navbar-inverse .nav-collapse .dropdown-menu a {\n    color: @navbarInverseLinkColor;\n  }\n  .navbar-inverse .nav-collapse .nav > li > a:hover,\n  .navbar-inverse .nav-collapse .nav > li > a:focus,\n  .navbar-inverse .nav-collapse .dropdown-menu a:hover,\n  .navbar-inverse .nav-collapse .dropdown-menu a:focus {\n    background-color: @navbarInverseBackground;\n  }\n  // Buttons in the navbar\n  .nav-collapse.in .btn-group {\n    margin-top: 5px;\n    padding: 0;\n  }\n  // Dropdowns in the navbar\n  .nav-collapse .dropdown-menu {\n    position: static;\n    top: auto;\n    left: auto;\n    float: none;\n    display: none;\n    max-width: none;\n    margin: 0 15px;\n    padding: 0;\n    background-color: transparent;\n    border: none;\n    .border-radius(0);\n    .box-shadow(none);\n  }\n  .nav-collapse .open > .dropdown-menu { \n    display: block; \n  }\n\n  .nav-collapse .dropdown-menu:before,\n  .nav-collapse .dropdown-menu:after {\n    display: none;\n  }\n  .nav-collapse .dropdown-menu .divider {\n    display: none;\n  }\n  .nav-collapse .nav > li > .dropdown-menu {\n    &:before,\n    &:after {\n      display: none;\n    }\n  }\n  // Forms in navbar\n  .nav-collapse .navbar-form,\n  .nav-collapse .navbar-search {\n    float: none;\n    padding: (@baseLineHeight / 2) 15px;\n    margin: (@baseLineHeight / 2) 0;\n    border-top: 1px solid @navbarBackground;\n    border-bottom: 1px solid @navbarBackground;\n    .box-shadow(~\"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1)\");\n  }\n  .navbar-inverse .nav-collapse .navbar-form,\n  .navbar-inverse .nav-collapse .navbar-search {\n    border-top-color: @navbarInverseBackground;\n    border-bottom-color: @navbarInverseBackground;\n  }\n  // Pull right (secondary) nav content\n  .navbar .nav-collapse .nav.pull-right {\n    float: none;\n    margin-left: 0;\n  }\n  // Hide everything in the navbar save .brand and toggle button */\n  .nav-collapse,\n  .nav-collapse.collapse {\n    overflow: hidden;\n    height: 0;\n  }\n  // Navbar button\n  .navbar .btn-navbar {\n    display: block;\n  }\n\n  // STATIC NAVBAR\n  // -------------\n  .navbar-static .navbar-inner {\n    padding-left:  10px;\n    padding-right: 10px;\n  }\n\n\n}\n\n\n// DEFAULT DESKTOP\n// ---------------\n\n@media (min-width: @navbarCollapseDesktopWidth) {\n\n  // Required to make the collapsing navbar work on regular desktops\n  .nav-collapse.collapse {\n    height: auto !important;\n    overflow: visible !important;\n  }\n\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/responsive-utilities.less",
    "content": "//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 Metro responsive\n// Required for Windows 8 Metro split-screen snapping with IE10\n// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/\n@-ms-viewport{\n  width: device-width;\n}\n\n// Hide from screenreaders and browsers\n// Credit: HTML5 Boilerplate\n.hidden {\n  display: none;\n  visibility: hidden;\n}\n\n// Visibility utilities\n\n// For desktops\n.visible-phone     { display: none !important; }\n.visible-tablet    { display: none !important; }\n.hidden-phone      { }\n.hidden-tablet     { }\n.hidden-desktop    { display: none !important; }\n.visible-desktop   { display: inherit !important; }\n\n// Tablets & small desktops only\n@media (min-width: 768px) and (max-width: 979px) {\n  // Hide everything else\n  .hidden-desktop    { display: inherit !important; }\n  .visible-desktop   { display: none !important ; }\n  // Show\n  .visible-tablet    { display: inherit !important; }\n  // Hide\n  .hidden-tablet     { display: none !important; }\n}\n\n// Phones only\n@media (max-width: 767px) {\n  // Hide everything else\n  .hidden-desktop    { display: inherit !important; }\n  .visible-desktop   { display: none !important; }\n  // Show\n  .visible-phone     { display: inherit !important; } // Use inherit to restore previous behavior\n  // Hide\n  .hidden-phone      { display: none !important; }\n}\n\n// Print utilities\n.visible-print    { display: none !important; }\n.hidden-print     { }\n\n@media print {\n  .visible-print  { display: inherit !important; }\n  .hidden-print   { display: none !important; }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/responsive.less",
    "content": "/*!\n * Bootstrap Responsive v2.3.2\n *\n * Copyright 2013 Twitter, Inc\n * Licensed under the Apache License v2.0\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Designed and built with all the love in the world by @mdo and @fat.\n */\n\n\n// Responsive.less\n// For phone and tablet devices\n// -------------------------------------------------------------\n\n\n// REPEAT VARIABLES & MIXINS\n// -------------------------\n// Required since we compile the responsive stuff separately\n\n@import \"variables.less\"; // Modify this for custom colors, font-sizes, etc\n@import \"mixins.less\";\n\n\n// RESPONSIVE CLASSES\n// ------------------\n\n@import \"responsive-utilities.less\";\n\n\n// MEDIA QUERIES\n// ------------------\n\n// Large desktops\n@import \"responsive-1200px-min.less\";\n\n// Tablets to regular desktops\n@import \"responsive-768px-979px.less\";\n\n// Phones to portrait tablets and narrow desktops\n@import \"responsive-767px-max.less\";\n\n\n// RESPONSIVE NAVBAR\n// ------------------\n\n// From 979px and below, show a button to toggle navbar contents\n@import \"responsive-navbar.less\";\n"
  },
  {
    "path": "dist/lib/bootstrap2/scaffolding.less",
    "content": "//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Body reset\n// -------------------------\n\nbody {\n  margin: 0;\n  font-family: @baseFontFamily;\n  font-size: @baseFontSize;\n  line-height: @baseLineHeight;\n  color: @textColor;\n  background-color: @bodyBackground;\n}\n\n\n// Links\n// -------------------------\n\na {\n  color: @linkColor;\n  text-decoration: none;\n}\na:hover,\na:focus {\n  color: @linkColorHover;\n  text-decoration: underline;\n}\n\n\n// Images\n// -------------------------\n\n// Rounded corners\n.img-rounded {\n  .border-radius(6px);\n}\n\n// Add polaroid-esque trim\n.img-polaroid {\n  padding: 4px;\n  background-color: #fff;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0,0,0,.2);\n  .box-shadow(0 1px 3px rgba(0,0,0,.1));\n}\n\n// Perfect circle\n.img-circle {\n  .border-radius(500px); // crank the border-radius so it works with most reasonably sized images\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/sprites.less",
    "content": "//\n// Sprites\n// --------------------------------------------------\n\n\n// ICONS\n// -----\n\n// All icons receive the styles of the <i> tag with a base class\n// of .i and are then given a unique class to add width, height,\n// and background-position. Your resulting HTML will look like\n// <i class=\"icon-inbox\"></i>.\n\n// For the white version of the icons, just add the .icon-white class:\n// <i class=\"icon-inbox icon-white\"></i>\n\n[class^=\"icon-\"],\n[class*=\" icon-\"] {\n  display: inline-block;\n  width: 14px;\n  height: 14px;\n  .ie7-restore-right-whitespace();\n  line-height: 14px;\n  vertical-align: text-top;\n  background-image: url(\"@{iconSpritePath}\");\n  background-position: 14px 14px;\n  background-repeat: no-repeat;\n  margin-top: 1px;\n}\n\n/* White icons with optional class, or on hover/focus/active states of certain elements */\n.icon-white,\n.nav-pills > .active > a > [class^=\"icon-\"],\n.nav-pills > .active > a > [class*=\" icon-\"],\n.nav-list > .active > a > [class^=\"icon-\"],\n.nav-list > .active > a > [class*=\" icon-\"],\n.navbar-inverse .nav > .active > a > [class^=\"icon-\"],\n.navbar-inverse .nav > .active > a > [class*=\" icon-\"],\n.dropdown-menu > li > a:hover > [class^=\"icon-\"],\n.dropdown-menu > li > a:focus > [class^=\"icon-\"],\n.dropdown-menu > li > a:hover > [class*=\" icon-\"],\n.dropdown-menu > li > a:focus > [class*=\" icon-\"],\n.dropdown-menu > .active > a > [class^=\"icon-\"],\n.dropdown-menu > .active > a > [class*=\" icon-\"],\n.dropdown-submenu:hover > a > [class^=\"icon-\"],\n.dropdown-submenu:focus > a > [class^=\"icon-\"],\n.dropdown-submenu:hover > a > [class*=\" icon-\"],\n.dropdown-submenu:focus > a > [class*=\" icon-\"] {\n  background-image: url(\"@{iconWhiteSpritePath}\");\n}\n\n.icon-glass              { background-position: 0      0; }\n.icon-music              { background-position: -24px  0; }\n.icon-search             { background-position: -48px  0; }\n.icon-envelope           { background-position: -72px  0; }\n.icon-heart              { background-position: -96px  0; }\n.icon-star               { background-position: -120px 0; }\n.icon-star-empty         { background-position: -144px 0; }\n.icon-user               { background-position: -168px 0; }\n.icon-film               { background-position: -192px 0; }\n.icon-th-large           { background-position: -216px 0; }\n.icon-th                 { background-position: -240px 0; }\n.icon-th-list            { background-position: -264px 0; }\n.icon-ok                 { background-position: -288px 0; }\n.icon-remove             { background-position: -312px 0; }\n.icon-zoom-in            { background-position: -336px 0; }\n.icon-zoom-out           { background-position: -360px 0; }\n.icon-off                { background-position: -384px 0; }\n.icon-signal             { background-position: -408px 0; }\n.icon-cog                { background-position: -432px 0; }\n.icon-trash              { background-position: -456px 0; }\n\n.icon-home               { background-position: 0      -24px; }\n.icon-file               { background-position: -24px  -24px; }\n.icon-time               { background-position: -48px  -24px; }\n.icon-road               { background-position: -72px  -24px; }\n.icon-download-alt       { background-position: -96px  -24px; }\n.icon-download           { background-position: -120px -24px; }\n.icon-upload             { background-position: -144px -24px; }\n.icon-inbox              { background-position: -168px -24px; }\n.icon-play-circle        { background-position: -192px -24px; }\n.icon-repeat             { background-position: -216px -24px; }\n.icon-refresh            { background-position: -240px -24px; }\n.icon-list-alt           { background-position: -264px -24px; }\n.icon-lock               { background-position: -287px -24px; } // 1px off\n.icon-flag               { background-position: -312px -24px; }\n.icon-headphones         { background-position: -336px -24px; }\n.icon-volume-off         { background-position: -360px -24px; }\n.icon-volume-down        { background-position: -384px -24px; }\n.icon-volume-up          { background-position: -408px -24px; }\n.icon-qrcode             { background-position: -432px -24px; }\n.icon-barcode            { background-position: -456px -24px; }\n\n.icon-tag                { background-position: 0      -48px; }\n.icon-tags               { background-position: -25px  -48px; } // 1px off\n.icon-book               { background-position: -48px  -48px; }\n.icon-bookmark           { background-position: -72px  -48px; }\n.icon-print              { background-position: -96px  -48px; }\n.icon-camera             { background-position: -120px -48px; }\n.icon-font               { background-position: -144px -48px; }\n.icon-bold               { background-position: -167px -48px; } // 1px off\n.icon-italic             { background-position: -192px -48px; }\n.icon-text-height        { background-position: -216px -48px; }\n.icon-text-width         { background-position: -240px -48px; }\n.icon-align-left         { background-position: -264px -48px; }\n.icon-align-center       { background-position: -288px -48px; }\n.icon-align-right        { background-position: -312px -48px; }\n.icon-align-justify      { background-position: -336px -48px; }\n.icon-list               { background-position: -360px -48px; }\n.icon-indent-left        { background-position: -384px -48px; }\n.icon-indent-right       { background-position: -408px -48px; }\n.icon-facetime-video     { background-position: -432px -48px; }\n.icon-picture            { background-position: -456px -48px; }\n\n.icon-pencil             { background-position: 0      -72px; }\n.icon-map-marker         { background-position: -24px  -72px; }\n.icon-adjust             { background-position: -48px  -72px; }\n.icon-tint               { background-position: -72px  -72px; }\n.icon-edit               { background-position: -96px  -72px; }\n.icon-share              { background-position: -120px -72px; }\n.icon-check              { background-position: -144px -72px; }\n.icon-move               { background-position: -168px -72px; }\n.icon-step-backward      { background-position: -192px -72px; }\n.icon-fast-backward      { background-position: -216px -72px; }\n.icon-backward           { background-position: -240px -72px; }\n.icon-play               { background-position: -264px -72px; }\n.icon-pause              { background-position: -288px -72px; }\n.icon-stop               { background-position: -312px -72px; }\n.icon-forward            { background-position: -336px -72px; }\n.icon-fast-forward       { background-position: -360px -72px; }\n.icon-step-forward       { background-position: -384px -72px; }\n.icon-eject              { background-position: -408px -72px; }\n.icon-chevron-left       { background-position: -432px -72px; }\n.icon-chevron-right      { background-position: -456px -72px; }\n\n.icon-plus-sign          { background-position: 0      -96px; }\n.icon-minus-sign         { background-position: -24px  -96px; }\n.icon-remove-sign        { background-position: -48px  -96px; }\n.icon-ok-sign            { background-position: -72px  -96px; }\n.icon-question-sign      { background-position: -96px  -96px; }\n.icon-info-sign          { background-position: -120px -96px; }\n.icon-screenshot         { background-position: -144px -96px; }\n.icon-remove-circle      { background-position: -168px -96px; }\n.icon-ok-circle          { background-position: -192px -96px; }\n.icon-ban-circle         { background-position: -216px -96px; }\n.icon-arrow-left         { background-position: -240px -96px; }\n.icon-arrow-right        { background-position: -264px -96px; }\n.icon-arrow-up           { background-position: -289px -96px; } // 1px off\n.icon-arrow-down         { background-position: -312px -96px; }\n.icon-share-alt          { background-position: -336px -96px; }\n.icon-resize-full        { background-position: -360px -96px; }\n.icon-resize-small       { background-position: -384px -96px; }\n.icon-plus               { background-position: -408px -96px; }\n.icon-minus              { background-position: -433px -96px; }\n.icon-asterisk           { background-position: -456px -96px; }\n\n.icon-exclamation-sign   { background-position: 0      -120px; }\n.icon-gift               { background-position: -24px  -120px; }\n.icon-leaf               { background-position: -48px  -120px; }\n.icon-fire               { background-position: -72px  -120px; }\n.icon-eye-open           { background-position: -96px  -120px; }\n.icon-eye-close          { background-position: -120px -120px; }\n.icon-warning-sign       { background-position: -144px -120px; }\n.icon-plane              { background-position: -168px -120px; }\n.icon-calendar           { background-position: -192px -120px; }\n.icon-random             { background-position: -216px -120px; width: 16px; }\n.icon-comment            { background-position: -240px -120px; }\n.icon-magnet             { background-position: -264px -120px; }\n.icon-chevron-up         { background-position: -288px -120px; }\n.icon-chevron-down       { background-position: -313px -119px; } // 1px, 1px off\n.icon-retweet            { background-position: -336px -120px; }\n.icon-shopping-cart      { background-position: -360px -120px; }\n.icon-folder-close       { background-position: -384px -120px; width: 16px; }\n.icon-folder-open        { background-position: -408px -120px; width: 16px; }\n.icon-resize-vertical    { background-position: -432px -119px; } // 1px, 1px off\n.icon-resize-horizontal  { background-position: -456px -118px; } // 1px, 2px off\n\n.icon-hdd                     { background-position: 0      -144px; }\n.icon-bullhorn                { background-position: -24px  -144px; }\n.icon-bell                    { background-position: -48px  -144px; }\n.icon-certificate             { background-position: -72px  -144px; }\n.icon-thumbs-up               { background-position: -96px  -144px; }\n.icon-thumbs-down             { background-position: -120px -144px; }\n.icon-hand-right              { background-position: -144px -144px; }\n.icon-hand-left               { background-position: -168px -144px; }\n.icon-hand-up                 { background-position: -192px -144px; }\n.icon-hand-down               { background-position: -216px -144px; }\n.icon-circle-arrow-right      { background-position: -240px -144px; }\n.icon-circle-arrow-left       { background-position: -264px -144px; }\n.icon-circle-arrow-up         { background-position: -288px -144px; }\n.icon-circle-arrow-down       { background-position: -312px -144px; }\n.icon-globe                   { background-position: -336px -144px; }\n.icon-wrench                  { background-position: -360px -144px; }\n.icon-tasks                   { background-position: -384px -144px; }\n.icon-filter                  { background-position: -408px -144px; }\n.icon-briefcase               { background-position: -432px -144px; }\n.icon-fullscreen              { background-position: -456px -144px; }\n"
  },
  {
    "path": "dist/lib/bootstrap2/tables.less",
    "content": "//\n// Tables\n// --------------------------------------------------\n\n\n// BASE TABLES\n// -----------------\n\ntable {\n  max-width: 100%;\n  background-color: @tableBackground;\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\n// BASELINE STYLES\n// ---------------\n\n.table {\n  width: 100%;\n  margin-bottom: @baseLineHeight;\n  // Cells\n  th,\n  td {\n    padding: 8px;\n    line-height: @baseLineHeight;\n    text-align: left;\n    vertical-align: top;\n    border-top: 1px solid @tableBorder;\n  }\n  th {\n    font-weight: bold;\n  }\n  // Bottom align for column headings\n  thead th {\n    vertical-align: bottom;\n  }\n  // Remove top border from thead by default\n  caption + thead tr:first-child th,\n  caption + thead tr:first-child td,\n  colgroup + thead tr:first-child th,\n  colgroup + thead tr:first-child td,\n  thead:first-child tr:first-child th,\n  thead:first-child tr:first-child td {\n    border-top: 0;\n  }\n  // Account for multiple tbody instances\n  tbody + tbody {\n    border-top: 2px solid @tableBorder;\n  }\n\n  // Nesting\n  .table {\n    background-color: @bodyBackground;\n  }\n}\n\n\n\n// CONDENSED TABLE W/ HALF PADDING\n// -------------------------------\n\n.table-condensed {\n  th,\n  td {\n    padding: 4px 5px;\n  }\n}\n\n\n// BORDERED VERSION\n// ----------------\n\n.table-bordered {\n  border: 1px solid @tableBorder;\n  border-collapse: separate; // Done so we can round those corners!\n  *border-collapse: collapse; // IE7 can't round corners anyway\n  border-left: 0;\n  .border-radius(@baseBorderRadius);\n  th,\n  td {\n    border-left: 1px solid @tableBorder;\n  }\n  // Prevent a double border\n  caption + thead tr:first-child th,\n  caption + tbody tr:first-child th,\n  caption + tbody tr:first-child td,\n  colgroup + thead tr:first-child th,\n  colgroup + tbody tr:first-child th,\n  colgroup + tbody tr:first-child td,\n  thead:first-child tr:first-child th,\n  tbody:first-child tr:first-child th,\n  tbody:first-child tr:first-child td {\n    border-top: 0;\n  }\n  // For first th/td in the first row in the first thead or tbody\n  thead:first-child tr:first-child > th:first-child,\n  tbody:first-child tr:first-child > td:first-child,\n  tbody:first-child tr:first-child > th:first-child {\n    .border-top-left-radius(@baseBorderRadius);\n  }\n  // For last th/td in the first row in the first thead or tbody\n  thead:first-child tr:first-child > th:last-child,\n  tbody:first-child tr:first-child > td:last-child,\n  tbody:first-child tr:first-child > th:last-child {\n    .border-top-right-radius(@baseBorderRadius);\n  }\n  // For first th/td (can be either) in the last row in the last thead, tbody, and tfoot\n  thead:last-child tr:last-child > th:first-child,\n  tbody:last-child tr:last-child > td:first-child,\n  tbody:last-child tr:last-child > th:first-child,\n  tfoot:last-child tr:last-child > td:first-child,\n  tfoot:last-child tr:last-child > th:first-child {\n    .border-bottom-left-radius(@baseBorderRadius);\n  }\n  // For last th/td (can be either) in the last row in the last thead, tbody, and tfoot\n  thead:last-child tr:last-child > th:last-child,\n  tbody:last-child tr:last-child > td:last-child,\n  tbody:last-child tr:last-child > th:last-child,\n  tfoot:last-child tr:last-child > td:last-child,\n  tfoot:last-child tr:last-child > th:last-child {\n    .border-bottom-right-radius(@baseBorderRadius);\n  }\n\n  // Clear border-radius for first and last td in the last row in the last tbody for table with tfoot\n  tfoot + tbody:last-child tr:last-child td:first-child {\n    .border-bottom-left-radius(0);\n  }\n  tfoot + tbody:last-child tr:last-child td:last-child {\n    .border-bottom-right-radius(0);\n  }\n\n  // Special fixes to round the left border on the first td/th\n  caption + thead tr:first-child th:first-child,\n  caption + tbody tr:first-child td:first-child,\n  colgroup + thead tr:first-child th:first-child,\n  colgroup + tbody tr:first-child td:first-child {\n    .border-top-left-radius(@baseBorderRadius);\n  }\n  caption + thead tr:first-child th:last-child,\n  caption + tbody tr:first-child td:last-child,\n  colgroup + thead tr:first-child th:last-child,\n  colgroup + tbody tr:first-child td:last-child {\n    .border-top-right-radius(@baseBorderRadius);\n  }\n\n}\n\n\n\n\n// ZEBRA-STRIPING\n// --------------\n\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n.table-striped {\n  tbody {\n    > tr:nth-child(odd) > td,\n    > tr:nth-child(odd) > th {\n      background-color: @tableBackgroundAccent;\n    }\n  }\n}\n\n\n// HOVER EFFECT\n// ------------\n// Placed here since it has to come after the potential zebra striping\n.table-hover {\n  tbody {\n    tr:hover > td,\n    tr:hover > th {\n      background-color: @tableBackgroundHover;\n    }\n  }\n}\n\n\n// TABLE CELL SIZING\n// -----------------\n\n// Reset default grid behavior\ntable td[class*=\"span\"],\ntable th[class*=\"span\"],\n.row-fluid table td[class*=\"span\"],\n.row-fluid table th[class*=\"span\"] {\n  display: table-cell;\n  float: none; // undo default grid column styles\n  margin-left: 0; // undo default grid column styles\n}\n\n// Change the column widths to account for td/th padding\n.table td,\n.table th {\n  &.span1     { .tableColumns(1); }\n  &.span2     { .tableColumns(2); }\n  &.span3     { .tableColumns(3); }\n  &.span4     { .tableColumns(4); }\n  &.span5     { .tableColumns(5); }\n  &.span6     { .tableColumns(6); }\n  &.span7     { .tableColumns(7); }\n  &.span8     { .tableColumns(8); }\n  &.span9     { .tableColumns(9); }\n  &.span10    { .tableColumns(10); }\n  &.span11    { .tableColumns(11); }\n  &.span12    { .tableColumns(12); }\n}\n\n\n\n// TABLE BACKGROUNDS\n// -----------------\n// Exact selectors below required to override .table-striped\n\n.table tbody tr {\n  &.success > td {\n    background-color: @successBackground;\n  }\n  &.error > td {\n    background-color: @errorBackground;\n  }\n  &.warning > td {\n    background-color: @warningBackground;\n  }\n  &.info > td {\n    background-color: @infoBackground;\n  }\n}\n\n// Hover states for .table-hover\n.table-hover tbody tr {\n  &.success:hover > td {\n    background-color: darken(@successBackground, 5%);\n  }\n  &.error:hover > td {\n    background-color: darken(@errorBackground, 5%);\n  }\n  &.warning:hover > td {\n    background-color: darken(@warningBackground, 5%);\n  }\n  &.info:hover > td {\n    background-color: darken(@infoBackground, 5%);\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/tests/buttons.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Buttons &middot; Bootstrap</title>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta name=\"description\" content=\"\">\n    <meta name=\"author\" content=\"\">\n\n    <!-- Le styles -->\n    <link href=\"../../docs/assets/css/bootstrap.css\" rel=\"stylesheet\">\n    <style>\n      body {\n        padding-top: 30px;\n        padding-bottom: 30px;\n      }\n    </style>\n    <link href=\"../../docs/assets/css/bootstrap-responsive.css\" rel=\"stylesheet\">\n\n    <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->\n    <!--[if lt IE 9]>\n      <script src=\"http://html5shim.googlecode.com/svn/trunk/html5.js\"></script>\n    <![endif]-->\n\n    <!-- Le fav and touch icons -->\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"144x144\" href=\"../../docs/assets/ico/apple-touch-icon-144-precomposed.png\">\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"114x114\" href=\"../../docs/assets/ico/apple-touch-icon-114-precomposed.png\">\n      <link rel=\"apple-touch-icon-precomposed\" sizes=\"72x72\" href=\"../../docs/assets/ico/apple-touch-icon-72-precomposed.png\">\n                    <link rel=\"apple-touch-icon-precomposed\" href=\"../../docs/assets/ico/apple-touch-icon-57-precomposed.png\">\n                                   <link rel=\"shortcut icon\" href=\"../../docs/assets/ico/favicon.png\">\n  </head>\n\n  <body>\n\n    <div class=\"container\">\n\n      <h2>Dropups</h2>\n      <div class=\"btn-toolbar\">\n        <div class=\"btn-group dropup\">\n          <button class=\"btn\">Dropup</button>\n          <button class=\"btn dropdown-toggle\" data-toggle=\"dropdown\"><span class=\"caret\"></span></button>\n          <ul class=\"dropdown-menu\">\n            <li><a href=\"#\">Action</a></li>\n            <li><a href=\"#\">Another action</a></li>\n            <li><a href=\"#\">Something else here</a></li>\n            <li class=\"divider\"></li>\n            <li><a href=\"#\">Separated link</a></li>\n          </ul>\n        </div><!-- /btn-group -->\n        <div class=\"btn-group dropup\">\n          <button class=\"btn btn-primary\">Dropup</button>\n          <button class=\"btn btn-primary dropdown-toggle\" data-toggle=\"dropdown\"><span class=\"caret\"></span></button>\n          <ul class=\"dropdown-menu\">\n            <li><a href=\"#\">Action</a></li>\n            <li><a href=\"#\">Another action</a></li>\n            <li><a href=\"#\">Something else here</a></li>\n            <li class=\"divider\"></li>\n            <li><a href=\"#\">Separated link</a></li>\n          </ul>\n        </div><!-- /btn-group -->\n        <div class=\"btn-group dropup\">\n          <button class=\"btn btn-danger\">Dropup</button>\n          <button class=\"btn btn-danger dropdown-toggle\" data-toggle=\"dropdown\"><span class=\"caret\"></span></button>\n          <ul class=\"dropdown-menu\">\n            <li><a href=\"#\">Action</a></li>\n            <li><a href=\"#\">Another action</a></li>\n            <li><a href=\"#\">Something else here</a></li>\n            <li class=\"divider\"></li>\n            <li><a href=\"#\">Separated link</a></li>\n          </ul>\n        </div><!-- /btn-group -->\n        <div class=\"btn-group dropup\">\n          <button class=\"btn btn-warning\">Dropup</button>\n          <button class=\"btn btn-warning dropdown-toggle\" data-toggle=\"dropdown\"><span class=\"caret\"></span></button>\n          <ul class=\"dropdown-menu\">\n            <li><a href=\"#\">Action</a></li>\n            <li><a href=\"#\">Another action</a></li>\n            <li><a href=\"#\">Something else here</a></li>\n            <li class=\"divider\"></li>\n            <li><a href=\"#\">Separated link</a></li>\n          </ul>\n        </div><!-- /btn-group -->\n        <div class=\"btn-group dropup\">\n          <button class=\"btn btn-success\">Dropup</button>\n          <button class=\"btn btn-success dropdown-toggle\" data-toggle=\"dropdown\"><span class=\"caret\"></span></button>\n          <ul class=\"dropdown-menu\">\n            <li><a href=\"#\">Action</a></li>\n            <li><a href=\"#\">Another action</a></li>\n            <li><a href=\"#\">Something else here</a></li>\n            <li class=\"divider\"></li>\n            <li><a href=\"#\">Separated link</a></li>\n          </ul>\n        </div><!-- /btn-group -->\n        <div class=\"btn-group dropup\">\n          <button class=\"btn btn-info\">Dropup</button>\n          <button class=\"btn btn-info dropdown-toggle\" data-toggle=\"dropdown\"><span class=\"caret\"></span></button>\n          <ul class=\"dropdown-menu\">\n            <li><a href=\"#\">Action</a></li>\n            <li><a href=\"#\">Another action</a></li>\n            <li><a href=\"#\">Something else here</a></li>\n            <li class=\"divider\"></li>\n            <li><a href=\"#\">Separated link</a></li>\n          </ul>\n        </div><!-- /btn-group -->\n        <div class=\"btn-group dropup\">\n          <button class=\"btn btn-inverse\">Dropup</button>\n          <button class=\"btn btn-inverse dropdown-toggle\" data-toggle=\"dropdown\"><span class=\"caret\"></span></button>\n          <ul class=\"dropdown-menu\">\n            <li><a href=\"#\">Action</a></li>\n            <li><a href=\"#\">Another action</a></li>\n            <li><a href=\"#\">Something else here</a></li>\n            <li class=\"divider\"></li>\n            <li><a href=\"#\">Separated link</a></li>\n          </ul>\n        </div><!-- /btn-group -->\n      </div><!-- /btn-toolbar -->\n\n\n    </div> <!-- /container -->\n\n    <!-- Le javascript\n    ================================================== -->\n    <!-- Placed at the end of the document so the pages load faster -->\n    <script src=\"../../docs/assets/js/jquery.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-transition.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-alert.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-modal.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-dropdown.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-scrollspy.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-tab.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-tooltip.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-popover.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-button.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-collapse.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-carousel.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-typeahead.js\"></script>\n\n  </body>\n</html>\n"
  },
  {
    "path": "dist/lib/bootstrap2/tests/css-tests.css",
    "content": "/*!\n * Bootstrap CSS Tests\n */\n\n\n/* Remove background image */\nbody {\n  background-image: none;\n}\n\n/* Space out subhead */\n.subhead {\n  margin-bottom: 36px;\n}\n/*h4 {\n  margin-bottom: 5px;\n}\n*/\n\n.type-test {\n  margin-bottom: 20px;\n  padding: 0 20px 20px;\n  background: url(../../docs/assets/img/grid-baseline-20px.png);\n}\n.type-test h1,\n.type-test h2,\n.type-test h3,\n.type-test h4,\n.type-test h5,\n.type-test h6 {\n  background-color: rgba(255,0,0,.2);\n}\n\n\n/* colgroup tests */\n.col1 {\n  background-color: rgba(255,0,0,.1);\n}\n.col2 {\n  background-color: rgba(0,255,0,.1);\n}\n.col3 {\n  background-color: rgba(0,0,255,.1);\n}\n\n\n/* Fluid row inputs */\n#rowInputs .row > [class*=span],\n#fluidRowInputs .row-fluid > [class*=span] {\n  background-color: rgba(255,0,0,.1);\n}\n\n\n/* Fluid grid */\n.fluid-grid {\n  margin-bottom: 45px;\n}\n.fluid-grid .row {\n  height: 40px;\n  padding-top: 10px;\n  margin-top: 10px;\n  color: #ddd;\n  text-align: center;\n}\n.fluid-grid .span1 {\n  background-color: #999;\n}\n\n\n/* Gradients */\n\n[class^=\"gradient-\"] {\n  width: 100%;\n  height: 400px;\n  margin: 20px 0;\n  -webkit-border-radius: 5px;\n     -moz-border-radius: 5px;\n          border-radius: 5px;\n}\n\n.gradient-horizontal {\n  background-color: #333333;\n  background-image: -moz-linear-gradient(left, #555555, #333333);\n  background-image: -webkit-gradient(linear, 0 0, 100% 0, from(#555555), to(#333333));\n  background-image: -webkit-linear-gradient(left, #555555, #333333);\n  background-image: -o-linear-gradient(left, #555555, #333333);\n  background-image: linear-gradient(to right, #555555, #333333);\n  background-repeat: repeat-x;\n  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff555555', endColorstr='#ff333333', GradientType=1);\n}\n\n.gradient-vertical {\n  background-color: #474747;\n  background-image: -moz-linear-gradient(top, #555555, #333333);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#333333));\n  background-image: -webkit-linear-gradient(top, #555555, #333333);\n  background-image: -o-linear-gradient(top, #555555, #333333);\n  background-image: linear-gradient(to bottom, #555555, #333333);\n  background-repeat: repeat-x;\n  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff555555', endColorstr='#ff333333', GradientType=0);\n}\n\n.gradient-directional {\n  background-color: #333333;\n  background-image: -moz-linear-gradient(45deg, #555555, #333333);\n  background-image: -webkit-linear-gradient(45deg, #555555, #333333);\n  background-image: -o-linear-gradient(45deg, #555555, #333333);\n  background-image: linear-gradient(45deg, #555555, #333333);\n  background-repeat: repeat-x;\n}\n\n.gradient-vertical-three {\n  background-color: #8940a5;\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#00b3ee), color-stop(50%, #7a43b6), to(#c3325f));\n  background-image: -webkit-linear-gradient(#00b3ee, #7a43b6 50%, #c3325f);\n  background-image: -moz-linear-gradient(top, #00b3ee, #7a43b6 50%, #c3325f);\n  background-image: -o-linear-gradient(#00b3ee, #7a43b6 50%, #c3325f);\n  background-image: linear-gradient(#00b3ee, #7a43b6 50%, #c3325f);\n  background-repeat: no-repeat;\n  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff00b3ee', endColorstr='#ffc3325f', GradientType=0);\n}\n\n.gradient-radial {\n  background-color: #333333;\n  background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(#555555), to(#333333));\n  background-image: -webkit-radial-gradient(circle, #555555, #333333);\n  background-image: -moz-radial-gradient(circle, #555555, #333333);\n  background-image: -o-radial-gradient(circle, #555555, #333333);\n  background-repeat: no-repeat;\n}\n\n.gradient-striped {\n  background-color: #555555;\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n\n.gradient-horizontal-three {\n  background-color: #00b3ee;\n  background-image: -webkit-gradient(left, linear, 0 0, 0 100%, from(#00b3ee), color-stop(50%, #7a43b6), to(#c3325f));\n  background-image: -webkit-linear-gradient(left, #00b3ee, #7a43b6 50%, #c3325f);\n  background-image: -moz-linear-gradient(left, #00b3ee, #7a43b6 50%, #c3325f);\n  background-image: -o-linear-gradient(left, #00b3ee, #7a43b6 50%, #c3325f);\n  background-image: linear-gradient(to right, #00b3ee, #7a43b6 50%, #c3325f);\n  background-repeat: no-repeat;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00b3ee', endColorstr='#c3325f', GradientType=0);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/tests/css-tests.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <title>CSS Tests · Twitter Bootstrap</title>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta name=\"description\" content=\"\">\n    <meta name=\"author\" content=\"\">\n\n    <!-- Le styles -->\n    <link href=\"../../docs/assets/css/bootstrap.css\" rel=\"stylesheet\">\n    <link href=\"../../docs/assets/css/bootstrap-responsive.css\" rel=\"stylesheet\">\n    <link href=\"../../docs/assets/css/docs.css\" rel=\"stylesheet\">\n    <link href=\"../../docs/assets/js/google-code-prettify/prettify.css\" rel=\"stylesheet\">\n\n    <!-- CSS just for the tests page -->\n    <link href=\"css-tests.css\" rel=\"stylesheet\">\n\n    <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->\n    <!--[if lt IE 9]>\n      <script src=\"http://html5shim.googlecode.com/svn/trunk/html5.js\"></script>\n    <![endif]-->\n\n    <!-- Le fav and touch icons -->\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"144x144\" href=\"../../docs/assets/ico/apple-touch-icon-144-precomposed.png\">\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"114x114\" href=\"../../docs/assets/ico/apple-touch-icon-114-precomposed.png\">\n      <link rel=\"apple-touch-icon-precomposed\" sizes=\"72x72\" href=\"../../docs/assets/ico/apple-touch-icon-72-precomposed.png\">\n                    <link rel=\"apple-touch-icon-precomposed\" href=\"../../docs/assets/ico/apple-touch-icon-57-precomposed.png\">\n                                   <link rel=\"shortcut icon\" href=\"../../docs/assets/ico/favicon.png\">\n  </head>\n\n  <body>\n\n\n  <!-- Navbar\n    ================================================== -->\n    <div class=\"navbar navbar-inverse navbar-fixed-top\">\n      <div class=\"navbar-inner\">\n        <div class=\"container\">\n          <a class=\"brand\" href=\"../../docs/index.html\">Bootstrap</a>\n        </div>\n      </div>\n    </div>\n\n\n<!-- Masthead\n================================================== -->\n<header class=\"jumbotron subhead\" id=\"overview\">\n  <div class=\"container\">\n    <h1>CSS Tests</h1>\n    <p class=\"lead\">One stop shop for quick debugging and edge-case tests of CSS.</p>\n  </div>\n</header>\n\n\n<div class=\"bs-docs-canvas\">\n\n  <div class=\"container\">\n\n\n\n<!-- Typography\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Typography</h1>\n</div>\n\n<div class=\"row\">\n  <div class=\"span6\">\n    <div class=\"type-test\">\n      <h1>h1. Heading 1</h1>\n      <h2>h2. Heading 2</h2>\n      <h3>h3. Heading 3</h3>\n      <h4>h4. Heading 4</h4>\n      <h5>h5. Heading 5</h5>\n      <h6>h6. Heading 6</h6>\n      <p>Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n    </div>\n  </div>\n  <div class=\"span6\">\n    <div class=\"type-test\">\n      <h1>h1. Heading 1</h1>\n      <p>Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n      <h2>h2. Heading 2</h2>\n      <p>Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n      <h3>h3. Heading 3</h3>\n      <p>Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n      <h4>h4. Heading 4</h4>\n      <p>Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n      <h5>h5. Heading 5</h5>\n      <p>Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n      <h6>h6. Heading 6</h6>\n      <p>Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n    </div>\n  </div>\n</div>\n\n\n\n<!-- Responsive images\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Responsive images</h1>\n</div>\n\n<div class=\"row\">\n  <div class=\"span4\">\n    <img data-src=\"holder.js/600x600\" height=\"200\">\n  </div>\n  <div class=\"span4\">\n    <img data-src=\"holder.js/600x600\">\n  </div>\n  <div class=\"span4\">\n    <img data-src=\"holder.js/600x600\">\n  </div>\n</div>\n\n<br>\n\n<div class=\"row\">\n  <div class=\"span4\">\n    <img data-src=\"holder.js/600x900\" style=\"width: 200px;\">\n  </div>\n  <div class=\"span4\">\n    <img data-src=\"holder.js/200x300\">\n  </div>\n  <div class=\"span4\">\n    <img data-src=\"holder.js/600x600\">\n  </div>\n</div>\n\n<br><br>\n\n\n\n\n<!-- Fluid grid\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Fluid grids</h1>\n</div>\n\n<div class=\"fluid-grid\">\n  <div class=\"row\">\n    <div class=\"span12\">12\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n  </div>\n  <div class=\"row\">\n    <div class=\"span11\">11\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n    <div class=\"span1\">1\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n  </div>\n  <div class=\"row\">\n    <div class=\"span10\">10\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n    <div class=\"span2\">2\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n  </div>\n  <div class=\"row\">\n    <div class=\"span9\">9\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n    <div class=\"span3\">3\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n  </div>\n  <div class=\"row\">\n    <div class=\"span8\">8\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n    <div class=\"span4\">4\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n  </div>\n  <div class=\"row\">\n    <div class=\"span7\">7\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n    <div class=\"span5\">5\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n  </div>\n  <div class=\"row\">\n    <div class=\"span6\">6\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n    <div class=\"span6\">6\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n  </div>\n</div> <!-- fluid grids -->\n\n\n\n<!-- Tables\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Tables</h1>\n</div>\n\n<div class=\"row\">\n  <div class=\"span6\">\n    <h4>Bordered without thead</h4>\n    <table class=\"table table-bordered\">\n      <tbody>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n      </tbody>\n    </table>\n    <h4>Bordered without thead, with caption</h4>\n    <table class=\"table table-bordered\">\n      <caption>Table caption</caption>\n      <tbody>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n      </tbody>\n    </table>\n    <h4>Bordered without thead, with colgroup</h4>\n    <table class=\"table table-bordered\">\n      <colgroup>\n        <col class=\"col1\">\n        <col class=\"col2\">\n        <col class=\"col3\">\n      </colgroup>\n      <tbody>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n      </tbody>\n      <tfoot>\n        <tr>\n          <td>3</td>\n          <td>6</td>\n          <td>9</td>\n        </tr>\n      </tfoot>\n    </table>\n    <h4>Bordered with thead, with colgroup</h4>\n    <table class=\"table table-bordered\">\n      <colgroup>\n        <col class=\"col1\">\n        <col class=\"col2\">\n        <col class=\"col3\">\n      </colgroup>\n      <thead>\n        <tr>\n          <th>A</th>\n          <th>B</th>\n          <th>C</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n      </tbody>\n      <tfoot>\n        <tr>\n          <td>3</td>\n          <td>6</td>\n          <td>9</td>\n        </tr>\n      </tfoot>\n    </table>\n  </div><!--/span-->\n  <div class=\"span6\">\n    <h4>Bordered with thead and caption</h4>\n    <table class=\"table table-bordered\">\n      <caption>Table caption</caption>\n      <thead>\n        <tr>\n          <th>1</th>\n          <th>2</th>\n          <th>3</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n      </tbody>\n      <tfoot>\n        <tr>\n          <td>3</td>\n          <td>6</td>\n          <td>9</td>\n        </tr>\n      </tfoot>\n    </table>\n    <h4>Bordered with rowspan and colspan</h4>\n    <table class=\"table table-bordered\">\n      <thead>\n        <tr>\n          <th>1</th>\n          <th>2</th>\n          <th>3</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td colspan=\"2\">1 and 2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td rowspan=\"2\">2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td rowspan=\"2\">1</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td colspan=\"2\">2 and 3</td>\n        </tr>\n      </tbody>\n    </table>\n  </div><!--/span-->\n</div><!--/row-->\n\n\n<h4>Grid sizing</h4>\n<div class=\"row\">\n  <div class=\"span12\">\n    <table class=\"table table-bordered\">\n      <thead>\n        <tr>\n          <th class=\"span3\">1</th>\n          <th class=\"span4\">2</th>\n          <th>3</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td colspan=\"2\">1 and 2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td rowspan=\"2\">2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td rowspan=\"2\">1</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td colspan=\"2\">2 and 3</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n</div><!--/row-->\n\n<h4>Nesting and striping</h4>\n<table class=\"table table-bordered table-striped\">\n  <thead>\n    <tr>\n      <th>Test</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td>\n        <table class=\"table table-bordered table-striped\">\n          <thead>\n            <tr>\n              <th>Test</th>\n              <th>Test</th>\n            </tr>\n          </thead>\n          <tbody>\n            <tr>\n              <td>\n                test\n              </td>\n              <td>\n                test\n              </td>\n            </tr>\n            <tr>\n              <td>\n                test\n              </td>\n              <td>\n                test\n              </td>\n            </tr>\n            <tr>\n              <td>\n                test\n              </td>\n              <td>\n                test\n              </td>\n            </tr>\n          </tbody>\n        </table>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<h4>Fluid grid sizing</h4>\n<div class=\"row-fluid\">\n  <div class=\"span12\">\n    <table class=\"table table-bordered\">\n      <thead>\n        <tr>\n          <th class=\"span3\">1</th>\n          <th class=\"span4\">2</th>\n          <th>3</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td colspan=\"2\">1 and 2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td rowspan=\"2\">2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td rowspan=\"2\">1</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td colspan=\"2\">2 and 3</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n</div><!--/row-->\n\n\n\n<!-- Forms\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Forms</h1>\n</div>\n\n<h4>Buttons and button groups</h4>\n<form class=\"form-inline\">\n  <button class=\"btn btn-success\">Save</button>\n  <button class=\"btn btn-info\">Add new</button>\n  <div class=\"btn-group\">\n    <a class=\"btn dropdown-toggle\" data-toggle=\"dropdown\" href=\"#\">\n      <i class=\"icon-user\"></i> User\n      <span class=\"caret\"></span>\n    </a>\n    <ul class=\"dropdown-menu\">\n      <li><a href=\"#\">Profile</a></li>\n      <li class=\"divider\"></li>\n      <li><a href=\"#\">Sign Out</a></li>\n    </ul>\n  </div>\n</form>\n\n<h4>Horizontal form errors</h4>\n<form class=\"form-horizontal\">\n  <div class=\"control-group error\">\n    <label class=\"control-label\" for=\"inputError\">Radio with error</label>\n    <div class=\"controls\">\n      <label class=\"radio\">\n        <input type=\"radio\" id=\"inputError\"> Oh hai\n      </label>\n      <span class=\"help-inline\">Please correct the error</span>\n    </div>\n  </div>\n</form>\n\n<div class=\"row\">\n  <div class=\"span4\">\n    <h4>Prepend and append on inputs</h4>\n    <form>\n      <div class=\"controls\">\n        <div class=\"input-prepend\">\n          <span class=\"add-on\">@</span>\n          <input class=\"span2\" id=\"prependedInput\" size=\"16\" type=\"text\">\n        </div>\n      </div>\n      <div class=\"controls\">\n        <div class=\"input-append\">\n          <input class=\"span2\" id=\"prependedInput\" size=\"16\" type=\"text\">\n          <span class=\"add-on\">@</span>\n        </div>\n      </div>\n      <div class=\"controls\">\n        <div class=\"input-prepend input-append\">\n          <span class=\"add-on\">$</span>\n          <input class=\"span2\" id=\"prependedInput\" size=\"16\" type=\"text\">\n          <span class=\"add-on\">.00</span>\n        </div>\n      </div>\n    </form>\n  </div><!--/span-->\n  <div class=\"span4\">\n    <h4>Prepend and append with uneditable</h4>\n    <form>\n      <div class=\"input-prepend\">\n        <span class=\"add-on\">$</span>\n        <span class=\"span2 uneditable-input\">Some value here</span>\n      </div>\n      <div class=\"input-append\">\n        <span class=\"span2 uneditable-input\">Some value here</span>\n        <span class=\"add-on\">.00</span>\n      </div>\n      <div class=\"input-prepend input-append\">\n        <span class=\"add-on\">$</span>\n        <span class=\"span2 uneditable-input\">Some value here</span>\n        <span class=\"add-on\">.00</span>\n      </div>\n    </form>\n  </div><!--/span-->\n  <div class=\"span4\">\n    <h4>Prepend with type=\"submit\"</h4>\n    <form class=\"form-search\">\n      <div class=\"input-append\">\n        <input type=\"text\" class=\"span2 search-query\" value=\"\" name=\"q\">\n        <input type=\"submit\" value=\"Search\" class=\"btn\">\n      </div>\n    </form>\n    <div class=\"input-append\">\n      <input type=\"text\" class=\"span2\" value=\"\" name=\"\">\n      <input type=\"submit\" value=\"Button\" class=\"btn\">\n    </div>\n    <div class=\"input-append\">\n      <input type=\"text\" size=\"16\" id=\"appendedInputButtons\" class=\"span2\">\n      <input type=\"submit\" value=\"Search\" class=\"btn\">\n      <button type=\"button\" class=\"btn\">Options</button>\n    </div>\n  </div><!--/span-->\n</div><!--/row-->\n\n<h4>Fluid prepended and appended inputs</h4>\n<div class=\"row-fluid\">\n  <div class=\"span6\">\n    <form>\n      <div class=\"controls\">\n        <div class=\"input-prepend\">\n          <span class=\"add-on\">@</span><input class=\"span2\" id=\"prependedInput\" size=\"16\" type=\"text\">\n        </div>\n      </div>\n      <div class=\"controls\">\n        <div class=\"input-append\">\n          <input class=\"span2\" id=\"prependedInput\" size=\"16\" type=\"text\"><span class=\"add-on\">@</span>\n        </div>\n      </div>\n      <div class=\"controls\">\n        <div class=\"input-prepend input-append\">\n          <span class=\"add-on\">$</span><input class=\"span2\" id=\"prependedInput\" size=\"16\" type=\"text\"><span class=\"add-on\">.00</span>\n        </div>\n      </div>\n    </form>\n  </div>\n</div>\n\n<h4>Fixed row with inputs</h4>\n<p>Inputs should not extend past the light red background, set on their parent, a <code>.span*</code> column.</p>\n\n<div class=\"rowInputs\">\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span1\" placeholder=\"span1\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span2\" placeholder=\"span2\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span3\" placeholder=\"span3\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span4\" placeholder=\"span4\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span5\" placeholder=\"span5\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span6\" placeholder=\"span6\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span7\" placeholder=\"span7\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span8\" placeholder=\"span8\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span9\" placeholder=\"span9\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span10\" placeholder=\"span10\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span11\" placeholder=\"span11\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span12\" placeholder=\"span12\">\n    </div><!--/span-->\n  </div><!--/row-->\n</div>\n<br>\n\n<h4>Fluid row with inputs</h4>\n<p>Inputs should not extend past the light red background, set on their parent, a <code>.span*</code> column.</p>\n<div id=\"fluidRowInputs\">\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span1\" placeholder=\"span1\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span2\" placeholder=\"span2\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span3\" placeholder=\"span3\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span4\" placeholder=\"span4\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span5\" placeholder=\"span5\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span6\" placeholder=\"span6\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span7\" placeholder=\"span7\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span8\" placeholder=\"span8\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span9\" placeholder=\"span9\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span10\" placeholder=\"span10\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span11\" placeholder=\"span11\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span12\" placeholder=\"span12\">\n    </div><!--/span-->\n  </div><!--/row-->\n</div>\n\n<br>\n\n<h4>Inline form in fluid row</h4>\n\n<div class=\"row-fluid\">\n  <div class=\"span12\">\n    <form class=\"form-inline\">\n      <input type=\"text\" class=\"span3\" placeholder=\"Email\">\n      <input type=\"password\" class=\"span3\" placeholder=\"Password\">\n      <label class=\"checkbox\">\n        <input type=\"checkbox\"> Remember me\n      </label>\n      <button type=\"submit\" class=\"btn\">Sign in</button>\n    </form>\n  </div>\n</div>\n\n\n<br>\n\n\n<h4>Fluid textarea at .span12</h4>\n<div class=\"row-fluid\">\n  <div class=\"span12\">\n    <textarea class=\"span12\"></textarea>\n  </div>\n</div>\n\n\n<br>\n\n\n<h4>Selects</h4>\n<form>\n  <select class=\"span4\">\n    <option>Option</option>\n  </select>\n</form>\n\n\n<br>\n\n\n\n\n<!-- Dropdowns\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Dropdowns</h1>\n</div>\n\n<h4>Dropdown link with hash URL</h4>\n<ul class=\"nav nav-pills\">\n  <li class=\"active\"><a href=\"#\">Link</a></li>\n  <li><a href=\"#\">Example link</a></li>\n  <li class=\"dropdown\">\n    <a class=\"dropdown-toggle\" data-toggle=\"dropdown\" href=\"#\">\n      Dropdown <span class=\"caret\"></span>\n    </a>\n    <ul class=\"dropdown-menu\">\n      <li><a href=\"#\">Action</a></li>\n      <li><a href=\"#\">Another action</a></li>\n      <li><a href=\"#\">Something else here</a></li>\n      <li class=\"divider\"></li>\n      <li><a href=\"#\">Separated link</a></li>\n    </ul>\n  </li>\n</ul>\n\n<h4>Dropdown link with custom URL and data-target</h4>\n<ul class=\"nav nav-pills\">\n  <li class=\"active\"><a href=\"#\">Link</a></li>\n  <li><a href=\"#\">Example link</a></li>\n  <li class=\"dropdown\">\n    <a class=\"dropdown-toggle\" data-toggle=\"dropdown\" data-target=\"#\" href=\"path/to/page.html\">\n      Dropdown <span class=\"caret\"></span>\n    </a>\n    <ul class=\"dropdown-menu\">\n      <li><a href=\"#\">Action</a></li>\n      <li><a href=\"#\">Another action</a></li>\n      <li><a href=\"#\">Something else here</a></li>\n      <li class=\"divider\"></li>\n      <li><a href=\"#\">Separated link</a></li>\n    </ul>\n  </li>\n</ul>\n\n<h4>Dropdown on a button</h4>\n<div style=\"position: relative;\">\n  <button class=\"btn\" type=\"button\" data-toggle=\"dropdown\">Dropdown <span class=\"caret\"></span></button>\n  <ul class=\"dropdown-menu\">\n    <li><a href=\"#\">Action</a></li>\n    <li><a href=\"#\">Another action</a></li>\n    <li><a href=\"#\">Something else here</a></li>\n    <li class=\"divider\"></li>\n    <li><a href=\"#\">Separated link</a></li>\n  </ul>\n</div>\n\n<br>\n\n\n<!-- Thumbnails\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Thumbnails</h1>\n</div>\n\n<h4>Default thumbnails (no grid sizing)</h4>\n<ul class=\"thumbnails\">\n  <li class=\"thumbnail\">\n    <img data-src=\"holder.js/260x180\" alt=\"\">\n  </li>\n  <li class=\"thumbnail\">\n    <img data-src=\"holder.js/260x180\" alt=\"\">\n  </li>\n  <li class=\"thumbnail\">\n    <img data-src=\"holder.js/260x180\" alt=\"\">\n  </li>\n  <li class=\"thumbnail\">\n    <img data-src=\"holder.js/260x180\" alt=\"\">\n  </li>\n</ul>\n\n<!-- NOT CURRENTLY SUPPORTED\n<h4>Offset thumbnails</h4>\n<ul class=\"thumbnails\">\n  <li class=\"span3 offset3\">\n    <a href=\"#\" class=\"thumbnail\">\n      <img data-src=\"holder.js/260x180\" alt=\"\">\n    </a>\n  </li>\n  <li class=\"span3\">\n    <a href=\"#\" class=\"thumbnail\">\n      <img data-src=\"holder.js/260x180\" alt=\"\">\n    </a>\n  </li>\n  <li class=\"span3\">\n    <a href=\"#\" class=\"thumbnail\">\n      <img data-src=\"holder.js/260x180\" alt=\"\">\n    </a>\n  </li>\n</ul>\n-->\n\n<h4>Standard grid sizing</h4>\n<ul class=\"thumbnails\">\n  <li class=\"span3\">\n    <a href=\"#\" class=\"thumbnail\">\n      <img data-src=\"holder.js/260x180\" alt=\"\">\n    </a>\n  </li>\n  <li class=\"span3 offset3\">\n    <a href=\"#\" class=\"thumbnail\">\n      <img data-src=\"holder.js/260x180\" alt=\"\">\n    </a>\n  </li>\n  <li class=\"span3\">\n    <a href=\"#\" class=\"thumbnail\">\n      <img data-src=\"holder.js/260x180\" alt=\"\">\n    </a>\n  </li>\n</ul>\n\n<h4>Fluid thumbnails</h4>\n<div class=\"row-fluid\">\n  <div class=\"span8\">\n    <ul class=\"thumbnails\">\n      <li class=\"span4\">\n        <a href=\"#\" class=\"thumbnail\">\n          <img data-src=\"holder.js/260x180\" alt=\"\">\n        </a>\n      </li>\n      <li class=\"span4\">\n        <a href=\"#\" class=\"thumbnail\">\n          <img data-src=\"holder.js/260x180\" alt=\"\">\n        </a>\n      </li>\n      <li class=\"span4\">\n        <a href=\"#\" class=\"thumbnail\">\n          <img data-src=\"holder.js/260x180\" alt=\"\">\n        </a>\n      </li>\n    </ul>\n  </div>\n</div>\n\n\n\n<!-- Tabs\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Tabs</h1>\n</div>\n\n<div class=\"tabbable tabs-left\" style=\"margin-bottom: 18px;\">\n  <ul class=\"nav nav-tabs\">\n    <li class=\"active\"><a href=\"#tab1\" data-toggle=\"tab\">Section 1</a></li>\n    <li><a href=\"#tab2\" data-toggle=\"tab\">Section 2</a></li>\n    <li><a href=\"#tab3\" data-toggle=\"tab\">Section 3</a></li>\n  </ul>\n  <div class=\"tab-content\" style=\"padding-bottom: 9px; border-bottom: 1px solid #ddd;\">\n    <div class=\"tab-pane active\" id=\"tab1\">\n      <p>I'm in Section 1.</p>\n\n      <div class=\"tabbable\" style=\"background: #f5f5f5; padding: 20px;\">\n        <ul class=\"nav nav-tabs\">\n          <li class=\"active\"><a href=\"#tab1-1\" data-toggle=\"tab\">1.1</a></li>\n          <li><a href=\"#tab1-2\" data-toggle=\"tab\">1.2</a></li>\n          <li><a href=\"#tab1-3\" data-toggle=\"tab\">1.3</a></li>\n        </ul>\n        <div class=\"tab-content\" style=\"padding-bottom: 9px; border-bottom: 1px solid #ddd;\">\n          <div class=\"tab-pane active\" id=\"tab1-1\">\n            <p>I'm in Section 1.1.</p>\n          </div>\n          <div class=\"tab-pane\" id=\"tab1-2\">\n            <p>I'm in Section 1.2.</p>\n          </div>\n          <div class=\"tab-pane\" id=\"tab1-3\">\n            <p>I'm in Section 1.3.</p>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"tab-pane\" id=\"tab2\">\n      <p>Howdy, I'm in Section 2.</p>\n    </div>\n    <div class=\"tab-pane\" id=\"tab3\">\n      <p>What up girl, this is Section 3.</p>\n    </div>\n  </div>\n</div> <!-- /tabbable -->\n\n<br>\n\n\n<!-- Labels\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Labels</h1>\n</div>\n\n<div class=\"row\">\n  <div class=\"span4\">\n    <h4>Inline label</h4>\n    <p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Maecenas sed diam <span class=\"label label-warning\">Label name</span> eget risus varius blandit sit amet non magna. Fusce <code>.class-name</code> dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>\n  </div><!--/span-->\n  <div class=\"span4\">\n    <form class=\"form-horizontal\">\n      <label>Example label</label>\n      <input type=\"text\" placeholder=\"Input\"> <span class=\"help-inline\"><span class=\"label\">Hey!</span> Read this.</span>\n    </form>\n  </div><!--/span-->\n  <div class=\"span4\">\n    <button class=\"btn\">Action <span class=\"badge\">2</span></button>\n    <button class=\"btn\">Action <span class=\"label\">2</span></button>\n  </div><!--/span-->\n</div><!--/row-->\n\n<br>\n\n\n<!-- Button groups\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Buttons</h1>\n</div>\n\n<table class=\"table table-bordered\">\n  <tbody>\n    <tr>\n      <td>\n        Maecenas faucibus mollis interdum. Nulla vitae elit libero, a pharetra augue. Donec ullamcorper nulla non metus auctor fringilla. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.\n      </td>\n      <td>\n        <div class=\"btn-group\">\n          <button class=\"btn\">1</button>\n          <button class=\"btn\">2</button>\n          <button class=\"btn\">3</button>\n          <button class=\"btn\">4</button>\n        </div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<h4>Mini buttons: text and icon</h4>\n<div class=\"btn-group\">\n  <button class=\"btn btn-mini\">Button text</button>\n  <button class=\"btn btn-mini\"><i class=\"icon-cog\"></i></button>\n</div>\n\n<br>\n\n\n\n<!-- Responsive utility classes\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Responsive utility classes</h1>\n</div>\n\n<h4>Visible on...</h4>\n<ul class=\"responsive-utilities-test visible-on\">\n  <li>Phone<span class=\"visible-phone\">✔ Phone</span></li>\n  <li>Tablet<span class=\"visible-tablet\">✔ Tablet</span></li>\n  <li>Desktop<span class=\"visible-desktop\">✔ Desktop</span></li>\n</ul>\n<ul class=\"responsive-utilities-test visible-on\">\n  <li>Phone + Tablet<span class=\"visible-phone visible-tablet\">✔ Phone + Tablet</span></li>\n  <li>Tablet + Desktop<span class=\"visible-tablet visible-desktop\">✔ Tablet + Desktop</span></li>\n  <li>All<span class=\"visible-phone visible-tablet visible-desktop\">✔ All</span></li>\n</ul>\n\n<h4>Hidden on...</h4>\n<ul class=\"responsive-utilities-test hidden-on\">\n  <li>Phone<span class=\"hidden-phone\">✔ Phone</span></li>\n  <li>Tablet<span class=\"hidden-tablet\">✔ Tablet</span></li>\n  <li>Desktop<span class=\"hidden-desktop\">✔ Desktop</span></li>\n</ul>\n<ul class=\"responsive-utilities-test hidden-on\">\n  <li>Phone + Tablet<span class=\"hidden-phone hidden-tablet\">✔ Phone + Tablet</span></li>\n  <li>Tablet + Desktop<span class=\"hidden-tablet hidden-desktop\">✔ Tablet + Desktop</span></li>\n  <li>All<span class=\"hidden-phone hidden-tablet hidden-desktop\">✔ All</span></li>\n</ul>\n\n\n\n<!-- Gradients\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Gradients</h1>\n</div>\n\n<h4>Horizontal</h4>\n<div class=\"gradient-horizontal\"></div>\n\n<h4>Vertical</h4>\n<div class=\"gradient-vertical\"></div>\n\n<h4>Directional</h4>\n<div class=\"gradient-directional\"></div>\n\n<h4>Three colors</h4>\n<div class=\"gradient-vertical-three\"></div>\n\n<h4>Radial</h4>\n<div class=\"gradient-radial\"></div>\n\n<h4>Striped</h4>\n<div class=\"gradient-striped\"></div>\n\n<h4>Horizontal three colors</h4>\n<div class=\"gradient-horizontal-three\"></div>\n\n\n\n<div class=\"page-header\">\n  <h1>Alerts</h1>\n</div>\n\n<h4>Alert default</h4>\n<div class=\"alert\">\n  <button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>\n  <strong>Alert!</strong> Best check yourself, you're not looking too good.\n</div>\n<div class=\"alert alert-block\">\n  <button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>\n  <p><strong>Alert!</strong> Best check yourself, you're not looking too good.</p>\n</div>\n\n<h4>Success</h4>\n<div class=\"alert alert-success\">\n  <button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>\n  <strong>Success!</strong> Best check yourself, you're not looking too good.\n</div>\n<div class=\"alert alert-block alert-success\">\n  <button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>\n  <p><strong>Success!</strong> Best check yourself, you're not looking too good.</p>\n</div>\n\n<h4>Info</h4>\n<div class=\"alert alert-info\">\n  <button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>\n  <strong>Info!</strong> Best check yourself, you're not looking too good.\n</div>\n<div class=\"alert alert-block alert-info\">\n  <button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>\n  <p><strong>Info!</strong> Best check yourself, you're not looking too good.</p>\n</div>\n\n<h4>Warning</h4>\n<div class=\"alert \">\n  <button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>\n  <strong>Warning!</strong> Best check yourself, you're not looking too good.\n</div>\n<div class=\"alert alert-block alert-warning\">\n  <button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>\n  <p><strong>Warning!</strong> Best check yourself, you're not looking too good.</p>\n</div>\n\n<h4>Error</h4>\n<div class=\"alert alert-error\">\n  <button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>\n  <strong>Error!</strong> Best check yourself, you're not looking too good.\n</div>\n<div class=\"alert alert-block alert-error\">\n  <button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>\n  <p><strong>Error!</strong> Best check yourself, you're not looking too good.</p>\n</div>\n\n\n    </div><!-- /container -->\n\n\n\n    <!-- Footer\n    ================================================== -->\n    <footer class=\"footer\">\n      <div class=\"container\">\n        <p class=\"pull-right\"><a href=\"#\">Back to top</a></p>\n        <p>Designed and built with all the love in the world <a href=\"http://twitter.com/twitter\" target=\"_blank\">@twitter</a> by <a href=\"http://twitter.com/mdo\" target=\"_blank\">@mdo</a> and <a href=\"http://twitter.com/fat\" target=\"_blank\">@fat</a>.</p>\n        <p>Code licensed under the <a href=\"http://www.apache.org/licenses/LICENSE-2.0\" target=\"_blank\">Apache License v2.0</a>. Documentation licensed under <a href=\"http://creativecommons.org/licenses/by/3.0/\">CC BY 3.0</a>.</p>\n        <p>Icons from <a href=\"http://glyphicons.com\">Glyphicons Free</a>, licensed under <a href=\"http://creativecommons.org/licenses/by/3.0/\">CC BY 3.0</a>.</p>\n        <ul class=\"footer-links\">\n          <li><a href=\"http://blog.getbootstrap.com\">Read the blog</a></li>\n          <li><a href=\"https://github.com/twbs/bootstrap/issues?state=open\">Submit issues</a></li>\n          <li><a href=\"https://github.com/twbs/bootstrap/wiki\">Roadmap and changelog</a></li>\n        </ul>\n      </div>\n    </footer>\n\n</div>\n\n\n    <!-- Le javascript\n    ================================================== -->\n    <!-- Placed at the end of the document so the pages load faster -->\n    <script type=\"text/javascript\" src=\"http://platform.twitter.com/widgets.js\"></script>\n    <script src=\"../../docs/assets/js/jquery.js\"></script>\n    <script src=\"../../docs/assets/js/google-code-prettify/prettify.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-transition.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-alert.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-modal.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-dropdown.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-scrollspy.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-tab.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-tooltip.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-popover.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-button.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-collapse.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-carousel.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-typeahead.js\"></script>\n    <script src=\"../../docs/assets/js/application.js\"></script>\n\n\n  </body>\n</html>\n"
  },
  {
    "path": "dist/lib/bootstrap2/tests/forms-responsive.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Bootstrap, from Twitter</title>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta name=\"description\" content=\"\">\n    <meta name=\"author\" content=\"\">\n\n    <!-- Le styles -->\n    <link href=\"../../docs/assets/css/bootstrap.css\" rel=\"stylesheet\">\n    <link href=\"../../docs/assets/css/bootstrap-responsive.css\" rel=\"stylesheet\">\n    <style>\n      body {\n        padding-top: 30px;\n        padding-bottom: 30px;\n      }\n    </style>\n\n    <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->\n    <!--[if lt IE 9]>\n      <script src=\"http://html5shim.googlecode.com/svn/trunk/html5.js\"></script>\n    <![endif]-->\n\n    <!-- Le fav and touch icons -->\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"144x144\" href=\"../../docs/assets/ico/apple-touch-icon-144-precomposed.png\">\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"114x114\" href=\"../../docs/assets/ico/apple-touch-icon-114-precomposed.png\">\n      <link rel=\"apple-touch-icon-precomposed\" sizes=\"72x72\" href=\"../../docs/assets/ico/apple-touch-icon-72-precomposed.png\">\n                    <link rel=\"apple-touch-icon-precomposed\" href=\"../../docs/assets/ico/apple-touch-icon-57-precomposed.png\">\n                                   <link rel=\"shortcut icon\" href=\"../../docs/assets/ico/favicon.png\">\n  </head>\n\n  <body>\n\n    <form class=\"container\">\n\n      <div class=\"page-header\">\n        <h1>Fixed grid</h1>\n      </div>\n\n      <h3>Vertical alignment</h3>\n      <input type=\"text\" class=\"span2\" placeholder=\"span2\">\n      <select class=\"span2\"><option>span2</option></select>\n      <span class=\"uneditable-input span2\">span1</span>\n\n      <h3>Width across elements</h3>\n      <div>\n        <input type=\"text\" class=\"span2\" placeholder=\"span2\">\n      </div>\n      <div>\n        <select class=\"span2\"><option>span2</option></select>\n      </div>\n      <div>\n        <span class=\"uneditable-input span2\">span2</span>\n      </div>\n\n\n      <div class=\"page-header\">\n        <h1>Fluid grid</h1>\n      </div>\n\n      <div class=\"row-fluid\">\n        <input type=\"text\" class=\"span2\" placeholder=\"span2\">\n        <select class=\"span2\"><option>span2</option></select>\n        <span class=\"uneditable-input span2\">span1</span>\n      </div>\n\n    </form> <!-- /container -->\n\n  </body>\n</html>\n"
  },
  {
    "path": "dist/lib/bootstrap2/tests/forms.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Bootstrap, from Twitter</title>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta name=\"description\" content=\"\">\n    <meta name=\"author\" content=\"\">\n\n    <!-- Le styles -->\n    <link href=\"../../docs/assets/css/bootstrap.css\" rel=\"stylesheet\">\n    <link href=\"../../docs/assets/css/bootstrap-responsive.css\" rel=\"stylesheet\">\n    <style>\n      body {\n        padding-top: 30px;\n        padding-bottom: 30px;\n      }\n    </style>\n\n    <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->\n    <!--[if lt IE 9]>\n      <script src=\"http://html5shim.googlecode.com/svn/trunk/html5.js\"></script>\n    <![endif]-->\n\n    <!-- Le fav and touch icons -->\n    <link rel=\"shortcut icon\" href=\"../../docs/assets/ico/favicon.ico\">\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"144x144\" href=\"../../docs/assets/ico/apple-touch-icon-144-precomposed.png\">\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"114x114\" href=\"../../docs/assets/ico/apple-touch-icon-114-precomposed.png\">\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"72x72\" href=\"../../docs/assets/ico/apple-touch-icon-72-precomposed.png\">\n    <link rel=\"apple-touch-icon-precomposed\" href=\"../../docs/assets/ico/apple-touch-icon-57-precomposed.png\">\n  </head>\n\n  <body>\n\n    <form class=\"container\">\n\n      <div class=\"page-header\">\n        <h1>Form controls</h1>\n      </div>\n\n      <div class=\"row\">\n        <div class=\"span4\">\n\n          <label>Select</label>\n          <select>\n            <option>Select</option>\n            <option>Option 2</option>\n            <option>Option 3</option>\n          </select>\n\n          <hr>\n\n          <label>textarea</label>\n          <textarea>Textarea</textarea>\n\n          <hr>\n\n          <label>text</label>\n          <input type=\"text\" value=\"Text input\">\n\n          <hr>\n\n          <label>password</label>\n          <input type=\"password\" value=\"Password input\">\n\n          <hr>\n\n          <label>checkbox</label>\n          <input type=\"checkbox\" value=\"\">\n\n          <hr>\n\n          <label>radio</label>\n          <input type=\"radio\" value=\"\">\n\n          <hr>\n\n          <label>button</label>\n          <input type=\"button\" value=\"Button\">\n\n          <hr>\n\n          <label>submit</label>\n          <input type=\"submit\" value=\"Submit\">\n\n          <hr>\n\n          <label>reset</label>\n          <input type=\"reset\" value=\"Reset\">\n\n        </div><!-- /span4 -->\n        <div class=\"span4\">\n\n          <label>file</label>\n          <input type=\"file\" value=\"\">\n\n          <hr>\n\n          <label>hidden</label>\n          <input type=\"hidden\" value=\"hidden\">\n\n          <hr>\n\n          <label>image</label>\n          <input type=\"image\" value=\"\">\n\n          <hr>\n\n          <label>datetime</label>\n          <input type=\"datetime\" value=\"\">\n\n          <hr>\n\n          <label>datetime-local</label>\n          <input type=\"datetime-local\" value=\"\">\n\n          <hr>\n\n          <label>date</label>\n          <input type=\"date\" value=\"\">\n\n          <hr>\n\n          <label>month</label>\n          <input type=\"month\" value=\"\">\n\n          <hr>\n\n          <label>time</label>\n          <input type=\"time\" value=\"\">\n\n          <hr>\n\n          <label>week</label>\n          <input type=\"week\" value=\"\">\n\n        </div><!-- /span4 -->\n        <div class=\"span4\">\n\n          <label>number</label>\n          <input type=\"number\" value=\"\">\n\n          <hr>\n\n          <label>range</label>\n          <input type=\"range\" value=\"\">\n\n          <hr>\n\n          <label>email</label>\n          <input type=\"email\" value=\"\">\n\n          <hr>\n\n          <label>url</label>\n          <input type=\"url\" value=\"\">\n\n          <hr>\n\n          <label>search</label>\n          <input type=\"search\" value=\"\">\n\n          <hr>\n\n          <label>tel</label>\n          <input type=\"tel\" value=\"\">\n\n          <hr>\n\n          <label>color</label>\n          <input type=\"color\" value=\"\">\n\n        </div><!-- /span4 -->\n      </div><!-- /row -->\n\n    </form> <!-- /container -->\n\n  </body>\n</html>\n"
  },
  {
    "path": "dist/lib/bootstrap2/tests/navbar-fixed-top.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Bootstrap, from Twitter</title>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta name=\"description\" content=\"\">\n    <meta name=\"author\" content=\"\">\n\n    <!-- Le styles -->\n    <link href=\"../../docs/assets/css/bootstrap.css\" rel=\"stylesheet\">\n    <style>\n      body {\n        padding-top: 60px;\n        padding-bottom: 30px;\n      }\n    </style>\n    <link href=\"../../docs/assets/css/bootstrap-responsive.css\" rel=\"stylesheet\">\n\n    <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->\n    <!--[if lt IE 9]>\n      <script src=\"http://html5shim.googlecode.com/svn/trunk/html5.js\"></script>\n    <![endif]-->\n\n    <!-- Le fav and touch icons -->\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"144x144\" href=\"../../docs/assets/ico/apple-touch-icon-144-precomposed.png\">\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"114x114\" href=\"../../docs/assets/ico/apple-touch-icon-114-precomposed.png\">\n      <link rel=\"apple-touch-icon-precomposed\" sizes=\"72x72\" href=\"../../docs/assets/ico/apple-touch-icon-72-precomposed.png\">\n                    <link rel=\"apple-touch-icon-precomposed\" href=\"../../docs/assets/ico/apple-touch-icon-57-precomposed.png\">\n                                   <link rel=\"shortcut icon\" href=\"../../docs/assets/ico/favicon.png\">\n  </head>\n\n  <body>\n\n    <!-- Fixed navbar -->\n    <div class=\"navbar navbar-fixed-top\">\n      <div class=\"navbar-inner\">\n        <div class=\"container\">\n          <a class=\"btn btn-navbar\" data-toggle=\"collapse\" data-target=\".nav-collapse\">\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n          </a>\n          <a class=\"brand\" href=\"#\">Project name</a>\n          <div class=\"nav-collapse collapse\">\n            <ul class=\"nav\">\n              <li class=\"active\"><a href=\"#\">Home</a></li>\n              <li><a href=\"#about\">About</a></li>\n              <li><a href=\"#contact\">Contact</a></li>\n              <li class=\"dropdown\">\n                <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">Dropdown <b class=\"caret\"></b></a>\n                <ul class=\"dropdown-menu\">\n                  <li><a href=\"#\">Action</a></li>\n                  <li><a href=\"#\">Another action</a></li>\n                  <li><a href=\"#\">Something else here</a></li>\n                  <li class=\"divider\"></li>\n                  <li class=\"nav-header\">Nav header</li>\n                  <li><a href=\"#\">Separated link</a></li>\n                  <li><a href=\"#\">One more separated link</a></li>\n                </ul>\n              </li>\n            </ul>\n            <ul class=\"nav pull-right\">\n              <li><a href=\"./navbar.html\">Default</a></li>\n              <li><a href=\"./navbar-static-top.html\">Static top</a></li>\n              <li class=\"active\"><a href=\"./navbar-fixed-top.html\">Fixed top</a></li>\n            </ul>\n          </div><!--/.nav-collapse -->\n        </div>\n      </div>\n    </div>\n\n    <div class=\"container\">\n\n      <!-- Main hero unit for a primary marketing message or call to action -->\n      <div class=\"hero-unit\">\n        <h1>Navbar example</h1>\n        <p>This example is a quick exercise to illustrate how the default, static navbar and fixed to top navbar work. It includes the responsive CSS and HTML, so it also adapts to your viewport and device.</p>\n        <p>\n          <a class=\"btn btn-large btn-primary\" href=\"../components.html#navbar\">View navbar docs &raquo;</a>\n        </p>\n      </div>\n\n    </div> <!-- /container -->\n\n    <!-- Le javascript\n    ================================================== -->\n    <!-- Placed at the end of the document so the pages load faster -->\n    <script src=\"../../docs/assets/js/jquery.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-transition.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-alert.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-modal.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-dropdown.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-scrollspy.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-tab.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-tooltip.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-popover.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-button.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-collapse.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-carousel.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-typeahead.js\"></script>\n\n  </body>\n</html>\n"
  },
  {
    "path": "dist/lib/bootstrap2/tests/navbar-static-top.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Bootstrap, from Twitter</title>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta name=\"description\" content=\"\">\n    <meta name=\"author\" content=\"\">\n\n    <!-- Le styles -->\n    <link href=\"../../docs/assets/css/bootstrap.css\" rel=\"stylesheet\">\n    <style>\n      body {\n        padding-bottom: 30px;\n      }\n      .hero-unit {\n        margin-top: 20px;\n      }\n    </style>\n    <link href=\"../../docs/assets/css/bootstrap-responsive.css\" rel=\"stylesheet\">\n\n    <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->\n    <!--[if lt IE 9]>\n      <script src=\"http://html5shim.googlecode.com/svn/trunk/html5.js\"></script>\n    <![endif]-->\n\n    <!-- Le fav and touch icons -->\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"144x144\" href=\"../../docs/assets/ico/apple-touch-icon-144-precomposed.png\">\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"114x114\" href=\"../../docs/assets/ico/apple-touch-icon-114-precomposed.png\">\n      <link rel=\"apple-touch-icon-precomposed\" sizes=\"72x72\" href=\"../../docs/assets/ico/apple-touch-icon-72-precomposed.png\">\n                    <link rel=\"apple-touch-icon-precomposed\" href=\"../../docs/assets/ico/apple-touch-icon-57-precomposed.png\">\n                                   <link rel=\"shortcut icon\" href=\"../../docs/assets/ico/favicon.png\">\n  </head>\n\n  <body>\n\n    <!-- Static navbar -->\n    <div class=\"navbar navbar-static-top\">\n      <div class=\"navbar-inner\">\n        <div class=\"container\">\n          <a class=\"btn btn-navbar\" data-toggle=\"collapse\" data-target=\".nav-collapse\">\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n          </a>\n          <a class=\"brand\" href=\"#\">Project name</a>\n          <div class=\"nav-collapse collapse\">\n            <ul class=\"nav\">\n              <li class=\"active\"><a href=\"#\">Home</a></li>\n              <li><a href=\"#about\">About</a></li>\n              <li><a href=\"#contact\">Contact</a></li>\n              <li class=\"dropdown\">\n                <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">Dropdown <b class=\"caret\"></b></a>\n                <ul class=\"dropdown-menu\">\n                  <li><a href=\"#\">Action</a></li>\n                  <li><a href=\"#\">Another action</a></li>\n                  <li><a href=\"#\">Something else here</a></li>\n                  <li class=\"divider\"></li>\n                  <li class=\"nav-header\">Nav header</li>\n                  <li><a href=\"#\">Separated link</a></li>\n                  <li><a href=\"#\">One more separated link</a></li>\n                </ul>\n              </li>\n            </ul>\n          <ul class=\"nav pull-right\">\n            <li><a href=\"./navbar.html\">Default</a></li>\n            <li class=\"active\"><a href=\"./navbar-static-top.html\">Static top</a></li>\n            <li><a href=\"./navbar-fixed-top.html\">Fixed top</a></li>\n          </ul>\n          </div><!--/.nav-collapse -->\n        </div>\n      </div>\n    </div>\n\n\n    <div class=\"container\">\n\n      <!-- Main hero unit for a primary marketing message or call to action -->\n      <div class=\"hero-unit\">\n        <h1>Navbar example</h1>\n        <p>This example is a quick exercise to illustrate how the default, static navbar and fixed to top navbar work. It includes the responsive CSS and HTML, so it also adapts to your viewport and device.</p>\n        <p>\n          <a class=\"btn btn-large btn-primary\" href=\"../components.html#navbar\">View navbar docs &raquo;</a>\n        </p>\n      </div>\n\n    </div> <!-- /container -->\n\n    <!-- Le javascript\n    ================================================== -->\n    <!-- Placed at the end of the document so the pages load faster -->\n    <script src=\"../../docs/assets/js/jquery.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-transition.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-alert.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-modal.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-dropdown.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-scrollspy.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-tab.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-tooltip.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-popover.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-button.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-collapse.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-carousel.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-typeahead.js\"></script>\n\n  </body>\n</html>\n"
  },
  {
    "path": "dist/lib/bootstrap2/tests/navbar.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Bootstrap, from Twitter</title>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta name=\"description\" content=\"\">\n    <meta name=\"author\" content=\"\">\n\n    <!-- Le styles -->\n    <link href=\"../../docs/assets/css/bootstrap.css\" rel=\"stylesheet\">\n    <style>\n      body {\n        padding-top: 0;\n        padding-bottom: 30px;\n      }\n      .navbar {\n        margin-top: 20px;\n      }\n    </style>\n    <link href=\"../../docs/assets/css/bootstrap-responsive.css\" rel=\"stylesheet\">\n\n    <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->\n    <!--[if lt IE 9]>\n      <script src=\"http://html5shim.googlecode.com/svn/trunk/html5.js\"></script>\n    <![endif]-->\n\n    <!-- Le fav and touch icons -->\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"144x144\" href=\"../../docs/assets/ico/apple-touch-icon-144-precomposed.png\">\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"114x114\" href=\"../../docs/assets/ico/apple-touch-icon-114-precomposed.png\">\n      <link rel=\"apple-touch-icon-precomposed\" sizes=\"72x72\" href=\"../../docs/assets/ico/apple-touch-icon-72-precomposed.png\">\n                    <link rel=\"apple-touch-icon-precomposed\" href=\"../../docs/assets/ico/apple-touch-icon-57-precomposed.png\">\n                                   <link rel=\"shortcut icon\" href=\"../../docs/assets/ico/favicon.png\">\n  </head>\n\n  <body>\n\n    <div class=\"container\">\n\n      <!-- Static navbar -->\n      <div class=\"navbar\">\n        <div class=\"navbar-inner\">\n          <div class=\"container\">\n            <a class=\"btn btn-navbar\" data-toggle=\"collapse\" data-target=\".nav-collapse\">\n              <span class=\"icon-bar\"></span>\n              <span class=\"icon-bar\"></span>\n              <span class=\"icon-bar\"></span>\n            </a>\n            <a class=\"brand\" href=\"#\">Project name</a>\n            <div class=\"nav-collapse collapse\">\n              <ul class=\"nav\">\n                <li class=\"active\"><a href=\"#\">Home</a></li>\n                <li><a href=\"#about\">About</a></li>\n                <li><a href=\"#contact\">Contact</a></li>\n                <li class=\"dropdown\">\n                  <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">Dropdown <b class=\"caret\"></b></a>\n                  <ul class=\"dropdown-menu\">\n                    <li><a href=\"#\">Action</a></li>\n                    <li><a href=\"#\">Another action</a></li>\n                    <li><a href=\"#\">Something else here</a></li>\n                    <li class=\"divider\"></li>\n                    <li class=\"nav-header\">Nav header</li>\n                    <li><a href=\"#\">Separated link</a></li>\n                    <li><a href=\"#\">One more separated link</a></li>\n                  </ul>\n                </li>\n              </ul>\n              <ul class=\"nav pull-right\">\n                <li class=\"active\"><a href=\"./navbar.html\">Default</a></li>\n                <li><a href=\"./navbar-static-top.html\">Static top</a></li>\n                <li><a href=\"./navbar-fixed-top.html\">Fixed top</a></li>\n              </ul>\n            </div><!--/.nav-collapse -->\n          </div>\n        </div>\n      </div>\n\n      <!-- Main hero unit for a primary marketing message or call to action -->\n      <div class=\"hero-unit\">\n        <h1>Navbar example</h1>\n        <p>This example is a quick exercise to illustrate how the default, static navbar and fixed to top navbar work. It includes the responsive CSS and HTML, so it also adapts to your viewport and device.</p>\n        <p>\n          <a class=\"btn btn-large btn-primary\" href=\"../components.html#navbar\">View navbar docs &raquo;</a>\n        </p>\n      </div>\n\n    </div> <!-- /container -->\n\n    <!-- Le javascript\n    ================================================== -->\n    <!-- Placed at the end of the document so the pages load faster -->\n    <script src=\"../../docs/assets/js/jquery.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-transition.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-alert.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-modal.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-dropdown.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-scrollspy.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-tab.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-tooltip.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-popover.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-button.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-collapse.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-carousel.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-typeahead.js\"></script>\n\n  </body>\n</html>\n"
  },
  {
    "path": "dist/lib/bootstrap2/thumbnails.less",
    "content": "//\n// Thumbnails\n// --------------------------------------------------\n\n\n// Note: `.thumbnails` and `.thumbnails > li` are overriden in responsive files\n\n// Make wrapper ul behave like the grid\n.thumbnails {\n  margin-left: -@gridGutterWidth;\n  list-style: none;\n  .clearfix();\n}\n// Fluid rows have no left margin\n.row-fluid .thumbnails {\n  margin-left: 0;\n}\n\n// Float li to make thumbnails appear in a row\n.thumbnails > li {\n  float: left; // Explicity set the float since we don't require .span* classes\n  margin-bottom: @baseLineHeight;\n  margin-left: @gridGutterWidth;\n}\n\n// The actual thumbnail (can be `a` or `div`)\n.thumbnail {\n  display: block;\n  padding: 4px;\n  line-height: @baseLineHeight;\n  border: 1px solid #ddd;\n  .border-radius(@baseBorderRadius);\n  .box-shadow(0 1px 3px rgba(0,0,0,.055));\n  .transition(all .2s ease-in-out);\n}\n// Add a hover/focus state for linked versions only\na.thumbnail:hover,\na.thumbnail:focus {\n  border-color: @linkColor;\n  .box-shadow(0 1px 4px rgba(0,105,214,.25));\n}\n\n// Images and captions\n.thumbnail > img {\n  display: block;\n  max-width: 100%;\n  margin-left: auto;\n  margin-right: auto;\n}\n.thumbnail .caption {\n  padding: 9px;\n  color: @gray;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/tooltip.less",
    "content": "//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n  position: absolute;\n  z-index: @zindexTooltip;\n  display: block;\n  visibility: visible;\n  font-size: 11px;\n  line-height: 1.4;\n  .opacity(0);\n  &.in     { .opacity(80); }\n  &.top    { margin-top:  -3px; padding: 5px 0; }\n  &.right  { margin-left:  3px; padding: 0 5px; }\n  &.bottom { margin-top:   3px; padding: 5px 0; }\n  &.left   { margin-left: -3px; padding: 0 5px; }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n  max-width: 200px;\n  padding: 8px;\n  color: @tooltipColor;\n  text-align: center;\n  text-decoration: none;\n  background-color: @tooltipBackground;\n  .border-radius(@baseBorderRadius);\n}\n\n// Arrows\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n.tooltip {\n  &.top .tooltip-arrow {\n    bottom: 0;\n    left: 50%;\n    margin-left: -@tooltipArrowWidth;\n    border-width: @tooltipArrowWidth @tooltipArrowWidth 0;\n    border-top-color: @tooltipArrowColor;\n  }\n  &.right .tooltip-arrow {\n    top: 50%;\n    left: 0;\n    margin-top: -@tooltipArrowWidth;\n    border-width: @tooltipArrowWidth @tooltipArrowWidth @tooltipArrowWidth 0;\n    border-right-color: @tooltipArrowColor;\n  }\n  &.left .tooltip-arrow {\n    top: 50%;\n    right: 0;\n    margin-top: -@tooltipArrowWidth;\n    border-width: @tooltipArrowWidth 0 @tooltipArrowWidth @tooltipArrowWidth;\n    border-left-color: @tooltipArrowColor;\n  }\n  &.bottom .tooltip-arrow {\n    top: 0;\n    left: 50%;\n    margin-left: -@tooltipArrowWidth;\n    border-width: 0 @tooltipArrowWidth @tooltipArrowWidth;\n    border-bottom-color: @tooltipArrowColor;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/type.less",
    "content": "//\n// Typography\n// --------------------------------------------------\n\n\n// Body text\n// -------------------------\n\np {\n  margin: 0 0 @baseLineHeight / 2;\n}\n.lead {\n  margin-bottom: @baseLineHeight;\n  font-size: @baseFontSize * 1.5;\n  font-weight: 200;\n  line-height: @baseLineHeight * 1.5;\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: 14px base font * 85% = about 12px\nsmall   { font-size: 85%; }\n\nstrong  { font-weight: bold; }\nem      { font-style: italic; }\ncite    { font-style: normal; }\n\n// Utility classes\n.muted               { color: @grayLight; }\na.muted:hover,\na.muted:focus        { color: darken(@grayLight, 10%); }\n\n.text-warning        { color: @warningText; }\na.text-warning:hover,\na.text-warning:focus { color: darken(@warningText, 10%); }\n\n.text-error          { color: @errorText; }\na.text-error:hover,\na.text-error:focus   { color: darken(@errorText, 10%); }\n\n.text-info           { color: @infoText; }\na.text-info:hover,\na.text-info:focus    { color: darken(@infoText, 10%); }\n\n.text-success        { color: @successText; }\na.text-success:hover,\na.text-success:focus { color: darken(@successText, 10%); }\n\n.text-left           { text-align: left; }\n.text-right          { text-align: right; }\n.text-center         { text-align: center; }\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6 {\n  margin: (@baseLineHeight / 2) 0;\n  font-family: @headingsFontFamily;\n  font-weight: @headingsFontWeight;\n  line-height: @baseLineHeight;\n  color: @headingsColor;\n  text-rendering: optimizelegibility; // Fix the character spacing for headings\n  small {\n    font-weight: normal;\n    line-height: 1;\n    color: @grayLight;\n  }\n}\n\nh1,\nh2,\nh3 { line-height: @baseLineHeight * 2; }\n\nh1 { font-size: @baseFontSize * 2.75; } // ~38px\nh2 { font-size: @baseFontSize * 2.25; } // ~32px\nh3 { font-size: @baseFontSize * 1.75; } // ~24px\nh4 { font-size: @baseFontSize * 1.25; } // ~18px\nh5 { font-size: @baseFontSize; }\nh6 { font-size: @baseFontSize * 0.85; } // ~12px\n\nh1 small { font-size: @baseFontSize * 1.75; } // ~24px\nh2 small { font-size: @baseFontSize * 1.25; } // ~18px\nh3 small { font-size: @baseFontSize; }\nh4 small { font-size: @baseFontSize; }\n\n\n// Page header\n// -------------------------\n\n.page-header {\n  padding-bottom: (@baseLineHeight / 2) - 1;\n  margin: @baseLineHeight 0 (@baseLineHeight * 1.5);\n  border-bottom: 1px solid @grayLighter;\n}\n\n\n\n// Lists\n// --------------------------------------------------\n\n// Unordered and Ordered lists\nul, ol {\n  padding: 0;\n  margin: 0 0 @baseLineHeight / 2 25px;\n}\nul ul,\nul ol,\nol ol,\nol ul {\n  margin-bottom: 0;\n}\nli {\n  line-height: @baseLineHeight;\n}\n\n// Remove default list styles\nul.unstyled,\nol.unstyled {\n  margin-left: 0;\n  list-style: none;\n}\n\n// Single-line list items\nul.inline,\nol.inline {\n  margin-left: 0;\n  list-style: none;\n  > li {\n    display: inline-block;\n    .ie7-inline-block();\n    padding-left: 5px;\n    padding-right: 5px;\n  }\n}\n\n// Description Lists\ndl {\n  margin-bottom: @baseLineHeight;\n}\ndt,\ndd {\n  line-height: @baseLineHeight;\n}\ndt {\n  font-weight: bold;\n}\ndd {\n  margin-left: @baseLineHeight / 2;\n}\n// Horizontal layout (like forms)\n.dl-horizontal {\n  .clearfix(); // Ensure dl clears floats if empty dd elements present\n  dt {\n    float: left;\n    width: @horizontalComponentOffset - 20;\n    clear: left;\n    text-align: right;\n    .text-overflow();\n  }\n  dd {\n    margin-left: @horizontalComponentOffset;\n  }\n}\n\n// MISC\n// ----\n\n// Horizontal rules\nhr {\n  margin: @baseLineHeight 0;\n  border: 0;\n  border-top: 1px solid @hrBorder;\n  border-bottom: 1px solid @white;\n}\n\n// Abbreviations and acronyms\nabbr[title],\n// Added data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[data-original-title] {\n  cursor: help;\n  border-bottom: 1px dotted @grayLight;\n}\nabbr.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\n\n// Blockquotes\nblockquote {\n  padding: 0 0 0 15px;\n  margin: 0 0 @baseLineHeight;\n  border-left: 5px solid @grayLighter;\n  p {\n    margin-bottom: 0;\n    font-size: @baseFontSize * 1.25;\n    font-weight: 300;\n    line-height: 1.25;\n  }\n  small {\n    display: block;\n    line-height: @baseLineHeight;\n    color: @grayLight;\n    &:before {\n      content: '\\2014 \\00A0';\n    }\n  }\n\n  // Float right with text-align: right\n  &.pull-right {\n    float: right;\n    padding-right: 15px;\n    padding-left: 0;\n    border-right: 5px solid @grayLighter;\n    border-left: 0;\n    p,\n    small {\n      text-align: right;\n    }\n    small {\n      &:before {\n        content: '';\n      }\n      &:after {\n        content: '\\00A0 \\2014';\n      }\n    }\n  }\n}\n\n// Quotes\nq:before,\nq:after,\nblockquote:before,\nblockquote:after {\n  content: \"\";\n}\n\n// Addresses\naddress {\n  display: block;\n  margin-bottom: @baseLineHeight;\n  font-style: normal;\n  line-height: @baseLineHeight;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/utilities.less",
    "content": "//\n// Utility classes\n// --------------------------------------------------\n\n\n// Quick floats\n.pull-right {\n  float: right;\n}\n.pull-left {\n  float: left;\n}\n\n// Toggling content\n.hide {\n  display: none;\n}\n.show {\n  display: block;\n}\n\n// Visibility\n.invisible {\n  visibility: hidden;\n}\n\n// For Affix plugin\n.affix {\n  position: fixed;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap2/variables.less",
    "content": "//\n// Variables\n// --------------------------------------------------\n\n\n// Global values\n// --------------------------------------------------\n\n\n// Grays\n// -------------------------\n@black:                 #000;\n@grayDarker:            #222;\n@grayDark:              #333;\n@gray:                  #555;\n@grayLight:             #999;\n@grayLighter:           #eee;\n@white:                 #fff;\n\n\n// Accent colors\n// -------------------------\n@blue:                  #049cdb;\n@blueDark:              #0064cd;\n@green:                 #46a546;\n@red:                   #9d261d;\n@yellow:                #ffc40d;\n@orange:                #f89406;\n@pink:                  #c3325f;\n@purple:                #7a43b6;\n\n\n// Scaffolding\n// -------------------------\n@bodyBackground:        @white;\n@textColor:             @grayDark;\n\n\n// Links\n// -------------------------\n@linkColor:             #08c;\n@linkColorHover:        darken(@linkColor, 15%);\n\n\n// Typography\n// -------------------------\n@sansFontFamily:        \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n@serifFontFamily:       Georgia, \"Times New Roman\", Times, serif;\n@monoFontFamily:        Monaco, Menlo, Consolas, \"Courier New\", monospace;\n\n@baseFontSize:          14px;\n@baseFontFamily:        @sansFontFamily;\n@baseLineHeight:        20px;\n@altFontFamily:         @serifFontFamily;\n\n@headingsFontFamily:    inherit; // empty to use BS default, @baseFontFamily\n@headingsFontWeight:    bold;    // instead of browser default, bold\n@headingsColor:         inherit; // empty to use BS default, @textColor\n\n\n// Component sizing\n// -------------------------\n// Based on 14px font-size and 20px line-height\n\n@fontSizeLarge:         @baseFontSize * 1.25; // ~18px\n@fontSizeSmall:         @baseFontSize * 0.85; // ~12px\n@fontSizeMini:          @baseFontSize * 0.75; // ~11px\n\n@paddingLarge:          11px 19px; // 44px\n@paddingSmall:          2px 10px;  // 26px\n@paddingMini:           0 6px;   // 22px\n\n@baseBorderRadius:      4px;\n@borderRadiusLarge:     6px;\n@borderRadiusSmall:     3px;\n\n\n// Tables\n// -------------------------\n@tableBackground:                   transparent; // overall background-color\n@tableBackgroundAccent:             #f9f9f9; // for striping\n@tableBackgroundHover:              #f5f5f5; // for hover\n@tableBorder:                       #ddd; // table and cell border\n\n// Buttons\n// -------------------------\n@btnBackground:                     @white;\n@btnBackgroundHighlight:            darken(@white, 10%);\n@btnBorder:                         #ccc;\n\n@btnPrimaryBackground:              @linkColor;\n@btnPrimaryBackgroundHighlight:     spin(@btnPrimaryBackground, 20%);\n\n@btnInfoBackground:                 #5bc0de;\n@btnInfoBackgroundHighlight:        #2f96b4;\n\n@btnSuccessBackground:              #62c462;\n@btnSuccessBackgroundHighlight:     #51a351;\n\n@btnWarningBackground:              lighten(@orange, 15%);\n@btnWarningBackgroundHighlight:     @orange;\n\n@btnDangerBackground:               #ee5f5b;\n@btnDangerBackgroundHighlight:      #bd362f;\n\n@btnInverseBackground:              #444;\n@btnInverseBackgroundHighlight:     @grayDarker;\n\n\n// Forms\n// -------------------------\n@inputBackground:               @white;\n@inputBorder:                   #ccc;\n@inputBorderRadius:             @baseBorderRadius;\n@inputDisabledBackground:       @grayLighter;\n@formActionsBackground:         #f5f5f5;\n@inputHeight:                   @baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border\n\n\n// Dropdowns\n// -------------------------\n@dropdownBackground:            @white;\n@dropdownBorder:                rgba(0,0,0,.2);\n@dropdownDividerTop:            #e5e5e5;\n@dropdownDividerBottom:         @white;\n\n@dropdownLinkColor:             @grayDark;\n@dropdownLinkColorHover:        @white;\n@dropdownLinkColorActive:       @white;\n\n@dropdownLinkBackgroundActive:  @linkColor;\n@dropdownLinkBackgroundHover:   @dropdownLinkBackgroundActive;\n\n\n\n// COMPONENT VARIABLES\n// --------------------------------------------------\n\n\n// Z-index master list\n// -------------------------\n// Used for a bird's eye view of components dependent on the z-axis\n// Try to avoid customizing these :)\n@zindexDropdown:          1000;\n@zindexPopover:           1010;\n@zindexTooltip:           1030;\n@zindexFixedNavbar:       1030;\n@zindexModalBackdrop:     1040;\n@zindexModal:             1050;\n\n\n// Sprite icons path\n// -------------------------\n@iconSpritePath:          \"../img/glyphicons-halflings.png\";\n@iconWhiteSpritePath:     \"../img/glyphicons-halflings-white.png\";\n\n\n// Input placeholder text color\n// -------------------------\n@placeholderText:         @grayLight;\n\n\n// Hr border color\n// -------------------------\n@hrBorder:                @grayLighter;\n\n\n// Horizontal forms & lists\n// -------------------------\n@horizontalComponentOffset:       180px;\n\n\n// Wells\n// -------------------------\n@wellBackground:                  #f5f5f5;\n\n\n// Navbar\n// -------------------------\n@navbarCollapseWidth:             979px;\n@navbarCollapseDesktopWidth:      @navbarCollapseWidth + 1;\n\n@navbarHeight:                    40px;\n@navbarBackgroundHighlight:       #ffffff;\n@navbarBackground:                darken(@navbarBackgroundHighlight, 5%);\n@navbarBorder:                    darken(@navbarBackground, 12%);\n\n@navbarText:                      #777;\n@navbarLinkColor:                 #777;\n@navbarLinkColorHover:            @grayDark;\n@navbarLinkColorActive:           @gray;\n@navbarLinkBackgroundHover:       transparent;\n@navbarLinkBackgroundActive:      darken(@navbarBackground, 5%);\n\n@navbarBrandColor:                @navbarLinkColor;\n\n// Inverted navbar\n@navbarInverseBackground:                #111111;\n@navbarInverseBackgroundHighlight:       #222222;\n@navbarInverseBorder:                    #252525;\n\n@navbarInverseText:                      @grayLight;\n@navbarInverseLinkColor:                 @grayLight;\n@navbarInverseLinkColorHover:            @white;\n@navbarInverseLinkColorActive:           @navbarInverseLinkColorHover;\n@navbarInverseLinkBackgroundHover:       transparent;\n@navbarInverseLinkBackgroundActive:      @navbarInverseBackground;\n\n@navbarInverseSearchBackground:          lighten(@navbarInverseBackground, 25%);\n@navbarInverseSearchBackgroundFocus:     @white;\n@navbarInverseSearchBorder:              @navbarInverseBackground;\n@navbarInverseSearchPlaceholderColor:    #ccc;\n\n@navbarInverseBrandColor:                @navbarInverseLinkColor;\n\n\n// Pagination\n// -------------------------\n@paginationBackground:                #fff;\n@paginationBorder:                    #ddd;\n@paginationActiveBackground:          #f5f5f5;\n\n\n// Hero unit\n// -------------------------\n@heroUnitBackground:              @grayLighter;\n@heroUnitHeadingColor:            inherit;\n@heroUnitLeadColor:               inherit;\n\n\n// Form states and alerts\n// -------------------------\n@warningText:             #c09853;\n@warningBackground:       #fcf8e3;\n@warningBorder:           darken(spin(@warningBackground, -10), 3%);\n\n@errorText:               #b94a48;\n@errorBackground:         #f2dede;\n@errorBorder:             darken(spin(@errorBackground, -10), 3%);\n\n@successText:             #468847;\n@successBackground:       #dff0d8;\n@successBorder:           darken(spin(@successBackground, -10), 5%);\n\n@infoText:                #3a87ad;\n@infoBackground:          #d9edf7;\n@infoBorder:              darken(spin(@infoBackground, -10), 7%);\n\n\n// Tooltips and popovers\n// -------------------------\n@tooltipColor:            #fff;\n@tooltipBackground:       #000;\n@tooltipArrowWidth:       5px;\n@tooltipArrowColor:       @tooltipBackground;\n\n@popoverBackground:       #fff;\n@popoverArrowWidth:       10px;\n@popoverArrowColor:       #fff;\n@popoverTitleBackground:  darken(@popoverBackground, 3%);\n\n// Special enhancement for popovers\n@popoverArrowOuterWidth:  @popoverArrowWidth + 1;\n@popoverArrowOuterColor:  rgba(0,0,0,.25);\n\n\n\n// GRID\n// --------------------------------------------------\n\n\n// Default 940px grid\n// -------------------------\n@gridColumns:             12;\n@gridColumnWidth:         60px;\n@gridGutterWidth:         20px;\n@gridRowWidth:            (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1));\n\n// 1200px min\n@gridColumnWidth1200:     70px;\n@gridGutterWidth1200:     30px;\n@gridRowWidth1200:        (@gridColumns * @gridColumnWidth1200) + (@gridGutterWidth1200 * (@gridColumns - 1));\n\n// 768px-979px\n@gridColumnWidth768:      42px;\n@gridGutterWidth768:      20px;\n@gridRowWidth768:         (@gridColumns * @gridColumnWidth768) + (@gridGutterWidth768 * (@gridColumns - 1));\n\n\n// Fluid grid\n// -------------------------\n@fluidGridColumnWidth:    percentage(@gridColumnWidth/@gridRowWidth);\n@fluidGridGutterWidth:    percentage(@gridGutterWidth/@gridRowWidth);\n\n// 1200px min\n@fluidGridColumnWidth1200:     percentage(@gridColumnWidth1200/@gridRowWidth1200);\n@fluidGridGutterWidth1200:     percentage(@gridGutterWidth1200/@gridRowWidth1200);\n\n// 768px-979px\n@fluidGridColumnWidth768:      percentage(@gridColumnWidth768/@gridRowWidth768);\n@fluidGridGutterWidth768:      percentage(@gridGutterWidth768/@gridRowWidth768);\n"
  },
  {
    "path": "dist/lib/bootstrap2/wells.less",
    "content": "//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n  min-height: 20px;\n  padding: 19px;\n  margin-bottom: 20px;\n  background-color: @wellBackground;\n  border: 1px solid darken(@wellBackground, 7%);\n  .border-radius(@baseBorderRadius);\n  .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));\n  blockquote {\n    border-color: #ddd;\n    border-color: rgba(0,0,0,.15);\n  }\n}\n\n// Sizes\n.well-large {\n  padding: 24px;\n  .border-radius(@borderRadiusLarge);\n}\n.well-small {\n  padding: 9px;\n  .border-radius(@borderRadiusSmall);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/alerts.less",
    "content": "//\n// Alerts\n// --------------------------------------------------\n\n\n// Base styles\n// -------------------------\n\n.alert {\n  padding: @alert-padding;\n  margin-bottom: @line-height-computed;\n  border: 1px solid transparent;\n  border-radius: @alert-border-radius;\n\n  // Headings for larger alerts\n  h4 {\n    margin-top: 0;\n    color: inherit; // Specified for the h4 to prevent conflicts of changing @headings-color\n  }\n\n  // Provide class for links that match alerts\n  .alert-link {\n    font-weight: @alert-link-font-weight;\n  }\n\n  // Improve alignment and spacing of inner content\n  > p,\n  > ul {\n    margin-bottom: 0;\n  }\n\n  > p + p {\n    margin-top: 5px;\n  }\n}\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n// The misspelled .alert-dismissable was deprecated in 3.2.0.\n.alert-dismissable,\n.alert-dismissible {\n  padding-right: (@alert-padding + 20);\n\n  // Adjust close link position\n  .close {\n    position: relative;\n    top: -2px;\n    right: -21px;\n    color: inherit;\n  }\n}\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n.alert-success {\n  .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);\n}\n\n.alert-info {\n  .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);\n}\n\n.alert-warning {\n  .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);\n}\n\n.alert-danger {\n  .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/badges.less",
    "content": "//\n// Badges\n// --------------------------------------------------\n\n\n// Base class\n.badge {\n  display: inline-block;\n  min-width: 10px;\n  padding: 3px 7px;\n  font-size: @font-size-small;\n  font-weight: @badge-font-weight;\n  line-height: @badge-line-height;\n  color: @badge-color;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: middle;\n  background-color: @badge-bg;\n  border-radius: @badge-border-radius;\n\n  // Empty badges collapse automatically (not available in IE8)\n  &:empty {\n    display: none;\n  }\n\n  // Quick fix for badges in buttons\n  .btn & {\n    position: relative;\n    top: -1px;\n  }\n\n  .btn-xs &,\n  .btn-group-xs > .btn & {\n    top: 0;\n    padding: 1px 5px;\n  }\n\n  // Hover state, but only for links\n  a& {\n    &:hover,\n    &:focus {\n      color: @badge-link-hover-color;\n      text-decoration: none;\n      cursor: pointer;\n    }\n  }\n\n  // Account for badges in navs\n  .list-group-item.active > &,\n  .nav-pills > .active > a > & {\n    color: @badge-active-color;\n    background-color: @badge-active-bg;\n  }\n\n  .list-group-item > & {\n    float: right;\n  }\n\n  .list-group-item > & + & {\n    margin-right: 5px;\n  }\n\n  .nav-pills > li > a > & {\n    margin-left: 3px;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/bootstrap.less",
    "content": "/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n// Core variables and mixins\n@import \"variables.less\";\n@import \"mixins.less\";\n\n// Reset and dependencies\n@import \"normalize.less\";\n@import \"print.less\";\n@import \"glyphicons.less\";\n\n// Core CSS\n@import \"scaffolding.less\";\n@import \"type.less\";\n@import \"code.less\";\n@import \"grid.less\";\n@import \"tables.less\";\n@import \"forms.less\";\n@import \"buttons.less\";\n\n// Components\n@import \"component-animations.less\";\n@import \"dropdowns.less\";\n@import \"button-groups.less\";\n@import \"input-groups.less\";\n@import \"navs.less\";\n@import \"navbar.less\";\n@import \"breadcrumbs.less\";\n@import \"pagination.less\";\n@import \"pager.less\";\n@import \"labels.less\";\n@import \"badges.less\";\n@import \"jumbotron.less\";\n@import \"thumbnails.less\";\n@import \"alerts.less\";\n@import \"progress-bars.less\";\n@import \"media.less\";\n@import \"list-group.less\";\n@import \"panels.less\";\n@import \"responsive-embed.less\";\n@import \"wells.less\";\n@import \"close.less\";\n\n// Components w/ JavaScript\n@import \"modals.less\";\n@import \"tooltip.less\";\n@import \"popovers.less\";\n@import \"carousel.less\";\n\n// Utility classes\n@import \"utilities.less\";\n@import \"responsive-utilities.less\";\n"
  },
  {
    "path": "dist/lib/bootstrap3/breadcrumbs.less",
    "content": "//\n// Breadcrumbs\n// --------------------------------------------------\n\n\n.breadcrumb {\n  padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;\n  margin-bottom: @line-height-computed;\n  list-style: none;\n  background-color: @breadcrumb-bg;\n  border-radius: @border-radius-base;\n\n  > li {\n    display: inline-block;\n\n    + li:before {\n      padding: 0 5px;\n      color: @breadcrumb-color;\n      content: \"@{breadcrumb-separator}\\00a0\"; // Unicode space added since inline-block means non-collapsing white-space\n    }\n  }\n\n  > .active {\n    color: @breadcrumb-active-color;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/button-groups.less",
    "content": "// stylelint-disable selector-no-qualifying-type */\n\n//\n// Button groups\n// --------------------------------------------------\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle; // match .btn alignment given font-size hack above\n  > .btn {\n    position: relative;\n    float: left;\n    // Bring the \"active\" button to the front\n    &:hover,\n    &:focus,\n    &:active,\n    &.active {\n      z-index: 2;\n    }\n  }\n}\n\n// Prevent double borders when buttons are next to each other\n.btn-group {\n  .btn + .btn,\n  .btn + .btn-group,\n  .btn-group + .btn,\n  .btn-group + .btn-group {\n    margin-left: -1px;\n  }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n  margin-left: -5px; // Offset the first child's margin\n  &:extend(.clearfix all);\n\n  .btn,\n  .btn-group,\n  .input-group {\n    float: left;\n  }\n  > .btn,\n  > .btn-group,\n  > .input-group {\n    margin-left: 5px;\n  }\n}\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n  border-radius: 0;\n}\n\n// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match\n.btn-group > .btn:first-child {\n  margin-left: 0;\n  &:not(:last-child):not(.dropdown-toggle) {\n    .border-right-radius(0);\n  }\n}\n// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n  .border-left-radius(0);\n}\n\n// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)\n.btn-group > .btn-group {\n  float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) {\n  > .btn:last-child,\n  > .dropdown-toggle {\n    .border-right-radius(0);\n  }\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  .border-left-radius(0);\n}\n\n// On active and open, don't show outline\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n  outline: 0;\n}\n\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-xs > .btn { &:extend(.btn-xs); }\n.btn-group-sm > .btn { &:extend(.btn-sm); }\n.btn-group-lg > .btn { &:extend(.btn-lg); }\n\n\n// Split button dropdowns\n// ----------------------\n\n// Give the line between buttons some depth\n.btn-group > .btn + .dropdown-toggle {\n  padding-right: 8px;\n  padding-left: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n  padding-right: 12px;\n  padding-left: 12px;\n}\n\n// The clickable button for toggling the menu\n// Remove the gradient and set the same inset shadow as the :active state\n.btn-group.open .dropdown-toggle {\n  .box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125));\n\n  // Show no shadow for `.btn-link` since it has no other button styles.\n  &.btn-link {\n    .box-shadow(none);\n  }\n}\n\n\n// Reposition the caret\n.btn .caret {\n  margin-left: 0;\n}\n// Carets in other button sizes\n.btn-lg .caret {\n  border-width: @caret-width-large @caret-width-large 0;\n  border-bottom-width: 0;\n}\n// Upside down carets for .dropup\n.dropup .btn-lg .caret {\n  border-width: 0 @caret-width-large @caret-width-large;\n}\n\n\n// Vertical button groups\n// ----------------------\n\n.btn-group-vertical {\n  > .btn,\n  > .btn-group,\n  > .btn-group > .btn {\n    display: block;\n    float: none;\n    width: 100%;\n    max-width: 100%;\n  }\n\n  // Clear floats so dropdown menus can be properly placed\n  > .btn-group {\n    &:extend(.clearfix all);\n    > .btn {\n      float: none;\n    }\n  }\n\n  > .btn + .btn,\n  > .btn + .btn-group,\n  > .btn-group + .btn,\n  > .btn-group + .btn-group {\n    margin-top: -1px;\n    margin-left: 0;\n  }\n}\n\n.btn-group-vertical > .btn {\n  &:not(:first-child):not(:last-child) {\n    border-radius: 0;\n  }\n  &:first-child:not(:last-child) {\n    .border-top-radius(@btn-border-radius-base);\n    .border-bottom-radius(0);\n  }\n  &:last-child:not(:first-child) {\n    .border-top-radius(0);\n    .border-bottom-radius(@btn-border-radius-base);\n  }\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) {\n  > .btn:last-child,\n  > .dropdown-toggle {\n    .border-bottom-radius(0);\n  }\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  .border-top-radius(0);\n}\n\n\n// Justified button groups\n// ----------------------\n\n.btn-group-justified {\n  display: table;\n  width: 100%;\n  table-layout: fixed;\n  border-collapse: separate;\n  > .btn,\n  > .btn-group {\n    display: table-cell;\n    float: none;\n    width: 1%;\n  }\n  > .btn-group .btn {\n    width: 100%;\n  }\n\n  > .btn-group .dropdown-menu {\n    left: auto;\n  }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n[data-toggle=\"buttons\"] {\n  > .btn,\n  > .btn-group > .btn {\n    input[type=\"radio\"],\n    input[type=\"checkbox\"] {\n      position: absolute;\n      clip: rect(0, 0, 0, 0);\n      pointer-events: none;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/buttons.less",
    "content": "// stylelint-disable selector-no-qualifying-type\n\n//\n// Buttons\n// --------------------------------------------------\n\n\n// Base styles\n// --------------------------------------------------\n\n.btn {\n  display: inline-block;\n  margin-bottom: 0; // For input.btn\n  font-weight: @btn-font-weight;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: middle;\n  touch-action: manipulation;\n  cursor: pointer;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid transparent;\n  .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base);\n  .user-select(none);\n\n  &,\n  &:active,\n  &.active {\n    &:focus,\n    &.focus {\n      .tab-focus();\n    }\n  }\n\n  &:hover,\n  &:focus,\n  &.focus {\n    color: @btn-default-color;\n    text-decoration: none;\n  }\n\n  &:active,\n  &.active {\n    background-image: none;\n    outline: 0;\n    .box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125));\n  }\n\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    cursor: @cursor-disabled;\n    .opacity(.65);\n    .box-shadow(none);\n  }\n\n  a& {\n    &.disabled,\n    fieldset[disabled] & {\n      pointer-events: none; // Future-proof disabling of clicks on `<a>` elements\n    }\n  }\n}\n\n\n// Alternate buttons\n// --------------------------------------------------\n\n.btn-default {\n  .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);\n}\n.btn-primary {\n  .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);\n}\n// Success appears as green\n.btn-success {\n  .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);\n}\n// Info appears as blue-green\n.btn-info {\n  .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);\n}\n// Warning appears as orange\n.btn-warning {\n  .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);\n}\n// Danger and error appear as red\n.btn-danger {\n  .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);\n}\n\n\n// Link buttons\n// -------------------------\n\n// Make a button look and behave like a link\n.btn-link {\n  font-weight: 400;\n  color: @link-color;\n  border-radius: 0;\n\n  &,\n  &:active,\n  &.active,\n  &[disabled],\n  fieldset[disabled] & {\n    background-color: transparent;\n    .box-shadow(none);\n  }\n  &,\n  &:hover,\n  &:focus,\n  &:active {\n    border-color: transparent;\n  }\n  &:hover,\n  &:focus {\n    color: @link-hover-color;\n    text-decoration: @link-hover-decoration;\n    background-color: transparent;\n  }\n  &[disabled],\n  fieldset[disabled] & {\n    &:hover,\n    &:focus {\n      color: @btn-link-disabled-color;\n      text-decoration: none;\n    }\n  }\n}\n\n\n// Button Sizes\n// --------------------------------------------------\n\n.btn-lg {\n  // line-height: ensure even-numbered height of button next to large input\n  .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @btn-border-radius-large);\n}\n.btn-sm {\n  // line-height: ensure proper height of button next to small input\n  .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n.btn-xs {\n  .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n\n\n// Block button\n// --------------------------------------------------\n\n.btn-block {\n  display: block;\n  width: 100%;\n}\n\n// Vertically space out multiple block buttons\n.btn-block + .btn-block {\n  margin-top: 5px;\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n  &.btn-block {\n    width: 100%;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/carousel.less",
    "content": "// stylelint-disable media-feature-name-no-unknown\n\n//\n// Carousel\n// --------------------------------------------------\n\n\n// Wrapper for the slide container and indicators\n.carousel {\n  position: relative;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n\n  > .item {\n    position: relative;\n    display: none;\n    .transition(.6s ease-in-out left);\n\n    // Account for jankitude on images\n    > img,\n    > a > img {\n      &:extend(.img-responsive);\n      line-height: 1;\n    }\n\n    // WebKit CSS3 transforms for supported devices\n    @media all and (transform-3d), (-webkit-transform-3d) {\n      .transition-transform(~\"0.6s ease-in-out\");\n      .backface-visibility(~\"hidden\");\n      .perspective(1000px);\n\n      &.next,\n      &.active.right {\n        .translate3d(100%, 0, 0);\n        left: 0;\n      }\n      &.prev,\n      &.active.left {\n        .translate3d(-100%, 0, 0);\n        left: 0;\n      }\n      &.next.left,\n      &.prev.right,\n      &.active {\n        .translate3d(0, 0, 0);\n        left: 0;\n      }\n    }\n  }\n\n  > .active,\n  > .next,\n  > .prev {\n    display: block;\n  }\n\n  > .active {\n    left: 0;\n  }\n\n  > .next,\n  > .prev {\n    position: absolute;\n    top: 0;\n    width: 100%;\n  }\n\n  > .next {\n    left: 100%;\n  }\n  > .prev {\n    left: -100%;\n  }\n  > .next.left,\n  > .prev.right {\n    left: 0;\n  }\n\n  > .active.left {\n    left: -100%;\n  }\n  > .active.right {\n    left: 100%;\n  }\n\n}\n\n// Left/right controls for nav\n// ---------------------------\n\n.carousel-control {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  width: @carousel-control-width;\n  font-size: @carousel-control-font-size;\n  color: @carousel-control-color;\n  text-align: center;\n  text-shadow: @carousel-text-shadow;\n  background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug\n  .opacity(@carousel-control-opacity);\n  // We can't have this transition here because WebKit cancels the carousel\n  // animation if you trip this while in the middle of another animation.\n\n  // Set gradients for backgrounds\n  &.left {\n    #gradient > .horizontal(@start-color: rgba(0, 0, 0, .5); @end-color: rgba(0, 0, 0, .0001));\n  }\n  &.right {\n    right: 0;\n    left: auto;\n    #gradient > .horizontal(@start-color: rgba(0, 0, 0, .0001); @end-color: rgba(0, 0, 0, .5));\n  }\n\n  // Hover/focus state\n  &:hover,\n  &:focus {\n    color: @carousel-control-color;\n    text-decoration: none;\n    outline: 0;\n    .opacity(.9);\n  }\n\n  // Toggles\n  .icon-prev,\n  .icon-next,\n  .glyphicon-chevron-left,\n  .glyphicon-chevron-right {\n    position: absolute;\n    top: 50%;\n    z-index: 5;\n    display: inline-block;\n    margin-top: -10px;\n  }\n  .icon-prev,\n  .glyphicon-chevron-left {\n    left: 50%;\n    margin-left: -10px;\n  }\n  .icon-next,\n  .glyphicon-chevron-right {\n    right: 50%;\n    margin-right: -10px;\n  }\n  .icon-prev,\n  .icon-next {\n    width: 20px;\n    height: 20px;\n    font-family: serif;\n    line-height: 1;\n  }\n\n  .icon-prev {\n    &:before {\n      content: \"\\2039\";// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)\n    }\n  }\n  .icon-next {\n    &:before {\n      content: \"\\203a\";// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)\n    }\n  }\n}\n\n// Optional indicator pips\n//\n// Add an unordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n  position: absolute;\n  bottom: 10px;\n  left: 50%;\n  z-index: 15;\n  width: 60%;\n  padding-left: 0;\n  margin-left: -30%;\n  text-align: center;\n  list-style: none;\n\n  li {\n    display: inline-block;\n    width: 10px;\n    height: 10px;\n    margin: 1px;\n    text-indent: -999px;\n    cursor: pointer;\n    // IE8-9 hack for event handling\n    //\n    // Internet Explorer 8-9 does not support clicks on elements without a set\n    // `background-color`. We cannot use `filter` since that's not viewed as a\n    // background color by the browser. Thus, a hack is needed.\n    // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer\n    //\n    // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we\n    // set alpha transparency for the best results possible.\n    background-color: #000 \\9; // IE8\n    background-color: rgba(0, 0, 0, 0); // IE9\n\n    border: 1px solid @carousel-indicator-border-color;\n    border-radius: 10px;\n  }\n\n  .active {\n    width: 12px;\n    height: 12px;\n    margin: 0;\n    background-color: @carousel-indicator-active-bg;\n  }\n}\n\n// Optional captions\n// -----------------------------\n// Hidden by default for smaller viewports\n.carousel-caption {\n  position: absolute;\n  right: 15%;\n  bottom: 20px;\n  left: 15%;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: @carousel-caption-color;\n  text-align: center;\n  text-shadow: @carousel-text-shadow;\n\n  & .btn {\n    text-shadow: none; // No shadow for button elements in carousel-caption\n  }\n}\n\n\n// Scale up controls for tablets and up\n@media screen and (min-width: @screen-sm-min) {\n\n  // Scale up the controls a smidge\n  .carousel-control {\n    .glyphicon-chevron-left,\n    .glyphicon-chevron-right,\n    .icon-prev,\n    .icon-next {\n      width: (@carousel-control-font-size * 1.5);\n      height: (@carousel-control-font-size * 1.5);\n      margin-top: (@carousel-control-font-size / -2);\n      font-size: (@carousel-control-font-size * 1.5);\n    }\n    .glyphicon-chevron-left,\n    .icon-prev {\n      margin-left: (@carousel-control-font-size / -2);\n    }\n    .glyphicon-chevron-right,\n    .icon-next {\n      margin-right: (@carousel-control-font-size / -2);\n    }\n  }\n\n  // Show and left align the captions\n  .carousel-caption {\n    right: 20%;\n    left: 20%;\n    padding-bottom: 30px;\n  }\n\n  // Move up the indicators\n  .carousel-indicators {\n    bottom: 20px;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/close.less",
    "content": "// stylelint-disable property-no-vendor-prefix\n\n//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n  float: right;\n  font-size: (@font-size-base * 1.5);\n  font-weight: @close-font-weight;\n  line-height: 1;\n  color: @close-color;\n  text-shadow: @close-text-shadow;\n  .opacity(.2);\n\n  &:hover,\n  &:focus {\n    color: @close-color;\n    text-decoration: none;\n    cursor: pointer;\n    .opacity(.5);\n  }\n\n  // Additional properties for button version\n  // iOS requires the button element instead of an anchor tag.\n  // If you want the anchor version, it requires `href=\"#\"`.\n  // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n  button& {\n    padding: 0;\n    cursor: pointer;\n    background: transparent;\n    border: 0;\n    -webkit-appearance: none;\n    appearance: none;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/code.less",
    "content": "//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n  font-family: @font-family-monospace;\n}\n\n// Inline code\ncode {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: @code-color;\n  background-color: @code-bg;\n  border-radius: @border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: @kbd-color;\n  background-color: @kbd-bg;\n  border-radius: @border-radius-small;\n  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);\n\n  kbd {\n    padding: 0;\n    font-size: 100%;\n    font-weight: 700;\n    box-shadow: none;\n  }\n}\n\n// Blocks of code\npre {\n  display: block;\n  padding: ((@line-height-computed - 1) / 2);\n  margin: 0 0 (@line-height-computed / 2);\n  font-size: (@font-size-base - 1); // 14px to 13px\n  line-height: @line-height-base;\n  color: @pre-color;\n  word-break: break-all;\n  word-wrap: break-word;\n  background-color: @pre-bg;\n  border: 1px solid @pre-border-color;\n  border-radius: @border-radius-base;\n\n  // Account for some code outputs that place code tags in pre tags\n  code {\n    padding: 0;\n    font-size: inherit;\n    color: inherit;\n    white-space: pre-wrap;\n    background-color: transparent;\n    border-radius: 0;\n  }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n  max-height: @pre-scrollable-max-height;\n  overflow-y: scroll;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/component-animations.less",
    "content": "// stylelint-disable selector-no-qualifying-type\n\n//\n// Component animations\n// --------------------------------------------------\n\n// Heads up!\n//\n// We don't use the `.opacity()` mixin here since it causes a bug with text\n// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.\n\n.fade {\n  opacity: 0;\n  .transition(opacity .15s linear);\n\n  &.in {\n    opacity: 1;\n  }\n}\n\n.collapse {\n  display: none;\n\n  &.in      { display: block; }\n  tr&.in    { display: table-row; }\n  tbody&.in { display: table-row-group; }\n}\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  .transition-property(~\"height, visibility\");\n  .transition-duration(.35s);\n  .transition-timing-function(ease);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/dropdowns.less",
    "content": "//\n// Dropdown menus\n// --------------------------------------------------\n\n\n// Dropdown arrow/caret\n.caret {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 2px;\n  vertical-align: middle;\n  border-top: @caret-width-base dashed;\n  border-top: @caret-width-base solid ~\"\\9\"; // IE8\n  border-right: @caret-width-base solid transparent;\n  border-left: @caret-width-base solid transparent;\n}\n\n// The dropdown wrapper (div)\n.dropup,\n.dropdown {\n  position: relative;\n}\n\n// Prevent the focus on the dropdown toggle when closing dropdowns\n.dropdown-toggle:focus {\n  outline: 0;\n}\n\n// The dropdown menu (ul)\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: @zindex-dropdown;\n  display: none; // none by default, but block on \"open\" of the menu\n  float: left;\n  min-width: 160px;\n  padding: 5px 0;\n  margin: 2px 0 0; // override default ul\n  font-size: @font-size-base;\n  text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n  list-style: none;\n  background-color: @dropdown-bg;\n  background-clip: padding-box;\n  border: 1px solid @dropdown-fallback-border; // IE8 fallback\n  border: 1px solid @dropdown-border;\n  border-radius: @border-radius-base;\n  .box-shadow(0 6px 12px rgba(0, 0, 0, .175));\n\n  // Aligns the dropdown menu to right\n  //\n  // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`\n  &.pull-right {\n    right: 0;\n    left: auto;\n  }\n\n  // Dividers (basically an hr) within the dropdown\n  .divider {\n    .nav-divider(@dropdown-divider-bg);\n  }\n\n  // Links within the dropdown menu\n  > li > a {\n    display: block;\n    padding: 3px 20px;\n    clear: both;\n    font-weight: 400;\n    line-height: @line-height-base;\n    color: @dropdown-link-color;\n    white-space: nowrap; // prevent links from randomly breaking onto new lines\n\n    &:hover,\n    &:focus {\n      color: @dropdown-link-hover-color;\n      text-decoration: none;\n      background-color: @dropdown-link-hover-bg;\n    }\n  }\n}\n\n// Active state\n.dropdown-menu > .active > a {\n  &,\n  &:hover,\n  &:focus {\n    color: @dropdown-link-active-color;\n    text-decoration: none;\n    background-color: @dropdown-link-active-bg;\n    outline: 0;\n  }\n}\n\n// Disabled state\n//\n// Gray out text and ensure the hover/focus state remains gray\n\n.dropdown-menu > .disabled > a {\n  &,\n  &:hover,\n  &:focus {\n    color: @dropdown-link-disabled-color;\n  }\n\n  // Nuke hover/focus effects\n  &:hover,\n  &:focus {\n    text-decoration: none;\n    cursor: @cursor-disabled;\n    background-color: transparent;\n    background-image: none; // Remove CSS gradient\n    .reset-filter();\n  }\n}\n\n// Open state for the dropdown\n.open {\n  // Show the menu\n  > .dropdown-menu {\n    display: block;\n  }\n\n  // Remove the outline when :focus is triggered\n  > a {\n    outline: 0;\n  }\n}\n\n// Menu positioning\n//\n// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown\n// menu with the parent.\n.dropdown-menu-right {\n  right: 0;\n  left: auto; // Reset the default from `.dropdown-menu`\n}\n// With v3, we enabled auto-flipping if you have a dropdown within a right\n// aligned nav component. To enable the undoing of that, we provide an override\n// to restore the default dropdown menu alignment.\n//\n// This is only for left-aligning a dropdown menu within a `.navbar-right` or\n// `.pull-right` nav component.\n.dropdown-menu-left {\n  right: auto;\n  left: 0;\n}\n\n// Dropdown section headers\n.dropdown-header {\n  display: block;\n  padding: 3px 20px;\n  font-size: @font-size-small;\n  line-height: @line-height-base;\n  color: @dropdown-header-color;\n  white-space: nowrap; // as with > li > a\n}\n\n// Backdrop to catch body clicks on mobile, etc.\n.dropdown-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: (@zindex-dropdown - 10);\n}\n\n// Right aligned dropdowns\n.pull-right > .dropdown-menu {\n  right: 0;\n  left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n//\n// Just add .dropup after the standard .dropdown class and you're set, bro.\n// TODO: abstract this so that the navbar fixed styles are not placed here?\n\n.dropup,\n.navbar-fixed-bottom .dropdown {\n  // Reverse the caret\n  .caret {\n    content: \"\";\n    border-top: 0;\n    border-bottom: @caret-width-base dashed;\n    border-bottom: @caret-width-base solid ~\"\\9\"; // IE8\n  }\n  // Different positioning for bottom up menu\n  .dropdown-menu {\n    top: auto;\n    bottom: 100%;\n    margin-bottom: 2px;\n  }\n}\n\n\n// Component alignment\n//\n// Reiterate per navbar.less and the modified component alignment there.\n\n@media (min-width: @grid-float-breakpoint) {\n  .navbar-right {\n    .dropdown-menu {\n      .dropdown-menu-right();\n    }\n    // Necessary for overrides of the default right aligned menu.\n    // Will remove come v4 in all likelihood.\n    .dropdown-menu-left {\n      .dropdown-menu-left();\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/forms.less",
    "content": "// stylelint-disable selector-no-qualifying-type, property-no-vendor-prefix, media-feature-name-no-vendor-prefix\n\n//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n  // Chrome and Firefox set a `min-width: min-content;` on fieldsets,\n  // so we reset that to ensure it behaves more like a standard block element.\n  // See https://github.com/twbs/bootstrap/issues/12359.\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: @line-height-computed;\n  font-size: (@font-size-base * 1.5);\n  line-height: inherit;\n  color: @legend-color;\n  border: 0;\n  border-bottom: 1px solid @legend-border-color;\n}\n\nlabel {\n  display: inline-block;\n  max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)\n  margin-bottom: 5px;\n  font-weight: 700;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\ninput[type=\"search\"] {\n  // Override content-box in Normalize (* isn't specific enough)\n  .box-sizing(border-box);\n\n  // Search inputs in iOS\n  //\n  // This overrides the extra rounded corners on search inputs in iOS so that our\n  // `.form-control` class can properly style them. Note that this cannot simply\n  // be added to `.form-control` as it's not specific enough. For details, see\n  // https://github.com/twbs/bootstrap/issues/11586.\n  -webkit-appearance: none;\n  appearance: none;\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  margin: 4px 0 0;\n  margin-top: 1px \\9; // IE8-9\n  line-height: normal;\n\n  // Apply same disabled cursor tweak as for inputs\n  // Some special care is needed because <label>s don't inherit their parent's `cursor`.\n  //\n  // Note: Neither radios nor checkboxes can be readonly.\n  &[disabled],\n  &.disabled,\n  fieldset[disabled] & {\n    cursor: @cursor-disabled;\n  }\n}\n\ninput[type=\"file\"] {\n  display: block;\n}\n\n// Make range inputs behave like textual form controls\ninput[type=\"range\"] {\n  display: block;\n  width: 100%;\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n  height: auto;\n}\n\n// Focus for file, radio, and checkbox\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n  .tab-focus();\n}\n\n// Adjust output element\noutput {\n  display: block;\n  padding-top: (@padding-base-vertical + 1);\n  font-size: @font-size-base;\n  line-height: @line-height-base;\n  color: @input-color;\n}\n\n\n// Common form controls\n//\n// Shared size and type resets for form controls. Apply `.form-control` to any\n// of the following form controls:\n//\n// select\n// textarea\n// input[type=\"text\"]\n// input[type=\"password\"]\n// input[type=\"datetime\"]\n// input[type=\"datetime-local\"]\n// input[type=\"date\"]\n// input[type=\"month\"]\n// input[type=\"time\"]\n// input[type=\"week\"]\n// input[type=\"number\"]\n// input[type=\"email\"]\n// input[type=\"url\"]\n// input[type=\"search\"]\n// input[type=\"tel\"]\n// input[type=\"color\"]\n\n.form-control {\n  display: block;\n  width: 100%;\n  height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n  padding: @padding-base-vertical @padding-base-horizontal;\n  font-size: @font-size-base;\n  line-height: @line-height-base;\n  color: @input-color;\n  background-color: @input-bg;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid @input-border;\n  border-radius: @input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.\n  .box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075));\n  .transition(~\"border-color ease-in-out .15s, box-shadow ease-in-out .15s\");\n\n  // Customize the `:focus` state to imitate native WebKit styles.\n  .form-control-focus();\n\n  // Placeholder\n  .placeholder();\n\n  // Unstyle the caret on `<select>`s in IE10+.\n  &::-ms-expand {\n    background-color: transparent;\n    border: 0;\n  }\n\n  // Disabled and read-only inputs\n  //\n  // HTML5 says that controls under a fieldset > legend:first-child won't be\n  // disabled if the fieldset is disabled. Due to implementation difficulty, we\n  // don't honor that edge case; we style them as disabled anyway.\n  &[disabled],\n  &[readonly],\n  fieldset[disabled] & {\n    background-color: @input-bg-disabled;\n    opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655\n  }\n\n  &[disabled],\n  fieldset[disabled] & {\n    cursor: @cursor-disabled;\n  }\n\n  // Reset height for `textarea`s\n  textarea& {\n    height: auto;\n  }\n}\n\n\n// Special styles for iOS temporal inputs\n//\n// In Mobile Safari, setting `display: block` on temporal inputs causes the\n// text within the input to become vertically misaligned. As a workaround, we\n// set a pixel line-height that matches the given height of the input, but only\n// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848\n//\n// Note that as of 9.3, iOS doesn't support `week`.\n\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n  input[type=\"date\"],\n  input[type=\"time\"],\n  input[type=\"datetime-local\"],\n  input[type=\"month\"] {\n    &.form-control {\n      line-height: @input-height-base;\n    }\n\n    &.input-sm,\n    .input-group-sm & {\n      line-height: @input-height-small;\n    }\n\n    &.input-lg,\n    .input-group-lg & {\n      line-height: @input-height-large;\n    }\n  }\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n  margin-bottom: @form-group-margin-bottom;\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.radio,\n.checkbox {\n  position: relative;\n  display: block;\n  margin-top: 10px;\n  margin-bottom: 10px;\n\n  // These are used on elements with <label> descendants\n  &.disabled,\n  fieldset[disabled] & {\n    label {\n      cursor: @cursor-disabled;\n    }\n  }\n\n  label {\n    min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text\n    padding-left: 20px;\n    margin-bottom: 0;\n    font-weight: 400;\n    cursor: pointer;\n  }\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n  position: absolute;\n  margin-top: 4px \\9;\n  margin-left: -20px;\n}\n\n.radio + .radio,\n.checkbox + .checkbox {\n  margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing\n}\n\n// Radios and checkboxes on same line\n.radio-inline,\n.checkbox-inline {\n  position: relative;\n  display: inline-block;\n  padding-left: 20px;\n  margin-bottom: 0;\n  font-weight: 400;\n  vertical-align: middle;\n  cursor: pointer;\n\n  // These are used directly on <label>s\n  &.disabled,\n  fieldset[disabled] & {\n    cursor: @cursor-disabled;\n  }\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n  margin-top: 0;\n  margin-left: 10px; // space out consecutive inline controls\n}\n\n\n// Static form control text\n//\n// Apply class to a `p` element to make any string of text align with labels in\n// a horizontal form layout.\n\n.form-control-static {\n  min-height: (@line-height-computed + @font-size-base);\n  // Size it appropriately next to real form controls\n  padding-top: (@padding-base-vertical + 1);\n  padding-bottom: (@padding-base-vertical + 1);\n  // Remove default margin from `p`\n  margin-bottom: 0;\n\n  &.input-lg,\n  &.input-sm {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// The `.form-group-* form-control` variations are sadly duplicated to avoid the\n// issue documented in https://github.com/twbs/bootstrap/issues/15074.\n\n.input-sm {\n  .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @input-border-radius-small);\n}\n.form-group-sm {\n  .form-control {\n    height: @input-height-small;\n    padding: @padding-small-vertical @padding-small-horizontal;\n    font-size: @font-size-small;\n    line-height: @line-height-small;\n    border-radius: @input-border-radius-small;\n  }\n  select.form-control {\n    height: @input-height-small;\n    line-height: @input-height-small;\n  }\n  textarea.form-control,\n  select[multiple].form-control {\n    height: auto;\n  }\n  .form-control-static {\n    height: @input-height-small;\n    min-height: (@line-height-computed + @font-size-small);\n    padding: (@padding-small-vertical + 1) @padding-small-horizontal;\n    font-size: @font-size-small;\n    line-height: @line-height-small;\n  }\n}\n\n.input-lg {\n  .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @input-border-radius-large);\n}\n.form-group-lg {\n  .form-control {\n    height: @input-height-large;\n    padding: @padding-large-vertical @padding-large-horizontal;\n    font-size: @font-size-large;\n    line-height: @line-height-large;\n    border-radius: @input-border-radius-large;\n  }\n  select.form-control {\n    height: @input-height-large;\n    line-height: @input-height-large;\n  }\n  textarea.form-control,\n  select[multiple].form-control {\n    height: auto;\n  }\n  .form-control-static {\n    height: @input-height-large;\n    min-height: (@line-height-computed + @font-size-large);\n    padding: (@padding-large-vertical + 1) @padding-large-horizontal;\n    font-size: @font-size-large;\n    line-height: @line-height-large;\n  }\n}\n\n\n// Form control feedback states\n//\n// Apply contextual and semantic states to individual form controls.\n\n.has-feedback {\n  // Enable absolute positioning\n  position: relative;\n\n  // Ensure icons don't overlap text\n  .form-control {\n    padding-right: (@input-height-base * 1.25);\n  }\n}\n// Feedback icon (requires .glyphicon classes)\n.form-control-feedback {\n  position: absolute;\n  top: 0;\n  right: 0;\n  z-index: 2; // Ensure icon is above input groups\n  display: block;\n  width: @input-height-base;\n  height: @input-height-base;\n  line-height: @input-height-base;\n  text-align: center;\n  pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n  width: @input-height-large;\n  height: @input-height-large;\n  line-height: @input-height-large;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n  width: @input-height-small;\n  height: @input-height-small;\n  line-height: @input-height-small;\n}\n\n// Feedback states\n.has-success {\n  .form-control-validation(@state-success-text; @state-success-text; @state-success-bg);\n}\n.has-warning {\n  .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);\n}\n.has-error {\n  .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);\n}\n\n// Reposition feedback icon if input has visible label above\n.has-feedback label {\n\n  & ~ .form-control-feedback {\n    top: (@line-height-computed + 5); // Height of the `label` and its margin\n  }\n  &.sr-only ~ .form-control-feedback {\n    top: 0;\n  }\n}\n\n\n// Help text\n//\n// Apply to any element you wish to create light text for placement immediately\n// below a form control. Use for general help, formatting, or instructional text.\n\n.help-block {\n  display: block; // account for any element using help-block\n  margin-top: 5px;\n  margin-bottom: 10px;\n  color: lighten(@text-color, 25%); // lighten the text some for contrast\n}\n\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n//\n// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.\n\n.form-inline {\n\n  // Kick in the inline\n  @media (min-width: @screen-sm-min) {\n    // Inline-block all the things for \"inline\"\n    .form-group {\n      display: inline-block;\n      margin-bottom: 0;\n      vertical-align: middle;\n    }\n\n    // In navbar-form, allow folks to *not* use `.form-group`\n    .form-control {\n      display: inline-block;\n      width: auto; // Prevent labels from stacking above inputs in `.form-group`\n      vertical-align: middle;\n    }\n\n    // Make static controls behave like regular ones\n    .form-control-static {\n      display: inline-block;\n    }\n\n    .input-group {\n      display: inline-table;\n      vertical-align: middle;\n\n      .input-group-addon,\n      .input-group-btn,\n      .form-control {\n        width: auto;\n      }\n    }\n\n    // Input groups need that 100% width though\n    .input-group > .form-control {\n      width: 100%;\n    }\n\n    .control-label {\n      margin-bottom: 0;\n      vertical-align: middle;\n    }\n\n    // Remove default margin on radios/checkboxes that were used for stacking, and\n    // then undo the floating of radios and checkboxes to match.\n    .radio,\n    .checkbox {\n      display: inline-block;\n      margin-top: 0;\n      margin-bottom: 0;\n      vertical-align: middle;\n\n      label {\n        padding-left: 0;\n      }\n    }\n    .radio input[type=\"radio\"],\n    .checkbox input[type=\"checkbox\"] {\n      position: relative;\n      margin-left: 0;\n    }\n\n    // Re-override the feedback icon.\n    .has-feedback .form-control-feedback {\n      top: 0;\n    }\n  }\n}\n\n\n// Horizontal forms\n//\n// Horizontal forms are built on grid classes and allow you to create forms with\n// labels on the left and inputs on the right.\n\n.form-horizontal {\n\n  // Consistent vertical alignment of radios and checkboxes\n  //\n  // Labels also get some reset styles, but that is scoped to a media query below.\n  .radio,\n  .checkbox,\n  .radio-inline,\n  .checkbox-inline {\n    padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n    margin-top: 0;\n    margin-bottom: 0;\n  }\n  // Account for padding we're adding to ensure the alignment and of help text\n  // and other content below items\n  .radio,\n  .checkbox {\n    min-height: (@line-height-computed + (@padding-base-vertical + 1));\n  }\n\n  // Make form groups behave like rows\n  .form-group {\n    .make-row();\n  }\n\n  // Reset spacing and right align labels, but scope to media queries so that\n  // labels on narrow viewports stack the same as a default form example.\n  @media (min-width: @screen-sm-min) {\n    .control-label {\n      padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n      margin-bottom: 0;\n      text-align: right;\n    }\n  }\n\n  // Validation states\n  //\n  // Reposition the icon because it's now within a grid column and columns have\n  // `position: relative;` on them. Also accounts for the grid gutter padding.\n  .has-feedback .form-control-feedback {\n    right: floor((@grid-gutter-width / 2));\n  }\n\n  // Form group sizes\n  //\n  // Quick utility class for applying `.input-lg` and `.input-sm` styles to the\n  // inputs and labels within a `.form-group`.\n  .form-group-lg {\n    @media (min-width: @screen-sm-min) {\n      .control-label {\n        padding-top: (@padding-large-vertical + 1);\n        font-size: @font-size-large;\n      }\n    }\n  }\n  .form-group-sm {\n    @media (min-width: @screen-sm-min) {\n      .control-label {\n        padding-top: (@padding-small-vertical + 1);\n        font-size: @font-size-small;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/glyphicons.less",
    "content": "// stylelint-disable value-list-comma-newline-after, value-list-comma-space-after, indentation, declaration-colon-newline-after, font-family-no-missing-generic-family-keyword\n\n//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// <a href=\"#\"><span class=\"glyphicon glyphicon-star\"></span> Star</a>\n\n// Import the fonts\n@font-face {\n  font-family: \"Glyphicons Halflings\";\n  src: url(\"@{icon-font-path}@{icon-font-name}.eot\");\n  src: url(\"@{icon-font-path}@{icon-font-name}.eot?#iefix\") format(\"embedded-opentype\"),\n       url(\"@{icon-font-path}@{icon-font-name}.woff2\") format(\"woff2\"),\n       url(\"@{icon-font-path}@{icon-font-name}.woff\") format(\"woff\"),\n       url(\"@{icon-font-path}@{icon-font-name}.ttf\") format(\"truetype\"),\n       url(\"@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}\") format(\"svg\");\n}\n\n// Catchall baseclass\n.glyphicon {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  font-family: \"Glyphicons Halflings\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk               { &:before { content: \"\\002a\"; } }\n.glyphicon-plus                   { &:before { content: \"\\002b\"; } }\n.glyphicon-euro,\n.glyphicon-eur                    { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus                  { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud                  { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope               { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil                 { &:before { content: \"\\270f\"; } }\n.glyphicon-glass                  { &:before { content: \"\\e001\"; } }\n.glyphicon-music                  { &:before { content: \"\\e002\"; } }\n.glyphicon-search                 { &:before { content: \"\\e003\"; } }\n.glyphicon-heart                  { &:before { content: \"\\e005\"; } }\n.glyphicon-star                   { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty             { &:before { content: \"\\e007\"; } }\n.glyphicon-user                   { &:before { content: \"\\e008\"; } }\n.glyphicon-film                   { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large               { &:before { content: \"\\e010\"; } }\n.glyphicon-th                     { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list                { &:before { content: \"\\e012\"; } }\n.glyphicon-ok                     { &:before { content: \"\\e013\"; } }\n.glyphicon-remove                 { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in                { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out               { &:before { content: \"\\e016\"; } }\n.glyphicon-off                    { &:before { content: \"\\e017\"; } }\n.glyphicon-signal                 { &:before { content: \"\\e018\"; } }\n.glyphicon-cog                    { &:before { content: \"\\e019\"; } }\n.glyphicon-trash                  { &:before { content: \"\\e020\"; } }\n.glyphicon-home                   { &:before { content: \"\\e021\"; } }\n.glyphicon-file                   { &:before { content: \"\\e022\"; } }\n.glyphicon-time                   { &:before { content: \"\\e023\"; } }\n.glyphicon-road                   { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt           { &:before { content: \"\\e025\"; } }\n.glyphicon-download               { &:before { content: \"\\e026\"; } }\n.glyphicon-upload                 { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox                  { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle            { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat                 { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh                { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt               { &:before { content: \"\\e032\"; } }\n.glyphicon-lock                   { &:before { content: \"\\e033\"; } }\n.glyphicon-flag                   { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones             { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off             { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down            { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up              { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode                 { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode                { &:before { content: \"\\e040\"; } }\n.glyphicon-tag                    { &:before { content: \"\\e041\"; } }\n.glyphicon-tags                   { &:before { content: \"\\e042\"; } }\n.glyphicon-book                   { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark               { &:before { content: \"\\e044\"; } }\n.glyphicon-print                  { &:before { content: \"\\e045\"; } }\n.glyphicon-camera                 { &:before { content: \"\\e046\"; } }\n.glyphicon-font                   { &:before { content: \"\\e047\"; } }\n.glyphicon-bold                   { &:before { content: \"\\e048\"; } }\n.glyphicon-italic                 { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height            { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width             { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left             { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center           { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right            { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify          { &:before { content: \"\\e055\"; } }\n.glyphicon-list                   { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left            { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right           { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video         { &:before { content: \"\\e059\"; } }\n.glyphicon-picture                { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker             { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust                 { &:before { content: \"\\e063\"; } }\n.glyphicon-tint                   { &:before { content: \"\\e064\"; } }\n.glyphicon-edit                   { &:before { content: \"\\e065\"; } }\n.glyphicon-share                  { &:before { content: \"\\e066\"; } }\n.glyphicon-check                  { &:before { content: \"\\e067\"; } }\n.glyphicon-move                   { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward          { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward          { &:before { content: \"\\e070\"; } }\n.glyphicon-backward               { &:before { content: \"\\e071\"; } }\n.glyphicon-play                   { &:before { content: \"\\e072\"; } }\n.glyphicon-pause                  { &:before { content: \"\\e073\"; } }\n.glyphicon-stop                   { &:before { content: \"\\e074\"; } }\n.glyphicon-forward                { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward           { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward           { &:before { content: \"\\e077\"; } }\n.glyphicon-eject                  { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left           { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right          { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign              { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign             { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign            { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign                { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign          { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign              { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot             { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle          { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle              { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle             { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left             { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right            { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up               { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down             { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt              { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full            { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small           { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign       { &:before { content: \"\\e101\"; } }\n.glyphicon-gift                   { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf                   { &:before { content: \"\\e103\"; } }\n.glyphicon-fire                   { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open               { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close              { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign           { &:before { content: \"\\e107\"; } }\n.glyphicon-plane                  { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar               { &:before { content: \"\\e109\"; } }\n.glyphicon-random                 { &:before { content: \"\\e110\"; } }\n.glyphicon-comment                { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet                 { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up             { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down           { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet                { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart          { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close           { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open            { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical        { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal      { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd                    { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn               { &:before { content: \"\\e122\"; } }\n.glyphicon-bell                   { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate            { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up              { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down            { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right             { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left              { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up                { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down              { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right     { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left      { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up        { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down      { &:before { content: \"\\e134\"; } }\n.glyphicon-globe                  { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench                 { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks                  { &:before { content: \"\\e137\"; } }\n.glyphicon-filter                 { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase              { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen             { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard              { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip              { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty            { &:before { content: \"\\e143\"; } }\n.glyphicon-link                   { &:before { content: \"\\e144\"; } }\n.glyphicon-phone                  { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin                { &:before { content: \"\\e146\"; } }\n.glyphicon-usd                    { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp                    { &:before { content: \"\\e149\"; } }\n.glyphicon-sort                   { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet       { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt   { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order          { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt      { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes     { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked              { &:before { content: \"\\e157\"; } }\n.glyphicon-expand                 { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down          { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up            { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in                 { &:before { content: \"\\e161\"; } }\n.glyphicon-flash                  { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out                { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window             { &:before { content: \"\\e164\"; } }\n.glyphicon-record                 { &:before { content: \"\\e165\"; } }\n.glyphicon-save                   { &:before { content: \"\\e166\"; } }\n.glyphicon-open                   { &:before { content: \"\\e167\"; } }\n.glyphicon-saved                  { &:before { content: \"\\e168\"; } }\n.glyphicon-import                 { &:before { content: \"\\e169\"; } }\n.glyphicon-export                 { &:before { content: \"\\e170\"; } }\n.glyphicon-send                   { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk            { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved           { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove          { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save            { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open            { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card            { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer               { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery                { &:before { content: \"\\e179\"; } }\n.glyphicon-header                 { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed             { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone               { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt              { &:before { content: \"\\e183\"; } }\n.glyphicon-tower                  { &:before { content: \"\\e184\"; } }\n.glyphicon-stats                  { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video               { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video               { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles              { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo           { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby            { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1              { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1              { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1              { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark         { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark      { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download         { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload           { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer           { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous         { &:before { content: \"\\e200\"; } }\n.glyphicon-cd                     { &:before { content: \"\\e201\"; } }\n.glyphicon-save-file              { &:before { content: \"\\e202\"; } }\n.glyphicon-open-file              { &:before { content: \"\\e203\"; } }\n.glyphicon-level-up               { &:before { content: \"\\e204\"; } }\n.glyphicon-copy                   { &:before { content: \"\\e205\"; } }\n.glyphicon-paste                  { &:before { content: \"\\e206\"; } }\n// The following 2 Glyphicons are omitted for the time being because\n// they currently use Unicode codepoints that are outside the\n// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle\n// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.\n// Notably, the bug affects some older versions of the Android Browser.\n// More info: https://github.com/twbs/bootstrap/issues/10106\n// .glyphicon-door                   { &:before { content: \"\\1f6aa\"; } }\n// .glyphicon-key                    { &:before { content: \"\\1f511\"; } }\n.glyphicon-alert                  { &:before { content: \"\\e209\"; } }\n.glyphicon-equalizer              { &:before { content: \"\\e210\"; } }\n.glyphicon-king                   { &:before { content: \"\\e211\"; } }\n.glyphicon-queen                  { &:before { content: \"\\e212\"; } }\n.glyphicon-pawn                   { &:before { content: \"\\e213\"; } }\n.glyphicon-bishop                 { &:before { content: \"\\e214\"; } }\n.glyphicon-knight                 { &:before { content: \"\\e215\"; } }\n.glyphicon-baby-formula           { &:before { content: \"\\e216\"; } }\n.glyphicon-tent                   { &:before { content: \"\\26fa\"; } }\n.glyphicon-blackboard             { &:before { content: \"\\e218\"; } }\n.glyphicon-bed                    { &:before { content: \"\\e219\"; } }\n.glyphicon-apple                  { &:before { content: \"\\f8ff\"; } }\n.glyphicon-erase                  { &:before { content: \"\\e221\"; } }\n.glyphicon-hourglass              { &:before { content: \"\\231b\"; } }\n.glyphicon-lamp                   { &:before { content: \"\\e223\"; } }\n.glyphicon-duplicate              { &:before { content: \"\\e224\"; } }\n.glyphicon-piggy-bank             { &:before { content: \"\\e225\"; } }\n.glyphicon-scissors               { &:before { content: \"\\e226\"; } }\n.glyphicon-bitcoin                { &:before { content: \"\\e227\"; } }\n.glyphicon-btc                    { &:before { content: \"\\e227\"; } }\n.glyphicon-xbt                    { &:before { content: \"\\e227\"; } }\n.glyphicon-yen                    { &:before { content: \"\\00a5\"; } }\n.glyphicon-jpy                    { &:before { content: \"\\00a5\"; } }\n.glyphicon-ruble                  { &:before { content: \"\\20bd\"; } }\n.glyphicon-rub                    { &:before { content: \"\\20bd\"; } }\n.glyphicon-scale                  { &:before { content: \"\\e230\"; } }\n.glyphicon-ice-lolly              { &:before { content: \"\\e231\"; } }\n.glyphicon-ice-lolly-tasted       { &:before { content: \"\\e232\"; } }\n.glyphicon-education              { &:before { content: \"\\e233\"; } }\n.glyphicon-option-horizontal      { &:before { content: \"\\e234\"; } }\n.glyphicon-option-vertical        { &:before { content: \"\\e235\"; } }\n.glyphicon-menu-hamburger         { &:before { content: \"\\e236\"; } }\n.glyphicon-modal-window           { &:before { content: \"\\e237\"; } }\n.glyphicon-oil                    { &:before { content: \"\\e238\"; } }\n.glyphicon-grain                  { &:before { content: \"\\e239\"; } }\n.glyphicon-sunglasses             { &:before { content: \"\\e240\"; } }\n.glyphicon-text-size              { &:before { content: \"\\e241\"; } }\n.glyphicon-text-color             { &:before { content: \"\\e242\"; } }\n.glyphicon-text-background        { &:before { content: \"\\e243\"; } }\n.glyphicon-object-align-top       { &:before { content: \"\\e244\"; } }\n.glyphicon-object-align-bottom    { &:before { content: \"\\e245\"; } }\n.glyphicon-object-align-horizontal{ &:before { content: \"\\e246\"; } }\n.glyphicon-object-align-left      { &:before { content: \"\\e247\"; } }\n.glyphicon-object-align-vertical  { &:before { content: \"\\e248\"; } }\n.glyphicon-object-align-right     { &:before { content: \"\\e249\"; } }\n.glyphicon-triangle-right         { &:before { content: \"\\e250\"; } }\n.glyphicon-triangle-left          { &:before { content: \"\\e251\"; } }\n.glyphicon-triangle-bottom        { &:before { content: \"\\e252\"; } }\n.glyphicon-triangle-top           { &:before { content: \"\\e253\"; } }\n.glyphicon-console                { &:before { content: \"\\e254\"; } }\n.glyphicon-superscript            { &:before { content: \"\\e255\"; } }\n.glyphicon-subscript              { &:before { content: \"\\e256\"; } }\n.glyphicon-menu-left              { &:before { content: \"\\e257\"; } }\n.glyphicon-menu-right             { &:before { content: \"\\e258\"; } }\n.glyphicon-menu-down              { &:before { content: \"\\e259\"; } }\n.glyphicon-menu-up                { &:before { content: \"\\e260\"; } }\n"
  },
  {
    "path": "dist/lib/bootstrap3/grid.less",
    "content": "//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n  .container-fixed();\n\n  @media (min-width: @screen-sm-min) {\n    width: @container-sm;\n  }\n  @media (min-width: @screen-md-min) {\n    width: @container-md;\n  }\n  @media (min-width: @screen-lg-min) {\n    width: @container-lg;\n  }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n  .container-fixed();\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n  .make-row();\n}\n\n.row-no-gutters {\n  margin-right: 0;\n  margin-left: 0;\n\n  [class*=\"col-\"] {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n.make-grid-columns();\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n  .make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n  .make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n  .make-grid(lg);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/input-groups.less",
    "content": "// stylelint-disable selector-no-qualifying-type\n\n//\n// Input groups\n// --------------------------------------------------\n\n// Base styles\n// -------------------------\n.input-group {\n  position: relative; // For dropdowns\n  display: table;\n  border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table\n\n  // Undo padding and float of grid classes\n  &[class*=\"col-\"] {\n    float: none;\n    padding-right: 0;\n    padding-left: 0;\n  }\n\n  .form-control {\n    // Ensure that the input is always above the *appended* addon button for\n    // proper border colors.\n    position: relative;\n    z-index: 2;\n\n    // IE9 fubars the placeholder attribute in text inputs and the arrows on\n    // select elements in input groups. To fix it, we float the input. Details:\n    // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855\n    float: left;\n\n    width: 100%;\n    margin-bottom: 0;\n\n    &:focus {\n      z-index: 3;\n    }\n  }\n}\n\n// Sizing options\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n  .input-lg();\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n  .input-sm();\n}\n\n\n// Display as table-cell\n// -------------------------\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n  display: table-cell;\n\n  &:not(:first-child):not(:last-child) {\n    border-radius: 0;\n  }\n}\n// Addon and addon wrapper for buttons\n.input-group-addon,\n.input-group-btn {\n  width: 1%;\n  white-space: nowrap;\n  vertical-align: middle; // Match the inputs\n}\n\n// Text input groups\n// -------------------------\n.input-group-addon {\n  padding: @padding-base-vertical @padding-base-horizontal;\n  font-size: @font-size-base;\n  font-weight: 400;\n  line-height: 1;\n  color: @input-color;\n  text-align: center;\n  background-color: @input-group-addon-bg;\n  border: 1px solid @input-group-addon-border-color;\n  border-radius: @input-border-radius;\n\n  // Sizing\n  &.input-sm {\n    padding: @padding-small-vertical @padding-small-horizontal;\n    font-size: @font-size-small;\n    border-radius: @input-border-radius-small;\n  }\n  &.input-lg {\n    padding: @padding-large-vertical @padding-large-horizontal;\n    font-size: @font-size-large;\n    border-radius: @input-border-radius-large;\n  }\n\n  // Nuke default margins from checkboxes and radios to vertically center within.\n  input[type=\"radio\"],\n  input[type=\"checkbox\"] {\n    margin-top: 0;\n  }\n}\n\n// Reset rounded corners\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n  .border-right-radius(0);\n}\n.input-group-addon:first-child {\n  border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n  .border-left-radius(0);\n}\n.input-group-addon:last-child {\n  border-left: 0;\n}\n\n// Button input groups\n// -------------------------\n.input-group-btn {\n  position: relative;\n  // Jankily prevent input button groups from wrapping with `white-space` and\n  // `font-size` in combination with `inline-block` on buttons.\n  font-size: 0;\n  white-space: nowrap;\n\n  // Negative margin for spacing, position for bringing hovered/focused/actived\n  // element above the siblings.\n  > .btn {\n    position: relative;\n    + .btn {\n      margin-left: -1px;\n    }\n    // Bring the \"active\" button to the front\n    &:hover,\n    &:focus,\n    &:active {\n      z-index: 2;\n    }\n  }\n\n  // Negative margin to only have a 1px border between the two\n  &:first-child {\n    > .btn,\n    > .btn-group {\n      margin-right: -1px;\n    }\n  }\n  &:last-child {\n    > .btn,\n    > .btn-group {\n      z-index: 2;\n      margin-left: -1px;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/jumbotron.less",
    "content": "//\n// Jumbotron\n// --------------------------------------------------\n\n\n.jumbotron {\n  padding-top: @jumbotron-padding;\n  padding-bottom: @jumbotron-padding;\n  margin-bottom: @jumbotron-padding;\n  color: @jumbotron-color;\n  background-color: @jumbotron-bg;\n\n  h1,\n  .h1 {\n    color: @jumbotron-heading-color;\n  }\n\n  p {\n    margin-bottom: (@jumbotron-padding / 2);\n    font-size: @jumbotron-font-size;\n    font-weight: 200;\n  }\n\n  > hr {\n    border-top-color: darken(@jumbotron-bg, 10%);\n  }\n\n  .container &,\n  .container-fluid & {\n    padding-right: (@grid-gutter-width / 2);\n    padding-left: (@grid-gutter-width / 2);\n    border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container\n  }\n\n  .container {\n    max-width: 100%;\n  }\n\n  @media screen and (min-width: @screen-sm-min) {\n    padding-top: (@jumbotron-padding * 1.6);\n    padding-bottom: (@jumbotron-padding * 1.6);\n\n    .container &,\n    .container-fluid & {\n      padding-right: (@jumbotron-padding * 2);\n      padding-left: (@jumbotron-padding * 2);\n    }\n\n    h1,\n    .h1 {\n      font-size: @jumbotron-heading-font-size;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/labels.less",
    "content": "//\n// Labels\n// --------------------------------------------------\n\n.label {\n  display: inline;\n  padding: .2em .6em .3em;\n  font-size: 75%;\n  font-weight: 700;\n  line-height: 1;\n  color: @label-color;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: .25em;\n\n  // Add hover effects, but only for links\n  a& {\n    &:hover,\n    &:focus {\n      color: @label-link-hover-color;\n      text-decoration: none;\n      cursor: pointer;\n    }\n  }\n\n  // Empty labels collapse automatically (not available in IE8)\n  &:empty {\n    display: none;\n  }\n\n  // Quick fix for labels in buttons\n  .btn & {\n    position: relative;\n    top: -1px;\n  }\n}\n\n// Colors\n// Contextual variations (linked labels get darker on :hover)\n\n.label-default {\n  .label-variant(@label-default-bg);\n}\n\n.label-primary {\n  .label-variant(@label-primary-bg);\n}\n\n.label-success {\n  .label-variant(@label-success-bg);\n}\n\n.label-info {\n  .label-variant(@label-info-bg);\n}\n\n.label-warning {\n  .label-variant(@label-warning-bg);\n}\n\n.label-danger {\n  .label-variant(@label-danger-bg);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/list-group.less",
    "content": "// stylelint-disable selector-no-qualifying-type\n\n//\n// List groups\n// --------------------------------------------------\n\n\n// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n  // No need to set list-style: none; since .list-group-item is block level\n  padding-left: 0; // reset padding because ul and ol\n  margin-bottom: 20px;\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n  // Place the border on the list items and negative margin up for better styling\n  margin-bottom: -1px;\n  background-color: @list-group-bg;\n  border: 1px solid @list-group-border;\n\n  // Round the first and last items\n  &:first-child {\n    .border-top-radius(@list-group-border-radius);\n  }\n  &:last-child {\n    margin-bottom: 0;\n    .border-bottom-radius(@list-group-border-radius);\n  }\n\n  // Disabled state\n  &.disabled,\n  &.disabled:hover,\n  &.disabled:focus {\n    color: @list-group-disabled-color;\n    cursor: @cursor-disabled;\n    background-color: @list-group-disabled-bg;\n\n    // Force color to inherit for custom content\n    .list-group-item-heading {\n      color: inherit;\n    }\n    .list-group-item-text {\n      color: @list-group-disabled-text-color;\n    }\n  }\n\n  // Active class on item itself, not parent\n  &.active,\n  &.active:hover,\n  &.active:focus {\n    z-index: 2; // Place active items above their siblings for proper border styling\n    color: @list-group-active-color;\n    background-color: @list-group-active-bg;\n    border-color: @list-group-active-border;\n\n    // Force color to inherit for custom content\n    .list-group-item-heading,\n    .list-group-item-heading > small,\n    .list-group-item-heading > .small {\n      color: inherit;\n    }\n    .list-group-item-text {\n      color: @list-group-active-text-color;\n    }\n  }\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive items.\n// Includes an extra `.active` modifier class for showing selected items.\n\na.list-group-item,\nbutton.list-group-item {\n  color: @list-group-link-color;\n\n  .list-group-item-heading {\n    color: @list-group-link-heading-color;\n  }\n\n  // Hover state\n  &:hover,\n  &:focus {\n    color: @list-group-link-hover-color;\n    text-decoration: none;\n    background-color: @list-group-hover-bg;\n  }\n}\n\nbutton.list-group-item {\n  width: 100%;\n  text-align: left;\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n.list-group-item-variant(success; @state-success-bg; @state-success-text);\n.list-group-item-variant(info; @state-info-bg; @state-info-text);\n.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);\n.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);\n\n\n// Custom content options\n//\n// Extra classes for creating well-formatted content within `.list-group-item`s.\n\n.list-group-item-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n.list-group-item-text {\n  margin-bottom: 0;\n  line-height: 1.3;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/media.less",
    "content": ".media {\n  // Proper spacing between instances of .media\n  margin-top: 15px;\n\n  &:first-child {\n    margin-top: 0;\n  }\n}\n\n.media,\n.media-body {\n  overflow: hidden;\n  zoom: 1;\n}\n\n.media-body {\n  width: 10000px;\n}\n\n.media-object {\n  display: block;\n\n  // Fix collapse in webkit from max-width: 100% and display: table-cell.\n  &.img-thumbnail {\n    max-width: none;\n  }\n}\n\n.media-right,\n.media > .pull-right {\n  padding-left: 10px;\n}\n\n.media-left,\n.media > .pull-left {\n  padding-right: 10px;\n}\n\n.media-left,\n.media-right,\n.media-body {\n  display: table-cell;\n  vertical-align: top;\n}\n\n.media-middle {\n  vertical-align: middle;\n}\n\n.media-bottom {\n  vertical-align: bottom;\n}\n\n// Reset margins on headings for tighter default spacing\n.media-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n\n// Media list variation\n//\n// Undo default ul/ol styles\n.media-list {\n  padding-left: 0;\n  list-style: none;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/alerts.less",
    "content": "// Alerts\n\n.alert-variant(@background; @border; @text-color) {\n  color: @text-color;\n  background-color: @background;\n  border-color: @border;\n\n  hr {\n    border-top-color: darken(@border, 5%);\n  }\n\n  .alert-link {\n    color: darken(@text-color, 10%);\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/background-variant.less",
    "content": "// Contextual backgrounds\n\n.bg-variant(@color) {\n  background-color: @color;\n  a&:hover,\n  a&:focus {\n    background-color: darken(@color, 10%);\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/border-radius.less",
    "content": "// Single side border-radius\n\n.border-top-radius(@radius) {\n  border-top-left-radius: @radius;\n  border-top-right-radius: @radius;\n}\n.border-right-radius(@radius) {\n  border-top-right-radius: @radius;\n  border-bottom-right-radius: @radius;\n}\n.border-bottom-radius(@radius) {\n  border-bottom-right-radius: @radius;\n  border-bottom-left-radius: @radius;\n}\n.border-left-radius(@radius) {\n  border-top-left-radius: @radius;\n  border-bottom-left-radius: @radius;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/buttons.less",
    "content": "// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n.button-variant(@color; @background; @border) {\n  color: @color;\n  background-color: @background;\n  border-color: @border;\n\n  &:focus,\n  &.focus {\n    color: @color;\n    background-color: darken(@background, 10%);\n    border-color: darken(@border, 25%);\n  }\n  &:hover {\n    color: @color;\n    background-color: darken(@background, 10%);\n    border-color: darken(@border, 12%);\n  }\n  &:active,\n  &.active,\n  .open > .dropdown-toggle& {\n    color: @color;\n    background-color: darken(@background, 10%);\n    background-image: none;\n    border-color: darken(@border, 12%);\n\n    &:hover,\n    &:focus,\n    &.focus {\n      color: @color;\n      background-color: darken(@background, 17%);\n      border-color: darken(@border, 25%);\n    }\n  }\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    &:hover,\n    &:focus,\n    &.focus {\n      background-color: @background;\n      border-color: @border;\n    }\n  }\n\n  .badge {\n    color: @background;\n    background-color: @color;\n  }\n}\n\n// Button sizes\n.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n  padding: @padding-vertical @padding-horizontal;\n  font-size: @font-size;\n  line-height: @line-height;\n  border-radius: @border-radius;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/center-block.less",
    "content": "// Center-align a block level element\n\n.center-block() {\n  display: block;\n  margin-right: auto;\n  margin-left: auto;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/clearfix.less",
    "content": "// Clearfix\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n//    contenteditable attribute is included anywhere else in the document.\n//    Otherwise it causes space to appear at the top and bottom of elements\n//    that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n//    `:before` to contain the top-margins of child elements.\n//\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n\n.clearfix() {\n  &:before,\n  &:after {\n    display: table; // 2\n    content: \" \"; // 1\n  }\n  &:after {\n    clear: both;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/forms.less",
    "content": "// Form validation states\n//\n// Used in forms.less to generate the form validation CSS for warnings, errors,\n// and successes.\n\n.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {\n  // Color the label and help text\n  .help-block,\n  .control-label,\n  .radio,\n  .checkbox,\n  .radio-inline,\n  .checkbox-inline,\n  &.radio label,\n  &.checkbox label,\n  &.radio-inline label,\n  &.checkbox-inline label  {\n    color: @text-color;\n  }\n  // Set the border and box shadow on specific inputs to match\n  .form-control {\n    border-color: @border-color;\n    .box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075)); // Redeclare so transitions work\n    &:focus {\n      border-color: darken(@border-color, 10%);\n      @shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px lighten(@border-color, 20%);\n      .box-shadow(@shadow);\n    }\n  }\n  // Set validation states also for addons\n  .input-group-addon {\n    color: @text-color;\n    background-color: @background-color;\n    border-color: @border-color;\n  }\n  // Optional feedback icon\n  .form-control-feedback {\n    color: @text-color;\n  }\n}\n\n\n// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `@input-border-focus` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n.form-control-focus(@color: @input-border-focus) {\n  @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);\n  &:focus {\n    border-color: @color;\n    outline: 0;\n    .box-shadow(~\"inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px @{color-rgba}\");\n  }\n}\n\n// Form control sizing\n//\n// Relative text size, padding, and border-radii changes for form controls. For\n// horizontal sizing, wrap controls in the predefined grid classes. `<select>`\n// element gets special love because it's special, and that's a fact!\n.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n  height: @input-height;\n  padding: @padding-vertical @padding-horizontal;\n  font-size: @font-size;\n  line-height: @line-height;\n  border-radius: @border-radius;\n\n  select& {\n    height: @input-height;\n    line-height: @input-height;\n  }\n\n  textarea&,\n  select[multiple]& {\n    height: auto;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/gradients.less",
    "content": "// stylelint-disable value-no-vendor-prefix, selector-max-id\n\n#gradient {\n\n  // Horizontal gradient, from left to right\n  //\n  // Creates two color stops, start and end, by specifying a color and position for each color stop.\n  // Color stops are not available in IE9 and below.\n  .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n    background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n    background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n    background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\", argb(@start-color), argb(@end-color))); // IE9 and down\n    background-repeat: repeat-x;\n  }\n\n  // Vertical gradient, from top to bottom\n  //\n  // Creates two color stops, start and end, by specifying a color and position for each color stop.\n  // Color stops are not available in IE9 and below.\n  .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n    background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent);  // Safari 5.1-6, Chrome 10+\n    background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent);  // Opera 12\n    background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\", argb(@start-color), argb(@end-color))); // IE9 and down\n    background-repeat: repeat-x;\n  }\n\n  .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n    background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n    background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n    background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n    background-repeat: repeat-x;\n  }\n  .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n    background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n    background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n    background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\", argb(@start-color), argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n    background-repeat: no-repeat;\n  }\n  .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n    background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n    background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n    background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\", argb(@start-color), argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n    background-repeat: no-repeat;\n  }\n  .radial(@inner-color: #555; @outer-color: #333) {\n    background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n    background-image: radial-gradient(circle, @inner-color, @outer-color);\n    background-repeat: no-repeat;\n  }\n  .striped(@color: rgba(255, 255, 255, .15); @angle: 45deg) {\n    background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n    background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n    background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/grid-framework.less",
    "content": "// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n  // Common styles for all sizes of grid columns, widths 1-12\n  .col(@index) { // initial\n    @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n    .col((@index + 1), @item);\n  }\n  .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n    @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n    .col((@index + 1), ~\"@{list}, @{item}\");\n  }\n  .col(@index, @list) when (@index > @grid-columns) { // terminal\n    @{list} {\n      position: relative;\n      // Prevent columns from collapsing when empty\n      min-height: 1px;\n      // Inner gutter via padding\n      padding-right: floor((@grid-gutter-width / 2));\n      padding-left: ceil((@grid-gutter-width / 2));\n    }\n  }\n  .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n  .col(@index) { // initial\n    @item: ~\".col-@{class}-@{index}\";\n    .col((@index + 1), @item);\n  }\n  .col(@index, @list) when (@index =< @grid-columns) { // general\n    @item: ~\".col-@{class}-@{index}\";\n    .col((@index + 1), ~\"@{list}, @{item}\");\n  }\n  .col(@index, @list) when (@index > @grid-columns) { // terminal\n    @{list} {\n      float: left;\n    }\n  }\n  .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n  .col-@{class}-@{index} {\n    width: percentage((@index / @grid-columns));\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {\n  .col-@{class}-push-@{index} {\n    left: percentage((@index / @grid-columns));\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {\n  .col-@{class}-push-0 {\n    left: auto;\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {\n  .col-@{class}-pull-@{index} {\n    right: percentage((@index / @grid-columns));\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {\n  .col-@{class}-pull-0 {\n    right: auto;\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n  .col-@{class}-offset-@{index} {\n    margin-left: percentage((@index / @grid-columns));\n  }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n  .calc-grid-column(@index, @class, @type);\n  // next iteration\n  .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n  .float-grid-columns(@class);\n  .loop-grid-columns(@grid-columns, @class, width);\n  .loop-grid-columns(@grid-columns, @class, pull);\n  .loop-grid-columns(@grid-columns, @class, push);\n  .loop-grid-columns(@grid-columns, @class, offset);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/grid.less",
    "content": "// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n// Centered container element\n.container-fixed(@gutter: @grid-gutter-width) {\n  padding-right: ceil((@gutter / 2));\n  padding-left: floor((@gutter / 2));\n  margin-right: auto;\n  margin-left: auto;\n  &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n  margin-right: floor((@gutter / -2));\n  margin-left: ceil((@gutter / -2));\n  &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n  position: relative;\n  float: left;\n  width: percentage((@columns / @grid-columns));\n  min-height: 1px;\n  padding-right: (@gutter / 2);\n  padding-left: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n  margin-left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-push(@columns) {\n  left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-pull(@columns) {\n  right: percentage((@columns / @grid-columns));\n}\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-right: (@gutter / 2);\n  padding-left: (@gutter / 2);\n\n  @media (min-width: @screen-sm-min) {\n    float: left;\n    width: percentage((@columns / @grid-columns));\n  }\n}\n.make-sm-column-offset(@columns) {\n  @media (min-width: @screen-sm-min) {\n    margin-left: percentage((@columns / @grid-columns));\n  }\n}\n.make-sm-column-push(@columns) {\n  @media (min-width: @screen-sm-min) {\n    left: percentage((@columns / @grid-columns));\n  }\n}\n.make-sm-column-pull(@columns) {\n  @media (min-width: @screen-sm-min) {\n    right: percentage((@columns / @grid-columns));\n  }\n}\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-right: (@gutter / 2);\n  padding-left: (@gutter / 2);\n\n  @media (min-width: @screen-md-min) {\n    float: left;\n    width: percentage((@columns / @grid-columns));\n  }\n}\n.make-md-column-offset(@columns) {\n  @media (min-width: @screen-md-min) {\n    margin-left: percentage((@columns / @grid-columns));\n  }\n}\n.make-md-column-push(@columns) {\n  @media (min-width: @screen-md-min) {\n    left: percentage((@columns / @grid-columns));\n  }\n}\n.make-md-column-pull(@columns) {\n  @media (min-width: @screen-md-min) {\n    right: percentage((@columns / @grid-columns));\n  }\n}\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-right: (@gutter / 2);\n  padding-left: (@gutter / 2);\n\n  @media (min-width: @screen-lg-min) {\n    float: left;\n    width: percentage((@columns / @grid-columns));\n  }\n}\n.make-lg-column-offset(@columns) {\n  @media (min-width: @screen-lg-min) {\n    margin-left: percentage((@columns / @grid-columns));\n  }\n}\n.make-lg-column-push(@columns) {\n  @media (min-width: @screen-lg-min) {\n    left: percentage((@columns / @grid-columns));\n  }\n}\n.make-lg-column-pull(@columns) {\n  @media (min-width: @screen-lg-min) {\n    right: percentage((@columns / @grid-columns));\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/hide-text.less",
    "content": "// stylelint-disable font-family-name-quotes, font-family-no-missing-generic-family-keyword\n\n// CSS image replacement\n//\n// Heads up! v3 launched with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (has been removed in v4)\n.hide-text() {\n  font: ~\"0/0\" a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n// New mixin to use as of v3.0.1\n.text-hide() {\n  .hide-text();\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/image.less",
    "content": "// stylelint-disable media-feature-name-no-vendor-prefix, media-feature-parentheses-space-inside, media-feature-name-no-unknown, indentation, at-rule-name-space-after\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n.img-responsive(@display: block) {\n  display: @display;\n  max-width: 100%; // Part 1: Set a maximum relative to the parent\n  height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size. Note that the\n// spelling of `min--moz-device-pixel-ratio` is intentional.\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n  background-image: url(\"@{file-1x}\");\n\n  @media\n  only screen and (-webkit-min-device-pixel-ratio: 2),\n  only screen and ( min--moz-device-pixel-ratio: 2),\n  only screen and ( -o-min-device-pixel-ratio: 2/1),\n  only screen and ( min-device-pixel-ratio: 2),\n  only screen and ( min-resolution: 192dpi),\n  only screen and ( min-resolution: 2dppx) {\n    background-image: url(\"@{file-2x}\");\n    background-size: @width-1x @height-1x;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/labels.less",
    "content": "// Labels\n\n.label-variant(@color) {\n  background-color: @color;\n\n  &[href] {\n    &:hover,\n    &:focus {\n      background-color: darken(@color, 10%);\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/list-group.less",
    "content": "// List Groups\n\n.list-group-item-variant(@state; @background; @color) {\n  .list-group-item-@{state} {\n    color: @color;\n    background-color: @background;\n\n    a&,\n    button& {\n      color: @color;\n\n      .list-group-item-heading {\n        color: inherit;\n      }\n\n      &:hover,\n      &:focus {\n        color: @color;\n        background-color: darken(@background, 5%);\n      }\n      &.active,\n      &.active:hover,\n      &.active:focus {\n        color: #fff;\n        background-color: @color;\n        border-color: @color;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/nav-divider.less",
    "content": "// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n.nav-divider(@color: #e5e5e5) {\n  height: 1px;\n  margin: ((@line-height-computed / 2) - 1) 0;\n  overflow: hidden;\n  background-color: @color;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/nav-vertical-align.less",
    "content": "// Navbar vertical align\n//\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.\n\n.navbar-vertical-align(@element-height) {\n  margin-top: ((@navbar-height - @element-height) / 2);\n  margin-bottom: ((@navbar-height - @element-height) / 2);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/opacity.less",
    "content": "// Opacity\n\n.opacity(@opacity) {\n  @opacity-ie: (@opacity * 100);  // IE8 filter\n  filter: ~\"alpha(opacity=@{opacity-ie})\";\n  opacity: @opacity;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/pagination.less",
    "content": "// Pagination\n\n.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n  > li {\n    > a,\n    > span {\n      padding: @padding-vertical @padding-horizontal;\n      font-size: @font-size;\n      line-height: @line-height;\n    }\n    &:first-child {\n      > a,\n      > span {\n        .border-left-radius(@border-radius);\n      }\n    }\n    &:last-child {\n      > a,\n      > span {\n        .border-right-radius(@border-radius);\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/panels.less",
    "content": "// Panels\n\n.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {\n  border-color: @border;\n\n  & > .panel-heading {\n    color: @heading-text-color;\n    background-color: @heading-bg-color;\n    border-color: @heading-border;\n\n    + .panel-collapse > .panel-body {\n      border-top-color: @border;\n    }\n    .badge {\n      color: @heading-bg-color;\n      background-color: @heading-text-color;\n    }\n  }\n  & > .panel-footer {\n    + .panel-collapse > .panel-body {\n      border-bottom-color: @border;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/progress-bar.less",
    "content": "// Progress bars\n\n.progress-bar-variant(@color) {\n  background-color: @color;\n\n  // Deprecated parent class requirement as of v3.2.0\n  .progress-striped & {\n    #gradient > .striped();\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/reset-filter.less",
    "content": "// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n  filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/reset-text.less",
    "content": ".reset-text() {\n  font-family: @font-family-base;\n  // We deliberately do NOT reset font-size.\n  font-style: normal;\n  font-weight: 400;\n  line-height: @line-height-base;\n  line-break: auto;\n  text-align: left; // Fallback for where `start` is not supported\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  word-wrap: normal;\n  white-space: normal;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/resize.less",
    "content": "// Resize anything\n\n.resizable(@direction) {\n  overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`\n  resize: @direction; // Options: horizontal, vertical, both\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/responsive-visibility.less",
    "content": "// stylelint-disable declaration-no-important\n\n.responsive-visibility() {\n  display: block !important;\n  table&  { display: table !important; }\n  tr&     { display: table-row !important; }\n  th&,\n  td&     { display: table-cell !important; }\n}\n\n.responsive-invisibility() {\n  display: none !important;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/size.less",
    "content": "// Sizing shortcuts\n\n.size(@width; @height) {\n  width: @width;\n  height: @height;\n}\n\n.square(@size) {\n  .size(@size; @size);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/tab-focus.less",
    "content": "// WebKit-style focus\n\n.tab-focus() {\n  // WebKit-specific. Other browsers will keep their default outline style.\n  // (Initially tried to also force default via `outline: initial`,\n  // but that seems to erroneously remove the outline in Firefox altogether.)\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/table-row.less",
    "content": "// Tables\n\n.table-row-variant(@state; @background) {\n  // Exact selectors below required to override `.table-striped` and prevent\n  // inheritance to nested tables.\n  .table > thead > tr,\n  .table > tbody > tr,\n  .table > tfoot > tr {\n    > td.@{state},\n    > th.@{state},\n    &.@{state} > td,\n    &.@{state} > th {\n      background-color: @background;\n    }\n  }\n\n  // Hover states for `.table-hover`\n  // Note: this is not available for cells or rows within `thead` or `tfoot`.\n  .table-hover > tbody > tr {\n    > td.@{state}:hover,\n    > th.@{state}:hover,\n    &.@{state}:hover > td,\n    &:hover > .@{state},\n    &.@{state}:hover > th {\n      background-color: darken(@background, 5%);\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/text-emphasis.less",
    "content": "// Typography\n\n.text-emphasis-variant(@color) {\n  color: @color;\n  a&:hover,\n  a&:focus {\n    color: darken(@color, 10%);\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/text-overflow.less",
    "content": "// Text overflow\n// Requires inline-block or block for proper styling\n\n.text-overflow() {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins/vendor-prefixes.less",
    "content": "// stylelint-disable indentation, property-no-vendor-prefix, selector-no-vendor-prefix\n\n// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n  -webkit-animation: @animation;\n       -o-animation: @animation;\n          animation: @animation;\n}\n.animation-name(@name) {\n  -webkit-animation-name: @name;\n          animation-name: @name;\n}\n.animation-duration(@duration) {\n  -webkit-animation-duration: @duration;\n          animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n  -webkit-animation-timing-function: @timing-function;\n          animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n  -webkit-animation-delay: @delay;\n          animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n  -webkit-animation-iteration-count: @iteration-count;\n          animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n  -webkit-animation-direction: @direction;\n          animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n  -webkit-animation-fill-mode: @fill-mode;\n          animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n  -webkit-backface-visibility: @visibility;\n     -moz-backface-visibility: @visibility;\n          backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n  -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n          box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n  -webkit-box-sizing: @boxmodel;\n     -moz-box-sizing: @boxmodel;\n          box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n  -webkit-column-count: @column-count;\n     -moz-column-count: @column-count;\n          column-count: @column-count;\n  -webkit-column-gap: @column-gap;\n     -moz-column-gap: @column-gap;\n          column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n  -webkit-hyphens: @mode;\n     -moz-hyphens: @mode;\n      -ms-hyphens: @mode; // IE10+\n       -o-hyphens: @mode;\n          hyphens: @mode;\n  word-wrap: break-word;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n  // Firefox\n  &::-moz-placeholder {\n    color: @color;\n    opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n  }\n  &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n  &::-webkit-input-placeholder  { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n  -webkit-transform: scale(@ratio);\n      -ms-transform: scale(@ratio); // IE9 only\n       -o-transform: scale(@ratio);\n          transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n  -webkit-transform: scale(@ratioX, @ratioY);\n      -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n       -o-transform: scale(@ratioX, @ratioY);\n          transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n  -webkit-transform: scaleX(@ratio);\n      -ms-transform: scaleX(@ratio); // IE9 only\n       -o-transform: scaleX(@ratio);\n          transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n  -webkit-transform: scaleY(@ratio);\n      -ms-transform: scaleY(@ratio); // IE9 only\n       -o-transform: scaleY(@ratio);\n          transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n  -webkit-transform: skewX(@x) skewY(@y);\n      -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n       -o-transform: skewX(@x) skewY(@y);\n          transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n  -webkit-transform: translate(@x, @y);\n      -ms-transform: translate(@x, @y); // IE9 only\n       -o-transform: translate(@x, @y);\n          transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n  -webkit-transform: translate3d(@x, @y, @z);\n          transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n  -webkit-transform: rotate(@degrees);\n      -ms-transform: rotate(@degrees); // IE9 only\n       -o-transform: rotate(@degrees);\n          transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n  -webkit-transform: rotateX(@degrees);\n      -ms-transform: rotateX(@degrees); // IE9 only\n       -o-transform: rotateX(@degrees);\n          transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n  -webkit-transform: rotateY(@degrees);\n      -ms-transform: rotateY(@degrees); // IE9 only\n       -o-transform: rotateY(@degrees);\n          transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n  -webkit-perspective: @perspective;\n     -moz-perspective: @perspective;\n          perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n  -webkit-perspective-origin: @perspective;\n     -moz-perspective-origin: @perspective;\n          perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n  -webkit-transform-origin: @origin;\n     -moz-transform-origin: @origin;\n      -ms-transform-origin: @origin; // IE9 only\n          transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n  -webkit-transition: @transition;\n       -o-transition: @transition;\n          transition: @transition;\n}\n.transition-property(@transition-property) {\n  -webkit-transition-property: @transition-property;\n          transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n  -webkit-transition-delay: @transition-delay;\n          transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n  -webkit-transition-duration: @transition-duration;\n          transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n  -webkit-transition-timing-function: @timing-function;\n          transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n  -webkit-transition: -webkit-transform @transition;\n     -moz-transition: -moz-transform @transition;\n       -o-transition: -o-transform @transition;\n          transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n  -webkit-user-select: @select;\n     -moz-user-select: @select;\n      -ms-user-select: @select; // IE10+\n          user-select: @select;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/mixins.less",
    "content": "// Mixins\n// --------------------------------------------------\n\n// Utilities\n@import \"mixins/hide-text.less\";\n@import \"mixins/opacity.less\";\n@import \"mixins/image.less\";\n@import \"mixins/labels.less\";\n@import \"mixins/reset-filter.less\";\n@import \"mixins/resize.less\";\n@import \"mixins/responsive-visibility.less\";\n@import \"mixins/size.less\";\n@import \"mixins/tab-focus.less\";\n@import \"mixins/reset-text.less\";\n@import \"mixins/text-emphasis.less\";\n@import \"mixins/text-overflow.less\";\n@import \"mixins/vendor-prefixes.less\";\n\n// Components\n@import \"mixins/alerts.less\";\n@import \"mixins/buttons.less\";\n@import \"mixins/panels.less\";\n@import \"mixins/pagination.less\";\n@import \"mixins/list-group.less\";\n@import \"mixins/nav-divider.less\";\n@import \"mixins/forms.less\";\n@import \"mixins/progress-bar.less\";\n@import \"mixins/table-row.less\";\n\n// Skins\n@import \"mixins/background-variant.less\";\n@import \"mixins/border-radius.less\";\n@import \"mixins/gradients.less\";\n\n// Layout\n@import \"mixins/clearfix.less\";\n@import \"mixins/center-block.less\";\n@import \"mixins/nav-vertical-align.less\";\n@import \"mixins/grid-framework.less\";\n@import \"mixins/grid.less\";\n"
  },
  {
    "path": "dist/lib/bootstrap3/modals.less",
    "content": "//\n// Modals\n// --------------------------------------------------\n\n// .modal-open      - body class for killing the scroll\n// .modal           - container to scroll within\n// .modal-dialog    - positioning shell for the actual modal\n// .modal-content   - actual modal w/ bg and corners and shit\n\n// Kill the scroll on the body\n.modal-open {\n  overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: @zindex-modal;\n  display: none;\n  overflow: hidden;\n  -webkit-overflow-scrolling: touch;\n\n  // Prevent Chrome on Windows from adding a focus outline. For details, see\n  // https://github.com/twbs/bootstrap/pull/10951.\n  outline: 0;\n\n  // When fading in the modal, animate it to slide down\n  &.fade .modal-dialog {\n    .translate(0, -25%);\n    .transition-transform(~\"0.3s ease-out\");\n  }\n  &.in .modal-dialog { .translate(0, 0); }\n}\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 10px;\n}\n\n// Actual modal\n.modal-content {\n  position: relative;\n  background-color: @modal-content-bg;\n  background-clip: padding-box;\n  border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)\n  border: 1px solid @modal-content-border-color;\n  border-radius: @border-radius-large;\n  .box-shadow(0 3px 9px rgba(0, 0, 0, .5));\n  // Remove focus outline from opened modal\n  outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: @zindex-modal-background;\n  background-color: @modal-backdrop-bg;\n  // Fade for backdrop\n  &.fade { .opacity(0); }\n  &.in { .opacity(@modal-backdrop-opacity); }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n  padding: @modal-title-padding;\n  border-bottom: 1px solid @modal-header-border-color;\n  &:extend(.clearfix all);\n}\n// Close icon\n.modal-header .close {\n  margin-top: -2px;\n}\n\n// Title text within header\n.modal-title {\n  margin: 0;\n  line-height: @modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n  position: relative;\n  padding: @modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n  padding: @modal-inner-padding;\n  text-align: right; // right align buttons\n  border-top: 1px solid @modal-footer-border-color;\n  &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons\n\n  // Properly space out buttons\n  .btn + .btn {\n    margin-bottom: 0; // account for input[type=\"submit\"] which gets the bottom margin like all other inputs\n    margin-left: 5px;\n  }\n  // but override that for button groups\n  .btn-group .btn + .btn {\n    margin-left: -1px;\n  }\n  // and override it for block buttons as well\n  .btn-block + .btn-block {\n    margin-left: 0;\n  }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n// Scale up the modal\n@media (min-width: @screen-sm-min) {\n  // Automatically set modal's width for larger viewports\n  .modal-dialog {\n    width: @modal-md;\n    margin: 30px auto;\n  }\n  .modal-content {\n    .box-shadow(0 5px 15px rgba(0, 0, 0, .5));\n  }\n\n  // Modal sizes\n  .modal-sm { width: @modal-sm; }\n}\n\n@media (min-width: @screen-md-min) {\n  .modal-lg { width: @modal-lg; }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/navbar.less",
    "content": "// stylelint-disable selector-max-type, selector-max-compound-selectors, selector-max-combinators, selector-max-class, declaration-no-important, selector-no-qualifying-type\n\n//\n// Navbars\n// --------------------------------------------------\n\n\n// Wrapper and base class\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n  position: relative;\n  min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)\n  margin-bottom: @navbar-margin-bottom;\n  border: 1px solid transparent;\n\n  // Prevent floats from breaking the navbar\n  &:extend(.clearfix all);\n\n  @media (min-width: @grid-float-breakpoint) {\n    border-radius: @navbar-border-radius;\n  }\n}\n\n\n// Navbar heading\n//\n// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy\n// styling of responsive aspects.\n\n.navbar-header {\n  &:extend(.clearfix all);\n\n  @media (min-width: @grid-float-breakpoint) {\n    float: left;\n  }\n}\n\n\n// Navbar collapse (body)\n//\n// Group your navbar content into this for easy collapsing and expanding across\n// various device sizes. By default, this content is collapsed when <768px, but\n// will expand past that for a horizontal display.\n//\n// To start (on mobile devices) the navbar links, forms, and buttons are stacked\n// vertically and include a `max-height` to overflow in case you have too much\n// content for the user's viewport.\n\n.navbar-collapse {\n  padding-right: @navbar-padding-horizontal;\n  padding-left: @navbar-padding-horizontal;\n  overflow-x: visible;\n  border-top: 1px solid transparent;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);\n  &:extend(.clearfix all);\n  -webkit-overflow-scrolling: touch;\n\n  &.in {\n    overflow-y: auto;\n  }\n\n  @media (min-width: @grid-float-breakpoint) {\n    width: auto;\n    border-top: 0;\n    box-shadow: none;\n\n    &.collapse {\n      display: block !important;\n      height: auto !important;\n      padding-bottom: 0; // Override default setting\n      overflow: visible !important;\n    }\n\n    &.in {\n      overflow-y: visible;\n    }\n\n    // Undo the collapse side padding for navbars with containers to ensure\n    // alignment of right-aligned contents.\n    .navbar-fixed-top &,\n    .navbar-static-top &,\n    .navbar-fixed-bottom & {\n      padding-right: 0;\n      padding-left: 0;\n    }\n  }\n}\n\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  .navbar-collapse {\n    max-height: @navbar-collapse-max-height;\n\n    @media (max-device-width: @screen-xs-min) and (orientation: landscape) {\n      max-height: 200px;\n    }\n  }\n\n  // Fix the top/bottom navbars when screen real estate supports it\n  position: fixed;\n  right: 0;\n  left: 0;\n  z-index: @zindex-navbar-fixed;\n\n  // Undo the rounded corners\n  @media (min-width: @grid-float-breakpoint) {\n    border-radius: 0;\n  }\n}\n\n.navbar-fixed-top {\n  top: 0;\n  border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n  bottom: 0;\n  margin-bottom: 0; // override .navbar defaults\n  border-width: 1px 0 0;\n}\n\n\n// Both navbar header and collapse\n//\n// When a container is present, change the behavior of the header and collapse.\n\n.container,\n.container-fluid {\n  > .navbar-header,\n  > .navbar-collapse {\n    margin-right: -@navbar-padding-horizontal;\n    margin-left: -@navbar-padding-horizontal;\n\n    @media (min-width: @grid-float-breakpoint) {\n      margin-right: 0;\n      margin-left: 0;\n    }\n  }\n}\n\n\n//\n// Navbar alignment options\n//\n// Display the navbar across the entirety of the page or fixed it to the top or\n// bottom of the page.\n\n// Static top (unfixed, but 100% wide) navbar\n.navbar-static-top {\n  z-index: @zindex-navbar;\n  border-width: 0 0 1px;\n\n  @media (min-width: @grid-float-breakpoint) {\n    border-radius: 0;\n  }\n}\n\n\n// Brand/project name\n\n.navbar-brand {\n  float: left;\n  height: @navbar-height;\n  padding: @navbar-padding-vertical @navbar-padding-horizontal;\n  font-size: @font-size-large;\n  line-height: @line-height-computed;\n\n  &:hover,\n  &:focus {\n    text-decoration: none;\n  }\n\n  > img {\n    display: block;\n  }\n\n  @media (min-width: @grid-float-breakpoint) {\n    .navbar > .container &,\n    .navbar > .container-fluid & {\n      margin-left: -@navbar-padding-horizontal;\n    }\n  }\n}\n\n\n// Navbar toggle\n//\n// Custom button for toggling the `.navbar-collapse`, powered by the collapse\n// JavaScript plugin.\n\n.navbar-toggle {\n  position: relative;\n  float: right;\n  padding: 9px 10px;\n  margin-right: @navbar-padding-horizontal;\n  .navbar-vertical-align(34px);\n  background-color: transparent;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid transparent;\n  border-radius: @border-radius-base;\n\n  // We remove the `outline` here, but later compensate by attaching `:hover`\n  // styles to `:focus`.\n  &:focus {\n    outline: 0;\n  }\n\n  // Bars\n  .icon-bar {\n    display: block;\n    width: 22px;\n    height: 2px;\n    border-radius: 1px;\n  }\n  .icon-bar + .icon-bar {\n    margin-top: 4px;\n  }\n\n  @media (min-width: @grid-float-breakpoint) {\n    display: none;\n  }\n}\n\n\n// Navbar nav links\n//\n// Builds on top of the `.nav` components with its own modifier class to make\n// the nav the full height of the horizontal nav (above 768px).\n\n.navbar-nav {\n  margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;\n\n  > li > a {\n    padding-top: 10px;\n    padding-bottom: 10px;\n    line-height: @line-height-computed;\n  }\n\n  @media (max-width: @grid-float-breakpoint-max) {\n    // Dropdowns get custom display when collapsed\n    .open .dropdown-menu {\n      position: static;\n      float: none;\n      width: auto;\n      margin-top: 0;\n      background-color: transparent;\n      border: 0;\n      box-shadow: none;\n      > li > a,\n      .dropdown-header {\n        padding: 5px 15px 5px 25px;\n      }\n      > li > a {\n        line-height: @line-height-computed;\n        &:hover,\n        &:focus {\n          background-image: none;\n        }\n      }\n    }\n  }\n\n  // Uncollapse the nav\n  @media (min-width: @grid-float-breakpoint) {\n    float: left;\n    margin: 0;\n\n    > li {\n      float: left;\n      > a {\n        padding-top: @navbar-padding-vertical;\n        padding-bottom: @navbar-padding-vertical;\n      }\n    }\n  }\n}\n\n\n// Navbar form\n//\n// Extension of the `.form-inline` with some extra flavor for optimum display in\n// our navbars.\n\n.navbar-form {\n  padding: 10px @navbar-padding-horizontal;\n  margin-right: -@navbar-padding-horizontal;\n  margin-left: -@navbar-padding-horizontal;\n  border-top: 1px solid transparent;\n  border-bottom: 1px solid transparent;\n  @shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);\n  .box-shadow(@shadow);\n\n  // Mixin behavior for optimum display\n  .form-inline();\n\n  .form-group {\n    @media (max-width: @grid-float-breakpoint-max) {\n      margin-bottom: 5px;\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  // Vertically center in expanded, horizontal navbar\n  .navbar-vertical-align(@input-height-base);\n\n  // Undo 100% width for pull classes\n  @media (min-width: @grid-float-breakpoint) {\n    width: auto;\n    padding-top: 0;\n    padding-bottom: 0;\n    margin-right: 0;\n    margin-left: 0;\n    border: 0;\n    .box-shadow(none);\n  }\n}\n\n\n// Dropdown menus\n\n// Menu position and menu carets\n.navbar-nav > li > .dropdown-menu {\n  margin-top: 0;\n  .border-top-radius(0);\n}\n// Menu position and menu caret support for dropups via extra dropup class\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n  margin-bottom: 0;\n  .border-top-radius(@navbar-border-radius);\n  .border-bottom-radius(0);\n}\n\n\n// Buttons in navbars\n//\n// Vertically center a button within a navbar (when *not* in a form).\n\n.navbar-btn {\n  .navbar-vertical-align(@input-height-base);\n\n  &.btn-sm {\n    .navbar-vertical-align(@input-height-small);\n  }\n  &.btn-xs {\n    .navbar-vertical-align(22);\n  }\n}\n\n\n// Text in navbars\n//\n// Add a class to make any element properly align itself vertically within the navbars.\n\n.navbar-text {\n  .navbar-vertical-align(@line-height-computed);\n\n  @media (min-width: @grid-float-breakpoint) {\n    float: left;\n    margin-right: @navbar-padding-horizontal;\n    margin-left: @navbar-padding-horizontal;\n  }\n}\n\n\n// Component alignment\n//\n// Repurpose the pull utilities as their own navbar utilities to avoid specificity\n// issues with parents and chaining. Only do this when the navbar is uncollapsed\n// though so that navbar contents properly stack and align in mobile.\n//\n// Declared after the navbar components to ensure more specificity on the margins.\n\n@media (min-width: @grid-float-breakpoint) {\n  .navbar-left  { .pull-left(); }\n  .navbar-right {\n    .pull-right();\n    margin-right: -@navbar-padding-horizontal;\n\n    ~ .navbar-right {\n      margin-right: 0;\n    }\n  }\n}\n\n\n// Alternate navbars\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n  background-color: @navbar-default-bg;\n  border-color: @navbar-default-border;\n\n  .navbar-brand {\n    color: @navbar-default-brand-color;\n    &:hover,\n    &:focus {\n      color: @navbar-default-brand-hover-color;\n      background-color: @navbar-default-brand-hover-bg;\n    }\n  }\n\n  .navbar-text {\n    color: @navbar-default-color;\n  }\n\n  .navbar-nav {\n    > li > a {\n      color: @navbar-default-link-color;\n\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-hover-color;\n        background-color: @navbar-default-link-hover-bg;\n      }\n    }\n    > .active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-active-color;\n        background-color: @navbar-default-link-active-bg;\n      }\n    }\n    > .disabled > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-disabled-color;\n        background-color: @navbar-default-link-disabled-bg;\n      }\n    }\n\n    // Dropdown menu items\n    // Remove background color from open dropdown\n    > .open > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-active-color;\n        background-color: @navbar-default-link-active-bg;\n      }\n    }\n\n    @media (max-width: @grid-float-breakpoint-max) {\n      // Dropdowns get custom display when collapsed\n      .open .dropdown-menu {\n        > li > a {\n          color: @navbar-default-link-color;\n          &:hover,\n          &:focus {\n            color: @navbar-default-link-hover-color;\n            background-color: @navbar-default-link-hover-bg;\n          }\n        }\n        > .active > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-default-link-active-color;\n            background-color: @navbar-default-link-active-bg;\n          }\n        }\n        > .disabled > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-default-link-disabled-color;\n            background-color: @navbar-default-link-disabled-bg;\n          }\n        }\n      }\n    }\n  }\n\n  .navbar-toggle {\n    border-color: @navbar-default-toggle-border-color;\n    &:hover,\n    &:focus {\n      background-color: @navbar-default-toggle-hover-bg;\n    }\n    .icon-bar {\n      background-color: @navbar-default-toggle-icon-bar-bg;\n    }\n  }\n\n  .navbar-collapse,\n  .navbar-form {\n    border-color: @navbar-default-border;\n  }\n\n\n  // Links in navbars\n  //\n  // Add a class to ensure links outside the navbar nav are colored correctly.\n\n  .navbar-link {\n    color: @navbar-default-link-color;\n    &:hover {\n      color: @navbar-default-link-hover-color;\n    }\n  }\n\n  .btn-link {\n    color: @navbar-default-link-color;\n    &:hover,\n    &:focus {\n      color: @navbar-default-link-hover-color;\n    }\n    &[disabled],\n    fieldset[disabled] & {\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-disabled-color;\n      }\n    }\n  }\n}\n\n// Inverse navbar\n\n.navbar-inverse {\n  background-color: @navbar-inverse-bg;\n  border-color: @navbar-inverse-border;\n\n  .navbar-brand {\n    color: @navbar-inverse-brand-color;\n    &:hover,\n    &:focus {\n      color: @navbar-inverse-brand-hover-color;\n      background-color: @navbar-inverse-brand-hover-bg;\n    }\n  }\n\n  .navbar-text {\n    color: @navbar-inverse-color;\n  }\n\n  .navbar-nav {\n    > li > a {\n      color: @navbar-inverse-link-color;\n\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-hover-color;\n        background-color: @navbar-inverse-link-hover-bg;\n      }\n    }\n    > .active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-active-color;\n        background-color: @navbar-inverse-link-active-bg;\n      }\n    }\n    > .disabled > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-disabled-color;\n        background-color: @navbar-inverse-link-disabled-bg;\n      }\n    }\n\n    // Dropdowns\n    > .open > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-active-color;\n        background-color: @navbar-inverse-link-active-bg;\n      }\n    }\n\n    @media (max-width: @grid-float-breakpoint-max) {\n      // Dropdowns get custom display\n      .open .dropdown-menu {\n        > .dropdown-header {\n          border-color: @navbar-inverse-border;\n        }\n        .divider {\n          background-color: @navbar-inverse-border;\n        }\n        > li > a {\n          color: @navbar-inverse-link-color;\n          &:hover,\n          &:focus {\n            color: @navbar-inverse-link-hover-color;\n            background-color: @navbar-inverse-link-hover-bg;\n          }\n        }\n        > .active > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-inverse-link-active-color;\n            background-color: @navbar-inverse-link-active-bg;\n          }\n        }\n        > .disabled > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-inverse-link-disabled-color;\n            background-color: @navbar-inverse-link-disabled-bg;\n          }\n        }\n      }\n    }\n  }\n\n  // Darken the responsive nav toggle\n  .navbar-toggle {\n    border-color: @navbar-inverse-toggle-border-color;\n    &:hover,\n    &:focus {\n      background-color: @navbar-inverse-toggle-hover-bg;\n    }\n    .icon-bar {\n      background-color: @navbar-inverse-toggle-icon-bar-bg;\n    }\n  }\n\n  .navbar-collapse,\n  .navbar-form {\n    border-color: darken(@navbar-inverse-bg, 7%);\n  }\n\n  .navbar-link {\n    color: @navbar-inverse-link-color;\n    &:hover {\n      color: @navbar-inverse-link-hover-color;\n    }\n  }\n\n  .btn-link {\n    color: @navbar-inverse-link-color;\n    &:hover,\n    &:focus {\n      color: @navbar-inverse-link-hover-color;\n    }\n    &[disabled],\n    fieldset[disabled] & {\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-disabled-color;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/navs.less",
    "content": "// stylelint-disable selector-no-qualifying-type, selector-max-type\n\n//\n// Navs\n// --------------------------------------------------\n\n\n// Base class\n// --------------------------------------------------\n\n.nav {\n  padding-left: 0; // Override default ul/ol\n  margin-bottom: 0;\n  list-style: none;\n  &:extend(.clearfix all);\n\n  > li {\n    position: relative;\n    display: block;\n\n    > a {\n      position: relative;\n      display: block;\n      padding: @nav-link-padding;\n      &:hover,\n      &:focus {\n        text-decoration: none;\n        background-color: @nav-link-hover-bg;\n      }\n    }\n\n    // Disabled state sets text to gray and nukes hover/tab effects\n    &.disabled > a {\n      color: @nav-disabled-link-color;\n\n      &:hover,\n      &:focus {\n        color: @nav-disabled-link-hover-color;\n        text-decoration: none;\n        cursor: @cursor-disabled;\n        background-color: transparent;\n      }\n    }\n  }\n\n  // Open dropdowns\n  .open > a {\n    &,\n    &:hover,\n    &:focus {\n      background-color: @nav-link-hover-bg;\n      border-color: @link-color;\n    }\n  }\n\n  // Nav dividers (deprecated with v3.0.1)\n  //\n  // This should have been removed in v3 with the dropping of `.nav-list`, but\n  // we missed it. We don't currently support this anywhere, but in the interest\n  // of maintaining backward compatibility in case you use it, it's deprecated.\n  .nav-divider {\n    .nav-divider();\n  }\n\n  // Prevent IE8 from misplacing imgs\n  //\n  // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989\n  > li > a > img {\n    max-width: none;\n  }\n}\n\n\n// Tabs\n// -------------------------\n\n// Give the tabs something to sit on\n.nav-tabs {\n  border-bottom: 1px solid @nav-tabs-border-color;\n  > li {\n    float: left;\n    // Make the list-items overlay the bottom border\n    margin-bottom: -1px;\n\n    // Actual tabs (as links)\n    > a {\n      margin-right: 2px;\n      line-height: @line-height-base;\n      border: 1px solid transparent;\n      border-radius: @border-radius-base @border-radius-base 0 0;\n      &:hover {\n        border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color;\n      }\n    }\n\n    // Active state, and its :hover to override normal :hover\n    &.active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @nav-tabs-active-link-hover-color;\n        cursor: default;\n        background-color: @nav-tabs-active-link-hover-bg;\n        border: 1px solid @nav-tabs-active-link-hover-border-color;\n        border-bottom-color: transparent;\n      }\n    }\n  }\n  // pulling this in mainly for less shorthand\n  &.nav-justified {\n    .nav-justified();\n    .nav-tabs-justified();\n  }\n}\n\n\n// Pills\n// -------------------------\n.nav-pills {\n  > li {\n    float: left;\n\n    // Links rendered as pills\n    > a {\n      border-radius: @nav-pills-border-radius;\n    }\n    + li {\n      margin-left: 2px;\n    }\n\n    // Active state\n    &.active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @nav-pills-active-link-hover-color;\n        background-color: @nav-pills-active-link-hover-bg;\n      }\n    }\n  }\n}\n\n\n// Stacked pills\n.nav-stacked {\n  > li {\n    float: none;\n    + li {\n      margin-top: 2px;\n      margin-left: 0; // no need for this gap between nav items\n    }\n  }\n}\n\n\n// Nav variations\n// --------------------------------------------------\n\n// Justified nav links\n// -------------------------\n\n.nav-justified {\n  width: 100%;\n\n  > li {\n    float: none;\n    > a {\n      margin-bottom: 5px;\n      text-align: center;\n    }\n  }\n\n  > .dropdown .dropdown-menu {\n    top: auto;\n    left: auto;\n  }\n\n  @media (min-width: @screen-sm-min) {\n    > li {\n      display: table-cell;\n      width: 1%;\n      > a {\n        margin-bottom: 0;\n      }\n    }\n  }\n}\n\n// Move borders to anchors instead of bottom of list\n//\n// Mixin for adding on top the shared `.nav-justified` styles for our tabs\n.nav-tabs-justified {\n  border-bottom: 0;\n\n  > li > a {\n    // Override margin from .nav-tabs\n    margin-right: 0;\n    border-radius: @border-radius-base;\n  }\n\n  > .active > a,\n  > .active > a:hover,\n  > .active > a:focus {\n    border: 1px solid @nav-tabs-justified-link-border-color;\n  }\n\n  @media (min-width: @screen-sm-min) {\n    > li > a {\n      border-bottom: 1px solid @nav-tabs-justified-link-border-color;\n      border-radius: @border-radius-base @border-radius-base 0 0;\n    }\n    > .active > a,\n    > .active > a:hover,\n    > .active > a:focus {\n      border-bottom-color: @nav-tabs-justified-active-link-border-color;\n    }\n  }\n}\n\n\n// Tabbable tabs\n// -------------------------\n\n// Hide tabbable panes to start, show them when `.active`\n.tab-content {\n  > .tab-pane {\n    display: none;\n  }\n  > .active {\n    display: block;\n  }\n}\n\n\n// Dropdowns\n// -------------------------\n\n// Specific dropdowns\n.nav-tabs .dropdown-menu {\n  // make dropdown border overlap tab border\n  margin-top: -1px;\n  // Remove the top rounded corners here since there is a hard edge above the menu\n  .border-top-radius(0);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/normalize.less",
    "content": "// stylelint-disable\n\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS and IE text size adjust after device orientation change,\n//    without disabling user zoom.\n//\n\nhtml {\n  font-family: sans-serif; // 1\n  -ms-text-size-adjust: 100%; // 2\n  -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n  margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined for any HTML5 element in IE 8/9.\n// Correct `block` display not defined for `details` or `summary` in IE 10/11\n// and Firefox.\n// Correct `block` display not defined for `main` in IE 11.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n  display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n  display: inline-block; // 1\n  vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n  display: none;\n  height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9/10.\n// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n  display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n  background-color: transparent;\n}\n\n//\n// Improve readability of focused elements when they are also in an\n// active/hover state.\n//\n\na:active,\na:hover {\n  outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// 1. Remove the bottom border in Chrome 57- and Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n//\n\nabbr[title] {\n  border-bottom: none; // 1\n  text-decoration: underline; // 2\n  text-decoration: underline dotted; // 2\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n//\n\nb,\nstrong {\n  font-weight: bold;\n}\n\n//\n// Address styling not present in Safari and Chrome.\n//\n\ndfn {\n  font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari, and Chrome.\n//\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n  background: #ff0;\n  color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n  font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\n\nsup {\n  top: -0.5em;\n}\n\nsub {\n  bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9/10.\n//\n\nimg {\n  border: 0;\n}\n\n//\n// Correct overflow not hidden in IE 9/10/11.\n//\n\nsvg:not(:root) {\n  overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari.\n//\n\nfigure {\n  margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n  overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n//    Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  color: inherit; // 1\n  font: inherit; // 2\n  margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10/11.\n//\n\nbutton {\n  overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n  text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n//    and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n//    `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  -webkit-appearance: button; // 2\n  cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n  cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  border: 0;\n  padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n  line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n  box-sizing: border-box; // 1\n  padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n//\n\ninput[type=\"search\"] {\n  -webkit-appearance: textfield; // 1\n  box-sizing: content-box; //2\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n  border: 1px solid #c0c0c0;\n  margin: 0 2px;\n  padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9/10/11.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n  border: 0; // 1\n  padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9/10/11.\n//\n\ntextarea {\n  overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n  font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\ntd,\nth {\n  padding: 0;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/pager.less",
    "content": "//\n// Pager pagination\n// --------------------------------------------------\n\n\n.pager {\n  padding-left: 0;\n  margin: @line-height-computed 0;\n  text-align: center;\n  list-style: none;\n  &:extend(.clearfix all);\n  li {\n    display: inline;\n    > a,\n    > span {\n      display: inline-block;\n      padding: 5px 14px;\n      background-color: @pager-bg;\n      border: 1px solid @pager-border;\n      border-radius: @pager-border-radius;\n    }\n\n    > a:hover,\n    > a:focus {\n      text-decoration: none;\n      background-color: @pager-hover-bg;\n    }\n  }\n\n  .next {\n    > a,\n    > span {\n      float: right;\n    }\n  }\n\n  .previous {\n    > a,\n    > span {\n      float: left;\n    }\n  }\n\n  .disabled {\n    > a,\n    > a:hover,\n    > a:focus,\n    > span {\n      color: @pager-disabled-color;\n      cursor: @cursor-disabled;\n      background-color: @pager-bg;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/pagination.less",
    "content": "//\n// Pagination (multiple pages)\n// --------------------------------------------------\n.pagination {\n  display: inline-block;\n  padding-left: 0;\n  margin: @line-height-computed 0;\n  border-radius: @border-radius-base;\n\n  > li {\n    display: inline; // Remove list-style and block-level defaults\n    > a,\n    > span {\n      position: relative;\n      float: left; // Collapse white-space\n      padding: @padding-base-vertical @padding-base-horizontal;\n      margin-left: -1px;\n      line-height: @line-height-base;\n      color: @pagination-color;\n      text-decoration: none;\n      background-color: @pagination-bg;\n      border: 1px solid @pagination-border;\n\n      &:hover,\n      &:focus {\n        z-index: 2;\n        color: @pagination-hover-color;\n        background-color: @pagination-hover-bg;\n        border-color: @pagination-hover-border;\n      }\n    }\n    &:first-child {\n      > a,\n      > span {\n        margin-left: 0;\n        .border-left-radius(@border-radius-base);\n      }\n    }\n    &:last-child {\n      > a,\n      > span {\n        .border-right-radius(@border-radius-base);\n      }\n    }\n  }\n\n  > .active > a,\n  > .active > span {\n    &,\n    &:hover,\n    &:focus {\n      z-index: 3;\n      color: @pagination-active-color;\n      cursor: default;\n      background-color: @pagination-active-bg;\n      border-color: @pagination-active-border;\n    }\n  }\n\n  > .disabled {\n    > span,\n    > span:hover,\n    > span:focus,\n    > a,\n    > a:hover,\n    > a:focus {\n      color: @pagination-disabled-color;\n      cursor: @cursor-disabled;\n      background-color: @pagination-disabled-bg;\n      border-color: @pagination-disabled-border;\n    }\n  }\n}\n\n// Sizing\n// --------------------------------------------------\n\n// Large\n.pagination-lg {\n  .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);\n}\n\n// Small\n.pagination-sm {\n  .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/panels.less",
    "content": "// stylelint-disable selector-max-type, selector-max-compound-selectors, selector-max-combinators, no-duplicate-selectors\n\n//\n// Panels\n// --------------------------------------------------\n\n\n// Base class\n.panel {\n  margin-bottom: @line-height-computed;\n  background-color: @panel-bg;\n  border: 1px solid transparent;\n  border-radius: @panel-border-radius;\n  .box-shadow(0 1px 1px rgba(0, 0, 0, .05));\n}\n\n// Panel contents\n.panel-body {\n  padding: @panel-body-padding;\n  &:extend(.clearfix all);\n}\n\n// Optional heading\n.panel-heading {\n  padding: @panel-heading-padding;\n  border-bottom: 1px solid transparent;\n  .border-top-radius((@panel-border-radius - 1));\n\n  > .dropdown .dropdown-toggle {\n    color: inherit;\n  }\n}\n\n// Within heading, strip any `h*` tag of its default margins for spacing.\n.panel-title {\n  margin-top: 0;\n  margin-bottom: 0;\n  font-size: ceil((@font-size-base * 1.125));\n  color: inherit;\n\n  > a,\n  > small,\n  > .small,\n  > small > a,\n  > .small > a {\n    color: inherit;\n  }\n}\n\n// Optional footer (stays gray in every modifier class)\n.panel-footer {\n  padding: @panel-footer-padding;\n  background-color: @panel-footer-bg;\n  border-top: 1px solid @panel-inner-border;\n  .border-bottom-radius((@panel-border-radius - 1));\n}\n\n\n// List groups in panels\n//\n// By default, space out list group content from panel headings to account for\n// any kind of custom content between the two.\n\n.panel {\n  > .list-group,\n  > .panel-collapse > .list-group {\n    margin-bottom: 0;\n\n    .list-group-item {\n      border-width: 1px 0;\n      border-radius: 0;\n    }\n\n    // Add border top radius for first one\n    &:first-child {\n      .list-group-item:first-child {\n        border-top: 0;\n        .border-top-radius((@panel-border-radius - 1));\n      }\n    }\n\n    // Add border bottom radius for last one\n    &:last-child {\n      .list-group-item:last-child {\n        border-bottom: 0;\n        .border-bottom-radius((@panel-border-radius - 1));\n      }\n    }\n  }\n  > .panel-heading + .panel-collapse > .list-group {\n    .list-group-item:first-child {\n      .border-top-radius(0);\n    }\n  }\n}\n// Collapse space between when there's no additional content.\n.panel-heading + .list-group {\n  .list-group-item:first-child {\n    border-top-width: 0;\n  }\n}\n.list-group + .panel-footer {\n  border-top-width: 0;\n}\n\n// Tables in panels\n//\n// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and\n// watch it go full width.\n\n.panel {\n  > .table,\n  > .table-responsive > .table,\n  > .panel-collapse > .table {\n    margin-bottom: 0;\n\n    caption {\n      padding-right: @panel-body-padding;\n      padding-left: @panel-body-padding;\n    }\n  }\n  // Add border top radius for first one\n  > .table:first-child,\n  > .table-responsive:first-child > .table:first-child {\n    .border-top-radius((@panel-border-radius - 1));\n\n    > thead:first-child,\n    > tbody:first-child {\n      > tr:first-child {\n        border-top-left-radius: (@panel-border-radius - 1);\n        border-top-right-radius: (@panel-border-radius - 1);\n\n        td:first-child,\n        th:first-child {\n          border-top-left-radius: (@panel-border-radius - 1);\n        }\n        td:last-child,\n        th:last-child {\n          border-top-right-radius: (@panel-border-radius - 1);\n        }\n      }\n    }\n  }\n  // Add border bottom radius for last one\n  > .table:last-child,\n  > .table-responsive:last-child > .table:last-child {\n    .border-bottom-radius((@panel-border-radius - 1));\n\n    > tbody:last-child,\n    > tfoot:last-child {\n      > tr:last-child {\n        border-bottom-right-radius: (@panel-border-radius - 1);\n        border-bottom-left-radius: (@panel-border-radius - 1);\n\n        td:first-child,\n        th:first-child {\n          border-bottom-left-radius: (@panel-border-radius - 1);\n        }\n        td:last-child,\n        th:last-child {\n          border-bottom-right-radius: (@panel-border-radius - 1);\n        }\n      }\n    }\n  }\n  > .panel-body + .table,\n  > .panel-body + .table-responsive,\n  > .table + .panel-body,\n  > .table-responsive + .panel-body {\n    border-top: 1px solid @table-border-color;\n  }\n  > .table > tbody:first-child > tr:first-child th,\n  > .table > tbody:first-child > tr:first-child td {\n    border-top: 0;\n  }\n  > .table-bordered,\n  > .table-responsive > .table-bordered {\n    border: 0;\n    > thead,\n    > tbody,\n    > tfoot {\n      > tr {\n        > th:first-child,\n        > td:first-child {\n          border-left: 0;\n        }\n        > th:last-child,\n        > td:last-child {\n          border-right: 0;\n        }\n      }\n    }\n    > thead,\n    > tbody {\n      > tr:first-child {\n        > td,\n        > th {\n          border-bottom: 0;\n        }\n      }\n    }\n    > tbody,\n    > tfoot {\n      > tr:last-child {\n        > td,\n        > th {\n          border-bottom: 0;\n        }\n      }\n    }\n  }\n  > .table-responsive {\n    margin-bottom: 0;\n    border: 0;\n  }\n}\n\n\n// Collapsible panels (aka, accordion)\n//\n// Wrap a series of panels in `.panel-group` to turn them into an accordion with\n// the help of our collapse JavaScript plugin.\n\n.panel-group {\n  margin-bottom: @line-height-computed;\n\n  // Tighten up margin so it's only between panels\n  .panel {\n    margin-bottom: 0;\n    border-radius: @panel-border-radius;\n\n    + .panel {\n      margin-top: 5px;\n    }\n  }\n\n  .panel-heading {\n    border-bottom: 0;\n\n    + .panel-collapse > .panel-body,\n    + .panel-collapse > .list-group {\n      border-top: 1px solid @panel-inner-border;\n    }\n  }\n\n  .panel-footer {\n    border-top: 0;\n    + .panel-collapse .panel-body {\n      border-bottom: 1px solid @panel-inner-border;\n    }\n  }\n}\n\n\n// Contextual variations\n.panel-default {\n  .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);\n}\n.panel-primary {\n  .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);\n}\n.panel-success {\n  .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);\n}\n.panel-info {\n  .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);\n}\n.panel-warning {\n  .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);\n}\n.panel-danger {\n  .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/popovers.less",
    "content": "//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: @zindex-popover;\n  display: none;\n  max-width: @popover-max-width;\n  padding: 1px;\n  // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  .reset-text();\n  font-size: @font-size-base;\n  background-color: @popover-bg;\n  background-clip: padding-box;\n  border: 1px solid @popover-fallback-border-color;\n  border: 1px solid @popover-border-color;\n  border-radius: @border-radius-large;\n  .box-shadow(0 5px 10px rgba(0, 0, 0, .2));\n\n  // Offset the popover to account for the popover arrow\n  &.top { margin-top: -@popover-arrow-width; }\n  &.right { margin-left: @popover-arrow-width; }\n  &.bottom { margin-top: @popover-arrow-width; }\n  &.left { margin-left: -@popover-arrow-width; }\n\n  // Arrows\n  // .arrow is outer, .arrow:after is inner\n  > .arrow {\n    border-width: @popover-arrow-outer-width;\n\n    &,\n    &:after {\n      position: absolute;\n      display: block;\n      width: 0;\n      height: 0;\n      border-color: transparent;\n      border-style: solid;\n    }\n\n    &:after {\n      content: \"\";\n      border-width: @popover-arrow-width;\n    }\n  }\n\n  &.top > .arrow {\n    bottom: -@popover-arrow-outer-width;\n    left: 50%;\n    margin-left: -@popover-arrow-outer-width;\n    border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-top-color: @popover-arrow-outer-color;\n    border-bottom-width: 0;\n    &:after {\n      bottom: 1px;\n      margin-left: -@popover-arrow-width;\n      content: \" \";\n      border-top-color: @popover-arrow-color;\n      border-bottom-width: 0;\n    }\n  }\n  &.right > .arrow {\n    top: 50%;\n    left: -@popover-arrow-outer-width;\n    margin-top: -@popover-arrow-outer-width;\n    border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-right-color: @popover-arrow-outer-color;\n    border-left-width: 0;\n    &:after {\n      bottom: -@popover-arrow-width;\n      left: 1px;\n      content: \" \";\n      border-right-color: @popover-arrow-color;\n      border-left-width: 0;\n    }\n  }\n  &.bottom > .arrow {\n    top: -@popover-arrow-outer-width;\n    left: 50%;\n    margin-left: -@popover-arrow-outer-width;\n    border-top-width: 0;\n    border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-bottom-color: @popover-arrow-outer-color;\n    &:after {\n      top: 1px;\n      margin-left: -@popover-arrow-width;\n      content: \" \";\n      border-top-width: 0;\n      border-bottom-color: @popover-arrow-color;\n    }\n  }\n\n  &.left > .arrow {\n    top: 50%;\n    right: -@popover-arrow-outer-width;\n    margin-top: -@popover-arrow-outer-width;\n    border-right-width: 0;\n    border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-left-color: @popover-arrow-outer-color;\n    &:after {\n      right: 1px;\n      bottom: -@popover-arrow-width;\n      content: \" \";\n      border-right-width: 0;\n      border-left-color: @popover-arrow-color;\n    }\n  }\n}\n\n.popover-title {\n  padding: 8px 14px;\n  margin: 0; // reset heading margin\n  font-size: @font-size-base;\n  background-color: @popover-title-bg;\n  border-bottom: 1px solid darken(@popover-title-bg, 5%);\n  border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;\n}\n\n.popover-content {\n  padding: 9px 14px;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/print.less",
    "content": "// stylelint-disable declaration-no-important, selector-no-qualifying-type\n\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request: h5bp.com/r\n// ==========================================================================\n\n@media print {\n  *,\n  *:before,\n  *:after {\n    color: #000 !important; // Black prints faster: h5bp.com/s\n    text-shadow: none !important;\n    background: transparent !important;\n    box-shadow: none !important;\n  }\n\n  a,\n  a:visited {\n    text-decoration: underline;\n  }\n\n  a[href]:after {\n    content: \" (\" attr(href) \")\";\n  }\n\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\";\n  }\n\n  // Don't show links that are fragment identifiers,\n  // or use the `javascript:` pseudo protocol\n  a[href^=\"#\"]:after,\n  a[href^=\"javascript:\"]:after {\n    content: \"\";\n  }\n\n  pre,\n  blockquote {\n    border: 1px solid #999;\n    page-break-inside: avoid;\n  }\n\n  thead {\n    display: table-header-group; // h5bp.com/t\n  }\n\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n\n  img {\n    max-width: 100% !important;\n  }\n\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n\n  // Bootstrap specific changes start\n\n  // Bootstrap components\n  .navbar {\n    display: none;\n  }\n  .btn,\n  .dropup > .btn {\n    > .caret {\n      border-top-color: #000 !important;\n    }\n  }\n  .label {\n    border: 1px solid #000;\n  }\n\n  .table {\n    border-collapse: collapse !important;\n\n    td,\n    th {\n      background-color: #fff !important;\n    }\n  }\n  .table-bordered {\n    th,\n    td {\n      border: 1px solid #ddd !important;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/progress-bars.less",
    "content": "// stylelint-disable at-rule-no-vendor-prefix\n\n//\n// Progress bars\n// --------------------------------------------------\n\n\n// Bar animations\n// -------------------------\n\n// WebKit\n@-webkit-keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n// Spec and IE10+\n@keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n\n// Bar itself\n// -------------------------\n\n// Outer container\n.progress {\n  height: @line-height-computed;\n  margin-bottom: @line-height-computed;\n  overflow: hidden;\n  background-color: @progress-bg;\n  border-radius: @progress-border-radius;\n  .box-shadow(inset 0 1px 2px rgba(0, 0, 0, .1));\n}\n\n// Bar of progress\n.progress-bar {\n  float: left;\n  width: 0%;\n  height: 100%;\n  font-size: @font-size-small;\n  line-height: @line-height-computed;\n  color: @progress-bar-color;\n  text-align: center;\n  background-color: @progress-bar-bg;\n  .box-shadow(inset 0 -1px 0 rgba(0, 0, 0, .15));\n  .transition(width .6s ease);\n}\n\n// Striped bars\n//\n// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar-striped` class, which you just add to an existing\n// `.progress-bar`.\n.progress-striped .progress-bar,\n.progress-bar-striped {\n  #gradient > .striped();\n  background-size: 40px 40px;\n}\n\n// Call animation for the active one\n//\n// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar.active` approach.\n.progress.active .progress-bar,\n.progress-bar.active {\n  .animation(progress-bar-stripes 2s linear infinite);\n}\n\n\n// Variations\n// -------------------------\n\n.progress-bar-success {\n  .progress-bar-variant(@progress-bar-success-bg);\n}\n\n.progress-bar-info {\n  .progress-bar-variant(@progress-bar-info-bg);\n}\n\n.progress-bar-warning {\n  .progress-bar-variant(@progress-bar-warning-bg);\n}\n\n.progress-bar-danger {\n  .progress-bar-variant(@progress-bar-danger-bg);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/responsive-embed.less",
    "content": "// Embeds responsive\n//\n// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  height: 0;\n  padding: 0;\n  overflow: hidden;\n\n  .embed-responsive-item,\n  iframe,\n  embed,\n  object,\n  video {\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    border: 0;\n  }\n}\n\n// Modifier class for 16:9 aspect ratio\n.embed-responsive-16by9 {\n  padding-bottom: 56.25%;\n}\n\n// Modifier class for 4:3 aspect ratio\n.embed-responsive-4by3 {\n  padding-bottom: 75%;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/responsive-utilities.less",
    "content": "// stylelint-disable declaration-no-important, at-rule-no-vendor-prefix\n\n//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 in Windows (Phone) 8\n//\n// Support for responsive views via media queries is kind of borked in IE10, for\n// Surface/desktop in split view and for Windows Phone 8. This particular fix\n// must be accompanied by a snippet of JavaScript to sniff the user agent and\n// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at\n// our Getting Started page for more information on this bug.\n//\n// For more information, see the following:\n//\n// Issue: https://github.com/twbs/bootstrap/issues/10497\n// Docs: https://getbootstrap.com/docs/3.4/getting-started/#support-ie10-width\n// Source: https://timkadlec.com/2013/01/windows-phone-8-and-device-width/\n// Source: https://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/\n\n@-ms-viewport {\n  width: device-width;\n}\n\n\n// Visibility utilities\n// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n  .responsive-invisibility();\n}\n\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n  display: none !important;\n}\n\n.visible-xs {\n  @media (max-width: @screen-xs-max) {\n    .responsive-visibility();\n  }\n}\n.visible-xs-block {\n  @media (max-width: @screen-xs-max) {\n    display: block !important;\n  }\n}\n.visible-xs-inline {\n  @media (max-width: @screen-xs-max) {\n    display: inline !important;\n  }\n}\n.visible-xs-inline-block {\n  @media (max-width: @screen-xs-max) {\n    display: inline-block !important;\n  }\n}\n\n.visible-sm {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    .responsive-visibility();\n  }\n}\n.visible-sm-block {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    display: block !important;\n  }\n}\n.visible-sm-inline {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    display: inline !important;\n  }\n}\n.visible-sm-inline-block {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    display: inline-block !important;\n  }\n}\n\n.visible-md {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    .responsive-visibility();\n  }\n}\n.visible-md-block {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    display: block !important;\n  }\n}\n.visible-md-inline {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    display: inline !important;\n  }\n}\n.visible-md-inline-block {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    display: inline-block !important;\n  }\n}\n\n.visible-lg {\n  @media (min-width: @screen-lg-min) {\n    .responsive-visibility();\n  }\n}\n.visible-lg-block {\n  @media (min-width: @screen-lg-min) {\n    display: block !important;\n  }\n}\n.visible-lg-inline {\n  @media (min-width: @screen-lg-min) {\n    display: inline !important;\n  }\n}\n.visible-lg-inline-block {\n  @media (min-width: @screen-lg-min) {\n    display: inline-block !important;\n  }\n}\n\n.hidden-xs {\n  @media (max-width: @screen-xs-max) {\n    .responsive-invisibility();\n  }\n}\n.hidden-sm {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    .responsive-invisibility();\n  }\n}\n.hidden-md {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    .responsive-invisibility();\n  }\n}\n.hidden-lg {\n  @media (min-width: @screen-lg-min) {\n    .responsive-invisibility();\n  }\n}\n\n\n// Print utilities\n//\n// Media queries are placed on the inside to be mixin-friendly.\n\n// Note: Deprecated .visible-print as of v3.2.0\n.visible-print {\n  .responsive-invisibility();\n\n  @media print {\n    .responsive-visibility();\n  }\n}\n.visible-print-block {\n  display: none !important;\n\n  @media print {\n    display: block !important;\n  }\n}\n.visible-print-inline {\n  display: none !important;\n\n  @media print {\n    display: inline !important;\n  }\n}\n.visible-print-inline-block {\n  display: none !important;\n\n  @media print {\n    display: inline-block !important;\n  }\n}\n\n.hidden-print {\n  @media print {\n    .responsive-invisibility();\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/scaffolding.less",
    "content": "//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// https://getbootstrap.com/docs/3.4/getting-started/#third-box-sizing\n* {\n  .box-sizing(border-box);\n}\n*:before,\n*:after {\n  .box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n  font-size: 10px;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\nbody {\n  font-family: @font-family-base;\n  font-size: @font-size-base;\n  line-height: @line-height-base;\n  color: @text-color;\n  background-color: @body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\n\n// Links\n\na {\n  color: @link-color;\n  text-decoration: none;\n\n  &:hover,\n  &:focus {\n    color: @link-hover-color;\n    text-decoration: @link-hover-decoration;\n  }\n\n  &:focus {\n    .tab-focus();\n  }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n  margin: 0;\n}\n\n\n// Images\n\nimg {\n  vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n  .img-responsive();\n}\n\n// Rounded corners\n.img-rounded {\n  border-radius: @border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n  padding: @thumbnail-padding;\n  line-height: @line-height-base;\n  background-color: @thumbnail-bg;\n  border: 1px solid @thumbnail-border;\n  border-radius: @thumbnail-border-radius;\n  .transition(all .2s ease-in-out);\n\n  // Keep them at most 100% wide\n  .img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n  border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n  margin-top: @line-height-computed;\n  margin-bottom: @line-height-computed;\n  border: 0;\n  border-top: 1px solid @hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: https://a11yproject.com/posts/how-to-hide-content\n\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable {\n  &:active,\n  &:focus {\n    position: static;\n    width: auto;\n    height: auto;\n    margin: 0;\n    overflow: visible;\n    clip: auto;\n  }\n}\n\n\n// iOS \"clickable elements\" fix for role=\"button\"\n//\n// Fixes \"clickability\" issue (and more generally, the firing of events such as focus as well)\n// for traditionally non-focusable elements with role=\"button\"\n// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n[role=\"button\"] {\n  cursor: pointer;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/tables.less",
    "content": "// stylelint-disable selector-max-type, selector-max-compound-selectors, selector-no-qualifying-type\n\n//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n  background-color: @table-bg;\n\n  // Table cell sizing\n  //\n  // Reset default table behavior\n\n  col[class*=\"col-\"] {\n    position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n    display: table-column;\n    float: none;\n  }\n\n  td,\n  th {\n    &[class*=\"col-\"] {\n      position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n      display: table-cell;\n      float: none;\n    }\n  }\n}\n\ncaption {\n  padding-top: @table-cell-padding;\n  padding-bottom: @table-cell-padding;\n  color: @text-muted;\n  text-align: left;\n}\n\nth {\n  text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: @line-height-computed;\n  // Cells\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        padding: @table-cell-padding;\n        line-height: @line-height-base;\n        vertical-align: top;\n        border-top: 1px solid @table-border-color;\n      }\n    }\n  }\n  // Bottom align for column headings\n  > thead > tr > th {\n    vertical-align: bottom;\n    border-bottom: 2px solid @table-border-color;\n  }\n  // Remove top border from thead by default\n  > caption + thead,\n  > colgroup + thead,\n  > thead:first-child {\n    > tr:first-child {\n      > th,\n      > td {\n        border-top: 0;\n      }\n    }\n  }\n  // Account for multiple tbody instances\n  > tbody + tbody {\n    border-top: 2px solid @table-border-color;\n  }\n\n  // Nesting\n  .table {\n    background-color: @body-bg;\n  }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        padding: @table-condensed-cell-padding;\n      }\n    }\n  }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n  border: 1px solid @table-border-color;\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        border: 1px solid @table-border-color;\n      }\n    }\n  }\n  > thead > tr {\n    > th,\n    > td {\n      border-bottom-width: 2px;\n    }\n  }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n  > tbody > tr:nth-of-type(odd) {\n    background-color: @table-bg-accent;\n  }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n  > tbody > tr:hover {\n    background-color: @table-bg-hover;\n  }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n.table-row-variant(active; @table-bg-active);\n.table-row-variant(success; @state-success-bg);\n.table-row-variant(info; @state-info-bg);\n.table-row-variant(warning; @state-warning-bg);\n.table-row-variant(danger; @state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n.table-responsive {\n  min-height: .01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)\n  overflow-x: auto;\n\n  @media screen and (max-width: @screen-xs-max) {\n    width: 100%;\n    margin-bottom: (@line-height-computed * .75);\n    overflow-y: hidden;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n    border: 1px solid @table-border-color;\n\n    // Tighten up spacing\n    > .table {\n      margin-bottom: 0;\n\n      // Ensure the content doesn't wrap\n      > thead,\n      > tbody,\n      > tfoot {\n        > tr {\n          > th,\n          > td {\n            white-space: nowrap;\n          }\n        }\n      }\n    }\n\n    // Special overrides for the bordered tables\n    > .table-bordered {\n      border: 0;\n\n      // Nuke the appropriate borders so that the parent can handle them\n      > thead,\n      > tbody,\n      > tfoot {\n        > tr {\n          > th:first-child,\n          > td:first-child {\n            border-left: 0;\n          }\n          > th:last-child,\n          > td:last-child {\n            border-right: 0;\n          }\n        }\n      }\n\n      // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n      // chances are there will be only one `tr` in a `thead` and that would\n      // remove the border altogether.\n      > tbody,\n      > tfoot {\n        > tr:last-child {\n          > th,\n          > td {\n            border-bottom: 0;\n          }\n        }\n      }\n\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/theme.less",
    "content": "// stylelint-disable selector-no-qualifying-type, selector-max-compound-selectors\n\n/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);\n  @shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);\n  .box-shadow(@shadow);\n\n  // Reset the shadow\n  &:active,\n  &.active {\n    .box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125));\n  }\n\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    .box-shadow(none);\n  }\n\n  .badge {\n    text-shadow: none;\n  }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n  #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n  .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n  background-repeat: repeat-x;\n  border-color: darken(@btn-color, 14%);\n\n  &:hover,\n  &:focus  {\n    background-color: darken(@btn-color, 12%);\n    background-position: 0 -15px;\n  }\n\n  &:active,\n  &.active {\n    background-color: darken(@btn-color, 12%);\n    border-color: darken(@btn-color, 14%);\n  }\n\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    &,\n    &:hover,\n    &:focus,\n    &.focus,\n    &:active,\n    &.active {\n      background-color: darken(@btn-color, 12%);\n      background-image: none;\n    }\n  }\n}\n\n// Common styles\n.btn {\n  // Remove the gradient for the pressed/active state\n  &:active,\n  &.active {\n    background-image: none;\n  }\n}\n\n// Apply the mixin to the buttons\n.btn-default {\n  .btn-styles(@btn-default-bg);\n  text-shadow: 0 1px 0 #fff;\n  border-color: #ccc;\n}\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info    { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger  { .btn-styles(@btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n  .box-shadow(0 1px 2px rgba(0, 0, 0, .075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n  #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n  background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n  #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n  background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n  #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n  .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n  border-radius: @navbar-border-radius;\n  @shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);\n  .box-shadow(@shadow);\n\n  .navbar-nav > .open > a,\n  .navbar-nav > .active > a {\n    #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));\n    .box-shadow(inset 0 3px 9px rgba(0, 0, 0, .075));\n  }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n  text-shadow: 0 1px 0 rgba(255, 255, 255, .25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n  #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n  .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n  border-radius: @navbar-border-radius;\n  .navbar-nav > .open > a,\n  .navbar-nav > .active > a {\n    #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));\n    .box-shadow(inset 0 3px 9px rgba(0, 0, 0, .25));\n  }\n\n  .navbar-brand,\n  .navbar-nav > li > a {\n    text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);\n  }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: @grid-float-breakpoint-max) {\n  .navbar .navbar-nav .open .dropdown-menu > .active > a {\n    &,\n    &:hover,\n    &:focus {\n      color: #fff;\n      #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n    }\n  }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n  text-shadow: 0 1px 0 rgba(255, 255, 255, .2);\n  @shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);\n  .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n  #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n  border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success    { .alert-styles(@alert-success-bg); }\n.alert-info       { .alert-styles(@alert-info-bg); }\n.alert-warning    { .alert-styles(@alert-warning-bg); }\n.alert-danger     { .alert-styles(@alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n  #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n  #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar            { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success    { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info       { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning    { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger     { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n  #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n  border-radius: @border-radius-base;\n  .box-shadow(0 1px 2px rgba(0, 0, 0, .075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n  text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n  #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n  border-color: darken(@list-group-active-border, 7.5%);\n\n  .badge {\n    text-shadow: none;\n  }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n  .box-shadow(0 1px 2px rgba(0, 0, 0, .05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n  #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading   { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading   { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading   { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading      { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading   { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading    { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n  #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n  border-color: darken(@well-bg, 10%);\n  @shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);\n  .box-shadow(@shadow);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/thumbnails.less",
    "content": "// stylelint-disable selector-no-qualifying-type\n\n//\n// Thumbnails\n// --------------------------------------------------\n\n\n// Mixin and adjust the regular image class\n.thumbnail {\n  display: block;\n  padding: @thumbnail-padding;\n  margin-bottom: @line-height-computed;\n  line-height: @line-height-base;\n  background-color: @thumbnail-bg;\n  border: 1px solid @thumbnail-border;\n  border-radius: @thumbnail-border-radius;\n  .transition(border .2s ease-in-out);\n\n  > img,\n  a > img {\n    &:extend(.img-responsive);\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  // Add a hover state for linked versions only\n  a&:hover,\n  a&:focus,\n  a&.active {\n    border-color: @link-color;\n  }\n\n  // Image captions\n  .caption {\n    padding: @thumbnail-caption-padding;\n    color: @thumbnail-caption-color;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/tooltip.less",
    "content": "//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n  position: absolute;\n  z-index: @zindex-tooltip;\n  display: block;\n  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  .reset-text();\n  font-size: @font-size-small;\n\n  .opacity(0);\n\n  &.in { .opacity(@tooltip-opacity); }\n  &.top {\n    padding: @tooltip-arrow-width 0;\n    margin-top: -3px;\n  }\n  &.right {\n    padding: 0 @tooltip-arrow-width;\n    margin-left: 3px;\n  }\n  &.bottom {\n    padding: @tooltip-arrow-width 0;\n    margin-top: 3px;\n  }\n  &.left {\n    padding: 0 @tooltip-arrow-width;\n    margin-left: -3px;\n  }\n\n  // Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1\n  &.top .tooltip-arrow {\n    bottom: 0;\n    left: 50%;\n    margin-left: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-top-color: @tooltip-arrow-color;\n  }\n  &.top-left .tooltip-arrow {\n    right: @tooltip-arrow-width;\n    bottom: 0;\n    margin-bottom: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-top-color: @tooltip-arrow-color;\n  }\n  &.top-right .tooltip-arrow {\n    bottom: 0;\n    left: @tooltip-arrow-width;\n    margin-bottom: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-top-color: @tooltip-arrow-color;\n  }\n  &.right .tooltip-arrow {\n    top: 50%;\n    left: 0;\n    margin-top: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-right-color: @tooltip-arrow-color;\n  }\n  &.left .tooltip-arrow {\n    top: 50%;\n    right: 0;\n    margin-top: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-left-color: @tooltip-arrow-color;\n  }\n  &.bottom .tooltip-arrow {\n    top: 0;\n    left: 50%;\n    margin-left: -@tooltip-arrow-width;\n    border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-bottom-color: @tooltip-arrow-color;\n  }\n  &.bottom-left .tooltip-arrow {\n    top: 0;\n    right: @tooltip-arrow-width;\n    margin-top: -@tooltip-arrow-width;\n    border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-bottom-color: @tooltip-arrow-color;\n  }\n  &.bottom-right .tooltip-arrow {\n    top: 0;\n    left: @tooltip-arrow-width;\n    margin-top: -@tooltip-arrow-width;\n    border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-bottom-color: @tooltip-arrow-color;\n  }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n  max-width: @tooltip-max-width;\n  padding: 3px 8px;\n  color: @tooltip-color;\n  text-align: center;\n  background-color: @tooltip-bg;\n  border-radius: @border-radius-base;\n}\n\n// Arrows\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/type.less",
    "content": "// stylelint-disable selector-list-comma-newline-after, selector-no-qualifying-type\n\n//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  font-family: @headings-font-family;\n  font-weight: @headings-font-weight;\n  line-height: @headings-line-height;\n  color: @headings-color;\n\n  small,\n  .small {\n    font-weight: 400;\n    line-height: 1;\n    color: @headings-small-color;\n  }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n  margin-top: @line-height-computed;\n  margin-bottom: (@line-height-computed / 2);\n\n  small,\n  .small {\n    font-size: 65%;\n  }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  margin-top: (@line-height-computed / 2);\n  margin-bottom: (@line-height-computed / 2);\n\n  small,\n  .small {\n    font-size: 75%;\n  }\n}\n\nh1, .h1 { font-size: @font-size-h1; }\nh2, .h2 { font-size: @font-size-h2; }\nh3, .h3 { font-size: @font-size-h3; }\nh4, .h4 { font-size: @font-size-h4; }\nh5, .h5 { font-size: @font-size-h5; }\nh6, .h6 { font-size: @font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n  margin: 0 0 (@line-height-computed / 2);\n}\n\n.lead {\n  margin-bottom: @line-height-computed;\n  font-size: floor((@font-size-base * 1.15));\n  font-weight: 300;\n  line-height: 1.4;\n\n  @media (min-width: @screen-sm-min) {\n    font-size: (@font-size-base * 1.5);\n  }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: (12px small font / 14px base font) * 100% = about 85%\nsmall,\n.small {\n  font-size: floor((100% * @font-size-small / @font-size-base));\n}\n\nmark,\n.mark {\n  padding: .2em;\n  background-color: @state-warning-bg;\n}\n\n// Alignment\n.text-left           { text-align: left; }\n.text-right          { text-align: right; }\n.text-center         { text-align: center; }\n.text-justify        { text-align: justify; }\n.text-nowrap         { white-space: nowrap; }\n\n// Transformation\n.text-lowercase      { text-transform: lowercase; }\n.text-uppercase      { text-transform: uppercase; }\n.text-capitalize     { text-transform: capitalize; }\n\n// Contextual colors\n.text-muted {\n  color: @text-muted;\n}\n.text-primary {\n  .text-emphasis-variant(@brand-primary);\n}\n.text-success {\n  .text-emphasis-variant(@state-success-text);\n}\n.text-info {\n  .text-emphasis-variant(@state-info-text);\n}\n.text-warning {\n  .text-emphasis-variant(@state-warning-text);\n}\n.text-danger {\n  .text-emphasis-variant(@state-danger-text);\n}\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n  // Given the contrast here, this is the only class to have its color inverted\n  // automatically.\n  color: #fff;\n  .bg-variant(@brand-primary);\n}\n.bg-success {\n  .bg-variant(@state-success-bg);\n}\n.bg-info {\n  .bg-variant(@state-info-bg);\n}\n.bg-warning {\n  .bg-variant(@state-warning-bg);\n}\n.bg-danger {\n  .bg-variant(@state-danger-bg);\n}\n\n\n// Page header\n// -------------------------\n\n.page-header {\n  padding-bottom: ((@line-height-computed / 2) - 1);\n  margin: (@line-height-computed * 2) 0 @line-height-computed;\n  border-bottom: 1px solid @page-header-border-color;\n}\n\n\n// Lists\n// -------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n  margin-top: 0;\n  margin-bottom: (@line-height-computed / 2);\n  ul,\n  ol {\n    margin-bottom: 0;\n  }\n}\n\n// List options\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n  .list-unstyled();\n  margin-left: -5px;\n\n  > li {\n    display: inline-block;\n    padding-right: 5px;\n    padding-left: 5px;\n  }\n}\n\n// Description Lists\ndl {\n  margin-top: 0; // Remove browser default\n  margin-bottom: @line-height-computed;\n}\ndt,\ndd {\n  line-height: @line-height-base;\n}\ndt {\n  font-weight: 700;\n}\ndd {\n  margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n.dl-horizontal {\n  dd {\n    &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present\n  }\n\n  @media (min-width: @dl-horizontal-breakpoint) {\n    dt {\n      float: left;\n      width: (@dl-horizontal-offset - 20);\n      clear: left;\n      text-align: right;\n      .text-overflow();\n    }\n    dd {\n      margin-left: @dl-horizontal-offset;\n    }\n  }\n}\n\n\n// Misc\n// -------------------------\n\n// Abbreviations and acronyms\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[title],\nabbr[data-original-title] {\n  cursor: help;\n}\n\n.initialism {\n  font-size: 90%;\n  .text-uppercase();\n}\n\n// Blockquotes\nblockquote {\n  padding: (@line-height-computed / 2) @line-height-computed;\n  margin: 0 0 @line-height-computed;\n  font-size: @blockquote-font-size;\n  border-left: 5px solid @blockquote-border-color;\n\n  p,\n  ul,\n  ol {\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Note: Deprecated small and .small as of v3.1.0\n  // Context: https://github.com/twbs/bootstrap/issues/11660\n  footer,\n  small,\n  .small {\n    display: block;\n    font-size: 80%; // back to default font-size\n    line-height: @line-height-base;\n    color: @blockquote-small-color;\n\n    &:before {\n      content: \"\\2014 \\00A0\"; // em dash, nbsp\n    }\n  }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n  padding-right: 15px;\n  padding-left: 0;\n  text-align: right;\n  border-right: 5px solid @blockquote-border-color;\n  border-left: 0;\n\n  // Account for citation\n  footer,\n  small,\n  .small {\n    &:before { content: \"\"; }\n    &:after {\n      content: \"\\00A0 \\2014\"; // nbsp, em dash\n    }\n  }\n}\n\n// Addresses\naddress {\n  margin-bottom: @line-height-computed;\n  font-style: normal;\n  line-height: @line-height-base;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/utilities.less",
    "content": "// stylelint-disable declaration-no-important\n\n//\n// Utility classes\n// --------------------------------------------------\n\n\n// Floats\n// -------------------------\n\n.clearfix {\n  .clearfix();\n}\n.center-block {\n  .center-block();\n}\n.pull-right {\n  float: right !important;\n}\n.pull-left {\n  float: left !important;\n}\n\n\n// Toggling content\n// -------------------------\n\n// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1\n.hide {\n  display: none !important;\n}\n.show {\n  display: block !important;\n}\n.invisible {\n  visibility: hidden;\n}\n.text-hide {\n  .text-hide();\n}\n\n\n// Hide from screenreaders and browsers\n//\n// Credit: HTML5 Boilerplate\n\n.hidden {\n  display: none !important;\n}\n\n\n// For Affix plugin\n// -------------------------\n\n.affix {\n  position: fixed;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap3/variables.less",
    "content": "// stylelint-disable value-keyword-case\n\n//\n// Variables\n// --------------------------------------------------\n\n\n//== Colors\n//\n//## Gray and brand colors for use across Bootstrap.\n\n@gray-base:              #000;\n@gray-darker:            lighten(@gray-base, 13.5%); // #222\n@gray-dark:              lighten(@gray-base, 20%);   // #333\n@gray:                   lighten(@gray-base, 33.5%); // #555\n@gray-light:             lighten(@gray-base, 46.7%); // #777\n@gray-lighter:           lighten(@gray-base, 93.5%); // #eee\n\n@brand-primary:         darken(#428bca, 6.5%); // #337ab7\n@brand-success:         #5cb85c;\n@brand-info:            #5bc0de;\n@brand-warning:         #f0ad4e;\n@brand-danger:          #d9534f;\n\n\n//== Scaffolding\n//\n//## Settings for some of the most global styles.\n\n//** Background color for `<body>`.\n@body-bg:               #fff;\n//** Global text color on `<body>`.\n@text-color:            @gray-dark;\n\n//** Global textual link color.\n@link-color:            @brand-primary;\n//** Link hover color set via `darken()` function.\n@link-hover-color:      darken(@link-color, 15%);\n//** Link hover decoration.\n@link-hover-decoration: underline;\n\n\n//== Typography\n//\n//## Font, line-height, and color for body text, headings, and more.\n\n@font-family-sans-serif:  \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n@font-family-serif:       Georgia, \"Times New Roman\", Times, serif;\n//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.\n@font-family-monospace:   Menlo, Monaco, Consolas, \"Courier New\", monospace;\n@font-family-base:        @font-family-sans-serif;\n\n@font-size-base:          14px;\n@font-size-large:         ceil((@font-size-base * 1.25)); // ~18px\n@font-size-small:         ceil((@font-size-base * .85)); // ~12px\n\n@font-size-h1:            floor((@font-size-base * 2.6)); // ~36px\n@font-size-h2:            floor((@font-size-base * 2.15)); // ~30px\n@font-size-h3:            ceil((@font-size-base * 1.7)); // ~24px\n@font-size-h4:            ceil((@font-size-base * 1.25)); // ~18px\n@font-size-h5:            @font-size-base;\n@font-size-h6:            ceil((@font-size-base * .85)); // ~12px\n\n//** Unit-less `line-height` for use in components like buttons.\n@line-height-base:        1.428571429; // 20/14\n//** Computed \"line-height\" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.\n@line-height-computed:    floor((@font-size-base * @line-height-base)); // ~20px\n\n//** By default, this inherits from the `<body>`.\n@headings-font-family:    inherit;\n@headings-font-weight:    500;\n@headings-line-height:    1.1;\n@headings-color:          inherit;\n\n\n//== Iconography\n//\n//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.\n\n//** Load fonts from this directory.\n@icon-font-path:          \"../fonts/\";\n//** File name for all font files.\n@icon-font-name:          \"glyphicons-halflings-regular\";\n//** Element ID within SVG icon file.\n@icon-font-svg-id:        \"glyphicons_halflingsregular\";\n\n\n//== Components\n//\n//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).\n\n@padding-base-vertical:     6px;\n@padding-base-horizontal:   12px;\n\n@padding-large-vertical:    10px;\n@padding-large-horizontal:  16px;\n\n@padding-small-vertical:    5px;\n@padding-small-horizontal:  10px;\n\n@padding-xs-vertical:       1px;\n@padding-xs-horizontal:     5px;\n\n@line-height-large:         1.3333333; // extra decimals for Win 8.1 Chrome\n@line-height-small:         1.5;\n\n@border-radius-base:        4px;\n@border-radius-large:       6px;\n@border-radius-small:       3px;\n\n//** Global color for active items (e.g., navs or dropdowns).\n@component-active-color:    #fff;\n//** Global background color for active items (e.g., navs or dropdowns).\n@component-active-bg:       @brand-primary;\n\n//** Width of the `border` for generating carets that indicate dropdowns.\n@caret-width-base:          4px;\n//** Carets increase slightly in size for larger components.\n@caret-width-large:         5px;\n\n\n//== Tables\n//\n//## Customizes the `.table` component with basic values, each used across all table variations.\n\n//** Padding for `<th>`s and `<td>`s.\n@table-cell-padding:            8px;\n//** Padding for cells in `.table-condensed`.\n@table-condensed-cell-padding:  5px;\n\n//** Default background color used for all tables.\n@table-bg:                      transparent;\n//** Background color used for `.table-striped`.\n@table-bg-accent:               #f9f9f9;\n//** Background color used for `.table-hover`.\n@table-bg-hover:                #f5f5f5;\n@table-bg-active:               @table-bg-hover;\n\n//** Border color for table and cell borders.\n@table-border-color:            #ddd;\n\n\n//== Buttons\n//\n//## For each of Bootstrap's buttons, define text, background and border color.\n\n@btn-font-weight:                normal;\n\n@btn-default-color:              #333;\n@btn-default-bg:                 #fff;\n@btn-default-border:             #ccc;\n\n@btn-primary-color:              #fff;\n@btn-primary-bg:                 @brand-primary;\n@btn-primary-border:             darken(@btn-primary-bg, 5%);\n\n@btn-success-color:              #fff;\n@btn-success-bg:                 @brand-success;\n@btn-success-border:             darken(@btn-success-bg, 5%);\n\n@btn-info-color:                 #fff;\n@btn-info-bg:                    @brand-info;\n@btn-info-border:                darken(@btn-info-bg, 5%);\n\n@btn-warning-color:              #fff;\n@btn-warning-bg:                 @brand-warning;\n@btn-warning-border:             darken(@btn-warning-bg, 5%);\n\n@btn-danger-color:               #fff;\n@btn-danger-bg:                  @brand-danger;\n@btn-danger-border:              darken(@btn-danger-bg, 5%);\n\n@btn-link-disabled-color:        @gray-light;\n\n// Allows for customizing button radius independently from global border radius\n@btn-border-radius-base:         @border-radius-base;\n@btn-border-radius-large:        @border-radius-large;\n@btn-border-radius-small:        @border-radius-small;\n\n\n//== Forms\n//\n//##\n\n//** `<input>` background color\n@input-bg:                       #fff;\n//** `<input disabled>` background color\n@input-bg-disabled:              @gray-lighter;\n\n//** Text color for `<input>`s\n@input-color:                    @gray;\n//** `<input>` border color\n@input-border:                   #ccc;\n\n// TODO: Rename `@input-border-radius` to `@input-border-radius-base` in v4\n//** Default `.form-control` border radius\n// This has no effect on `<select>`s in some browsers, due to the limited stylability of `<select>`s in CSS.\n@input-border-radius:            @border-radius-base;\n//** Large `.form-control` border radius\n@input-border-radius-large:      @border-radius-large;\n//** Small `.form-control` border radius\n@input-border-radius-small:      @border-radius-small;\n\n//** Border color for inputs on focus\n@input-border-focus:             #66afe9;\n\n//** Placeholder text color\n@input-color-placeholder:        #999;\n\n//** Default `.form-control` height\n@input-height-base:              (@line-height-computed + (@padding-base-vertical * 2) + 2);\n//** Large `.form-control` height\n@input-height-large:             (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2);\n//** Small `.form-control` height\n@input-height-small:             (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2);\n\n//** `.form-group` margin\n@form-group-margin-bottom:       15px;\n\n@legend-color:                   @gray-dark;\n@legend-border-color:            #e5e5e5;\n\n//** Background color for textual input addons\n@input-group-addon-bg:           @gray-lighter;\n//** Border color for textual input addons\n@input-group-addon-border-color: @input-border;\n\n//** Disabled cursor for form controls and buttons.\n@cursor-disabled:                not-allowed;\n\n\n//== Dropdowns\n//\n//## Dropdown menu container and contents.\n\n//** Background for the dropdown menu.\n@dropdown-bg:                    #fff;\n//** Dropdown menu `border-color`.\n@dropdown-border:                rgba(0, 0, 0, .15);\n//** Dropdown menu `border-color` **for IE8**.\n@dropdown-fallback-border:       #ccc;\n//** Divider color for between dropdown items.\n@dropdown-divider-bg:            #e5e5e5;\n\n//** Dropdown link text color.\n@dropdown-link-color:            @gray-dark;\n//** Hover color for dropdown links.\n@dropdown-link-hover-color:      darken(@gray-dark, 5%);\n//** Hover background for dropdown links.\n@dropdown-link-hover-bg:         #f5f5f5;\n\n//** Active dropdown menu item text color.\n@dropdown-link-active-color:     @component-active-color;\n//** Active dropdown menu item background color.\n@dropdown-link-active-bg:        @component-active-bg;\n\n//** Disabled dropdown menu item background color.\n@dropdown-link-disabled-color:   @gray-light;\n\n//** Text color for headers within dropdown menus.\n@dropdown-header-color:          @gray-light;\n\n//** Deprecated `@dropdown-caret-color` as of v3.1.0\n@dropdown-caret-color:           #000;\n\n\n//-- Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n//\n// Note: These variables are not generated into the Customizer.\n\n@zindex-navbar:            1000;\n@zindex-dropdown:          1000;\n@zindex-popover:           1060;\n@zindex-tooltip:           1070;\n@zindex-navbar-fixed:      1030;\n@zindex-modal-background:  1040;\n@zindex-modal:             1050;\n\n\n//== Media queries breakpoints\n//\n//## Define the breakpoints at which your layout will change, adapting to different screen sizes.\n\n// Extra small screen / phone\n//** Deprecated `@screen-xs` as of v3.0.1\n@screen-xs:                  480px;\n//** Deprecated `@screen-xs-min` as of v3.2.0\n@screen-xs-min:              @screen-xs;\n//** Deprecated `@screen-phone` as of v3.0.1\n@screen-phone:               @screen-xs-min;\n\n// Small screen / tablet\n//** Deprecated `@screen-sm` as of v3.0.1\n@screen-sm:                  768px;\n@screen-sm-min:              @screen-sm;\n//** Deprecated `@screen-tablet` as of v3.0.1\n@screen-tablet:              @screen-sm-min;\n\n// Medium screen / desktop\n//** Deprecated `@screen-md` as of v3.0.1\n@screen-md:                  992px;\n@screen-md-min:              @screen-md;\n//** Deprecated `@screen-desktop` as of v3.0.1\n@screen-desktop:             @screen-md-min;\n\n// Large screen / wide desktop\n//** Deprecated `@screen-lg` as of v3.0.1\n@screen-lg:                  1200px;\n@screen-lg-min:              @screen-lg;\n//** Deprecated `@screen-lg-desktop` as of v3.0.1\n@screen-lg-desktop:          @screen-lg-min;\n\n// So media queries don't overlap when required, provide a maximum\n@screen-xs-max:              (@screen-sm-min - 1);\n@screen-sm-max:              (@screen-md-min - 1);\n@screen-md-max:              (@screen-lg-min - 1);\n\n\n//== Grid system\n//\n//## Define your custom responsive grid.\n\n//** Number of columns in the grid.\n@grid-columns:              12;\n//** Padding between columns. Gets divided in half for the left and right.\n@grid-gutter-width:         30px;\n// Navbar collapse\n//** Point at which the navbar becomes uncollapsed.\n@grid-float-breakpoint:     @screen-sm-min;\n//** Point at which the navbar begins collapsing.\n@grid-float-breakpoint-max: (@grid-float-breakpoint - 1);\n\n\n//== Container sizes\n//\n//## Define the maximum width of `.container` for different screen sizes.\n\n// Small screen / tablet\n@container-tablet:             (720px + @grid-gutter-width);\n//** For `@screen-sm-min` and up.\n@container-sm:                 @container-tablet;\n\n// Medium screen / desktop\n@container-desktop:            (940px + @grid-gutter-width);\n//** For `@screen-md-min` and up.\n@container-md:                 @container-desktop;\n\n// Large screen / wide desktop\n@container-large-desktop:      (1140px + @grid-gutter-width);\n//** For `@screen-lg-min` and up.\n@container-lg:                 @container-large-desktop;\n\n\n//== Navbar\n//\n//##\n\n// Basics of a navbar\n@navbar-height:                    50px;\n@navbar-margin-bottom:             @line-height-computed;\n@navbar-border-radius:             @border-radius-base;\n@navbar-padding-horizontal:        floor((@grid-gutter-width / 2));\n@navbar-padding-vertical:          ((@navbar-height - @line-height-computed) / 2);\n@navbar-collapse-max-height:       340px;\n\n@navbar-default-color:             #777;\n@navbar-default-bg:                #f8f8f8;\n@navbar-default-border:            darken(@navbar-default-bg, 6.5%);\n\n// Navbar links\n@navbar-default-link-color:                #777;\n@navbar-default-link-hover-color:          #333;\n@navbar-default-link-hover-bg:             transparent;\n@navbar-default-link-active-color:         #555;\n@navbar-default-link-active-bg:            darken(@navbar-default-bg, 6.5%);\n@navbar-default-link-disabled-color:       #ccc;\n@navbar-default-link-disabled-bg:          transparent;\n\n// Navbar brand label\n@navbar-default-brand-color:               @navbar-default-link-color;\n@navbar-default-brand-hover-color:         darken(@navbar-default-brand-color, 10%);\n@navbar-default-brand-hover-bg:            transparent;\n\n// Navbar toggle\n@navbar-default-toggle-hover-bg:           #ddd;\n@navbar-default-toggle-icon-bar-bg:        #888;\n@navbar-default-toggle-border-color:       #ddd;\n\n\n//=== Inverted navbar\n// Reset inverted navbar basics\n@navbar-inverse-color:                      lighten(@gray-light, 15%);\n@navbar-inverse-bg:                         #222;\n@navbar-inverse-border:                     darken(@navbar-inverse-bg, 10%);\n\n// Inverted navbar links\n@navbar-inverse-link-color:                 lighten(@gray-light, 15%);\n@navbar-inverse-link-hover-color:           #fff;\n@navbar-inverse-link-hover-bg:              transparent;\n@navbar-inverse-link-active-color:          @navbar-inverse-link-hover-color;\n@navbar-inverse-link-active-bg:             darken(@navbar-inverse-bg, 10%);\n@navbar-inverse-link-disabled-color:        #444;\n@navbar-inverse-link-disabled-bg:           transparent;\n\n// Inverted navbar brand label\n@navbar-inverse-brand-color:                @navbar-inverse-link-color;\n@navbar-inverse-brand-hover-color:          #fff;\n@navbar-inverse-brand-hover-bg:             transparent;\n\n// Inverted navbar toggle\n@navbar-inverse-toggle-hover-bg:            #333;\n@navbar-inverse-toggle-icon-bar-bg:         #fff;\n@navbar-inverse-toggle-border-color:        #333;\n\n\n//== Navs\n//\n//##\n\n//=== Shared nav styles\n@nav-link-padding:                          10px 15px;\n@nav-link-hover-bg:                         @gray-lighter;\n\n@nav-disabled-link-color:                   @gray-light;\n@nav-disabled-link-hover-color:             @gray-light;\n\n//== Tabs\n@nav-tabs-border-color:                     #ddd;\n\n@nav-tabs-link-hover-border-color:          @gray-lighter;\n\n@nav-tabs-active-link-hover-bg:             @body-bg;\n@nav-tabs-active-link-hover-color:          @gray;\n@nav-tabs-active-link-hover-border-color:   #ddd;\n\n@nav-tabs-justified-link-border-color:            #ddd;\n@nav-tabs-justified-active-link-border-color:     @body-bg;\n\n//== Pills\n@nav-pills-border-radius:                   @border-radius-base;\n@nav-pills-active-link-hover-bg:            @component-active-bg;\n@nav-pills-active-link-hover-color:         @component-active-color;\n\n\n//== Pagination\n//\n//##\n\n@pagination-color:                     @link-color;\n@pagination-bg:                        #fff;\n@pagination-border:                    #ddd;\n\n@pagination-hover-color:               @link-hover-color;\n@pagination-hover-bg:                  @gray-lighter;\n@pagination-hover-border:              #ddd;\n\n@pagination-active-color:              #fff;\n@pagination-active-bg:                 @brand-primary;\n@pagination-active-border:             @brand-primary;\n\n@pagination-disabled-color:            @gray-light;\n@pagination-disabled-bg:               #fff;\n@pagination-disabled-border:           #ddd;\n\n\n//== Pager\n//\n//##\n\n@pager-bg:                             @pagination-bg;\n@pager-border:                         @pagination-border;\n@pager-border-radius:                  15px;\n\n@pager-hover-bg:                       @pagination-hover-bg;\n\n@pager-active-bg:                      @pagination-active-bg;\n@pager-active-color:                   @pagination-active-color;\n\n@pager-disabled-color:                 @pagination-disabled-color;\n\n\n//== Jumbotron\n//\n//##\n\n@jumbotron-padding:              30px;\n@jumbotron-color:                inherit;\n@jumbotron-bg:                   @gray-lighter;\n@jumbotron-heading-color:        inherit;\n@jumbotron-font-size:            ceil((@font-size-base * 1.5));\n@jumbotron-heading-font-size:    ceil((@font-size-base * 4.5));\n\n\n//== Form states and alerts\n//\n//## Define colors for form feedback states and, by default, alerts.\n\n@state-success-text:             #3c763d;\n@state-success-bg:               #dff0d8;\n@state-success-border:           darken(spin(@state-success-bg, -10), 5%);\n\n@state-info-text:                #31708f;\n@state-info-bg:                  #d9edf7;\n@state-info-border:              darken(spin(@state-info-bg, -10), 7%);\n\n@state-warning-text:             #8a6d3b;\n@state-warning-bg:               #fcf8e3;\n@state-warning-border:           darken(spin(@state-warning-bg, -10), 5%);\n\n@state-danger-text:              #a94442;\n@state-danger-bg:                #f2dede;\n@state-danger-border:            darken(spin(@state-danger-bg, -10), 5%);\n\n\n//== Tooltips\n//\n//##\n\n//** Tooltip max width\n@tooltip-max-width:           200px;\n//** Tooltip text color\n@tooltip-color:               #fff;\n//** Tooltip background color\n@tooltip-bg:                  #000;\n@tooltip-opacity:             .9;\n\n//** Tooltip arrow width\n@tooltip-arrow-width:         5px;\n//** Tooltip arrow color\n@tooltip-arrow-color:         @tooltip-bg;\n\n\n//== Popovers\n//\n//##\n\n//** Popover body background color\n@popover-bg:                          #fff;\n//** Popover maximum width\n@popover-max-width:                   276px;\n//** Popover border color\n@popover-border-color:                rgba(0, 0, 0, .2);\n//** Popover fallback border color\n@popover-fallback-border-color:       #ccc;\n\n//** Popover title background color\n@popover-title-bg:                    darken(@popover-bg, 3%);\n\n//** Popover arrow width\n@popover-arrow-width:                 10px;\n//** Popover arrow color\n@popover-arrow-color:                 @popover-bg;\n\n//** Popover outer arrow width\n@popover-arrow-outer-width:           (@popover-arrow-width + 1);\n//** Popover outer arrow color\n@popover-arrow-outer-color:           fadein(@popover-border-color, 5%);\n//** Popover outer arrow fallback color\n@popover-arrow-outer-fallback-color:  darken(@popover-fallback-border-color, 20%);\n\n\n//== Labels\n//\n//##\n\n//** Default label background color\n@label-default-bg:            @gray-light;\n//** Primary label background color\n@label-primary-bg:            @brand-primary;\n//** Success label background color\n@label-success-bg:            @brand-success;\n//** Info label background color\n@label-info-bg:               @brand-info;\n//** Warning label background color\n@label-warning-bg:            @brand-warning;\n//** Danger label background color\n@label-danger-bg:             @brand-danger;\n\n//** Default label text color\n@label-color:                 #fff;\n//** Default text color of a linked label\n@label-link-hover-color:      #fff;\n\n\n//== Modals\n//\n//##\n\n//** Padding applied to the modal body\n@modal-inner-padding:         15px;\n\n//** Padding applied to the modal title\n@modal-title-padding:         15px;\n//** Modal title line-height\n@modal-title-line-height:     @line-height-base;\n\n//** Background color of modal content area\n@modal-content-bg:                             #fff;\n//** Modal content border color\n@modal-content-border-color:                   rgba(0, 0, 0, .2);\n//** Modal content border color **for IE8**\n@modal-content-fallback-border-color:          #999;\n\n//** Modal backdrop background color\n@modal-backdrop-bg:           #000;\n//** Modal backdrop opacity\n@modal-backdrop-opacity:      .5;\n//** Modal header border color\n@modal-header-border-color:   #e5e5e5;\n//** Modal footer border color\n@modal-footer-border-color:   @modal-header-border-color;\n\n@modal-lg:                    900px;\n@modal-md:                    600px;\n@modal-sm:                    300px;\n\n\n//== Alerts\n//\n//## Define alert colors, border radius, and padding.\n\n@alert-padding:               15px;\n@alert-border-radius:         @border-radius-base;\n@alert-link-font-weight:      bold;\n\n@alert-success-bg:            @state-success-bg;\n@alert-success-text:          @state-success-text;\n@alert-success-border:        @state-success-border;\n\n@alert-info-bg:               @state-info-bg;\n@alert-info-text:             @state-info-text;\n@alert-info-border:           @state-info-border;\n\n@alert-warning-bg:            @state-warning-bg;\n@alert-warning-text:          @state-warning-text;\n@alert-warning-border:        @state-warning-border;\n\n@alert-danger-bg:             @state-danger-bg;\n@alert-danger-text:           @state-danger-text;\n@alert-danger-border:         @state-danger-border;\n\n\n//== Progress bars\n//\n//##\n\n//** Background color of the whole progress component\n@progress-bg:                 #f5f5f5;\n//** Progress bar text color\n@progress-bar-color:          #fff;\n//** Variable for setting rounded corners on progress bar.\n@progress-border-radius:      @border-radius-base;\n\n//** Default progress bar color\n@progress-bar-bg:             @brand-primary;\n//** Success progress bar color\n@progress-bar-success-bg:     @brand-success;\n//** Warning progress bar color\n@progress-bar-warning-bg:     @brand-warning;\n//** Danger progress bar color\n@progress-bar-danger-bg:      @brand-danger;\n//** Info progress bar color\n@progress-bar-info-bg:        @brand-info;\n\n\n//== List group\n//\n//##\n\n//** Background color on `.list-group-item`\n@list-group-bg:                 #fff;\n//** `.list-group-item` border color\n@list-group-border:             #ddd;\n//** List group border radius\n@list-group-border-radius:      @border-radius-base;\n\n//** Background color of single list items on hover\n@list-group-hover-bg:           #f5f5f5;\n//** Text color of active list items\n@list-group-active-color:       @component-active-color;\n//** Background color of active list items\n@list-group-active-bg:          @component-active-bg;\n//** Border color of active list elements\n@list-group-active-border:      @list-group-active-bg;\n//** Text color for content within active list items\n@list-group-active-text-color:  lighten(@list-group-active-bg, 40%);\n\n//** Text color of disabled list items\n@list-group-disabled-color:      @gray-light;\n//** Background color of disabled list items\n@list-group-disabled-bg:         @gray-lighter;\n//** Text color for content within disabled list items\n@list-group-disabled-text-color: @list-group-disabled-color;\n\n@list-group-link-color:         #555;\n@list-group-link-hover-color:   @list-group-link-color;\n@list-group-link-heading-color: #333;\n\n\n//== Panels\n//\n//##\n\n@panel-bg:                    #fff;\n@panel-body-padding:          15px;\n@panel-heading-padding:       10px 15px;\n@panel-footer-padding:        @panel-heading-padding;\n@panel-border-radius:         @border-radius-base;\n\n//** Border color for elements within panels\n@panel-inner-border:          #ddd;\n@panel-footer-bg:             #f5f5f5;\n\n@panel-default-text:          @gray-dark;\n@panel-default-border:        #ddd;\n@panel-default-heading-bg:    #f5f5f5;\n\n@panel-primary-text:          #fff;\n@panel-primary-border:        @brand-primary;\n@panel-primary-heading-bg:    @brand-primary;\n\n@panel-success-text:          @state-success-text;\n@panel-success-border:        @state-success-border;\n@panel-success-heading-bg:    @state-success-bg;\n\n@panel-info-text:             @state-info-text;\n@panel-info-border:           @state-info-border;\n@panel-info-heading-bg:       @state-info-bg;\n\n@panel-warning-text:          @state-warning-text;\n@panel-warning-border:        @state-warning-border;\n@panel-warning-heading-bg:    @state-warning-bg;\n\n@panel-danger-text:           @state-danger-text;\n@panel-danger-border:         @state-danger-border;\n@panel-danger-heading-bg:     @state-danger-bg;\n\n\n//== Thumbnails\n//\n//##\n\n//** Padding around the thumbnail image\n@thumbnail-padding:           4px;\n//** Thumbnail background color\n@thumbnail-bg:                @body-bg;\n//** Thumbnail border color\n@thumbnail-border:            #ddd;\n//** Thumbnail border radius\n@thumbnail-border-radius:     @border-radius-base;\n\n//** Custom text color for thumbnail captions\n@thumbnail-caption-color:     @text-color;\n//** Padding around the thumbnail caption\n@thumbnail-caption-padding:   9px;\n\n\n//== Wells\n//\n//##\n\n@well-bg:                     #f5f5f5;\n@well-border:                 darken(@well-bg, 7%);\n\n\n//== Badges\n//\n//##\n\n@badge-color:                 #fff;\n//** Linked badge text color on hover\n@badge-link-hover-color:      #fff;\n@badge-bg:                    @gray-light;\n\n//** Badge text color in active nav link\n@badge-active-color:          @link-color;\n//** Badge background color in active nav link\n@badge-active-bg:             #fff;\n\n@badge-font-weight:           bold;\n@badge-line-height:           1;\n@badge-border-radius:         10px;\n\n\n//== Breadcrumbs\n//\n//##\n\n@breadcrumb-padding-vertical:   8px;\n@breadcrumb-padding-horizontal: 15px;\n//** Breadcrumb background color\n@breadcrumb-bg:                 #f5f5f5;\n//** Breadcrumb text color\n@breadcrumb-color:              #ccc;\n//** Text color of current page in the breadcrumb\n@breadcrumb-active-color:       @gray-light;\n//** Textual separator for between breadcrumb elements\n@breadcrumb-separator:          \"/\";\n\n\n//== Carousel\n//\n//##\n\n@carousel-text-shadow:                        0 1px 2px rgba(0, 0, 0, .6);\n\n@carousel-control-color:                      #fff;\n@carousel-control-width:                      15%;\n@carousel-control-opacity:                    .5;\n@carousel-control-font-size:                  20px;\n\n@carousel-indicator-active-bg:                #fff;\n@carousel-indicator-border-color:             #fff;\n\n@carousel-caption-color:                      #fff;\n\n\n//== Close\n//\n//##\n\n@close-font-weight:           bold;\n@close-color:                 #000;\n@close-text-shadow:           0 1px 0 #fff;\n\n\n//== Code\n//\n//##\n\n@code-color:                  #c7254e;\n@code-bg:                     #f9f2f4;\n\n@kbd-color:                   #fff;\n@kbd-bg:                      #333;\n\n@pre-bg:                      #f5f5f5;\n@pre-color:                   @gray-dark;\n@pre-border-color:            #ccc;\n@pre-scrollable-max-height:   340px;\n\n\n//== Type\n//\n//##\n\n//** Horizontal offset for forms and lists.\n@component-offset-horizontal: 180px;\n//** Text muted color\n@text-muted:                  @gray-light;\n//** Abbreviations and acronyms border color\n@abbr-border-color:           @gray-light;\n//** Headings small color\n@headings-small-color:        @gray-light;\n//** Blockquote small color\n@blockquote-small-color:      @gray-light;\n//** Blockquote font size\n@blockquote-font-size:        (@font-size-base * 1.25);\n//** Blockquote border color\n@blockquote-border-color:     @gray-lighter;\n//** Page header border color\n@page-header-border-color:    @gray-lighter;\n//** Width of horizontal description list titles\n@dl-horizontal-offset:        @component-offset-horizontal;\n//** Point at which .dl-horizontal becomes horizontal\n@dl-horizontal-breakpoint:    @grid-float-breakpoint;\n//** Horizontal line color.\n@hr-border:                   @gray-lighter;\n"
  },
  {
    "path": "dist/lib/bootstrap3/wells.less",
    "content": "//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n  min-height: 20px;\n  padding: 19px;\n  margin-bottom: 20px;\n  background-color: @well-bg;\n  border: 1px solid @well-border;\n  border-radius: @border-radius-base;\n  .box-shadow(inset 0 1px 1px rgba(0, 0, 0, .05));\n  blockquote {\n    border-color: #ddd;\n    border-color: rgba(0, 0, 0, .15);\n  }\n}\n\n// Sizes\n.well-lg {\n  padding: 24px;\n  border-radius: @border-radius-large;\n}\n.well-sm {\n  padding: 9px;\n  border-radius: @border-radius-small;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_alert.scss",
    "content": "//\n// Base styles\n//\n\n.alert {\n  position: relative;\n  padding: $alert-padding-y $alert-padding-x;\n  margin-bottom: $alert-margin-bottom;\n  border: $alert-border-width solid transparent;\n  @include border-radius($alert-border-radius);\n}\n\n// Headings for larger alerts\n.alert-heading {\n  // Specified to prevent conflicts of changing $headings-color\n  color: inherit;\n}\n\n// Provide class for links that match alerts\n.alert-link {\n  font-weight: $alert-link-font-weight;\n}\n\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissible {\n  padding-right: $close-font-size + $alert-padding-x * 2;\n\n  // Adjust close link position\n  .close {\n    position: absolute;\n    top: 0;\n    right: 0;\n    z-index: 2;\n    padding: $alert-padding-y $alert-padding-x;\n    color: inherit;\n  }\n}\n\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n@each $color, $value in $theme-colors {\n  .alert-#{$color} {\n    @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_badge.scss",
    "content": "// Base class\n//\n// Requires one of the contextual, color modifier classes for `color` and\n// `background-color`.\n\n.badge {\n  display: inline-block;\n  padding: $badge-padding-y $badge-padding-x;\n  @include font-size($badge-font-size);\n  font-weight: $badge-font-weight;\n  line-height: 1;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  @include border-radius($badge-border-radius);\n  @include transition($badge-transition);\n\n  @at-root a#{&} {\n    @include hover-focus() {\n      text-decoration: none;\n    }\n  }\n\n  // Empty badges collapse automatically\n  &:empty {\n    display: none;\n  }\n}\n\n// Quick fix for badges in buttons\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n\n// Pill badges\n//\n// Make them extra rounded with a modifier to replace v3's badges.\n\n.badge-pill {\n  padding-right: $badge-pill-padding-x;\n  padding-left: $badge-pill-padding-x;\n  @include border-radius($badge-pill-border-radius);\n}\n\n// Colors\n//\n// Contextual variations (linked badges get darker on :hover).\n\n@each $color, $value in $theme-colors {\n  .badge-#{$color} {\n    @include badge-variant($value);\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_breadcrumb.scss",
    "content": ".breadcrumb {\n  display: flex;\n  flex-wrap: wrap;\n  padding: $breadcrumb-padding-y $breadcrumb-padding-x;\n  margin-bottom: $breadcrumb-margin-bottom;\n  @include font-size($breadcrumb-font-size);\n  list-style: none;\n  background-color: $breadcrumb-bg;\n  @include border-radius($breadcrumb-border-radius);\n}\n\n.breadcrumb-item {\n  // The separator between breadcrumbs (by default, a forward-slash: \"/\")\n  + .breadcrumb-item {\n    padding-left: $breadcrumb-item-padding;\n\n    &::before {\n      float: left; // Suppress inline spacings and underlining of the separator\n      padding-right: $breadcrumb-item-padding;\n      color: $breadcrumb-divider-color;\n      content: escape-svg($breadcrumb-divider);\n    }\n  }\n\n  // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built\n  // without `<ul>`s. The `::before` pseudo-element generates an element\n  // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.\n  //\n  // To trick IE into suppressing the underline, we give the pseudo-element an\n  // underline and then immediately remove it.\n  + .breadcrumb-item:hover::before {\n    text-decoration: underline;\n  }\n  // stylelint-disable-next-line no-duplicate-selectors\n  + .breadcrumb-item:hover::before {\n    text-decoration: none;\n  }\n\n  &.active {\n    color: $breadcrumb-active-color;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_button-group.scss",
    "content": "// stylelint-disable selector-no-qualifying-type\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-flex;\n  vertical-align: middle; // match .btn alignment given font-size hack above\n\n  > .btn {\n    position: relative;\n    flex: 1 1 auto;\n\n    // Bring the hover, focused, and \"active\" buttons to the front to overlay\n    // the borders properly\n    @include hover() {\n      z-index: 1;\n    }\n    &:focus,\n    &:active,\n    &.active {\n      z-index: 1;\n    }\n  }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n\n  .input-group {\n    width: auto;\n  }\n}\n\n.btn-group {\n  // Prevent double borders when buttons are next to each other\n  > .btn:not(:first-child),\n  > .btn-group:not(:first-child) {\n    margin-left: -$btn-border-width;\n  }\n\n  // Reset rounded corners\n  > .btn:not(:last-child):not(.dropdown-toggle),\n  > .btn-group:not(:last-child) > .btn {\n    @include border-right-radius(0);\n  }\n\n  > .btn:not(:first-child),\n  > .btn-group:not(:first-child) > .btn {\n    @include border-left-radius(0);\n  }\n}\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n//\n// Split button dropdowns\n//\n\n.dropdown-toggle-split {\n  padding-right: $btn-padding-x * .75;\n  padding-left: $btn-padding-x * .75;\n\n  &::after,\n  .dropup &::after,\n  .dropright &::after {\n    margin-left: 0;\n  }\n\n  .dropleft &::before {\n    margin-right: 0;\n  }\n}\n\n.btn-sm + .dropdown-toggle-split {\n  padding-right: $btn-padding-x-sm * .75;\n  padding-left: $btn-padding-x-sm * .75;\n}\n\n.btn-lg + .dropdown-toggle-split {\n  padding-right: $btn-padding-x-lg * .75;\n  padding-left: $btn-padding-x-lg * .75;\n}\n\n\n// The clickable button for toggling the menu\n// Set the same inset shadow as the :active state\n.btn-group.show .dropdown-toggle {\n  @include box-shadow($btn-active-box-shadow);\n\n  // Show no shadow for `.btn-link` since it has no other button styles.\n  &.btn-link {\n    @include box-shadow(none);\n  }\n}\n\n\n//\n// Vertical button groups\n//\n\n.btn-group-vertical {\n  flex-direction: column;\n  align-items: flex-start;\n  justify-content: center;\n\n  > .btn,\n  > .btn-group {\n    width: 100%;\n  }\n\n  > .btn:not(:first-child),\n  > .btn-group:not(:first-child) {\n    margin-top: -$btn-border-width;\n  }\n\n  // Reset rounded corners\n  > .btn:not(:last-child):not(.dropdown-toggle),\n  > .btn-group:not(:last-child) > .btn {\n    @include border-bottom-radius(0);\n  }\n\n  > .btn:not(:first-child),\n  > .btn-group:not(:first-child) > .btn {\n    @include border-top-radius(0);\n  }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n.btn-group-toggle {\n  > .btn,\n  > .btn-group > .btn {\n    margin-bottom: 0; // Override default `<label>` value\n\n    input[type=\"radio\"],\n    input[type=\"checkbox\"] {\n      position: absolute;\n      clip: rect(0, 0, 0, 0);\n      pointer-events: none;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_buttons.scss",
    "content": "// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.btn {\n  display: inline-block;\n  font-family: $btn-font-family;\n  font-weight: $btn-font-weight;\n  color: $body-color;\n  text-align: center;\n  text-decoration: if($link-decoration == none, null, none);\n  white-space: $btn-white-space;\n  vertical-align: middle;\n  user-select: none;\n  background-color: transparent;\n  border: $btn-border-width solid transparent;\n  @include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-line-height, $btn-border-radius);\n  @include transition($btn-transition);\n\n  @include hover() {\n    color: $body-color;\n    text-decoration: none;\n  }\n\n  &:focus,\n  &.focus {\n    outline: 0;\n    box-shadow: $btn-focus-box-shadow;\n  }\n\n  // Disabled comes first so active can properly restyle\n  &.disabled,\n  &:disabled {\n    opacity: $btn-disabled-opacity;\n    @include box-shadow(none);\n  }\n\n  &:not(:disabled):not(.disabled) {\n    cursor: if($enable-pointer-cursor-for-buttons, pointer, null);\n\n    &:active,\n    &.active {\n      @include box-shadow($btn-active-box-shadow);\n\n      &:focus {\n        @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);\n      }\n    }\n  }\n}\n\n// Future-proof disabling of clicks on `<a>` elements\na.btn.disabled,\nfieldset:disabled a.btn {\n  pointer-events: none;\n}\n\n\n//\n// Alternate buttons\n//\n\n@each $color, $value in $theme-colors {\n  .btn-#{$color} {\n    @include button-variant($value, $value);\n  }\n}\n\n@each $color, $value in $theme-colors {\n  .btn-outline-#{$color} {\n    @include button-outline-variant($value);\n  }\n}\n\n\n//\n// Link buttons\n//\n\n// Make a button look and behave like a link\n.btn-link {\n  font-weight: $font-weight-normal;\n  color: $link-color;\n  text-decoration: $link-decoration;\n\n  @include hover() {\n    color: $link-hover-color;\n    text-decoration: $link-hover-decoration;\n  }\n\n  &:focus,\n  &.focus {\n    text-decoration: $link-hover-decoration;\n  }\n\n  &:disabled,\n  &.disabled {\n    color: $btn-link-disabled-color;\n    pointer-events: none;\n  }\n\n  // No need for an active state here\n}\n\n\n//\n// Button Sizes\n//\n\n.btn-lg {\n  @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);\n}\n\n.btn-sm {\n  @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);\n}\n\n\n//\n// Block button\n//\n\n.btn-block {\n  display: block;\n  width: 100%;\n\n  // Vertically space out multiple block buttons\n  + .btn-block {\n    margin-top: $btn-block-spacing-y;\n  }\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n  &.btn-block {\n    width: 100%;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_card.scss",
    "content": "//\n// Base styles\n//\n\n.card {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106\n  height: $card-height;\n  word-wrap: break-word;\n  background-color: $card-bg;\n  background-clip: border-box;\n  border: $card-border-width solid $card-border-color;\n  @include border-radius($card-border-radius);\n\n  > hr {\n    margin-right: 0;\n    margin-left: 0;\n  }\n\n  > .list-group {\n    border-top: inherit;\n    border-bottom: inherit;\n\n    &:first-child {\n      border-top-width: 0;\n      @include border-top-radius($card-inner-border-radius);\n    }\n\n    &:last-child  {\n      border-bottom-width: 0;\n      @include border-bottom-radius($card-inner-border-radius);\n    }\n  }\n\n  // Due to specificity of the above selector (`.card > .list-group`), we must\n  // use a child selector here to prevent double borders.\n  > .card-header + .list-group,\n  > .list-group + .card-footer {\n    border-top: 0;\n  }\n}\n\n.card-body {\n  // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n  // as much space as possible, ensuring footers are aligned to the bottom.\n  flex: 1 1 auto;\n  // Workaround for the image size bug in IE\n  // See: https://github.com/twbs/bootstrap/pull/28855\n  min-height: 1px;\n  padding: $card-spacer-x;\n  color: $card-color;\n}\n\n.card-title {\n  margin-bottom: $card-spacer-y;\n}\n\n.card-subtitle {\n  margin-top: -$card-spacer-y / 2;\n  margin-bottom: 0;\n}\n\n.card-text:last-child {\n  margin-bottom: 0;\n}\n\n.card-link {\n  @include hover() {\n    text-decoration: none;\n  }\n\n  + .card-link {\n    margin-left: $card-spacer-x;\n  }\n}\n\n//\n// Optional textual caps\n//\n\n.card-header {\n  padding: $card-spacer-y $card-spacer-x;\n  margin-bottom: 0; // Removes the default margin-bottom of <hN>\n  color: $card-cap-color;\n  background-color: $card-cap-bg;\n  border-bottom: $card-border-width solid $card-border-color;\n\n  &:first-child {\n    @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);\n  }\n}\n\n.card-footer {\n  padding: $card-spacer-y $card-spacer-x;\n  color: $card-cap-color;\n  background-color: $card-cap-bg;\n  border-top: $card-border-width solid $card-border-color;\n\n  &:last-child {\n    @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);\n  }\n}\n\n\n//\n// Header navs\n//\n\n.card-header-tabs {\n  margin-right: -$card-spacer-x / 2;\n  margin-bottom: -$card-spacer-y;\n  margin-left: -$card-spacer-x / 2;\n  border-bottom: 0;\n}\n\n.card-header-pills {\n  margin-right: -$card-spacer-x / 2;\n  margin-left: -$card-spacer-x / 2;\n}\n\n// Card image\n.card-img-overlay {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: $card-img-overlay-padding;\n  @include border-radius($card-inner-border-radius);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n  flex-shrink: 0; // For IE: https://github.com/twbs/bootstrap/issues/29396\n  width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n}\n\n.card-img,\n.card-img-top {\n  @include border-top-radius($card-inner-border-radius);\n}\n\n.card-img,\n.card-img-bottom {\n  @include border-bottom-radius($card-inner-border-radius);\n}\n\n\n// Card deck\n\n.card-deck {\n  .card {\n    margin-bottom: $card-deck-margin;\n  }\n\n  @include media-breakpoint-up(sm) {\n    display: flex;\n    flex-flow: row wrap;\n    margin-right: -$card-deck-margin;\n    margin-left: -$card-deck-margin;\n\n    .card {\n      // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n      flex: 1 0 0%;\n      margin-right: $card-deck-margin;\n      margin-bottom: 0; // Override the default\n      margin-left: $card-deck-margin;\n    }\n  }\n}\n\n\n//\n// Card groups\n//\n\n.card-group {\n  // The child selector allows nested `.card` within `.card-group`\n  // to display properly.\n  > .card {\n    margin-bottom: $card-group-margin;\n  }\n\n  @include media-breakpoint-up(sm) {\n    display: flex;\n    flex-flow: row wrap;\n    // The child selector allows nested `.card` within `.card-group`\n    // to display properly.\n    > .card {\n      // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n      flex: 1 0 0%;\n      margin-bottom: 0;\n\n      + .card {\n        margin-left: 0;\n        border-left: 0;\n      }\n\n      // Handle rounded corners\n      @if $enable-rounded {\n        &:not(:last-child) {\n          @include border-right-radius(0);\n\n          .card-img-top,\n          .card-header {\n            // stylelint-disable-next-line property-disallowed-list\n            border-top-right-radius: 0;\n          }\n          .card-img-bottom,\n          .card-footer {\n            // stylelint-disable-next-line property-disallowed-list\n            border-bottom-right-radius: 0;\n          }\n        }\n\n        &:not(:first-child) {\n          @include border-left-radius(0);\n\n          .card-img-top,\n          .card-header {\n            // stylelint-disable-next-line property-disallowed-list\n            border-top-left-radius: 0;\n          }\n          .card-img-bottom,\n          .card-footer {\n            // stylelint-disable-next-line property-disallowed-list\n            border-bottom-left-radius: 0;\n          }\n        }\n      }\n    }\n  }\n}\n\n\n//\n// Columns\n//\n\n.card-columns {\n  .card {\n    margin-bottom: $card-columns-margin;\n  }\n\n  @include media-breakpoint-up(sm) {\n    column-count: $card-columns-count;\n    column-gap: $card-columns-gap;\n    orphans: 1;\n    widows: 1;\n\n    .card {\n      display: inline-block; // Don't let them vertically span multiple columns\n      width: 100%; // Don't let their width change\n    }\n  }\n}\n\n\n//\n// Accordion\n//\n\n.accordion {\n  overflow-anchor: none;\n\n  > .card {\n    overflow: hidden;\n\n    &:not(:last-of-type) {\n      border-bottom: 0;\n      @include border-bottom-radius(0);\n    }\n\n    &:not(:first-of-type) {\n      @include border-top-radius(0);\n    }\n\n    > .card-header {\n      @include border-radius(0);\n      margin-bottom: -$card-border-width;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_carousel.scss",
    "content": "// Notes on the classes:\n//\n// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)\n//    even when their scroll action started on a carousel, but for compatibility (with Firefox)\n//    we're preventing all actions instead\n// 2. The .carousel-item-left and .carousel-item-right is used to indicate where\n//    the active slide is heading.\n// 3. .active.carousel-item is the current slide.\n// 4. .active.carousel-item-left and .active.carousel-item-right is the current\n//    slide in its in-transition state. Only one of these occurs at a time.\n// 5. .carousel-item-next.carousel-item-left and .carousel-item-prev.carousel-item-right\n//    is the upcoming slide in transition.\n\n.carousel {\n  position: relative;\n}\n\n.carousel.pointer-event {\n  touch-action: pan-y;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n  @include clearfix();\n}\n\n.carousel-item {\n  position: relative;\n  display: none;\n  float: left;\n  width: 100%;\n  margin-right: -100%;\n  backface-visibility: hidden;\n  @include transition($carousel-transition);\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n  display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n  transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n  transform: translateX(-100%);\n}\n\n\n//\n// Alternate transitions\n//\n\n.carousel-fade {\n  .carousel-item {\n    opacity: 0;\n    transition-property: opacity;\n    transform: none;\n  }\n\n  .carousel-item.active,\n  .carousel-item-next.carousel-item-left,\n  .carousel-item-prev.carousel-item-right {\n    z-index: 1;\n    opacity: 1;\n  }\n\n  .active.carousel-item-left,\n  .active.carousel-item-right {\n    z-index: 0;\n    opacity: 0;\n    @include transition(opacity 0s $carousel-transition-duration);\n  }\n}\n\n\n//\n// Left/right controls for nav\n//\n\n.carousel-control-prev,\n.carousel-control-next {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  z-index: 1;\n  // Use flex for alignment (1-3)\n  display: flex; // 1. allow flex styles\n  align-items: center; // 2. vertically center contents\n  justify-content: center; // 3. horizontally center contents\n  width: $carousel-control-width;\n  color: $carousel-control-color;\n  text-align: center;\n  opacity: $carousel-control-opacity;\n  @include transition($carousel-control-transition);\n\n  // Hover/focus state\n  @include hover-focus() {\n    color: $carousel-control-color;\n    text-decoration: none;\n    outline: 0;\n    opacity: $carousel-control-hover-opacity;\n  }\n}\n.carousel-control-prev {\n  left: 0;\n  @if $enable-gradients {\n    background-image: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));\n  }\n}\n.carousel-control-next {\n  right: 0;\n  @if $enable-gradients {\n    background-image: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));\n  }\n}\n\n// Icons for within\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n  display: inline-block;\n  width: $carousel-control-icon-width;\n  height: $carousel-control-icon-width;\n  background: 50% / 100% 100% no-repeat;\n}\n.carousel-control-prev-icon {\n  background-image: escape-svg($carousel-control-prev-icon-bg);\n}\n.carousel-control-next-icon {\n  background-image: escape-svg($carousel-control-next-icon-bg);\n}\n\n\n// Optional indicator pips\n//\n// Add an ordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 15;\n  display: flex;\n  justify-content: center;\n  padding-left: 0; // override <ol> default\n  // Use the .carousel-control's width as margin so we don't overlay those\n  margin-right: $carousel-control-width;\n  margin-left: $carousel-control-width;\n  list-style: none;\n\n  li {\n    box-sizing: content-box;\n    flex: 0 1 auto;\n    width: $carousel-indicator-width;\n    height: $carousel-indicator-height;\n    margin-right: $carousel-indicator-spacer;\n    margin-left: $carousel-indicator-spacer;\n    text-indent: -999px;\n    cursor: pointer;\n    background-color: $carousel-indicator-active-bg;\n    background-clip: padding-box;\n    // Use transparent borders to increase the hit area by 10px on top and bottom.\n    border-top: $carousel-indicator-hit-area-height solid transparent;\n    border-bottom: $carousel-indicator-hit-area-height solid transparent;\n    opacity: .5;\n    @include transition($carousel-indicator-transition);\n  }\n\n  .active {\n    opacity: 1;\n  }\n}\n\n\n// Optional captions\n//\n//\n\n.carousel-caption {\n  position: absolute;\n  right: (100% - $carousel-caption-width) / 2;\n  bottom: 20px;\n  left: (100% - $carousel-caption-width) / 2;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: $carousel-caption-color;\n  text-align: center;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_close.scss",
    "content": ".close {\n  float: right;\n  @include font-size($close-font-size);\n  font-weight: $close-font-weight;\n  line-height: 1;\n  color: $close-color;\n  text-shadow: $close-text-shadow;\n  opacity: .5;\n\n  // Override <a>'s hover style\n  @include hover() {\n    color: $close-color;\n    text-decoration: none;\n  }\n\n  &:not(:disabled):not(.disabled) {\n    @include hover-focus() {\n      opacity: .75;\n    }\n  }\n}\n\n// Additional properties for button version\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n// stylelint-disable-next-line selector-no-qualifying-type\nbutton.close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n}\n\n// Future-proof disabling of clicks on `<a>` elements\n\n// stylelint-disable-next-line selector-no-qualifying-type\na.close.disabled {\n  pointer-events: none;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_code.scss",
    "content": "// Inline code\ncode {\n  @include font-size($code-font-size);\n  color: $code-color;\n  word-wrap: break-word;\n\n  // Streamline the style when inside anchors to avoid broken underline and more\n  a > & {\n    color: inherit;\n  }\n}\n\n// User input typically entered via keyboard\nkbd {\n  padding: $kbd-padding-y $kbd-padding-x;\n  @include font-size($kbd-font-size);\n  color: $kbd-color;\n  background-color: $kbd-bg;\n  @include border-radius($border-radius-sm);\n  @include box-shadow($kbd-box-shadow);\n\n  kbd {\n    padding: 0;\n    @include font-size(100%);\n    font-weight: $nested-kbd-font-weight;\n    @include box-shadow(none);\n  }\n}\n\n// Blocks of code\npre {\n  display: block;\n  @include font-size($code-font-size);\n  color: $pre-color;\n\n  // Account for some code outputs that place code tags in pre tags\n  code {\n    @include font-size(inherit);\n    color: inherit;\n    word-break: normal;\n  }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n  max-height: $pre-scrollable-max-height;\n  overflow-y: scroll;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_custom-forms.scss",
    "content": "// Embedded icons from Open Iconic.\n// Released under MIT and copyright 2014 Waybury.\n// https://useiconic.com/open\n\n\n// Checkboxes and radios\n//\n// Base class takes care of all the key behavioral aspects.\n\n.custom-control {\n  position: relative;\n  z-index: 1;\n  display: block;\n  min-height: $font-size-base * $line-height-base;\n  padding-left: $custom-control-gutter + $custom-control-indicator-size;\n  color-adjust: exact; // Keep themed appearance for print\n}\n\n.custom-control-inline {\n  display: inline-flex;\n  margin-right: $custom-control-spacer-x;\n}\n\n.custom-control-input {\n  position: absolute;\n  left: 0;\n  z-index: -1; // Put the input behind the label so it doesn't overlay text\n  width: $custom-control-indicator-size;\n  height: ($font-size-base * $line-height-base + $custom-control-indicator-size) / 2;\n  opacity: 0;\n\n  &:checked ~ .custom-control-label::before {\n    color: $custom-control-indicator-checked-color;\n    border-color: $custom-control-indicator-checked-border-color;\n    @include gradient-bg($custom-control-indicator-checked-bg);\n    @include box-shadow($custom-control-indicator-checked-box-shadow);\n  }\n\n  &:focus ~ .custom-control-label::before {\n    // the mixin is not used here to make sure there is feedback\n    @if $enable-shadows {\n      box-shadow: $input-box-shadow, $custom-control-indicator-focus-box-shadow;\n    } @else {\n      box-shadow: $custom-control-indicator-focus-box-shadow;\n    }\n  }\n\n  &:focus:not(:checked) ~ .custom-control-label::before {\n    border-color: $custom-control-indicator-focus-border-color;\n  }\n\n  &:not(:disabled):active ~ .custom-control-label::before {\n    color: $custom-control-indicator-active-color;\n    background-color: $custom-control-indicator-active-bg;\n    border-color: $custom-control-indicator-active-border-color;\n    @include box-shadow($custom-control-indicator-active-box-shadow);\n  }\n\n  // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247\n  &[disabled],\n  &:disabled {\n    ~ .custom-control-label {\n      color: $custom-control-label-disabled-color;\n\n      &::before {\n        background-color: $custom-control-indicator-disabled-bg;\n      }\n    }\n  }\n}\n\n// Custom control indicators\n//\n// Build the custom controls out of pseudo-elements.\n\n.custom-control-label {\n  position: relative;\n  margin-bottom: 0;\n  color: $custom-control-label-color;\n  vertical-align: top;\n  cursor: $custom-control-cursor;\n\n  // Background-color and (when enabled) gradient\n  &::before {\n    position: absolute;\n    top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;\n    left: -($custom-control-gutter + $custom-control-indicator-size);\n    display: block;\n    width: $custom-control-indicator-size;\n    height: $custom-control-indicator-size;\n    pointer-events: none;\n    content: \"\";\n    background-color: $custom-control-indicator-bg;\n    border: $custom-control-indicator-border-color solid $custom-control-indicator-border-width;\n    @include box-shadow($custom-control-indicator-box-shadow);\n  }\n\n  // Foreground (icon)\n  &::after {\n    position: absolute;\n    top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;\n    left: -($custom-control-gutter + $custom-control-indicator-size);\n    display: block;\n    width: $custom-control-indicator-size;\n    height: $custom-control-indicator-size;\n    content: \"\";\n    background: 50% / #{$custom-control-indicator-bg-size} no-repeat;\n  }\n}\n\n\n// Checkboxes\n//\n// Tweak just a few things for checkboxes.\n\n.custom-checkbox {\n  .custom-control-label::before {\n    @include border-radius($custom-checkbox-indicator-border-radius);\n  }\n\n  .custom-control-input:checked ~ .custom-control-label {\n    &::after {\n      background-image: escape-svg($custom-checkbox-indicator-icon-checked);\n    }\n  }\n\n  .custom-control-input:indeterminate ~ .custom-control-label {\n    &::before {\n      border-color: $custom-checkbox-indicator-indeterminate-border-color;\n      @include gradient-bg($custom-checkbox-indicator-indeterminate-bg);\n      @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);\n    }\n    &::after {\n      background-image: escape-svg($custom-checkbox-indicator-icon-indeterminate);\n    }\n  }\n\n  .custom-control-input:disabled {\n    &:checked ~ .custom-control-label::before {\n      @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n    }\n    &:indeterminate ~ .custom-control-label::before {\n      @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n    }\n  }\n}\n\n// Radios\n//\n// Tweak just a few things for radios.\n\n.custom-radio {\n  .custom-control-label::before {\n    // stylelint-disable-next-line property-disallowed-list\n    border-radius: $custom-radio-indicator-border-radius;\n  }\n\n  .custom-control-input:checked ~ .custom-control-label {\n    &::after {\n      background-image: escape-svg($custom-radio-indicator-icon-checked);\n    }\n  }\n\n  .custom-control-input:disabled {\n    &:checked ~ .custom-control-label::before {\n      @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n    }\n  }\n}\n\n\n// switches\n//\n// Tweak a few things for switches\n\n.custom-switch {\n  padding-left: $custom-switch-width + $custom-control-gutter;\n\n  .custom-control-label {\n    &::before {\n      left: -($custom-switch-width + $custom-control-gutter);\n      width: $custom-switch-width;\n      pointer-events: all;\n      // stylelint-disable-next-line property-disallowed-list\n      border-radius: $custom-switch-indicator-border-radius;\n    }\n\n    &::after {\n      top: add(($font-size-base * $line-height-base - $custom-control-indicator-size) / 2, $custom-control-indicator-border-width * 2);\n      left: add(-($custom-switch-width + $custom-control-gutter), $custom-control-indicator-border-width * 2);\n      width: $custom-switch-indicator-size;\n      height: $custom-switch-indicator-size;\n      background-color: $custom-control-indicator-border-color;\n      // stylelint-disable-next-line property-disallowed-list\n      border-radius: $custom-switch-indicator-border-radius;\n      @include transition(transform .15s ease-in-out, $custom-forms-transition);\n    }\n  }\n\n  .custom-control-input:checked ~ .custom-control-label {\n    &::after {\n      background-color: $custom-control-indicator-bg;\n      transform: translateX($custom-switch-width - $custom-control-indicator-size);\n    }\n  }\n\n  .custom-control-input:disabled {\n    &:checked ~ .custom-control-label::before {\n      @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n    }\n  }\n}\n\n\n// Select\n//\n// Replaces the browser default select with a custom one, mostly pulled from\n// https://primer.github.io/.\n//\n\n.custom-select {\n  display: inline-block;\n  width: 100%;\n  height: $custom-select-height;\n  padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;\n  font-family: $custom-select-font-family;\n  @include font-size($custom-select-font-size);\n  font-weight: $custom-select-font-weight;\n  line-height: $custom-select-line-height;\n  color: $custom-select-color;\n  vertical-align: middle;\n  background: $custom-select-bg $custom-select-background;\n  border: $custom-select-border-width solid $custom-select-border-color;\n  @include border-radius($custom-select-border-radius, 0);\n  @include box-shadow($custom-select-box-shadow);\n  appearance: none;\n\n  &:focus {\n    border-color: $custom-select-focus-border-color;\n    outline: 0;\n    @if $enable-shadows {\n      @include box-shadow($custom-select-box-shadow, $custom-select-focus-box-shadow);\n    } @else {\n      // Avoid using mixin so we can pass custom focus shadow properly\n      box-shadow: $custom-select-focus-box-shadow;\n    }\n\n    &::-ms-value {\n      // For visual consistency with other platforms/browsers,\n      // suppress the default white text on blue background highlight given to\n      // the selected option text when the (still closed) <select> receives focus\n      // in IE and (under certain conditions) Edge.\n      // See https://github.com/twbs/bootstrap/issues/19398.\n      color: $input-color;\n      background-color: $input-bg;\n    }\n  }\n\n  &[multiple],\n  &[size]:not([size=\"1\"]) {\n    height: auto;\n    padding-right: $custom-select-padding-x;\n    background-image: none;\n  }\n\n  &:disabled {\n    color: $custom-select-disabled-color;\n    background-color: $custom-select-disabled-bg;\n  }\n\n  // Hides the default caret in IE11\n  &::-ms-expand {\n    display: none;\n  }\n\n  // Remove outline from select box in FF\n  &:-moz-focusring {\n    color: transparent;\n    text-shadow: 0 0 0 $custom-select-color;\n  }\n}\n\n.custom-select-sm {\n  height: $custom-select-height-sm;\n  padding-top: $custom-select-padding-y-sm;\n  padding-bottom: $custom-select-padding-y-sm;\n  padding-left: $custom-select-padding-x-sm;\n  @include font-size($custom-select-font-size-sm);\n}\n\n.custom-select-lg {\n  height: $custom-select-height-lg;\n  padding-top: $custom-select-padding-y-lg;\n  padding-bottom: $custom-select-padding-y-lg;\n  padding-left: $custom-select-padding-x-lg;\n  @include font-size($custom-select-font-size-lg);\n}\n\n\n// File\n//\n// Custom file input.\n\n.custom-file {\n  position: relative;\n  display: inline-block;\n  width: 100%;\n  height: $custom-file-height;\n  margin-bottom: 0;\n}\n\n.custom-file-input {\n  position: relative;\n  z-index: 2;\n  width: 100%;\n  height: $custom-file-height;\n  margin: 0;\n  overflow: hidden;\n  opacity: 0;\n\n  &:focus ~ .custom-file-label {\n    border-color: $custom-file-focus-border-color;\n    box-shadow: $custom-file-focus-box-shadow;\n  }\n\n  // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247\n  &[disabled] ~ .custom-file-label,\n  &:disabled ~ .custom-file-label {\n    background-color: $custom-file-disabled-bg;\n  }\n\n  @each $lang, $value in $custom-file-text {\n    &:lang(#{$lang}) ~ .custom-file-label::after {\n      content: $value;\n    }\n  }\n\n  ~ .custom-file-label[data-browse]::after {\n    content: attr(data-browse);\n  }\n}\n\n.custom-file-label {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1;\n  height: $custom-file-height;\n  padding: $custom-file-padding-y $custom-file-padding-x;\n  overflow: hidden;\n  font-family: $custom-file-font-family;\n  font-weight: $custom-file-font-weight;\n  line-height: $custom-file-line-height;\n  color: $custom-file-color;\n  background-color: $custom-file-bg;\n  border: $custom-file-border-width solid $custom-file-border-color;\n  @include border-radius($custom-file-border-radius);\n  @include box-shadow($custom-file-box-shadow);\n\n  &::after {\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    z-index: 3;\n    display: block;\n    height: $custom-file-height-inner;\n    padding: $custom-file-padding-y $custom-file-padding-x;\n    line-height: $custom-file-line-height;\n    color: $custom-file-button-color;\n    content: \"Browse\";\n    @include gradient-bg($custom-file-button-bg);\n    border-left: inherit;\n    @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);\n  }\n}\n\n// Range\n//\n// Style range inputs the same across browsers. Vendor-specific rules for pseudo\n// elements cannot be mixed. As such, there are no shared styles for focus or\n// active states on prefixed selectors.\n\n.custom-range {\n  width: 100%;\n  height: add($custom-range-thumb-height, $custom-range-thumb-focus-box-shadow-width * 2);\n  padding: 0; // Need to reset padding\n  background-color: transparent;\n  appearance: none;\n\n  &:focus {\n    outline: 0;\n\n    // Pseudo-elements must be split across multiple rulesets to have an effect.\n    // No box-shadow() mixin for focus accessibility.\n    &::-webkit-slider-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n    &::-moz-range-thumb     { box-shadow: $custom-range-thumb-focus-box-shadow; }\n    &::-ms-thumb            { box-shadow: $custom-range-thumb-focus-box-shadow; }\n  }\n\n  &::-moz-focus-outer {\n    border: 0;\n  }\n\n  &::-webkit-slider-thumb {\n    width: $custom-range-thumb-width;\n    height: $custom-range-thumb-height;\n    margin-top: ($custom-range-track-height - $custom-range-thumb-height) / 2; // Webkit specific\n    @include gradient-bg($custom-range-thumb-bg);\n    border: $custom-range-thumb-border;\n    @include border-radius($custom-range-thumb-border-radius);\n    @include box-shadow($custom-range-thumb-box-shadow);\n    @include transition($custom-forms-transition);\n    appearance: none;\n\n    &:active {\n      @include gradient-bg($custom-range-thumb-active-bg);\n    }\n  }\n\n  &::-webkit-slider-runnable-track {\n    width: $custom-range-track-width;\n    height: $custom-range-track-height;\n    color: transparent; // Why?\n    cursor: $custom-range-track-cursor;\n    background-color: $custom-range-track-bg;\n    border-color: transparent;\n    @include border-radius($custom-range-track-border-radius);\n    @include box-shadow($custom-range-track-box-shadow);\n  }\n\n  &::-moz-range-thumb {\n    width: $custom-range-thumb-width;\n    height: $custom-range-thumb-height;\n    @include gradient-bg($custom-range-thumb-bg);\n    border: $custom-range-thumb-border;\n    @include border-radius($custom-range-thumb-border-radius);\n    @include box-shadow($custom-range-thumb-box-shadow);\n    @include transition($custom-forms-transition);\n    appearance: none;\n\n    &:active {\n      @include gradient-bg($custom-range-thumb-active-bg);\n    }\n  }\n\n  &::-moz-range-track {\n    width: $custom-range-track-width;\n    height: $custom-range-track-height;\n    color: transparent;\n    cursor: $custom-range-track-cursor;\n    background-color: $custom-range-track-bg;\n    border-color: transparent; // Firefox specific?\n    @include border-radius($custom-range-track-border-radius);\n    @include box-shadow($custom-range-track-box-shadow);\n  }\n\n  &::-ms-thumb {\n    width: $custom-range-thumb-width;\n    height: $custom-range-thumb-height;\n    margin-top: 0; // Edge specific\n    margin-right: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\n    margin-left: $custom-range-thumb-focus-box-shadow-width;  // Workaround that overflowed box-shadow is hidden.\n    @include gradient-bg($custom-range-thumb-bg);\n    border: $custom-range-thumb-border;\n    @include border-radius($custom-range-thumb-border-radius);\n    @include box-shadow($custom-range-thumb-box-shadow);\n    @include transition($custom-forms-transition);\n    appearance: none;\n\n    &:active {\n      @include gradient-bg($custom-range-thumb-active-bg);\n    }\n  }\n\n  &::-ms-track {\n    width: $custom-range-track-width;\n    height: $custom-range-track-height;\n    color: transparent;\n    cursor: $custom-range-track-cursor;\n    background-color: transparent;\n    border-color: transparent;\n    border-width: $custom-range-thumb-height / 2;\n    @include box-shadow($custom-range-track-box-shadow);\n  }\n\n  &::-ms-fill-lower {\n    background-color: $custom-range-track-bg;\n    @include border-radius($custom-range-track-border-radius);\n  }\n\n  &::-ms-fill-upper {\n    margin-right: 15px; // arbitrary?\n    background-color: $custom-range-track-bg;\n    @include border-radius($custom-range-track-border-radius);\n  }\n\n  &:disabled {\n    &::-webkit-slider-thumb {\n      background-color: $custom-range-thumb-disabled-bg;\n    }\n\n    &::-webkit-slider-runnable-track {\n      cursor: default;\n    }\n\n    &::-moz-range-thumb {\n      background-color: $custom-range-thumb-disabled-bg;\n    }\n\n    &::-moz-range-track {\n      cursor: default;\n    }\n\n    &::-ms-thumb {\n      background-color: $custom-range-thumb-disabled-bg;\n    }\n  }\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n  @include transition($custom-forms-transition);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_dropdown.scss",
    "content": "// The dropdown wrapper (`<div>`)\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n  position: relative;\n}\n\n.dropdown-toggle {\n  white-space: nowrap;\n\n  // Generate the caret automatically\n  @include caret();\n}\n\n// The dropdown menu\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: $zindex-dropdown;\n  display: none; // none by default, but block on \"open\" of the menu\n  float: left;\n  min-width: $dropdown-min-width;\n  padding: $dropdown-padding-y $dropdown-padding-x;\n  margin: $dropdown-spacer 0 0; // override default ul\n  @include font-size($dropdown-font-size);\n  color: $dropdown-color;\n  text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n  list-style: none;\n  background-color: $dropdown-bg;\n  background-clip: padding-box;\n  border: $dropdown-border-width solid $dropdown-border-color;\n  @include border-radius($dropdown-border-radius);\n  @include box-shadow($dropdown-box-shadow);\n}\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .dropdown-menu#{$infix}-left {\n      right: auto;\n      left: 0;\n    }\n\n    .dropdown-menu#{$infix}-right {\n      right: 0;\n      left: auto;\n    }\n  }\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// Just add .dropup after the standard .dropdown class and you're set.\n.dropup {\n  .dropdown-menu {\n    top: auto;\n    bottom: 100%;\n    margin-top: 0;\n    margin-bottom: $dropdown-spacer;\n  }\n\n  .dropdown-toggle {\n    @include caret(up);\n  }\n}\n\n.dropright {\n  .dropdown-menu {\n    top: 0;\n    right: auto;\n    left: 100%;\n    margin-top: 0;\n    margin-left: $dropdown-spacer;\n  }\n\n  .dropdown-toggle {\n    @include caret(right);\n    &::after {\n      vertical-align: 0;\n    }\n  }\n}\n\n.dropleft {\n  .dropdown-menu {\n    top: 0;\n    right: 100%;\n    left: auto;\n    margin-top: 0;\n    margin-right: $dropdown-spacer;\n  }\n\n  .dropdown-toggle {\n    @include caret(left);\n    &::before {\n      vertical-align: 0;\n    }\n  }\n}\n\n// When Popper is enabled, reset the basic dropdown position\n// stylelint-disable-next-line no-duplicate-selectors\n.dropdown-menu {\n  &[x-placement^=\"top\"],\n  &[x-placement^=\"right\"],\n  &[x-placement^=\"bottom\"],\n  &[x-placement^=\"left\"] {\n    right: auto;\n    bottom: auto;\n  }\n}\n\n// Dividers (basically an `<hr>`) within the dropdown\n.dropdown-divider {\n  @include nav-divider($dropdown-divider-bg, $dropdown-divider-margin-y, true);\n}\n\n// Links, buttons, and more within the dropdown menu\n//\n// `<button>`-specific styles are denoted with `// For <button>s`\n.dropdown-item {\n  display: block;\n  width: 100%; // For `<button>`s\n  padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n  clear: both;\n  font-weight: $font-weight-normal;\n  color: $dropdown-link-color;\n  text-align: inherit; // For `<button>`s\n  text-decoration: if($link-decoration == none, null, none);\n  white-space: nowrap; // prevent links from randomly breaking onto new lines\n  background-color: transparent; // For `<button>`s\n  border: 0; // For `<button>`s\n\n  // Prevent dropdown overflow if there's no padding\n  // See https://github.com/twbs/bootstrap/pull/27703\n  @if $dropdown-padding-y == 0 {\n    &:first-child {\n      @include border-top-radius($dropdown-inner-border-radius);\n    }\n\n    &:last-child {\n      @include border-bottom-radius($dropdown-inner-border-radius);\n    }\n  }\n\n  @include hover-focus() {\n    color: $dropdown-link-hover-color;\n    text-decoration: none;\n    @include gradient-bg($dropdown-link-hover-bg);\n  }\n\n  &.active,\n  &:active {\n    color: $dropdown-link-active-color;\n    text-decoration: none;\n    @include gradient-bg($dropdown-link-active-bg);\n  }\n\n  &.disabled,\n  &:disabled {\n    color: $dropdown-link-disabled-color;\n    pointer-events: none;\n    background-color: transparent;\n    // Remove CSS gradients if they're enabled\n    @if $enable-gradients {\n      background-image: none;\n    }\n  }\n}\n\n.dropdown-menu.show {\n  display: block;\n}\n\n// Dropdown section headers\n.dropdown-header {\n  display: block;\n  padding: $dropdown-header-padding;\n  margin-bottom: 0; // for use with heading elements\n  @include font-size($font-size-sm);\n  color: $dropdown-header-color;\n  white-space: nowrap; // as with > li > a\n}\n\n// Dropdown text\n.dropdown-item-text {\n  display: block;\n  padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n  color: $dropdown-link-color;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_forms.scss",
    "content": "// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n  display: block;\n  width: 100%;\n  height: $input-height;\n  padding: $input-padding-y $input-padding-x;\n  font-family: $input-font-family;\n  @include font-size($input-font-size);\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n  background-color: $input-bg;\n  background-clip: padding-box;\n  border: $input-border-width solid $input-border-color;\n\n  // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.\n  @include border-radius($input-border-radius, 0);\n\n  @include box-shadow($input-box-shadow);\n  @include transition($input-transition);\n\n  // Unstyle the caret on `<select>`s in IE10+.\n  &::-ms-expand {\n    background-color: transparent;\n    border: 0;\n  }\n\n  // Remove select outline from select box in FF\n  &:-moz-focusring {\n    color: transparent;\n    text-shadow: 0 0 0 $input-color;\n  }\n\n  // Customize the `:focus` state to imitate native WebKit styles.\n  @include form-control-focus($ignore-warning: true);\n\n  // Placeholder\n  &::placeholder {\n    color: $input-placeholder-color;\n    // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n    opacity: 1;\n  }\n\n  // Disabled and read-only inputs\n  //\n  // HTML5 says that controls under a fieldset > legend:first-child won't be\n  // disabled if the fieldset is disabled. Due to implementation difficulty, we\n  // don't honor that edge case; we style them as disabled anyway.\n  &:disabled,\n  &[readonly] {\n    background-color: $input-disabled-bg;\n    // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n    opacity: 1;\n  }\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n  &.form-control {\n    appearance: none; // Fix appearance for date inputs in Safari\n  }\n}\n\nselect.form-control {\n  &:focus::-ms-value {\n    // Suppress the nested default white text on blue background highlight given to\n    // the selected option text when the (still closed) <select> receives focus\n    // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n    // match the appearance of the native widget.\n    // See https://github.com/twbs/bootstrap/issues/19398.\n    color: $input-color;\n    background-color: $input-bg;\n  }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n  display: block;\n  width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n  padding-top: add($input-padding-y, $input-border-width);\n  padding-bottom: add($input-padding-y, $input-border-width);\n  margin-bottom: 0; // Override the `<label>/<legend>` default\n  @include font-size(inherit); // Override the `<legend>` default\n  line-height: $input-line-height;\n}\n\n.col-form-label-lg {\n  padding-top: add($input-padding-y-lg, $input-border-width);\n  padding-bottom: add($input-padding-y-lg, $input-border-width);\n  @include font-size($input-font-size-lg);\n  line-height: $input-line-height-lg;\n}\n\n.col-form-label-sm {\n  padding-top: add($input-padding-y-sm, $input-border-width);\n  padding-bottom: add($input-padding-y-sm, $input-border-width);\n  @include font-size($input-font-size-sm);\n  line-height: $input-line-height-sm;\n}\n\n\n// Readonly controls as plain text\n//\n// Apply class to a readonly input to make it appear like regular plain\n// text (without any border, background color, focus indicator)\n\n.form-control-plaintext {\n  display: block;\n  width: 100%;\n  padding: $input-padding-y 0;\n  margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n  @include font-size($input-font-size);\n  line-height: $input-line-height;\n  color: $input-plaintext-color;\n  background-color: transparent;\n  border: solid transparent;\n  border-width: $input-border-width 0;\n\n  &.form-control-sm,\n  &.form-control-lg {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// Repeated in `_input_group.scss` to avoid Sass extend issues.\n\n.form-control-sm {\n  height: $input-height-sm;\n  padding: $input-padding-y-sm $input-padding-x-sm;\n  @include font-size($input-font-size-sm);\n  line-height: $input-line-height-sm;\n  @include border-radius($input-border-radius-sm);\n}\n\n.form-control-lg {\n  height: $input-height-lg;\n  padding: $input-padding-y-lg $input-padding-x-lg;\n  @include font-size($input-font-size-lg);\n  line-height: $input-line-height-lg;\n  @include border-radius($input-border-radius-lg);\n}\n\n// stylelint-disable-next-line no-duplicate-selectors\nselect.form-control {\n  &[size],\n  &[multiple] {\n    height: auto;\n  }\n}\n\ntextarea.form-control {\n  height: auto;\n}\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n  margin-bottom: $form-group-margin-bottom;\n}\n\n.form-text {\n  display: block;\n  margin-top: $form-text-margin-top;\n}\n\n\n// Form grid\n//\n// Special replacement for our grid system's `.row` for tighter form layouts.\n\n.form-row {\n  display: flex;\n  flex-wrap: wrap;\n  margin-right: -$form-grid-gutter-width / 2;\n  margin-left: -$form-grid-gutter-width / 2;\n\n  > .col,\n  > [class*=\"col-\"] {\n    padding-right: $form-grid-gutter-width / 2;\n    padding-left: $form-grid-gutter-width / 2;\n  }\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.form-check {\n  position: relative;\n  display: block;\n  padding-left: $form-check-input-gutter;\n}\n\n.form-check-input {\n  position: absolute;\n  margin-top: $form-check-input-margin-y;\n  margin-left: -$form-check-input-gutter;\n\n  // Use [disabled] and :disabled for workaround https://github.com/twbs/bootstrap/issues/28247\n  &[disabled] ~ .form-check-label,\n  &:disabled ~ .form-check-label {\n    color: $text-muted;\n  }\n}\n\n.form-check-label {\n  margin-bottom: 0; // Override default `<label>` bottom margin\n}\n\n.form-check-inline {\n  display: inline-flex;\n  align-items: center;\n  padding-left: 0; // Override base .form-check\n  margin-right: $form-check-inline-margin-x;\n\n  // Undo .form-check-input defaults and add some `margin-right`.\n  .form-check-input {\n    position: static;\n    margin-top: 0;\n    margin-right: $form-check-inline-input-margin-x;\n    margin-left: 0;\n  }\n}\n\n\n// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid. Works\n// primarily for client-side validation via scoped `:invalid` and `:valid`\n// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for\n// server side validation.\n\n@each $state, $data in $form-validation-states {\n  @include form-validation-state($state, map-get($data, color), map-get($data, icon));\n}\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n\n.form-inline {\n  display: flex;\n  flex-flow: row wrap;\n  align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)\n\n  // Because we use flex, the initial sizing of checkboxes is collapsed and\n  // doesn't occupy the full-width (which is what we want for xs grid tier),\n  // so we force that here.\n  .form-check {\n    width: 100%;\n  }\n\n  // Kick in the inline\n  @include media-breakpoint-up(sm) {\n    label {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      margin-bottom: 0;\n    }\n\n    // Inline-block all the things for \"inline\"\n    .form-group {\n      display: flex;\n      flex: 0 0 auto;\n      flex-flow: row wrap;\n      align-items: center;\n      margin-bottom: 0;\n    }\n\n    // Allow folks to *not* use `.form-group`\n    .form-control {\n      display: inline-block;\n      width: auto; // Prevent labels from stacking above inputs in `.form-group`\n      vertical-align: middle;\n    }\n\n    // Make static controls behave like regular ones\n    .form-control-plaintext {\n      display: inline-block;\n    }\n\n    .input-group,\n    .custom-select {\n      width: auto;\n    }\n\n    // Remove default margin on radios/checkboxes that were used for stacking, and\n    // then undo the floating of radios and checkboxes to match.\n    .form-check {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: auto;\n      padding-left: 0;\n    }\n    .form-check-input {\n      position: relative;\n      flex-shrink: 0;\n      margin-top: 0;\n      margin-right: $form-check-input-margin-x;\n      margin-left: 0;\n    }\n\n    .custom-control {\n      align-items: center;\n      justify-content: center;\n    }\n    .custom-control-label {\n      margin-bottom: 0;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_functions.scss",
    "content": "// Bootstrap functions\n//\n// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n  $prev-key: null;\n  $prev-num: null;\n  @each $key, $num in $map {\n    @if $prev-num == null or unit($num) == \"%\" or unit($prev-num) == \"%\" {\n      // Do nothing\n    } @else if not comparable($prev-num, $num) {\n      @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n    } @else if $prev-num >= $num {\n      @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n    }\n    $prev-key: $key;\n    $prev-num: $num;\n  }\n}\n\n// Starts at zero\n// Used to ensure the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map, $map-name: \"$grid-breakpoints\") {\n  @if length($map) > 0 {\n    $values: map-values($map);\n    $first-value: nth($values, 1);\n    @if $first-value != 0 {\n      @warn \"First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.\";\n    }\n  }\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Hugo Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n  $index: str-index($string, $search);\n\n  @if $index {\n    @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n  }\n\n  @return $string;\n}\n\n// See https://codepen.io/kevinweber/pen/dXWoRw\n//\n// Requires the use of quotes around data URIs.\n\n@function escape-svg($string) {\n  @if str-index($string, \"data:image/svg+xml\") {\n    @each $char, $encoded in $escaped-characters {\n      // Do not escape the url brackets\n      @if str-index($string, \"url(\") == 1 {\n        $string: url(\"#{str-replace(str-slice($string, 6, -3), $char, $encoded)}\");\n      } @else {\n        $string: str-replace($string, $char, $encoded);\n      }\n    }\n  }\n\n  @return $string;\n}\n\n// Color contrast\n@function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {\n  $r: red($color);\n  $g: green($color);\n  $b: blue($color);\n\n  $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;\n\n  @if ($yiq >= $yiq-contrasted-threshold) {\n    @return $dark;\n  } @else {\n    @return $light;\n  }\n}\n\n// Retrieve color Sass maps\n@function color($key: \"blue\") {\n  @return map-get($colors, $key);\n}\n\n@function theme-color($key: \"primary\") {\n  @return map-get($theme-colors, $key);\n}\n\n@function gray($key: \"100\") {\n  @return map-get($grays, $key);\n}\n\n// Request a theme color level\n@function theme-color-level($color-name: \"primary\", $level: 0) {\n  $color: theme-color($color-name);\n  $color-base: if($level > 0, $black, $white);\n  $level: abs($level);\n\n  @return mix($color-base, $color, $level * $theme-color-interval);\n}\n\n// Return valid calc\n@function add($value1, $value2, $return-calc: true) {\n  @if $value1 == null {\n    @return $value2;\n  }\n\n  @if $value2 == null {\n    @return $value1;\n  }\n\n  @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n    @return $value1 + $value2;\n  }\n\n  @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(\" + \") + $value2);\n}\n\n@function subtract($value1, $value2, $return-calc: true) {\n  @if $value1 == null and $value2 == null {\n    @return null;\n  }\n\n  @if $value1 == null {\n    @return -$value2;\n  }\n\n  @if $value2 == null {\n    @return $value1;\n  }\n\n  @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n    @return $value1 - $value2;\n  }\n\n  @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(\" - \") + $value2);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_grid.scss",
    "content": "// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n  // Single container class with breakpoint max-widths\n  .container,\n  // 100% wide container at all breakpoints\n  .container-fluid {\n    @include make-container();\n  }\n\n  // Responsive containers that are 100% wide until a breakpoint\n  @each $breakpoint, $container-max-width in $container-max-widths {\n    .container-#{$breakpoint} {\n      @extend .container-fluid;\n    }\n\n    @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n      %responsive-container-#{$breakpoint} {\n        max-width: $container-max-width;\n      }\n\n      // Extend each breakpoint which is smaller or equal to the current breakpoint\n      $extend-breakpoint: true;\n\n      @each $name, $width in $grid-breakpoints {\n        @if ($extend-breakpoint) {\n          .container#{breakpoint-infix($name, $grid-breakpoints)} {\n            @extend %responsive-container-#{$breakpoint};\n          }\n\n          // Once the current breakpoint is reached, stop extending\n          @if ($breakpoint == $name) {\n            $extend-breakpoint: false;\n          }\n        }\n      }\n    }\n  }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n  .row {\n    @include make-row();\n  }\n\n  // Remove the negative margin from default .row, then the horizontal padding\n  // from all immediate children columns (to prevent runaway style inheritance).\n  .no-gutters {\n    margin-right: 0;\n    margin-left: 0;\n\n    > .col,\n    > [class*=\"col-\"] {\n      padding-right: 0;\n      padding-left: 0;\n    }\n  }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n  @include make-grid-columns();\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_images.scss",
    "content": "// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n  @include img-fluid();\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n  padding: $thumbnail-padding;\n  background-color: $thumbnail-bg;\n  border: $thumbnail-border-width solid $thumbnail-border-color;\n  @include border-radius($thumbnail-border-radius);\n  @include box-shadow($thumbnail-box-shadow);\n\n  // Keep them at most 100% wide\n  @include img-fluid();\n}\n\n//\n// Figures\n//\n\n.figure {\n  // Ensures the caption's text aligns with the image.\n  display: inline-block;\n}\n\n.figure-img {\n  margin-bottom: calc($spacer /2);\n  line-height: 1;\n}\n\n.figure-caption {\n  @include font-size($figure-caption-font-size);\n  color: $figure-caption-color;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_input-group.scss",
    "content": "// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.input-group {\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; // For form validation feedback\n  align-items: stretch;\n  width: 100%;\n\n  > .form-control,\n  > .form-control-plaintext,\n  > .custom-select,\n  > .custom-file {\n    position: relative; // For focus state's z-index\n    flex: 1 1 auto;\n    width: 1%;\n    min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size\n    margin-bottom: 0;\n\n    + .form-control,\n    + .custom-select,\n    + .custom-file {\n      margin-left: -$input-border-width;\n    }\n  }\n\n  // Bring the \"active\" form control to the top of surrounding elements\n  > .form-control:focus,\n  > .custom-select:focus,\n  > .custom-file .custom-file-input:focus ~ .custom-file-label {\n    z-index: 3;\n  }\n\n  // Bring the custom file input above the label\n  > .custom-file .custom-file-input:focus {\n    z-index: 4;\n  }\n\n  > .form-control,\n  > .custom-select {\n    &:not(:first-child) { @include border-left-radius(0); }\n  }\n\n  // Custom file inputs have more complex markup, thus requiring different\n  // border-radius overrides.\n  > .custom-file {\n    display: flex;\n    align-items: center;\n\n    &:not(:last-child) .custom-file-label,\n    &:not(:first-child) .custom-file-label { @include border-left-radius(0); }\n  }\n\n  &:not(.has-validation) {\n    > .form-control:not(:last-child),\n    > .custom-select:not(:last-child),\n    > .custom-file:not(:last-child) .custom-file-label::after {\n      @include border-right-radius(0);\n    }\n  }\n\n  &.has-validation {\n    > .form-control:nth-last-child(n + 3),\n    > .custom-select:nth-last-child(n + 3),\n    > .custom-file:nth-last-child(n + 3) .custom-file-label::after {\n      @include border-right-radius(0);\n    }\n  }\n}\n\n\n// Prepend and append\n//\n// While it requires one extra layer of HTML for each, dedicated prepend and\n// append elements allow us to 1) be less clever, 2) simplify our selectors, and\n// 3) support HTML5 form validation.\n\n.input-group-prepend,\n.input-group-append {\n  display: flex;\n\n  // Ensure buttons are always above inputs for more visually pleasing borders.\n  // This isn't needed for `.input-group-text` since it shares the same border-color\n  // as our inputs.\n  .btn {\n    position: relative;\n    z-index: 2;\n\n    &:focus {\n      z-index: 3;\n    }\n  }\n\n  .btn + .btn,\n  .btn + .input-group-text,\n  .input-group-text + .input-group-text,\n  .input-group-text + .btn {\n    margin-left: -$input-border-width;\n  }\n}\n\n.input-group-prepend { margin-right: -$input-border-width; }\n.input-group-append { margin-left: -$input-border-width; }\n\n\n// Textual addons\n//\n// Serves as a catch-all element for any text or radio/checkbox input you wish\n// to prepend or append to an input.\n\n.input-group-text {\n  display: flex;\n  align-items: center;\n  padding: $input-padding-y $input-padding-x;\n  margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom\n  @include font-size($input-font-size); // Match inputs\n  font-weight: $font-weight-normal;\n  line-height: $input-line-height;\n  color: $input-group-addon-color;\n  text-align: center;\n  white-space: nowrap;\n  background-color: $input-group-addon-bg;\n  border: $input-border-width solid $input-group-addon-border-color;\n  @include border-radius($input-border-radius);\n\n  // Nuke default margins from checkboxes and radios to vertically center within.\n  input[type=\"radio\"],\n  input[type=\"checkbox\"] {\n    margin-top: 0;\n  }\n}\n\n\n// Sizing\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n  height: $input-height-lg;\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n  padding: $input-padding-y-lg $input-padding-x-lg;\n  @include font-size($input-font-size-lg);\n  line-height: $input-line-height-lg;\n  @include border-radius($input-border-radius-lg);\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n  height: $input-height-sm;\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n  padding: $input-padding-y-sm $input-padding-x-sm;\n  @include font-size($input-font-size-sm);\n  line-height: $input-line-height-sm;\n  @include border-radius($input-border-radius-sm);\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n  padding-right: $custom-select-padding-x + $custom-select-indicator-padding;\n}\n\n\n// Prepend and append rounded corners\n//\n// These rulesets must come after the sizing ones to properly override sm and lg\n// border-radius values when extending. They're more specific than we'd like\n// with the `.input-group >` part, but without it, we cannot override the sizing.\n\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n  @include border-right-radius(0);\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n  @include border-left-radius(0);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_jumbotron.scss",
    "content": ".jumbotron {\n  padding: $jumbotron-padding ($jumbotron-padding / 2);\n  margin-bottom: $jumbotron-padding;\n  color: $jumbotron-color;\n  background-color: $jumbotron-bg;\n  @include border-radius($border-radius-lg);\n\n  @include media-breakpoint-up(sm) {\n    padding: ($jumbotron-padding * 2) $jumbotron-padding;\n  }\n}\n\n.jumbotron-fluid {\n  padding-right: 0;\n  padding-left: 0;\n  @include border-radius(0);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_list-group.scss",
    "content": "// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n  display: flex;\n  flex-direction: column;\n\n  // No need to set list-style: none; since .list-group-item is block level\n  padding-left: 0; // reset padding because ul and ol\n  margin-bottom: 0;\n  @include border-radius($list-group-border-radius);\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive\n// list items. Includes an extra `.active` modifier class for selected items.\n\n.list-group-item-action {\n  width: 100%; // For `<button>`s (anchors become 100% by default though)\n  color: $list-group-action-color;\n  text-align: inherit; // For `<button>`s (anchors inherit)\n\n  // Hover state\n  @include hover-focus() {\n    z-index: 1; // Place hover/focus items above their siblings for proper border styling\n    color: $list-group-action-hover-color;\n    text-decoration: none;\n    background-color: $list-group-hover-bg;\n  }\n\n  &:active {\n    color: $list-group-action-active-color;\n    background-color: $list-group-action-active-bg;\n  }\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: $list-group-item-padding-y $list-group-item-padding-x;\n  color: $list-group-color;\n  text-decoration: if($link-decoration == none, null, none);\n  background-color: $list-group-bg;\n  border: $list-group-border-width solid $list-group-border-color;\n\n  &:first-child {\n    @include border-top-radius(inherit);\n  }\n\n  &:last-child {\n    @include border-bottom-radius(inherit);\n  }\n\n  &.disabled,\n  &:disabled {\n    color: $list-group-disabled-color;\n    pointer-events: none;\n    background-color: $list-group-disabled-bg;\n  }\n\n  // Include both here for `<a>`s and `<button>`s\n  &.active {\n    z-index: 2; // Place active items above their siblings for proper border styling\n    color: $list-group-active-color;\n    background-color: $list-group-active-bg;\n    border-color: $list-group-active-border-color;\n  }\n\n  & + & {\n    border-top-width: 0;\n\n    &.active {\n      margin-top: -$list-group-border-width;\n      border-top-width: $list-group-border-width;\n    }\n  }\n}\n\n\n// Horizontal\n//\n// Change the layout of list group items from vertical (default) to horizontal.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .list-group-horizontal#{$infix} {\n      flex-direction: row;\n\n      > .list-group-item {\n        &:first-child {\n          @include border-bottom-left-radius($list-group-border-radius);\n          @include border-top-right-radius(0);\n        }\n\n        &:last-child {\n          @include border-top-right-radius($list-group-border-radius);\n          @include border-bottom-left-radius(0);\n        }\n\n        &.active {\n          margin-top: 0;\n        }\n\n        + .list-group-item {\n          border-top-width: $list-group-border-width;\n          border-left-width: 0;\n\n          &.active {\n            margin-left: -$list-group-border-width;\n            border-left-width: $list-group-border-width;\n          }\n        }\n      }\n    }\n  }\n}\n\n\n// Flush list items\n//\n// Remove borders and border-radius to keep list group items edge-to-edge. Most\n// useful within other components (e.g., cards).\n\n.list-group-flush {\n  @include border-radius(0);\n\n  > .list-group-item {\n    border-width: 0 0 $list-group-border-width;\n\n    &:last-child {\n      border-bottom-width: 0;\n    }\n  }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n@each $color, $value in $theme-colors {\n  @include list-group-item-variant($color, theme-color-level($color, -9), theme-color-level($color, 6));\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_media.scss",
    "content": ".media {\n  display: flex;\n  align-items: flex-start;\n}\n\n.media-body {\n  flex: 1;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_mixins.scss",
    "content": "// Toggles\n//\n// Used in conjunction with global variables to enable certain theme features.\n\n// Vendor\n@import \"vendor/rfs\";\n\n// Deprecate\n@import \"mixins/deprecate\";\n\n// Utilities\n@import \"mixins/breakpoints\";\n@import \"mixins/hover\";\n@import \"mixins/image\";\n@import \"mixins/badge\";\n@import \"mixins/resize\";\n@import \"mixins/screen-reader\";\n@import \"mixins/size\";\n@import \"mixins/reset-text\";\n@import \"mixins/text-emphasis\";\n@import \"mixins/text-hide\";\n@import \"mixins/text-truncate\";\n@import \"mixins/visibility\";\n\n// Components\n@import \"mixins/alert\";\n@import \"mixins/buttons\";\n@import \"mixins/caret\";\n@import \"mixins/pagination\";\n@import \"mixins/lists\";\n@import \"mixins/list-group\";\n@import \"mixins/nav-divider\";\n@import \"mixins/forms\";\n@import \"mixins/table-row\";\n\n// Skins\n@import \"mixins/background-variant\";\n@import \"mixins/border-radius\";\n@import \"mixins/box-shadow\";\n@import \"mixins/gradients\";\n@import \"mixins/transition\";\n\n// Layout\n@import \"mixins/clearfix\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n@import \"mixins/float\";\n"
  },
  {
    "path": "dist/lib/bootstrap4/_modal.scss",
    "content": "// .modal-open      - body class for killing the scroll\n// .modal           - container to scroll within\n// .modal-dialog    - positioning shell for the actual modal\n// .modal-content   - actual modal w/ bg and corners and stuff\n\n\n.modal-open {\n  // Kill the scroll on the body\n  overflow: hidden;\n\n  .modal {\n    overflow-x: hidden;\n    overflow-y: auto;\n  }\n}\n\n// Container that the modal scrolls within\n.modal {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: $zindex-modal;\n  display: none;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n  // Prevent Chrome on Windows from adding a focus outline. For details, see\n  // https://github.com/twbs/bootstrap/pull/10951.\n  outline: 0;\n  // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a\n  // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\n  // See also https://github.com/twbs/bootstrap/issues/17695\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: $modal-dialog-margin;\n  // allow clicks to pass through for custom click handling to close modal\n  pointer-events: none;\n\n  // When fading in the modal, animate it to slide down\n  .modal.fade & {\n    @include transition($modal-transition);\n    transform: $modal-fade-transform;\n  }\n  .modal.show & {\n    transform: $modal-show-transform;\n  }\n\n  // When trying to close, animate focus to scale\n  .modal.modal-static & {\n    transform: $modal-scale-transform;\n  }\n}\n\n.modal-dialog-scrollable {\n  display: flex; // IE10/11\n  max-height: subtract(100%, $modal-dialog-margin * 2);\n\n  .modal-content {\n    max-height: subtract(100vh, $modal-dialog-margin * 2); // IE10/11\n    overflow: hidden;\n  }\n\n  .modal-header,\n  .modal-footer {\n    flex-shrink: 0;\n  }\n\n  .modal-body {\n    overflow-y: auto;\n  }\n}\n\n.modal-dialog-centered {\n  display: flex;\n  align-items: center;\n  min-height: subtract(100%, $modal-dialog-margin * 2);\n\n  // Ensure `modal-dialog-centered` extends the full height of the view (IE10/11)\n  &::before {\n    display: block; // IE10\n    height: subtract(100vh, $modal-dialog-margin * 2);\n    height: min-content; // Reset height to 0 except on IE\n    content: \"\";\n  }\n\n  // Ensure `.modal-body` shows scrollbar (IE10/11)\n  &.modal-dialog-scrollable {\n    flex-direction: column;\n    justify-content: center;\n    height: 100%;\n\n    .modal-content {\n      max-height: none;\n    }\n\n    &::before {\n      content: none;\n    }\n  }\n}\n\n// Actual modal\n.modal-content {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`\n  // counteract the pointer-events: none; in the .modal-dialog\n  color: $modal-content-color;\n  pointer-events: auto;\n  background-color: $modal-content-bg;\n  background-clip: padding-box;\n  border: $modal-content-border-width solid $modal-content-border-color;\n  @include border-radius($modal-content-border-radius);\n  @include box-shadow($modal-content-box-shadow-xs);\n  // Remove focus outline from opened modal\n  outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: $zindex-modal-backdrop;\n  width: 100vw;\n  height: 100vh;\n  background-color: $modal-backdrop-bg;\n\n  // Fade for backdrop\n  &.fade { opacity: 0; }\n  &.show { opacity: $modal-backdrop-opacity; }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n  display: flex;\n  align-items: flex-start; // so the close btn always stays on the upper right corner\n  justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends\n  padding: $modal-header-padding;\n  border-bottom: $modal-header-border-width solid $modal-header-border-color;\n  @include border-top-radius($modal-content-inner-border-radius);\n\n  .close {\n    padding: $modal-header-padding;\n    // auto on the left force icon to the right even when there is no .modal-title\n    margin: (-$modal-header-padding-y) (-$modal-header-padding-x) (-$modal-header-padding-y) auto;\n  }\n}\n\n// Title text within header\n.modal-title {\n  margin-bottom: 0;\n  line-height: $modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n  position: relative;\n  // Enable `flex-grow: 1` so that the body take up as much space as possible\n  // when there should be a fixed height on `.modal-dialog`.\n  flex: 1 1 auto;\n  padding: $modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center; // vertically center\n  justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items\n  padding: $modal-inner-padding - $modal-footer-margin-between / 2;\n  border-top: $modal-footer-border-width solid $modal-footer-border-color;\n  @include border-bottom-radius($modal-content-inner-border-radius);\n\n  // Place margin between footer elements\n  // This solution is far from ideal because of the universal selector usage,\n  // but is needed to fix https://github.com/twbs/bootstrap/issues/24800\n  > * {\n    margin: $modal-footer-margin-between / 2;\n  }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n// Scale up the modal\n@include media-breakpoint-up(sm) {\n  // Automatically set modal's width for larger viewports\n  .modal-dialog {\n    max-width: $modal-md;\n    margin: $modal-dialog-margin-y-sm-up auto;\n  }\n\n  .modal-dialog-scrollable {\n    max-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);\n\n    .modal-content {\n      max-height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);\n    }\n  }\n\n  .modal-dialog-centered {\n    min-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);\n\n    &::before {\n      height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);\n      height: min-content;\n    }\n  }\n\n  .modal-content {\n    @include box-shadow($modal-content-box-shadow-sm-up);\n  }\n\n  .modal-sm { max-width: $modal-sm; }\n}\n\n@include media-breakpoint-up(lg) {\n  .modal-lg,\n  .modal-xl {\n    max-width: $modal-lg;\n  }\n}\n\n@include media-breakpoint-up(xl) {\n  .modal-xl { max-width: $modal-xl; }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_nav.scss",
    "content": "// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s, `<ul>`s or `<ol>`s.\n\n.nav {\n  display: flex;\n  flex-wrap: wrap;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.nav-link {\n  display: block;\n  padding: $nav-link-padding-y $nav-link-padding-x;\n  text-decoration: if($link-decoration == none, null, none);\n\n  @include hover-focus() {\n    text-decoration: none;\n  }\n\n  // Disabled state lightens text\n  &.disabled {\n    color: $nav-link-disabled-color;\n    pointer-events: none;\n    cursor: default;\n  }\n}\n\n//\n// Tabs\n//\n\n.nav-tabs {\n  border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;\n\n  .nav-link {\n    margin-bottom: -$nav-tabs-border-width;\n    border: $nav-tabs-border-width solid transparent;\n    @include border-top-radius($nav-tabs-border-radius);\n\n    @include hover-focus() {\n      border-color: $nav-tabs-link-hover-border-color;\n    }\n\n    &.disabled {\n      color: $nav-link-disabled-color;\n      background-color: transparent;\n      border-color: transparent;\n    }\n  }\n\n  .nav-link.active,\n  .nav-item.show .nav-link {\n    color: $nav-tabs-link-active-color;\n    background-color: $nav-tabs-link-active-bg;\n    border-color: $nav-tabs-link-active-border-color;\n  }\n\n  .dropdown-menu {\n    // Make dropdown border overlap tab border\n    margin-top: -$nav-tabs-border-width;\n    // Remove the top rounded corners here since there is a hard edge above the menu\n    @include border-top-radius(0);\n  }\n}\n\n\n//\n// Pills\n//\n\n.nav-pills {\n  .nav-link {\n    @include border-radius($nav-pills-border-radius);\n  }\n\n  .nav-link.active,\n  .show > .nav-link {\n    color: $nav-pills-link-active-color;\n    background-color: $nav-pills-link-active-bg;\n  }\n}\n\n\n//\n// Justified variants\n//\n\n.nav-fill {\n  > .nav-link,\n  .nav-item {\n    flex: 1 1 auto;\n    text-align: center;\n  }\n}\n\n.nav-justified {\n  > .nav-link,\n  .nav-item {\n    flex-basis: 0;\n    flex-grow: 1;\n    text-align: center;\n  }\n}\n\n\n// Tabbable tabs\n//\n// Hide tabbable panes to start, show them when `.active`\n\n.tab-content {\n  > .tab-pane {\n    display: none;\n  }\n  > .active {\n    display: block;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_navbar.scss",
    "content": "// Contents\n//\n// Navbar\n// Navbar brand\n// Navbar nav\n// Navbar text\n// Navbar divider\n// Responsive navbar\n// Navbar position\n// Navbar themes\n\n\n// Navbar\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; // allow us to do the line break for collapsing content\n  align-items: center;\n  justify-content: space-between; // space out brand from logo\n  padding: $navbar-padding-y $navbar-padding-x;\n\n  // Because flex properties aren't inherited, we need to redeclare these first\n  // few properties so that content nested within behave properly.\n  %container-flex-properties {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: center;\n    justify-content: space-between;\n  }\n\n  .container,\n  .container-fluid {\n    @extend %container-flex-properties;\n  }\n\n  @each $breakpoint, $container-max-width in $container-max-widths {\n    > .container#{breakpoint-infix($breakpoint, $container-max-widths)} {\n      @extend %container-flex-properties;\n    }\n  }\n}\n\n\n// Navbar brand\n//\n// Used for brand, project, or site names.\n\n.navbar-brand {\n  display: inline-block;\n  padding-top: $navbar-brand-padding-y;\n  padding-bottom: $navbar-brand-padding-y;\n  margin-right: $navbar-padding-x;\n  @include font-size($navbar-brand-font-size);\n  line-height: inherit;\n  white-space: nowrap;\n\n  @include hover-focus() {\n    text-decoration: none;\n  }\n}\n\n\n// Navbar nav\n//\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\n\n.navbar-nav {\n  display: flex;\n  flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n\n  .nav-link {\n    padding-right: 0;\n    padding-left: 0;\n  }\n\n  .dropdown-menu {\n    position: static;\n    float: none;\n  }\n}\n\n\n// Navbar text\n//\n//\n\n.navbar-text {\n  display: inline-block;\n  padding-top: $nav-link-padding-y;\n  padding-bottom: $nav-link-padding-y;\n}\n\n\n// Responsive navbar\n//\n// Custom styles for responsive collapsing and toggling of navbar contents.\n// Powered by the collapse Bootstrap JavaScript plugin.\n\n// When collapsed, prevent the toggleable navbar contents from appearing in\n// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`\n// on the `.navbar` parent.\n.navbar-collapse {\n  flex-basis: 100%;\n  flex-grow: 1;\n  // For always expanded or extra full navbars, ensure content aligns itself\n  // properly vertically. Can be easily overridden with flex utilities.\n  align-items: center;\n}\n\n// Button for toggling the navbar when in its collapsed state\n.navbar-toggler {\n  padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;\n  @include font-size($navbar-toggler-font-size);\n  line-height: 1;\n  background-color: transparent; // remove default button style\n  border: $border-width solid transparent; // remove default button style\n  @include border-radius($navbar-toggler-border-radius);\n\n  @include hover-focus() {\n    text-decoration: none;\n  }\n}\n\n// Keep as a separate element so folks can easily override it with another icon\n// or image file as needed.\n.navbar-toggler-icon {\n  display: inline-block;\n  width: 1.5em;\n  height: 1.5em;\n  vertical-align: middle;\n  content: \"\";\n  background: 50% / 100% 100% no-repeat;\n}\n\n.navbar-nav-scroll {\n  max-height: $navbar-nav-scroll-max-height;\n  overflow-y: auto;\n}\n\n// Generate series of `.navbar-expand-*` responsive classes for configuring\n// where your navbar collapses.\n.navbar-expand {\n  @each $breakpoint in map-keys($grid-breakpoints) {\n    $next: breakpoint-next($breakpoint, $grid-breakpoints);\n    $infix: breakpoint-infix($next, $grid-breakpoints);\n\n    &#{$infix} {\n      @include media-breakpoint-down($breakpoint) {\n        %container-navbar-expand-#{$breakpoint} {\n          padding-right: 0;\n          padding-left: 0;\n        }\n\n        > .container,\n        > .container-fluid {\n          @extend %container-navbar-expand-#{$breakpoint};\n        }\n\n        @each $size, $container-max-width in $container-max-widths {\n          > .container#{breakpoint-infix($size, $container-max-widths)} {\n            @extend %container-navbar-expand-#{$breakpoint};\n          }\n        }\n      }\n\n      @include media-breakpoint-up($next) {\n        flex-flow: row nowrap;\n        justify-content: flex-start;\n\n        .navbar-nav {\n          flex-direction: row;\n\n          .dropdown-menu {\n            position: absolute;\n          }\n\n          .nav-link {\n            padding-right: $navbar-nav-link-padding-x;\n            padding-left: $navbar-nav-link-padding-x;\n          }\n        }\n\n        // For nesting containers, have to redeclare for alignment purposes\n        %container-nesting-#{$breakpoint} {\n          flex-wrap: nowrap;\n        }\n\n        > .container,\n        > .container-fluid {\n          @extend %container-nesting-#{$breakpoint};\n        }\n\n        @each $size, $container-max-width in $container-max-widths {\n          > .container#{breakpoint-infix($size, $container-max-widths)} {\n            @extend %container-nesting-#{$breakpoint};\n          }\n        }\n\n        .navbar-nav-scroll {\n          overflow: visible;\n        }\n\n        .navbar-collapse {\n          display: flex !important; // stylelint-disable-line declaration-no-important\n\n          // Changes flex-bases to auto because of an IE10 bug\n          flex-basis: auto;\n        }\n\n        .navbar-toggler {\n          display: none;\n        }\n      }\n    }\n  }\n}\n\n\n// Navbar themes\n//\n// Styles for switching between navbars with light or dark background.\n\n// Dark links against a light background\n.navbar-light {\n  .navbar-brand {\n    color: $navbar-light-brand-color;\n\n    @include hover-focus() {\n      color: $navbar-light-brand-hover-color;\n    }\n  }\n\n  .navbar-nav {\n    .nav-link {\n      color: $navbar-light-color;\n\n      @include hover-focus() {\n        color: $navbar-light-hover-color;\n      }\n\n      &.disabled {\n        color: $navbar-light-disabled-color;\n      }\n    }\n\n    .show > .nav-link,\n    .active > .nav-link,\n    .nav-link.show,\n    .nav-link.active {\n      color: $navbar-light-active-color;\n    }\n  }\n\n  .navbar-toggler {\n    color: $navbar-light-color;\n    border-color: $navbar-light-toggler-border-color;\n  }\n\n  .navbar-toggler-icon {\n    background-image: escape-svg($navbar-light-toggler-icon-bg);\n  }\n\n  .navbar-text {\n    color: $navbar-light-color;\n    a {\n      color: $navbar-light-active-color;\n\n      @include hover-focus() {\n        color: $navbar-light-active-color;\n      }\n    }\n  }\n}\n\n// White links against a dark background\n.navbar-dark {\n  .navbar-brand {\n    color: $navbar-dark-brand-color;\n\n    @include hover-focus() {\n      color: $navbar-dark-brand-hover-color;\n    }\n  }\n\n  .navbar-nav {\n    .nav-link {\n      color: $navbar-dark-color;\n\n      @include hover-focus() {\n        color: $navbar-dark-hover-color;\n      }\n\n      &.disabled {\n        color: $navbar-dark-disabled-color;\n      }\n    }\n\n    .show > .nav-link,\n    .active > .nav-link,\n    .nav-link.show,\n    .nav-link.active {\n      color: $navbar-dark-active-color;\n    }\n  }\n\n  .navbar-toggler {\n    color: $navbar-dark-color;\n    border-color: $navbar-dark-toggler-border-color;\n  }\n\n  .navbar-toggler-icon {\n    background-image: escape-svg($navbar-dark-toggler-icon-bg);\n  }\n\n  .navbar-text {\n    color: $navbar-dark-color;\n    a {\n      color: $navbar-dark-active-color;\n\n      @include hover-focus() {\n        color: $navbar-dark-active-color;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_pagination.scss",
    "content": ".pagination {\n  display: flex;\n  @include list-unstyled();\n  @include border-radius();\n}\n\n.page-link {\n  position: relative;\n  display: block;\n  padding: $pagination-padding-y $pagination-padding-x;\n  margin-left: -$pagination-border-width;\n  line-height: $pagination-line-height;\n  color: $pagination-color;\n  text-decoration: if($link-decoration == none, null, none);\n  background-color: $pagination-bg;\n  border: $pagination-border-width solid $pagination-border-color;\n\n  &:hover {\n    z-index: 2;\n    color: $pagination-hover-color;\n    text-decoration: none;\n    background-color: $pagination-hover-bg;\n    border-color: $pagination-hover-border-color;\n  }\n\n  &:focus {\n    z-index: 3;\n    outline: $pagination-focus-outline;\n    box-shadow: $pagination-focus-box-shadow;\n  }\n}\n\n.page-item {\n  &:first-child {\n    .page-link {\n      margin-left: 0;\n      @include border-left-radius($border-radius);\n    }\n  }\n  &:last-child {\n    .page-link {\n      @include border-right-radius($border-radius);\n    }\n  }\n\n  &.active .page-link {\n    z-index: 3;\n    color: $pagination-active-color;\n    background-color: $pagination-active-bg;\n    border-color: $pagination-active-border-color;\n  }\n\n  &.disabled .page-link {\n    color: $pagination-disabled-color;\n    pointer-events: none;\n    // Opinionated: remove the \"hand\" cursor set previously for .page-link\n    cursor: auto;\n    background-color: $pagination-disabled-bg;\n    border-color: $pagination-disabled-border-color;\n  }\n}\n\n\n//\n// Sizing\n//\n\n.pagination-lg {\n  @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $pagination-border-radius-lg);\n}\n\n.pagination-sm {\n  @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $pagination-border-radius-sm);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_popover.scss",
    "content": ".popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: $zindex-popover;\n  display: block;\n  max-width: $popover-max-width;\n  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  @include reset-text();\n  @include font-size($popover-font-size);\n  // Allow breaking very long words so they don't overflow the popover's bounds\n  word-wrap: break-word;\n  background-color: $popover-bg;\n  background-clip: padding-box;\n  border: $popover-border-width solid $popover-border-color;\n  @include border-radius($popover-border-radius);\n  @include box-shadow($popover-box-shadow);\n\n  .arrow {\n    position: absolute;\n    display: block;\n    width: $popover-arrow-width;\n    height: $popover-arrow-height;\n    margin: 0 $popover-border-radius;\n\n    &::before,\n    &::after {\n      position: absolute;\n      display: block;\n      content: \"\";\n      border-color: transparent;\n      border-style: solid;\n    }\n  }\n}\n\n.bs-popover-top {\n  margin-bottom: $popover-arrow-height;\n\n  > .arrow {\n    bottom: subtract(-$popover-arrow-height, $popover-border-width);\n\n    &::before {\n      bottom: 0;\n      border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n      border-top-color: $popover-arrow-outer-color;\n    }\n\n    &::after {\n      bottom: $popover-border-width;\n      border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n      border-top-color: $popover-arrow-color;\n    }\n  }\n}\n\n.bs-popover-right {\n  margin-left: $popover-arrow-height;\n\n  > .arrow {\n    left: subtract(-$popover-arrow-height, $popover-border-width);\n    width: $popover-arrow-height;\n    height: $popover-arrow-width;\n    margin: $popover-border-radius 0; // make sure the arrow does not touch the popover's rounded corners\n\n    &::before {\n      left: 0;\n      border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n      border-right-color: $popover-arrow-outer-color;\n    }\n\n    &::after {\n      left: $popover-border-width;\n      border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n      border-right-color: $popover-arrow-color;\n    }\n  }\n}\n\n.bs-popover-bottom {\n  margin-top: $popover-arrow-height;\n\n  > .arrow {\n    top: subtract(-$popover-arrow-height, $popover-border-width);\n\n    &::before {\n      top: 0;\n      border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n      border-bottom-color: $popover-arrow-outer-color;\n    }\n\n    &::after {\n      top: $popover-border-width;\n      border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n      border-bottom-color: $popover-arrow-color;\n    }\n  }\n\n  // This will remove the popover-header's border just below the arrow\n  .popover-header::before {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    display: block;\n    width: $popover-arrow-width;\n    margin-left: -$popover-arrow-width / 2;\n    content: \"\";\n    border-bottom: $popover-border-width solid $popover-header-bg;\n  }\n}\n\n.bs-popover-left {\n  margin-right: $popover-arrow-height;\n\n  > .arrow {\n    right: subtract(-$popover-arrow-height, $popover-border-width);\n    width: $popover-arrow-height;\n    height: $popover-arrow-width;\n    margin: $popover-border-radius 0; // make sure the arrow does not touch the popover's rounded corners\n\n    &::before {\n      right: 0;\n      border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n      border-left-color: $popover-arrow-outer-color;\n    }\n\n    &::after {\n      right: $popover-border-width;\n      border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n      border-left-color: $popover-arrow-color;\n    }\n  }\n}\n\n.bs-popover-auto {\n  &[x-placement^=\"top\"] {\n    @extend .bs-popover-top;\n  }\n  &[x-placement^=\"right\"] {\n    @extend .bs-popover-right;\n  }\n  &[x-placement^=\"bottom\"] {\n    @extend .bs-popover-bottom;\n  }\n  &[x-placement^=\"left\"] {\n    @extend .bs-popover-left;\n  }\n}\n\n\n// Offset the popover to account for the popover arrow\n.popover-header {\n  padding: $popover-header-padding-y $popover-header-padding-x;\n  margin-bottom: 0; // Reset the default from Reboot\n  @include font-size($font-size-base);\n  color: $popover-header-color;\n  background-color: $popover-header-bg;\n  border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);\n  @include border-top-radius($popover-inner-border-radius);\n\n  &:empty {\n    display: none;\n  }\n}\n\n.popover-body {\n  padding: $popover-body-padding-y $popover-body-padding-x;\n  color: $popover-body-color;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_print.scss",
    "content": "// stylelint-disable declaration-no-important, selector-no-qualifying-type\n\n// Source: https://github.com/h5bp/main.css/blob/master/src/_print.css\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request:\n// https://www.phpied.com/delay-loading-your-print-css/\n// ==========================================================================\n\n@if $enable-print-styles {\n  @media print {\n    *,\n    *::before,\n    *::after {\n      // Bootstrap specific; comment out `color` and `background`\n      //color: $black !important; // Black prints faster\n      text-shadow: none !important;\n      //background: transparent !important;\n      box-shadow: none !important;\n    }\n\n    a {\n      &:not(.btn) {\n        text-decoration: underline;\n      }\n    }\n\n    // Bootstrap specific; comment the following selector out\n    //a[href]::after {\n    //  content: \" (\" attr(href) \")\";\n    //}\n\n    abbr[title]::after {\n      content: \" (\" attr(title) \")\";\n    }\n\n    // Bootstrap specific; comment the following selector out\n    //\n    // Don't show links that are fragment identifiers,\n    // or use the `javascript:` pseudo protocol\n    //\n\n    //a[href^=\"#\"]::after,\n    //a[href^=\"javascript:\"]::after {\n    // content: \"\";\n    //}\n\n    pre {\n      white-space: pre-wrap !important;\n    }\n    pre,\n    blockquote {\n      border: $border-width solid $gray-500; // Bootstrap custom code; using `$border-width` instead of 1px\n      page-break-inside: avoid;\n    }\n\n    //\n    // Printing Tables:\n    // https://web.archive.org/web/20180815150934/http://css-discuss.incutio.com/wiki/Printing_Tables\n    //\n\n    thead {\n      display: table-header-group;\n    }\n\n    tr,\n    img {\n      page-break-inside: avoid;\n    }\n\n    p,\n    h2,\n    h3 {\n      orphans: 3;\n      widows: 3;\n    }\n\n    h2,\n    h3 {\n      page-break-after: avoid;\n    }\n\n    // Bootstrap specific changes start\n\n    // Specify a size and min-width to make printing closer across browsers.\n    // We don't set margin here because it breaks `size` in Chrome. We also\n    // don't use `!important` on `size` as it breaks in Chrome.\n    @page {\n      size: $print-page-size;\n    }\n    body {\n      min-width: $print-body-min-width !important;\n    }\n    .container {\n      min-width: $print-body-min-width !important;\n    }\n\n    // Bootstrap components\n    .navbar {\n      display: none;\n    }\n    .badge {\n      border: $border-width solid $black;\n    }\n\n    .table {\n      border-collapse: collapse !important;\n\n      td,\n      th {\n        background-color: $white !important;\n      }\n    }\n\n    .table-bordered {\n      th,\n      td {\n        border: 1px solid $gray-300 !important;\n      }\n    }\n\n    .table-dark {\n      color: inherit;\n\n      th,\n      td,\n      thead th,\n      tbody + tbody {\n        border-color: $table-border-color;\n      }\n    }\n\n    .table .thead-dark th {\n      color: inherit;\n      border-color: $table-border-color;\n    }\n\n    // Bootstrap specific changes end\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_progress.scss",
    "content": "// Disable animation if transitions are disabled\n@if $enable-transitions {\n  @keyframes progress-bar-stripes {\n    from { background-position: $progress-height 0; }\n    to { background-position: 0 0; }\n  }\n}\n\n.progress {\n  display: flex;\n  height: $progress-height;\n  overflow: hidden; // force rounded corners by cropping it\n  line-height: 0;\n  @include font-size($progress-font-size);\n  background-color: $progress-bg;\n  @include border-radius($progress-border-radius);\n  @include box-shadow($progress-box-shadow);\n}\n\n.progress-bar {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  overflow: hidden;\n  color: $progress-bar-color;\n  text-align: center;\n  white-space: nowrap;\n  background-color: $progress-bar-bg;\n  @include transition($progress-bar-transition);\n}\n\n.progress-bar-striped {\n  @include gradient-striped();\n  background-size: $progress-height $progress-height;\n}\n\n@if $enable-transitions {\n  .progress-bar-animated {\n    animation: $progress-bar-animation-timing progress-bar-stripes;\n\n    @if $enable-prefers-reduced-motion-media-query {\n      @media (prefers-reduced-motion: reduce) {\n        animation: none;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_reboot.scss",
    "content": "// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box; // 1\n}\n\nhtml {\n  font-family: sans-serif; // 2\n  line-height: 1.15; // 3\n  -webkit-text-size-adjust: 100%; // 4\n  -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n//    the `inherit` value on things like `<th>` elements.\n\nbody {\n  margin: 0; // 1\n  font-family: $font-family-base;\n  @include font-size($font-size-base);\n  font-weight: $font-weight-base;\n  line-height: $line-height-base;\n  color: $body-color;\n  text-align: left; // 3\n  background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n  outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n  box-sizing: content-box; // 1\n  height: 0; // 1\n  overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n  margin-top: 0;\n  margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n  text-decoration: underline; // 2\n  text-decoration: underline dotted; // 2\n  cursor: help; // 3\n  border-bottom: 0; // 4\n  text-decoration-skip-ink: none; // 5\n}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: $dt-font-weight;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0; // Undo browser default\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\nb,\nstrong {\n  font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n  @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n  position: relative;\n  @include font-size(75%);\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n  color: $link-color;\n  text-decoration: $link-decoration;\n  background-color: transparent; // Remove the gray background on active links in IE 10.\n\n  @include hover() {\n    color: $link-hover-color;\n    text-decoration: $link-hover-decoration;\n  }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n  color: inherit;\n  text-decoration: none;\n\n  @include hover() {\n    color: inherit;\n    text-decoration: none;\n  }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: $font-family-monospace;\n  @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n  // Remove browser default top margin\n  margin-top: 0;\n  // Reset browser default of `1em` to use `rem`s\n  margin-bottom: 1rem;\n  // Don't allow content to break outside\n  overflow: auto;\n  // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,\n  // making it impossible to interact with the content\n  -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n  // Apply a consistent margin strategy (matches our type styles).\n  margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n  vertical-align: middle;\n  border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n  // Workaround for the SVG overflow bug in IE10/11 is still required.\n  // See https://github.com/twbs/bootstrap/issues/26878\n  overflow: hidden;\n  vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n  border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n  padding-top: $table-cell-padding;\n  padding-bottom: $table-cell-padding;\n  color: $table-caption-color;\n  text-align: left;\n  caption-side: bottom;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `<td>` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n  font-weight: $table-th-font-weight; // 1\n  text-align: inherit; // 2\n  text-align: -webkit-match-parent; // 3\n}\n\n\n//\n// Forms\n//\n\nlabel {\n  // Allow labels to use `margin` for spacing.\n  display: inline-block;\n  margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n  // stylelint-disable-next-line property-disallowed-list\n  border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n  outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0; // Remove the margin in Firefox and Safari\n  font-family: inherit;\n  @include font-size(inherit);\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n  text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Set the cursor for non-`<button>` buttons\n//\n// Details at https://github.com/twbs/bootstrap/pull/30562\n[role=\"button\"] {\n  cursor: pointer;\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n  word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n//    controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n  button,\n  [type=\"button\"],\n  [type=\"reset\"],\n  [type=\"submit\"] {\n    &:not(:disabled) {\n      cursor: pointer;\n    }\n  }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n  padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ntextarea {\n  overflow: auto; // Remove the default vertical scrollbar in IE.\n  // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n  resize: vertical;\n}\n\nfieldset {\n  // Browsers set a default `min-width: min-content;` on fieldsets,\n  // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n  // So we reset that to ensure fieldsets behave more like a standard block element.\n  // See https://github.com/twbs/bootstrap/issues/12359\n  // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n  min-width: 0;\n  // Reset the default outline behavior of fieldsets so they don't affect page layout.\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%; // 1\n  padding: 0;\n  margin-bottom: .5rem;\n  @include font-size(1.5rem);\n  line-height: inherit;\n  color: inherit; // 2\n  white-space: normal; // 1\n}\n\nprogress {\n  vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  // This overrides the extra rounded corners on search inputs in iOS so that our\n  // `.form-control` class can properly style them. Note that this cannot simply\n  // be added to `.form-control` as it's not specific enough. For details, see\n  // https://github.com/twbs/bootstrap/issues/11586.\n  outline-offset: -2px; // 2. Correct the outline style in Safari.\n  -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n  font: inherit; // 2\n  -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item; // Add the correct display in all browsers\n  cursor: pointer;\n}\n\ntemplate {\n  display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n  display: none !important;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_root.scss",
    "content": ":root {\n  // Custom variable values only support SassScript inside `#{}`.\n  @each $color, $value in $colors {\n    --#{$color}: #{$value};\n  }\n\n  @each $color, $value in $theme-colors {\n    --#{$color}: #{$value};\n  }\n\n  @each $bp, $value in $grid-breakpoints {\n    --breakpoint-#{$bp}: #{$value};\n  }\n\n  // Use `inspect` for lists so that quoted items keep the quotes.\n  // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n  --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n  --font-family-monospace: #{inspect($font-family-monospace)};\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_spinners.scss",
    "content": "//\n// Rotating border\n//\n\n@keyframes spinner-border {\n  to { transform: rotate(360deg); }\n}\n\n.spinner-border {\n  display: inline-block;\n  width: $spinner-width;\n  height: $spinner-height;\n  vertical-align: text-bottom;\n  border: $spinner-border-width solid currentColor;\n  border-right-color: transparent;\n  // stylelint-disable-next-line property-disallowed-list\n  border-radius: 50%;\n  animation: .75s linear infinite spinner-border;\n}\n\n.spinner-border-sm {\n  width: $spinner-width-sm;\n  height: $spinner-height-sm;\n  border-width: $spinner-border-width-sm;\n}\n\n//\n// Growing circle\n//\n\n@keyframes spinner-grow {\n  0% {\n    transform: scale(0);\n  }\n  50% {\n    opacity: 1;\n    transform: none;\n  }\n}\n\n.spinner-grow {\n  display: inline-block;\n  width: $spinner-width;\n  height: $spinner-height;\n  vertical-align: text-bottom;\n  background-color: currentColor;\n  // stylelint-disable-next-line property-disallowed-list\n  border-radius: 50%;\n  opacity: 0;\n  animation: .75s linear infinite spinner-grow;\n}\n\n.spinner-grow-sm {\n  width: $spinner-width-sm;\n  height: $spinner-height-sm;\n}\n\n@if $enable-prefers-reduced-motion-media-query {\n  @media (prefers-reduced-motion: reduce) {\n    .spinner-border,\n    .spinner-grow {\n      animation-duration: 1.5s;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_tables.scss",
    "content": "//\n// Basic Bootstrap table\n//\n\n.table {\n  width: 100%;\n  margin-bottom: $spacer;\n  color: $table-color;\n  background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n  th,\n  td {\n    padding: $table-cell-padding;\n    vertical-align: top;\n    border-top: $table-border-width solid $table-border-color;\n  }\n\n  thead th {\n    vertical-align: bottom;\n    border-bottom: (2 * $table-border-width) solid $table-border-color;\n  }\n\n  tbody + tbody {\n    border-top: (2 * $table-border-width) solid $table-border-color;\n  }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n  th,\n  td {\n    padding: $table-cell-padding-sm;\n  }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n\n.table-bordered {\n  border: $table-border-width solid $table-border-color;\n\n  th,\n  td {\n    border: $table-border-width solid $table-border-color;\n  }\n\n  thead {\n    th,\n    td {\n      border-bottom-width: 2 * $table-border-width;\n    }\n  }\n}\n\n.table-borderless {\n  th,\n  td,\n  thead th,\n  tbody + tbody {\n    border: 0;\n  }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n  tbody tr:nth-of-type(#{$table-striped-order}) {\n    background-color: $table-accent-bg;\n  }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n  tbody tr {\n    @include hover() {\n      color: $table-hover-color;\n      background-color: $table-hover-bg;\n    }\n  }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n  @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n  .thead-dark {\n    th {\n      color: $table-dark-color;\n      background-color: $table-dark-bg;\n      border-color: $table-dark-border-color;\n    }\n  }\n\n  .thead-light {\n    th {\n      color: $table-head-color;\n      background-color: $table-head-bg;\n      border-color: $table-border-color;\n    }\n  }\n}\n\n.table-dark {\n  color: $table-dark-color;\n  background-color: $table-dark-bg;\n\n  th,\n  td,\n  thead th {\n    border-color: $table-dark-border-color;\n  }\n\n  &.table-bordered {\n    border: 0;\n  }\n\n  &.table-striped {\n    tbody tr:nth-of-type(#{$table-striped-order}) {\n      background-color: $table-dark-accent-bg;\n    }\n  }\n\n  &.table-hover {\n    tbody tr {\n      @include hover() {\n        color: $table-dark-hover-color;\n        background-color: $table-dark-hover-bg;\n      }\n    }\n  }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n  @each $breakpoint in map-keys($grid-breakpoints) {\n    $next: breakpoint-next($breakpoint, $grid-breakpoints);\n    $infix: breakpoint-infix($next, $grid-breakpoints);\n\n    &#{$infix} {\n      @include media-breakpoint-down($breakpoint) {\n        display: block;\n        width: 100%;\n        overflow-x: auto;\n        -webkit-overflow-scrolling: touch;\n\n        // Prevent double border on horizontal scroll due to use of `display: block;`\n        > .table-bordered {\n          border: 0;\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_toasts.scss",
    "content": ".toast {\n  // Prevents from shrinking in IE11, when in a flex container\n  // See https://github.com/twbs/bootstrap/issues/28341\n  flex-basis: $toast-max-width;\n  max-width: $toast-max-width;\n  @include font-size($toast-font-size);\n  color: $toast-color;\n  background-color: $toast-background-color;\n  background-clip: padding-box;\n  border: $toast-border-width solid $toast-border-color;\n  box-shadow: $toast-box-shadow;\n  opacity: 0;\n  @include border-radius($toast-border-radius);\n\n  &:not(:last-child) {\n    margin-bottom: $toast-padding-x;\n  }\n\n  &.showing {\n    opacity: 1;\n  }\n\n  &.show {\n    display: block;\n    opacity: 1;\n  }\n\n  &.hide {\n    display: none;\n  }\n}\n\n.toast-header {\n  display: flex;\n  align-items: center;\n  padding: $toast-padding-y $toast-padding-x;\n  color: $toast-header-color;\n  background-color: $toast-header-background-color;\n  background-clip: padding-box;\n  border-bottom: $toast-border-width solid $toast-header-border-color;\n  @include border-top-radius(subtract($toast-border-radius, $toast-border-width));\n}\n\n.toast-body {\n  padding: $toast-padding-x; // apply to both vertical and horizontal\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_tooltip.scss",
    "content": "// Base class\n.tooltip {\n  position: absolute;\n  z-index: $zindex-tooltip;\n  display: block;\n  margin: $tooltip-margin;\n  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  @include reset-text();\n  @include font-size($tooltip-font-size);\n  // Allow breaking very long words so they don't overflow the tooltip's bounds\n  word-wrap: break-word;\n  opacity: 0;\n\n  &.show { opacity: $tooltip-opacity; }\n\n  .arrow {\n    position: absolute;\n    display: block;\n    width: $tooltip-arrow-width;\n    height: $tooltip-arrow-height;\n\n    &::before {\n      position: absolute;\n      content: \"\";\n      border-color: transparent;\n      border-style: solid;\n    }\n  }\n}\n\n.bs-tooltip-top {\n  padding: $tooltip-arrow-height 0;\n\n  .arrow {\n    bottom: 0;\n\n    &::before {\n      top: 0;\n      border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n      border-top-color: $tooltip-arrow-color;\n    }\n  }\n}\n\n.bs-tooltip-right {\n  padding: 0 $tooltip-arrow-height;\n\n  .arrow {\n    left: 0;\n    width: $tooltip-arrow-height;\n    height: $tooltip-arrow-width;\n\n    &::before {\n      right: 0;\n      border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n      border-right-color: $tooltip-arrow-color;\n    }\n  }\n}\n\n.bs-tooltip-bottom {\n  padding: $tooltip-arrow-height 0;\n\n  .arrow {\n    top: 0;\n\n    &::before {\n      bottom: 0;\n      border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n      border-bottom-color: $tooltip-arrow-color;\n    }\n  }\n}\n\n.bs-tooltip-left {\n  padding: 0 $tooltip-arrow-height;\n\n  .arrow {\n    right: 0;\n    width: $tooltip-arrow-height;\n    height: $tooltip-arrow-width;\n\n    &::before {\n      left: 0;\n      border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n      border-left-color: $tooltip-arrow-color;\n    }\n  }\n}\n\n.bs-tooltip-auto {\n  &[x-placement^=\"top\"] {\n    @extend .bs-tooltip-top;\n  }\n  &[x-placement^=\"right\"] {\n    @extend .bs-tooltip-right;\n  }\n  &[x-placement^=\"bottom\"] {\n    @extend .bs-tooltip-bottom;\n  }\n  &[x-placement^=\"left\"] {\n    @extend .bs-tooltip-left;\n  }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n  max-width: $tooltip-max-width;\n  padding: $tooltip-padding-y $tooltip-padding-x;\n  color: $tooltip-color;\n  text-align: center;\n  background-color: $tooltip-bg;\n  @include border-radius($tooltip-border-radius);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_transitions.scss",
    "content": ".fade {\n  @include transition($transition-fade);\n\n  &:not(.show) {\n    opacity: 0;\n  }\n}\n\n.collapse {\n  &:not(.show) {\n    display: none;\n  }\n}\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  @include transition($transition-collapse);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_type.scss",
    "content": "// stylelint-disable selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  margin-bottom: $headings-margin-bottom;\n  font-family: $headings-font-family;\n  font-weight: $headings-font-weight;\n  line-height: $headings-line-height;\n  color: $headings-color;\n}\n\nh1, .h1 { @include font-size($h1-font-size); }\nh2, .h2 { @include font-size($h2-font-size); }\nh3, .h3 { @include font-size($h3-font-size); }\nh4, .h4 { @include font-size($h4-font-size); }\nh5, .h5 { @include font-size($h5-font-size); }\nh6, .h6 { @include font-size($h6-font-size); }\n\n.lead {\n  @include font-size($lead-font-size);\n  font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n  @include font-size($display1-size);\n  font-weight: $display1-weight;\n  line-height: $display-line-height;\n}\n.display-2 {\n  @include font-size($display2-size);\n  font-weight: $display2-weight;\n  line-height: $display-line-height;\n}\n.display-3 {\n  @include font-size($display3-size);\n  font-weight: $display3-weight;\n  line-height: $display-line-height;\n}\n.display-4 {\n  @include font-size($display4-size);\n  font-weight: $display4-weight;\n  line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n  margin-top: $hr-margin-y;\n  margin-bottom: $hr-margin-y;\n  border: 0;\n  border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n  @include font-size($small-font-size);\n  font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n  padding: $mark-padding;\n  background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n  @include list-unstyled();\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n  @include list-unstyled();\n}\n.list-inline-item {\n  display: inline-block;\n\n  &:not(:last-child) {\n    margin-right: $list-inline-padding;\n  }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n  @include font-size(90%);\n  text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n  margin-bottom: $spacer;\n  @include font-size($blockquote-font-size);\n}\n\n.blockquote-footer {\n  display: block;\n  @include font-size($blockquote-small-font-size);\n  color: $blockquote-small-color;\n\n  &::before {\n    content: \"\\2014\\00A0\"; // em dash, nbsp\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/_utilities.scss",
    "content": "@import \"utilities/align\";\n@import \"utilities/background\";\n@import \"utilities/borders\";\n@import \"utilities/clearfix\";\n@import \"utilities/display\";\n@import \"utilities/embed\";\n@import \"utilities/flex\";\n@import \"utilities/float\";\n@import \"utilities/interactions\";\n@import \"utilities/overflow\";\n@import \"utilities/position\";\n@import \"utilities/screenreaders\";\n@import \"utilities/shadows\";\n@import \"utilities/sizing\";\n@import \"utilities/spacing\";\n@import \"utilities/stretched-link\";\n@import \"utilities/text\";\n@import \"utilities/visibility\";\n"
  },
  {
    "path": "dist/lib/bootstrap4/_variables.scss",
    "content": "// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white:    #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black:    #000 !default;\n\n$grays: () !default;\n$grays: map-merge(\n  (\n    \"100\": $gray-100,\n    \"200\": $gray-200,\n    \"300\": $gray-300,\n    \"400\": $gray-400,\n    \"500\": $gray-500,\n    \"600\": $gray-600,\n    \"700\": $gray-700,\n    \"800\": $gray-800,\n    \"900\": $gray-900\n  ),\n  $grays\n);\n\n$blue:    #007bff !default;\n$indigo:  #6610f2 !default;\n$purple:  #6f42c1 !default;\n$pink:    #e83e8c !default;\n$red:     #dc3545 !default;\n$orange:  #fd7e14 !default;\n$yellow:  #ffc107 !default;\n$green:   #28a745 !default;\n$teal:    #20c997 !default;\n$cyan:    #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge(\n  (\n    \"blue\":       $blue,\n    \"indigo\":     $indigo,\n    \"purple\":     $purple,\n    \"pink\":       $pink,\n    \"red\":        $red,\n    \"orange\":     $orange,\n    \"yellow\":     $yellow,\n    \"green\":      $green,\n    \"teal\":       $teal,\n    \"cyan\":       $cyan,\n    \"white\":      $white,\n    \"gray\":       $gray-600,\n    \"gray-dark\":  $gray-800\n  ),\n  $colors\n);\n\n$primary:       $blue !default;\n$secondary:     $gray-600 !default;\n$success:       $green !default;\n$info:          $cyan !default;\n$warning:       $yellow !default;\n$danger:        $red !default;\n$light:         $gray-100 !default;\n$dark:          $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge(\n  (\n    \"primary\":    $primary,\n    \"secondary\":  $secondary,\n    \"success\":    $success,\n    \"info\":       $info,\n    \"warning\":    $warning,\n    \"danger\":     $danger,\n    \"light\":      $light,\n    \"dark\":       $dark\n  ),\n  $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval:      8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold:  150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark:             $gray-900 !default;\n$yiq-text-light:            $white !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n  (\"<\", \"%3c\"),\n  (\">\", \"%3e\"),\n  (\"#\", \"%23\"),\n  (\"(\", \"%28\"),\n  (\")\", \"%29\"),\n) !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret:                                true !default;\n$enable-rounded:                              true !default;\n$enable-shadows:                              false !default;\n$enable-gradients:                            false !default;\n$enable-transitions:                          true !default;\n$enable-prefers-reduced-motion-media-query:   true !default;\n$enable-hover-media-query:                    false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes:                         true !default;\n$enable-pointer-cursor-for-buttons:           true !default;\n$enable-print-styles:                         true !default;\n$enable-responsive-font-sizes:                false !default;\n$enable-validation-icons:                     true !default;\n$enable-deprecation-messages:                 true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge(\n  (\n    0: 0,\n    1: ($spacer * .25),\n    2: ($spacer * .5),\n    3: $spacer,\n    4: ($spacer * 1.5),\n    5: ($spacer * 3)\n  ),\n  $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge(\n  (\n    25: 25%,\n    50: 50%,\n    75: 75%,\n    100: 100%,\n    auto: auto\n  ),\n  $sizes\n);\n\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg:                   $white !default;\n$body-color:                $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color:                              theme-color(\"primary\") !default;\n$link-decoration:                         none !default;\n$link-hover-color:                        darken($link-color, 15%) !default;\n$link-hover-decoration:                   underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom:   1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n  xs: 0,\n  sm: 576px,\n  md: 768px,\n  lg: 992px,\n  xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n  sm: 540px,\n  md: 720px,\n  lg: 960px,\n  xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns:                12 !default;\n$grid-gutter-width:           30px !default;\n$grid-row-columns:            6 !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg:              1.5 !default;\n$line-height-sm:              1.5 !default;\n\n$border-width:                1px !default;\n$border-color:                $gray-300 !default;\n\n$border-radius:               .25rem !default;\n$border-radius-lg:            .3rem !default;\n$border-radius-sm:            .2rem !default;\n\n$rounded-pill:                50rem !default;\n\n$box-shadow-sm:               0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow:                  0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg:               0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color:      $white !default;\n$component-active-bg:         theme-color(\"primary\") !default;\n\n$caret-width:                 .3em !default;\n$caret-vertical-align:        $caret-width * .85 !default;\n$caret-spacing:               $caret-width * .85 !default;\n\n$transition-base:             all .2s ease-in-out !default;\n$transition-fade:             opacity .15s linear !default;\n$transition-collapse:         height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n$embed-responsive-aspect-ratios: join(\n  (\n    (21 9),\n    (16 9),\n    (4 3),\n    (1 1),\n  ),\n  $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif:      -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace:       SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base:            $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base:              1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg:                $font-size-base * 1.25 !default;\n$font-size-sm:                $font-size-base * .875 !default;\n\n$font-weight-lighter:         lighter !default;\n$font-weight-light:           300 !default;\n$font-weight-normal:          400 !default;\n$font-weight-bold:            700 !default;\n$font-weight-bolder:          bolder !default;\n\n$font-weight-base:            $font-weight-normal !default;\n$line-height-base:            1.5 !default;\n\n$h1-font-size:                $font-size-base * 2.5 !default;\n$h2-font-size:                $font-size-base * 2 !default;\n$h3-font-size:                $font-size-base * 1.75 !default;\n$h4-font-size:                $font-size-base * 1.5 !default;\n$h5-font-size:                $font-size-base * 1.25 !default;\n$h6-font-size:                $font-size-base !default;\n\n$headings-margin-bottom:      calc($spacer /2) !default;\n$headings-font-family:        null !default;\n$headings-font-weight:        500 !default;\n$headings-line-height:        1.2 !default;\n$headings-color:              null !default;\n\n$display1-size:               6rem !default;\n$display2-size:               5.5rem !default;\n$display3-size:               4.5rem !default;\n$display4-size:               3.5rem !default;\n\n$display1-weight:             300 !default;\n$display2-weight:             300 !default;\n$display3-weight:             300 !default;\n$display4-weight:             300 !default;\n$display-line-height:         $headings-line-height !default;\n\n$lead-font-size:              $font-size-base * 1.25 !default;\n$lead-font-weight:            300 !default;\n\n$small-font-size:             80% !default;\n\n$text-muted:                  $gray-600 !default;\n\n$blockquote-small-color:      $gray-600 !default;\n$blockquote-small-font-size:  $small-font-size !default;\n$blockquote-font-size:        $font-size-base * 1.25 !default;\n\n$hr-border-color:             rgba($black, .1) !default;\n$hr-border-width:             $border-width !default;\n\n$mark-padding:                .2em !default;\n\n$dt-font-weight:              $font-weight-bold !default;\n\n$kbd-box-shadow:              inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight:      $font-weight-bold !default;\n\n$list-inline-padding:         .5rem !default;\n\n$mark-bg:                     #fcf8e3 !default;\n\n$hr-margin-y:                 $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding:          .75rem !default;\n$table-cell-padding-sm:       .3rem !default;\n\n$table-color:                 $body-color !default;\n$table-bg:                    null !default;\n$table-accent-bg:             rgba($black, .05) !default;\n$table-hover-color:           $table-color !default;\n$table-hover-bg:              rgba($black, .075) !default;\n$table-active-bg:             $table-hover-bg !default;\n\n$table-border-width:          $border-width !default;\n$table-border-color:          $border-color !default;\n\n$table-head-bg:               $gray-200 !default;\n$table-head-color:            $gray-700 !default;\n$table-th-font-weight:        null !default;\n\n$table-dark-color:            $white !default;\n$table-dark-bg:               $gray-800 !default;\n$table-dark-accent-bg:        rgba($white, .05) !default;\n$table-dark-hover-color:      $table-dark-color !default;\n$table-dark-hover-bg:         rgba($white, .075) !default;\n$table-dark-border-color:     lighten($table-dark-bg, 7.5%) !default;\n\n$table-striped-order:         odd !default;\n\n$table-caption-color:         $text-muted !default;\n\n$table-bg-level:              -9 !default;\n$table-border-level:          -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y:         .375rem !default;\n$input-btn-padding-x:         .75rem !default;\n$input-btn-font-family:       null !default;\n$input-btn-font-size:         $font-size-base !default;\n$input-btn-line-height:       $line-height-base !default;\n\n$input-btn-focus-width:       .2rem !default;\n$input-btn-focus-color:       rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow:  0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm:      .25rem !default;\n$input-btn-padding-x-sm:      .5rem !default;\n$input-btn-font-size-sm:      $font-size-sm !default;\n$input-btn-line-height-sm:    $line-height-sm !default;\n\n$input-btn-padding-y-lg:      .5rem !default;\n$input-btn-padding-x-lg:      1rem !default;\n$input-btn-font-size-lg:      $font-size-lg !default;\n$input-btn-line-height-lg:    $line-height-lg !default;\n\n$input-btn-border-width:      $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y:               $input-btn-padding-y !default;\n$btn-padding-x:               $input-btn-padding-x !default;\n$btn-font-family:             $input-btn-font-family !default;\n$btn-font-size:               $input-btn-font-size !default;\n$btn-line-height:             $input-btn-line-height !default;\n$btn-white-space:             null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm:            $input-btn-padding-y-sm !default;\n$btn-padding-x-sm:            $input-btn-padding-x-sm !default;\n$btn-font-size-sm:            $input-btn-font-size-sm !default;\n$btn-line-height-sm:          $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg:            $input-btn-padding-y-lg !default;\n$btn-padding-x-lg:            $input-btn-padding-x-lg !default;\n$btn-font-size-lg:            $input-btn-font-size-lg !default;\n$btn-line-height-lg:          $input-btn-line-height-lg !default;\n\n$btn-border-width:            $input-btn-border-width !default;\n\n$btn-font-weight:             $font-weight-normal !default;\n$btn-box-shadow:              inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width:             $input-btn-focus-width !default;\n$btn-focus-box-shadow:        $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity:        .65 !default;\n$btn-active-box-shadow:       inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color:     $gray-600 !default;\n\n$btn-block-spacing-y:         .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius:           $border-radius !default;\n$btn-border-radius-lg:        $border-radius-lg !default;\n$btn-border-radius-sm:        $border-radius-sm !default;\n\n$btn-transition:              color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom:                   .5rem !default;\n\n$input-padding-y:                       $input-btn-padding-y !default;\n$input-padding-x:                       $input-btn-padding-x !default;\n$input-font-family:                     $input-btn-font-family !default;\n$input-font-size:                       $input-btn-font-size !default;\n$input-font-weight:                     $font-weight-base !default;\n$input-line-height:                     $input-btn-line-height !default;\n\n$input-padding-y-sm:                    $input-btn-padding-y-sm !default;\n$input-padding-x-sm:                    $input-btn-padding-x-sm !default;\n$input-font-size-sm:                    $input-btn-font-size-sm !default;\n$input-line-height-sm:                  $input-btn-line-height-sm !default;\n\n$input-padding-y-lg:                    $input-btn-padding-y-lg !default;\n$input-padding-x-lg:                    $input-btn-padding-x-lg !default;\n$input-font-size-lg:                    $input-btn-font-size-lg !default;\n$input-line-height-lg:                  $input-btn-line-height-lg !default;\n\n$input-bg:                              $white !default;\n$input-disabled-bg:                     $gray-200 !default;\n\n$input-color:                           $gray-700 !default;\n$input-border-color:                    $gray-400 !default;\n$input-border-width:                    $input-btn-border-width !default;\n$input-box-shadow:                      inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius:                   $border-radius !default;\n$input-border-radius-lg:                $border-radius-lg !default;\n$input-border-radius-sm:                $border-radius-sm !default;\n\n$input-focus-bg:                        $input-bg !default;\n$input-focus-border-color:              lighten($component-active-bg, 25%) !default;\n$input-focus-color:                     $input-color !default;\n$input-focus-width:                     $input-btn-focus-width !default;\n$input-focus-box-shadow:                $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color:               $gray-600 !default;\n$input-plaintext-color:                 $body-color !default;\n\n$input-height-border:                   $input-border-width * 2 !default;\n\n$input-height-inner:                    add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half:               add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter:            add($input-line-height * .25em, calc($input-padding-y / 2)) !default;\n\n$input-height:                          add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm:                       add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg:                       add($input-line-height-lg * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition:                      border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top:                  .25rem !default;\n\n$form-check-input-gutter:               1.25rem !default;\n$form-check-input-margin-y:             .3rem !default;\n$form-check-input-margin-x:             .25rem !default;\n\n$form-check-inline-margin-x:            .75rem !default;\n$form-check-inline-input-margin-x:      .3125rem !default;\n\n$form-grid-gutter-width:                10px !default;\n$form-group-margin-bottom:              1rem !default;\n\n$input-group-addon-color:               $input-color !default;\n$input-group-addon-bg:                  $gray-200 !default;\n$input-group-addon-border-color:        $input-border-color !default;\n\n$custom-forms-transition:               background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter:                 .5rem !default;\n$custom-control-spacer-x:               1rem !default;\n$custom-control-cursor:                 null !default;\n\n$custom-control-indicator-size:         1rem !default;\n$custom-control-indicator-bg:           $input-bg !default;\n\n$custom-control-indicator-bg-size:      50% 50% !default;\n$custom-control-indicator-box-shadow:   $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-label-color:            null !default;\n\n$custom-control-indicator-disabled-bg:          $input-disabled-bg !default;\n$custom-control-label-disabled-color:           $gray-600 !default;\n\n$custom-control-indicator-checked-color:        $component-active-color !default;\n$custom-control-indicator-checked-bg:           $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg:  rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow:   null !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow:     $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color:   $input-focus-border-color !default;\n\n$custom-control-indicator-active-color:         $component-active-color !default;\n$custom-control-indicator-active-bg:            lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow:    null !default;\n$custom-control-indicator-active-border-color:  $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius:       $border-radius !default;\n$custom-checkbox-indicator-icon-checked:        url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg:           $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color:        $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate:         url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'><path stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/></svg>\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow:   null !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius:          50% !default;\n$custom-radio-indicator-icon-checked:           url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'><circle r='3' fill='#{$custom-control-indicator-checked-color}'/></svg>\") !default;\n\n$custom-switch-width:                           $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius:         calc($custom-control-indicator-size / 2) !default;\n$custom-switch-indicator-size:                  subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;\n\n$custom-select-padding-y:           $input-padding-y !default;\n$custom-select-padding-x:           $input-padding-x !default;\n$custom-select-font-family:         $input-font-family !default;\n$custom-select-font-size:           $input-font-size !default;\n$custom-select-height:              $input-height !default;\n$custom-select-indicator-padding:   1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight:         $input-font-weight !default;\n$custom-select-line-height:         $input-line-height !default;\n$custom-select-color:               $input-color !default;\n$custom-select-disabled-color:      $gray-600 !default;\n$custom-select-bg:                  $input-bg !default;\n$custom-select-disabled-bg:         $gray-200 !default;\n$custom-select-bg-size:             8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color:     $gray-800 !default;\n$custom-select-indicator:           url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'><path fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/></svg>\") !default;\n$custom-select-background:          escape-svg($custom-select-indicator) right $custom-select-padding-x center / $custom-select-bg-size no-repeat !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-position:      center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size:          $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width:        $input-border-width !default;\n$custom-select-border-color:        $input-border-color !default;\n$custom-select-border-radius:       $border-radius !default;\n$custom-select-box-shadow:          inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color:  $input-focus-border-color !default;\n$custom-select-focus-width:         $input-focus-width !default;\n$custom-select-focus-box-shadow:    0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm:        $input-padding-y-sm !default;\n$custom-select-padding-x-sm:        $input-padding-x-sm !default;\n$custom-select-font-size-sm:        $input-font-size-sm !default;\n$custom-select-height-sm:           $input-height-sm !default;\n\n$custom-select-padding-y-lg:        $input-padding-y-lg !default;\n$custom-select-padding-x-lg:        $input-padding-x-lg !default;\n$custom-select-font-size-lg:        $input-font-size-lg !default;\n$custom-select-height-lg:           $input-height-lg !default;\n\n$custom-range-track-width:          100% !default;\n$custom-range-track-height:         .5rem !default;\n$custom-range-track-cursor:         pointer !default;\n$custom-range-track-bg:             $gray-300 !default;\n$custom-range-track-border-radius:  1rem !default;\n$custom-range-track-box-shadow:     inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width:                   1rem !default;\n$custom-range-thumb-height:                  $custom-range-thumb-width !default;\n$custom-range-thumb-bg:                      $component-active-bg !default;\n$custom-range-thumb-border:                  0 !default;\n$custom-range-thumb-border-radius:           1rem !default;\n$custom-range-thumb-box-shadow:              0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow:        0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width:  $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg:               lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg:             $gray-500 !default;\n\n$custom-file-height:                $input-height !default;\n$custom-file-height-inner:          $input-height-inner !default;\n$custom-file-focus-border-color:    $input-focus-border-color !default;\n$custom-file-focus-box-shadow:      $input-focus-box-shadow !default;\n$custom-file-disabled-bg:           $input-disabled-bg !default;\n\n$custom-file-padding-y:             $input-padding-y !default;\n$custom-file-padding-x:             $input-padding-x !default;\n$custom-file-line-height:           $input-line-height !default;\n$custom-file-font-family:           $input-font-family !default;\n$custom-file-font-weight:           $input-font-weight !default;\n$custom-file-color:                 $input-color !default;\n$custom-file-bg:                    $input-bg !default;\n$custom-file-border-width:          $input-border-width !default;\n$custom-file-border-color:          $input-border-color !default;\n$custom-file-border-radius:         $input-border-radius !default;\n$custom-file-box-shadow:            $input-box-shadow !default;\n$custom-file-button-color:          $custom-file-color !default;\n$custom-file-button-bg:             $input-group-addon-bg !default;\n$custom-file-text: (\n  en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top:          $form-text-margin-top !default;\n$form-feedback-font-size:           $small-font-size !default;\n$form-feedback-valid-color:         theme-color(\"success\") !default;\n$form-feedback-invalid-color:       theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color:    $form-feedback-valid-color !default;\n$form-feedback-icon-valid:          url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/></svg>\") !default;\n$form-feedback-icon-invalid-color:  $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid:        url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}' viewBox='0 0 12 12'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>\") !default;\n\n$form-validation-states: () !default;\n$form-validation-states: map-merge(\n  (\n    \"valid\": (\n      \"color\": $form-feedback-valid-color,\n      \"icon\": $form-feedback-icon-valid\n    ),\n    \"invalid\": (\n      \"color\": $form-feedback-invalid-color,\n      \"icon\": $form-feedback-icon-invalid\n    ),\n  ),\n  $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown:                   1000 !default;\n$zindex-sticky:                     1020 !default;\n$zindex-fixed:                      1030 !default;\n$zindex-modal-backdrop:             1040 !default;\n$zindex-modal:                      1050 !default;\n$zindex-popover:                    1060 !default;\n$zindex-tooltip:                    1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y:                .5rem !default;\n$nav-link-padding-x:                1rem !default;\n$nav-link-disabled-color:           $gray-600 !default;\n\n$nav-tabs-border-color:             $gray-300 !default;\n$nav-tabs-border-width:             $border-width !default;\n$nav-tabs-border-radius:            $border-radius !default;\n$nav-tabs-link-hover-border-color:  $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color:        $gray-700 !default;\n$nav-tabs-link-active-bg:           $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius:           $border-radius !default;\n$nav-pills-link-active-color:       $component-active-color !default;\n$nav-pills-link-active-bg:          $component-active-bg !default;\n\n$nav-divider-color:                 $gray-200 !default;\n$nav-divider-margin-y:              calc($spacer /2) !default;\n\n\n// Navbar\n\n$navbar-padding-y:                  calc($spacer /2) !default;\n$navbar-padding-x:                  $spacer !default;\n\n$navbar-nav-link-padding-x:         .5rem !default;\n\n$navbar-brand-font-size:            $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height:                   $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height:               $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y:            calc(($nav-link-height - $navbar-brand-height)) !default;\n\n$navbar-toggler-padding-y:          .25rem !default;\n$navbar-toggler-padding-x:          .75rem !default;\n$navbar-toggler-font-size:          $font-size-lg !default;\n$navbar-toggler-border-radius:      $btn-border-radius !default;\n\n$navbar-nav-scroll-max-height:      75vh !default;\n\n$navbar-dark-color:                 rgba($white, .5) !default;\n$navbar-dark-hover-color:           rgba($white, .75) !default;\n$navbar-dark-active-color:          $white !default;\n$navbar-dark-disabled-color:        rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg:       url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-dark-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-dark-toggler-border-color:  rgba($white, .1) !default;\n\n$navbar-light-color:                rgba($black, .5) !default;\n$navbar-light-hover-color:          rgba($black, .7) !default;\n$navbar-light-active-color:         rgba($black, .9) !default;\n$navbar-light-disabled-color:       rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg:      url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color:                $navbar-light-active-color !default;\n$navbar-light-brand-hover-color:          $navbar-light-active-color !default;\n$navbar-dark-brand-color:                 $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color:           $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width:                10rem !default;\n$dropdown-padding-x:                0 !default;\n$dropdown-padding-y:                .5rem !default;\n$dropdown-spacer:                   .125rem !default;\n$dropdown-font-size:                $font-size-base !default;\n$dropdown-color:                    $body-color !default;\n$dropdown-bg:                       $white !default;\n$dropdown-border-color:             rgba($black, .15) !default;\n$dropdown-border-radius:            $border-radius !default;\n$dropdown-border-width:             $border-width !default;\n$dropdown-inner-border-radius:      subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg:               $gray-200 !default;\n$dropdown-divider-margin-y:         $nav-divider-margin-y !default;\n$dropdown-box-shadow:               0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color:               $gray-900 !default;\n$dropdown-link-hover-color:         darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg:            $gray-200 !default;\n\n$dropdown-link-active-color:        $component-active-color !default;\n$dropdown-link-active-bg:           $component-active-bg !default;\n\n$dropdown-link-disabled-color:      $gray-500 !default;\n\n$dropdown-item-padding-y:           .25rem !default;\n$dropdown-item-padding-x:           1.5rem !default;\n\n$dropdown-header-color:             $gray-600 !default;\n$dropdown-header-padding:           $dropdown-padding-y $dropdown-item-padding-x !default;\n\n\n// Pagination\n\n$pagination-padding-y:              .5rem !default;\n$pagination-padding-x:              .75rem !default;\n$pagination-padding-y-sm:           .25rem !default;\n$pagination-padding-x-sm:           .5rem !default;\n$pagination-padding-y-lg:           .75rem !default;\n$pagination-padding-x-lg:           1.5rem !default;\n$pagination-line-height:            1.25 !default;\n\n$pagination-color:                  $link-color !default;\n$pagination-bg:                     $white !default;\n$pagination-border-width:           $border-width !default;\n$pagination-border-color:           $gray-300 !default;\n\n$pagination-focus-box-shadow:       $input-btn-focus-box-shadow !default;\n$pagination-focus-outline:          0 !default;\n\n$pagination-hover-color:            $link-hover-color !default;\n$pagination-hover-bg:               $gray-200 !default;\n$pagination-hover-border-color:     $gray-300 !default;\n\n$pagination-active-color:           $component-active-color !default;\n$pagination-active-bg:              $component-active-bg !default;\n$pagination-active-border-color:    $pagination-active-bg !default;\n\n$pagination-disabled-color:         $gray-600 !default;\n$pagination-disabled-bg:            $white !default;\n$pagination-disabled-border-color:  $gray-300 !default;\n\n$pagination-border-radius-sm:       $border-radius-sm !default;\n$pagination-border-radius-lg:       $border-radius-lg !default;\n\n// Jumbotron\n\n$jumbotron-padding:                 2rem !default;\n$jumbotron-color:                   null !default;\n$jumbotron-bg:                      $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y:                     .75rem !default;\n$card-spacer-x:                     1.25rem !default;\n$card-border-width:                 $border-width !default;\n$card-border-radius:                $border-radius !default;\n$card-border-color:                 rgba($black, .125) !default;\n$card-inner-border-radius:          subtract($card-border-radius, $card-border-width) !default;\n$card-cap-bg:                       rgba($black, .03) !default;\n$card-cap-color:                    null !default;\n$card-height:                       null !default;\n$card-color:                        null !default;\n$card-bg:                           $white !default;\n\n$card-img-overlay-padding:          1.25rem !default;\n\n$card-group-margin:                 calc($grid-gutter-width / 2) !default;\n$card-deck-margin:                  $card-group-margin !default;\n\n$card-columns-count:                3 !default;\n$card-columns-gap:                  1.25rem !default;\n$card-columns-margin:               $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size:                 $font-size-sm !default;\n$tooltip-max-width:                 200px !default;\n$tooltip-color:                     $white !default;\n$tooltip-bg:                        $black !default;\n$tooltip-border-radius:             $border-radius !default;\n$tooltip-opacity:                   .9 !default;\n$tooltip-padding-y:                 .25rem !default;\n$tooltip-padding-x:                 .5rem !default;\n$tooltip-margin:                    0 !default;\n\n$tooltip-arrow-width:               .8rem !default;\n$tooltip-arrow-height:              .4rem !default;\n$tooltip-arrow-color:               $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y:     $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x:     $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size:     $tooltip-font-size !default;\n$form-feedback-tooltip-line-height:   $line-height-base !default;\n$form-feedback-tooltip-opacity:       $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size:                 $font-size-sm !default;\n$popover-bg:                        $white !default;\n$popover-max-width:                 276px !default;\n$popover-border-width:              $border-width !default;\n$popover-border-color:              rgba($black, .2) !default;\n$popover-border-radius:             $border-radius-lg !default;\n$popover-inner-border-radius:       subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow:                0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg:                 darken($popover-bg, 3%) !default;\n$popover-header-color:              $headings-color !default;\n$popover-header-padding-y:          .5rem !default;\n$popover-header-padding-x:          .75rem !default;\n\n$popover-body-color:                $body-color !default;\n$popover-body-padding-y:            $popover-header-padding-y !default;\n$popover-body-padding-x:            $popover-header-padding-x !default;\n\n$popover-arrow-width:               1rem !default;\n$popover-arrow-height:              .5rem !default;\n$popover-arrow-color:               $popover-bg !default;\n\n$popover-arrow-outer-color:         fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width:                   350px !default;\n$toast-padding-x:                   .75rem !default;\n$toast-padding-y:                   .25rem !default;\n$toast-font-size:                   .875rem !default;\n$toast-color:                       null !default;\n$toast-background-color:            rgba($white, .85) !default;\n$toast-border-width:                1px !default;\n$toast-border-color:                rgba(0, 0, 0, .1) !default;\n$toast-border-radius:               .25rem !default;\n$toast-box-shadow:                  0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color:                $gray-600 !default;\n$toast-header-background-color:     rgba($white, .85) !default;\n$toast-header-border-color:         rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size:                   75% !default;\n$badge-font-weight:                 $font-weight-bold !default;\n$badge-padding-y:                   .25em !default;\n$badge-padding-x:                   .4em !default;\n$badge-border-radius:               $border-radius !default;\n\n$badge-transition:                  $btn-transition !default;\n$badge-focus-width:                 $input-btn-focus-width !default;\n\n$badge-pill-padding-x:              .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius:          10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding:               1rem !default;\n\n// Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding\n$modal-footer-margin-between:       .5rem !default;\n\n$modal-dialog-margin:               .5rem !default;\n$modal-dialog-margin-y-sm-up:       1.75rem !default;\n\n$modal-title-line-height:           $line-height-base !default;\n\n$modal-content-color:               null !default;\n$modal-content-bg:                  $white !default;\n$modal-content-border-color:        rgba($black, .2) !default;\n$modal-content-border-width:        $border-width !default;\n$modal-content-border-radius:       $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs:       0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up:    0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg:                 $black !default;\n$modal-backdrop-opacity:            .5 !default;\n$modal-header-border-color:         $border-color !default;\n$modal-footer-border-color:         $modal-header-border-color !default;\n$modal-header-border-width:         $modal-content-border-width !default;\n$modal-footer-border-width:         $modal-header-border-width !default;\n$modal-header-padding-y:            1rem !default;\n$modal-header-padding-x:            1rem !default;\n$modal-header-padding:              $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl:                          1140px !default;\n$modal-lg:                          800px !default;\n$modal-md:                          500px !default;\n$modal-sm:                          300px !default;\n\n$modal-fade-transform:              translate(0, -50px) !default;\n$modal-show-transform:              none !default;\n$modal-transition:                  transform .3s ease-out !default;\n$modal-scale-transform:             scale(1.02) !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y:                   .75rem !default;\n$alert-padding-x:                   1.25rem !default;\n$alert-margin-bottom:               1rem !default;\n$alert-border-radius:               $border-radius !default;\n$alert-link-font-weight:            $font-weight-bold !default;\n$alert-border-width:                $border-width !default;\n\n$alert-bg-level:                    -10 !default;\n$alert-border-level:                -9 !default;\n$alert-color-level:                 6 !default;\n\n\n// Progress bars\n\n$progress-height:                   1rem !default;\n$progress-font-size:                $font-size-base * .75 !default;\n$progress-bg:                       $gray-200 !default;\n$progress-border-radius:            $border-radius !default;\n$progress-box-shadow:               inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color:                $white !default;\n$progress-bar-bg:                   theme-color(\"primary\") !default;\n$progress-bar-animation-timing:     1s linear infinite !default;\n$progress-bar-transition:           width .6s ease !default;\n\n\n// List group\n\n$list-group-color:                  null !default;\n$list-group-bg:                     $white !default;\n$list-group-border-color:           rgba($black, .125) !default;\n$list-group-border-width:           $border-width !default;\n$list-group-border-radius:          $border-radius !default;\n\n$list-group-item-padding-y:         .75rem !default;\n$list-group-item-padding-x:         1.25rem !default;\n\n$list-group-hover-bg:               $gray-100 !default;\n$list-group-active-color:           $component-active-color !default;\n$list-group-active-bg:              $component-active-bg !default;\n$list-group-active-border-color:    $list-group-active-bg !default;\n\n$list-group-disabled-color:         $gray-600 !default;\n$list-group-disabled-bg:            $list-group-bg !default;\n\n$list-group-action-color:           $gray-700 !default;\n$list-group-action-hover-color:     $list-group-action-color !default;\n\n$list-group-action-active-color:    $body-color !default;\n$list-group-action-active-bg:       $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding:                 .25rem !default;\n$thumbnail-bg:                      $body-bg !default;\n$thumbnail-border-width:            $border-width !default;\n$thumbnail-border-color:            $gray-300 !default;\n$thumbnail-border-radius:           $border-radius !default;\n$thumbnail-box-shadow:              0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size:          90% !default;\n$figure-caption-color:              $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-font-size:              null !default;\n\n$breadcrumb-padding-y:              .75rem !default;\n$breadcrumb-padding-x:              1rem !default;\n$breadcrumb-item-padding:           .5rem !default;\n\n$breadcrumb-margin-bottom:          1rem !default;\n\n$breadcrumb-bg:                     $gray-200 !default;\n$breadcrumb-divider-color:          $gray-600 !default;\n$breadcrumb-active-color:           $gray-600 !default;\n$breadcrumb-divider:                quote(\"/\") !default;\n\n$breadcrumb-border-radius:          $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color:             $white !default;\n$carousel-control-width:             15% !default;\n$carousel-control-opacity:           .5 !default;\n$carousel-control-hover-opacity:     .9 !default;\n$carousel-control-transition:        opacity .15s ease !default;\n\n$carousel-indicator-width:           30px !default;\n$carousel-indicator-height:          3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer:          3px !default;\n$carousel-indicator-active-bg:       $white !default;\n$carousel-indicator-transition:      opacity .6s ease !default;\n\n$carousel-caption-width:             70% !default;\n$carousel-caption-color:             $white !default;\n\n$carousel-control-icon-width:        20px !default;\n\n$carousel-control-prev-icon-bg:      url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/></svg>\") !default;\n$carousel-control-next-icon-bg:      url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/></svg>\") !default;\n\n$carousel-transition-duration:       .6s !default;\n$carousel-transition:                transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width:         2rem !default;\n$spinner-height:        $spinner-width !default;\n$spinner-border-width:  .25em !default;\n\n$spinner-width-sm:        1rem !default;\n$spinner-height-sm:       $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size:                   $font-size-base * 1.5 !default;\n$close-font-weight:                 $font-weight-bold !default;\n$close-color:                       $black !default;\n$close-text-shadow:                 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size:                    87.5% !default;\n$code-color:                        $pink !default;\n\n$kbd-padding-y:                     .2rem !default;\n$kbd-padding-x:                     .4rem !default;\n$kbd-font-size:                     $code-font-size !default;\n$kbd-color:                         $white !default;\n$kbd-bg:                            $gray-900 !default;\n\n$pre-color:                         $gray-900 !default;\n$pre-scrollable-max-height:         340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n$user-selects: all, auto, none !default;\n\n\n// Printing\n\n$print-page-size:                   a3 !default;\n$print-body-min-width:              map-get($grid-breakpoints, \"lg\") !default;\n"
  },
  {
    "path": "dist/lib/bootstrap4/bootstrap-grid.scss",
    "content": "/*!\n * Bootstrap Grid v4.6.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\nhtml {\n  box-sizing: border-box;\n  -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/deprecate\";\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n@import \"utilities/spacing\";\n"
  },
  {
    "path": "dist/lib/bootstrap4/bootstrap-reboot.scss",
    "content": "/*!\n * Bootstrap Reboot v4.6.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"reboot\";\n"
  },
  {
    "path": "dist/lib/bootstrap4/bootstrap.scss",
    "content": "/*!\n * Bootstrap v4.6.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"utilities\";\n@import \"print\";\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_alert.scss",
    "content": "@mixin alert-variant($background, $border, $color) {\n  color: $color;\n  @include gradient-bg($background);\n  border-color: $border;\n\n  hr {\n    border-top-color: darken($border, 5%);\n  }\n\n  .alert-link {\n    color: darken($color, 10%);\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_background-variant.scss",
    "content": "// stylelint-disable declaration-no-important\n\n// Contextual backgrounds\n\n@mixin bg-variant($parent, $color, $ignore-warning: false) {\n  #{$parent} {\n    background-color: $color !important;\n  }\n  a#{$parent},\n  button#{$parent} {\n    @include hover-focus() {\n      background-color: darken($color, 10%) !important;\n    }\n  }\n  @include deprecate(\"The `bg-variant` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n\n@mixin bg-gradient-variant($parent, $color, $ignore-warning: false) {\n  #{$parent} {\n    background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;\n  }\n  @include deprecate(\"The `bg-gradient-variant` mixin\", \"v4.5.0\", \"v5\", $ignore-warning);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_badge.scss",
    "content": "@mixin badge-variant($bg) {\n  color: color-yiq($bg);\n  background-color: $bg;\n\n  @at-root a#{&} {\n    @include hover-focus() {\n      color: color-yiq($bg);\n      background-color: darken($bg, 10%);\n    }\n\n    &:focus,\n    &.focus {\n      outline: 0;\n      box-shadow: 0 0 0 $badge-focus-width rgba($bg, .5);\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_border-radius.scss",
    "content": "// stylelint-disable property-disallowed-list\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n  $return: ();\n  @each $value in $radius {\n    @if type-of($value) == number {\n      $return: append($return, max($value, 0));\n    } @else {\n      $return: append($return, $value);\n    }\n  }\n  @return $return;\n}\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n  @if $enable-rounded {\n    border-radius: valid-radius($radius);\n  }\n  @else if $fallback-border-radius != false {\n    border-radius: $fallback-border-radius;\n  }\n}\n\n@mixin border-top-radius($radius) {\n  @if $enable-rounded {\n    border-top-left-radius: valid-radius($radius);\n    border-top-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-right-radius($radius) {\n  @if $enable-rounded {\n    border-top-right-radius: valid-radius($radius);\n    border-bottom-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-bottom-radius($radius) {\n  @if $enable-rounded {\n    border-bottom-right-radius: valid-radius($radius);\n    border-bottom-left-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-left-radius($radius) {\n  @if $enable-rounded {\n    border-top-left-radius: valid-radius($radius);\n    border-bottom-left-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-top-left-radius($radius) {\n  @if $enable-rounded {\n    border-top-left-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-top-right-radius($radius) {\n  @if $enable-rounded {\n    border-top-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-bottom-right-radius($radius) {\n  @if $enable-rounded {\n    border-bottom-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-bottom-left-radius($radius) {\n  @if $enable-rounded {\n    border-bottom-left-radius: valid-radius($radius);\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_box-shadow.scss",
    "content": "@mixin box-shadow($shadow...) {\n  @if $enable-shadows {\n    $result: ();\n\n    @if (length($shadow) == 1) {\n      // We can pass `@include box-shadow(none);`\n      $result: $shadow;\n    } @else {\n      // Filter to avoid invalid properties for example `box-shadow: none, 1px 1px black;`\n      @for $i from 1 through length($shadow) {\n        @if nth($shadow, $i) != \"none\" {\n          $result: append($result, nth($shadow, $i), \"comma\");\n        }\n      }\n    }\n    @if (length($result) > 0) {\n      box-shadow: $result;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_breakpoints.scss",
    "content": "// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n//    (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n//    >> breakpoint-next(sm)\n//    md\n//    >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    md\n//    >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n//    md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n  $n: index($breakpoint-names, $name);\n  @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n//    >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n  $min: map-get($breakpoints, $name);\n  @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n//    >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n  $next: breakpoint-next($name, $breakpoints);\n  @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n//    >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    \"\"  (Returns a blank string)\n//    >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n  @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  @if $min {\n    @media (min-width: $min) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n  $max: breakpoint-max($name, $breakpoints);\n  @if $max {\n    @media (max-width: $max) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($lower, $breakpoints);\n  $max: breakpoint-max($upper, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($lower, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($upper, $breakpoints) {\n      @content;\n    }\n  }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  $max: breakpoint-max($name, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($name, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($name, $breakpoints) {\n      @content;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_buttons.scss",
    "content": "// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {\n  color: color-yiq($background);\n  @include gradient-bg($background);\n  border-color: $border;\n  @include box-shadow($btn-box-shadow);\n\n  @include hover() {\n    color: color-yiq($hover-background);\n    @include gradient-bg($hover-background);\n    border-color: $hover-border;\n  }\n\n  &:focus,\n  &.focus {\n    color: color-yiq($hover-background);\n    @include gradient-bg($hover-background);\n    border-color: $hover-border;\n    @if $enable-shadows {\n      @include box-shadow($btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5));\n    } @else {\n      // Avoid using mixin so we can pass custom focus shadow properly\n      box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n    }\n  }\n\n  // Disabled comes first so active can properly restyle\n  &.disabled,\n  &:disabled {\n    color: color-yiq($background);\n    background-color: $background;\n    border-color: $border;\n    // Remove CSS gradients if they're enabled\n    @if $enable-gradients {\n      background-image: none;\n    }\n  }\n\n  &:not(:disabled):not(.disabled):active,\n  &:not(:disabled):not(.disabled).active,\n  .show > &.dropdown-toggle {\n    color: color-yiq($active-background);\n    background-color: $active-background;\n    @if $enable-gradients {\n      background-image: none; // Remove the gradient for the pressed/active state\n    }\n    border-color: $active-border;\n\n    &:focus {\n      @if $enable-shadows and $btn-active-box-shadow != none {\n        @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5));\n      } @else {\n        // Avoid using mixin so we can pass custom focus shadow properly\n        box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n      }\n    }\n  }\n}\n\n@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {\n  color: $color;\n  border-color: $color;\n\n  @include hover() {\n    color: $color-hover;\n    background-color: $active-background;\n    border-color: $active-border;\n  }\n\n  &:focus,\n  &.focus {\n    box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n  }\n\n  &.disabled,\n  &:disabled {\n    color: $color;\n    background-color: transparent;\n  }\n\n  &:not(:disabled):not(.disabled):active,\n  &:not(:disabled):not(.disabled).active,\n  .show > &.dropdown-toggle {\n    color: color-yiq($active-background);\n    background-color: $active-background;\n    border-color: $active-border;\n\n    &:focus {\n      @if $enable-shadows and $btn-active-box-shadow != none {\n        @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5));\n      } @else {\n        // Avoid using mixin so we can pass custom focus shadow properly\n        box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n      }\n    }\n  }\n}\n\n// Button sizes\n@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n  padding: $padding-y $padding-x;\n  @include font-size($font-size);\n  line-height: $line-height;\n  // Manually declare to provide an override to the browser default\n  @include border-radius($border-radius, 0);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_caret.scss",
    "content": "@mixin caret-down() {\n  border-top: $caret-width solid;\n  border-right: $caret-width solid transparent;\n  border-bottom: 0;\n  border-left: $caret-width solid transparent;\n}\n\n@mixin caret-up() {\n  border-top: 0;\n  border-right: $caret-width solid transparent;\n  border-bottom: $caret-width solid;\n  border-left: $caret-width solid transparent;\n}\n\n@mixin caret-right() {\n  border-top: $caret-width solid transparent;\n  border-right: 0;\n  border-bottom: $caret-width solid transparent;\n  border-left: $caret-width solid;\n}\n\n@mixin caret-left() {\n  border-top: $caret-width solid transparent;\n  border-right: $caret-width solid;\n  border-bottom: $caret-width solid transparent;\n}\n\n@mixin caret($direction: down) {\n  @if $enable-caret {\n    &::after {\n      display: inline-block;\n      margin-left: $caret-spacing;\n      vertical-align: $caret-vertical-align;\n      content: \"\";\n      @if $direction == down {\n        @include caret-down();\n      } @else if $direction == up {\n        @include caret-up();\n      } @else if $direction == right {\n        @include caret-right();\n      }\n    }\n\n    @if $direction == left {\n      &::after {\n        display: none;\n      }\n\n      &::before {\n        display: inline-block;\n        margin-right: $caret-spacing;\n        vertical-align: $caret-vertical-align;\n        content: \"\";\n        @include caret-left();\n      }\n    }\n\n    &:empty::after {\n      margin-left: 0;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_clearfix.scss",
    "content": "@mixin clearfix() {\n  &::after {\n    display: block;\n    clear: both;\n    content: \"\";\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_deprecate.scss",
    "content": "// Deprecate mixin\n//\n// This mixin can be used to deprecate mixins or functions.\n// `$enable-deprecation-messages` is a global variable, `$ignore-warning` is a variable that can be passed to\n// some deprecated mixins to suppress the warning (for example if the mixin is still be used in the current version of Bootstrap)\n@mixin deprecate($name, $deprecate-version, $remove-version, $ignore-warning: false) {\n  @if ($enable-deprecation-messages != false and $ignore-warning != true) {\n    @warn \"#{$name} has been deprecated as of #{$deprecate-version}. It will be removed entirely in #{$remove-version}.\";\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_float.scss",
    "content": "// stylelint-disable declaration-no-important\n\n@mixin float-left() {\n  float: left !important;\n  @include deprecate(\"The `float-left` mixin\", \"v4.3.0\", \"v5\");\n}\n@mixin float-right() {\n  float: right !important;\n  @include deprecate(\"The `float-right` mixin\", \"v4.3.0\", \"v5\");\n}\n@mixin float-none() {\n  float: none !important;\n  @include deprecate(\"The `float-none` mixin\", \"v4.3.0\", \"v5\");\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_forms.scss",
    "content": "// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `$input-focus-border-color` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n@mixin form-control-focus($ignore-warning: false) {\n  &:focus {\n    color: $input-focus-color;\n    background-color: $input-focus-bg;\n    border-color: $input-focus-border-color;\n    outline: 0;\n    @if $enable-shadows {\n      @include box-shadow($input-box-shadow, $input-focus-box-shadow);\n    } @else {\n      // Avoid using mixin so we can pass custom focus shadow properly\n      box-shadow: $input-focus-box-shadow;\n    }\n  }\n  @include deprecate(\"The `form-control-focus()` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n\n// This mixin uses an `if()` technique to be compatible with Dart Sass\n// See https://github.com/sass/sass/issues/1873#issuecomment-152293725 for more details\n@mixin form-validation-state-selector($state) {\n  @if ($state == \"valid\" or $state == \"invalid\") {\n    .was-validated #{if(&, \"&\", \"\")}:#{$state},\n    #{if(&, \"&\", \"\")}.is-#{$state} {\n      @content;\n    }\n  } @else {\n    #{if(&, \"&\", \"\")}.is-#{$state} {\n      @content;\n    }\n  }\n}\n\n@mixin form-validation-state($state, $color, $icon) {\n  .#{$state}-feedback {\n    display: none;\n    width: 100%;\n    margin-top: $form-feedback-margin-top;\n    @include font-size($form-feedback-font-size);\n    color: $color;\n  }\n\n  .#{$state}-tooltip {\n    position: absolute;\n    top: 100%;\n    left: 0;\n    z-index: 5;\n    display: none;\n    max-width: 100%; // Contain to parent when possible\n    padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;\n    margin-top: .1rem;\n    @include font-size($form-feedback-tooltip-font-size);\n    line-height: $form-feedback-tooltip-line-height;\n    color: color-yiq($color);\n    background-color: rgba($color, $form-feedback-tooltip-opacity);\n    @include border-radius($form-feedback-tooltip-border-radius);\n\n    // See https://github.com/twbs/bootstrap/pull/31557\n    // Align tooltip to form elements\n    .form-row > .col > &,\n    .form-row > [class*=\"col-\"] > & {\n      left: $form-grid-gutter-width / 2;\n    }\n  }\n\n  @include form-validation-state-selector($state) {\n    ~ .#{$state}-feedback,\n    ~ .#{$state}-tooltip {\n      display: block;\n    }\n  }\n\n  .form-control {\n    @include form-validation-state-selector($state) {\n      border-color: $color;\n\n      @if $enable-validation-icons {\n        padding-right: $input-height-inner;\n        background-image: escape-svg($icon);\n        background-repeat: no-repeat;\n        background-position: right $input-height-inner-quarter center;\n        background-size: $input-height-inner-half $input-height-inner-half;\n      }\n\n      &:focus {\n        border-color: $color;\n        box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n      }\n    }\n  }\n\n  // stylelint-disable-next-line selector-no-qualifying-type\n  textarea.form-control {\n    @include form-validation-state-selector($state) {\n      @if $enable-validation-icons {\n        padding-right: $input-height-inner;\n        background-position: top $input-height-inner-quarter right $input-height-inner-quarter;\n      }\n    }\n  }\n\n  .custom-select {\n    @include form-validation-state-selector($state) {\n      border-color: $color;\n\n      @if $enable-validation-icons {\n        padding-right: $custom-select-feedback-icon-padding-right;\n        background: $custom-select-background, $custom-select-bg escape-svg($icon) $custom-select-feedback-icon-position / $custom-select-feedback-icon-size no-repeat;\n      }\n\n      &:focus {\n        border-color: $color;\n        box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n      }\n    }\n  }\n\n  .form-check-input {\n    @include form-validation-state-selector($state) {\n      ~ .form-check-label {\n        color: $color;\n      }\n\n      ~ .#{$state}-feedback,\n      ~ .#{$state}-tooltip {\n        display: block;\n      }\n    }\n  }\n\n  .custom-control-input {\n    @include form-validation-state-selector($state) {\n      ~ .custom-control-label {\n        color: $color;\n\n        &::before {\n          border-color: $color;\n        }\n      }\n\n      &:checked {\n        ~ .custom-control-label::before {\n          border-color: lighten($color, 10%);\n          @include gradient-bg(lighten($color, 10%));\n        }\n      }\n\n      &:focus {\n        ~ .custom-control-label::before {\n          box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n        }\n\n        &:not(:checked) ~ .custom-control-label::before {\n          border-color: $color;\n        }\n      }\n    }\n  }\n\n  // custom file\n  .custom-file-input {\n    @include form-validation-state-selector($state) {\n      ~ .custom-file-label {\n        border-color: $color;\n      }\n\n      &:focus {\n        ~ .custom-file-label {\n          border-color: $color;\n          box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_gradients.scss",
    "content": "// Gradients\n\n@mixin gradient-bg($color) {\n  @if $enable-gradients {\n    background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;\n  } @else {\n    background-color: $color;\n  }\n}\n\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n  background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n  background-repeat: repeat-x;\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n  background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n  background-repeat: repeat-x;\n}\n\n@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {\n  background-image: linear-gradient($deg, $start-color, $end-color);\n  background-repeat: repeat-x;\n}\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n  background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n  background-repeat: no-repeat;\n}\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n  background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n  background-repeat: no-repeat;\n}\n@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {\n  background-image: radial-gradient(circle, $inner-color, $outer-color);\n  background-repeat: no-repeat;\n}\n@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {\n  background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_grid-framework.scss",
    "content": "// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n  // Common properties for all breakpoints\n  %grid-column {\n    position: relative;\n    width: 100%;\n    padding-right: $gutter / 2;\n    padding-left: $gutter / 2;\n  }\n\n  @each $breakpoint in map-keys($breakpoints) {\n    $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n    @if $columns > 0 {\n      // Allow columns to stretch full width below their breakpoints\n      @for $i from 1 through $columns {\n        .col#{$infix}-#{$i} {\n          @extend %grid-column;\n        }\n      }\n    }\n\n    .col#{$infix},\n    .col#{$infix}-auto {\n      @extend %grid-column;\n    }\n\n    @include media-breakpoint-up($breakpoint, $breakpoints) {\n      // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n      .col#{$infix} {\n        flex-basis: 0;\n        flex-grow: 1;\n        max-width: 100%;\n      }\n\n      @if $grid-row-columns > 0 {\n        @for $i from 1 through $grid-row-columns {\n          .row-cols#{$infix}-#{$i} {\n            @include row-cols($i);\n          }\n        }\n      }\n\n      .col#{$infix}-auto {\n        @include make-col-auto();\n      }\n\n      @if $columns > 0 {\n        @for $i from 1 through $columns {\n          .col#{$infix}-#{$i} {\n            @include make-col($i, $columns);\n          }\n        }\n      }\n\n      .order#{$infix}-first { order: -1; }\n\n      .order#{$infix}-last { order: $columns + 1; }\n\n      @for $i from 0 through $columns {\n        .order#{$infix}-#{$i} { order: $i; }\n      }\n\n      @if $columns > 0 {\n        // `$columns - 1` because offsetting by the width of an entire row isn't possible\n        @for $i from 0 through ($columns - 1) {\n          @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n            .offset#{$infix}-#{$i} {\n              @include make-col-offset($i, $columns);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_grid.scss",
    "content": "/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n  width: 100%;\n  padding-right: $gutter / 2;\n  padding-left: $gutter / 2;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n  display: flex;\n  flex-wrap: wrap;\n  margin-right: -$gutter / 2;\n  margin-left: -$gutter / 2;\n}\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n  @each $breakpoint, $container-max-width in $max-widths {\n    @include media-breakpoint-up($breakpoint, $breakpoints) {\n      max-width: $container-max-width;\n    }\n  }\n  @include deprecate(\"The `make-container-max-widths` mixin\", \"v4.5.2\", \"v5\");\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n  position: relative;\n  // Prevent columns from becoming too narrow when at smaller grid tiers by\n  // always setting `width: 100%;`. This works because we use `flex` values\n  // later on to override this initial width.\n  width: 100%;\n  padding-right: $gutter / 2;\n  padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n  flex: 0 0 percentage($size / $columns);\n  // Add a `max-width` to ensure content within each column does not blow out\n  // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n  // do not appear to require this.\n  max-width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n  flex: 0 0 auto;\n  width: auto;\n  max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n  $num: $size / $columns;\n  margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n  > * {\n    flex: 0 0 100% / $count;\n    max-width: 100% / $count;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_hover.scss",
    "content": "// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover() {\n  &:hover { @content; }\n}\n\n@mixin hover-focus() {\n  &:hover,\n  &:focus {\n    @content;\n  }\n}\n\n@mixin plain-hover-focus() {\n  &,\n  &:hover,\n  &:focus {\n    @content;\n  }\n}\n\n@mixin hover-focus-active() {\n  &:hover,\n  &:focus,\n  &:active {\n    @content;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_image.scss",
    "content": "// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid() {\n  // Part 1: Set a maximum relative to the parent\n  max-width: 100%;\n  // Part 2: Override the height to auto, otherwise images will be stretched\n  // when setting a width and height attribute on the img element.\n  height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n  background-image: url($file-1x);\n\n  // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n  // but doesn't convert dppx=>dpi.\n  // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n  // Compatibility info: https://caniuse.com/css-media-resolution\n  @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n    only screen and (min-resolution: 2dppx) { // Standardized\n    background-image: url($file-2x);\n    background-size: $width-1x $height-1x;\n  }\n  @include deprecate(\"`img-retina()`\", \"v4.3.0\", \"v5\");\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_list-group.scss",
    "content": "// List Groups\n\n@mixin list-group-item-variant($state, $background, $color) {\n  .list-group-item-#{$state} {\n    color: $color;\n    background-color: $background;\n\n    &.list-group-item-action {\n      @include hover-focus() {\n        color: $color;\n        background-color: darken($background, 5%);\n      }\n\n      &.active {\n        color: $white;\n        background-color: $color;\n        border-color: $color;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_lists.scss",
    "content": "// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled() {\n  padding-left: 0;\n  list-style: none;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_nav-divider.scss",
    "content": "// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n@mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y, $ignore-warning: false) {\n  height: 0;\n  margin: $margin-y 0;\n  overflow: hidden;\n  border-top: 1px solid $color;\n  @include deprecate(\"The `nav-divider()` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_pagination.scss",
    "content": "// Pagination\n\n@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n  .page-link {\n    padding: $padding-y $padding-x;\n    @include font-size($font-size);\n    line-height: $line-height;\n  }\n\n  .page-item {\n    &:first-child {\n      .page-link {\n        @include border-left-radius($border-radius);\n      }\n    }\n    &:last-child {\n      .page-link {\n        @include border-right-radius($border-radius);\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_reset-text.scss",
    "content": "@mixin reset-text() {\n  font-family: $font-family-base;\n  // We deliberately do NOT reset font-size or word-wrap.\n  font-style: normal;\n  font-weight: $font-weight-normal;\n  line-height: $line-height-base;\n  text-align: left; // Fallback for where `start` is not supported\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_resize.scss",
    "content": "// Resize anything\n\n@mixin resizable($direction) {\n  overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`\n  resize: $direction; // Options: horizontal, vertical, both\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_screen-reader.scss",
    "content": "// Only display content to screen readers\n//\n// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\n// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin sr-only() {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px; // Fix for https://github.com/twbs/bootstrap/issues/25686\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap;\n  border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n@mixin sr-only-focusable() {\n  &:active,\n  &:focus {\n    position: static;\n    width: auto;\n    height: auto;\n    overflow: visible;\n    clip: auto;\n    white-space: normal;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_size.scss",
    "content": "// Sizing shortcuts\n\n@mixin size($width, $height: $width) {\n  width: $width;\n  height: $height;\n  @include deprecate(\"`size()`\", \"v4.3.0\", \"v5\");\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_table-row.scss",
    "content": "// Tables\n\n@mixin table-row-variant($state, $background, $border: null) {\n  // Exact selectors below required to override `.table-striped` and prevent\n  // inheritance to nested tables.\n  .table-#{$state} {\n    &,\n    > th,\n    > td {\n      background-color: $background;\n    }\n\n    @if $border != null {\n      th,\n      td,\n      thead th,\n      tbody + tbody {\n        border-color: $border;\n      }\n    }\n  }\n\n  // Hover states for `.table-hover`\n  // Note: this is not available for cells or rows within `thead` or `tfoot`.\n  .table-hover {\n    $hover-background: darken($background, 5%);\n\n    .table-#{$state} {\n      @include hover() {\n        background-color: $hover-background;\n\n        > td,\n        > th {\n          background-color: $hover-background;\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_text-emphasis.scss",
    "content": "// stylelint-disable declaration-no-important\n\n// Typography\n\n@mixin text-emphasis-variant($parent, $color, $ignore-warning: false) {\n  #{$parent} {\n    color: $color !important;\n  }\n  @if $emphasized-link-hover-darken-percentage != 0 {\n    a#{$parent} {\n      @include hover-focus() {\n        color: darken($color, $emphasized-link-hover-darken-percentage) !important;\n      }\n    }\n  }\n  @include deprecate(\"`text-emphasis-variant()`\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_text-hide.scss",
    "content": "// CSS image replacement\n@mixin text-hide($ignore-warning: false) {\n  // stylelint-disable-next-line font-family-no-missing-generic-family-keyword\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n\n  @include deprecate(\"`text-hide()`\", \"v4.1.0\", \"v5\", $ignore-warning);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_text-truncate.scss",
    "content": "// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_transition.scss",
    "content": "// stylelint-disable property-disallowed-list\n@mixin transition($transition...) {\n  @if length($transition) == 0 {\n    $transition: $transition-base;\n  }\n\n  @if length($transition) > 1 {\n    @each $value in $transition {\n      @if $value == null or $value == none {\n        @warn \"The keyword 'none' or 'null' must be used as a single argument.\";\n      }\n    }\n  }\n\n  @if $enable-transitions {\n    @if nth($transition, 1) != null {\n      transition: $transition;\n    }\n\n    @if $enable-prefers-reduced-motion-media-query and nth($transition, 1) != null and nth($transition, 1) != none {\n      @media (prefers-reduced-motion: reduce) {\n        transition: none;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/mixins/_visibility.scss",
    "content": "// stylelint-disable declaration-no-important\n\n// Visibility\n\n@mixin invisible($visibility) {\n  visibility: $visibility !important;\n  @include deprecate(\"`invisible()`\", \"v4.3.0\", \"v5\");\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/utilities/_align.scss",
    "content": "// stylelint-disable declaration-no-important\n\n.align-baseline    { vertical-align: baseline !important; } // Browser default\n.align-top         { vertical-align: top !important; }\n.align-middle      { vertical-align: middle !important; }\n.align-bottom      { vertical-align: bottom !important; }\n.align-text-bottom { vertical-align: text-bottom !important; }\n.align-text-top    { vertical-align: text-top !important; }\n"
  },
  {
    "path": "dist/lib/bootstrap4/utilities/_background.scss",
    "content": "// stylelint-disable declaration-no-important\n\n@each $color, $value in $theme-colors {\n  @include bg-variant(\".bg-#{$color}\", $value, true);\n}\n\n@if $enable-gradients {\n  @each $color, $value in $theme-colors {\n    @include bg-gradient-variant(\".bg-gradient-#{$color}\", $value, true);\n  }\n}\n\n.bg-white {\n  background-color: $white !important;\n}\n\n.bg-transparent {\n  background-color: transparent !important;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/utilities/_borders.scss",
    "content": "// stylelint-disable property-disallowed-list, declaration-no-important\n\n//\n// Border\n//\n\n.border         { border: $border-width solid $border-color !important; }\n.border-top     { border-top: $border-width solid $border-color !important; }\n.border-right   { border-right: $border-width solid $border-color !important; }\n.border-bottom  { border-bottom: $border-width solid $border-color !important; }\n.border-left    { border-left: $border-width solid $border-color !important; }\n\n.border-0        { border: 0 !important; }\n.border-top-0    { border-top: 0 !important; }\n.border-right-0  { border-right: 0 !important; }\n.border-bottom-0 { border-bottom: 0 !important; }\n.border-left-0   { border-left: 0 !important; }\n\n@each $color, $value in $theme-colors {\n  .border-#{$color} {\n    border-color: $value !important;\n  }\n}\n\n.border-white {\n  border-color: $white !important;\n}\n\n//\n// Border-radius\n//\n\n.rounded-sm {\n  border-radius: $border-radius-sm !important;\n}\n\n.rounded {\n  border-radius: $border-radius !important;\n}\n\n.rounded-top {\n  border-top-left-radius: $border-radius !important;\n  border-top-right-radius: $border-radius !important;\n}\n\n.rounded-right {\n  border-top-right-radius: $border-radius !important;\n  border-bottom-right-radius: $border-radius !important;\n}\n\n.rounded-bottom {\n  border-bottom-right-radius: $border-radius !important;\n  border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-left {\n  border-top-left-radius: $border-radius !important;\n  border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-lg {\n  border-radius: $border-radius-lg !important;\n}\n\n.rounded-circle {\n  border-radius: 50% !important;\n}\n\n.rounded-pill {\n  border-radius: $rounded-pill !important;\n}\n\n.rounded-0 {\n  border-radius: 0 !important;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/utilities/_clearfix.scss",
    "content": ".clearfix {\n  @include clearfix();\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/utilities/_display.scss",
    "content": "// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    @each $value in $displays {\n      .d#{$infix}-#{$value} { display: $value !important; }\n    }\n  }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n  @each $value in $displays {\n    .d-print-#{$value} { display: $value !important; }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/utilities/_embed.scss",
    "content": "// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  width: 100%;\n  padding: 0;\n  overflow: hidden;\n\n  &::before {\n    display: block;\n    content: \"\";\n  }\n\n  .embed-responsive-item,\n  iframe,\n  embed,\n  object,\n  video {\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    border: 0;\n  }\n}\n\n@each $embed-responsive-aspect-ratio in $embed-responsive-aspect-ratios {\n  $embed-responsive-aspect-ratio-x: nth($embed-responsive-aspect-ratio, 1);\n  $embed-responsive-aspect-ratio-y: nth($embed-responsive-aspect-ratio, 2);\n\n  .embed-responsive-#{$embed-responsive-aspect-ratio-x}by#{$embed-responsive-aspect-ratio-y} {\n    &::before {\n      padding-top: percentage($embed-responsive-aspect-ratio-y / $embed-responsive-aspect-ratio-x);\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/utilities/_flex.scss",
    "content": "// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .flex#{$infix}-row            { flex-direction: row !important; }\n    .flex#{$infix}-column         { flex-direction: column !important; }\n    .flex#{$infix}-row-reverse    { flex-direction: row-reverse !important; }\n    .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n    .flex#{$infix}-wrap         { flex-wrap: wrap !important; }\n    .flex#{$infix}-nowrap       { flex-wrap: nowrap !important; }\n    .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n    .flex#{$infix}-fill         { flex: 1 1 auto !important; }\n    .flex#{$infix}-grow-0       { flex-grow: 0 !important; }\n    .flex#{$infix}-grow-1       { flex-grow: 1 !important; }\n    .flex#{$infix}-shrink-0     { flex-shrink: 0 !important; }\n    .flex#{$infix}-shrink-1     { flex-shrink: 1 !important; }\n\n    .justify-content#{$infix}-start   { justify-content: flex-start !important; }\n    .justify-content#{$infix}-end     { justify-content: flex-end !important; }\n    .justify-content#{$infix}-center  { justify-content: center !important; }\n    .justify-content#{$infix}-between { justify-content: space-between !important; }\n    .justify-content#{$infix}-around  { justify-content: space-around !important; }\n\n    .align-items#{$infix}-start    { align-items: flex-start !important; }\n    .align-items#{$infix}-end      { align-items: flex-end !important; }\n    .align-items#{$infix}-center   { align-items: center !important; }\n    .align-items#{$infix}-baseline { align-items: baseline !important; }\n    .align-items#{$infix}-stretch  { align-items: stretch !important; }\n\n    .align-content#{$infix}-start   { align-content: flex-start !important; }\n    .align-content#{$infix}-end     { align-content: flex-end !important; }\n    .align-content#{$infix}-center  { align-content: center !important; }\n    .align-content#{$infix}-between { align-content: space-between !important; }\n    .align-content#{$infix}-around  { align-content: space-around !important; }\n    .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n    .align-self#{$infix}-auto     { align-self: auto !important; }\n    .align-self#{$infix}-start    { align-self: flex-start !important; }\n    .align-self#{$infix}-end      { align-self: flex-end !important; }\n    .align-self#{$infix}-center   { align-self: center !important; }\n    .align-self#{$infix}-baseline { align-self: baseline !important; }\n    .align-self#{$infix}-stretch  { align-self: stretch !important; }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/utilities/_float.scss",
    "content": "// stylelint-disable declaration-no-important\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .float#{$infix}-left  { float: left !important; }\n    .float#{$infix}-right { float: right !important; }\n    .float#{$infix}-none  { float: none !important; }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/utilities/_interactions.scss",
    "content": "// stylelint-disable declaration-no-important\n\n@each $value in $user-selects {\n  .user-select-#{$value} { user-select: $value !important; }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/utilities/_overflow.scss",
    "content": "// stylelint-disable declaration-no-important\n\n@each $value in $overflows {\n  .overflow-#{$value} { overflow: $value !important; }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/utilities/_position.scss",
    "content": "// stylelint-disable declaration-no-important\n\n// Common values\n@each $position in $positions {\n  .position-#{$position} { position: $position !important; }\n}\n\n// Shorthand\n\n.fixed-top {\n  position: fixed;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: $zindex-fixed;\n}\n\n.fixed-bottom {\n  position: fixed;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $zindex-fixed;\n}\n\n.sticky-top {\n  @supports (position: sticky) {\n    position: sticky;\n    top: 0;\n    z-index: $zindex-sticky;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/utilities/_screenreaders.scss",
    "content": "//\n// Screenreaders\n//\n\n.sr-only {\n  @include sr-only();\n}\n\n.sr-only-focusable {\n  @include sr-only-focusable();\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/utilities/_shadows.scss",
    "content": "// stylelint-disable declaration-no-important\n\n.shadow-sm { box-shadow: $box-shadow-sm !important; }\n.shadow { box-shadow: $box-shadow !important; }\n.shadow-lg { box-shadow: $box-shadow-lg !important; }\n.shadow-none { box-shadow: none !important; }\n"
  },
  {
    "path": "dist/lib/bootstrap4/utilities/_sizing.scss",
    "content": "// stylelint-disable declaration-no-important\n\n// Width and height\n\n@each $prop, $abbrev in (width: w, height: h) {\n  @each $size, $length in $sizes {\n    .#{$abbrev}-#{$size} { #{$prop}: $length !important; }\n  }\n}\n\n.mw-100 { max-width: 100% !important; }\n.mh-100 { max-height: 100% !important; }\n\n// Viewport additional helpers\n\n.min-vw-100 { min-width: 100vw !important; }\n.min-vh-100 { min-height: 100vh !important; }\n\n.vw-100 { width: 100vw !important; }\n.vh-100 { height: 100vh !important; }\n"
  },
  {
    "path": "dist/lib/bootstrap4/utilities/_spacing.scss",
    "content": "// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    @each $prop, $abbrev in (margin: m, padding: p) {\n      @each $size, $length in $spacers {\n        .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n        .#{$abbrev}t#{$infix}-#{$size},\n        .#{$abbrev}y#{$infix}-#{$size} {\n          #{$prop}-top: $length !important;\n        }\n        .#{$abbrev}r#{$infix}-#{$size},\n        .#{$abbrev}x#{$infix}-#{$size} {\n          #{$prop}-right: $length !important;\n        }\n        .#{$abbrev}b#{$infix}-#{$size},\n        .#{$abbrev}y#{$infix}-#{$size} {\n          #{$prop}-bottom: $length !important;\n        }\n        .#{$abbrev}l#{$infix}-#{$size},\n        .#{$abbrev}x#{$infix}-#{$size} {\n          #{$prop}-left: $length !important;\n        }\n      }\n    }\n\n    // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n    @each $size, $length in $spacers {\n      @if $size != 0 {\n        .m#{$infix}-n#{$size} { margin: -$length !important; }\n        .mt#{$infix}-n#{$size},\n        .my#{$infix}-n#{$size} {\n          margin-top: -$length !important;\n        }\n        .mr#{$infix}-n#{$size},\n        .mx#{$infix}-n#{$size} {\n          margin-right: -$length !important;\n        }\n        .mb#{$infix}-n#{$size},\n        .my#{$infix}-n#{$size} {\n          margin-bottom: -$length !important;\n        }\n        .ml#{$infix}-n#{$size},\n        .mx#{$infix}-n#{$size} {\n          margin-left: -$length !important;\n        }\n      }\n    }\n\n    // Some special margin utils\n    .m#{$infix}-auto { margin: auto !important; }\n    .mt#{$infix}-auto,\n    .my#{$infix}-auto {\n      margin-top: auto !important;\n    }\n    .mr#{$infix}-auto,\n    .mx#{$infix}-auto {\n      margin-right: auto !important;\n    }\n    .mb#{$infix}-auto,\n    .my#{$infix}-auto {\n      margin-bottom: auto !important;\n    }\n    .ml#{$infix}-auto,\n    .mx#{$infix}-auto {\n      margin-left: auto !important;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/utilities/_stretched-link.scss",
    "content": "//\n// Stretched link\n//\n\n.stretched-link {\n  &::after {\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    z-index: 1;\n    // Just in case `pointer-events: none` is set on a parent\n    pointer-events: auto;\n    content: \"\";\n    // IE10 bugfix, see https://stackoverflow.com/questions/16947967/ie10-hover-pseudo-class-doesnt-work-without-background-color\n    background-color: rgba(0, 0, 0, 0);\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/utilities/_text.scss",
    "content": "// stylelint-disable declaration-no-important\n\n//\n// Text\n//\n\n.text-monospace { font-family: $font-family-monospace !important; }\n\n// Alignment\n\n.text-justify  { text-align: justify !important; }\n.text-wrap     { white-space: normal !important; }\n.text-nowrap   { white-space: nowrap !important; }\n.text-truncate { @include text-truncate(); }\n\n// Responsive alignment\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .text#{$infix}-left   { text-align: left !important; }\n    .text#{$infix}-right  { text-align: right !important; }\n    .text#{$infix}-center { text-align: center !important; }\n  }\n}\n\n// Transformation\n\n.text-lowercase  { text-transform: lowercase !important; }\n.text-uppercase  { text-transform: uppercase !important; }\n.text-capitalize { text-transform: capitalize !important; }\n\n// Weight and italics\n\n.font-weight-light   { font-weight: $font-weight-light !important; }\n.font-weight-lighter { font-weight: $font-weight-lighter !important; }\n.font-weight-normal  { font-weight: $font-weight-normal !important; }\n.font-weight-bold    { font-weight: $font-weight-bold !important; }\n.font-weight-bolder  { font-weight: $font-weight-bolder !important; }\n.font-italic         { font-style: italic !important; }\n\n// Contextual colors\n\n.text-white { color: $white !important; }\n\n@each $color, $value in $theme-colors {\n  @include text-emphasis-variant(\".text-#{$color}\", $value, true);\n}\n\n.text-body { color: $body-color !important; }\n.text-muted { color: $text-muted !important; }\n\n.text-black-50 { color: rgba($black, .5) !important; }\n.text-white-50 { color: rgba($white, .5) !important; }\n\n// Misc\n\n.text-hide {\n  @include text-hide($ignore-warning: true);\n}\n\n.text-decoration-none { text-decoration: none !important; }\n\n.text-break {\n  word-break: break-word !important; // Deprecated, but avoids issues with flex containers\n  word-wrap: break-word !important; // Used instead of `overflow-wrap` for IE & Edge Legacy\n}\n\n// Reset\n\n.text-reset { color: inherit !important; }\n"
  },
  {
    "path": "dist/lib/bootstrap4/utilities/_visibility.scss",
    "content": "// stylelint-disable declaration-no-important\n\n//\n// Visibility utilities\n//\n\n.visible {\n  visibility: visible !important;\n}\n\n.invisible {\n  visibility: hidden !important;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap4/vendor/_rfs.scss",
    "content": "// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n  @error \"`#{$rfs-factor}` is not a valid  $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n  $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n  $rfs-base-font-size: calc($rfs-base-font-size / ($rfs-base-font-size * 0 + calc(1px / $rfs-rem-value)));\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n  $rfs-breakpoint: calc($rfs-breakpoint / ($rfs-breakpoint * 0 + 1px));\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n  $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + calc(1 / $rfs-rem-value));\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n  // Cache $fs unit\n  $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n  // Add !important suffix if needed\n  $rfs-suffix: if($important, \" !important\", \"\");\n\n  // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n  @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n    font-size: #{$fs}#{$rfs-suffix};\n  }\n  @else {\n    // Variables for storing static and fluid rescaling\n    $rfs-static: null;\n    $rfs-fluid: null;\n\n    // Remove px-unit from $fs for calculations\n    @if $fs-unit == \"px\" {\n      $fs: $fs / ($fs * 0 + 1);\n    }\n    @else if $fs-unit == \"rem\" {\n      $fs: $fs / ($fs * 0 + calc(1 / $rfs-rem-value));\n    }\n\n    // Set default font-size\n    @if $rfs-font-size-unit == rem {\n      $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n    }\n    @else if $rfs-font-size-unit == px {\n      $rfs-static: #{$fs}px#{$rfs-suffix};\n    }\n    @else {\n      @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n    }\n\n    // Only add media query if font-size is bigger as the minimum font-size\n    // If $rfs-factor == 1, no rescaling will take place\n    @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n      $min-width: null;\n      $variable-unit: null;\n\n      // Calculate minimum font-size for given font-size\n      $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n      // Calculate difference between given font-size and minimum font-size for given font-size\n      $fs-diff: $fs - $fs-min;\n\n      // Base font-size formatting\n      // No need to check if the unit is valid, because we did that before\n      $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n      // If two-dimensional, use smallest of screen width and height\n      $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n      // Calculate the variable width between 0 and $rfs-breakpoint\n      $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n      // Set the calculated font-size.\n      $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n    }\n\n    // Rendering\n    @if $rfs-fluid == null {\n      // Only render static font-size if no fluid font-size is available\n      font-size: $rfs-static;\n    }\n    @else {\n      $mq-value: null;\n\n      // RFS breakpoint formatting\n      @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n        $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n      }\n      @else if $rfs-breakpoint-unit == px {\n        $mq-value: #{$rfs-breakpoint}px;\n      }\n      @else {\n        @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n      }\n\n      @if $rfs-class == \"disable\" {\n        // Adding an extra class increases specificity,\n        // which prevents the media query to override the font size\n        &,\n        .disable-responsive-font-size &,\n        &.disable-responsive-font-size {\n          font-size: $rfs-static;\n        }\n      }\n      @else {\n        font-size: $rfs-static;\n      }\n\n      @if $rfs-two-dimensional {\n        @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n          @if $rfs-class == \"enable\" {\n            .enable-responsive-font-size &,\n            &.enable-responsive-font-size {\n              font-size: $rfs-fluid;\n            }\n          }\n          @else {\n            font-size: $rfs-fluid;\n          }\n\n          @if $rfs-safari-iframe-resize-bug-fix {\n            // stylelint-disable-next-line length-zero-no-unit\n            min-width: 0vw;\n          }\n        }\n      }\n      @else {\n        @media (max-width: #{$mq-value}) {\n          @if $rfs-class == \"enable\" {\n            .enable-responsive-font-size &,\n            &.enable-responsive-font-size {\n              font-size: $rfs-fluid;\n            }\n          }\n          @else {\n            font-size: $rfs-fluid;\n          }\n\n          @if $rfs-safari-iframe-resize-bug-fix {\n            // stylelint-disable-next-line length-zero-no-unit\n            min-width: 0vw;\n          }\n        }\n      }\n    }\n  }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n  @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n  @include rfs($fs, $important);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_accordion.scss",
    "content": "//\n// Base styles\n//\n\n.accordion {\n  // scss-docs-start accordion-css-vars\n  --#{$prefix}accordion-color: #{$accordion-color};\n  --#{$prefix}accordion-bg: #{$accordion-bg};\n  --#{$prefix}accordion-transition: #{$accordion-transition};\n  --#{$prefix}accordion-border-color: #{$accordion-border-color};\n  --#{$prefix}accordion-border-width: #{$accordion-border-width};\n  --#{$prefix}accordion-border-radius: #{$accordion-border-radius};\n  --#{$prefix}accordion-inner-border-radius: #{$accordion-inner-border-radius};\n  --#{$prefix}accordion-btn-padding-x: #{$accordion-button-padding-x};\n  --#{$prefix}accordion-btn-padding-y: #{$accordion-button-padding-y};\n  --#{$prefix}accordion-btn-color: #{$accordion-button-color};\n  --#{$prefix}accordion-btn-bg: #{$accordion-button-bg};\n  --#{$prefix}accordion-btn-icon: #{escape-svg($accordion-button-icon)};\n  --#{$prefix}accordion-btn-icon-width: #{$accordion-icon-width};\n  --#{$prefix}accordion-btn-icon-transform: #{$accordion-icon-transform};\n  --#{$prefix}accordion-btn-icon-transition: #{$accordion-icon-transition};\n  --#{$prefix}accordion-btn-active-icon: #{escape-svg($accordion-button-active-icon)};\n  --#{$prefix}accordion-btn-focus-border-color: #{$accordion-button-focus-border-color};\n  --#{$prefix}accordion-btn-focus-box-shadow: #{$accordion-button-focus-box-shadow};\n  --#{$prefix}accordion-body-padding-x: #{$accordion-body-padding-x};\n  --#{$prefix}accordion-body-padding-y: #{$accordion-body-padding-y};\n  --#{$prefix}accordion-active-color: #{$accordion-button-active-color};\n  --#{$prefix}accordion-active-bg: #{$accordion-button-active-bg};\n  // scss-docs-end accordion-css-vars\n}\n\n.accordion-button {\n  position: relative;\n  display: flex;\n  align-items: center;\n  width: 100%;\n  padding: var(--#{$prefix}accordion-btn-padding-y) var(--#{$prefix}accordion-btn-padding-x);\n  @include font-size($font-size-base);\n  color: var(--#{$prefix}accordion-btn-color);\n  text-align: left; // Reset button style\n  background-color: var(--#{$prefix}accordion-btn-bg);\n  border: 0;\n  @include border-radius(0);\n  overflow-anchor: none;\n  @include transition(var(--#{$prefix}accordion-transition));\n\n  &:not(.collapsed) {\n    color: var(--#{$prefix}accordion-active-color);\n    background-color: var(--#{$prefix}accordion-active-bg);\n    box-shadow: inset 0 calc(-1 * var(--#{$prefix}accordion-border-width)) 0 var(--#{$prefix}accordion-border-color); // stylelint-disable-line function-disallowed-list\n\n    &::after {\n      background-image: var(--#{$prefix}accordion-btn-active-icon);\n      transform: var(--#{$prefix}accordion-btn-icon-transform);\n    }\n  }\n\n  // Accordion icon\n  &::after {\n    flex-shrink: 0;\n    width: var(--#{$prefix}accordion-btn-icon-width);\n    height: var(--#{$prefix}accordion-btn-icon-width);\n    margin-left: auto;\n    content: \"\";\n    background-image: var(--#{$prefix}accordion-btn-icon);\n    background-repeat: no-repeat;\n    background-size: var(--#{$prefix}accordion-btn-icon-width);\n    @include transition(var(--#{$prefix}accordion-btn-icon-transition));\n  }\n\n  &:hover {\n    z-index: 2;\n  }\n\n  &:focus {\n    z-index: 3;\n    border-color: var(--#{$prefix}accordion-btn-focus-border-color);\n    outline: 0;\n    box-shadow: var(--#{$prefix}accordion-btn-focus-box-shadow);\n  }\n}\n\n.accordion-header {\n  margin-bottom: 0;\n}\n\n.accordion-item {\n  color: var(--#{$prefix}accordion-color);\n  background-color: var(--#{$prefix}accordion-bg);\n  border: var(--#{$prefix}accordion-border-width) solid var(--#{$prefix}accordion-border-color);\n\n  &:first-of-type {\n    @include border-top-radius(var(--#{$prefix}accordion-border-radius));\n\n    .accordion-button {\n      @include border-top-radius(var(--#{$prefix}accordion-inner-border-radius));\n    }\n  }\n\n  &:not(:first-of-type) {\n    border-top: 0;\n  }\n\n  // Only set a border-radius on the last item if the accordion is collapsed\n  &:last-of-type {\n    @include border-bottom-radius(var(--#{$prefix}accordion-border-radius));\n\n    .accordion-button {\n      &.collapsed {\n        @include border-bottom-radius(var(--#{$prefix}accordion-inner-border-radius));\n      }\n    }\n\n    .accordion-collapse {\n      @include border-bottom-radius(var(--#{$prefix}accordion-border-radius));\n    }\n  }\n}\n\n.accordion-body {\n  padding: var(--#{$prefix}accordion-body-padding-y) var(--#{$prefix}accordion-body-padding-x);\n}\n\n\n// Flush accordion items\n//\n// Remove borders and border-radius to keep accordion items edge-to-edge.\n\n.accordion-flush {\n  .accordion-collapse {\n    border-width: 0;\n  }\n\n  .accordion-item {\n    border-right: 0;\n    border-left: 0;\n    @include border-radius(0);\n\n    &:first-child { border-top: 0; }\n    &:last-child { border-bottom: 0; }\n\n    .accordion-button {\n      &,\n      &.collapsed {\n        @include border-radius(0);\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_alert.scss",
    "content": "//\n// Base styles\n//\n\n.alert {\n  // scss-docs-start alert-css-vars\n  --#{$prefix}alert-bg: transparent;\n  --#{$prefix}alert-padding-x: #{$alert-padding-x};\n  --#{$prefix}alert-padding-y: #{$alert-padding-y};\n  --#{$prefix}alert-margin-bottom: #{$alert-margin-bottom};\n  --#{$prefix}alert-color: inherit;\n  --#{$prefix}alert-border-color: transparent;\n  --#{$prefix}alert-border: #{$alert-border-width} solid var(--#{$prefix}alert-border-color);\n  --#{$prefix}alert-border-radius: #{$alert-border-radius};\n  // scss-docs-end alert-css-vars\n\n  position: relative;\n  padding: var(--#{$prefix}alert-padding-y) var(--#{$prefix}alert-padding-x);\n  margin-bottom: var(--#{$prefix}alert-margin-bottom);\n  color: var(--#{$prefix}alert-color);\n  background-color: var(--#{$prefix}alert-bg);\n  border: var(--#{$prefix}alert-border);\n  @include border-radius(var(--#{$prefix}alert-border-radius));\n}\n\n// Headings for larger alerts\n.alert-heading {\n  // Specified to prevent conflicts of changing $headings-color\n  color: inherit;\n}\n\n// Provide class for links that match alerts\n.alert-link {\n  font-weight: $alert-link-font-weight;\n}\n\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissible {\n  padding-right: $alert-dismissible-padding-r;\n\n  // Adjust close link position\n  .btn-close {\n    position: absolute;\n    top: 0;\n    right: 0;\n    z-index: $stretched-link-z-index + 1;\n    padding: $alert-padding-y * 1.25 $alert-padding-x;\n  }\n}\n\n\n// scss-docs-start alert-modifiers\n// Generate contextual modifier classes for colorizing the alert.\n\n@each $state, $value in $theme-colors {\n  $alert-background: shift-color($value, $alert-bg-scale);\n  $alert-border: shift-color($value, $alert-border-scale);\n  $alert-color: shift-color($value, $alert-color-scale);\n\n  @if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) {\n    $alert-color: mix($value, color-contrast($alert-background), abs($alert-color-scale));\n  }\n  .alert-#{$state} {\n    @include alert-variant($alert-background, $alert-border, $alert-color);\n  }\n}\n// scss-docs-end alert-modifiers\n"
  },
  {
    "path": "dist/lib/bootstrap5/_badge.scss",
    "content": "// Base class\n//\n// Requires one of the contextual, color modifier classes for `color` and\n// `background-color`.\n\n.badge {\n  // scss-docs-start badge-css-vars\n  --#{$prefix}badge-padding-x: #{$badge-padding-x};\n  --#{$prefix}badge-padding-y: #{$badge-padding-y};\n  @include rfs($badge-font-size, --#{$prefix}badge-font-size);\n  --#{$prefix}badge-font-weight: #{$badge-font-weight};\n  --#{$prefix}badge-color: #{$badge-color};\n  --#{$prefix}badge-border-radius: #{$badge-border-radius};\n  // scss-docs-end badge-css-vars\n\n  display: inline-block;\n  padding: var(--#{$prefix}badge-padding-y) var(--#{$prefix}badge-padding-x);\n  @include font-size(var(--#{$prefix}badge-font-size));\n  font-weight: var(--#{$prefix}badge-font-weight);\n  line-height: 1;\n  color: var(--#{$prefix}badge-color);\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  @include border-radius(var(--#{$prefix}badge-border-radius));\n  @include gradient-bg();\n\n  // Empty badges collapse automatically\n  &:empty {\n    display: none;\n  }\n}\n\n// Quick fix for badges in buttons\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_breadcrumb.scss",
    "content": ".breadcrumb {\n  // scss-docs-start breadcrumb-css-vars\n  --#{$prefix}breadcrumb-padding-x: #{$breadcrumb-padding-x};\n  --#{$prefix}breadcrumb-padding-y: #{$breadcrumb-padding-y};\n  --#{$prefix}breadcrumb-margin-bottom: #{$breadcrumb-margin-bottom};\n  @include rfs($breadcrumb-font-size, --#{$prefix}breadcrumb-font-size);\n  --#{$prefix}breadcrumb-bg: #{$breadcrumb-bg};\n  --#{$prefix}breadcrumb-border-radius: #{$breadcrumb-border-radius};\n  --#{$prefix}breadcrumb-divider-color: #{$breadcrumb-divider-color};\n  --#{$prefix}breadcrumb-item-padding-x: #{$breadcrumb-item-padding-x};\n  --#{$prefix}breadcrumb-item-active-color: #{$breadcrumb-active-color};\n  // scss-docs-end breadcrumb-css-vars\n\n  display: flex;\n  flex-wrap: wrap;\n  padding: var(--#{$prefix}breadcrumb-padding-y) var(--#{$prefix}breadcrumb-padding-x);\n  margin-bottom: var(--#{$prefix}breadcrumb-margin-bottom);\n  @include font-size(var(--#{$prefix}breadcrumb-font-size));\n  list-style: none;\n  background-color: var(--#{$prefix}breadcrumb-bg);\n  @include border-radius(var(--#{$prefix}breadcrumb-border-radius));\n}\n\n.breadcrumb-item {\n  // The separator between breadcrumbs (by default, a forward-slash: \"/\")\n  + .breadcrumb-item {\n    padding-left: var(--#{$prefix}breadcrumb-item-padding-x);\n\n    &::before {\n      float: left; // Suppress inline spacings and underlining of the separator\n      padding-right: var(--#{$prefix}breadcrumb-item-padding-x);\n      color: var(--#{$prefix}breadcrumb-divider-color);\n      content: var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)) #{\"/* rtl:\"} var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider-flipped)) #{\"*/\"};\n    }\n  }\n\n  &.active {\n    color: var(--#{$prefix}breadcrumb-item-active-color);\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_button-group.scss",
    "content": "// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-flex;\n  vertical-align: middle; // match .btn alignment given font-size hack above\n\n  > .btn {\n    position: relative;\n    flex: 1 1 auto;\n  }\n\n  // Bring the hover, focused, and \"active\" buttons to the front to overlay\n  // the borders properly\n  > .btn-check:checked + .btn,\n  > .btn-check:focus + .btn,\n  > .btn:hover,\n  > .btn:focus,\n  > .btn:active,\n  > .btn.active {\n    z-index: 1;\n  }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n\n  .input-group {\n    width: auto;\n  }\n}\n\n.btn-group {\n  @include border-radius($btn-border-radius);\n\n  // Prevent double borders when buttons are next to each other\n  > :not(.btn-check:first-child) + .btn,\n  > .btn-group:not(:first-child) {\n    margin-left: -$btn-border-width;\n  }\n\n  // Reset rounded corners\n  > .btn:not(:last-child):not(.dropdown-toggle),\n  > .btn.dropdown-toggle-split:first-child,\n  > .btn-group:not(:last-child) > .btn {\n    @include border-end-radius(0);\n  }\n\n  // The left radius should be 0 if the button is:\n  // - the \"third or more\" child\n  // - the second child and the previous element isn't `.btn-check` (making it the first child visually)\n  // - part of a btn-group which isn't the first child\n  > .btn:nth-child(n + 3),\n  > :not(.btn-check) + .btn,\n  > .btn-group:not(:first-child) > .btn {\n    @include border-start-radius(0);\n  }\n}\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n//\n// Split button dropdowns\n//\n\n.dropdown-toggle-split {\n  padding-right: $btn-padding-x * .75;\n  padding-left: $btn-padding-x * .75;\n\n  &::after,\n  .dropup &::after,\n  .dropend &::after {\n    margin-left: 0;\n  }\n\n  .dropstart &::before {\n    margin-right: 0;\n  }\n}\n\n.btn-sm + .dropdown-toggle-split {\n  padding-right: $btn-padding-x-sm * .75;\n  padding-left: $btn-padding-x-sm * .75;\n}\n\n.btn-lg + .dropdown-toggle-split {\n  padding-right: $btn-padding-x-lg * .75;\n  padding-left: $btn-padding-x-lg * .75;\n}\n\n\n// The clickable button for toggling the menu\n// Set the same inset shadow as the :active state\n.btn-group.show .dropdown-toggle {\n  @include box-shadow($btn-active-box-shadow);\n\n  // Show no shadow for `.btn-link` since it has no other button styles.\n  &.btn-link {\n    @include box-shadow(none);\n  }\n}\n\n\n//\n// Vertical button groups\n//\n\n.btn-group-vertical {\n  flex-direction: column;\n  align-items: flex-start;\n  justify-content: center;\n\n  > .btn,\n  > .btn-group {\n    width: 100%;\n  }\n\n  > .btn:not(:first-child),\n  > .btn-group:not(:first-child) {\n    margin-top: -$btn-border-width;\n  }\n\n  // Reset rounded corners\n  > .btn:not(:last-child):not(.dropdown-toggle),\n  > .btn-group:not(:last-child) > .btn {\n    @include border-bottom-radius(0);\n  }\n\n  > .btn ~ .btn,\n  > .btn-group:not(:first-child) > .btn {\n    @include border-top-radius(0);\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_buttons.scss",
    "content": "//\n// Base styles\n//\n\n.btn {\n  // scss-docs-start btn-css-vars\n  --#{$prefix}btn-padding-x: #{$btn-padding-x};\n  --#{$prefix}btn-padding-y: #{$btn-padding-y};\n  --#{$prefix}btn-font-family: #{$btn-font-family};\n  @include rfs($btn-font-size, --#{$prefix}btn-font-size);\n  --#{$prefix}btn-font-weight: #{$btn-font-weight};\n  --#{$prefix}btn-line-height: #{$btn-line-height};\n  --#{$prefix}btn-color: #{$body-color};\n  --#{$prefix}btn-bg: transparent;\n  --#{$prefix}btn-border-width: #{$btn-border-width};\n  --#{$prefix}btn-border-color: transparent;\n  --#{$prefix}btn-border-radius: #{$btn-border-radius};\n  --#{$prefix}btn-hover-border-color: transparent;\n  --#{$prefix}btn-box-shadow: #{$btn-box-shadow};\n  --#{$prefix}btn-disabled-opacity: #{$btn-disabled-opacity};\n  --#{$prefix}btn-focus-box-shadow: 0 0 0 #{$btn-focus-width} rgba(var(--#{$prefix}btn-focus-shadow-rgb), .5);\n  // scss-docs-end btn-css-vars\n\n  display: inline-block;\n  padding: var(--#{$prefix}btn-padding-y) var(--#{$prefix}btn-padding-x);\n  font-family: var(--#{$prefix}btn-font-family);\n  @include font-size(var(--#{$prefix}btn-font-size));\n  font-weight: var(--#{$prefix}btn-font-weight);\n  line-height: var(--#{$prefix}btn-line-height);\n  color: var(--#{$prefix}btn-color);\n  text-align: center;\n  text-decoration: if($link-decoration == none, null, none);\n  white-space: $btn-white-space;\n  vertical-align: middle;\n  cursor: if($enable-button-pointers, pointer, null);\n  user-select: none;\n  border: var(--#{$prefix}btn-border-width) solid var(--#{$prefix}btn-border-color);\n  @include border-radius(var(--#{$prefix}btn-border-radius));\n  @include gradient-bg(var(--#{$prefix}btn-bg));\n  @include box-shadow(var(--#{$prefix}btn-box-shadow));\n  @include transition($btn-transition);\n\n  &:hover {\n    color: var(--#{$prefix}btn-hover-color);\n    text-decoration: if($link-hover-decoration == underline, none, null);\n    background-color: var(--#{$prefix}btn-hover-bg);\n    border-color: var(--#{$prefix}btn-hover-border-color);\n  }\n\n  .btn-check + &:hover {\n    // override for the checkbox/radio buttons\n    color: var(--#{$prefix}btn-color);\n    background-color: var(--#{$prefix}btn-bg);\n    border-color: var(--#{$prefix}btn-border-color);\n  }\n\n  &:focus-visible {\n    color: var(--#{$prefix}btn-hover-color);\n    @include gradient-bg(var(--#{$prefix}btn-hover-bg));\n    border-color: var(--#{$prefix}btn-hover-border-color);\n    outline: 0;\n    // Avoid using mixin so we can pass custom focus shadow properly\n    @if $enable-shadows {\n      box-shadow: var(--#{$prefix}btn-box-shadow), var(--#{$prefix}btn-focus-box-shadow);\n    } @else {\n      box-shadow: var(--#{$prefix}btn-focus-box-shadow);\n    }\n  }\n\n  .btn-check:focus-visible + & {\n    border-color: var(--#{$prefix}btn-hover-border-color);\n    outline: 0;\n    // Avoid using mixin so we can pass custom focus shadow properly\n    @if $enable-shadows {\n      box-shadow: var(--#{$prefix}btn-box-shadow), var(--#{$prefix}btn-focus-box-shadow);\n    } @else {\n      box-shadow: var(--#{$prefix}btn-focus-box-shadow);\n    }\n  }\n\n  .btn-check:checked + &,\n  :not(.btn-check) + &:active,\n  &:first-child:active,\n  &.active,\n  &.show {\n    color: var(--#{$prefix}btn-active-color);\n    background-color: var(--#{$prefix}btn-active-bg);\n    // Remove CSS gradients if they're enabled\n    background-image: if($enable-gradients, none, null);\n    border-color: var(--#{$prefix}btn-active-border-color);\n    @include box-shadow(var(--#{$prefix}btn-active-shadow));\n\n    &:focus-visible {\n      // Avoid using mixin so we can pass custom focus shadow properly\n      @if $enable-shadows {\n        box-shadow: var(--#{$prefix}btn-active-shadow), var(--#{$prefix}btn-focus-box-shadow);\n      } @else {\n        box-shadow: var(--#{$prefix}btn-focus-box-shadow);\n      }\n    }\n  }\n\n  &:disabled,\n  &.disabled,\n  fieldset:disabled & {\n    color: var(--#{$prefix}btn-disabled-color);\n    pointer-events: none;\n    background-color: var(--#{$prefix}btn-disabled-bg);\n    background-image: if($enable-gradients, none, null);\n    border-color: var(--#{$prefix}btn-disabled-border-color);\n    opacity: var(--#{$prefix}btn-disabled-opacity);\n    @include box-shadow(none);\n  }\n}\n\n\n//\n// Alternate buttons\n//\n\n// scss-docs-start btn-variant-loops\n@each $color, $value in $theme-colors {\n  .btn-#{$color} {\n    @if $color == \"light\" {\n      @include button-variant(\n        $value,\n        $value,\n        $hover-background: shade-color($value, $btn-hover-bg-shade-amount),\n        $hover-border: shade-color($value, $btn-hover-border-shade-amount),\n        $active-background: shade-color($value, $btn-active-bg-shade-amount),\n        $active-border: shade-color($value, $btn-active-border-shade-amount)\n      );\n    } @else if $color == \"dark\" {\n      @include button-variant(\n        $value,\n        $value,\n        $hover-background: tint-color($value, $btn-hover-bg-tint-amount),\n        $hover-border: tint-color($value, $btn-hover-border-tint-amount),\n        $active-background: tint-color($value, $btn-active-bg-tint-amount),\n        $active-border: tint-color($value, $btn-active-border-tint-amount)\n      );\n    } @else {\n      @include button-variant($value, $value);\n    }\n  }\n}\n\n@each $color, $value in $theme-colors {\n  .btn-outline-#{$color} {\n    @include button-outline-variant($value);\n  }\n}\n// scss-docs-end btn-variant-loops\n\n\n//\n// Link buttons\n//\n\n// Make a button look and behave like a link\n.btn-link {\n  --#{$prefix}btn-font-weight: #{$font-weight-normal};\n  --#{$prefix}btn-color: #{$btn-link-color};\n  --#{$prefix}btn-bg: transparent;\n  --#{$prefix}btn-border-color: transparent;\n  --#{$prefix}btn-hover-color: #{$btn-link-hover-color};\n  --#{$prefix}btn-hover-border-color: transparent;\n  --#{$prefix}btn-active-color: #{$btn-link-hover-color};\n  --#{$prefix}btn-active-border-color: transparent;\n  --#{$prefix}btn-disabled-color: #{$btn-link-disabled-color};\n  --#{$prefix}btn-disabled-border-color: transparent;\n  --#{$prefix}btn-box-shadow: none;\n  --#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix(color-contrast($primary), $primary, 15%))};\n\n  text-decoration: $link-decoration;\n  @if $enable-gradients {\n    background-image: none;\n  }\n\n  &:hover,\n  &:focus-visible {\n    text-decoration: $link-hover-decoration;\n  }\n\n  &:focus-visible {\n    color: var(--#{$prefix}btn-color);\n  }\n\n  &:hover {\n    color: var(--#{$prefix}btn-hover-color);\n  }\n\n  // No need for an active state here\n}\n\n\n//\n// Button Sizes\n//\n\n.btn-lg {\n  @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-border-radius-lg);\n}\n\n.btn-sm {\n  @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-border-radius-sm);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_card.scss",
    "content": "//\n// Base styles\n//\n\n.card {\n  // scss-docs-start card-css-vars\n  --#{$prefix}card-spacer-y: #{$card-spacer-y};\n  --#{$prefix}card-spacer-x: #{$card-spacer-x};\n  --#{$prefix}card-title-spacer-y: #{$card-title-spacer-y};\n  --#{$prefix}card-border-width: #{$card-border-width};\n  --#{$prefix}card-border-color: #{$card-border-color};\n  --#{$prefix}card-border-radius: #{$card-border-radius};\n  --#{$prefix}card-box-shadow: #{$card-box-shadow};\n  --#{$prefix}card-inner-border-radius: #{$card-inner-border-radius};\n  --#{$prefix}card-cap-padding-y: #{$card-cap-padding-y};\n  --#{$prefix}card-cap-padding-x: #{$card-cap-padding-x};\n  --#{$prefix}card-cap-bg: #{$card-cap-bg};\n  --#{$prefix}card-cap-color: #{$card-cap-color};\n  --#{$prefix}card-height: #{$card-height};\n  --#{$prefix}card-color: #{$card-color};\n  --#{$prefix}card-bg: #{$card-bg};\n  --#{$prefix}card-img-overlay-padding: #{$card-img-overlay-padding};\n  --#{$prefix}card-group-margin: #{$card-group-margin};\n  // scss-docs-end card-css-vars\n\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106\n  height: var(--#{$prefix}card-height);\n  word-wrap: break-word;\n  background-color: var(--#{$prefix}card-bg);\n  background-clip: border-box;\n  border: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);\n  @include border-radius(var(--#{$prefix}card-border-radius));\n  @include box-shadow(var(--#{$prefix}card-box-shadow));\n\n  > hr {\n    margin-right: 0;\n    margin-left: 0;\n  }\n\n  > .list-group {\n    border-top: inherit;\n    border-bottom: inherit;\n\n    &:first-child {\n      border-top-width: 0;\n      @include border-top-radius(var(--#{$prefix}card-inner-border-radius));\n    }\n\n    &:last-child  {\n      border-bottom-width: 0;\n      @include border-bottom-radius(var(--#{$prefix}card-inner-border-radius));\n    }\n  }\n\n  // Due to specificity of the above selector (`.card > .list-group`), we must\n  // use a child selector here to prevent double borders.\n  > .card-header + .list-group,\n  > .list-group + .card-footer {\n    border-top: 0;\n  }\n}\n\n.card-body {\n  // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n  // as much space as possible, ensuring footers are aligned to the bottom.\n  flex: 1 1 auto;\n  padding: var(--#{$prefix}card-spacer-y) var(--#{$prefix}card-spacer-x);\n  color: var(--#{$prefix}card-color);\n}\n\n.card-title {\n  margin-bottom: var(--#{$prefix}card-title-spacer-y);\n}\n\n.card-subtitle {\n  margin-top: calc(-.5 * var(--#{$prefix}card-title-spacer-y)); // stylelint-disable-line function-disallowed-list\n  margin-bottom: 0;\n}\n\n.card-text:last-child {\n  margin-bottom: 0;\n}\n\n.card-link {\n  &:hover {\n    text-decoration: if($link-hover-decoration == underline, none, null);\n  }\n\n  + .card-link {\n    margin-left: var(--#{$prefix}card-spacer-x);\n  }\n}\n\n//\n// Optional textual caps\n//\n\n.card-header {\n  padding: var(--#{$prefix}card-cap-padding-y) var(--#{$prefix}card-cap-padding-x);\n  margin-bottom: 0; // Removes the default margin-bottom of <hN>\n  color: var(--#{$prefix}card-cap-color);\n  background-color: var(--#{$prefix}card-cap-bg);\n  border-bottom: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);\n\n  &:first-child {\n    @include border-radius(var(--#{$prefix}card-inner-border-radius) var(--#{$prefix}card-inner-border-radius) 0 0);\n  }\n}\n\n.card-footer {\n  padding: var(--#{$prefix}card-cap-padding-y) var(--#{$prefix}card-cap-padding-x);\n  color: var(--#{$prefix}card-cap-color);\n  background-color: var(--#{$prefix}card-cap-bg);\n  border-top: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);\n\n  &:last-child {\n    @include border-radius(0 0 var(--#{$prefix}card-inner-border-radius) var(--#{$prefix}card-inner-border-radius));\n  }\n}\n\n\n//\n// Header navs\n//\n\n.card-header-tabs {\n  margin-right: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list\n  margin-bottom: calc(-1 * var(--#{$prefix}card-cap-padding-y)); // stylelint-disable-line function-disallowed-list\n  margin-left: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list\n  border-bottom: 0;\n\n  .nav-link.active {\n    background-color: var(--#{$prefix}card-bg);\n    border-bottom-color: var(--#{$prefix}card-bg);\n  }\n}\n\n.card-header-pills {\n  margin-right: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list\n  margin-left: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list\n}\n\n// Card image\n.card-img-overlay {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: var(--#{$prefix}card-img-overlay-padding);\n  @include border-radius(var(--#{$prefix}card-inner-border-radius));\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n  width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n}\n\n.card-img,\n.card-img-top {\n  @include border-top-radius(var(--#{$prefix}card-inner-border-radius));\n}\n\n.card-img,\n.card-img-bottom {\n  @include border-bottom-radius(var(--#{$prefix}card-inner-border-radius));\n}\n\n\n//\n// Card groups\n//\n\n.card-group {\n  // The child selector allows nested `.card` within `.card-group`\n  // to display properly.\n  > .card {\n    margin-bottom: var(--#{$prefix}card-group-margin);\n  }\n\n  @include media-breakpoint-up(sm) {\n    display: flex;\n    flex-flow: row wrap;\n    // The child selector allows nested `.card` within `.card-group`\n    // to display properly.\n    > .card {\n      // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n      flex: 1 0 0%;\n      margin-bottom: 0;\n\n      + .card {\n        margin-left: 0;\n        border-left: 0;\n      }\n\n      // Handle rounded corners\n      @if $enable-rounded {\n        &:not(:last-child) {\n          @include border-end-radius(0);\n\n          .card-img-top,\n          .card-header {\n            // stylelint-disable-next-line property-disallowed-list\n            border-top-right-radius: 0;\n          }\n          .card-img-bottom,\n          .card-footer {\n            // stylelint-disable-next-line property-disallowed-list\n            border-bottom-right-radius: 0;\n          }\n        }\n\n        &:not(:first-child) {\n          @include border-start-radius(0);\n\n          .card-img-top,\n          .card-header {\n            // stylelint-disable-next-line property-disallowed-list\n            border-top-left-radius: 0;\n          }\n          .card-img-bottom,\n          .card-footer {\n            // stylelint-disable-next-line property-disallowed-list\n            border-bottom-left-radius: 0;\n          }\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_carousel.scss",
    "content": "// Notes on the classes:\n//\n// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)\n//    even when their scroll action started on a carousel, but for compatibility (with Firefox)\n//    we're preventing all actions instead\n// 2. The .carousel-item-start and .carousel-item-end is used to indicate where\n//    the active slide is heading.\n// 3. .active.carousel-item is the current slide.\n// 4. .active.carousel-item-start and .active.carousel-item-end is the current\n//    slide in its in-transition state. Only one of these occurs at a time.\n// 5. .carousel-item-next.carousel-item-start and .carousel-item-prev.carousel-item-end\n//    is the upcoming slide in transition.\n\n.carousel {\n  position: relative;\n}\n\n.carousel.pointer-event {\n  touch-action: pan-y;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n  @include clearfix();\n}\n\n.carousel-item {\n  position: relative;\n  display: none;\n  float: left;\n  width: 100%;\n  margin-right: -100%;\n  backface-visibility: hidden;\n  @include transition($carousel-transition);\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n  display: block;\n}\n\n.carousel-item-next:not(.carousel-item-start),\n.active.carousel-item-end {\n  transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-end),\n.active.carousel-item-start {\n  transform: translateX(-100%);\n}\n\n\n//\n// Alternate transitions\n//\n\n.carousel-fade {\n  .carousel-item {\n    opacity: 0;\n    transition-property: opacity;\n    transform: none;\n  }\n\n  .carousel-item.active,\n  .carousel-item-next.carousel-item-start,\n  .carousel-item-prev.carousel-item-end {\n    z-index: 1;\n    opacity: 1;\n  }\n\n  .active.carousel-item-start,\n  .active.carousel-item-end {\n    z-index: 0;\n    opacity: 0;\n    @include transition(opacity 0s $carousel-transition-duration);\n  }\n}\n\n\n//\n// Left/right controls for nav\n//\n\n.carousel-control-prev,\n.carousel-control-next {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  z-index: 1;\n  // Use flex for alignment (1-3)\n  display: flex; // 1. allow flex styles\n  align-items: center; // 2. vertically center contents\n  justify-content: center; // 3. horizontally center contents\n  width: $carousel-control-width;\n  padding: 0;\n  color: $carousel-control-color;\n  text-align: center;\n  background: none;\n  border: 0;\n  opacity: $carousel-control-opacity;\n  @include transition($carousel-control-transition);\n\n  // Hover/focus state\n  &:hover,\n  &:focus {\n    color: $carousel-control-color;\n    text-decoration: none;\n    outline: 0;\n    opacity: $carousel-control-hover-opacity;\n  }\n}\n.carousel-control-prev {\n  left: 0;\n  background-image: if($enable-gradients, linear-gradient(90deg, rgba($black, .25), rgba($black, .001)), null);\n}\n.carousel-control-next {\n  right: 0;\n  background-image: if($enable-gradients, linear-gradient(270deg, rgba($black, .25), rgba($black, .001)), null);\n}\n\n// Icons for within\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n  display: inline-block;\n  width: $carousel-control-icon-width;\n  height: $carousel-control-icon-width;\n  background-repeat: no-repeat;\n  background-position: 50%;\n  background-size: 100% 100%;\n}\n\n/* rtl:options: {\n  \"autoRename\": true,\n  \"stringMap\":[ {\n    \"name\"    : \"prev-next\",\n    \"search\"  : \"prev\",\n    \"replace\" : \"next\"\n  } ]\n} */\n.carousel-control-prev-icon {\n  background-image: escape-svg($carousel-control-prev-icon-bg);\n}\n.carousel-control-next-icon {\n  background-image: escape-svg($carousel-control-next-icon-bg);\n}\n\n// Optional indicator pips/controls\n//\n// Add a container (such as a list) with the following class and add an item (ideally a focusable control,\n// like a button) with data-bs-target for each slide your carousel holds.\n\n.carousel-indicators {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 2;\n  display: flex;\n  justify-content: center;\n  padding: 0;\n  // Use the .carousel-control's width as margin so we don't overlay those\n  margin-right: $carousel-control-width;\n  margin-bottom: 1rem;\n  margin-left: $carousel-control-width;\n  list-style: none;\n\n  [data-bs-target] {\n    box-sizing: content-box;\n    flex: 0 1 auto;\n    width: $carousel-indicator-width;\n    height: $carousel-indicator-height;\n    padding: 0;\n    margin-right: $carousel-indicator-spacer;\n    margin-left: $carousel-indicator-spacer;\n    text-indent: -999px;\n    cursor: pointer;\n    background-color: $carousel-indicator-active-bg;\n    background-clip: padding-box;\n    border: 0;\n    // Use transparent borders to increase the hit area by 10px on top and bottom.\n    border-top: $carousel-indicator-hit-area-height solid transparent;\n    border-bottom: $carousel-indicator-hit-area-height solid transparent;\n    opacity: $carousel-indicator-opacity;\n    @include transition($carousel-indicator-transition);\n  }\n\n  .active {\n    opacity: $carousel-indicator-active-opacity;\n  }\n}\n\n\n// Optional captions\n//\n//\n\n.carousel-caption {\n  position: absolute;\n  right: (100% - $carousel-caption-width) * .5;\n  bottom: $carousel-caption-spacer;\n  left: (100% - $carousel-caption-width) * .5;\n  padding-top: $carousel-caption-padding-y;\n  padding-bottom: $carousel-caption-padding-y;\n  color: $carousel-caption-color;\n  text-align: center;\n}\n\n// Dark mode carousel\n\n.carousel-dark {\n  .carousel-control-prev-icon,\n  .carousel-control-next-icon {\n    filter: $carousel-dark-control-icon-filter;\n  }\n\n  .carousel-indicators [data-bs-target] {\n    background-color: $carousel-dark-indicator-active-bg;\n  }\n\n  .carousel-caption {\n    color: $carousel-dark-caption-color;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_close.scss",
    "content": "// Transparent background and border properties included for button version.\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n.btn-close {\n  box-sizing: content-box;\n  width: $btn-close-width;\n  height: $btn-close-height;\n  padding: $btn-close-padding-y $btn-close-padding-x;\n  color: $btn-close-color;\n  background: transparent escape-svg($btn-close-bg) center / $btn-close-width auto no-repeat; // include transparent for button elements\n  border: 0; // for button elements\n  @include border-radius();\n  opacity: $btn-close-opacity;\n\n  // Override <a>'s hover style\n  &:hover {\n    color: $btn-close-color;\n    text-decoration: none;\n    opacity: $btn-close-hover-opacity;\n  }\n\n  &:focus {\n    outline: 0;\n    box-shadow: $btn-close-focus-shadow;\n    opacity: $btn-close-focus-opacity;\n  }\n\n  &:disabled,\n  &.disabled {\n    pointer-events: none;\n    user-select: none;\n    opacity: $btn-close-disabled-opacity;\n  }\n}\n\n.btn-close-white {\n  filter: $btn-close-white-filter;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_containers.scss",
    "content": "// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-container-classes {\n  // Single container class with breakpoint max-widths\n  .container,\n  // 100% wide container at all breakpoints\n  .container-fluid {\n    @include make-container();\n  }\n\n  // Responsive containers that are 100% wide until a breakpoint\n  @each $breakpoint, $container-max-width in $container-max-widths {\n    .container-#{$breakpoint} {\n      @extend .container-fluid;\n    }\n\n    @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n      %responsive-container-#{$breakpoint} {\n        max-width: $container-max-width;\n      }\n\n      // Extend each breakpoint which is smaller or equal to the current breakpoint\n      $extend-breakpoint: true;\n\n      @each $name, $width in $grid-breakpoints {\n        @if ($extend-breakpoint) {\n          .container#{breakpoint-infix($name, $grid-breakpoints)} {\n            @extend %responsive-container-#{$breakpoint};\n          }\n\n          // Once the current breakpoint is reached, stop extending\n          @if ($breakpoint == $name) {\n            $extend-breakpoint: false;\n          }\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_dropdown.scss",
    "content": "// The dropdown wrapper (`<div>`)\n.dropup,\n.dropend,\n.dropdown,\n.dropstart,\n.dropup-center,\n.dropdown-center {\n  position: relative;\n}\n\n.dropdown-toggle {\n  white-space: nowrap;\n\n  // Generate the caret automatically\n  @include caret();\n}\n\n// The dropdown menu\n.dropdown-menu {\n  // scss-docs-start dropdown-css-vars\n  --#{$prefix}dropdown-zindex: #{$zindex-dropdown};\n  --#{$prefix}dropdown-min-width: #{$dropdown-min-width};\n  --#{$prefix}dropdown-padding-x: #{$dropdown-padding-x};\n  --#{$prefix}dropdown-padding-y: #{$dropdown-padding-y};\n  --#{$prefix}dropdown-spacer: #{$dropdown-spacer};\n  @include rfs($dropdown-font-size, --#{$prefix}dropdown-font-size);\n  --#{$prefix}dropdown-color: #{$dropdown-color};\n  --#{$prefix}dropdown-bg: #{$dropdown-bg};\n  --#{$prefix}dropdown-border-color: #{$dropdown-border-color};\n  --#{$prefix}dropdown-border-radius: #{$dropdown-border-radius};\n  --#{$prefix}dropdown-border-width: #{$dropdown-border-width};\n  --#{$prefix}dropdown-inner-border-radius: #{$dropdown-inner-border-radius};\n  --#{$prefix}dropdown-divider-bg: #{$dropdown-divider-bg};\n  --#{$prefix}dropdown-divider-margin-y: #{$dropdown-divider-margin-y};\n  --#{$prefix}dropdown-box-shadow: #{$dropdown-box-shadow};\n  --#{$prefix}dropdown-link-color: #{$dropdown-link-color};\n  --#{$prefix}dropdown-link-hover-color: #{$dropdown-link-hover-color};\n  --#{$prefix}dropdown-link-hover-bg: #{$dropdown-link-hover-bg};\n  --#{$prefix}dropdown-link-active-color: #{$dropdown-link-active-color};\n  --#{$prefix}dropdown-link-active-bg: #{$dropdown-link-active-bg};\n  --#{$prefix}dropdown-link-disabled-color: #{$dropdown-link-disabled-color};\n  --#{$prefix}dropdown-item-padding-x: #{$dropdown-item-padding-x};\n  --#{$prefix}dropdown-item-padding-y: #{$dropdown-item-padding-y};\n  --#{$prefix}dropdown-header-color: #{$dropdown-header-color};\n  --#{$prefix}dropdown-header-padding-x: #{$dropdown-header-padding-x};\n  --#{$prefix}dropdown-header-padding-y: #{$dropdown-header-padding-y};\n  // scss-docs-end dropdown-css-vars\n\n  position: absolute;\n  z-index: var(--#{$prefix}dropdown-zindex);\n  display: none; // none by default, but block on \"open\" of the menu\n  min-width: var(--#{$prefix}dropdown-min-width);\n  padding: var(--#{$prefix}dropdown-padding-y) var(--#{$prefix}dropdown-padding-x);\n  margin: 0; // Override default margin of ul\n  @include font-size(var(--#{$prefix}dropdown-font-size));\n  color: var(--#{$prefix}dropdown-color);\n  text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n  list-style: none;\n  background-color: var(--#{$prefix}dropdown-bg);\n  background-clip: padding-box;\n  border: var(--#{$prefix}dropdown-border-width) solid var(--#{$prefix}dropdown-border-color);\n  @include border-radius(var(--#{$prefix}dropdown-border-radius));\n  @include box-shadow(var(--#{$prefix}dropdown-box-shadow));\n\n  &[data-bs-popper] {\n    top: 100%;\n    left: 0;\n    margin-top: var(--#{$prefix}dropdown-spacer);\n  }\n\n  @if $dropdown-padding-y == 0 {\n    > .dropdown-item:first-child,\n    > li:first-child .dropdown-item {\n      @include border-top-radius(var(--#{$prefix}dropdown-inner-border-radius));\n    }\n    > .dropdown-item:last-child,\n    > li:last-child .dropdown-item {\n      @include border-bottom-radius(var(--#{$prefix}dropdown-inner-border-radius));\n    }\n\n  }\n}\n\n// scss-docs-start responsive-breakpoints\n// We deliberately hardcode the `bs-` prefix because we check\n// this custom property in JS to determine Popper's positioning\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .dropdown-menu#{$infix}-start {\n      --bs-position: start;\n\n      &[data-bs-popper] {\n        right: auto;\n        left: 0;\n      }\n    }\n\n    .dropdown-menu#{$infix}-end {\n      --bs-position: end;\n\n      &[data-bs-popper] {\n        right: 0;\n        left: auto;\n      }\n    }\n  }\n}\n// scss-docs-end responsive-breakpoints\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// Just add .dropup after the standard .dropdown class and you're set.\n.dropup {\n  .dropdown-menu[data-bs-popper] {\n    top: auto;\n    bottom: 100%;\n    margin-top: 0;\n    margin-bottom: var(--#{$prefix}dropdown-spacer);\n  }\n\n  .dropdown-toggle {\n    @include caret(up);\n  }\n}\n\n.dropend {\n  .dropdown-menu[data-bs-popper] {\n    top: 0;\n    right: auto;\n    left: 100%;\n    margin-top: 0;\n    margin-left: var(--#{$prefix}dropdown-spacer);\n  }\n\n  .dropdown-toggle {\n    @include caret(end);\n    &::after {\n      vertical-align: 0;\n    }\n  }\n}\n\n.dropstart {\n  .dropdown-menu[data-bs-popper] {\n    top: 0;\n    right: 100%;\n    left: auto;\n    margin-top: 0;\n    margin-right: var(--#{$prefix}dropdown-spacer);\n  }\n\n  .dropdown-toggle {\n    @include caret(start);\n    &::before {\n      vertical-align: 0;\n    }\n  }\n}\n\n\n// Dividers (basically an `<hr>`) within the dropdown\n.dropdown-divider {\n  height: 0;\n  margin: var(--#{$prefix}dropdown-divider-margin-y) 0;\n  overflow: hidden;\n  border-top: 1px solid var(--#{$prefix}dropdown-divider-bg);\n  opacity: 1; // Revisit in v6 to de-dupe styles that conflict with <hr> element\n}\n\n// Links, buttons, and more within the dropdown menu\n//\n// `<button>`-specific styles are denoted with `// For <button>s`\n.dropdown-item {\n  display: block;\n  width: 100%; // For `<button>`s\n  padding: var(--#{$prefix}dropdown-item-padding-y) var(--#{$prefix}dropdown-item-padding-x);\n  clear: both;\n  font-weight: $font-weight-normal;\n  color: var(--#{$prefix}dropdown-link-color);\n  text-align: inherit; // For `<button>`s\n  text-decoration: if($link-decoration == none, null, none);\n  white-space: nowrap; // prevent links from randomly breaking onto new lines\n  background-color: transparent; // For `<button>`s\n  border: 0; // For `<button>`s\n\n  &:hover,\n  &:focus {\n    color: var(--#{$prefix}dropdown-link-hover-color);\n    text-decoration: if($link-hover-decoration == underline, none, null);\n    @include gradient-bg(var(--#{$prefix}dropdown-link-hover-bg));\n  }\n\n  &.active,\n  &:active {\n    color: var(--#{$prefix}dropdown-link-active-color);\n    text-decoration: none;\n    @include gradient-bg(var(--#{$prefix}dropdown-link-active-bg));\n  }\n\n  &.disabled,\n  &:disabled {\n    color: var(--#{$prefix}dropdown-link-disabled-color);\n    pointer-events: none;\n    background-color: transparent;\n    // Remove CSS gradients if they're enabled\n    background-image: if($enable-gradients, none, null);\n  }\n}\n\n.dropdown-menu.show {\n  display: block;\n}\n\n// Dropdown section headers\n.dropdown-header {\n  display: block;\n  padding: var(--#{$prefix}dropdown-header-padding-y) var(--#{$prefix}dropdown-header-padding-x);\n  margin-bottom: 0; // for use with heading elements\n  @include font-size($font-size-sm);\n  color: var(--#{$prefix}dropdown-header-color);\n  white-space: nowrap; // as with > li > a\n}\n\n// Dropdown text\n.dropdown-item-text {\n  display: block;\n  padding: var(--#{$prefix}dropdown-item-padding-y) var(--#{$prefix}dropdown-item-padding-x);\n  color: var(--#{$prefix}dropdown-link-color);\n}\n\n// Dark dropdowns\n.dropdown-menu-dark {\n  // scss-docs-start dropdown-dark-css-vars\n  --#{$prefix}dropdown-color: #{$dropdown-dark-color};\n  --#{$prefix}dropdown-bg: #{$dropdown-dark-bg};\n  --#{$prefix}dropdown-border-color: #{$dropdown-dark-border-color};\n  --#{$prefix}dropdown-box-shadow: #{$dropdown-dark-box-shadow};\n  --#{$prefix}dropdown-link-color: #{$dropdown-dark-link-color};\n  --#{$prefix}dropdown-link-hover-color: #{$dropdown-dark-link-hover-color};\n  --#{$prefix}dropdown-divider-bg: #{$dropdown-dark-divider-bg};\n  --#{$prefix}dropdown-link-hover-bg: #{$dropdown-dark-link-hover-bg};\n  --#{$prefix}dropdown-link-active-color: #{$dropdown-dark-link-active-color};\n  --#{$prefix}dropdown-link-active-bg: #{$dropdown-dark-link-active-bg};\n  --#{$prefix}dropdown-link-disabled-color: #{$dropdown-dark-link-disabled-color};\n  --#{$prefix}dropdown-header-color: #{$dropdown-dark-header-color};\n  // scss-docs-end dropdown-dark-css-vars\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_forms.scss",
    "content": "@import \"forms/labels\";\n@import \"forms/form-text\";\n@import \"forms/form-control\";\n@import \"forms/form-select\";\n@import \"forms/form-check\";\n@import \"forms/form-range\";\n@import \"forms/floating-labels\";\n@import \"forms/input-group\";\n@import \"forms/validation\";\n"
  },
  {
    "path": "dist/lib/bootstrap5/_functions.scss",
    "content": "// Bootstrap functions\n//\n// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n  $prev-key: null;\n  $prev-num: null;\n  @each $key, $num in $map {\n    @if $prev-num == null or unit($num) == \"%\" or unit($prev-num) == \"%\" {\n      // Do nothing\n    } @else if not comparable($prev-num, $num) {\n      @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n    } @else if $prev-num >= $num {\n      @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n    }\n    $prev-key: $key;\n    $prev-num: $num;\n  }\n}\n\n// Starts at zero\n// Used to ensure the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map, $map-name: \"$grid-breakpoints\") {\n  @if length($map) > 0 {\n    $values: map-values($map);\n    $first-value: nth($values, 1);\n    @if $first-value != 0 {\n      @warn \"First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.\";\n    }\n  }\n}\n\n// Colors\n@function to-rgb($value) {\n  @return red($value), green($value), blue($value);\n}\n\n// stylelint-disable scss/dollar-variable-pattern\n@function rgba-css-var($identifier, $target) {\n  @if $identifier == \"body\" and $target == \"bg\" {\n    @return rgba(var(--#{$prefix}#{$identifier}-bg-rgb), var(--#{$prefix}#{$target}-opacity));\n  } @if $identifier == \"body\" and $target == \"text\" {\n    @return rgba(var(--#{$prefix}#{$identifier}-color-rgb), var(--#{$prefix}#{$target}-opacity));\n  } @else {\n    @return rgba(var(--#{$prefix}#{$identifier}-rgb), var(--#{$prefix}#{$target}-opacity));\n  }\n}\n\n@function map-loop($map, $func, $args...) {\n  $_map: ();\n\n  @each $key, $value in $map {\n    // allow to pass the $key and $value of the map as an function argument\n    $_args: ();\n    @each $arg in $args {\n      $_args: append($_args, if($arg == \"$key\", $key, if($arg == \"$value\", $value, $arg)));\n    }\n\n    $_map: map-merge($_map, ($key: call(get-function($func), $_args...)));\n  }\n\n  @return $_map;\n}\n// stylelint-enable scss/dollar-variable-pattern\n\n@function varify($list) {\n  $result: null;\n  @each $entry in $list {\n    $result: append($result, var(--#{$prefix}#{$entry}), space);\n  }\n  @return $result;\n}\n\n// Internal Bootstrap function to turn maps into its negative variant.\n// It prefixes the keys with `n` and makes the value negative.\n@function negativify-map($map) {\n  $result: ();\n  @each $key, $value in $map {\n    @if $key != 0 {\n      $result: map-merge($result, (\"n\" + $key: (-$value)));\n    }\n  }\n  @return $result;\n}\n\n// Get multiple keys from a sass map\n@function map-get-multiple($map, $values) {\n  $result: ();\n  @each $key, $value in $map {\n    @if (index($values, $key) != null) {\n      $result: map-merge($result, ($key: $value));\n    }\n  }\n  @return $result;\n}\n\n// Merge multiple maps\n@function map-merge-multiple($maps...) {\n  $merged-maps: ();\n\n  @each $map in $maps {\n    $merged-maps: map-merge($merged-maps, $map);\n  }\n  @return $merged-maps;\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Kitty Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n  $index: str-index($string, $search);\n\n  @if $index {\n    @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n  }\n\n  @return $string;\n}\n\n// See https://codepen.io/kevinweber/pen/dXWoRw\n//\n// Requires the use of quotes around data URIs.\n\n@function escape-svg($string) {\n  @if str-index($string, \"data:image/svg+xml\") {\n    @each $char, $encoded in $escaped-characters {\n      // Do not escape the url brackets\n      @if str-index($string, \"url(\") == 1 {\n        $string: url(\"#{str-replace(str-slice($string, 6, -3), $char, $encoded)}\");\n      } @else {\n        $string: str-replace($string, $char, $encoded);\n      }\n    }\n  }\n\n  @return $string;\n}\n\n// Color contrast\n// See https://github.com/twbs/bootstrap/pull/30168\n\n// A list of pre-calculated numbers of pow(divide((divide($value, 255) + .055), 1.055), 2.4). (from 0 to 255)\n// stylelint-disable-next-line scss/dollar-variable-default, scss/dollar-variable-pattern\n$_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003 .0033 .0037 .004 .0044 .0048 .0052 .0056 .006 .0065 .007 .0075 .008 .0086 .0091 .0097 .0103 .011 .0116 .0123 .013 .0137 .0144 .0152 .016 .0168 .0176 .0185 .0194 .0203 .0212 .0222 .0232 .0242 .0252 .0262 .0273 .0284 .0296 .0307 .0319 .0331 .0343 .0356 .0369 .0382 .0395 .0409 .0423 .0437 .0452 .0467 .0482 .0497 .0513 .0529 .0545 .0561 .0578 .0595 .0612 .063 .0648 .0666 .0685 .0704 .0723 .0742 .0762 .0782 .0802 .0823 .0844 .0865 .0887 .0908 .0931 .0953 .0976 .0999 .1022 .1046 .107 .1095 .1119 .1144 .117 .1195 .1221 .1248 .1274 .1301 .1329 .1356 .1384 .1413 .1441 .147 .15 .1529 .1559 .159 .162 .1651 .1683 .1714 .1746 .1779 .1812 .1845 .1878 .1912 .1946 .1981 .2016 .2051 .2086 .2122 .2159 .2195 .2232 .227 .2307 .2346 .2384 .2423 .2462 .2502 .2542 .2582 .2623 .2664 .2705 .2747 .2789 .2831 .2874 .2918 .2961 .3005 .305 .3095 .314 .3185 .3231 .3278 .3325 .3372 .3419 .3467 .3515 .3564 .3613 .3663 .3712 .3763 .3813 .3864 .3916 .3968 .402 .4072 .4125 .4179 .4233 .4287 .4342 .4397 .4452 .4508 .4564 .4621 .4678 .4735 .4793 .4851 .491 .4969 .5029 .5089 .5149 .521 .5271 .5333 .5395 .5457 .552 .5583 .5647 .5711 .5776 .5841 .5906 .5972 .6038 .6105 .6172 .624 .6308 .6376 .6445 .6514 .6584 .6654 .6724 .6795 .6867 .6939 .7011 .7084 .7157 .7231 .7305 .7379 .7454 .7529 .7605 .7682 .7758 .7835 .7913 .7991 .807 .8148 .8228 .8308 .8388 .8469 .855 .8632 .8714 .8796 .8879 .8963 .9047 .9131 .9216 .9301 .9387 .9473 .956 .9647 .9734 .9823 .9911 1;\n\n@function color-contrast($background, $color-contrast-dark: $color-contrast-dark, $color-contrast-light: $color-contrast-light, $min-contrast-ratio: $min-contrast-ratio) {\n  $foregrounds: $color-contrast-light, $color-contrast-dark, $white, $black;\n  $max-ratio: 0;\n  $max-ratio-color: null;\n\n  @each $color in $foregrounds {\n    $contrast-ratio: contrast-ratio($background, $color);\n    @if $contrast-ratio > $min-contrast-ratio {\n      @return $color;\n    } @else if $contrast-ratio > $max-ratio {\n      $max-ratio: $contrast-ratio;\n      $max-ratio-color: $color;\n    }\n  }\n\n  @warn \"Found no color leading to #{$min-contrast-ratio}:1 contrast ratio against #{$background}...\";\n\n  @return $max-ratio-color;\n}\n\n@function contrast-ratio($background, $foreground: $color-contrast-light) {\n  $l1: luminance($background);\n  $l2: luminance(opaque($background, $foreground));\n\n  @return if($l1 > $l2, divide($l1 + .05, $l2 + .05), divide($l2 + .05, $l1 + .05));\n}\n\n// Return WCAG2.1 relative luminance\n// See https://www.w3.org/TR/WCAG/#dfn-relative-luminance\n// See https://www.w3.org/TR/WCAG/#dfn-contrast-ratio\n@function luminance($color) {\n  $rgb: (\n    \"r\": red($color),\n    \"g\": green($color),\n    \"b\": blue($color)\n  );\n\n  @each $name, $value in $rgb {\n    $value: if(divide($value, 255) < .03928, divide(divide($value, 255), 12.92), nth($_luminance-list, $value + 1));\n    $rgb: map-merge($rgb, ($name: $value));\n  }\n\n  @return (map-get($rgb, \"r\") * .2126) + (map-get($rgb, \"g\") * .7152) + (map-get($rgb, \"b\") * .0722);\n}\n\n// Return opaque color\n// opaque(#fff, rgba(0, 0, 0, .5)) => #808080\n@function opaque($background, $foreground) {\n  @return mix(rgba($foreground, 1), $background, opacity($foreground) * 100%);\n}\n\n// scss-docs-start color-functions\n// Tint a color: mix a color with white\n@function tint-color($color, $weight) {\n  @return mix(white, $color, $weight);\n}\n\n// Shade a color: mix a color with black\n@function shade-color($color, $weight) {\n  @return mix(black, $color, $weight);\n}\n\n// Shade the color if the weight is positive, else tint it\n@function shift-color($color, $weight) {\n  @return if($weight > 0, shade-color($color, $weight), tint-color($color, -$weight));\n}\n// scss-docs-end color-functions\n\n// Return valid calc\n@function add($value1, $value2, $return-calc: true) {\n  @if $value1 == null {\n    @return $value2;\n  }\n\n  @if $value2 == null {\n    @return $value1;\n  }\n\n  @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n    @return $value1 + $value2;\n  }\n\n  @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(\" + \") + $value2);\n}\n\n@function subtract($value1, $value2, $return-calc: true) {\n  @if $value1 == null and $value2 == null {\n    @return null;\n  }\n\n  @if $value1 == null {\n    @return -$value2;\n  }\n\n  @if $value2 == null {\n    @return $value1;\n  }\n\n  @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n    @return $value1 - $value2;\n  }\n\n  @if type-of($value2) != number {\n    $value2: unquote(\"(\") + $value2 + unquote(\")\");\n  }\n\n  @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(\" - \") + $value2);\n}\n\n@function divide($dividend, $divisor, $precision: 10) {\n  $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n  $dividend: abs($dividend);\n  $divisor: abs($divisor);\n  @if $dividend == 0 {\n    @return 0;\n  }\n  @if $divisor == 0 {\n    @error \"Cannot divide by 0\";\n  }\n  $remainder: $dividend;\n  $result: 0;\n  $factor: 10;\n  @while ($remainder > 0 and $precision >= 0) {\n    $quotient: 0;\n    @while ($remainder >= $divisor) {\n      $remainder: $remainder - $divisor;\n      $quotient: $quotient + 1;\n    }\n    $result: $result * 10 + $quotient;\n    $factor: $factor * .1;\n    $remainder: $remainder * 10;\n    $precision: $precision - 1;\n    @if ($precision < 0 and $remainder >= $divisor * 5) {\n      $result: $result + 1;\n    }\n  }\n  $result: $result * $factor * $sign;\n  $dividend-unit: unit($dividend);\n  $divisor-unit: unit($divisor);\n  $unit-map: (\n    \"px\": 1px,\n    \"rem\": 1rem,\n    \"em\": 1em,\n    \"%\": 1%\n  );\n  @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n    $result: $result * map-get($unit-map, $dividend-unit);\n  }\n  @return $result;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_grid.scss",
    "content": "// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n  .row {\n    @include make-row();\n\n    > * {\n      @include make-col-ready();\n    }\n  }\n}\n\n@if $enable-cssgrid {\n  .grid {\n    display: grid;\n    grid-template-rows: repeat(var(--#{$prefix}rows, 1), 1fr);\n    grid-template-columns: repeat(var(--#{$prefix}columns, #{$grid-columns}), 1fr);\n    gap: var(--#{$prefix}gap, #{$grid-gutter-width});\n\n    @include make-cssgrid();\n  }\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n  @include make-grid-columns();\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_helpers.scss",
    "content": "@import \"helpers/clearfix\";\n@import \"helpers/color-bg\";\n@import \"helpers/colored-links\";\n@import \"helpers/ratio\";\n@import \"helpers/position\";\n@import \"helpers/stacks\";\n@import \"helpers/visually-hidden\";\n@import \"helpers/stretched-link\";\n@import \"helpers/text-truncation\";\n@import \"helpers/vr\";\n"
  },
  {
    "path": "dist/lib/bootstrap5/_images.scss",
    "content": "// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n  @include img-fluid();\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n  padding: $thumbnail-padding;\n  background-color: $thumbnail-bg;\n  border: $thumbnail-border-width solid $thumbnail-border-color;\n  @include border-radius($thumbnail-border-radius);\n  @include box-shadow($thumbnail-box-shadow);\n\n  // Keep them at most 100% wide\n  @include img-fluid();\n}\n\n//\n// Figures\n//\n\n.figure {\n  // Ensures the caption's text aligns with the image.\n  display: inline-block;\n}\n\n.figure-img {\n  margin-bottom: $spacer * .5;\n  line-height: 1;\n}\n\n.figure-caption {\n  @include font-size($figure-caption-font-size);\n  color: $figure-caption-color;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_list-group.scss",
    "content": "// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n  // scss-docs-start list-group-css-vars\n  --#{$prefix}list-group-color: #{$list-group-color};\n  --#{$prefix}list-group-bg: #{$list-group-bg};\n  --#{$prefix}list-group-border-color: #{$list-group-border-color};\n  --#{$prefix}list-group-border-width: #{$list-group-border-width};\n  --#{$prefix}list-group-border-radius: #{$list-group-border-radius};\n  --#{$prefix}list-group-item-padding-x: #{$list-group-item-padding-x};\n  --#{$prefix}list-group-item-padding-y: #{$list-group-item-padding-y};\n  --#{$prefix}list-group-action-color: #{$list-group-action-color};\n  --#{$prefix}list-group-action-hover-color: #{$list-group-action-hover-color};\n  --#{$prefix}list-group-action-hover-bg: #{$list-group-hover-bg};\n  --#{$prefix}list-group-action-active-color: #{$list-group-action-active-color};\n  --#{$prefix}list-group-action-active-bg: #{$list-group-action-active-bg};\n  --#{$prefix}list-group-disabled-color: #{$list-group-disabled-color};\n  --#{$prefix}list-group-disabled-bg: #{$list-group-disabled-bg};\n  --#{$prefix}list-group-active-color: #{$list-group-active-color};\n  --#{$prefix}list-group-active-bg: #{$list-group-active-bg};\n  --#{$prefix}list-group-active-border-color: #{$list-group-active-border-color};\n  // scss-docs-end list-group-css-vars\n\n  display: flex;\n  flex-direction: column;\n\n  // No need to set list-style: none; since .list-group-item is block level\n  padding-left: 0; // reset padding because ul and ol\n  margin-bottom: 0;\n  @include border-radius(var(--#{$prefix}list-group-border-radius));\n}\n\n.list-group-numbered {\n  list-style-type: none;\n  counter-reset: section;\n\n  > .list-group-item::before {\n    // Increments only this instance of the section counter\n    content: counters(section, \".\") \". \";\n    counter-increment: section;\n  }\n}\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive\n// list items. Includes an extra `.active` modifier class for selected items.\n\n.list-group-item-action {\n  width: 100%; // For `<button>`s (anchors become 100% by default though)\n  color: var(--#{$prefix}list-group-action-color);\n  text-align: inherit; // For `<button>`s (anchors inherit)\n\n  // Hover state\n  &:hover,\n  &:focus {\n    z-index: 1; // Place hover/focus items above their siblings for proper border styling\n    color: var(--#{$prefix}list-group-action-hover-color);\n    text-decoration: none;\n    background-color: var(--#{$prefix}list-group-action-hover-bg);\n  }\n\n  &:active {\n    color: var(--#{$prefix}list-group-action-active-color);\n    background-color: var(--#{$prefix}list-group-action-active-bg);\n  }\n}\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: var(--#{$prefix}list-group-item-padding-y) var(--#{$prefix}list-group-item-padding-x);\n  color: var(--#{$prefix}list-group-color);\n  text-decoration: if($link-decoration == none, null, none);\n  background-color: var(--#{$prefix}list-group-bg);\n  border: var(--#{$prefix}list-group-border-width) solid var(--#{$prefix}list-group-border-color);\n\n  &:first-child {\n    @include border-top-radius(inherit);\n  }\n\n  &:last-child {\n    @include border-bottom-radius(inherit);\n  }\n\n  &.disabled,\n  &:disabled {\n    color: var(--#{$prefix}list-group-disabled-color);\n    pointer-events: none;\n    background-color: var(--#{$prefix}list-group-disabled-bg);\n  }\n\n  // Include both here for `<a>`s and `<button>`s\n  &.active {\n    z-index: 2; // Place active items above their siblings for proper border styling\n    color: var(--#{$prefix}list-group-active-color);\n    background-color: var(--#{$prefix}list-group-active-bg);\n    border-color: var(--#{$prefix}list-group-active-border-color);\n  }\n\n  // stylelint-disable-next-line scss/selector-no-redundant-nesting-selector\n  & + .list-group-item {\n    border-top-width: 0;\n\n    &.active {\n      margin-top: calc(-1 * var(--#{$prefix}list-group-border-width)); // stylelint-disable-line function-disallowed-list\n      border-top-width: var(--#{$prefix}list-group-border-width);\n    }\n  }\n}\n\n// Horizontal\n//\n// Change the layout of list group items from vertical (default) to horizontal.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .list-group-horizontal#{$infix} {\n      flex-direction: row;\n\n      > .list-group-item {\n        &:first-child:not(:last-child) {\n          @include border-bottom-start-radius(var(--#{$prefix}list-group-border-radius));\n          @include border-top-end-radius(0);\n        }\n\n        &:last-child:not(:first-child) {\n          @include border-top-end-radius(var(--#{$prefix}list-group-border-radius));\n          @include border-bottom-start-radius(0);\n        }\n\n        &.active {\n          margin-top: 0;\n        }\n\n        + .list-group-item {\n          border-top-width: var(--#{$prefix}list-group-border-width);\n          border-left-width: 0;\n\n          &.active {\n            margin-left: calc(-1 * var(--#{$prefix}list-group-border-width)); // stylelint-disable-line function-disallowed-list\n            border-left-width: var(--#{$prefix}list-group-border-width);\n          }\n        }\n      }\n    }\n  }\n}\n\n\n// Flush list items\n//\n// Remove borders and border-radius to keep list group items edge-to-edge. Most\n// useful within other components (e.g., cards).\n\n.list-group-flush {\n  @include border-radius(0);\n\n  > .list-group-item {\n    border-width: 0 0 var(--#{$prefix}list-group-border-width);\n\n    &:last-child {\n      border-bottom-width: 0;\n    }\n  }\n}\n\n\n// scss-docs-start list-group-modifiers\n// List group contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n@each $state, $value in $theme-colors {\n  $list-group-variant-bg: shift-color($value, $list-group-item-bg-scale);\n  $list-group-variant-color: shift-color($value, $list-group-item-color-scale);\n  @if (contrast-ratio($list-group-variant-bg, $list-group-variant-color) < $min-contrast-ratio) {\n    $list-group-variant-color: mix($value, color-contrast($list-group-variant-bg), abs($list-group-item-color-scale));\n  }\n\n  @include list-group-item-variant($state, $list-group-variant-bg, $list-group-variant-color);\n}\n// scss-docs-end list-group-modifiers\n"
  },
  {
    "path": "dist/lib/bootstrap5/_maps.scss",
    "content": "// Re-assigned maps\n//\n// Placed here so that others can override the default Sass maps and see automatic updates to utilities and more.\n\n// scss-docs-start theme-colors-rgb\n$theme-colors-rgb: map-loop($theme-colors, to-rgb, \"$value\") !default;\n// scss-docs-end theme-colors-rgb\n\n// Utilities maps\n//\n// Extends the default `$theme-colors` maps to help create our utilities.\n\n// Come v6, we'll de-dupe these variables. Until then, for backward compatibility, we keep them to reassign.\n// scss-docs-start utilities-colors\n$utilities-colors: $theme-colors-rgb !default;\n// scss-docs-end utilities-colors\n\n// scss-docs-start utilities-text-colors\n$utilities-text: map-merge(\n  $utilities-colors,\n  (\n    \"black\": to-rgb($black),\n    \"white\": to-rgb($white),\n    \"body\": to-rgb($body-color)\n  )\n) !default;\n$utilities-text-colors: map-loop($utilities-text, rgba-css-var, \"$key\", \"text\") !default;\n// scss-docs-end utilities-text-colors\n\n// scss-docs-start utilities-bg-colors\n$utilities-bg: map-merge(\n  $utilities-colors,\n  (\n    \"black\": to-rgb($black),\n    \"white\": to-rgb($white),\n    \"body\": to-rgb($body-bg)\n  )\n) !default;\n$utilities-bg-colors: map-loop($utilities-bg, rgba-css-var, \"$key\", \"bg\") !default;\n// scss-docs-end utilities-bg-colors\n\n// scss-docs-start utilities-border-colors\n$utilities-border: map-merge(\n  $utilities-colors,\n  (\n    \"white\": to-rgb($white)\n  )\n) !default;\n$utilities-border-colors: map-loop($utilities-border, rgba-css-var, \"$key\", \"border\") !default;\n// scss-docs-end utilities-border-colors\n\n$negative-spacers: if($enable-negative-margins, negativify-map($spacers), null) !default;\n\n$gutters: $spacers !default;\n"
  },
  {
    "path": "dist/lib/bootstrap5/_mixins.scss",
    "content": "// Toggles\n//\n// Used in conjunction with global variables to enable certain theme features.\n\n// Vendor\n@import \"vendor/rfs\";\n\n// Deprecate\n@import \"mixins/deprecate\";\n\n// Helpers\n@import \"mixins/breakpoints\";\n@import \"mixins/color-scheme\";\n@import \"mixins/image\";\n@import \"mixins/resize\";\n@import \"mixins/visually-hidden\";\n@import \"mixins/reset-text\";\n@import \"mixins/text-truncate\";\n\n// Utilities\n@import \"mixins/utilities\";\n\n// Components\n@import \"mixins/alert\";\n@import \"mixins/backdrop\";\n@import \"mixins/buttons\";\n@import \"mixins/caret\";\n@import \"mixins/pagination\";\n@import \"mixins/lists\";\n@import \"mixins/list-group\";\n@import \"mixins/forms\";\n@import \"mixins/table-variants\";\n\n// Skins\n@import \"mixins/border-radius\";\n@import \"mixins/box-shadow\";\n@import \"mixins/gradients\";\n@import \"mixins/transition\";\n\n// Layout\n@import \"mixins/clearfix\";\n@import \"mixins/container\";\n@import \"mixins/grid\";\n"
  },
  {
    "path": "dist/lib/bootstrap5/_modal.scss",
    "content": "// stylelint-disable function-disallowed-list\n\n// .modal-open      - body class for killing the scroll\n// .modal           - container to scroll within\n// .modal-dialog    - positioning shell for the actual modal\n// .modal-content   - actual modal w/ bg and corners and stuff\n\n\n// Container that the modal scrolls within\n.modal {\n  // scss-docs-start modal-css-vars\n  --#{$prefix}modal-zindex: #{$zindex-modal};\n  --#{$prefix}modal-width: #{$modal-md};\n  --#{$prefix}modal-padding: #{$modal-inner-padding};\n  --#{$prefix}modal-margin: #{$modal-dialog-margin};\n  --#{$prefix}modal-color: #{$modal-content-color};\n  --#{$prefix}modal-bg: #{$modal-content-bg};\n  --#{$prefix}modal-border-color: #{$modal-content-border-color};\n  --#{$prefix}modal-border-width: #{$modal-content-border-width};\n  --#{$prefix}modal-border-radius: #{$modal-content-border-radius};\n  --#{$prefix}modal-box-shadow: #{$modal-content-box-shadow-xs};\n  --#{$prefix}modal-inner-border-radius: #{$modal-content-inner-border-radius};\n  --#{$prefix}modal-header-padding-x: #{$modal-header-padding-x};\n  --#{$prefix}modal-header-padding-y: #{$modal-header-padding-y};\n  --#{$prefix}modal-header-padding: #{$modal-header-padding}; // Todo in v6: Split this padding into x and y\n  --#{$prefix}modal-header-border-color: #{$modal-header-border-color};\n  --#{$prefix}modal-header-border-width: #{$modal-header-border-width};\n  --#{$prefix}modal-title-line-height: #{$modal-title-line-height};\n  --#{$prefix}modal-footer-gap: #{$modal-footer-margin-between};\n  --#{$prefix}modal-footer-bg: #{$modal-footer-bg};\n  --#{$prefix}modal-footer-border-color: #{$modal-footer-border-color};\n  --#{$prefix}modal-footer-border-width: #{$modal-footer-border-width};\n  // scss-docs-end modal-css-vars\n\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: var(--#{$prefix}modal-zindex);\n  display: none;\n  width: 100%;\n  height: 100%;\n  overflow-x: hidden;\n  overflow-y: auto;\n  // Prevent Chrome on Windows from adding a focus outline. For details, see\n  // https://github.com/twbs/bootstrap/pull/10951.\n  outline: 0;\n  // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a\n  // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\n  // See also https://github.com/twbs/bootstrap/issues/17695\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: var(--#{$prefix}modal-margin);\n  // allow clicks to pass through for custom click handling to close modal\n  pointer-events: none;\n\n  // When fading in the modal, animate it to slide down\n  .modal.fade & {\n    @include transition($modal-transition);\n    transform: $modal-fade-transform;\n  }\n  .modal.show & {\n    transform: $modal-show-transform;\n  }\n\n  // When trying to close, animate focus to scale\n  .modal.modal-static & {\n    transform: $modal-scale-transform;\n  }\n}\n\n.modal-dialog-scrollable {\n  height: calc(100% - var(--#{$prefix}modal-margin) * 2);\n\n  .modal-content {\n    max-height: 100%;\n    overflow: hidden;\n  }\n\n  .modal-body {\n    overflow-y: auto;\n  }\n}\n\n.modal-dialog-centered {\n  display: flex;\n  align-items: center;\n  min-height: calc(100% - var(--#{$prefix}modal-margin) * 2);\n}\n\n// Actual modal\n.modal-content {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`\n  // counteract the pointer-events: none; in the .modal-dialog\n  color: var(--#{$prefix}modal-color);\n  pointer-events: auto;\n  background-color: var(--#{$prefix}modal-bg);\n  background-clip: padding-box;\n  border: var(--#{$prefix}modal-border-width) solid var(--#{$prefix}modal-border-color);\n  @include border-radius(var(--#{$prefix}modal-border-radius));\n  @include box-shadow(var(--#{$prefix}modal-box-shadow));\n  // Remove focus outline from opened modal\n  outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n  // scss-docs-start modal-backdrop-css-vars\n  --#{$prefix}backdrop-zindex: #{$zindex-modal-backdrop};\n  --#{$prefix}backdrop-bg: #{$modal-backdrop-bg};\n  --#{$prefix}backdrop-opacity: #{$modal-backdrop-opacity};\n  // scss-docs-end modal-backdrop-css-vars\n\n  @include overlay-backdrop(var(--#{$prefix}backdrop-zindex), var(--#{$prefix}backdrop-bg), var(--#{$prefix}backdrop-opacity));\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n  display: flex;\n  flex-shrink: 0;\n  align-items: center;\n  justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends\n  padding: var(--#{$prefix}modal-header-padding);\n  border-bottom: var(--#{$prefix}modal-header-border-width) solid var(--#{$prefix}modal-header-border-color);\n  @include border-top-radius(var(--#{$prefix}modal-inner-border-radius));\n\n  .btn-close {\n    padding: calc(var(--#{$prefix}modal-header-padding-y) * .5) calc(var(--#{$prefix}modal-header-padding-x) * .5);\n    margin: calc(-.5 * var(--#{$prefix}modal-header-padding-y)) calc(-.5 * var(--#{$prefix}modal-header-padding-x)) calc(-.5 * var(--#{$prefix}modal-header-padding-y)) auto;\n  }\n}\n\n// Title text within header\n.modal-title {\n  margin-bottom: 0;\n  line-height: var(--#{$prefix}modal-title-line-height);\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n  position: relative;\n  // Enable `flex-grow: 1` so that the body take up as much space as possible\n  // when there should be a fixed height on `.modal-dialog`.\n  flex: 1 1 auto;\n  padding: var(--#{$prefix}modal-padding);\n}\n\n// Footer (for actions)\n.modal-footer {\n  display: flex;\n  flex-shrink: 0;\n  flex-wrap: wrap;\n  align-items: center; // vertically center\n  justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items\n  padding: calc(var(--#{$prefix}modal-padding) - var(--#{$prefix}modal-footer-gap) * .5);\n  background-color: var(--#{$prefix}modal-footer-bg);\n  border-top: var(--#{$prefix}modal-footer-border-width) solid var(--#{$prefix}modal-footer-border-color);\n  @include border-bottom-radius(var(--#{$prefix}modal-inner-border-radius));\n\n  // Place margin between footer elements\n  // This solution is far from ideal because of the universal selector usage,\n  // but is needed to fix https://github.com/twbs/bootstrap/issues/24800\n  > * {\n    margin: calc(var(--#{$prefix}modal-footer-gap) * .5); // Todo in v6: replace with gap on parent class\n  }\n}\n\n// Scale up the modal\n@include media-breakpoint-up(sm) {\n  .modal {\n    --#{$prefix}modal-margin: #{$modal-dialog-margin-y-sm-up};\n    --#{$prefix}modal-box-shadow: #{$modal-content-box-shadow-sm-up};\n  }\n\n  // Automatically set modal's width for larger viewports\n  .modal-dialog {\n    max-width: var(--#{$prefix}modal-width);\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  .modal-sm {\n    --#{$prefix}modal-width: #{$modal-sm};\n  }\n}\n\n@include media-breakpoint-up(lg) {\n  .modal-lg,\n  .modal-xl {\n    --#{$prefix}modal-width: #{$modal-lg};\n  }\n}\n\n@include media-breakpoint-up(xl) {\n  .modal-xl {\n    --#{$prefix}modal-width: #{$modal-xl};\n  }\n}\n\n// scss-docs-start modal-fullscreen-loop\n@each $breakpoint in map-keys($grid-breakpoints) {\n  $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n  $postfix: if($infix != \"\", $infix + \"-down\", \"\");\n\n  @include media-breakpoint-down($breakpoint) {\n    .modal-fullscreen#{$postfix} {\n      width: 100vw;\n      max-width: none;\n      height: 100%;\n      margin: 0;\n\n      .modal-content {\n        height: 100%;\n        border: 0;\n        @include border-radius(0);\n      }\n\n      .modal-header,\n      .modal-footer {\n        @include border-radius(0);\n      }\n\n      .modal-body {\n        overflow-y: auto;\n      }\n    }\n  }\n}\n// scss-docs-end modal-fullscreen-loop\n"
  },
  {
    "path": "dist/lib/bootstrap5/_nav.scss",
    "content": "// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s, `<ul>`s or `<ol>`s.\n\n.nav {\n  // scss-docs-start nav-css-vars\n  --#{$prefix}nav-link-padding-x: #{$nav-link-padding-x};\n  --#{$prefix}nav-link-padding-y: #{$nav-link-padding-y};\n  @include rfs($nav-link-font-size, --#{$prefix}nav-link-font-size);\n  --#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};\n  --#{$prefix}nav-link-color: #{$nav-link-color};\n  --#{$prefix}nav-link-hover-color: #{$nav-link-hover-color};\n  --#{$prefix}nav-link-disabled-color: #{$nav-link-disabled-color};\n  // scss-docs-end nav-css-vars\n\n  display: flex;\n  flex-wrap: wrap;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.nav-link {\n  display: block;\n  padding: var(--#{$prefix}nav-link-padding-y) var(--#{$prefix}nav-link-padding-x);\n  @include font-size(var(--#{$prefix}nav-link-font-size));\n  font-weight: var(--#{$prefix}nav-link-font-weight);\n  color: var(--#{$prefix}nav-link-color);\n  text-decoration: if($link-decoration == none, null, none);\n  @include transition($nav-link-transition);\n\n  &:hover,\n  &:focus {\n    color: var(--#{$prefix}nav-link-hover-color);\n    text-decoration: if($link-hover-decoration == underline, none, null);\n  }\n\n  // Disabled state lightens text\n  &.disabled {\n    color: var(--#{$prefix}nav-link-disabled-color);\n    pointer-events: none;\n    cursor: default;\n  }\n}\n\n//\n// Tabs\n//\n\n.nav-tabs {\n  // scss-docs-start nav-tabs-css-vars\n  --#{$prefix}nav-tabs-border-width: #{$nav-tabs-border-width};\n  --#{$prefix}nav-tabs-border-color: #{$nav-tabs-border-color};\n  --#{$prefix}nav-tabs-border-radius: #{$nav-tabs-border-radius};\n  --#{$prefix}nav-tabs-link-hover-border-color: #{$nav-tabs-link-hover-border-color};\n  --#{$prefix}nav-tabs-link-active-color: #{$nav-tabs-link-active-color};\n  --#{$prefix}nav-tabs-link-active-bg: #{$nav-tabs-link-active-bg};\n  --#{$prefix}nav-tabs-link-active-border-color: #{$nav-tabs-link-active-border-color};\n  // scss-docs-end nav-tabs-css-vars\n\n  border-bottom: var(--#{$prefix}nav-tabs-border-width) solid var(--#{$prefix}nav-tabs-border-color);\n\n  .nav-link {\n    margin-bottom: calc(-1 * var(--#{$prefix}nav-tabs-border-width)); // stylelint-disable-line function-disallowed-list\n    background: none;\n    border: var(--#{$prefix}nav-tabs-border-width) solid transparent;\n    @include border-top-radius(var(--#{$prefix}nav-tabs-border-radius));\n\n    &:hover,\n    &:focus {\n      // Prevents active .nav-link tab overlapping focus outline of previous/next .nav-link\n      isolation: isolate;\n      border-color: var(--#{$prefix}nav-tabs-link-hover-border-color);\n    }\n\n    &.disabled,\n    &:disabled {\n      color: var(--#{$prefix}nav-link-disabled-color);\n      background-color: transparent;\n      border-color: transparent;\n    }\n  }\n\n  .nav-link.active,\n  .nav-item.show .nav-link {\n    color: var(--#{$prefix}nav-tabs-link-active-color);\n    background-color: var(--#{$prefix}nav-tabs-link-active-bg);\n    border-color: var(--#{$prefix}nav-tabs-link-active-border-color);\n  }\n\n  .dropdown-menu {\n    // Make dropdown border overlap tab border\n    margin-top: calc(-1 * var(--#{$prefix}nav-tabs-border-width)); // stylelint-disable-line function-disallowed-list\n    // Remove the top rounded corners here since there is a hard edge above the menu\n    @include border-top-radius(0);\n  }\n}\n\n\n//\n// Pills\n//\n\n.nav-pills {\n  // scss-docs-start nav-pills-css-vars\n  --#{$prefix}nav-pills-border-radius: #{$nav-pills-border-radius};\n  --#{$prefix}nav-pills-link-active-color: #{$nav-pills-link-active-color};\n  --#{$prefix}nav-pills-link-active-bg: #{$nav-pills-link-active-bg};\n  // scss-docs-end nav-pills-css-vars\n\n  .nav-link {\n    background: none;\n    border: 0;\n    @include border-radius(var(--#{$prefix}nav-pills-border-radius));\n\n    &:disabled {\n      color: var(--#{$prefix}nav-link-disabled-color);\n      background-color: transparent;\n      border-color: transparent;\n    }\n  }\n\n  .nav-link.active,\n  .show > .nav-link {\n    color: var(--#{$prefix}nav-pills-link-active-color);\n    @include gradient-bg(var(--#{$prefix}nav-pills-link-active-bg));\n  }\n}\n\n\n//\n// Justified variants\n//\n\n.nav-fill {\n  > .nav-link,\n  .nav-item {\n    flex: 1 1 auto;\n    text-align: center;\n  }\n}\n\n.nav-justified {\n  > .nav-link,\n  .nav-item {\n    flex-basis: 0;\n    flex-grow: 1;\n    text-align: center;\n  }\n}\n\n.nav-fill,\n.nav-justified {\n  .nav-item .nav-link {\n    width: 100%; // Make sure button will grow\n  }\n}\n\n\n// Tabbable tabs\n//\n// Hide tabbable panes to start, show them when `.active`\n\n.tab-content {\n  > .tab-pane {\n    display: none;\n  }\n  > .active {\n    display: block;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_navbar.scss",
    "content": "// Navbar\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n  // scss-docs-start navbar-css-vars\n  --#{$prefix}navbar-padding-x: #{if($navbar-padding-x == null, 0, $navbar-padding-x)};\n  --#{$prefix}navbar-padding-y: #{$navbar-padding-y};\n  --#{$prefix}navbar-color: #{$navbar-light-color};\n  --#{$prefix}navbar-hover-color: #{$navbar-light-hover-color};\n  --#{$prefix}navbar-disabled-color: #{$navbar-light-disabled-color};\n  --#{$prefix}navbar-active-color: #{$navbar-light-active-color};\n  --#{$prefix}navbar-brand-padding-y: #{$navbar-brand-padding-y};\n  --#{$prefix}navbar-brand-margin-end: #{$navbar-brand-margin-end};\n  --#{$prefix}navbar-brand-font-size: #{$navbar-brand-font-size};\n  --#{$prefix}navbar-brand-color: #{$navbar-light-brand-color};\n  --#{$prefix}navbar-brand-hover-color: #{$navbar-light-brand-hover-color};\n  --#{$prefix}navbar-nav-link-padding-x: #{$navbar-nav-link-padding-x};\n  --#{$prefix}navbar-toggler-padding-y: #{$navbar-toggler-padding-y};\n  --#{$prefix}navbar-toggler-padding-x: #{$navbar-toggler-padding-x};\n  --#{$prefix}navbar-toggler-font-size: #{$navbar-toggler-font-size};\n  --#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-light-toggler-icon-bg)};\n  --#{$prefix}navbar-toggler-border-color: #{$navbar-light-toggler-border-color};\n  --#{$prefix}navbar-toggler-border-radius: #{$navbar-toggler-border-radius};\n  --#{$prefix}navbar-toggler-focus-width: #{$navbar-toggler-focus-width};\n  --#{$prefix}navbar-toggler-transition: #{$navbar-toggler-transition};\n  // scss-docs-end navbar-css-vars\n\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; // allow us to do the line break for collapsing content\n  align-items: center;\n  justify-content: space-between; // space out brand from logo\n  padding: var(--#{$prefix}navbar-padding-y) var(--#{$prefix}navbar-padding-x);\n  @include gradient-bg();\n\n  // Because flex properties aren't inherited, we need to redeclare these first\n  // few properties so that content nested within behave properly.\n  // The `flex-wrap` property is inherited to simplify the expanded navbars\n  %container-flex-properties {\n    display: flex;\n    flex-wrap: inherit;\n    align-items: center;\n    justify-content: space-between;\n  }\n\n  > .container,\n  > .container-fluid {\n    @extend %container-flex-properties;\n  }\n\n  @each $breakpoint, $container-max-width in $container-max-widths {\n    > .container#{breakpoint-infix($breakpoint, $container-max-widths)} {\n      @extend %container-flex-properties;\n    }\n  }\n}\n\n\n// Navbar brand\n//\n// Used for brand, project, or site names.\n\n.navbar-brand {\n  padding-top: var(--#{$prefix}navbar-brand-padding-y);\n  padding-bottom: var(--#{$prefix}navbar-brand-padding-y);\n  margin-right: var(--#{$prefix}navbar-brand-margin-end);\n  @include font-size(var(--#{$prefix}navbar-brand-font-size));\n  color: var(--#{$prefix}navbar-brand-color);\n  text-decoration: if($link-decoration == none, null, none);\n  white-space: nowrap;\n\n  &:hover,\n  &:focus {\n    color: var(--#{$prefix}navbar-brand-hover-color);\n    text-decoration: if($link-hover-decoration == underline, none, null);\n  }\n}\n\n\n// Navbar nav\n//\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\n\n.navbar-nav {\n  // scss-docs-start navbar-nav-css-vars\n  --#{$prefix}nav-link-padding-x: 0;\n  --#{$prefix}nav-link-padding-y: #{$nav-link-padding-y};\n  @include rfs($nav-link-font-size, --#{$prefix}nav-link-font-size);\n  --#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};\n  --#{$prefix}nav-link-color: var(--#{$prefix}navbar-color);\n  --#{$prefix}nav-link-hover-color: var(--#{$prefix}navbar-hover-color);\n  --#{$prefix}nav-link-disabled-color: var(--#{$prefix}navbar-disabled-color);\n  // scss-docs-end navbar-nav-css-vars\n\n  display: flex;\n  flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n\n  .show > .nav-link,\n  .nav-link.active {\n    color: var(--#{$prefix}navbar-active-color);\n  }\n\n  .dropdown-menu {\n    position: static;\n  }\n}\n\n\n// Navbar text\n//\n//\n\n.navbar-text {\n  padding-top: $nav-link-padding-y;\n  padding-bottom: $nav-link-padding-y;\n  color: var(--#{$prefix}navbar-color);\n\n  a,\n  a:hover,\n  a:focus  {\n    color: var(--#{$prefix}navbar-active-color);\n  }\n}\n\n\n// Responsive navbar\n//\n// Custom styles for responsive collapsing and toggling of navbar contents.\n// Powered by the collapse Bootstrap JavaScript plugin.\n\n// When collapsed, prevent the toggleable navbar contents from appearing in\n// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`\n// on the `.navbar` parent.\n.navbar-collapse {\n  flex-basis: 100%;\n  flex-grow: 1;\n  // For always expanded or extra full navbars, ensure content aligns itself\n  // properly vertically. Can be easily overridden with flex utilities.\n  align-items: center;\n}\n\n// Button for toggling the navbar when in its collapsed state\n.navbar-toggler {\n  padding: var(--#{$prefix}navbar-toggler-padding-y) var(--#{$prefix}navbar-toggler-padding-x);\n  @include font-size(var(--#{$prefix}navbar-toggler-font-size));\n  line-height: 1;\n  color: var(--#{$prefix}navbar-color);\n  background-color: transparent; // remove default button style\n  border: var(--#{$prefix}border-width) solid var(--#{$prefix}navbar-toggler-border-color); // remove default button style\n  @include border-radius(var(--#{$prefix}navbar-toggler-border-radius));\n  @include transition(var(--#{$prefix}navbar-toggler-transition));\n\n  &:hover {\n    text-decoration: none;\n  }\n\n  &:focus {\n    text-decoration: none;\n    outline: 0;\n    box-shadow: 0 0 0 var(--#{$prefix}navbar-toggler-focus-width);\n  }\n}\n\n// Keep as a separate element so folks can easily override it with another icon\n// or image file as needed.\n.navbar-toggler-icon {\n  display: inline-block;\n  width: 1.5em;\n  height: 1.5em;\n  vertical-align: middle;\n  background-image: var(--#{$prefix}navbar-toggler-icon-bg);\n  background-repeat: no-repeat;\n  background-position: center;\n  background-size: 100%;\n}\n\n.navbar-nav-scroll {\n  max-height: var(--#{$prefix}scroll-height, 75vh);\n  overflow-y: auto;\n}\n\n// scss-docs-start navbar-expand-loop\n// Generate series of `.navbar-expand-*` responsive classes for configuring\n// where your navbar collapses.\n.navbar-expand {\n  @each $breakpoint in map-keys($grid-breakpoints) {\n    $next: breakpoint-next($breakpoint, $grid-breakpoints);\n    $infix: breakpoint-infix($next, $grid-breakpoints);\n\n    // stylelint-disable-next-line scss/selector-no-union-class-name\n    &#{$infix} {\n      @include media-breakpoint-up($next) {\n        flex-wrap: nowrap;\n        justify-content: flex-start;\n\n        .navbar-nav {\n          flex-direction: row;\n\n          .dropdown-menu {\n            position: absolute;\n          }\n\n          .nav-link {\n            padding-right: var(--#{$prefix}navbar-nav-link-padding-x);\n            padding-left: var(--#{$prefix}navbar-nav-link-padding-x);\n          }\n        }\n\n        .navbar-nav-scroll {\n          overflow: visible;\n        }\n\n        .navbar-collapse {\n          display: flex !important; // stylelint-disable-line declaration-no-important\n          flex-basis: auto;\n        }\n\n        .navbar-toggler {\n          display: none;\n        }\n\n        .offcanvas {\n          // stylelint-disable declaration-no-important\n          position: static;\n          z-index: auto;\n          flex-grow: 1;\n          width: auto !important;\n          height: auto !important;\n          visibility: visible !important;\n          background-color: transparent !important;\n          border: 0 !important;\n          transform: none !important;\n          @include box-shadow(none);\n          @include transition(none);\n          // stylelint-enable declaration-no-important\n\n          .offcanvas-header {\n            display: none;\n          }\n\n          .offcanvas-body {\n            display: flex;\n            flex-grow: 0;\n            padding: 0;\n            overflow-y: visible;\n          }\n        }\n      }\n    }\n  }\n}\n// scss-docs-end navbar-expand-loop\n\n// Navbar themes\n//\n// Styles for switching between navbars with light or dark background.\n\n.navbar-light {\n  @include deprecate(\"`.navbar-light`\", \"v5.2.0\", \"v6.0.0\", true);\n}\n\n.navbar-dark {\n  // scss-docs-start navbar-dark-css-vars\n  --#{$prefix}navbar-color: #{$navbar-dark-color};\n  --#{$prefix}navbar-hover-color: #{$navbar-dark-hover-color};\n  --#{$prefix}navbar-disabled-color: #{$navbar-dark-disabled-color};\n  --#{$prefix}navbar-active-color: #{$navbar-dark-active-color};\n  --#{$prefix}navbar-brand-color: #{$navbar-dark-brand-color};\n  --#{$prefix}navbar-brand-hover-color: #{$navbar-dark-brand-hover-color};\n  --#{$prefix}navbar-toggler-border-color: #{$navbar-dark-toggler-border-color};\n  --#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-dark-toggler-icon-bg)};\n  // scss-docs-end navbar-dark-css-vars\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_offcanvas.scss",
    "content": "// stylelint-disable function-disallowed-list\n\n%offcanvas-css-vars {\n  // scss-docs-start offcanvas-css-vars\n  --#{$prefix}offcanvas-zindex: #{$zindex-offcanvas};\n  --#{$prefix}offcanvas-width: #{$offcanvas-horizontal-width};\n  --#{$prefix}offcanvas-height: #{$offcanvas-vertical-height};\n  --#{$prefix}offcanvas-padding-x: #{$offcanvas-padding-x};\n  --#{$prefix}offcanvas-padding-y: #{$offcanvas-padding-y};\n  --#{$prefix}offcanvas-color: #{$offcanvas-color};\n  --#{$prefix}offcanvas-bg: #{$offcanvas-bg-color};\n  --#{$prefix}offcanvas-border-width: #{$offcanvas-border-width};\n  --#{$prefix}offcanvas-border-color: #{$offcanvas-border-color};\n  --#{$prefix}offcanvas-box-shadow: #{$offcanvas-box-shadow};\n  // scss-docs-end offcanvas-css-vars\n}\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  $next: breakpoint-next($breakpoint, $grid-breakpoints);\n  $infix: breakpoint-infix($next, $grid-breakpoints);\n\n  .offcanvas#{$infix} {\n    @extend %offcanvas-css-vars;\n  }\n}\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  $next: breakpoint-next($breakpoint, $grid-breakpoints);\n  $infix: breakpoint-infix($next, $grid-breakpoints);\n\n  .offcanvas#{$infix} {\n    @include media-breakpoint-down($next) {\n      position: fixed;\n      bottom: 0;\n      z-index: var(--#{$prefix}offcanvas-zindex);\n      display: flex;\n      flex-direction: column;\n      max-width: 100%;\n      color: var(--#{$prefix}offcanvas-color);\n      visibility: hidden;\n      background-color: var(--#{$prefix}offcanvas-bg);\n      background-clip: padding-box;\n      outline: 0;\n      @include box-shadow(var(--#{$prefix}offcanvas-box-shadow));\n      @include transition(transform $offcanvas-transition-duration ease-in-out);\n\n      &.offcanvas-start {\n        top: 0;\n        left: 0;\n        width: var(--#{$prefix}offcanvas-width);\n        border-right: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);\n        transform: translateX(-100%);\n      }\n\n      &.offcanvas-end {\n        top: 0;\n        right: 0;\n        width: var(--#{$prefix}offcanvas-width);\n        border-left: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);\n        transform: translateX(100%);\n      }\n\n      &.offcanvas-top {\n        top: 0;\n        right: 0;\n        left: 0;\n        height: var(--#{$prefix}offcanvas-height);\n        max-height: 100%;\n        border-bottom: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);\n        transform: translateY(-100%);\n      }\n\n      &.offcanvas-bottom {\n        right: 0;\n        left: 0;\n        height: var(--#{$prefix}offcanvas-height);\n        max-height: 100%;\n        border-top: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);\n        transform: translateY(100%);\n      }\n\n      &.showing,\n      &.show:not(.hiding) {\n        transform: none;\n      }\n\n      &.showing,\n      &.hiding,\n      &.show {\n        visibility: visible;\n      }\n    }\n\n    @if not ($infix == \"\") {\n      @include media-breakpoint-up($next) {\n        --#{$prefix}offcanvas-height: auto;\n        --#{$prefix}offcanvas-border-width: 0;\n        background-color: transparent !important; // stylelint-disable-line declaration-no-important\n\n        .offcanvas-header {\n          display: none;\n        }\n\n        .offcanvas-body {\n          display: flex;\n          flex-grow: 0;\n          padding: 0;\n          overflow-y: visible;\n          // Reset `background-color` in case `.bg-*` classes are used in offcanvas\n          background-color: transparent !important; // stylelint-disable-line declaration-no-important\n        }\n      }\n    }\n  }\n}\n\n.offcanvas-backdrop {\n  @include overlay-backdrop($zindex-offcanvas-backdrop, $offcanvas-backdrop-bg, $offcanvas-backdrop-opacity);\n}\n\n.offcanvas-header {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  padding: var(--#{$prefix}offcanvas-padding-y) var(--#{$prefix}offcanvas-padding-x);\n\n  .btn-close {\n    padding: calc(var(--#{$prefix}offcanvas-padding-y) * .5) calc(var(--#{$prefix}offcanvas-padding-x) * .5);\n    margin-top: calc(-.5 * var(--#{$prefix}offcanvas-padding-y));\n    margin-right: calc(-.5 * var(--#{$prefix}offcanvas-padding-x));\n    margin-bottom: calc(-.5 * var(--#{$prefix}offcanvas-padding-y));\n  }\n}\n\n.offcanvas-title {\n  margin-bottom: 0;\n  line-height: $offcanvas-title-line-height;\n}\n\n.offcanvas-body {\n  flex-grow: 1;\n  padding: var(--#{$prefix}offcanvas-padding-y) var(--#{$prefix}offcanvas-padding-x);\n  overflow-y: auto;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_pagination.scss",
    "content": ".pagination {\n  // scss-docs-start pagination-css-vars\n  --#{$prefix}pagination-padding-x: #{$pagination-padding-x};\n  --#{$prefix}pagination-padding-y: #{$pagination-padding-y};\n  @include rfs($pagination-font-size, --#{$prefix}pagination-font-size);\n  --#{$prefix}pagination-color: #{$pagination-color};\n  --#{$prefix}pagination-bg: #{$pagination-bg};\n  --#{$prefix}pagination-border-width: #{$pagination-border-width};\n  --#{$prefix}pagination-border-color: #{$pagination-border-color};\n  --#{$prefix}pagination-border-radius: #{$pagination-border-radius};\n  --#{$prefix}pagination-hover-color: #{$pagination-hover-color};\n  --#{$prefix}pagination-hover-bg: #{$pagination-hover-bg};\n  --#{$prefix}pagination-hover-border-color: #{$pagination-hover-border-color};\n  --#{$prefix}pagination-focus-color: #{$pagination-focus-color};\n  --#{$prefix}pagination-focus-bg: #{$pagination-focus-bg};\n  --#{$prefix}pagination-focus-box-shadow: #{$pagination-focus-box-shadow};\n  --#{$prefix}pagination-active-color: #{$pagination-active-color};\n  --#{$prefix}pagination-active-bg: #{$pagination-active-bg};\n  --#{$prefix}pagination-active-border-color: #{$pagination-active-border-color};\n  --#{$prefix}pagination-disabled-color: #{$pagination-disabled-color};\n  --#{$prefix}pagination-disabled-bg: #{$pagination-disabled-bg};\n  --#{$prefix}pagination-disabled-border-color: #{$pagination-disabled-border-color};\n  // scss-docs-end pagination-css-vars\n\n  display: flex;\n  @include list-unstyled();\n}\n\n.page-link {\n  position: relative;\n  display: block;\n  padding: var(--#{$prefix}pagination-padding-y) var(--#{$prefix}pagination-padding-x);\n  @include font-size(var(--#{$prefix}pagination-font-size));\n  color: var(--#{$prefix}pagination-color);\n  text-decoration: if($link-decoration == none, null, none);\n  background-color: var(--#{$prefix}pagination-bg);\n  border: var(--#{$prefix}pagination-border-width) solid var(--#{$prefix}pagination-border-color);\n  @include transition($pagination-transition);\n\n  &:hover {\n    z-index: 2;\n    color: var(--#{$prefix}pagination-hover-color);\n    text-decoration: if($link-hover-decoration == underline, none, null);\n    background-color: var(--#{$prefix}pagination-hover-bg);\n    border-color: var(--#{$prefix}pagination-hover-border-color);\n  }\n\n  &:focus {\n    z-index: 3;\n    color: var(--#{$prefix}pagination-focus-color);\n    background-color: var(--#{$prefix}pagination-focus-bg);\n    outline: $pagination-focus-outline;\n    box-shadow: var(--#{$prefix}pagination-focus-box-shadow);\n  }\n\n  &.active,\n  .active > & {\n    z-index: 3;\n    color: var(--#{$prefix}pagination-active-color);\n    @include gradient-bg(var(--#{$prefix}pagination-active-bg));\n    border-color: var(--#{$prefix}pagination-active-border-color);\n  }\n\n  &.disabled,\n  .disabled > & {\n    color: var(--#{$prefix}pagination-disabled-color);\n    pointer-events: none;\n    background-color: var(--#{$prefix}pagination-disabled-bg);\n    border-color: var(--#{$prefix}pagination-disabled-border-color);\n  }\n}\n\n.page-item {\n  &:not(:first-child) .page-link {\n    margin-left: $pagination-margin-start;\n  }\n\n  @if $pagination-margin-start == ($pagination-border-width * -1) {\n    &:first-child {\n      .page-link {\n        @include border-start-radius(var(--#{$prefix}pagination-border-radius));\n      }\n    }\n\n    &:last-child {\n      .page-link {\n        @include border-end-radius(var(--#{$prefix}pagination-border-radius));\n      }\n    }\n  } @else {\n    // Add border-radius to all pageLinks in case they have left margin\n    .page-link {\n      @include border-radius(var(--#{$prefix}pagination-border-radius));\n    }\n  }\n}\n\n\n//\n// Sizing\n//\n\n.pagination-lg {\n  @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $pagination-border-radius-lg);\n}\n\n.pagination-sm {\n  @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $pagination-border-radius-sm);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_placeholders.scss",
    "content": ".placeholder {\n  display: inline-block;\n  min-height: 1em;\n  vertical-align: middle;\n  cursor: wait;\n  background-color: currentcolor;\n  opacity: $placeholder-opacity-max;\n\n  &.btn::before {\n    display: inline-block;\n    content: \"\";\n  }\n}\n\n// Sizing\n.placeholder-xs {\n  min-height: .6em;\n}\n\n.placeholder-sm {\n  min-height: .8em;\n}\n\n.placeholder-lg {\n  min-height: 1.2em;\n}\n\n// Animation\n.placeholder-glow {\n  .placeholder {\n    animation: placeholder-glow 2s ease-in-out infinite;\n  }\n}\n\n@keyframes placeholder-glow {\n  50% {\n    opacity: $placeholder-opacity-min;\n  }\n}\n\n.placeholder-wave {\n  mask-image: linear-gradient(130deg, $black 55%, rgba(0, 0, 0, (1 - $placeholder-opacity-min)) 75%, $black 95%);\n  mask-size: 200% 100%;\n  animation: placeholder-wave 2s linear infinite;\n}\n\n@keyframes placeholder-wave {\n  100% {\n    mask-position: -200% 0%;\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_popover.scss",
    "content": ".popover {\n  // scss-docs-start popover-css-vars\n  --#{$prefix}popover-zindex: #{$zindex-popover};\n  --#{$prefix}popover-max-width: #{$popover-max-width};\n  @include rfs($popover-font-size, --#{$prefix}popover-font-size);\n  --#{$prefix}popover-bg: #{$popover-bg};\n  --#{$prefix}popover-border-width: #{$popover-border-width};\n  --#{$prefix}popover-border-color: #{$popover-border-color};\n  --#{$prefix}popover-border-radius: #{$popover-border-radius};\n  --#{$prefix}popover-inner-border-radius: #{$popover-inner-border-radius};\n  --#{$prefix}popover-box-shadow: #{$popover-box-shadow};\n  --#{$prefix}popover-header-padding-x: #{$popover-header-padding-x};\n  --#{$prefix}popover-header-padding-y: #{$popover-header-padding-y};\n  @include rfs($popover-header-font-size, --#{$prefix}popover-header-font-size);\n  --#{$prefix}popover-header-color: #{$popover-header-color};\n  --#{$prefix}popover-header-bg: #{$popover-header-bg};\n  --#{$prefix}popover-body-padding-x: #{$popover-body-padding-x};\n  --#{$prefix}popover-body-padding-y: #{$popover-body-padding-y};\n  --#{$prefix}popover-body-color: #{$popover-body-color};\n  --#{$prefix}popover-arrow-width: #{$popover-arrow-width};\n  --#{$prefix}popover-arrow-height: #{$popover-arrow-height};\n  --#{$prefix}popover-arrow-border: var(--#{$prefix}popover-border-color);\n  // scss-docs-end popover-css-vars\n\n  z-index: var(--#{$prefix}popover-zindex);\n  display: block;\n  max-width: var(--#{$prefix}popover-max-width);\n  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  @include reset-text();\n  @include font-size(var(--#{$prefix}popover-font-size));\n  // Allow breaking very long words so they don't overflow the popover's bounds\n  word-wrap: break-word;\n  background-color: var(--#{$prefix}popover-bg);\n  background-clip: padding-box;\n  border: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-border-color);\n  @include border-radius(var(--#{$prefix}popover-border-radius));\n  @include box-shadow(var(--#{$prefix}popover-box-shadow));\n\n  .popover-arrow {\n    display: block;\n    width: var(--#{$prefix}popover-arrow-width);\n    height: var(--#{$prefix}popover-arrow-height);\n\n    &::before,\n    &::after {\n      position: absolute;\n      display: block;\n      content: \"\";\n      border-color: transparent;\n      border-style: solid;\n      border-width: 0;\n    }\n  }\n}\n\n.bs-popover-top {\n  > .popover-arrow {\n    bottom: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list\n\n    &::before,\n    &::after {\n      border-width: var(--#{$prefix}popover-arrow-height) calc(var(--#{$prefix}popover-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list\n    }\n\n    &::before {\n      bottom: 0;\n      border-top-color: var(--#{$prefix}popover-arrow-border);\n    }\n\n    &::after {\n      bottom: var(--#{$prefix}popover-border-width);\n      border-top-color: var(--#{$prefix}popover-bg);\n    }\n  }\n}\n\n/* rtl:begin:ignore */\n.bs-popover-end {\n  > .popover-arrow {\n    left: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list\n    width: var(--#{$prefix}popover-arrow-height);\n    height: var(--#{$prefix}popover-arrow-width);\n\n    &::before,\n    &::after {\n      border-width: calc(var(--#{$prefix}popover-arrow-width) * .5) var(--#{$prefix}popover-arrow-height) calc(var(--#{$prefix}popover-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list\n    }\n\n    &::before {\n      left: 0;\n      border-right-color: var(--#{$prefix}popover-arrow-border);\n    }\n\n    &::after {\n      left: var(--#{$prefix}popover-border-width);\n      border-right-color: var(--#{$prefix}popover-bg);\n    }\n  }\n}\n\n/* rtl:end:ignore */\n\n.bs-popover-bottom {\n  > .popover-arrow {\n    top: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list\n\n    &::before,\n    &::after {\n      border-width: 0 calc(var(--#{$prefix}popover-arrow-width) * .5) var(--#{$prefix}popover-arrow-height); // stylelint-disable-line function-disallowed-list\n    }\n\n    &::before {\n      top: 0;\n      border-bottom-color: var(--#{$prefix}popover-arrow-border);\n    }\n\n    &::after {\n      top: var(--#{$prefix}popover-border-width);\n      border-bottom-color: var(--#{$prefix}popover-bg);\n    }\n  }\n\n  // This will remove the popover-header's border just below the arrow\n  .popover-header::before {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    display: block;\n    width: var(--#{$prefix}popover-arrow-width);\n    margin-left: calc(-.5 * var(--#{$prefix}popover-arrow-width)); // stylelint-disable-line function-disallowed-list\n    content: \"\";\n    border-bottom: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-header-bg);\n  }\n}\n\n/* rtl:begin:ignore */\n.bs-popover-start {\n  > .popover-arrow {\n    right: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list\n    width: var(--#{$prefix}popover-arrow-height);\n    height: var(--#{$prefix}popover-arrow-width);\n\n    &::before,\n    &::after {\n      border-width: calc(var(--#{$prefix}popover-arrow-width) * .5) 0 calc(var(--#{$prefix}popover-arrow-width) * .5) var(--#{$prefix}popover-arrow-height); // stylelint-disable-line function-disallowed-list\n    }\n\n    &::before {\n      right: 0;\n      border-left-color: var(--#{$prefix}popover-arrow-border);\n    }\n\n    &::after {\n      right: var(--#{$prefix}popover-border-width);\n      border-left-color: var(--#{$prefix}popover-bg);\n    }\n  }\n}\n\n/* rtl:end:ignore */\n\n.bs-popover-auto {\n  &[data-popper-placement^=\"top\"] {\n    @extend .bs-popover-top;\n  }\n  &[data-popper-placement^=\"right\"] {\n    @extend .bs-popover-end;\n  }\n  &[data-popper-placement^=\"bottom\"] {\n    @extend .bs-popover-bottom;\n  }\n  &[data-popper-placement^=\"left\"] {\n    @extend .bs-popover-start;\n  }\n}\n\n// Offset the popover to account for the popover arrow\n.popover-header {\n  padding: var(--#{$prefix}popover-header-padding-y) var(--#{$prefix}popover-header-padding-x);\n  margin-bottom: 0; // Reset the default from Reboot\n  @include font-size(var(--#{$prefix}popover-header-font-size));\n  color: var(--#{$prefix}popover-header-color);\n  background-color: var(--#{$prefix}popover-header-bg);\n  border-bottom: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-border-color);\n  @include border-top-radius(var(--#{$prefix}popover-inner-border-radius));\n\n  &:empty {\n    display: none;\n  }\n}\n\n.popover-body {\n  padding: var(--#{$prefix}popover-body-padding-y) var(--#{$prefix}popover-body-padding-x);\n  color: var(--#{$prefix}popover-body-color);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_progress.scss",
    "content": "// Disable animation if transitions are disabled\n\n// scss-docs-start progress-keyframes\n@if $enable-transitions {\n  @keyframes progress-bar-stripes {\n    0% { background-position-x: $progress-height; }\n  }\n}\n// scss-docs-end progress-keyframes\n\n.progress {\n  // scss-docs-start progress-css-vars\n  --#{$prefix}progress-height: #{$progress-height};\n  @include rfs($progress-font-size, --#{$prefix}progress-font-size);\n  --#{$prefix}progress-bg: #{$progress-bg};\n  --#{$prefix}progress-border-radius: #{$progress-border-radius};\n  --#{$prefix}progress-box-shadow: #{$progress-box-shadow};\n  --#{$prefix}progress-bar-color: #{$progress-bar-color};\n  --#{$prefix}progress-bar-bg: #{$progress-bar-bg};\n  --#{$prefix}progress-bar-transition: #{$progress-bar-transition};\n  // scss-docs-end progress-css-vars\n\n  display: flex;\n  height: var(--#{$prefix}progress-height);\n  overflow: hidden; // force rounded corners by cropping it\n  @include font-size(var(--#{$prefix}progress-font-size));\n  background-color: var(--#{$prefix}progress-bg);\n  @include border-radius(var(--#{$prefix}progress-border-radius));\n  @include box-shadow(var(--#{$prefix}progress-box-shadow));\n}\n\n.progress-bar {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  overflow: hidden;\n  color: var(--#{$prefix}progress-bar-color);\n  text-align: center;\n  white-space: nowrap;\n  background-color: var(--#{$prefix}progress-bar-bg);\n  @include transition(var(--#{$prefix}progress-bar-transition));\n}\n\n.progress-bar-striped {\n  @include gradient-striped();\n  background-size: var(--#{$prefix}progress-height) var(--#{$prefix}progress-height);\n}\n\n@if $enable-transitions {\n  .progress-bar-animated {\n    animation: $progress-bar-animation-timing progress-bar-stripes;\n\n    @if $enable-reduced-motion {\n      @media (prefers-reduced-motion: reduce) {\n        animation: none;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_reboot.scss",
    "content": "// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box;\n}\n\n\n// Root\n//\n// Ability to the value of the root font sizes, affecting the value of `rem`.\n// null by default, thus nothing is generated.\n\n:root {\n  @if $font-size-root != null {\n    @include font-size(var(--#{$prefix}root-font-size));\n  }\n\n  @if $enable-smooth-scroll {\n    @media (prefers-reduced-motion: no-preference) {\n      scroll-behavior: smooth;\n    }\n  }\n}\n\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Prevent adjustments of font size after orientation changes in iOS.\n// 4. Change the default tap highlight to be completely transparent in iOS.\n\n// scss-docs-start reboot-body-rules\nbody {\n  margin: 0; // 1\n  font-family: var(--#{$prefix}body-font-family);\n  @include font-size(var(--#{$prefix}body-font-size));\n  font-weight: var(--#{$prefix}body-font-weight);\n  line-height: var(--#{$prefix}body-line-height);\n  color: var(--#{$prefix}body-color);\n  text-align: var(--#{$prefix}body-text-align);\n  background-color: var(--#{$prefix}body-bg); // 2\n  -webkit-text-size-adjust: 100%; // 3\n  -webkit-tap-highlight-color: rgba($black, 0); // 4\n}\n// scss-docs-end reboot-body-rules\n\n\n// Content grouping\n//\n// 1. Reset Firefox's gray color\n\nhr {\n  margin: $hr-margin-y 0;\n  color: $hr-color; // 1\n  border: 0;\n  border-top: $hr-border-width solid $hr-border-color;\n  opacity: $hr-opacity;\n}\n\n\n// Typography\n//\n// 1. Remove top margins from headings\n//    By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n//    margin for easier control within type scales as it avoids margin collapsing.\n\n%heading {\n  margin-top: 0; // 1\n  margin-bottom: $headings-margin-bottom;\n  font-family: $headings-font-family;\n  font-style: $headings-font-style;\n  font-weight: $headings-font-weight;\n  line-height: $headings-line-height;\n  color: $headings-color;\n}\n\nh1 {\n  @extend %heading;\n  @include font-size($h1-font-size);\n}\n\nh2 {\n  @extend %heading;\n  @include font-size($h2-font-size);\n}\n\nh3 {\n  @extend %heading;\n  @include font-size($h3-font-size);\n}\n\nh4 {\n  @extend %heading;\n  @include font-size($h4-font-size);\n}\n\nh5 {\n  @extend %heading;\n  @include font-size($h5-font-size);\n}\n\nh6 {\n  @extend %heading;\n  @include font-size($h6-font-size);\n}\n\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\n\np {\n  margin-top: 0;\n  margin-bottom: $paragraph-margin-bottom;\n}\n\n\n// Abbreviations\n//\n// 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 2. Add explicit cursor to indicate changed behavior.\n// 3. Prevent the text-decoration to be skipped.\n\nabbr[title] {\n  text-decoration: underline dotted; // 1\n  cursor: help; // 2\n  text-decoration-skip-ink: none; // 3\n}\n\n\n// Address\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\n\n// Lists\n\nol,\nul {\n  padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: $dt-font-weight;\n}\n\n// 1. Undo browser default\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0; // 1\n}\n\n\n// Blockquote\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\n\n// Strong\n//\n// Add the correct font weight in Chrome, Edge, and Safari\n\nb,\nstrong {\n  font-weight: $font-weight-bolder;\n}\n\n\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n  @include font-size($small-font-size);\n}\n\n\n// Mark\n\nmark {\n  padding: $mark-padding;\n  background-color: var(--#{$prefix}highlight-bg);\n}\n\n\n// Sub and Sup\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n\nsub,\nsup {\n  position: relative;\n  @include font-size($sub-sup-font-size);\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n// Links\n\na {\n  color: var(--#{$prefix}link-color);\n  text-decoration: $link-decoration;\n\n  &:hover {\n    color: var(--#{$prefix}link-hover-color);\n    text-decoration: $link-hover-decoration;\n  }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n  &,\n  &:hover {\n    color: inherit;\n    text-decoration: none;\n  }\n}\n\n\n// Code\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: $font-family-code;\n  @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\n// 1. Remove browser default top margin\n// 2. Reset browser default of `1em` to use `rem`s\n// 3. Don't allow content to break outside\n\npre {\n  display: block;\n  margin-top: 0; // 1\n  margin-bottom: 1rem; // 2\n  overflow: auto; // 3\n  @include font-size($code-font-size);\n  color: $pre-color;\n\n  // Account for some code outputs that place code tags in pre tags\n  code {\n    @include font-size(inherit);\n    color: inherit;\n    word-break: normal;\n  }\n}\n\ncode {\n  @include font-size($code-font-size);\n  color: var(--#{$prefix}code-color);\n  word-wrap: break-word;\n\n  // Streamline the style when inside anchors to avoid broken underline and more\n  a > & {\n    color: inherit;\n  }\n}\n\nkbd {\n  padding: $kbd-padding-y $kbd-padding-x;\n  @include font-size($kbd-font-size);\n  color: $kbd-color;\n  background-color: $kbd-bg;\n  @include border-radius($border-radius-sm);\n\n  kbd {\n    padding: 0;\n    @include font-size(1em);\n    font-weight: $nested-kbd-font-weight;\n  }\n}\n\n\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n  margin: 0 0 1rem;\n}\n\n\n// Images and content\n\nimg,\nsvg {\n  vertical-align: middle;\n}\n\n\n// Tables\n//\n// Prevent double borders\n\ntable {\n  caption-side: bottom;\n  border-collapse: collapse;\n}\n\ncaption {\n  padding-top: $table-cell-padding-y;\n  padding-bottom: $table-cell-padding-y;\n  color: $table-caption-color;\n  text-align: left;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `<td>` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n  font-weight: $table-th-font-weight; // 1\n  text-align: inherit; // 2\n  text-align: -webkit-match-parent; // 3\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n  border-color: inherit;\n  border-style: solid;\n  border-width: 0;\n}\n\n\n// Forms\n//\n// 1. Allow labels to use `margin` for spacing.\n\nlabel {\n  display: inline-block; // 1\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n// See https://github.com/twbs/bootstrap/issues/24093\n\nbutton {\n  // stylelint-disable-next-line property-disallowed-list\n  border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n  outline: 0;\n}\n\n// 1. Remove the margin in Firefox and Safari\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0; // 1\n  font-family: inherit;\n  @include font-size(inherit);\n  line-height: inherit;\n}\n\n// Remove the inheritance of text transform in Firefox\nbutton,\nselect {\n  text-transform: none;\n}\n// Set the cursor for non-`<button>` buttons\n//\n// Details at https://github.com/twbs/bootstrap/pull/30562\n[role=\"button\"] {\n  cursor: pointer;\n}\n\nselect {\n  // Remove the inheritance of word-wrap in Safari.\n  // See https://github.com/twbs/bootstrap/issues/24990\n  word-wrap: normal;\n\n  // Undo the opacity change from Chrome\n  &:disabled {\n    opacity: 1;\n  }\n}\n\n// Remove the dropdown arrow only from text type inputs built with datalists in Chrome.\n// See https://stackoverflow.com/a/54997118\n\n[list]:not([type=\"date\"]):not([type=\"datetime-local\"]):not([type=\"month\"]):not([type=\"week\"]):not([type=\"time\"])::-webkit-calendar-picker-indicator {\n  display: none !important;\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n//    controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\n// 3. Opinionated: add \"hand\" cursor to non-disabled button elements.\n\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; // 2\n\n  @if $enable-button-pointers {\n    &:not(:disabled) {\n      cursor: pointer; // 3\n    }\n  }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\n\n::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\n// 1. Textareas should really only resize vertically so they don't break their (horizontal) containers.\n\ntextarea {\n  resize: vertical; // 1\n}\n\n// 1. Browsers set a default `min-width: min-content;` on fieldsets,\n//    unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n//    So we reset that to ensure fieldsets behave more like a standard block element.\n//    See https://github.com/twbs/bootstrap/issues/12359\n//    and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n// 2. Reset the default outline behavior of fieldsets so they don't affect page layout.\n\nfieldset {\n  min-width: 0; // 1\n  padding: 0; // 2\n  margin: 0; // 2\n  border: 0; // 2\n}\n\n// 1. By using `float: left`, the legend will behave like a block element.\n//    This way the border of a fieldset wraps around the legend if present.\n// 2. Fix wrapping bug.\n//    See https://github.com/twbs/bootstrap/issues/29712\n\nlegend {\n  float: left; // 1\n  width: 100%;\n  padding: 0;\n  margin-bottom: $legend-margin-bottom;\n  @include font-size($legend-font-size);\n  font-weight: $legend-font-weight;\n  line-height: inherit;\n\n  + * {\n    clear: left; // 2\n  }\n}\n\n// Fix height of inputs with a type of datetime-local, date, month, week, or time\n// See https://github.com/twbs/bootstrap/issues/18842\n\n::-webkit-datetime-edit-fields-wrapper,\n::-webkit-datetime-edit-text,\n::-webkit-datetime-edit-minute,\n::-webkit-datetime-edit-hour-field,\n::-webkit-datetime-edit-day-field,\n::-webkit-datetime-edit-month-field,\n::-webkit-datetime-edit-year-field {\n  padding: 0;\n}\n\n::-webkit-inner-spin-button {\n  height: auto;\n}\n\n// 1. Correct the outline style in Safari.\n// 2. This overrides the extra rounded corners on search inputs in iOS so that our\n//    `.form-control` class can properly style them. Note that this cannot simply\n//    be added to `.form-control` as it's not specific enough. For details, see\n//    https://github.com/twbs/bootstrap/issues/11586.\n\n[type=\"search\"] {\n  outline-offset: -2px; // 1\n  -webkit-appearance: textfield; // 2\n}\n\n// 1. A few input types should stay LTR\n// See https://rtlstyling.com/posts/rtl-styling#form-inputs\n// 2. RTL only output\n// See https://rtlcss.com/learn/usage-guide/control-directives/#raw\n\n/* rtl:raw:\n[type=\"tel\"],\n[type=\"url\"],\n[type=\"email\"],\n[type=\"number\"] {\n  direction: ltr;\n}\n*/\n\n// Remove the inner padding in Chrome and Safari on macOS.\n\n::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n// Remove padding around color pickers in webkit browsers\n\n::-webkit-color-swatch-wrapper {\n  padding: 0;\n}\n\n\n// 1. Inherit font family and line height for file input buttons\n// 2. Correct the inability to style clickable types in iOS and Safari.\n\n::file-selector-button {\n  font: inherit; // 1\n  -webkit-appearance: button; // 2\n}\n\n// Correct element displays\n\noutput {\n  display: inline-block;\n}\n\n// Remove border from iframe\n\niframe {\n  border: 0;\n}\n\n// Summary\n//\n// 1. Add the correct display in all browsers\n\nsummary {\n  display: list-item; // 1\n  cursor: pointer;\n}\n\n\n// Progress\n//\n// Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\nprogress {\n  vertical-align: baseline;\n}\n\n\n// Hidden attribute\n//\n// Always hide an element with the `hidden` HTML attribute.\n\n[hidden] {\n  display: none !important;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_root.scss",
    "content": ":root {\n  // Note: Custom variable values only support SassScript inside `#{}`.\n\n  // Colors\n  //\n  // Generate palettes for full colors, grays, and theme colors.\n\n  @each $color, $value in $colors {\n    --#{$prefix}#{$color}: #{$value};\n  }\n\n  @each $color, $value in $grays {\n    --#{$prefix}gray-#{$color}: #{$value};\n  }\n\n  @each $color, $value in $theme-colors {\n    --#{$prefix}#{$color}: #{$value};\n  }\n\n  @each $color, $value in $theme-colors-rgb {\n    --#{$prefix}#{$color}-rgb: #{$value};\n  }\n\n  --#{$prefix}white-rgb: #{to-rgb($white)};\n  --#{$prefix}black-rgb: #{to-rgb($black)};\n  --#{$prefix}body-color-rgb: #{to-rgb($body-color)};\n  --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n  // Fonts\n\n  // Note: Use `inspect` for lists so that quoted items keep the quotes.\n  // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n  --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n  --#{$prefix}font-monospace: #{inspect($font-family-monospace)};\n  --#{$prefix}gradient: #{$gradient};\n\n  // Root and body\n  // scss-docs-start root-body-variables\n  @if $font-size-root != null {\n    --#{$prefix}root-font-size: #{$font-size-root};\n  }\n  --#{$prefix}body-font-family: #{$font-family-base};\n  @include rfs($font-size-base, --#{$prefix}body-font-size);\n  --#{$prefix}body-font-weight: #{$font-weight-base};\n  --#{$prefix}body-line-height: #{$line-height-base};\n  --#{$prefix}body-color: #{$body-color};\n  @if $body-text-align != null {\n    --#{$prefix}body-text-align: #{$body-text-align};\n  }\n  --#{$prefix}body-bg: #{$body-bg};\n  // scss-docs-end root-body-variables\n\n  // scss-docs-start root-border-var\n  --#{$prefix}border-width: #{$border-width};\n  --#{$prefix}border-style: #{$border-style};\n  --#{$prefix}border-color: #{$border-color};\n  --#{$prefix}border-color-translucent: #{$border-color-translucent};\n\n  --#{$prefix}border-radius: #{$border-radius};\n  --#{$prefix}border-radius-sm: #{$border-radius-sm};\n  --#{$prefix}border-radius-lg: #{$border-radius-lg};\n  --#{$prefix}border-radius-xl: #{$border-radius-xl};\n  --#{$prefix}border-radius-2xl: #{$border-radius-2xl};\n  --#{$prefix}border-radius-pill: #{$border-radius-pill};\n  // scss-docs-end root-border-var\n\n  --#{$prefix}link-color: #{$link-color};\n  --#{$prefix}link-hover-color: #{$link-hover-color};\n\n  --#{$prefix}code-color: #{$code-color};\n\n  --#{$prefix}highlight-bg: #{$mark-bg};\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_spinners.scss",
    "content": "//\n// Rotating border\n//\n\n.spinner-grow,\n.spinner-border {\n  display: inline-block;\n  width: var(--#{$prefix}spinner-width);\n  height: var(--#{$prefix}spinner-height);\n  vertical-align: var(--#{$prefix}spinner-vertical-align);\n  // stylelint-disable-next-line property-disallowed-list\n  border-radius: 50%;\n  animation: var(--#{$prefix}spinner-animation-speed) linear infinite var(--#{$prefix}spinner-animation-name);\n}\n\n// scss-docs-start spinner-border-keyframes\n@keyframes spinner-border {\n  to { transform: rotate(360deg) #{\"/* rtl:ignore */\"}; }\n}\n// scss-docs-end spinner-border-keyframes\n\n.spinner-border {\n  // scss-docs-start spinner-border-css-vars\n  --#{$prefix}spinner-width: #{$spinner-width};\n  --#{$prefix}spinner-height: #{$spinner-height};\n  --#{$prefix}spinner-vertical-align: #{$spinner-vertical-align};\n  --#{$prefix}spinner-border-width: #{$spinner-border-width};\n  --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed};\n  --#{$prefix}spinner-animation-name: spinner-border;\n  // scss-docs-end spinner-border-css-vars\n\n  border: var(--#{$prefix}spinner-border-width) solid currentcolor;\n  border-right-color: transparent;\n}\n\n.spinner-border-sm {\n  // scss-docs-start spinner-border-sm-css-vars\n  --#{$prefix}spinner-width: #{$spinner-width-sm};\n  --#{$prefix}spinner-height: #{$spinner-height-sm};\n  --#{$prefix}spinner-border-width: #{$spinner-border-width-sm};\n  // scss-docs-end spinner-border-sm-css-vars\n}\n\n//\n// Growing circle\n//\n\n// scss-docs-start spinner-grow-keyframes\n@keyframes spinner-grow {\n  0% {\n    transform: scale(0);\n  }\n  50% {\n    opacity: 1;\n    transform: none;\n  }\n}\n// scss-docs-end spinner-grow-keyframes\n\n.spinner-grow {\n  // scss-docs-start spinner-grow-css-vars\n  --#{$prefix}spinner-width: #{$spinner-width};\n  --#{$prefix}spinner-height: #{$spinner-height};\n  --#{$prefix}spinner-vertical-align: #{$spinner-vertical-align};\n  --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed};\n  --#{$prefix}spinner-animation-name: spinner-grow;\n  // scss-docs-end spinner-grow-css-vars\n\n  background-color: currentcolor;\n  opacity: 0;\n}\n\n.spinner-grow-sm {\n  --#{$prefix}spinner-width: #{$spinner-width-sm};\n  --#{$prefix}spinner-height: #{$spinner-height-sm};\n}\n\n@if $enable-reduced-motion {\n  @media (prefers-reduced-motion: reduce) {\n    .spinner-border,\n    .spinner-grow {\n      --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed * 2};\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_tables.scss",
    "content": "//\n// Basic Bootstrap table\n//\n\n.table {\n  --#{$prefix}table-color: #{$table-color};\n  --#{$prefix}table-bg: #{$table-bg};\n  --#{$prefix}table-border-color: #{$table-border-color};\n  --#{$prefix}table-accent-bg: #{$table-accent-bg};\n  --#{$prefix}table-striped-color: #{$table-striped-color};\n  --#{$prefix}table-striped-bg: #{$table-striped-bg};\n  --#{$prefix}table-active-color: #{$table-active-color};\n  --#{$prefix}table-active-bg: #{$table-active-bg};\n  --#{$prefix}table-hover-color: #{$table-hover-color};\n  --#{$prefix}table-hover-bg: #{$table-hover-bg};\n\n  width: 100%;\n  margin-bottom: $spacer;\n  color: var(--#{$prefix}table-color);\n  vertical-align: $table-cell-vertical-align;\n  border-color: var(--#{$prefix}table-border-color);\n\n  // Target th & td\n  // We need the child combinator to prevent styles leaking to nested tables which doesn't have a `.table` class.\n  // We use the universal selectors here to simplify the selector (else we would need 6 different selectors).\n  // Another advantage is that this generates less code and makes the selector less specific making it easier to override.\n  // stylelint-disable-next-line selector-max-universal\n  > :not(caption) > * > * {\n    padding: $table-cell-padding-y $table-cell-padding-x;\n    background-color: var(--#{$prefix}table-bg);\n    border-bottom-width: $table-border-width;\n    box-shadow: inset 0 0 0 9999px var(--#{$prefix}table-accent-bg);\n  }\n\n  > tbody {\n    vertical-align: inherit;\n  }\n\n  > thead {\n    vertical-align: bottom;\n  }\n}\n\n.table-group-divider {\n  border-top: ($table-border-width * 2) solid $table-group-separator-color;\n}\n\n//\n// Change placement of captions with a class\n//\n\n.caption-top {\n  caption-side: top;\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n  // stylelint-disable-next-line selector-max-universal\n  > :not(caption) > * > * {\n    padding: $table-cell-padding-y-sm $table-cell-padding-x-sm;\n  }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n//\n// When borders are added on all sides of the cells, the corners can render odd when\n// these borders do not have the same color or if they are semi-transparent.\n// Therefor we add top and border bottoms to the `tr`s and left and right borders\n// to the `td`s or `th`s\n\n.table-bordered {\n  > :not(caption) > * {\n    border-width: $table-border-width 0;\n\n    // stylelint-disable-next-line selector-max-universal\n    > * {\n      border-width: 0 $table-border-width;\n    }\n  }\n}\n\n.table-borderless {\n  // stylelint-disable-next-line selector-max-universal\n  > :not(caption) > * > * {\n    border-bottom-width: 0;\n  }\n\n  > :not(:first-child) {\n    border-top-width: 0;\n  }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n// For rows\n.table-striped {\n  > tbody > tr:nth-of-type(#{$table-striped-order}) > * {\n    --#{$prefix}table-accent-bg: var(--#{$prefix}table-striped-bg);\n    color: var(--#{$prefix}table-striped-color);\n  }\n}\n\n// For columns\n.table-striped-columns {\n  > :not(caption) > tr > :nth-child(#{$table-striped-columns-order}) {\n    --#{$prefix}table-accent-bg: var(--#{$prefix}table-striped-bg);\n    color: var(--#{$prefix}table-striped-color);\n  }\n}\n\n// Active table\n//\n// The `.table-active` class can be added to highlight rows or cells\n\n.table-active {\n  --#{$prefix}table-accent-bg: var(--#{$prefix}table-active-bg);\n  color: var(--#{$prefix}table-active-color);\n}\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n  > tbody > tr:hover > * {\n    --#{$prefix}table-accent-bg: var(--#{$prefix}table-hover-bg);\n    color: var(--#{$prefix}table-hover-color);\n  }\n}\n\n\n// Table variants\n//\n// Table variants set the table cell backgrounds, border colors\n// and the colors of the striped, hovered & active tables\n\n@each $color, $value in $table-variants {\n  @include table-variant($color, $value);\n}\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n  @include media-breakpoint-down($breakpoint) {\n    .table-responsive#{$infix} {\n      overflow-x: auto;\n      -webkit-overflow-scrolling: touch;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_toasts.scss",
    "content": ".toast {\n  // scss-docs-start toast-css-vars\n  --#{$prefix}toast-zindex: #{$zindex-toast};\n  --#{$prefix}toast-padding-x: #{$toast-padding-x};\n  --#{$prefix}toast-padding-y: #{$toast-padding-y};\n  --#{$prefix}toast-spacing: #{$toast-spacing};\n  --#{$prefix}toast-max-width: #{$toast-max-width};\n  @include rfs($toast-font-size, --#{$prefix}toast-font-size);\n  --#{$prefix}toast-color: #{$toast-color};\n  --#{$prefix}toast-bg: #{$toast-background-color};\n  --#{$prefix}toast-border-width: #{$toast-border-width};\n  --#{$prefix}toast-border-color: #{$toast-border-color};\n  --#{$prefix}toast-border-radius: #{$toast-border-radius};\n  --#{$prefix}toast-box-shadow: #{$toast-box-shadow};\n  --#{$prefix}toast-header-color: #{$toast-header-color};\n  --#{$prefix}toast-header-bg: #{$toast-header-background-color};\n  --#{$prefix}toast-header-border-color: #{$toast-header-border-color};\n  // scss-docs-end toast-css-vars\n\n  width: var(--#{$prefix}toast-max-width);\n  max-width: 100%;\n  @include font-size(var(--#{$prefix}toast-font-size));\n  color: var(--#{$prefix}toast-color);\n  pointer-events: auto;\n  background-color: var(--#{$prefix}toast-bg);\n  background-clip: padding-box;\n  border: var(--#{$prefix}toast-border-width) solid var(--#{$prefix}toast-border-color);\n  box-shadow: var(--#{$prefix}toast-box-shadow);\n  @include border-radius(var(--#{$prefix}toast-border-radius));\n\n  &.showing {\n    opacity: 0;\n  }\n\n  &:not(.show) {\n    display: none;\n  }\n}\n\n.toast-container {\n  --#{$prefix}toast-zindex: #{$zindex-toast};\n\n  position: absolute;\n  z-index: var(--#{$prefix}toast-zindex);\n  width: max-content;\n  max-width: 100%;\n  pointer-events: none;\n\n  > :not(:last-child) {\n    margin-bottom: var(--#{$prefix}toast-spacing);\n  }\n}\n\n.toast-header {\n  display: flex;\n  align-items: center;\n  padding: var(--#{$prefix}toast-padding-y) var(--#{$prefix}toast-padding-x);\n  color: var(--#{$prefix}toast-header-color);\n  background-color: var(--#{$prefix}toast-header-bg);\n  background-clip: padding-box;\n  border-bottom: var(--#{$prefix}toast-border-width) solid var(--#{$prefix}toast-header-border-color);\n  @include border-top-radius(calc(var(--#{$prefix}toast-border-radius) - var(--#{$prefix}toast-border-width)));\n\n  .btn-close {\n    margin-right: calc(-.5 * var(--#{$prefix}toast-padding-x)); // stylelint-disable-line function-disallowed-list\n    margin-left: var(--#{$prefix}toast-padding-x);\n  }\n}\n\n.toast-body {\n  padding: var(--#{$prefix}toast-padding-x);\n  word-wrap: break-word;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_tooltip.scss",
    "content": "// Base class\n.tooltip {\n  // scss-docs-start tooltip-css-vars\n  --#{$prefix}tooltip-zindex: #{$zindex-tooltip};\n  --#{$prefix}tooltip-max-width: #{$tooltip-max-width};\n  --#{$prefix}tooltip-padding-x: #{$tooltip-padding-x};\n  --#{$prefix}tooltip-padding-y: #{$tooltip-padding-y};\n  --#{$prefix}tooltip-margin: #{$tooltip-margin};\n  @include rfs($tooltip-font-size, --#{$prefix}tooltip-font-size);\n  --#{$prefix}tooltip-color: #{$tooltip-color};\n  --#{$prefix}tooltip-bg: #{$tooltip-bg};\n  --#{$prefix}tooltip-border-radius: #{$tooltip-border-radius};\n  --#{$prefix}tooltip-opacity: #{$tooltip-opacity};\n  --#{$prefix}tooltip-arrow-width: #{$tooltip-arrow-width};\n  --#{$prefix}tooltip-arrow-height: #{$tooltip-arrow-height};\n  // scss-docs-end tooltip-css-vars\n\n  z-index: var(--#{$prefix}tooltip-zindex);\n  display: block;\n  padding: var(--#{$prefix}tooltip-arrow-height);\n  margin: var(--#{$prefix}tooltip-margin);\n  @include deprecate(\"`$tooltip-margin`\", \"v5\", \"v5.x\", true);\n  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  @include reset-text();\n  @include font-size(var(--#{$prefix}tooltip-font-size));\n  // Allow breaking very long words so they don't overflow the tooltip's bounds\n  word-wrap: break-word;\n  opacity: 0;\n\n  &.show { opacity: var(--#{$prefix}tooltip-opacity); }\n\n  .tooltip-arrow {\n    display: block;\n    width: var(--#{$prefix}tooltip-arrow-width);\n    height: var(--#{$prefix}tooltip-arrow-height);\n\n    &::before {\n      position: absolute;\n      content: \"\";\n      border-color: transparent;\n      border-style: solid;\n    }\n  }\n}\n\n.bs-tooltip-top .tooltip-arrow {\n  bottom: 0;\n\n  &::before {\n    top: -1px;\n    border-width: var(--#{$prefix}tooltip-arrow-height) calc(var(--#{$prefix}tooltip-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list\n    border-top-color: var(--#{$prefix}tooltip-bg);\n  }\n}\n\n/* rtl:begin:ignore */\n.bs-tooltip-end .tooltip-arrow {\n  left: 0;\n  width: var(--#{$prefix}tooltip-arrow-height);\n  height: var(--#{$prefix}tooltip-arrow-width);\n\n  &::before {\n    right: -1px;\n    border-width: calc(var(--#{$prefix}tooltip-arrow-width) * .5) var(--#{$prefix}tooltip-arrow-height) calc(var(--#{$prefix}tooltip-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list\n    border-right-color: var(--#{$prefix}tooltip-bg);\n  }\n}\n\n/* rtl:end:ignore */\n\n.bs-tooltip-bottom .tooltip-arrow {\n  top: 0;\n\n  &::before {\n    bottom: -1px;\n    border-width: 0 calc(var(--#{$prefix}tooltip-arrow-width) * .5) var(--#{$prefix}tooltip-arrow-height); // stylelint-disable-line function-disallowed-list\n    border-bottom-color: var(--#{$prefix}tooltip-bg);\n  }\n}\n\n/* rtl:begin:ignore */\n.bs-tooltip-start .tooltip-arrow {\n  right: 0;\n  width: var(--#{$prefix}tooltip-arrow-height);\n  height: var(--#{$prefix}tooltip-arrow-width);\n\n  &::before {\n    left: -1px;\n    border-width: calc(var(--#{$prefix}tooltip-arrow-width) * .5) 0 calc(var(--#{$prefix}tooltip-arrow-width) * .5) var(--#{$prefix}tooltip-arrow-height); // stylelint-disable-line function-disallowed-list\n    border-left-color: var(--#{$prefix}tooltip-bg);\n  }\n}\n\n/* rtl:end:ignore */\n\n.bs-tooltip-auto {\n  &[data-popper-placement^=\"top\"] {\n    @extend .bs-tooltip-top;\n  }\n  &[data-popper-placement^=\"right\"] {\n    @extend .bs-tooltip-end;\n  }\n  &[data-popper-placement^=\"bottom\"] {\n    @extend .bs-tooltip-bottom;\n  }\n  &[data-popper-placement^=\"left\"] {\n    @extend .bs-tooltip-start;\n  }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n  max-width: var(--#{$prefix}tooltip-max-width);\n  padding: var(--#{$prefix}tooltip-padding-y) var(--#{$prefix}tooltip-padding-x);\n  color: var(--#{$prefix}tooltip-color);\n  text-align: center;\n  background-color: var(--#{$prefix}tooltip-bg);\n  @include border-radius(var(--#{$prefix}tooltip-border-radius));\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_transitions.scss",
    "content": ".fade {\n  @include transition($transition-fade);\n\n  &:not(.show) {\n    opacity: 0;\n  }\n}\n\n// scss-docs-start collapse-classes\n.collapse {\n  &:not(.show) {\n    display: none;\n  }\n}\n\n.collapsing {\n  height: 0;\n  overflow: hidden;\n  @include transition($transition-collapse);\n\n  &.collapse-horizontal {\n    width: 0;\n    height: auto;\n    @include transition($transition-collapse-width);\n  }\n}\n// scss-docs-end collapse-classes\n"
  },
  {
    "path": "dist/lib/bootstrap5/_type.scss",
    "content": "//\n// Headings\n//\n.h1 {\n  @extend h1;\n}\n\n.h2 {\n  @extend h2;\n}\n\n.h3 {\n  @extend h3;\n}\n\n.h4 {\n  @extend h4;\n}\n\n.h5 {\n  @extend h5;\n}\n\n.h6 {\n  @extend h6;\n}\n\n\n.lead {\n  @include font-size($lead-font-size);\n  font-weight: $lead-font-weight;\n}\n\n// Type display classes\n@each $display, $font-size in $display-font-sizes {\n  .display-#{$display} {\n    @include font-size($font-size);\n    font-family: $display-font-family;\n    font-style: $display-font-style;\n    font-weight: $display-font-weight;\n    line-height: $display-line-height;\n  }\n}\n\n//\n// Emphasis\n//\n.small {\n  @extend small;\n}\n\n.mark {\n  @extend mark;\n}\n\n//\n// Lists\n//\n\n.list-unstyled {\n  @include list-unstyled();\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n  @include list-unstyled();\n}\n.list-inline-item {\n  display: inline-block;\n\n  &:not(:last-child) {\n    margin-right: $list-inline-padding;\n  }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n  @include font-size($initialism-font-size);\n  text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n  margin-bottom: $blockquote-margin-y;\n  @include font-size($blockquote-font-size);\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n.blockquote-footer {\n  margin-top: -$blockquote-margin-y;\n  margin-bottom: $blockquote-margin-y;\n  @include font-size($blockquote-footer-font-size);\n  color: $blockquote-footer-color;\n\n  &::before {\n    content: \"\\2014\\00A0\"; // em dash, nbsp\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/_utilities.scss",
    "content": "// Utilities\n\n$utilities: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$utilities: map-merge(\n  (\n    // scss-docs-start utils-vertical-align\n    \"align\": (\n      property: vertical-align,\n      class: align,\n      values: baseline top middle bottom text-bottom text-top\n    ),\n    // scss-docs-end utils-vertical-align\n    // scss-docs-start utils-float\n    \"float\": (\n      responsive: true,\n      property: float,\n      values: (\n        start: left,\n        end: right,\n        none: none,\n      )\n    ),\n    // scss-docs-end utils-float\n    // Opacity utilities\n    // scss-docs-start utils-opacity\n    \"opacity\": (\n      property: opacity,\n      values: (\n        0: 0,\n        25: .25,\n        50: .5,\n        75: .75,\n        100: 1,\n      )\n    ),\n    // scss-docs-end utils-opacity\n    // scss-docs-start utils-overflow\n    \"overflow\": (\n      property: overflow,\n      values: auto hidden visible scroll,\n    ),\n    // scss-docs-end utils-overflow\n    // scss-docs-start utils-display\n    \"display\": (\n      responsive: true,\n      print: true,\n      property: display,\n      class: d,\n      values: inline inline-block block grid table table-row table-cell flex inline-flex none\n    ),\n    // scss-docs-end utils-display\n    // scss-docs-start utils-shadow\n    \"shadow\": (\n      property: box-shadow,\n      class: shadow,\n      values: (\n        null: $box-shadow,\n        sm: $box-shadow-sm,\n        lg: $box-shadow-lg,\n        none: none,\n      )\n    ),\n    // scss-docs-end utils-shadow\n    // scss-docs-start utils-position\n    \"position\": (\n      property: position,\n      values: static relative absolute fixed sticky\n    ),\n    \"top\": (\n      property: top,\n      values: $position-values\n    ),\n    \"bottom\": (\n      property: bottom,\n      values: $position-values\n    ),\n    \"start\": (\n      property: left,\n      class: start,\n      values: $position-values\n    ),\n    \"end\": (\n      property: right,\n      class: end,\n      values: $position-values\n    ),\n    \"translate-middle\": (\n      property: transform,\n      class: translate-middle,\n      values: (\n        null: translate(-50%, -50%),\n        x: translateX(-50%),\n        y: translateY(-50%),\n      )\n    ),\n    // scss-docs-end utils-position\n    // scss-docs-start utils-borders\n    \"border\": (\n      property: border,\n      values: (\n        null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),\n        0: 0,\n      )\n    ),\n    \"border-top\": (\n      property: border-top,\n      values: (\n        null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),\n        0: 0,\n      )\n    ),\n    \"border-end\": (\n      property: border-right,\n      class: border-end,\n      values: (\n        null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),\n        0: 0,\n      )\n    ),\n    \"border-bottom\": (\n      property: border-bottom,\n      values: (\n        null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),\n        0: 0,\n      )\n    ),\n    \"border-start\": (\n      property: border-left,\n      class: border-start,\n      values: (\n        null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),\n        0: 0,\n      )\n    ),\n    \"border-color\": (\n      property: border-color,\n      class: border,\n      local-vars: (\n        \"border-opacity\": 1\n      ),\n      values: $utilities-border-colors\n    ),\n    \"border-width\": (\n      css-var: true,\n      css-variable-name: border-width,\n      class: border,\n      values: $border-widths\n    ),\n    \"border-opacity\": (\n      css-var: true,\n      class: border-opacity,\n      values: (\n        10: .1,\n        25: .25,\n        50: .5,\n        75: .75,\n        100: 1\n      )\n    ),\n    // scss-docs-end utils-borders\n    // Sizing utilities\n    // scss-docs-start utils-sizing\n    \"width\": (\n      property: width,\n      class: w,\n      values: (\n        25: 25%,\n        50: 50%,\n        75: 75%,\n        100: 100%,\n        auto: auto\n      )\n    ),\n    \"max-width\": (\n      property: max-width,\n      class: mw,\n      values: (100: 100%)\n    ),\n    \"viewport-width\": (\n      property: width,\n      class: vw,\n      values: (100: 100vw)\n    ),\n    \"min-viewport-width\": (\n      property: min-width,\n      class: min-vw,\n      values: (100: 100vw)\n    ),\n    \"height\": (\n      property: height,\n      class: h,\n      values: (\n        25: 25%,\n        50: 50%,\n        75: 75%,\n        100: 100%,\n        auto: auto\n      )\n    ),\n    \"max-height\": (\n      property: max-height,\n      class: mh,\n      values: (100: 100%)\n    ),\n    \"viewport-height\": (\n      property: height,\n      class: vh,\n      values: (100: 100vh)\n    ),\n    \"min-viewport-height\": (\n      property: min-height,\n      class: min-vh,\n      values: (100: 100vh)\n    ),\n    // scss-docs-end utils-sizing\n    // Flex utilities\n    // scss-docs-start utils-flex\n    \"flex\": (\n      responsive: true,\n      property: flex,\n      values: (fill: 1 1 auto)\n    ),\n    \"flex-direction\": (\n      responsive: true,\n      property: flex-direction,\n      class: flex,\n      values: row column row-reverse column-reverse\n    ),\n    \"flex-grow\": (\n      responsive: true,\n      property: flex-grow,\n      class: flex,\n      values: (\n        grow-0: 0,\n        grow-1: 1,\n      )\n    ),\n    \"flex-shrink\": (\n      responsive: true,\n      property: flex-shrink,\n      class: flex,\n      values: (\n        shrink-0: 0,\n        shrink-1: 1,\n      )\n    ),\n    \"flex-wrap\": (\n      responsive: true,\n      property: flex-wrap,\n      class: flex,\n      values: wrap nowrap wrap-reverse\n    ),\n    \"justify-content\": (\n      responsive: true,\n      property: justify-content,\n      values: (\n        start: flex-start,\n        end: flex-end,\n        center: center,\n        between: space-between,\n        around: space-around,\n        evenly: space-evenly,\n      )\n    ),\n    \"align-items\": (\n      responsive: true,\n      property: align-items,\n      values: (\n        start: flex-start,\n        end: flex-end,\n        center: center,\n        baseline: baseline,\n        stretch: stretch,\n      )\n    ),\n    \"align-content\": (\n      responsive: true,\n      property: align-content,\n      values: (\n        start: flex-start,\n        end: flex-end,\n        center: center,\n        between: space-between,\n        around: space-around,\n        stretch: stretch,\n      )\n    ),\n    \"align-self\": (\n      responsive: true,\n      property: align-self,\n      values: (\n        auto: auto,\n        start: flex-start,\n        end: flex-end,\n        center: center,\n        baseline: baseline,\n        stretch: stretch,\n      )\n    ),\n    \"order\": (\n      responsive: true,\n      property: order,\n      values: (\n        first: -1,\n        0: 0,\n        1: 1,\n        2: 2,\n        3: 3,\n        4: 4,\n        5: 5,\n        last: 6,\n      ),\n    ),\n    // scss-docs-end utils-flex\n    // Margin utilities\n    // scss-docs-start utils-spacing\n    \"margin\": (\n      responsive: true,\n      property: margin,\n      class: m,\n      values: map-merge($spacers, (auto: auto))\n    ),\n    \"margin-x\": (\n      responsive: true,\n      property: margin-right margin-left,\n      class: mx,\n      values: map-merge($spacers, (auto: auto))\n    ),\n    \"margin-y\": (\n      responsive: true,\n      property: margin-top margin-bottom,\n      class: my,\n      values: map-merge($spacers, (auto: auto))\n    ),\n    \"margin-top\": (\n      responsive: true,\n      property: margin-top,\n      class: mt,\n      values: map-merge($spacers, (auto: auto))\n    ),\n    \"margin-end\": (\n      responsive: true,\n      property: margin-right,\n      class: me,\n      values: map-merge($spacers, (auto: auto))\n    ),\n    \"margin-bottom\": (\n      responsive: true,\n      property: margin-bottom,\n      class: mb,\n      values: map-merge($spacers, (auto: auto))\n    ),\n    \"margin-start\": (\n      responsive: true,\n      property: margin-left,\n      class: ms,\n      values: map-merge($spacers, (auto: auto))\n    ),\n    // Negative margin utilities\n    \"negative-margin\": (\n      responsive: true,\n      property: margin,\n      class: m,\n      values: $negative-spacers\n    ),\n    \"negative-margin-x\": (\n      responsive: true,\n      property: margin-right margin-left,\n      class: mx,\n      values: $negative-spacers\n    ),\n    \"negative-margin-y\": (\n      responsive: true,\n      property: margin-top margin-bottom,\n      class: my,\n      values: $negative-spacers\n    ),\n    \"negative-margin-top\": (\n      responsive: true,\n      property: margin-top,\n      class: mt,\n      values: $negative-spacers\n    ),\n    \"negative-margin-end\": (\n      responsive: true,\n      property: margin-right,\n      class: me,\n      values: $negative-spacers\n    ),\n    \"negative-margin-bottom\": (\n      responsive: true,\n      property: margin-bottom,\n      class: mb,\n      values: $negative-spacers\n    ),\n    \"negative-margin-start\": (\n      responsive: true,\n      property: margin-left,\n      class: ms,\n      values: $negative-spacers\n    ),\n    // Padding utilities\n    \"padding\": (\n      responsive: true,\n      property: padding,\n      class: p,\n      values: $spacers\n    ),\n    \"padding-x\": (\n      responsive: true,\n      property: padding-right padding-left,\n      class: px,\n      values: $spacers\n    ),\n    \"padding-y\": (\n      responsive: true,\n      property: padding-top padding-bottom,\n      class: py,\n      values: $spacers\n    ),\n    \"padding-top\": (\n      responsive: true,\n      property: padding-top,\n      class: pt,\n      values: $spacers\n    ),\n    \"padding-end\": (\n      responsive: true,\n      property: padding-right,\n      class: pe,\n      values: $spacers\n    ),\n    \"padding-bottom\": (\n      responsive: true,\n      property: padding-bottom,\n      class: pb,\n      values: $spacers\n    ),\n    \"padding-start\": (\n      responsive: true,\n      property: padding-left,\n      class: ps,\n      values: $spacers\n    ),\n    // Gap utility\n    \"gap\": (\n      responsive: true,\n      property: gap,\n      class: gap,\n      values: $spacers\n    ),\n    // scss-docs-end utils-spacing\n    // Text\n    // scss-docs-start utils-text\n    \"font-family\": (\n      property: font-family,\n      class: font,\n      values: (monospace: var(--#{$prefix}font-monospace))\n    ),\n    \"font-size\": (\n      rfs: true,\n      property: font-size,\n      class: fs,\n      values: $font-sizes\n    ),\n    \"font-style\": (\n      property: font-style,\n      class: fst,\n      values: italic normal\n    ),\n    \"font-weight\": (\n      property: font-weight,\n      class: fw,\n      values: (\n        light: $font-weight-light,\n        lighter: $font-weight-lighter,\n        normal: $font-weight-normal,\n        bold: $font-weight-bold,\n        semibold: $font-weight-semibold,\n        bolder: $font-weight-bolder\n      )\n    ),\n    \"line-height\": (\n      property: line-height,\n      class: lh,\n      values: (\n        1: 1,\n        sm: $line-height-sm,\n        base: $line-height-base,\n        lg: $line-height-lg,\n      )\n    ),\n    \"text-align\": (\n      responsive: true,\n      property: text-align,\n      class: text,\n      values: (\n        start: left,\n        end: right,\n        center: center,\n      )\n    ),\n    \"text-decoration\": (\n      property: text-decoration,\n      values: none underline line-through\n    ),\n    \"text-transform\": (\n      property: text-transform,\n      class: text,\n      values: lowercase uppercase capitalize\n    ),\n    \"white-space\": (\n      property: white-space,\n      class: text,\n      values: (\n        wrap: normal,\n        nowrap: nowrap,\n      )\n    ),\n    \"word-wrap\": (\n      property: word-wrap word-break,\n      class: text,\n      values: (break: break-word),\n      rtl: false\n    ),\n    // scss-docs-end utils-text\n    // scss-docs-start utils-color\n    \"color\": (\n      property: color,\n      class: text,\n      local-vars: (\n        \"text-opacity\": 1\n      ),\n      values: map-merge(\n        $utilities-text-colors,\n        (\n          \"muted\": $text-muted,\n          \"black-50\": rgba($black, .5), // deprecated\n          \"white-50\": rgba($white, .5), // deprecated\n          \"reset\": inherit,\n        )\n      )\n    ),\n    \"text-opacity\": (\n      css-var: true,\n      class: text-opacity,\n      values: (\n        25: .25,\n        50: .5,\n        75: .75,\n        100: 1\n      )\n    ),\n    // scss-docs-end utils-color\n    // scss-docs-start utils-bg-color\n    \"background-color\": (\n      property: background-color,\n      class: bg,\n      local-vars: (\n        \"bg-opacity\": 1\n      ),\n      values: map-merge(\n        $utilities-bg-colors,\n        (\n          \"transparent\": transparent\n        )\n      )\n    ),\n    \"bg-opacity\": (\n      css-var: true,\n      class: bg-opacity,\n      values: (\n        10: .1,\n        25: .25,\n        50: .5,\n        75: .75,\n        100: 1\n      )\n    ),\n    // scss-docs-end utils-bg-color\n    \"gradient\": (\n      property: background-image,\n      class: bg,\n      values: (gradient: var(--#{$prefix}gradient))\n    ),\n    // scss-docs-start utils-interaction\n    \"user-select\": (\n      property: user-select,\n      values: all auto none\n    ),\n    \"pointer-events\": (\n      property: pointer-events,\n      class: pe,\n      values: none auto,\n    ),\n    // scss-docs-end utils-interaction\n    // scss-docs-start utils-border-radius\n    \"rounded\": (\n      property: border-radius,\n      class: rounded,\n      values: (\n        null: var(--#{$prefix}border-radius),\n        0: 0,\n        1: var(--#{$prefix}border-radius-sm),\n        2: var(--#{$prefix}border-radius),\n        3: var(--#{$prefix}border-radius-lg),\n        4: var(--#{$prefix}border-radius-xl),\n        5: var(--#{$prefix}border-radius-2xl),\n        circle: 50%,\n        pill: var(--#{$prefix}border-radius-pill)\n      )\n    ),\n    \"rounded-top\": (\n      property: border-top-left-radius border-top-right-radius,\n      class: rounded-top,\n      values: (null: var(--#{$prefix}border-radius))\n    ),\n    \"rounded-end\": (\n      property: border-top-right-radius border-bottom-right-radius,\n      class: rounded-end,\n      values: (null: var(--#{$prefix}border-radius))\n    ),\n    \"rounded-bottom\": (\n      property: border-bottom-right-radius border-bottom-left-radius,\n      class: rounded-bottom,\n      values: (null: var(--#{$prefix}border-radius))\n    ),\n    \"rounded-start\": (\n      property: border-bottom-left-radius border-top-left-radius,\n      class: rounded-start,\n      values: (null: var(--#{$prefix}border-radius))\n    ),\n    // scss-docs-end utils-border-radius\n    // scss-docs-start utils-visibility\n    \"visibility\": (\n      property: visibility,\n      class: null,\n      values: (\n        visible: visible,\n        invisible: hidden,\n      )\n    )\n    // scss-docs-end utils-visibility\n  ),\n  $utilities\n);\n"
  },
  {
    "path": "dist/lib/bootstrap5/_variables.scss",
    "content": "// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n// scss-docs-start gray-color-variables\n$white:    #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black:    #000 !default;\n// scss-docs-end gray-color-variables\n\n// fusv-disable\n// scss-docs-start gray-colors-map\n$grays: (\n  \"100\": $gray-100,\n  \"200\": $gray-200,\n  \"300\": $gray-300,\n  \"400\": $gray-400,\n  \"500\": $gray-500,\n  \"600\": $gray-600,\n  \"700\": $gray-700,\n  \"800\": $gray-800,\n  \"900\": $gray-900\n) !default;\n// scss-docs-end gray-colors-map\n// fusv-enable\n\n// scss-docs-start color-variables\n$blue:    #0d6efd !default;\n$indigo:  #6610f2 !default;\n$purple:  #6f42c1 !default;\n$pink:    #d63384 !default;\n$red:     #dc3545 !default;\n$orange:  #fd7e14 !default;\n$yellow:  #ffc107 !default;\n$green:   #198754 !default;\n$teal:    #20c997 !default;\n$cyan:    #0dcaf0 !default;\n// scss-docs-end color-variables\n\n// scss-docs-start colors-map\n$colors: (\n  \"blue\":       $blue,\n  \"indigo\":     $indigo,\n  \"purple\":     $purple,\n  \"pink\":       $pink,\n  \"red\":        $red,\n  \"orange\":     $orange,\n  \"yellow\":     $yellow,\n  \"green\":      $green,\n  \"teal\":       $teal,\n  \"cyan\":       $cyan,\n  \"black\":      $black,\n  \"white\":      $white,\n  \"gray\":       $gray-600,\n  \"gray-dark\":  $gray-800\n) !default;\n// scss-docs-end colors-map\n\n// The contrast ratio to reach against white, to determine if color changes from \"light\" to \"dark\". Acceptable values for WCAG 2.0 are 3, 4.5 and 7.\n// See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast\n$min-contrast-ratio:   4.5 !default;\n\n// Customize the light and dark text colors for use in our color contrast function.\n$color-contrast-dark:      $black !default;\n$color-contrast-light:     $white !default;\n\n// fusv-disable\n$blue-100: tint-color($blue, 80%) !default;\n$blue-200: tint-color($blue, 60%) !default;\n$blue-300: tint-color($blue, 40%) !default;\n$blue-400: tint-color($blue, 20%) !default;\n$blue-500: $blue !default;\n$blue-600: shade-color($blue, 20%) !default;\n$blue-700: shade-color($blue, 40%) !default;\n$blue-800: shade-color($blue, 60%) !default;\n$blue-900: shade-color($blue, 80%) !default;\n\n$indigo-100: tint-color($indigo, 80%) !default;\n$indigo-200: tint-color($indigo, 60%) !default;\n$indigo-300: tint-color($indigo, 40%) !default;\n$indigo-400: tint-color($indigo, 20%) !default;\n$indigo-500: $indigo !default;\n$indigo-600: shade-color($indigo, 20%) !default;\n$indigo-700: shade-color($indigo, 40%) !default;\n$indigo-800: shade-color($indigo, 60%) !default;\n$indigo-900: shade-color($indigo, 80%) !default;\n\n$purple-100: tint-color($purple, 80%) !default;\n$purple-200: tint-color($purple, 60%) !default;\n$purple-300: tint-color($purple, 40%) !default;\n$purple-400: tint-color($purple, 20%) !default;\n$purple-500: $purple !default;\n$purple-600: shade-color($purple, 20%) !default;\n$purple-700: shade-color($purple, 40%) !default;\n$purple-800: shade-color($purple, 60%) !default;\n$purple-900: shade-color($purple, 80%) !default;\n\n$pink-100: tint-color($pink, 80%) !default;\n$pink-200: tint-color($pink, 60%) !default;\n$pink-300: tint-color($pink, 40%) !default;\n$pink-400: tint-color($pink, 20%) !default;\n$pink-500: $pink !default;\n$pink-600: shade-color($pink, 20%) !default;\n$pink-700: shade-color($pink, 40%) !default;\n$pink-800: shade-color($pink, 60%) !default;\n$pink-900: shade-color($pink, 80%) !default;\n\n$red-100: tint-color($red, 80%) !default;\n$red-200: tint-color($red, 60%) !default;\n$red-300: tint-color($red, 40%) !default;\n$red-400: tint-color($red, 20%) !default;\n$red-500: $red !default;\n$red-600: shade-color($red, 20%) !default;\n$red-700: shade-color($red, 40%) !default;\n$red-800: shade-color($red, 60%) !default;\n$red-900: shade-color($red, 80%) !default;\n\n$orange-100: tint-color($orange, 80%) !default;\n$orange-200: tint-color($orange, 60%) !default;\n$orange-300: tint-color($orange, 40%) !default;\n$orange-400: tint-color($orange, 20%) !default;\n$orange-500: $orange !default;\n$orange-600: shade-color($orange, 20%) !default;\n$orange-700: shade-color($orange, 40%) !default;\n$orange-800: shade-color($orange, 60%) !default;\n$orange-900: shade-color($orange, 80%) !default;\n\n$yellow-100: tint-color($yellow, 80%) !default;\n$yellow-200: tint-color($yellow, 60%) !default;\n$yellow-300: tint-color($yellow, 40%) !default;\n$yellow-400: tint-color($yellow, 20%) !default;\n$yellow-500: $yellow !default;\n$yellow-600: shade-color($yellow, 20%) !default;\n$yellow-700: shade-color($yellow, 40%) !default;\n$yellow-800: shade-color($yellow, 60%) !default;\n$yellow-900: shade-color($yellow, 80%) !default;\n\n$green-100: tint-color($green, 80%) !default;\n$green-200: tint-color($green, 60%) !default;\n$green-300: tint-color($green, 40%) !default;\n$green-400: tint-color($green, 20%) !default;\n$green-500: $green !default;\n$green-600: shade-color($green, 20%) !default;\n$green-700: shade-color($green, 40%) !default;\n$green-800: shade-color($green, 60%) !default;\n$green-900: shade-color($green, 80%) !default;\n\n$teal-100: tint-color($teal, 80%) !default;\n$teal-200: tint-color($teal, 60%) !default;\n$teal-300: tint-color($teal, 40%) !default;\n$teal-400: tint-color($teal, 20%) !default;\n$teal-500: $teal !default;\n$teal-600: shade-color($teal, 20%) !default;\n$teal-700: shade-color($teal, 40%) !default;\n$teal-800: shade-color($teal, 60%) !default;\n$teal-900: shade-color($teal, 80%) !default;\n\n$cyan-100: tint-color($cyan, 80%) !default;\n$cyan-200: tint-color($cyan, 60%) !default;\n$cyan-300: tint-color($cyan, 40%) !default;\n$cyan-400: tint-color($cyan, 20%) !default;\n$cyan-500: $cyan !default;\n$cyan-600: shade-color($cyan, 20%) !default;\n$cyan-700: shade-color($cyan, 40%) !default;\n$cyan-800: shade-color($cyan, 60%) !default;\n$cyan-900: shade-color($cyan, 80%) !default;\n\n$blues: (\n  \"blue-100\": $blue-100,\n  \"blue-200\": $blue-200,\n  \"blue-300\": $blue-300,\n  \"blue-400\": $blue-400,\n  \"blue-500\": $blue-500,\n  \"blue-600\": $blue-600,\n  \"blue-700\": $blue-700,\n  \"blue-800\": $blue-800,\n  \"blue-900\": $blue-900\n) !default;\n\n$indigos: (\n  \"indigo-100\": $indigo-100,\n  \"indigo-200\": $indigo-200,\n  \"indigo-300\": $indigo-300,\n  \"indigo-400\": $indigo-400,\n  \"indigo-500\": $indigo-500,\n  \"indigo-600\": $indigo-600,\n  \"indigo-700\": $indigo-700,\n  \"indigo-800\": $indigo-800,\n  \"indigo-900\": $indigo-900\n) !default;\n\n$purples: (\n  \"purple-100\": $purple-100,\n  \"purple-200\": $purple-200,\n  \"purple-300\": $purple-300,\n  \"purple-400\": $purple-400,\n  \"purple-500\": $purple-500,\n  \"purple-600\": $purple-600,\n  \"purple-700\": $purple-700,\n  \"purple-800\": $purple-800,\n  \"purple-900\": $purple-900\n) !default;\n\n$pinks: (\n  \"pink-100\": $pink-100,\n  \"pink-200\": $pink-200,\n  \"pink-300\": $pink-300,\n  \"pink-400\": $pink-400,\n  \"pink-500\": $pink-500,\n  \"pink-600\": $pink-600,\n  \"pink-700\": $pink-700,\n  \"pink-800\": $pink-800,\n  \"pink-900\": $pink-900\n) !default;\n\n$reds: (\n  \"red-100\": $red-100,\n  \"red-200\": $red-200,\n  \"red-300\": $red-300,\n  \"red-400\": $red-400,\n  \"red-500\": $red-500,\n  \"red-600\": $red-600,\n  \"red-700\": $red-700,\n  \"red-800\": $red-800,\n  \"red-900\": $red-900\n) !default;\n\n$oranges: (\n  \"orange-100\": $orange-100,\n  \"orange-200\": $orange-200,\n  \"orange-300\": $orange-300,\n  \"orange-400\": $orange-400,\n  \"orange-500\": $orange-500,\n  \"orange-600\": $orange-600,\n  \"orange-700\": $orange-700,\n  \"orange-800\": $orange-800,\n  \"orange-900\": $orange-900\n) !default;\n\n$yellows: (\n  \"yellow-100\": $yellow-100,\n  \"yellow-200\": $yellow-200,\n  \"yellow-300\": $yellow-300,\n  \"yellow-400\": $yellow-400,\n  \"yellow-500\": $yellow-500,\n  \"yellow-600\": $yellow-600,\n  \"yellow-700\": $yellow-700,\n  \"yellow-800\": $yellow-800,\n  \"yellow-900\": $yellow-900\n) !default;\n\n$greens: (\n  \"green-100\": $green-100,\n  \"green-200\": $green-200,\n  \"green-300\": $green-300,\n  \"green-400\": $green-400,\n  \"green-500\": $green-500,\n  \"green-600\": $green-600,\n  \"green-700\": $green-700,\n  \"green-800\": $green-800,\n  \"green-900\": $green-900\n) !default;\n\n$teals: (\n  \"teal-100\": $teal-100,\n  \"teal-200\": $teal-200,\n  \"teal-300\": $teal-300,\n  \"teal-400\": $teal-400,\n  \"teal-500\": $teal-500,\n  \"teal-600\": $teal-600,\n  \"teal-700\": $teal-700,\n  \"teal-800\": $teal-800,\n  \"teal-900\": $teal-900\n) !default;\n\n$cyans: (\n  \"cyan-100\": $cyan-100,\n  \"cyan-200\": $cyan-200,\n  \"cyan-300\": $cyan-300,\n  \"cyan-400\": $cyan-400,\n  \"cyan-500\": $cyan-500,\n  \"cyan-600\": $cyan-600,\n  \"cyan-700\": $cyan-700,\n  \"cyan-800\": $cyan-800,\n  \"cyan-900\": $cyan-900\n) !default;\n// fusv-enable\n\n// scss-docs-start theme-color-variables\n$primary:       $blue !default;\n$secondary:     $gray-600 !default;\n$success:       $green !default;\n$info:          $cyan !default;\n$warning:       $yellow !default;\n$danger:        $red !default;\n$light:         $gray-100 !default;\n$dark:          $gray-900 !default;\n// scss-docs-end theme-color-variables\n\n// scss-docs-start theme-colors-map\n$theme-colors: (\n  \"primary\":    $primary,\n  \"secondary\":  $secondary,\n  \"success\":    $success,\n  \"info\":       $info,\n  \"warning\":    $warning,\n  \"danger\":     $danger,\n  \"light\":      $light,\n  \"dark\":       $dark\n) !default;\n// scss-docs-end theme-colors-map\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n  (\"<\", \"%3c\"),\n  (\">\", \"%3e\"),\n  (\"#\", \"%23\"),\n  (\"(\", \"%28\"),\n  (\")\", \"%29\"),\n) !default;\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret:                true !default;\n$enable-rounded:              true !default;\n$enable-shadows:              false !default;\n$enable-gradients:            false !default;\n$enable-transitions:          true !default;\n$enable-reduced-motion:       true !default;\n$enable-smooth-scroll:        true !default;\n$enable-grid-classes:         true !default;\n$enable-container-classes:    true !default;\n$enable-cssgrid:              false !default;\n$enable-button-pointers:      true !default;\n$enable-rfs:                  true !default;\n$enable-validation-icons:     true !default;\n$enable-negative-margins:     false !default;\n$enable-deprecation-messages: true !default;\n$enable-important-utilities:  true !default;\n\n// Prefix for :root CSS variables\n\n$variable-prefix:             bs- !default; // Deprecated in v5.2.0 for the shorter `$prefix`\n$prefix:                      $variable-prefix !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0)) !default;\n// scss-docs-end variable-gradient\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n  0: 0,\n  1: $spacer * .25,\n  2: $spacer * .5,\n  3: $spacer,\n  4: $spacer * 1.5,\n  5: $spacer * 3,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n  0: 0,\n  50: 50%,\n  100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg:                   $white !default;\n$body-color:                $gray-900 !default;\n$body-text-align:           null !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color:                              $primary !default;\n$link-decoration:                         underline !default;\n$link-shade-percentage:                   20% !default;\n$link-hover-color:                        shift-color($link-color, $link-shade-percentage) !default;\n$link-hover-decoration:                   null !default;\n\n$stretched-link-pseudo-element:           after !default;\n$stretched-link-z-index:                  1 !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom:   1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start grid-breakpoints\n$grid-breakpoints: (\n  xs: 0,\n  sm: 576px,\n  md: 768px,\n  lg: 992px,\n  xl: 1200px,\n  xxl: 1400px\n) !default;\n// scss-docs-end grid-breakpoints\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n  sm: 540px,\n  md: 720px,\n  lg: 960px,\n  xl: 1140px,\n  xxl: 1320px\n) !default;\n// scss-docs-end container-max-widths\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns:                12 !default;\n$grid-gutter-width:           1.5rem !default;\n$grid-row-columns:            6 !default;\n\n// Container padding\n\n$container-padding-x: $grid-gutter-width !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width:                1px !default;\n$border-widths: (\n  1: 1px,\n  2: 2px,\n  3: 3px,\n  4: 4px,\n  5: 5px\n) !default;\n\n$border-style:                solid !default;\n$border-color:                $gray-300 !default;\n$border-color-translucent:    rgba($black, .175) !default;\n// scss-docs-end border-variables\n\n// scss-docs-start border-radius-variables\n$border-radius:               .375rem !default;\n$border-radius-sm:            .25rem !default;\n$border-radius-lg:            .5rem !default;\n$border-radius-xl:            1rem !default;\n$border-radius-2xl:           2rem !default;\n$border-radius-pill:          50rem !default;\n// scss-docs-end border-radius-variables\n\n// scss-docs-start box-shadow-variables\n$box-shadow:                  0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-sm:               0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow-lg:               0 1rem 3rem rgba($black, .175) !default;\n$box-shadow-inset:            inset 0 1px 2px rgba($black, .075) !default;\n// scss-docs-end box-shadow-variables\n\n$component-active-color:      $white !default;\n$component-active-bg:         $primary !default;\n\n// scss-docs-start caret-variables\n$caret-width:                 .3em !default;\n$caret-vertical-align:        $caret-width * .85 !default;\n$caret-spacing:               $caret-width * .85 !default;\n// scss-docs-end caret-variables\n\n$transition-base:             all .2s ease-in-out !default;\n$transition-fade:             opacity .15s linear !default;\n// scss-docs-start collapse-transition\n$transition-collapse:         height .35s ease !default;\n$transition-collapse-width:   width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// stylelint-disable function-disallowed-list\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n  \"1x1\": 100%,\n  \"4x3\": calc(3 / 4 * 100%),\n  \"16x9\": calc(9 / 16 * 100%),\n  \"21x9\": calc(9 / 21 * 100%)\n) !default;\n// scss-docs-end aspect-ratios\n// stylelint-enable function-disallowed-list\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n// stylelint-disable value-keyword-case\n$font-family-sans-serif:      system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace:       SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n// stylelint-enable value-keyword-case\n$font-family-base:            var(--#{$prefix}font-sans-serif) !default;\n$font-family-code:            var(--#{$prefix}font-monospace) !default;\n\n// $font-size-root affects the value of `rem`, which is used for as well font sizes, paddings, and margins\n// $font-size-base affects the font size of the body text\n$font-size-root:              null !default;\n$font-size-base:              1rem !default; // Assumes the browser default, typically `16px`\n$font-size-sm:                $font-size-base * .875 !default;\n$font-size-lg:                $font-size-base * 1.25 !default;\n\n$font-weight-lighter:         lighter !default;\n$font-weight-light:           300 !default;\n$font-weight-normal:          400 !default;\n$font-weight-semibold:        600 !default;\n$font-weight-bold:            700 !default;\n$font-weight-bolder:          bolder !default;\n\n$font-weight-base:            $font-weight-normal !default;\n\n$line-height-base:            1.5 !default;\n$line-height-sm:              1.25 !default;\n$line-height-lg:              2 !default;\n\n$h1-font-size:                $font-size-base * 2.5 !default;\n$h2-font-size:                $font-size-base * 2 !default;\n$h3-font-size:                $font-size-base * 1.75 !default;\n$h4-font-size:                $font-size-base * 1.5 !default;\n$h5-font-size:                $font-size-base * 1.25 !default;\n$h6-font-size:                $font-size-base !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: (\n  1: $h1-font-size,\n  2: $h2-font-size,\n  3: $h3-font-size,\n  4: $h4-font-size,\n  5: $h5-font-size,\n  6: $h6-font-size\n) !default;\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom:      $spacer * .5 !default;\n$headings-font-family:        null !default;\n$headings-font-style:         null !default;\n$headings-font-weight:        500 !default;\n$headings-line-height:        1.2 !default;\n$headings-color:              null !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start display-headings\n$display-font-sizes: (\n  1: 5rem,\n  2: 4.5rem,\n  3: 4rem,\n  4: 3.5rem,\n  5: 3rem,\n  6: 2.5rem\n) !default;\n\n$display-font-family: null !default;\n$display-font-style:  null !default;\n$display-font-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n// scss-docs-end display-headings\n\n// scss-docs-start type-variables\n$lead-font-size:              $font-size-base * 1.25 !default;\n$lead-font-weight:            300 !default;\n\n$small-font-size:             .875em !default;\n\n$sub-sup-font-size:           .75em !default;\n\n$text-muted:                  $gray-600 !default;\n\n$initialism-font-size:        $small-font-size !default;\n\n$blockquote-margin-y:         $spacer !default;\n$blockquote-font-size:        $font-size-base * 1.25 !default;\n$blockquote-footer-color:     $gray-600 !default;\n$blockquote-footer-font-size: $small-font-size !default;\n\n$hr-margin-y:                 $spacer !default;\n$hr-color:                    inherit !default;\n\n// fusv-disable\n$hr-bg-color:                 null !default; // Deprecated in v5.2.0\n$hr-height:                   null !default; // Deprecated in v5.2.0\n// fusv-enable\n\n$hr-border-color:             null !default; // Allows for inherited colors\n$hr-border-width:             $border-width !default;\n$hr-opacity:                  .25 !default;\n\n$legend-margin-bottom:        .5rem !default;\n$legend-font-size:            1.5rem !default;\n$legend-font-weight:          null !default;\n\n$dt-font-weight:              $font-weight-bold !default;\n\n$list-inline-padding:         .5rem !default;\n\n$mark-padding:                .1875em !default;\n$mark-bg:                     $yellow-100 !default;\n// scss-docs-end type-variables\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n// scss-docs-start table-variables\n$table-cell-padding-y:        .5rem !default;\n$table-cell-padding-x:        .5rem !default;\n$table-cell-padding-y-sm:     .25rem !default;\n$table-cell-padding-x-sm:     .25rem !default;\n\n$table-cell-vertical-align:   top !default;\n\n$table-color:                 var(--#{$prefix}body-color) !default;\n$table-bg:                    transparent !default;\n$table-accent-bg:             transparent !default;\n\n$table-th-font-weight:        null !default;\n\n$table-striped-color:         $table-color !default;\n$table-striped-bg-factor:     .05 !default;\n$table-striped-bg:            rgba($black, $table-striped-bg-factor) !default;\n\n$table-active-color:          $table-color !default;\n$table-active-bg-factor:      .1 !default;\n$table-active-bg:             rgba($black, $table-active-bg-factor) !default;\n\n$table-hover-color:           $table-color !default;\n$table-hover-bg-factor:       .075 !default;\n$table-hover-bg:              rgba($black, $table-hover-bg-factor) !default;\n\n$table-border-factor:         .1 !default;\n$table-border-width:          $border-width !default;\n$table-border-color:          var(--#{$prefix}border-color) !default;\n\n$table-striped-order:         odd !default;\n$table-striped-columns-order: even !default;\n\n$table-group-separator-color: currentcolor !default;\n\n$table-caption-color:         $text-muted !default;\n\n$table-bg-scale:              -80% !default;\n// scss-docs-end table-variables\n\n// scss-docs-start table-loop\n$table-variants: (\n  \"primary\":    shift-color($primary, $table-bg-scale),\n  \"secondary\":  shift-color($secondary, $table-bg-scale),\n  \"success\":    shift-color($success, $table-bg-scale),\n  \"info\":       shift-color($info, $table-bg-scale),\n  \"warning\":    shift-color($warning, $table-bg-scale),\n  \"danger\":     shift-color($danger, $table-bg-scale),\n  \"light\":      $light,\n  \"dark\":       $dark,\n) !default;\n// scss-docs-end table-loop\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n// scss-docs-start input-btn-variables\n$input-btn-padding-y:         .375rem !default;\n$input-btn-padding-x:         .75rem !default;\n$input-btn-font-family:       null !default;\n$input-btn-font-size:         $font-size-base !default;\n$input-btn-line-height:       $line-height-base !default;\n\n$input-btn-focus-width:         .25rem !default;\n$input-btn-focus-color-opacity: .25 !default;\n$input-btn-focus-color:         rgba($component-active-bg, $input-btn-focus-color-opacity) !default;\n$input-btn-focus-blur:          0 !default;\n$input-btn-focus-box-shadow:    0 0 $input-btn-focus-blur $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm:      .25rem !default;\n$input-btn-padding-x-sm:      .5rem !default;\n$input-btn-font-size-sm:      $font-size-sm !default;\n\n$input-btn-padding-y-lg:      .5rem !default;\n$input-btn-padding-x-lg:      1rem !default;\n$input-btn-font-size-lg:      $font-size-lg !default;\n\n$input-btn-border-width:      $border-width !default;\n// scss-docs-end input-btn-variables\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n// scss-docs-start btn-variables\n$btn-padding-y:               $input-btn-padding-y !default;\n$btn-padding-x:               $input-btn-padding-x !default;\n$btn-font-family:             $input-btn-font-family !default;\n$btn-font-size:               $input-btn-font-size !default;\n$btn-line-height:             $input-btn-line-height !default;\n$btn-white-space:             null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm:            $input-btn-padding-y-sm !default;\n$btn-padding-x-sm:            $input-btn-padding-x-sm !default;\n$btn-font-size-sm:            $input-btn-font-size-sm !default;\n\n$btn-padding-y-lg:            $input-btn-padding-y-lg !default;\n$btn-padding-x-lg:            $input-btn-padding-x-lg !default;\n$btn-font-size-lg:            $input-btn-font-size-lg !default;\n\n$btn-border-width:            $input-btn-border-width !default;\n\n$btn-font-weight:             $font-weight-normal !default;\n$btn-box-shadow:              inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width:             $input-btn-focus-width !default;\n$btn-focus-box-shadow:        $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity:        .65 !default;\n$btn-active-box-shadow:       inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-color:              var(--#{$prefix}link-color) !default;\n$btn-link-hover-color:        var(--#{$prefix}link-hover-color) !default;\n$btn-link-disabled-color:     $gray-600 !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius:           $border-radius !default;\n$btn-border-radius-sm:        $border-radius-sm !default;\n$btn-border-radius-lg:        $border-radius-lg !default;\n\n$btn-transition:              color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$btn-hover-bg-shade-amount:       15% !default;\n$btn-hover-bg-tint-amount:        15% !default;\n$btn-hover-border-shade-amount:   20% !default;\n$btn-hover-border-tint-amount:    10% !default;\n$btn-active-bg-shade-amount:      20% !default;\n$btn-active-bg-tint-amount:       20% !default;\n$btn-active-border-shade-amount:  25% !default;\n$btn-active-border-tint-amount:   10% !default;\n// scss-docs-end btn-variables\n\n\n// Forms\n\n// scss-docs-start form-text-variables\n$form-text-margin-top:                  .25rem !default;\n$form-text-font-size:                   $small-font-size !default;\n$form-text-font-style:                  null !default;\n$form-text-font-weight:                 null !default;\n$form-text-color:                       $text-muted !default;\n// scss-docs-end form-text-variables\n\n// scss-docs-start form-label-variables\n$form-label-margin-bottom:              .5rem !default;\n$form-label-font-size:                  null !default;\n$form-label-font-style:                 null !default;\n$form-label-font-weight:                null !default;\n$form-label-color:                      null !default;\n// scss-docs-end form-label-variables\n\n// scss-docs-start form-input-variables\n$input-padding-y:                       $input-btn-padding-y !default;\n$input-padding-x:                       $input-btn-padding-x !default;\n$input-font-family:                     $input-btn-font-family !default;\n$input-font-size:                       $input-btn-font-size !default;\n$input-font-weight:                     $font-weight-base !default;\n$input-line-height:                     $input-btn-line-height !default;\n\n$input-padding-y-sm:                    $input-btn-padding-y-sm !default;\n$input-padding-x-sm:                    $input-btn-padding-x-sm !default;\n$input-font-size-sm:                    $input-btn-font-size-sm !default;\n\n$input-padding-y-lg:                    $input-btn-padding-y-lg !default;\n$input-padding-x-lg:                    $input-btn-padding-x-lg !default;\n$input-font-size-lg:                    $input-btn-font-size-lg !default;\n\n$input-bg:                              $body-bg !default;\n$input-disabled-color:                  null !default;\n$input-disabled-bg:                     $gray-200 !default;\n$input-disabled-border-color:           null !default;\n\n$input-color:                           $body-color !default;\n$input-border-color:                    $gray-400 !default;\n$input-border-width:                    $input-btn-border-width !default;\n$input-box-shadow:                      $box-shadow-inset !default;\n\n$input-border-radius:                   $border-radius !default;\n$input-border-radius-sm:                $border-radius-sm !default;\n$input-border-radius-lg:                $border-radius-lg !default;\n\n$input-focus-bg:                        $input-bg !default;\n$input-focus-border-color:              tint-color($component-active-bg, 50%) !default;\n$input-focus-color:                     $input-color !default;\n$input-focus-width:                     $input-btn-focus-width !default;\n$input-focus-box-shadow:                $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color:               $gray-600 !default;\n$input-plaintext-color:                 $body-color !default;\n\n$input-height-border:                   $input-border-width * 2 !default;\n\n$input-height-inner:                    add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half:               add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter:            add($input-line-height * .25em, $input-padding-y * .5) !default;\n\n$input-height:                          add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm:                       add($input-line-height * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg:                       add($input-line-height * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition:                      border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-color-width:                      3rem !default;\n// scss-docs-end form-input-variables\n\n// scss-docs-start form-check-variables\n$form-check-input-width:                  1em !default;\n$form-check-min-height:                   $font-size-base * $line-height-base !default;\n$form-check-padding-start:                $form-check-input-width + .5em !default;\n$form-check-margin-bottom:                .125rem !default;\n$form-check-label-color:                  null !default;\n$form-check-label-cursor:                 null !default;\n$form-check-transition:                   null !default;\n\n$form-check-input-active-filter:          brightness(90%) !default;\n\n$form-check-input-bg:                     $input-bg !default;\n$form-check-input-border:                 1px solid rgba($black, .25) !default;\n$form-check-input-border-radius:          .25em !default;\n$form-check-radio-border-radius:          50% !default;\n$form-check-input-focus-border:           $input-focus-border-color !default;\n$form-check-input-focus-box-shadow:       $input-btn-focus-box-shadow !default;\n\n$form-check-input-checked-color:          $component-active-color !default;\n$form-check-input-checked-bg-color:       $component-active-bg !default;\n$form-check-input-checked-border-color:   $form-check-input-checked-bg-color !default;\n$form-check-input-checked-bg-image:       url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$form-check-input-checked-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/></svg>\") !default;\n$form-check-radio-checked-bg-image:       url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='2' fill='#{$form-check-input-checked-color}'/></svg>\") !default;\n\n$form-check-input-indeterminate-color:          $component-active-color !default;\n$form-check-input-indeterminate-bg-color:       $component-active-bg !default;\n$form-check-input-indeterminate-border-color:   $form-check-input-indeterminate-bg-color !default;\n$form-check-input-indeterminate-bg-image:       url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$form-check-input-indeterminate-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/></svg>\") !default;\n\n$form-check-input-disabled-opacity:        .5 !default;\n$form-check-label-disabled-opacity:        $form-check-input-disabled-opacity !default;\n$form-check-btn-check-disabled-opacity:    $btn-disabled-opacity !default;\n\n$form-check-inline-margin-end:    1rem !default;\n// scss-docs-end form-check-variables\n\n// scss-docs-start form-switch-variables\n$form-switch-color:               rgba($black, .25) !default;\n$form-switch-width:               2em !default;\n$form-switch-padding-start:       $form-switch-width + .5em !default;\n$form-switch-bg-image:            url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-color}'/></svg>\") !default;\n$form-switch-border-radius:       $form-switch-width !default;\n$form-switch-transition:          background-position .15s ease-in-out !default;\n\n$form-switch-focus-color:         $input-focus-border-color !default;\n$form-switch-focus-bg-image:      url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-focus-color}'/></svg>\") !default;\n\n$form-switch-checked-color:       $component-active-color !default;\n$form-switch-checked-bg-image:    url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-checked-color}'/></svg>\") !default;\n$form-switch-checked-bg-position: right center !default;\n// scss-docs-end form-switch-variables\n\n// scss-docs-start input-group-variables\n$input-group-addon-padding-y:           $input-padding-y !default;\n$input-group-addon-padding-x:           $input-padding-x !default;\n$input-group-addon-font-weight:         $input-font-weight !default;\n$input-group-addon-color:               $input-color !default;\n$input-group-addon-bg:                  $gray-200 !default;\n$input-group-addon-border-color:        $input-border-color !default;\n// scss-docs-end input-group-variables\n\n// scss-docs-start form-select-variables\n$form-select-padding-y:             $input-padding-y !default;\n$form-select-padding-x:             $input-padding-x !default;\n$form-select-font-family:           $input-font-family !default;\n$form-select-font-size:             $input-font-size !default;\n$form-select-indicator-padding:     $form-select-padding-x * 3 !default; // Extra padding for background-image\n$form-select-font-weight:           $input-font-weight !default;\n$form-select-line-height:           $input-line-height !default;\n$form-select-color:                 $input-color !default;\n$form-select-bg:                    $input-bg !default;\n$form-select-disabled-color:        null !default;\n$form-select-disabled-bg:           $gray-200 !default;\n$form-select-disabled-border-color: $input-disabled-border-color !default;\n$form-select-bg-position:           right $form-select-padding-x center !default;\n$form-select-bg-size:               16px 12px !default; // In pixels because image dimensions\n$form-select-indicator-color:       $gray-800 !default;\n$form-select-indicator:             url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='#{$form-select-indicator-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/></svg>\") !default;\n\n$form-select-feedback-icon-padding-end: $form-select-padding-x * 2.5 + $form-select-indicator-padding !default;\n$form-select-feedback-icon-position:    center right $form-select-indicator-padding !default;\n$form-select-feedback-icon-size:        $input-height-inner-half $input-height-inner-half !default;\n\n$form-select-border-width:        $input-border-width !default;\n$form-select-border-color:        $input-border-color !default;\n$form-select-border-radius:       $input-border-radius !default;\n$form-select-box-shadow:          $box-shadow-inset !default;\n\n$form-select-focus-border-color:  $input-focus-border-color !default;\n$form-select-focus-width:         $input-focus-width !default;\n$form-select-focus-box-shadow:    0 0 0 $form-select-focus-width $input-btn-focus-color !default;\n\n$form-select-padding-y-sm:        $input-padding-y-sm !default;\n$form-select-padding-x-sm:        $input-padding-x-sm !default;\n$form-select-font-size-sm:        $input-font-size-sm !default;\n$form-select-border-radius-sm:    $input-border-radius-sm !default;\n\n$form-select-padding-y-lg:        $input-padding-y-lg !default;\n$form-select-padding-x-lg:        $input-padding-x-lg !default;\n$form-select-font-size-lg:        $input-font-size-lg !default;\n$form-select-border-radius-lg:    $input-border-radius-lg !default;\n\n$form-select-transition:          $input-transition !default;\n// scss-docs-end form-select-variables\n\n// scss-docs-start form-range-variables\n$form-range-track-width:          100% !default;\n$form-range-track-height:         .5rem !default;\n$form-range-track-cursor:         pointer !default;\n$form-range-track-bg:             $gray-300 !default;\n$form-range-track-border-radius:  1rem !default;\n$form-range-track-box-shadow:     $box-shadow-inset !default;\n\n$form-range-thumb-width:                   1rem !default;\n$form-range-thumb-height:                  $form-range-thumb-width !default;\n$form-range-thumb-bg:                      $component-active-bg !default;\n$form-range-thumb-border:                  0 !default;\n$form-range-thumb-border-radius:           1rem !default;\n$form-range-thumb-box-shadow:              0 .1rem .25rem rgba($black, .1) !default;\n$form-range-thumb-focus-box-shadow:        0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$form-range-thumb-focus-box-shadow-width:  $input-focus-width !default; // For focus box shadow issue in Edge\n$form-range-thumb-active-bg:               tint-color($component-active-bg, 70%) !default;\n$form-range-thumb-disabled-bg:             $gray-500 !default;\n$form-range-thumb-transition:              background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n// scss-docs-end form-range-variables\n\n// scss-docs-start form-file-variables\n$form-file-button-color:          $input-color !default;\n$form-file-button-bg:             $input-group-addon-bg !default;\n$form-file-button-hover-bg:       shade-color($form-file-button-bg, 5%) !default;\n// scss-docs-end form-file-variables\n\n// scss-docs-start form-floating-variables\n$form-floating-height:            add(3.5rem, $input-height-border) !default;\n$form-floating-line-height:       1.25 !default;\n$form-floating-padding-x:         $input-padding-x !default;\n$form-floating-padding-y:         1rem !default;\n$form-floating-input-padding-t:   1.625rem !default;\n$form-floating-input-padding-b:   .625rem !default;\n$form-floating-label-opacity:     .65 !default;\n$form-floating-label-transform:   scale(.85) translateY(-.5rem) translateX(.15rem) !default;\n$form-floating-transition:        opacity .1s ease-in-out, transform .1s ease-in-out !default;\n// scss-docs-end form-floating-variables\n\n// Form validation\n\n// scss-docs-start form-feedback-variables\n$form-feedback-margin-top:          $form-text-margin-top !default;\n$form-feedback-font-size:           $form-text-font-size !default;\n$form-feedback-font-style:          $form-text-font-style !default;\n$form-feedback-valid-color:         $success !default;\n$form-feedback-invalid-color:       $danger !default;\n\n$form-feedback-icon-valid-color:    $form-feedback-valid-color !default;\n$form-feedback-icon-valid:          url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/></svg>\") !default;\n$form-feedback-icon-invalid-color:  $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid:        url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>\") !default;\n// scss-docs-end form-feedback-variables\n\n// scss-docs-start form-validation-states\n$form-validation-states: (\n  \"valid\": (\n    \"color\": $form-feedback-valid-color,\n    \"icon\": $form-feedback-icon-valid\n  ),\n  \"invalid\": (\n    \"color\": $form-feedback-invalid-color,\n    \"icon\": $form-feedback-icon-invalid\n  )\n) !default;\n// scss-docs-end form-validation-states\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-dropdown:                   1000 !default;\n$zindex-sticky:                     1020 !default;\n$zindex-fixed:                      1030 !default;\n$zindex-offcanvas-backdrop:         1040 !default;\n$zindex-offcanvas:                  1045 !default;\n$zindex-modal-backdrop:             1050 !default;\n$zindex-modal:                      1055 !default;\n$zindex-popover:                    1070 !default;\n$zindex-tooltip:                    1080 !default;\n$zindex-toast:                      1090 !default;\n// scss-docs-end zindex-stack\n\n\n// Navs\n\n// scss-docs-start nav-variables\n$nav-link-padding-y:                .5rem !default;\n$nav-link-padding-x:                1rem !default;\n$nav-link-font-size:                null !default;\n$nav-link-font-weight:              null !default;\n$nav-link-color:                    var(--#{$prefix}link-color) !default;\n$nav-link-hover-color:              var(--#{$prefix}link-hover-color) !default;\n$nav-link-transition:               color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out !default;\n$nav-link-disabled-color:           $gray-600 !default;\n\n$nav-tabs-border-color:             $gray-300 !default;\n$nav-tabs-border-width:             $border-width !default;\n$nav-tabs-border-radius:            $border-radius !default;\n$nav-tabs-link-hover-border-color:  $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color:        $gray-700 !default;\n$nav-tabs-link-active-bg:           $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius:           $border-radius !default;\n$nav-pills-link-active-color:       $component-active-color !default;\n$nav-pills-link-active-bg:          $component-active-bg !default;\n// scss-docs-end nav-variables\n\n\n// Navbar\n\n// scss-docs-start navbar-variables\n$navbar-padding-y:                  $spacer * .5 !default;\n$navbar-padding-x:                  null !default;\n\n$navbar-nav-link-padding-x:         .5rem !default;\n\n$navbar-brand-font-size:            $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height:                   $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height:               $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y:            ($nav-link-height - $navbar-brand-height) * .5 !default;\n$navbar-brand-margin-end:           1rem !default;\n\n$navbar-toggler-padding-y:          .25rem !default;\n$navbar-toggler-padding-x:          .75rem !default;\n$navbar-toggler-font-size:          $font-size-lg !default;\n$navbar-toggler-border-radius:      $btn-border-radius !default;\n$navbar-toggler-focus-width:        $btn-focus-width !default;\n$navbar-toggler-transition:         box-shadow .15s ease-in-out !default;\n\n$navbar-light-color:                rgba($black, .55) !default;\n$navbar-light-hover-color:          rgba($black, .7) !default;\n$navbar-light-active-color:         rgba($black, .9) !default;\n$navbar-light-disabled-color:       rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg:      url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n$navbar-light-brand-color:          $navbar-light-active-color !default;\n$navbar-light-brand-hover-color:    $navbar-light-active-color !default;\n// scss-docs-end navbar-variables\n\n// scss-docs-start navbar-dark-variables\n$navbar-dark-color:                 rgba($white, .55) !default;\n$navbar-dark-hover-color:           rgba($white, .75) !default;\n$navbar-dark-active-color:          $white !default;\n$navbar-dark-disabled-color:        rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg:       url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='#{$navbar-dark-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-dark-toggler-border-color:  rgba($white, .1) !default;\n$navbar-dark-brand-color:           $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color:     $navbar-dark-active-color !default;\n// scss-docs-end navbar-dark-variables\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n// scss-docs-start dropdown-variables\n$dropdown-min-width:                10rem !default;\n$dropdown-padding-x:                0 !default;\n$dropdown-padding-y:                .5rem !default;\n$dropdown-spacer:                   .125rem !default;\n$dropdown-font-size:                $font-size-base !default;\n$dropdown-color:                    $body-color !default;\n$dropdown-bg:                       $white !default;\n$dropdown-border-color:             var(--#{$prefix}border-color-translucent) !default;\n$dropdown-border-radius:            $border-radius !default;\n$dropdown-border-width:             $border-width !default;\n$dropdown-inner-border-radius:      subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg:               $dropdown-border-color !default;\n$dropdown-divider-margin-y:         $spacer * .5 !default;\n$dropdown-box-shadow:               $box-shadow !default;\n\n$dropdown-link-color:               $gray-900 !default;\n$dropdown-link-hover-color:         shade-color($dropdown-link-color, 10%) !default;\n$dropdown-link-hover-bg:            $gray-200 !default;\n\n$dropdown-link-active-color:        $component-active-color !default;\n$dropdown-link-active-bg:           $component-active-bg !default;\n\n$dropdown-link-disabled-color:      $gray-500 !default;\n\n$dropdown-item-padding-y:           $spacer * .25 !default;\n$dropdown-item-padding-x:           $spacer !default;\n\n$dropdown-header-color:             $gray-600 !default;\n$dropdown-header-padding-x:         $dropdown-item-padding-x !default;\n$dropdown-header-padding-y:         $dropdown-padding-y !default;\n// fusv-disable\n$dropdown-header-padding:           $dropdown-header-padding-y $dropdown-header-padding-x !default; // Deprecated in v5.2.0\n// fusv-enable\n// scss-docs-end dropdown-variables\n\n// scss-docs-start dropdown-dark-variables\n$dropdown-dark-color:               $gray-300 !default;\n$dropdown-dark-bg:                  $gray-800 !default;\n$dropdown-dark-border-color:        $dropdown-border-color !default;\n$dropdown-dark-divider-bg:          $dropdown-divider-bg !default;\n$dropdown-dark-box-shadow:          null !default;\n$dropdown-dark-link-color:          $dropdown-dark-color !default;\n$dropdown-dark-link-hover-color:    $white !default;\n$dropdown-dark-link-hover-bg:       rgba($white, .15) !default;\n$dropdown-dark-link-active-color:   $dropdown-link-active-color !default;\n$dropdown-dark-link-active-bg:      $dropdown-link-active-bg !default;\n$dropdown-dark-link-disabled-color: $gray-500 !default;\n$dropdown-dark-header-color:        $gray-500 !default;\n// scss-docs-end dropdown-dark-variables\n\n\n// Pagination\n\n// scss-docs-start pagination-variables\n$pagination-padding-y:              .375rem !default;\n$pagination-padding-x:              .75rem !default;\n$pagination-padding-y-sm:           .25rem !default;\n$pagination-padding-x-sm:           .5rem !default;\n$pagination-padding-y-lg:           .75rem !default;\n$pagination-padding-x-lg:           1.5rem !default;\n\n$pagination-font-size:              $font-size-base !default;\n\n$pagination-color:                  var(--#{$prefix}link-color) !default;\n$pagination-bg:                     $white !default;\n$pagination-border-radius:          $border-radius !default;\n$pagination-border-width:           $border-width !default;\n$pagination-margin-start:           ($pagination-border-width * -1) !default;\n$pagination-border-color:           $gray-300 !default;\n\n$pagination-focus-color:            var(--#{$prefix}link-hover-color) !default;\n$pagination-focus-bg:               $gray-200 !default;\n$pagination-focus-box-shadow:       $input-btn-focus-box-shadow !default;\n$pagination-focus-outline:          0 !default;\n\n$pagination-hover-color:            var(--#{$prefix}link-hover-color) !default;\n$pagination-hover-bg:               $gray-200 !default;\n$pagination-hover-border-color:     $gray-300 !default;\n\n$pagination-active-color:           $component-active-color !default;\n$pagination-active-bg:              $component-active-bg !default;\n$pagination-active-border-color:    $pagination-active-bg !default;\n\n$pagination-disabled-color:         $gray-600 !default;\n$pagination-disabled-bg:            $white !default;\n$pagination-disabled-border-color:  $gray-300 !default;\n\n$pagination-transition:              color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$pagination-border-radius-sm:       $border-radius-sm !default;\n$pagination-border-radius-lg:       $border-radius-lg !default;\n// scss-docs-end pagination-variables\n\n\n// Placeholders\n\n// scss-docs-start placeholders\n$placeholder-opacity-max:           .5 !default;\n$placeholder-opacity-min:           .2 !default;\n// scss-docs-end placeholders\n\n// Cards\n\n// scss-docs-start card-variables\n$card-spacer-y:                     $spacer !default;\n$card-spacer-x:                     $spacer !default;\n$card-title-spacer-y:               $spacer * .5 !default;\n$card-border-width:                 $border-width !default;\n$card-border-color:                 var(--#{$prefix}border-color-translucent) !default;\n$card-border-radius:                $border-radius !default;\n$card-box-shadow:                   null !default;\n$card-inner-border-radius:          subtract($card-border-radius, $card-border-width) !default;\n$card-cap-padding-y:                $card-spacer-y * .5 !default;\n$card-cap-padding-x:                $card-spacer-x !default;\n$card-cap-bg:                       rgba($black, .03) !default;\n$card-cap-color:                    null !default;\n$card-height:                       null !default;\n$card-color:                        null !default;\n$card-bg:                           $white !default;\n$card-img-overlay-padding:          $spacer !default;\n$card-group-margin:                 $grid-gutter-width * .5 !default;\n// scss-docs-end card-variables\n\n// Accordion\n\n// scss-docs-start accordion-variables\n$accordion-padding-y:                     1rem !default;\n$accordion-padding-x:                     1.25rem !default;\n$accordion-color:                         $body-color !default; // Sass variable because of $accordion-button-icon\n$accordion-bg:                            $body-bg !default;\n$accordion-border-width:                  $border-width !default;\n$accordion-border-color:                  var(--#{$prefix}border-color) !default;\n$accordion-border-radius:                 $border-radius !default;\n$accordion-inner-border-radius:           subtract($accordion-border-radius, $accordion-border-width) !default;\n\n$accordion-body-padding-y:                $accordion-padding-y !default;\n$accordion-body-padding-x:                $accordion-padding-x !default;\n\n$accordion-button-padding-y:              $accordion-padding-y !default;\n$accordion-button-padding-x:              $accordion-padding-x !default;\n$accordion-button-color:                  $accordion-color !default;\n$accordion-button-bg:                     var(--#{$prefix}accordion-bg) !default;\n$accordion-transition:                    $btn-transition, border-radius .15s ease !default;\n$accordion-button-active-bg:              tint-color($component-active-bg, 90%) !default;\n$accordion-button-active-color:           shade-color($primary, 10%) !default;\n\n$accordion-button-focus-border-color:     $input-focus-border-color !default;\n$accordion-button-focus-box-shadow:       $btn-focus-box-shadow !default;\n\n$accordion-icon-width:                    1.25rem !default;\n$accordion-icon-color:                    $accordion-button-color !default;\n$accordion-icon-active-color:             $accordion-button-active-color !default;\n$accordion-icon-transition:               transform .2s ease-in-out !default;\n$accordion-icon-transform:                rotate(-180deg) !default;\n\n$accordion-button-icon:         url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-color}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>\") !default;\n$accordion-button-active-icon:  url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-active-color}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>\") !default;\n// scss-docs-end accordion-variables\n\n// Tooltips\n\n// scss-docs-start tooltip-variables\n$tooltip-font-size:                 $font-size-sm !default;\n$tooltip-max-width:                 200px !default;\n$tooltip-color:                     $white !default;\n$tooltip-bg:                        $black !default;\n$tooltip-border-radius:             $border-radius !default;\n$tooltip-opacity:                   .9 !default;\n$tooltip-padding-y:                 $spacer * .25 !default;\n$tooltip-padding-x:                 $spacer * .5 !default;\n$tooltip-margin:                    null !default; // TODO: remove this in v6\n\n$tooltip-arrow-width:               .8rem !default;\n$tooltip-arrow-height:              .4rem !default;\n// fusv-disable\n$tooltip-arrow-color:               null !default; // Deprecated in Bootstrap 5.2.0 for CSS variables\n// fusv-enable\n// scss-docs-end tooltip-variables\n\n// Form tooltips must come after regular tooltips\n// scss-docs-start tooltip-feedback-variables\n$form-feedback-tooltip-padding-y:     $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x:     $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size:     $tooltip-font-size !default;\n$form-feedback-tooltip-line-height:   null !default;\n$form-feedback-tooltip-opacity:       $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n// scss-docs-end tooltip-feedback-variables\n\n\n// Popovers\n\n// scss-docs-start popover-variables\n$popover-font-size:                 $font-size-sm !default;\n$popover-bg:                        $white !default;\n$popover-max-width:                 276px !default;\n$popover-border-width:              $border-width !default;\n$popover-border-color:              var(--#{$prefix}border-color-translucent) !default;\n$popover-border-radius:             $border-radius-lg !default;\n$popover-inner-border-radius:       subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow:                $box-shadow !default;\n\n$popover-header-font-size:          $font-size-base !default;\n$popover-header-bg:                 shade-color($popover-bg, 6%) !default;\n$popover-header-color:              $headings-color !default;\n$popover-header-padding-y:          .5rem !default;\n$popover-header-padding-x:          $spacer !default;\n\n$popover-body-color:                $body-color !default;\n$popover-body-padding-y:            $spacer !default;\n$popover-body-padding-x:            $spacer !default;\n\n$popover-arrow-width:               1rem !default;\n$popover-arrow-height:              .5rem !default;\n// scss-docs-end popover-variables\n\n// fusv-disable\n// Deprecated in Bootstrap 5.2.0 for CSS variables\n$popover-arrow-color:               $popover-bg !default;\n$popover-arrow-outer-color:         var(--#{$prefix}border-color-translucent) !default;\n// fusv-enable\n\n\n// Toasts\n\n// scss-docs-start toast-variables\n$toast-max-width:                   350px !default;\n$toast-padding-x:                   .75rem !default;\n$toast-padding-y:                   .5rem !default;\n$toast-font-size:                   .875rem !default;\n$toast-color:                       null !default;\n$toast-background-color:            rgba($white, .85) !default;\n$toast-border-width:                $border-width !default;\n$toast-border-color:                var(--#{$prefix}border-color-translucent) !default;\n$toast-border-radius:               $border-radius !default;\n$toast-box-shadow:                  $box-shadow !default;\n$toast-spacing:                     $container-padding-x !default;\n\n$toast-header-color:                $gray-600 !default;\n$toast-header-background-color:     rgba($white, .85) !default;\n$toast-header-border-color:         rgba($black, .05) !default;\n// scss-docs-end toast-variables\n\n\n// Badges\n\n// scss-docs-start badge-variables\n$badge-font-size:                   .75em !default;\n$badge-font-weight:                 $font-weight-bold !default;\n$badge-color:                       $white !default;\n$badge-padding-y:                   .35em !default;\n$badge-padding-x:                   .65em !default;\n$badge-border-radius:               $border-radius !default;\n// scss-docs-end badge-variables\n\n\n// Modals\n\n// scss-docs-start modal-variables\n$modal-inner-padding:               $spacer !default;\n\n$modal-footer-margin-between:       .5rem !default;\n\n$modal-dialog-margin:               .5rem !default;\n$modal-dialog-margin-y-sm-up:       1.75rem !default;\n\n$modal-title-line-height:           $line-height-base !default;\n\n$modal-content-color:               null !default;\n$modal-content-bg:                  $white !default;\n$modal-content-border-color:        var(--#{$prefix}border-color-translucent) !default;\n$modal-content-border-width:        $border-width !default;\n$modal-content-border-radius:       $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs:       $box-shadow-sm !default;\n$modal-content-box-shadow-sm-up:    $box-shadow !default;\n\n$modal-backdrop-bg:                 $black !default;\n$modal-backdrop-opacity:            .5 !default;\n\n$modal-header-border-color:         var(--#{$prefix}border-color) !default;\n$modal-header-border-width:         $modal-content-border-width !default;\n$modal-header-padding-y:            $modal-inner-padding !default;\n$modal-header-padding-x:            $modal-inner-padding !default;\n$modal-header-padding:              $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-footer-bg:                   null !default;\n$modal-footer-border-color:         $modal-header-border-color !default;\n$modal-footer-border-width:         $modal-header-border-width !default;\n\n$modal-sm:                          300px !default;\n$modal-md:                          500px !default;\n$modal-lg:                          800px !default;\n$modal-xl:                          1140px !default;\n\n$modal-fade-transform:              translate(0, -50px) !default;\n$modal-show-transform:              none !default;\n$modal-transition:                  transform .3s ease-out !default;\n$modal-scale-transform:             scale(1.02) !default;\n// scss-docs-end modal-variables\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n// scss-docs-start alert-variables\n$alert-padding-y:               $spacer !default;\n$alert-padding-x:               $spacer !default;\n$alert-margin-bottom:           1rem !default;\n$alert-border-radius:           $border-radius !default;\n$alert-link-font-weight:        $font-weight-bold !default;\n$alert-border-width:            $border-width !default;\n$alert-bg-scale:                -80% !default;\n$alert-border-scale:            -70% !default;\n$alert-color-scale:             40% !default;\n$alert-dismissible-padding-r:   $alert-padding-x * 3 !default; // 3x covers width of x plus default padding on either side\n// scss-docs-end alert-variables\n\n\n// Progress bars\n\n// scss-docs-start progress-variables\n$progress-height:                   1rem !default;\n$progress-font-size:                $font-size-base * .75 !default;\n$progress-bg:                       $gray-200 !default;\n$progress-border-radius:            $border-radius !default;\n$progress-box-shadow:               $box-shadow-inset !default;\n$progress-bar-color:                $white !default;\n$progress-bar-bg:                   $primary !default;\n$progress-bar-animation-timing:     1s linear infinite !default;\n$progress-bar-transition:           width .6s ease !default;\n// scss-docs-end progress-variables\n\n\n// List group\n\n// scss-docs-start list-group-variables\n$list-group-color:                  $gray-900 !default;\n$list-group-bg:                     $white !default;\n$list-group-border-color:           rgba($black, .125) !default;\n$list-group-border-width:           $border-width !default;\n$list-group-border-radius:          $border-radius !default;\n\n$list-group-item-padding-y:         $spacer * .5 !default;\n$list-group-item-padding-x:         $spacer !default;\n$list-group-item-bg-scale:          -80% !default;\n$list-group-item-color-scale:       40% !default;\n\n$list-group-hover-bg:               $gray-100 !default;\n$list-group-active-color:           $component-active-color !default;\n$list-group-active-bg:              $component-active-bg !default;\n$list-group-active-border-color:    $list-group-active-bg !default;\n\n$list-group-disabled-color:         $gray-600 !default;\n$list-group-disabled-bg:            $list-group-bg !default;\n\n$list-group-action-color:           $gray-700 !default;\n$list-group-action-hover-color:     $list-group-action-color !default;\n\n$list-group-action-active-color:    $body-color !default;\n$list-group-action-active-bg:       $gray-200 !default;\n// scss-docs-end list-group-variables\n\n\n// Image thumbnails\n\n// scss-docs-start thumbnail-variables\n$thumbnail-padding:                 .25rem !default;\n$thumbnail-bg:                      $body-bg !default;\n$thumbnail-border-width:            $border-width !default;\n$thumbnail-border-color:            var(--#{$prefix}border-color) !default;\n$thumbnail-border-radius:           $border-radius !default;\n$thumbnail-box-shadow:              $box-shadow-sm !default;\n// scss-docs-end thumbnail-variables\n\n\n// Figures\n\n// scss-docs-start figure-variables\n$figure-caption-font-size:          $small-font-size !default;\n$figure-caption-color:              $gray-600 !default;\n// scss-docs-end figure-variables\n\n\n// Breadcrumbs\n\n// scss-docs-start breadcrumb-variables\n$breadcrumb-font-size:              null !default;\n$breadcrumb-padding-y:              0 !default;\n$breadcrumb-padding-x:              0 !default;\n$breadcrumb-item-padding-x:         .5rem !default;\n$breadcrumb-margin-bottom:          1rem !default;\n$breadcrumb-bg:                     null !default;\n$breadcrumb-divider-color:          $gray-600 !default;\n$breadcrumb-active-color:           $gray-600 !default;\n$breadcrumb-divider:                quote(\"/\") !default;\n$breadcrumb-divider-flipped:        $breadcrumb-divider !default;\n$breadcrumb-border-radius:          null !default;\n// scss-docs-end breadcrumb-variables\n\n// Carousel\n\n// scss-docs-start carousel-variables\n$carousel-control-color:             $white !default;\n$carousel-control-width:             15% !default;\n$carousel-control-opacity:           .5 !default;\n$carousel-control-hover-opacity:     .9 !default;\n$carousel-control-transition:        opacity .15s ease !default;\n\n$carousel-indicator-width:           30px !default;\n$carousel-indicator-height:          3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer:          3px !default;\n$carousel-indicator-opacity:         .5 !default;\n$carousel-indicator-active-bg:       $white !default;\n$carousel-indicator-active-opacity:  1 !default;\n$carousel-indicator-transition:      opacity .6s ease !default;\n\n$carousel-caption-width:             70% !default;\n$carousel-caption-color:             $white !default;\n$carousel-caption-padding-y:         1.25rem !default;\n$carousel-caption-spacer:            1.25rem !default;\n\n$carousel-control-icon-width:        2rem !default;\n\n$carousel-control-prev-icon-bg:      url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/></svg>\") !default;\n$carousel-control-next-icon-bg:      url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/></svg>\") !default;\n\n$carousel-transition-duration:       .6s !default;\n$carousel-transition:                transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n// scss-docs-end carousel-variables\n\n// scss-docs-start carousel-dark-variables\n$carousel-dark-indicator-active-bg:  $black !default;\n$carousel-dark-caption-color:        $black !default;\n$carousel-dark-control-icon-filter:  invert(1) grayscale(100) !default;\n// scss-docs-end carousel-dark-variables\n\n\n// Spinners\n\n// scss-docs-start spinner-variables\n$spinner-width:           2rem !default;\n$spinner-height:          $spinner-width !default;\n$spinner-vertical-align:  -.125em !default;\n$spinner-border-width:    .25em !default;\n$spinner-animation-speed: .75s !default;\n\n$spinner-width-sm:        1rem !default;\n$spinner-height-sm:       $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n// scss-docs-end spinner-variables\n\n\n// Close\n\n// scss-docs-start close-variables\n$btn-close-width:            1em !default;\n$btn-close-height:           $btn-close-width !default;\n$btn-close-padding-x:        .25em !default;\n$btn-close-padding-y:        $btn-close-padding-x !default;\n$btn-close-color:            $black !default;\n$btn-close-bg:               url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>\") !default;\n$btn-close-focus-shadow:     $input-btn-focus-box-shadow !default;\n$btn-close-opacity:          .5 !default;\n$btn-close-hover-opacity:    .75 !default;\n$btn-close-focus-opacity:    1 !default;\n$btn-close-disabled-opacity: .25 !default;\n$btn-close-white-filter:     invert(1) grayscale(100%) brightness(200%) !default;\n// scss-docs-end close-variables\n\n\n// Offcanvas\n\n// scss-docs-start offcanvas-variables\n$offcanvas-padding-y:               $modal-inner-padding !default;\n$offcanvas-padding-x:               $modal-inner-padding !default;\n$offcanvas-horizontal-width:        400px !default;\n$offcanvas-vertical-height:         30vh !default;\n$offcanvas-transition-duration:     .3s !default;\n$offcanvas-border-color:            $modal-content-border-color !default;\n$offcanvas-border-width:            $modal-content-border-width !default;\n$offcanvas-title-line-height:       $modal-title-line-height !default;\n$offcanvas-bg-color:                $modal-content-bg !default;\n$offcanvas-color:                   $modal-content-color !default;\n$offcanvas-box-shadow:              $modal-content-box-shadow-xs !default;\n$offcanvas-backdrop-bg:             $modal-backdrop-bg !default;\n$offcanvas-backdrop-opacity:        $modal-backdrop-opacity !default;\n// scss-docs-end offcanvas-variables\n\n// Code\n\n$code-font-size:                    $small-font-size !default;\n$code-color:                        $pink !default;\n\n$kbd-padding-y:                     .1875rem !default;\n$kbd-padding-x:                     .375rem !default;\n$kbd-font-size:                     $code-font-size !default;\n$kbd-color:                         var(--#{$prefix}body-bg) !default;\n$kbd-bg:                            var(--#{$prefix}body-color) !default;\n$nested-kbd-font-weight:            null !default; // Deprecated in v5.2.0, removing in v6\n\n$pre-color:                         null !default;\n"
  },
  {
    "path": "dist/lib/bootstrap5/bootstrap-grid.scss",
    "content": "@import \"mixins/banner\";\n@include bsBanner(Grid);\n\n$include-column-box-sizing: true !default;\n\n@import \"functions\";\n@import \"variables\";\n@import \"maps\";\n\n@import \"mixins/lists\";\n@import \"mixins/breakpoints\";\n@import \"mixins/container\";\n@import \"mixins/grid\";\n@import \"mixins/utilities\";\n\n@import \"vendor/rfs\";\n\n@import \"root\";\n\n@import \"containers\";\n@import \"grid\";\n\n@import \"utilities\";\n// Only use the utilities we need\n// stylelint-disable-next-line scss/dollar-variable-default\n$utilities: map-get-multiple(\n  $utilities,\n  (\n    \"display\",\n    \"order\",\n    \"flex\",\n    \"flex-direction\",\n    \"flex-grow\",\n    \"flex-shrink\",\n    \"flex-wrap\",\n    \"justify-content\",\n    \"align-items\",\n    \"align-content\",\n    \"align-self\",\n    \"margin\",\n    \"margin-x\",\n    \"margin-y\",\n    \"margin-top\",\n    \"margin-end\",\n    \"margin-bottom\",\n    \"margin-start\",\n    \"negative-margin\",\n    \"negative-margin-x\",\n    \"negative-margin-y\",\n    \"negative-margin-top\",\n    \"negative-margin-end\",\n    \"negative-margin-bottom\",\n    \"negative-margin-start\",\n    \"padding\",\n    \"padding-x\",\n    \"padding-y\",\n    \"padding-top\",\n    \"padding-end\",\n    \"padding-bottom\",\n    \"padding-start\",\n  )\n);\n\n@import \"utilities/api\";\n"
  },
  {
    "path": "dist/lib/bootstrap5/bootstrap-reboot.scss",
    "content": "@import \"mixins/banner\";\n@include bsBanner(Reboot);\n\n@import \"functions\";\n@import \"variables\";\n@import \"maps\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n"
  },
  {
    "path": "dist/lib/bootstrap5/bootstrap-utilities.scss",
    "content": "@import \"mixins/banner\";\n@include bsBanner(Utilities);\n\n// Configuration\n@import \"functions\";\n@import \"variables\";\n@import \"maps\";\n@import \"mixins\";\n@import \"utilities\";\n\n// Layout & components\n@import \"root\";\n\n// Helpers\n@import \"helpers\";\n\n// Utilities\n@import \"utilities/api\";\n"
  },
  {
    "path": "dist/lib/bootstrap5/bootstrap.scss",
    "content": "@import \"mixins/banner\";\n@include bsBanner(\"\");\n\n\n// scss-docs-start import-stack\n// Configuration\n@import \"functions\";\n@import \"variables\";\n@import \"maps\";\n@import \"mixins\";\n@import \"utilities\";\n\n// Layout & components\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"containers\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"accordion\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"alert\";\n@import \"progress\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"offcanvas\";\n@import \"placeholders\";\n\n// Helpers\n@import \"helpers\";\n\n// Utilities\n@import \"utilities/api\";\n// scss-docs-end import-stack\n"
  },
  {
    "path": "dist/lib/bootstrap5/forms/_floating-labels.scss",
    "content": ".form-floating {\n  position: relative;\n\n  > .form-control,\n  > .form-control-plaintext,\n  > .form-select {\n    height: $form-floating-height;\n    line-height: $form-floating-line-height;\n  }\n\n  > label {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%; // allow textareas\n    padding: $form-floating-padding-y $form-floating-padding-x;\n    overflow: hidden;\n    text-align: start;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n    pointer-events: none;\n    border: $input-border-width solid transparent; // Required for aligning label's text with the input as it affects inner box model\n    transform-origin: 0 0;\n    @include transition($form-floating-transition);\n  }\n\n  > .form-control,\n  > .form-control-plaintext {\n    padding: $form-floating-padding-y $form-floating-padding-x;\n\n    &::placeholder {\n      color: transparent;\n    }\n\n    &:focus,\n    &:not(:placeholder-shown) {\n      padding-top: $form-floating-input-padding-t;\n      padding-bottom: $form-floating-input-padding-b;\n    }\n    // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped\n    &:-webkit-autofill {\n      padding-top: $form-floating-input-padding-t;\n      padding-bottom: $form-floating-input-padding-b;\n    }\n  }\n\n  > .form-select {\n    padding-top: $form-floating-input-padding-t;\n    padding-bottom: $form-floating-input-padding-b;\n  }\n\n  > .form-control:focus,\n  > .form-control:not(:placeholder-shown),\n  > .form-control-plaintext,\n  > .form-select {\n    ~ label {\n      opacity: $form-floating-label-opacity;\n      transform: $form-floating-label-transform;\n    }\n  }\n  // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped\n  > .form-control:-webkit-autofill {\n    ~ label {\n      opacity: $form-floating-label-opacity;\n      transform: $form-floating-label-transform;\n    }\n  }\n\n  > .form-control-plaintext {\n    ~ label {\n      border-width: $input-border-width 0; // Required to properly position label text - as explained above\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/forms/_form-check.scss",
    "content": "//\n// Check/radio\n//\n\n.form-check {\n  display: block;\n  min-height: $form-check-min-height;\n  padding-left: $form-check-padding-start;\n  margin-bottom: $form-check-margin-bottom;\n\n  .form-check-input {\n    float: left;\n    margin-left: $form-check-padding-start * -1;\n  }\n}\n\n.form-check-reverse {\n  padding-right: $form-check-padding-start;\n  padding-left: 0;\n  text-align: right;\n\n  .form-check-input {\n    float: right;\n    margin-right: $form-check-padding-start * -1;\n    margin-left: 0;\n  }\n}\n\n.form-check-input {\n  width: $form-check-input-width;\n  height: $form-check-input-width;\n  margin-top: ($line-height-base - $form-check-input-width) * .5; // line-height minus check height\n  vertical-align: top;\n  background-color: $form-check-input-bg;\n  background-repeat: no-repeat;\n  background-position: center;\n  background-size: contain;\n  border: $form-check-input-border;\n  appearance: none;\n  print-color-adjust: exact; // Keep themed appearance for print\n  @include transition($form-check-transition);\n\n  &[type=\"checkbox\"] {\n    @include border-radius($form-check-input-border-radius);\n  }\n\n  &[type=\"radio\"] {\n    // stylelint-disable-next-line property-disallowed-list\n    border-radius: $form-check-radio-border-radius;\n  }\n\n  &:active {\n    filter: $form-check-input-active-filter;\n  }\n\n  &:focus {\n    border-color: $form-check-input-focus-border;\n    outline: 0;\n    box-shadow: $form-check-input-focus-box-shadow;\n  }\n\n  &:checked {\n    background-color: $form-check-input-checked-bg-color;\n    border-color: $form-check-input-checked-border-color;\n\n    &[type=\"checkbox\"] {\n      @if $enable-gradients {\n        background-image: escape-svg($form-check-input-checked-bg-image), var(--#{$prefix}gradient);\n      } @else {\n        background-image: escape-svg($form-check-input-checked-bg-image);\n      }\n    }\n\n    &[type=\"radio\"] {\n      @if $enable-gradients {\n        background-image: escape-svg($form-check-radio-checked-bg-image), var(--#{$prefix}gradient);\n      } @else {\n        background-image: escape-svg($form-check-radio-checked-bg-image);\n      }\n    }\n  }\n\n  &[type=\"checkbox\"]:indeterminate {\n    background-color: $form-check-input-indeterminate-bg-color;\n    border-color: $form-check-input-indeterminate-border-color;\n\n    @if $enable-gradients {\n      background-image: escape-svg($form-check-input-indeterminate-bg-image), var(--#{$prefix}gradient);\n    } @else {\n      background-image: escape-svg($form-check-input-indeterminate-bg-image);\n    }\n  }\n\n  &:disabled {\n    pointer-events: none;\n    filter: none;\n    opacity: $form-check-input-disabled-opacity;\n  }\n\n  // Use disabled attribute in addition of :disabled pseudo-class\n  // See: https://github.com/twbs/bootstrap/issues/28247\n  &[disabled],\n  &:disabled {\n    ~ .form-check-label {\n      cursor: default;\n      opacity: $form-check-label-disabled-opacity;\n    }\n  }\n}\n\n.form-check-label {\n  color: $form-check-label-color;\n  cursor: $form-check-label-cursor;\n}\n\n//\n// Switch\n//\n\n.form-switch {\n  padding-left: $form-switch-padding-start;\n\n  .form-check-input {\n    width: $form-switch-width;\n    margin-left: $form-switch-padding-start * -1;\n    background-image: escape-svg($form-switch-bg-image);\n    background-position: left center;\n    @include border-radius($form-switch-border-radius);\n    @include transition($form-switch-transition);\n\n    &:focus {\n      background-image: escape-svg($form-switch-focus-bg-image);\n    }\n\n    &:checked {\n      background-position: $form-switch-checked-bg-position;\n\n      @if $enable-gradients {\n        background-image: escape-svg($form-switch-checked-bg-image), var(--#{$prefix}gradient);\n      } @else {\n        background-image: escape-svg($form-switch-checked-bg-image);\n      }\n    }\n  }\n\n  &.form-check-reverse {\n    padding-right: $form-switch-padding-start;\n    padding-left: 0;\n\n    .form-check-input {\n      margin-right: $form-switch-padding-start * -1;\n      margin-left: 0;\n    }\n  }\n}\n\n.form-check-inline {\n  display: inline-block;\n  margin-right: $form-check-inline-margin-end;\n}\n\n.btn-check {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none;\n\n  &[disabled],\n  &:disabled {\n    + .btn {\n      pointer-events: none;\n      filter: none;\n      opacity: $form-check-btn-check-disabled-opacity;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/forms/_form-control.scss",
    "content": "//\n// General form controls (plus a few specific high-level interventions)\n//\n\n.form-control {\n  display: block;\n  width: 100%;\n  padding: $input-padding-y $input-padding-x;\n  font-family: $input-font-family;\n  @include font-size($input-font-size);\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n  background-color: $input-bg;\n  background-clip: padding-box;\n  border: $input-border-width solid $input-border-color;\n  appearance: none; // Fix appearance for date inputs in Safari\n\n  // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.\n  @include border-radius($input-border-radius, 0);\n\n  @include box-shadow($input-box-shadow);\n  @include transition($input-transition);\n\n  &[type=\"file\"] {\n    overflow: hidden; // prevent pseudo element button overlap\n\n    &:not(:disabled):not([readonly]) {\n      cursor: pointer;\n    }\n  }\n\n  // Customize the `:focus` state to imitate native WebKit styles.\n  &:focus {\n    color: $input-focus-color;\n    background-color: $input-focus-bg;\n    border-color: $input-focus-border-color;\n    outline: 0;\n    @if $enable-shadows {\n      @include box-shadow($input-box-shadow, $input-focus-box-shadow);\n    } @else {\n      // Avoid using mixin so we can pass custom focus shadow properly\n      box-shadow: $input-focus-box-shadow;\n    }\n  }\n\n  // Add some height to date inputs on iOS\n  // https://github.com/twbs/bootstrap/issues/23307\n  // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved\n  &::-webkit-date-and-time-value {\n    // Multiply line-height by 1em if it has no unit\n    height: if(unit($input-line-height) == \"\", $input-line-height * 1em, $input-line-height);\n  }\n\n  // Placeholder\n  &::placeholder {\n    color: $input-placeholder-color;\n    // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n    opacity: 1;\n  }\n\n  // Disabled inputs\n  //\n  // HTML5 says that controls under a fieldset > legend:first-child won't be\n  // disabled if the fieldset is disabled. Due to implementation difficulty, we\n  // don't honor that edge case; we style them as disabled anyway.\n  &:disabled {\n    color: $input-disabled-color;\n    background-color: $input-disabled-bg;\n    border-color: $input-disabled-border-color;\n    // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n    opacity: 1;\n  }\n\n  // File input buttons theming\n  &::file-selector-button {\n    padding: $input-padding-y $input-padding-x;\n    margin: (-$input-padding-y) (-$input-padding-x);\n    margin-inline-end: $input-padding-x;\n    color: $form-file-button-color;\n    @include gradient-bg($form-file-button-bg);\n    pointer-events: none;\n    border-color: inherit;\n    border-style: solid;\n    border-width: 0;\n    border-inline-end-width: $input-border-width;\n    border-radius: 0; // stylelint-disable-line property-disallowed-list\n    @include transition($btn-transition);\n  }\n\n  &:hover:not(:disabled):not([readonly])::file-selector-button {\n    background-color: $form-file-button-hover-bg;\n  }\n}\n\n// Readonly controls as plain text\n//\n// Apply class to a readonly input to make it appear like regular plain\n// text (without any border, background color, focus indicator)\n\n.form-control-plaintext {\n  display: block;\n  width: 100%;\n  padding: $input-padding-y 0;\n  margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n  line-height: $input-line-height;\n  color: $input-plaintext-color;\n  background-color: transparent;\n  border: solid transparent;\n  border-width: $input-border-width 0;\n\n  &:focus {\n    outline: 0;\n  }\n\n  &.form-control-sm,\n  &.form-control-lg {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// Repeated in `_input_group.scss` to avoid Sass extend issues.\n\n.form-control-sm {\n  min-height: $input-height-sm;\n  padding: $input-padding-y-sm $input-padding-x-sm;\n  @include font-size($input-font-size-sm);\n  @include border-radius($input-border-radius-sm);\n\n  &::file-selector-button {\n    padding: $input-padding-y-sm $input-padding-x-sm;\n    margin: (-$input-padding-y-sm) (-$input-padding-x-sm);\n    margin-inline-end: $input-padding-x-sm;\n  }\n}\n\n.form-control-lg {\n  min-height: $input-height-lg;\n  padding: $input-padding-y-lg $input-padding-x-lg;\n  @include font-size($input-font-size-lg);\n  @include border-radius($input-border-radius-lg);\n\n  &::file-selector-button {\n    padding: $input-padding-y-lg $input-padding-x-lg;\n    margin: (-$input-padding-y-lg) (-$input-padding-x-lg);\n    margin-inline-end: $input-padding-x-lg;\n  }\n}\n\n// Make sure textareas don't shrink too much when resized\n// https://github.com/twbs/bootstrap/pull/29124\n// stylelint-disable selector-no-qualifying-type\ntextarea {\n  &.form-control {\n    min-height: $input-height;\n  }\n\n  &.form-control-sm {\n    min-height: $input-height-sm;\n  }\n\n  &.form-control-lg {\n    min-height: $input-height-lg;\n  }\n}\n// stylelint-enable selector-no-qualifying-type\n\n.form-control-color {\n  width: $form-color-width;\n  height: $input-height;\n  padding: $input-padding-y;\n\n  &:not(:disabled):not([readonly]) {\n    cursor: pointer;\n  }\n\n  &::-moz-color-swatch {\n    border: 0 !important; // stylelint-disable-line declaration-no-important\n    @include border-radius($input-border-radius);\n  }\n\n  &::-webkit-color-swatch {\n    @include border-radius($input-border-radius);\n  }\n\n  &.form-control-sm { height: $input-height-sm; }\n  &.form-control-lg { height: $input-height-lg; }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/forms/_form-range.scss",
    "content": "// Range\n//\n// Style range inputs the same across browsers. Vendor-specific rules for pseudo\n// elements cannot be mixed. As such, there are no shared styles for focus or\n// active states on prefixed selectors.\n\n.form-range {\n  width: 100%;\n  height: add($form-range-thumb-height, $form-range-thumb-focus-box-shadow-width * 2);\n  padding: 0; // Need to reset padding\n  background-color: transparent;\n  appearance: none;\n\n  &:focus {\n    outline: 0;\n\n    // Pseudo-elements must be split across multiple rulesets to have an effect.\n    // No box-shadow() mixin for focus accessibility.\n    &::-webkit-slider-thumb { box-shadow: $form-range-thumb-focus-box-shadow; }\n    &::-moz-range-thumb     { box-shadow: $form-range-thumb-focus-box-shadow; }\n  }\n\n  &::-moz-focus-outer {\n    border: 0;\n  }\n\n  &::-webkit-slider-thumb {\n    width: $form-range-thumb-width;\n    height: $form-range-thumb-height;\n    margin-top: ($form-range-track-height - $form-range-thumb-height) * .5; // Webkit specific\n    @include gradient-bg($form-range-thumb-bg);\n    border: $form-range-thumb-border;\n    @include border-radius($form-range-thumb-border-radius);\n    @include box-shadow($form-range-thumb-box-shadow);\n    @include transition($form-range-thumb-transition);\n    appearance: none;\n\n    &:active {\n      @include gradient-bg($form-range-thumb-active-bg);\n    }\n  }\n\n  &::-webkit-slider-runnable-track {\n    width: $form-range-track-width;\n    height: $form-range-track-height;\n    color: transparent; // Why?\n    cursor: $form-range-track-cursor;\n    background-color: $form-range-track-bg;\n    border-color: transparent;\n    @include border-radius($form-range-track-border-radius);\n    @include box-shadow($form-range-track-box-shadow);\n  }\n\n  &::-moz-range-thumb {\n    width: $form-range-thumb-width;\n    height: $form-range-thumb-height;\n    @include gradient-bg($form-range-thumb-bg);\n    border: $form-range-thumb-border;\n    @include border-radius($form-range-thumb-border-radius);\n    @include box-shadow($form-range-thumb-box-shadow);\n    @include transition($form-range-thumb-transition);\n    appearance: none;\n\n    &:active {\n      @include gradient-bg($form-range-thumb-active-bg);\n    }\n  }\n\n  &::-moz-range-track {\n    width: $form-range-track-width;\n    height: $form-range-track-height;\n    color: transparent;\n    cursor: $form-range-track-cursor;\n    background-color: $form-range-track-bg;\n    border-color: transparent; // Firefox specific?\n    @include border-radius($form-range-track-border-radius);\n    @include box-shadow($form-range-track-box-shadow);\n  }\n\n  &:disabled {\n    pointer-events: none;\n\n    &::-webkit-slider-thumb {\n      background-color: $form-range-thumb-disabled-bg;\n    }\n\n    &::-moz-range-thumb {\n      background-color: $form-range-thumb-disabled-bg;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/forms/_form-select.scss",
    "content": "// Select\n//\n// Replaces the browser default select with a custom one, mostly pulled from\n// https://primer.github.io/.\n\n.form-select {\n  display: block;\n  width: 100%;\n  padding: $form-select-padding-y $form-select-indicator-padding $form-select-padding-y $form-select-padding-x;\n  -moz-padding-start: subtract($form-select-padding-x, 3px); // See https://github.com/twbs/bootstrap/issues/32636\n  font-family: $form-select-font-family;\n  @include font-size($form-select-font-size);\n  font-weight: $form-select-font-weight;\n  line-height: $form-select-line-height;\n  color: $form-select-color;\n  background-color: $form-select-bg;\n  background-image: escape-svg($form-select-indicator);\n  background-repeat: no-repeat;\n  background-position: $form-select-bg-position;\n  background-size: $form-select-bg-size;\n  border: $form-select-border-width solid $form-select-border-color;\n  @include border-radius($form-select-border-radius, 0);\n  @include box-shadow($form-select-box-shadow);\n  @include transition($form-select-transition);\n  appearance: none;\n\n  &:focus {\n    border-color: $form-select-focus-border-color;\n    outline: 0;\n    @if $enable-shadows {\n      @include box-shadow($form-select-box-shadow, $form-select-focus-box-shadow);\n    } @else {\n      // Avoid using mixin so we can pass custom focus shadow properly\n      box-shadow: $form-select-focus-box-shadow;\n    }\n  }\n\n  &[multiple],\n  &[size]:not([size=\"1\"]) {\n    padding-right: $form-select-padding-x;\n    background-image: none;\n  }\n\n  &:disabled {\n    color: $form-select-disabled-color;\n    background-color: $form-select-disabled-bg;\n    border-color: $form-select-disabled-border-color;\n  }\n\n  // Remove outline from select box in FF\n  &:-moz-focusring {\n    color: transparent;\n    text-shadow: 0 0 0 $form-select-color;\n  }\n}\n\n.form-select-sm {\n  padding-top: $form-select-padding-y-sm;\n  padding-bottom: $form-select-padding-y-sm;\n  padding-left: $form-select-padding-x-sm;\n  @include font-size($form-select-font-size-sm);\n  @include border-radius($form-select-border-radius-sm);\n}\n\n.form-select-lg {\n  padding-top: $form-select-padding-y-lg;\n  padding-bottom: $form-select-padding-y-lg;\n  padding-left: $form-select-padding-x-lg;\n  @include font-size($form-select-font-size-lg);\n  @include border-radius($form-select-border-radius-lg);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/forms/_form-text.scss",
    "content": "//\n// Form text\n//\n\n.form-text {\n  margin-top: $form-text-margin-top;\n  @include font-size($form-text-font-size);\n  font-style: $form-text-font-style;\n  font-weight: $form-text-font-weight;\n  color: $form-text-color;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/forms/_input-group.scss",
    "content": "//\n// Base styles\n//\n\n.input-group {\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; // For form validation feedback\n  align-items: stretch;\n  width: 100%;\n\n  > .form-control,\n  > .form-select,\n  > .form-floating {\n    position: relative; // For focus state's z-index\n    flex: 1 1 auto;\n    width: 1%;\n    min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size\n  }\n\n  // Bring the \"active\" form control to the top of surrounding elements\n  > .form-control:focus,\n  > .form-select:focus,\n  > .form-floating:focus-within {\n    z-index: 5;\n  }\n\n  // Ensure buttons are always above inputs for more visually pleasing borders.\n  // This isn't needed for `.input-group-text` since it shares the same border-color\n  // as our inputs.\n  .btn {\n    position: relative;\n    z-index: 2;\n\n    &:focus {\n      z-index: 5;\n    }\n  }\n}\n\n\n// Textual addons\n//\n// Serves as a catch-all element for any text or radio/checkbox input you wish\n// to prepend or append to an input.\n\n.input-group-text {\n  display: flex;\n  align-items: center;\n  padding: $input-group-addon-padding-y $input-group-addon-padding-x;\n  @include font-size($input-font-size); // Match inputs\n  font-weight: $input-group-addon-font-weight;\n  line-height: $input-line-height;\n  color: $input-group-addon-color;\n  text-align: center;\n  white-space: nowrap;\n  background-color: $input-group-addon-bg;\n  border: $input-border-width solid $input-group-addon-border-color;\n  @include border-radius($input-border-radius);\n}\n\n\n// Sizing\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .form-select,\n.input-group-lg > .input-group-text,\n.input-group-lg > .btn {\n  padding: $input-padding-y-lg $input-padding-x-lg;\n  @include font-size($input-font-size-lg);\n  @include border-radius($input-border-radius-lg);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .form-select,\n.input-group-sm > .input-group-text,\n.input-group-sm > .btn {\n  padding: $input-padding-y-sm $input-padding-x-sm;\n  @include font-size($input-font-size-sm);\n  @include border-radius($input-border-radius-sm);\n}\n\n.input-group-lg > .form-select,\n.input-group-sm > .form-select {\n  padding-right: $form-select-padding-x + $form-select-indicator-padding;\n}\n\n\n// Rounded corners\n//\n// These rulesets must come after the sizing ones to properly override sm and lg\n// border-radius values when extending. They're more specific than we'd like\n// with the `.input-group >` part, but without it, we cannot override the sizing.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.input-group {\n  &:not(.has-validation) {\n    > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),\n    > .dropdown-toggle:nth-last-child(n + 3),\n    > .form-floating:not(:last-child) > .form-control,\n    > .form-floating:not(:last-child) > .form-select {\n      @include border-end-radius(0);\n    }\n  }\n\n  &.has-validation {\n    > :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),\n    > .dropdown-toggle:nth-last-child(n + 4),\n    > .form-floating:nth-last-child(n + 3) > .form-control,\n    > .form-floating:nth-last-child(n + 3) > .form-select {\n      @include border-end-radius(0);\n    }\n  }\n\n  $validation-messages: \"\";\n  @each $state in map-keys($form-validation-states) {\n    $validation-messages: $validation-messages + \":not(.\" + unquote($state) + \"-tooltip)\" + \":not(.\" + unquote($state) + \"-feedback)\";\n  }\n\n  > :not(:first-child):not(.dropdown-menu)#{$validation-messages} {\n    margin-left: -$input-border-width;\n    @include border-start-radius(0);\n  }\n\n  > .form-floating:not(:first-child) > .form-control,\n  > .form-floating:not(:first-child) > .form-select {\n    @include border-start-radius(0);\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/forms/_labels.scss",
    "content": "//\n// Labels\n//\n\n.form-label {\n  margin-bottom: $form-label-margin-bottom;\n  @include font-size($form-label-font-size);\n  font-style: $form-label-font-style;\n  font-weight: $form-label-font-weight;\n  color: $form-label-color;\n}\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n  padding-top: add($input-padding-y, $input-border-width);\n  padding-bottom: add($input-padding-y, $input-border-width);\n  margin-bottom: 0; // Override the `<legend>` default\n  @include font-size(inherit); // Override the `<legend>` default\n  font-style: $form-label-font-style;\n  font-weight: $form-label-font-weight;\n  line-height: $input-line-height;\n  color: $form-label-color;\n}\n\n.col-form-label-lg {\n  padding-top: add($input-padding-y-lg, $input-border-width);\n  padding-bottom: add($input-padding-y-lg, $input-border-width);\n  @include font-size($input-font-size-lg);\n}\n\n.col-form-label-sm {\n  padding-top: add($input-padding-y-sm, $input-border-width);\n  padding-bottom: add($input-padding-y-sm, $input-border-width);\n  @include font-size($input-font-size-sm);\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/forms/_validation.scss",
    "content": "// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid. Works\n// primarily for client-side validation via scoped `:invalid` and `:valid`\n// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for\n// server-side validation.\n\n// scss-docs-start form-validation-states-loop\n@each $state, $data in $form-validation-states {\n  @include form-validation-state($state, $data...);\n}\n// scss-docs-end form-validation-states-loop\n"
  },
  {
    "path": "dist/lib/bootstrap5/helpers/_clearfix.scss",
    "content": ".clearfix {\n  @include clearfix();\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/helpers/_color-bg.scss",
    "content": "// stylelint-disable function-name-case\n\n// All-caps `RGBA()` function used because of this Sass bug: https://github.com/sass/node-sass/issues/2251\n@each $color, $value in $theme-colors {\n  $color-rgb: to-rgb($value);\n  .text-bg-#{$color} {\n    color: color-contrast($value) if($enable-important-utilities, !important, null);\n    background-color: RGBA($color-rgb, var(--#{$prefix}bg-opacity, 1)) if($enable-important-utilities, !important, null);\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/helpers/_colored-links.scss",
    "content": "@each $color, $value in $theme-colors {\n  .link-#{$color} {\n    color: $value !important; // stylelint-disable-line declaration-no-important\n\n    @if $link-shade-percentage != 0 {\n      &:hover,\n      &:focus {\n        color: if(color-contrast($value) == $color-contrast-light, shade-color($value, $link-shade-percentage), tint-color($value, $link-shade-percentage)) !important; // stylelint-disable-line declaration-no-important\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/helpers/_position.scss",
    "content": "// Shorthand\n\n.fixed-top {\n  position: fixed;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: $zindex-fixed;\n}\n\n.fixed-bottom {\n  position: fixed;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $zindex-fixed;\n}\n\n// Responsive sticky top and bottom\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .sticky#{$infix}-top {\n      position: sticky;\n      top: 0;\n      z-index: $zindex-sticky;\n    }\n\n    .sticky#{$infix}-bottom {\n      position: sticky;\n      bottom: 0;\n      z-index: $zindex-sticky;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/helpers/_ratio.scss",
    "content": "// Credit: Nicolas Gallagher and SUIT CSS.\n\n.ratio {\n  position: relative;\n  width: 100%;\n\n  &::before {\n    display: block;\n    padding-top: var(--#{$prefix}aspect-ratio);\n    content: \"\";\n  }\n\n  > * {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n  }\n}\n\n@each $key, $ratio in $aspect-ratios {\n  .ratio-#{$key} {\n    --#{$prefix}aspect-ratio: #{$ratio};\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/helpers/_stacks.scss",
    "content": "// scss-docs-start stacks\n.hstack {\n  display: flex;\n  flex-direction: row;\n  align-items: center;\n  align-self: stretch;\n}\n\n.vstack {\n  display: flex;\n  flex: 1 1 auto;\n  flex-direction: column;\n  align-self: stretch;\n}\n// scss-docs-end stacks\n"
  },
  {
    "path": "dist/lib/bootstrap5/helpers/_stretched-link.scss",
    "content": "//\n// Stretched link\n//\n\n.stretched-link {\n  &::#{$stretched-link-pseudo-element} {\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    z-index: $stretched-link-z-index;\n    content: \"\";\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/helpers/_text-truncation.scss",
    "content": "//\n// Text truncation\n//\n\n.text-truncate {\n  @include text-truncate();\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/helpers/_visually-hidden.scss",
    "content": "//\n// Visually hidden\n//\n\n.visually-hidden,\n.visually-hidden-focusable:not(:focus):not(:focus-within) {\n  @include visually-hidden();\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/helpers/_vr.scss",
    "content": ".vr {\n  display: inline-block;\n  align-self: stretch;\n  width: 1px;\n  min-height: 1em;\n  background-color: currentcolor;\n  opacity: $hr-opacity;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_alert.scss",
    "content": "// scss-docs-start alert-variant-mixin\n@mixin alert-variant($background, $border, $color) {\n  --#{$prefix}alert-color: #{$color};\n  --#{$prefix}alert-bg: #{$background};\n  --#{$prefix}alert-border-color: #{$border};\n\n  @if $enable-gradients {\n    background-image: var(--#{$prefix}gradient);\n  }\n\n  .alert-link {\n    color: shade-color($color, 20%);\n  }\n}\n// scss-docs-end alert-variant-mixin\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_backdrop.scss",
    "content": "// Shared between modals and offcanvases\n@mixin overlay-backdrop($zindex, $backdrop-bg, $backdrop-opacity) {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: $zindex;\n  width: 100vw;\n  height: 100vh;\n  background-color: $backdrop-bg;\n\n  // Fade for backdrop\n  &.fade { opacity: 0; }\n  &.show { opacity: $backdrop-opacity; }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_banner.scss",
    "content": "@mixin bsBanner($file) {\n  /*!\n   * Bootstrap #{$file} v5.2.3 (https://getbootstrap.com/)\n   * Copyright 2011-2022 The Bootstrap Authors\n   * Copyright 2011-2022 Twitter, Inc.\n   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n   */\n}\n\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_border-radius.scss",
    "content": "// stylelint-disable property-disallowed-list\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n  $return: ();\n  @each $value in $radius {\n    @if type-of($value) == number {\n      $return: append($return, max($value, 0));\n    } @else {\n      $return: append($return, $value);\n    }\n  }\n  @return $return;\n}\n\n// scss-docs-start border-radius-mixins\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n  @if $enable-rounded {\n    border-radius: valid-radius($radius);\n  }\n  @else if $fallback-border-radius != false {\n    border-radius: $fallback-border-radius;\n  }\n}\n\n@mixin border-top-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-top-left-radius: valid-radius($radius);\n    border-top-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-end-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-top-right-radius: valid-radius($radius);\n    border-bottom-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-bottom-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-bottom-right-radius: valid-radius($radius);\n    border-bottom-left-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-start-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-top-left-radius: valid-radius($radius);\n    border-bottom-left-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-top-start-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-top-left-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-top-end-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-top-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-bottom-end-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-bottom-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-bottom-start-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-bottom-left-radius: valid-radius($radius);\n  }\n}\n// scss-docs-end border-radius-mixins\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_box-shadow.scss",
    "content": "@mixin box-shadow($shadow...) {\n  @if $enable-shadows {\n    $result: ();\n\n    @each $value in $shadow {\n      @if $value != null {\n        $result: append($result, $value, \"comma\");\n      }\n      @if $value == none and length($shadow) > 1 {\n        @warn \"The keyword 'none' must be used as a single argument.\";\n      }\n    }\n\n    @if (length($result) > 0) {\n      box-shadow: $result;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_breakpoints.scss",
    "content": "// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n//    (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n//    >> breakpoint-next(sm)\n//    md\n//    >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n//    md\n//    >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl xxl))\n//    md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n  $n: index($breakpoint-names, $name);\n  @if not $n {\n    @error \"breakpoint `#{$name}` not found in `#{$breakpoints}`\";\n  }\n  @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n//    >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n//    576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n  $min: map-get($breakpoints, $name);\n  @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n//    >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n//    767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n  $max: map-get($breakpoints, $name);\n  @return if($max and $max > 0, $max - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n//    >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n//    \"\"  (Returns a blank string)\n//    >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n//    \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n  @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  @if $min {\n    @media (min-width: $min) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n  $max: breakpoint-max($name, $breakpoints);\n  @if $max {\n    @media (max-width: $max) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($lower, $breakpoints);\n  $max: breakpoint-max($upper, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($lower, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($upper, $breakpoints) {\n      @content;\n    }\n  }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n  $min:  breakpoint-min($name, $breakpoints);\n  $next: breakpoint-next($name, $breakpoints);\n  $max:  breakpoint-max($next, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($name, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($next, $breakpoints) {\n      @content;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_buttons.scss",
    "content": "// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n// scss-docs-start btn-variant-mixin\n@mixin button-variant(\n  $background,\n  $border,\n  $color: color-contrast($background),\n  $hover-background: if($color == $color-contrast-light, shade-color($background, $btn-hover-bg-shade-amount), tint-color($background, $btn-hover-bg-tint-amount)),\n  $hover-border: if($color == $color-contrast-light, shade-color($border, $btn-hover-border-shade-amount), tint-color($border, $btn-hover-border-tint-amount)),\n  $hover-color: color-contrast($hover-background),\n  $active-background: if($color == $color-contrast-light, shade-color($background, $btn-active-bg-shade-amount), tint-color($background, $btn-active-bg-tint-amount)),\n  $active-border: if($color == $color-contrast-light, shade-color($border, $btn-active-border-shade-amount), tint-color($border, $btn-active-border-tint-amount)),\n  $active-color: color-contrast($active-background),\n  $disabled-background: $background,\n  $disabled-border: $border,\n  $disabled-color: color-contrast($disabled-background)\n) {\n  --#{$prefix}btn-color: #{$color};\n  --#{$prefix}btn-bg: #{$background};\n  --#{$prefix}btn-border-color: #{$border};\n  --#{$prefix}btn-hover-color: #{$hover-color};\n  --#{$prefix}btn-hover-bg: #{$hover-background};\n  --#{$prefix}btn-hover-border-color: #{$hover-border};\n  --#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix($color, $border, 15%))};\n  --#{$prefix}btn-active-color: #{$active-color};\n  --#{$prefix}btn-active-bg: #{$active-background};\n  --#{$prefix}btn-active-border-color: #{$active-border};\n  --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow};\n  --#{$prefix}btn-disabled-color: #{$disabled-color};\n  --#{$prefix}btn-disabled-bg: #{$disabled-background};\n  --#{$prefix}btn-disabled-border-color: #{$disabled-border};\n}\n// scss-docs-end btn-variant-mixin\n\n// scss-docs-start btn-outline-variant-mixin\n@mixin button-outline-variant(\n  $color,\n  $color-hover: color-contrast($color),\n  $active-background: $color,\n  $active-border: $color,\n  $active-color: color-contrast($active-background)\n) {\n  --#{$prefix}btn-color: #{$color};\n  --#{$prefix}btn-border-color: #{$color};\n  --#{$prefix}btn-hover-color: #{$color-hover};\n  --#{$prefix}btn-hover-bg: #{$active-background};\n  --#{$prefix}btn-hover-border-color: #{$active-border};\n  --#{$prefix}btn-focus-shadow-rgb: #{to-rgb($color)};\n  --#{$prefix}btn-active-color: #{$active-color};\n  --#{$prefix}btn-active-bg: #{$active-background};\n  --#{$prefix}btn-active-border-color: #{$active-border};\n  --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow};\n  --#{$prefix}btn-disabled-color: #{$color};\n  --#{$prefix}btn-disabled-bg: transparent;\n  --#{$prefix}btn-disabled-border-color: #{$color};\n  --#{$prefix}gradient: none;\n}\n// scss-docs-end btn-outline-variant-mixin\n\n// scss-docs-start btn-size-mixin\n@mixin button-size($padding-y, $padding-x, $font-size, $border-radius) {\n  --#{$prefix}btn-padding-y: #{$padding-y};\n  --#{$prefix}btn-padding-x: #{$padding-x};\n  @include rfs($font-size, --#{$prefix}btn-font-size);\n  --#{$prefix}btn-border-radius: #{$border-radius};\n}\n// scss-docs-end btn-size-mixin\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_caret.scss",
    "content": "// scss-docs-start caret-mixins\n@mixin caret-down {\n  border-top: $caret-width solid;\n  border-right: $caret-width solid transparent;\n  border-bottom: 0;\n  border-left: $caret-width solid transparent;\n}\n\n@mixin caret-up {\n  border-top: 0;\n  border-right: $caret-width solid transparent;\n  border-bottom: $caret-width solid;\n  border-left: $caret-width solid transparent;\n}\n\n@mixin caret-end {\n  border-top: $caret-width solid transparent;\n  border-right: 0;\n  border-bottom: $caret-width solid transparent;\n  border-left: $caret-width solid;\n}\n\n@mixin caret-start {\n  border-top: $caret-width solid transparent;\n  border-right: $caret-width solid;\n  border-bottom: $caret-width solid transparent;\n}\n\n@mixin caret($direction: down) {\n  @if $enable-caret {\n    &::after {\n      display: inline-block;\n      margin-left: $caret-spacing;\n      vertical-align: $caret-vertical-align;\n      content: \"\";\n      @if $direction == down {\n        @include caret-down();\n      } @else if $direction == up {\n        @include caret-up();\n      } @else if $direction == end {\n        @include caret-end();\n      }\n    }\n\n    @if $direction == start {\n      &::after {\n        display: none;\n      }\n\n      &::before {\n        display: inline-block;\n        margin-right: $caret-spacing;\n        vertical-align: $caret-vertical-align;\n        content: \"\";\n        @include caret-start();\n      }\n    }\n\n    &:empty::after {\n      margin-left: 0;\n    }\n  }\n}\n// scss-docs-end caret-mixins\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_clearfix.scss",
    "content": "// scss-docs-start clearfix\n@mixin clearfix() {\n  &::after {\n    display: block;\n    clear: both;\n    content: \"\";\n  }\n}\n// scss-docs-end clearfix\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_color-scheme.scss",
    "content": "// scss-docs-start mixin-color-scheme\n@mixin color-scheme($name) {\n  @media (prefers-color-scheme: #{$name}) {\n    @content;\n  }\n}\n// scss-docs-end mixin-color-scheme\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_container.scss",
    "content": "// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n  --#{$prefix}gutter-x: #{$gutter};\n  --#{$prefix}gutter-y: 0;\n  width: 100%;\n  padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n  padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n  margin-right: auto;\n  margin-left: auto;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_deprecate.scss",
    "content": "// Deprecate mixin\n//\n// This mixin can be used to deprecate mixins or functions.\n// `$enable-deprecation-messages` is a global variable, `$ignore-warning` is a variable that can be passed to\n// some deprecated mixins to suppress the warning (for example if the mixin is still be used in the current version of Bootstrap)\n@mixin deprecate($name, $deprecate-version, $remove-version, $ignore-warning: false) {\n  @if ($enable-deprecation-messages != false and $ignore-warning != true) {\n    @warn \"#{$name} has been deprecated as of #{$deprecate-version}. It will be removed entirely in #{$remove-version}.\";\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_forms.scss",
    "content": "// This mixin uses an `if()` technique to be compatible with Dart Sass\n// See https://github.com/sass/sass/issues/1873#issuecomment-152293725 for more details\n\n// scss-docs-start form-validation-mixins\n@mixin form-validation-state-selector($state) {\n  @if ($state == \"valid\" or $state == \"invalid\") {\n    .was-validated #{if(&, \"&\", \"\")}:#{$state},\n    #{if(&, \"&\", \"\")}.is-#{$state} {\n      @content;\n    }\n  } @else {\n    #{if(&, \"&\", \"\")}.is-#{$state} {\n      @content;\n    }\n  }\n}\n\n@mixin form-validation-state(\n  $state,\n  $color,\n  $icon,\n  $tooltip-color: color-contrast($color),\n  $tooltip-bg-color: rgba($color, $form-feedback-tooltip-opacity),\n  $focus-box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba($color, $input-btn-focus-color-opacity)\n) {\n  .#{$state}-feedback {\n    display: none;\n    width: 100%;\n    margin-top: $form-feedback-margin-top;\n    @include font-size($form-feedback-font-size);\n    font-style: $form-feedback-font-style;\n    color: $color;\n  }\n\n  .#{$state}-tooltip {\n    position: absolute;\n    top: 100%;\n    z-index: 5;\n    display: none;\n    max-width: 100%; // Contain to parent when possible\n    padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;\n    margin-top: .1rem;\n    @include font-size($form-feedback-tooltip-font-size);\n    line-height: $form-feedback-tooltip-line-height;\n    color: $tooltip-color;\n    background-color: $tooltip-bg-color;\n    @include border-radius($form-feedback-tooltip-border-radius);\n  }\n\n  @include form-validation-state-selector($state) {\n    ~ .#{$state}-feedback,\n    ~ .#{$state}-tooltip {\n      display: block;\n    }\n  }\n\n  .form-control {\n    @include form-validation-state-selector($state) {\n      border-color: $color;\n\n      @if $enable-validation-icons {\n        padding-right: $input-height-inner;\n        background-image: escape-svg($icon);\n        background-repeat: no-repeat;\n        background-position: right $input-height-inner-quarter center;\n        background-size: $input-height-inner-half $input-height-inner-half;\n      }\n\n      &:focus {\n        border-color: $color;\n        box-shadow: $focus-box-shadow;\n      }\n    }\n  }\n\n  // stylelint-disable-next-line selector-no-qualifying-type\n  textarea.form-control {\n    @include form-validation-state-selector($state) {\n      @if $enable-validation-icons {\n        padding-right: $input-height-inner;\n        background-position: top $input-height-inner-quarter right $input-height-inner-quarter;\n      }\n    }\n  }\n\n  .form-select {\n    @include form-validation-state-selector($state) {\n      border-color: $color;\n\n      @if $enable-validation-icons {\n        &:not([multiple]):not([size]),\n        &:not([multiple])[size=\"1\"] {\n          padding-right: $form-select-feedback-icon-padding-end;\n          background-image: escape-svg($form-select-indicator), escape-svg($icon);\n          background-position: $form-select-bg-position, $form-select-feedback-icon-position;\n          background-size: $form-select-bg-size, $form-select-feedback-icon-size;\n        }\n      }\n\n      &:focus {\n        border-color: $color;\n        box-shadow: $focus-box-shadow;\n      }\n    }\n  }\n\n  .form-control-color {\n    @include form-validation-state-selector($state) {\n      @if $enable-validation-icons {\n        width: add($form-color-width, $input-height-inner);\n      }\n    }\n  }\n\n  .form-check-input {\n    @include form-validation-state-selector($state) {\n      border-color: $color;\n\n      &:checked {\n        background-color: $color;\n      }\n\n      &:focus {\n        box-shadow: $focus-box-shadow;\n      }\n\n      ~ .form-check-label {\n        color: $color;\n      }\n    }\n  }\n  .form-check-inline .form-check-input {\n    ~ .#{$state}-feedback {\n      margin-left: .5em;\n    }\n  }\n\n  .input-group {\n    > .form-control:not(:focus),\n    > .form-select:not(:focus),\n    > .form-floating:not(:focus-within) {\n      @include form-validation-state-selector($state) {\n        @if $state == \"valid\" {\n          z-index: 3;\n        } @else if $state == \"invalid\" {\n          z-index: 4;\n        }\n      }\n    }\n  }\n}\n// scss-docs-end form-validation-mixins\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_gradients.scss",
    "content": "// Gradients\n\n// scss-docs-start gradient-bg-mixin\n@mixin gradient-bg($color: null) {\n  background-color: $color;\n\n  @if $enable-gradients {\n    background-image: var(--#{$prefix}gradient);\n  }\n}\n// scss-docs-end gradient-bg-mixin\n\n// scss-docs-start gradient-mixins\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n  background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: null, $end-percent: null) {\n  background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n}\n\n@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {\n  background-image: linear-gradient($deg, $start-color, $end-color);\n}\n\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n  background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n}\n\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n  background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n}\n\n@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {\n  background-image: radial-gradient(circle, $inner-color, $outer-color);\n}\n\n@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {\n  background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n// scss-docs-end gradient-mixins\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_grid.scss",
    "content": "// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter: $grid-gutter-width) {\n  --#{$prefix}gutter-x: #{$gutter};\n  --#{$prefix}gutter-y: 0;\n  display: flex;\n  flex-wrap: wrap;\n  // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n  margin-top: calc(-1 * var(--#{$prefix}gutter-y)); // stylelint-disable-line function-disallowed-list\n  margin-right: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n  margin-left: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n}\n\n@mixin make-col-ready() {\n  // Add box sizing if only the grid is loaded\n  box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);\n  // Prevent columns from becoming too narrow when at smaller grid tiers by\n  // always setting `width: 100%;`. This works because we set the width\n  // later on to override this initial width.\n  flex-shrink: 0;\n  width: 100%;\n  max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n  padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n  padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n  margin-top: var(--#{$prefix}gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n  @if $size {\n    flex: 0 0 auto;\n    width: percentage(divide($size, $columns));\n\n  } @else {\n    flex: 1 1 0;\n    max-width: 100%;\n  }\n}\n\n@mixin make-col-auto() {\n  flex: 0 0 auto;\n  width: auto;\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n  $num: divide($size, $columns);\n  margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// number of columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n  > * {\n    flex: 0 0 auto;\n    width: divide(100%, $count);\n  }\n}\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n  @each $breakpoint in map-keys($breakpoints) {\n    $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n    @include media-breakpoint-up($breakpoint, $breakpoints) {\n      // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n      .col#{$infix} {\n        flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n      }\n\n      .row-cols#{$infix}-auto > * {\n        @include make-col-auto();\n      }\n\n      @if $grid-row-columns > 0 {\n        @for $i from 1 through $grid-row-columns {\n          .row-cols#{$infix}-#{$i} {\n            @include row-cols($i);\n          }\n        }\n      }\n\n      .col#{$infix}-auto {\n        @include make-col-auto();\n      }\n\n      @if $columns > 0 {\n        @for $i from 1 through $columns {\n          .col#{$infix}-#{$i} {\n            @include make-col($i, $columns);\n          }\n        }\n\n        // `$columns - 1` because offsetting by the width of an entire row isn't possible\n        @for $i from 0 through ($columns - 1) {\n          @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n            .offset#{$infix}-#{$i} {\n              @include make-col-offset($i, $columns);\n            }\n          }\n        }\n      }\n\n      // Gutters\n      //\n      // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n      @each $key, $value in $gutters {\n        .g#{$infix}-#{$key},\n        .gx#{$infix}-#{$key} {\n          --#{$prefix}gutter-x: #{$value};\n        }\n\n        .g#{$infix}-#{$key},\n        .gy#{$infix}-#{$key} {\n          --#{$prefix}gutter-y: #{$value};\n        }\n      }\n    }\n  }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {\n  @each $breakpoint in map-keys($breakpoints) {\n    $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n    @include media-breakpoint-up($breakpoint, $breakpoints) {\n      @if $columns > 0 {\n        @for $i from 1 through $columns {\n          .g-col#{$infix}-#{$i} {\n            grid-column: auto / span $i;\n          }\n        }\n\n        // Start with `1` because `0` is and invalid value.\n        // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n        @for $i from 1 through ($columns - 1) {\n          .g-start#{$infix}-#{$i} {\n            grid-column-start: $i;\n          }\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_image.scss",
    "content": "// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid {\n  // Part 1: Set a maximum relative to the parent\n  max-width: 100%;\n  // Part 2: Override the height to auto, otherwise images will be stretched\n  // when setting a width and height attribute on the img element.\n  height: auto;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_list-group.scss",
    "content": "// List Groups\n\n// scss-docs-start list-group-mixin\n@mixin list-group-item-variant($state, $background, $color) {\n  .list-group-item-#{$state} {\n    color: $color;\n    background-color: $background;\n\n    &.list-group-item-action {\n      &:hover,\n      &:focus {\n        color: $color;\n        background-color: shade-color($background, 10%);\n      }\n\n      &.active {\n        color: $white;\n        background-color: $color;\n        border-color: $color;\n      }\n    }\n  }\n}\n// scss-docs-end list-group-mixin\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_lists.scss",
    "content": "// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_pagination.scss",
    "content": "// Pagination\n\n// scss-docs-start pagination-mixin\n@mixin pagination-size($padding-y, $padding-x, $font-size, $border-radius) {\n  --#{$prefix}pagination-padding-x: #{$padding-x};\n  --#{$prefix}pagination-padding-y: #{$padding-y};\n  @include rfs($font-size, --#{$prefix}pagination-font-size);\n  --#{$prefix}pagination-border-radius: #{$border-radius};\n}\n// scss-docs-end pagination-mixin\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_reset-text.scss",
    "content": "@mixin reset-text {\n  font-family: $font-family-base;\n  // We deliberately do NOT reset font-size or overflow-wrap / word-wrap.\n  font-style: normal;\n  font-weight: $font-weight-normal;\n  line-height: $line-height-base;\n  text-align: left; // Fallback for where `start` is not supported\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  white-space: normal;\n  word-spacing: normal;\n  line-break: auto;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_resize.scss",
    "content": "// Resize anything\n\n@mixin resizable($direction) {\n  overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`\n  resize: $direction; // Options: horizontal, vertical, both\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_table-variants.scss",
    "content": "// scss-docs-start table-variant\n@mixin table-variant($state, $background) {\n  .table-#{$state} {\n    $color: color-contrast(opaque($body-bg, $background));\n    $hover-bg: mix($color, $background, percentage($table-hover-bg-factor));\n    $striped-bg: mix($color, $background, percentage($table-striped-bg-factor));\n    $active-bg: mix($color, $background, percentage($table-active-bg-factor));\n    $table-border-color: mix($color, $background, percentage($table-border-factor));\n\n    --#{$prefix}table-color: #{$color};\n    --#{$prefix}table-bg: #{$background};\n    --#{$prefix}table-border-color: #{$table-border-color};\n    --#{$prefix}table-striped-bg: #{$striped-bg};\n    --#{$prefix}table-striped-color: #{color-contrast($striped-bg)};\n    --#{$prefix}table-active-bg: #{$active-bg};\n    --#{$prefix}table-active-color: #{color-contrast($active-bg)};\n    --#{$prefix}table-hover-bg: #{$hover-bg};\n    --#{$prefix}table-hover-color: #{color-contrast($hover-bg)};\n\n    color: var(--#{$prefix}table-color);\n    border-color: var(--#{$prefix}table-border-color);\n  }\n}\n// scss-docs-end table-variant\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_text-truncate.scss",
    "content": "// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_transition.scss",
    "content": "// stylelint-disable property-disallowed-list\n@mixin transition($transition...) {\n  @if length($transition) == 0 {\n    $transition: $transition-base;\n  }\n\n  @if length($transition) > 1 {\n    @each $value in $transition {\n      @if $value == null or $value == none {\n        @warn \"The keyword 'none' or 'null' must be used as a single argument.\";\n      }\n    }\n  }\n\n  @if $enable-transitions {\n    @if nth($transition, 1) != null {\n      transition: $transition;\n    }\n\n    @if $enable-reduced-motion and nth($transition, 1) != null and nth($transition, 1) != none {\n      @media (prefers-reduced-motion: reduce) {\n        transition: none;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_utilities.scss",
    "content": "// Utility generator\n// Used to generate utilities & print utilities\n@mixin generate-utility($utility, $infix, $is-rfs-media-query: false) {\n  $values: map-get($utility, values);\n\n  // If the values are a list or string, convert it into a map\n  @if type-of($values) == \"string\" or type-of(nth($values, 1)) != \"list\" {\n    $values: zip($values, $values);\n  }\n\n  @each $key, $value in $values {\n    $properties: map-get($utility, property);\n\n    // Multiple properties are possible, for example with vertical or horizontal margins or paddings\n    @if type-of($properties) == \"string\" {\n      $properties: append((), $properties);\n    }\n\n    // Use custom class if present\n    $property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1));\n    $property-class: if($property-class == null, \"\", $property-class);\n\n    // Use custom CSS variable name if present, otherwise default to `class`\n    $css-variable-name: if(map-has-key($utility, css-variable-name), map-get($utility, css-variable-name), map-get($utility, class));\n\n    // State params to generate pseudo-classes\n    $state: if(map-has-key($utility, state), map-get($utility, state), ());\n\n    $infix: if($property-class == \"\" and str-slice($infix, 1, 1) == \"-\", str-slice($infix, 2), $infix);\n\n    // Don't prefix if value key is null (e.g. with shadow class)\n    $property-class-modifier: if($key, if($property-class == \"\" and $infix == \"\", \"\", \"-\") + $key, \"\");\n\n    @if map-get($utility, rfs) {\n      // Inside the media query\n      @if $is-rfs-media-query {\n        $val: rfs-value($value);\n\n        // Do not render anything if fluid and non fluid values are the same\n        $value: if($val == rfs-fluid-value($value), null, $val);\n      }\n      @else {\n        $value: rfs-fluid-value($value);\n      }\n    }\n\n    $is-css-var: map-get($utility, css-var);\n    $is-local-vars: map-get($utility, local-vars);\n    $is-rtl: map-get($utility, rtl);\n\n    @if $value != null {\n      @if $is-rtl == false {\n        /* rtl:begin:remove */\n      }\n\n      @if $is-css-var {\n        .#{$property-class + $infix + $property-class-modifier} {\n          --#{$prefix}#{$css-variable-name}: #{$value};\n        }\n\n        @each $pseudo in $state {\n          .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n            --#{$prefix}#{$css-variable-name}: #{$value};\n          }\n        }\n      } @else {\n        .#{$property-class + $infix + $property-class-modifier} {\n          @each $property in $properties {\n            @if $is-local-vars {\n              @each $local-var, $variable in $is-local-vars {\n                --#{$prefix}#{$local-var}: #{$variable};\n              }\n            }\n            #{$property}: $value if($enable-important-utilities, !important, null);\n          }\n        }\n\n        @each $pseudo in $state {\n          .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n            @each $property in $properties {\n              @if $is-local-vars {\n                @each $local-var, $variable in $is-local-vars {\n                  --#{$prefix}#{$local-var}: #{$variable};\n                }\n              }\n              #{$property}: $value if($enable-important-utilities, !important, null);\n            }\n          }\n        }\n      }\n\n      @if $is-rtl == false {\n        /* rtl:end:remove */\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/mixins/_visually-hidden.scss",
    "content": "// stylelint-disable declaration-no-important\n\n// Hide content visually while keeping it accessible to assistive technologies\n//\n// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\n// See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin visually-hidden() {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  margin: -1px !important; // Fix for https://github.com/twbs/bootstrap/issues/25686\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important;\n}\n\n// Use to only display content when it's focused, or one of its child elements is focused\n// (i.e. when focus is within the element/container that the class was applied to)\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n\n@mixin visually-hidden-focusable() {\n  &:not(:focus):not(:focus-within) {\n    @include visually-hidden();\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/utilities/_api.scss",
    "content": "// Loop over each breakpoint\n@each $breakpoint in map-keys($grid-breakpoints) {\n\n  // Generate media query if needed\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    // Loop over each utility property\n    @each $key, $utility in $utilities {\n      // The utility can be disabled with `false`, thus check if the utility is a map first\n      // Only proceed if responsive media queries are enabled or if it's the base media query\n      @if type-of($utility) == \"map\" and (map-get($utility, responsive) or $infix == \"\") {\n        @include generate-utility($utility, $infix);\n      }\n    }\n  }\n}\n\n// RFS rescaling\n@media (min-width: $rfs-mq-value) {\n  @each $breakpoint in map-keys($grid-breakpoints) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    @if (map-get($grid-breakpoints, $breakpoint) < $rfs-breakpoint) {\n      // Loop over each utility property\n      @each $key, $utility in $utilities {\n        // The utility can be disabled with `false`, thus check if the utility is a map first\n        // Only proceed if responsive media queries are enabled or if it's the base media query\n        @if type-of($utility) == \"map\" and map-get($utility, rfs) and (map-get($utility, responsive) or $infix == \"\") {\n          @include generate-utility($utility, $infix, true);\n        }\n      }\n    }\n  }\n}\n\n\n// Print utilities\n@media print {\n  @each $key, $utility in $utilities {\n    // The utility can be disabled with `false`, thus check if the utility is a map first\n    // Then check if the utility needs print styles\n    @if type-of($utility) == \"map\" and map-get($utility, print) == true {\n      @include generate-utility($utility, \"-print\");\n    }\n  }\n}\n"
  },
  {
    "path": "dist/lib/bootstrap5/vendor/_rfs.scss",
    "content": "// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated responsive values for font sizes, paddings, margins and much more\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)\n\n// Configuration\n\n// Base value\n$rfs-base-value: 1.25rem !default;\n$rfs-unit: rem !default;\n\n@if $rfs-unit != rem and $rfs-unit != px {\n  @error \"`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where values start decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\n  @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n}\n\n// Resize values based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != number or $rfs-factor <= 1 {\n  @error \"`#{$rfs-factor}` is not a valid  $rfs-factor, it must be greater than 1.\";\n}\n\n// Mode. Possibilities: \"min-media-query\", \"max-media-query\"\n$rfs-mode: min-media-query !default;\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-rfs to false\n$enable-rfs: true !default;\n\n// Cache $rfs-base-value unit\n$rfs-base-value-unit: unit($rfs-base-value);\n\n@function divide($dividend, $divisor, $precision: 10) {\n  $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n  $dividend: abs($dividend);\n  $divisor: abs($divisor);\n  @if $dividend == 0 {\n    @return 0;\n  }\n  @if $divisor == 0 {\n    @error \"Cannot divide by 0\";\n  }\n  $remainder: $dividend;\n  $result: 0;\n  $factor: 10;\n  @while ($remainder > 0 and $precision >= 0) {\n    $quotient: 0;\n    @while ($remainder >= $divisor) {\n      $remainder: $remainder - $divisor;\n      $quotient: $quotient + 1;\n    }\n    $result: $result * 10 + $quotient;\n    $factor: $factor * .1;\n    $remainder: $remainder * 10;\n    $precision: $precision - 1;\n    @if ($precision < 0 and $remainder >= $divisor * 5) {\n      $result: $result + 1;\n    }\n  }\n  $result: $result * $factor * $sign;\n  $dividend-unit: unit($dividend);\n  $divisor-unit: unit($divisor);\n  $unit-map: (\n    \"px\": 1px,\n    \"rem\": 1rem,\n    \"em\": 1em,\n    \"%\": 1%\n  );\n  @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n    $result: $result * map-get($unit-map, $dividend-unit);\n  }\n  @return $result;\n}\n\n// Remove px-unit from $rfs-base-value for calculations\n@if $rfs-base-value-unit == px {\n  $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);\n}\n@else if $rfs-base-value-unit == rem {\n  $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == px {\n  $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == \"em\" {\n  $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));\n}\n\n// Calculate the media query value\n$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});\n$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);\n$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query {\n  @if $rfs-two-dimensional {\n    @if $rfs-mode == max-media-query {\n      @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n        @content;\n      }\n    }\n    @else {\n      @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n        @content;\n      }\n    }\n  }\n  @else {\n    @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {\n      @content;\n    }\n  }\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-rule {\n  @if $rfs-class == disable and $rfs-mode == max-media-query {\n    // Adding an extra class increases specificity, which prevents the media query to override the property\n    &,\n    .disable-rfs &,\n    &.disable-rfs {\n      @content;\n    }\n  }\n  @else if $rfs-class == enable and $rfs-mode == min-media-query {\n    .enable-rfs &,\n    &.enable-rfs {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n// Internal mixin that adds enable classes to the selector if needed.\n@mixin _rfs-media-query-rule {\n\n  @if $rfs-class == enable {\n    @if $rfs-mode == min-media-query {\n      @content;\n    }\n\n    @include _rfs-media-query {\n      .enable-rfs &,\n      &.enable-rfs {\n        @content;\n      }\n    }\n  }\n  @else {\n    @if $rfs-class == disable and $rfs-mode == min-media-query {\n      .disable-rfs &,\n      &.disable-rfs {\n        @content;\n      }\n    }\n    @include _rfs-media-query {\n      @content;\n    }\n  }\n}\n\n// Helper function to get the formatted non-responsive value\n@function rfs-value($values) {\n  // Convert to list\n  $values: if(type-of($values) != list, ($values,), $values);\n\n  $val: '';\n\n  // Loop over each value and calculate value\n  @each $value in $values {\n    @if $value == 0 {\n      $val: $val + ' 0';\n    }\n    @else {\n      // Cache $value unit\n      $unit: if(type-of($value) == \"number\", unit($value), false);\n\n      @if $unit == px {\n        // Convert to rem if needed\n        $val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);\n      }\n      @else if $unit == rem {\n        // Convert to px if needed\n        $val: $val + ' ' + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);\n      }\n      @else {\n        // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n        $val: $val + ' ' + $value;\n      }\n    }\n  }\n\n  // Remove first space\n  @return unquote(str-slice($val, 2));\n}\n\n// Helper function to get the responsive value calculated by RFS\n@function rfs-fluid-value($values) {\n  // Convert to list\n  $values: if(type-of($values) != list, ($values,), $values);\n\n  $val: '';\n\n  // Loop over each value and calculate value\n  @each $value in $values {\n    @if $value == 0 {\n      $val: $val + ' 0';\n    }\n\n    @else {\n      // Cache $value unit\n      $unit: if(type-of($value) == \"number\", unit($value), false);\n\n      // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n      @if not $unit or $unit != px and $unit != rem {\n        $val: $val + ' ' + $value;\n      }\n\n      @else {\n        // Remove unit from $value for calculations\n        $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));\n\n        // Only add the media query if the value is greater than the minimum value\n        @if abs($value) <= $rfs-base-value or not $enable-rfs {\n          $val: $val + ' ' +  if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);\n        }\n        @else {\n          // Calculate the minimum value\n          $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);\n\n          // Calculate difference between $value and the minimum value\n          $value-diff: abs($value) - $value-min;\n\n          // Base value formatting\n          $min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);\n\n          // Use negative value if needed\n          $min-width: if($value < 0, -$min-width, $min-width);\n\n          // Use `vmin` if two-dimensional is enabled\n          $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n          // Calculate the variable width between 0 and $rfs-breakpoint\n          $variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};\n\n          // Return the calculated value\n          $val: $val + ' calc(' + $min-width + if($value < 0, ' - ', ' + ') + $variable-width + ')';\n        }\n      }\n    }\n  }\n\n  // Remove first space\n  @return unquote(str-slice($val, 2));\n}\n\n// RFS mixin\n@mixin rfs($values, $property: font-size) {\n  @if $values != null {\n    $val: rfs-value($values);\n    $fluidVal: rfs-fluid-value($values);\n\n    // Do not print the media query if responsive & non-responsive values are the same\n    @if $val == $fluidVal {\n      #{$property}: $val;\n    }\n    @else {\n      @include _rfs-rule {\n        #{$property}: if($rfs-mode == max-media-query, $val, $fluidVal);\n\n        // Include safari iframe resize fix if needed\n        min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\n      }\n\n      @include _rfs-media-query-rule {\n        #{$property}: if($rfs-mode == max-media-query, $fluidVal, $val);\n      }\n    }\n  }\n}\n\n// Shorthand helper mixins\n@mixin font-size($value) {\n  @include rfs($value);\n}\n\n@mixin padding($value) {\n  @include rfs($value, padding);\n}\n\n@mixin padding-top($value) {\n  @include rfs($value, padding-top);\n}\n\n@mixin padding-right($value) {\n  @include rfs($value, padding-right);\n}\n\n@mixin padding-bottom($value) {\n  @include rfs($value, padding-bottom);\n}\n\n@mixin padding-left($value) {\n  @include rfs($value, padding-left);\n}\n\n@mixin margin($value) {\n  @include rfs($value, margin);\n}\n\n@mixin margin-top($value) {\n  @include rfs($value, margin-top);\n}\n\n@mixin margin-right($value) {\n  @include rfs($value, margin-right);\n}\n\n@mixin margin-bottom($value) {\n  @include rfs($value, margin-bottom);\n}\n\n@mixin margin-left($value) {\n  @include rfs($value, margin-left);\n}\n"
  },
  {
    "path": "dist/scss/plugins/auto_position.scss",
    "content": ".#{selectize}-dropdown.plugin-auto_position.#{$selectize}-position-top {\n  border-top: 1px solid $select-color-border;\n  border-bottom: 0 none;\n  border-radius: 3px 3px 0 0;\n  box-shadow: 0 -6px 12px rgb(0 0 0 / 18%);\n}\n\n.#{selectize}-control.plugin-auto_position .#{selectize}-input.#{$selectize}-position-top.dropdown-active {\n  border-radius: 0 0 3px 3px;\n  border-top: 0 none;\n\n  &::before {\n    top: 0;\n    bottom: unset;\n  }\n}\n"
  },
  {
    "path": "dist/scss/plugins/clear_button.scss",
    "content": ".#{$selectize}-control.plugin-clear_button {\n    .clear {\n        text-decoration: none;\n        display: flex;\n        position: absolute;\n        height: 100%;\n        width: 25px;\n        top: 0;\n        right: calc(#{$select-padding-x} - #{$select-padding-item-x});\n        color: rgba(0, 0, 0);\n        opacity: 0.4;\n        font-weight: bold;\n        border: none;\n        cursor: pointer;\n        z-index: 1;\n        font-size: 21px;\n        justify-content: center;\n        align-items: center;\n    }\n\n    .clear:hover {\n        opacity: 1;\n    }\n\n    &.single .clear {\n        right: calc(#{$select-padding-x} - #{$select-padding-item-x} + 1.5rem);\n    }\n\n}\n"
  },
  {
    "path": "dist/scss/plugins/drag_drop.scss",
    "content": ".#{$selectize}-control.plugin-drag_drop {\n  &.multi > .#{$selectize}-input.dragging {\n    overflow: visible;\n  }\n  &.multi > .#{$selectize}-input > div.ui-sortable-placeholder {\n    visibility: visible !important;\n    background: #f2f2f2 !important;\n    background: rgba(0, 0, 0, 0.06) !important;\n    border: 0 none !important;\n    box-shadow: inset 0 0 12px 4px #fff;\n  }\n  .ui-sortable-placeholder::after {\n    content: \"!\";\n    visibility: hidden;\n  }\n  .ui-sortable-helper {\n    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);\n  }\n}\n"
  },
  {
    "path": "dist/scss/plugins/dropdown_header.scss",
    "content": ".#{$selectize}-dropdown.plugin-dropdown_header {\n  .#{$selectize}-dropdown-header {\n    position: relative;\n    padding: ($select-padding-dropdown-item-y * 2)\n      $select-padding-dropdown-item-x;\n    border-bottom: 1px solid $select-color-border;\n    background: mix($select-color-dropdown, $select-color-border, 85%);\n    border-radius: $select-border-radius $select-border-radius 0 0;\n  }\n  .#{$selectize}-dropdown-header-close {\n    position: absolute;\n    right: $select-padding-dropdown-item-x;\n    top: 50%;\n    color: $select-color-text;\n    opacity: 0.4;\n    margin-top: -12px;\n    line-height: 20px;\n    font-size: 20px !important;\n    text-decoration: none;\n  }\n  .#{$selectize}-dropdown-header-close:hover {\n    color: darken($select-color-text, 25%);\n  }\n}\n"
  },
  {
    "path": "dist/scss/plugins/optgroup_columns.scss",
    "content": ".#{$selectize}-dropdown.plugin-optgroup_columns {\n  .#{$selectize}-dropdown-content {\n    display: flex;\n  }\n\n  .optgroup {\n    border-right: 1px solid #f2f2f2;\n    border-top: 0 none;\n    flex-grow: 1;\n    flex-basis: 0;\n    min-width: 0;\n  }\n  .optgroup:last-child {\n    border-right: 0 none;\n  }\n  .optgroup:before {\n    display: none;\n  }\n  .optgroup-header {\n    border-top: 0 none;\n  }\n}\n"
  },
  {
    "path": "dist/scss/plugins/remove_button.scss",
    "content": ".#{$selectize}-control.plugin-remove_button {\n  .item {\n    display: inline-flex;\n    align-items: center;\n    padding-right: 0 !important;\n  }\n\n  .item .remove {\n    color: inherit;\n    text-decoration: none;\n    vertical-align: middle;\n    display: inline-block;\n    padding: $select-padding-item-y $select-padding-item-x;\n    border-left: 1px solid $select-color-item-border;\n    border-radius: 0 2px 2px 0;\n    box-sizing: border-box;\n    margin-left: $select-padding-item-x;\n  }\n\n  .item .remove:hover {\n    background: rgba(0, 0, 0, 0.05);\n  }\n\n  .item.active .remove {\n    border-left-color: $select-color-item-active-border;\n  }\n\n  .disabled .item .remove:hover {\n    background: none;\n  }\n\n  .disabled .item .remove {\n    border-left-color: lighten(\n      desaturate($select-color-item-border, 100%),\n      $select-lighten-disabled-item-border\n    );\n  }\n}\n"
  },
  {
    "path": "dist/scss/selectize.bootstrap3.scss",
    "content": "@import \"lib/bootstrap-sass/variables\";\n@import \"lib/bootstrap-sass/mixins/_nav-divider\";\n\n$select-font-family: inherit;\n$select-font-size: inherit;\n$select-line-height: $line-height-computed;\n\n$select-color-text: $text-color;\n$select-color-highlight: rgba(255, 237, 40, 0.4);\n$select-color-input: $input-bg;\n$select-color-input-full: $input-bg;\n$select-color-input-error: $state-danger-text;\n$select-color-input-error-focus: darken($select-color-input-error, 10%);\n$select-color-disabled: $input-bg;\n$select-color-item: #efefef;\n$select-color-item-border: rgba(0, 0, 0, 0);\n$select-color-item-active: $component-active-bg;\n$select-color-item-active-text: #fff;\n$select-color-item-active-border: rgba(0, 0, 0, 0);\n$select-color-optgroup: $dropdown-bg;\n$select-color-optgroup-text: $dropdown-header-color;\n$select-color-optgroup-border: $dropdown-divider-bg;\n$select-color-dropdown: $dropdown-bg;\n$select-color-dropdown-border-top: mix($input-border, $input-bg, 80%);\n$select-color-dropdown-item-active: $dropdown-link-hover-bg;\n$select-color-dropdown-item-active-text: $dropdown-link-hover-color;\n$select-color-dropdown-item-create-active-text: $dropdown-link-hover-color;\n$select-opacity-disabled: 0.5;\n$select-shadow-input: none;\n$select-shadow-input-focus: inset 0 1px 2px rgba(0, 0, 0, 0.15);\n$select-shadow-input-error: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n$select-shadow-input-error-focus: inset 0 1px 1px rgba(0, 0, 0, 0.075),\n  0 0 6px lighten($select-color-input-error, 20%);\n$select-border: 1px solid $input-border;\n$select-border-radius: $input-border-radius;\n\n$select-width-item-border: 0px;\n$select-padding-x: $padding-base-horizontal;\n$select-padding-y: $padding-base-vertical;\n$select-padding-dropdown-item-x: $padding-base-horizontal;\n$select-padding-dropdown-item-y: 3px;\n$select-padding-item-x: 5px;\n$select-padding-item-y: 1px;\n$select-margin-item-x: 3px;\n$select-margin-item-y: 3px;\n\n$select-arrow-size: 5px;\n$select-arrow-color: $select-color-text;\n$select-arrow-offset: $select-padding-x + 5px;\n\n@import \"selectize\";\n\n.#{$selectize}-dropdown,\n.#{$selectize}-dropdown.form-control {\n  height: auto;\n  padding: 0;\n  margin: 2px 0 0 0;\n  z-index: $zindex-dropdown;\n  background: $select-color-dropdown;\n  border: 1px solid $dropdown-fallback-border;\n  border: 1px solid $dropdown-border;\n  border-radius: $border-radius-base;\n  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n}\n\n.#{$selectize}-dropdown {\n  .optgroup-header {\n    font-size: $font-size-small;\n    line-height: $line-height-base;\n  }\n  .optgroup:first-child:before {\n    display: none;\n  }\n  .optgroup:before {\n    content: \" \";\n    display: block;\n    @include nav-divider();\n    margin-left: $select-padding-dropdown-item-x * -1;\n    margin-right: $select-padding-dropdown-item-x * -1;\n  }\n}\n\n.#{$selectize}-dropdown-content {\n  padding: 5px 0;\n}\n\n.#{$selectize}-dropdown-emptyoptionlabel {\n\ttext-align: center;\n}\n\n.#{$selectize}-input {\n  min-height: $input-height-base;\n\n  &.dropdown-active {\n    border-radius: $select-border-radius;\n  }\n  &.dropdown-active::before {\n    display: none;\n  }\n  &.focus {\n    $color: $input-border-focus;\n    $color-rgba: rgba(red($color), green($color), blue($color), 0.6);\n    border-color: $color;\n    outline: 0;\n    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px $color-rgba;\n  }\n}\n\n.has-error .#{$selectize}-input {\n  border-color: $select-color-input-error;\n  box-shadow: $select-shadow-input-error;\n\n  &:focus {\n    border-color: $select-color-input-error-focus;\n    box-shadow: $select-shadow-input-error-focus;\n  }\n}\n\n.#{$selectize}-control {\n  &.multi {\n    .#{$selectize}-input.has-items {\n      padding-left: $select-padding-x - $select-padding-item-x;\n      padding-right: $select-padding-x - $select-padding-item-x;\n    }\n    .#{$selectize}-input > div {\n      border-radius: $select-border-radius - 1px;\n    }\n  }\n}\n\n.form-control.#{$selectize}-control {\n  padding: 0;\n  height: auto;\n  border: none;\n  background: none;\n  box-shadow: none;\n  border-radius: 0;\n}\n"
  },
  {
    "path": "dist/scss/selectize.bootstrap4.scss",
    "content": "@import \"lib/bootstrap4/functions\";\n@import \"lib/bootstrap4/variables\";\n@import \"lib/bootstrap4/mixins\";\n\n$enable-shadows: true !default;\n$select-font-family: inherit !default;\n$select-font-size: inherit !default;\n$select-line-height: $input-btn-line-height !default; //formerly line-height-computed\n\n$select-color-text: gray(\"800\") !default; //$gray-800\n$select-color-highlight: rgba(255, 237, 40, 0.4) !default;\n$select-color-input: $input-bg !default;\n$select-color-input-full: $input-bg !default;\n$select-color-input-error: theme-color(\"danger\") !default;\n$select-color-input-error-focus: darken(\n  $select-color-input-error,\n  10%\n) !default;\n$select-color-disabled: $input-bg !default;\n$select-color-item: #efefef !default;\n$select-color-item-border: $border-color !default;\n$select-color-item-active: $component-active-bg !default;\n$select-color-item-active-text: #fff !default;\n$select-color-item-active-border: rgba(0, 0, 0, 0) !default;\n$select-color-optgroup: $dropdown-bg !default;\n$select-color-optgroup-text: $dropdown-header-color !default;\n$select-color-optgroup-border: $dropdown-divider-bg !default;\n$select-color-dropdown: $dropdown-bg !default;\n$select-color-dropdown-border-top: mix(\n  $input-border-color,\n  $input-bg,\n  80%\n) !default;\n$select-color-dropdown-item-active: $dropdown-link-hover-bg !default;\n$select-color-dropdown-item-active-text: $dropdown-link-hover-color !default;\n$select-color-dropdown-item-create-active-text: $dropdown-link-hover-color !default;\n$select-opacity-disabled: 0.5 !default;\n$select-shadow-input: none !default;\n$select-shadow-input-focus: inset 0 1px 2px rgba(0, 0, 0, 0.15) !default;\n$select-shadow-input-error: inset 0 1px 1px rgba(0, 0, 0, 0.075) !default;\n$select-shadow-input-error-focus: inset 0 1px 1px rgba(0, 0, 0, 0.075),\n  0 0 6px lighten($select-color-input-error, 20%) !default;\n$select-border: 1px solid $input-border-color !default;\n$select-border-radius: $input-border-radius !default;\n\n$select-width-item-border: 0px !default;\n$select-padding-x: $input-btn-padding-x !default;\n$select-padding-y: $input-btn-padding-y !default;\n$select-padding-dropdown-item-x: $input-btn-padding-x !default;\n$select-padding-dropdown-item-y: 3px !default;\n$select-padding-item-x: 5px !default;\n$select-padding-item-y: 1px !default;\n$select-margin-item-x: 3px !default;\n$select-margin-item-y: 3px !default;\n\n$select-arrow-size: 5px !default;\n$select-arrow-color: $select-color-text !default;\n$select-arrow-offset: calc(#{$select-padding-x} + 5px) !default;\n\n@import \"selectize\";\n\n.#{$selectize}-dropdown,\n.#{$selectize}-dropdown.form-control {\n  height: auto;\n  padding: 0;\n  margin: 2px 0 0 0;\n  z-index: $zindex-dropdown;\n  background: $select-color-dropdown;\n  border: 1px solid $dropdown-border-color; //$dropdown-fallback-border\n  border-radius: $border-radius;\n  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n}\n\n.#{$selectize}-dropdown {\n  .optgroup-header {\n    font-size: $font-size-sm;\n    line-height: $line-height-base;\n  }\n  .optgroup:first-child:before {\n    display: none;\n  }\n  .optgroup:before {\n    content: \" \";\n    display: block;\n    height: 0;\n    margin: $dropdown-divider-margin-y 0;\n    overflow: hidden;\n    border-top: 1px solid $dropdown-divider-bg;\n    margin-left: $select-padding-dropdown-item-x * -1;\n    margin-right: $select-padding-dropdown-item-x * -1;\n  }\n\n  .create {\n    padding-left: $select-padding-dropdown-item-x;\n  }\n}\n\n.#{$selectize}-dropdown-content {\n  padding: 5px 0;\n}\n\n.#{$selectize}-dropdown-emptyoptionlabel {\n\ttext-align: center;\n}\n\n.#{$selectize}-input {\n  min-height: $input-height;\n  @include box-shadow($input-box-shadow);\n  @include transition($input-transition);\n\n  &.dropdown-active {\n    border-radius: $select-border-radius;\n  }\n  &.dropdown-active::before {\n    display: none;\n  }\n  &.focus {\n    border-color: $input-focus-border-color;\n    outline: 0;\n    @if $enable-shadows {\n      box-shadow: $input-box-shadow, $input-focus-box-shadow;\n    } @else {\n      box-shadow: $input-focus-box-shadow;\n    }\n  }\n}\n\n.is-invalid .#{$selectize}-input {\n  border-color: $select-color-input-error;\n  box-shadow: $select-shadow-input-error;\n\n  &:focus {\n    border-color: $select-color-input-error-focus;\n    box-shadow: $select-shadow-input-error-focus;\n  }\n}\n\n.#{$selectize}-control {\n  &.form-control-sm {\n    .#{$selectize}-input.has-items {\n      min-height: $input-height-sm !important;\n      height: $input-height-sm;\n      padding: $input-padding-y-sm $input-padding-x-sm !important;\n      font-size: $input-font-size-sm;\n      line-height: $input-line-height-sm;\n    }\n  }\n\n  &.multi {\n    .#{$selectize}-input.has-items {\n      height: auto;\n      padding-left: calc(#{$select-padding-x} - #{$select-padding-item-x});\n      padding-right: calc(#{$select-padding-x} - #{$select-padding-item-x});\n    }\n    .#{$selectize}-input > div {\n      border-radius: calc(#{$select-border-radius} - 1px);\n    }\n  }\n}\n\n.form-control.#{$selectize}-control {\n  padding: 0;\n  height: auto;\n  border: none;\n  background: none;\n  box-shadow: none;\n  border-radius: 0;\n}\n\n.input-group .#{$selectize}-control:not(:last-child) {\n  .#{$selectize}-input{\n    overflow: unset;\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n}\n\n.input-group .#{$selectize}-control:not(:first-child) {\n  .#{$selectize}-input{\n    overflow: unset;\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n}\n\n// .input-group .#{$selectize}-input {\n//   overflow: unset;\n//   border-radius: 0 $select-border-radius $select-border-radius 0;\n// }\n\n.#{selectize}-dropdown.plugin-auto_position.#{$selectize}-position-top {\n  border-top: $select-border!important;\n  border-bottom: $select-border!important;\n  border-radius: $select-border-radius!important;\n}\n.#{selectize}-control.plugin-auto_position .#{selectize}-input.#{$selectize}-position-top.dropdown-active {\n  border-radius: $select-border-radius!important;\n  border-top: $select-border!important;\n}\n"
  },
  {
    "path": "dist/scss/selectize.bootstrap5.scss",
    "content": "@import \"lib/bootstrap5/functions\";\n@import \"lib/bootstrap5/variables\";\n@import \"lib/bootstrap5/mixins\";\n\n$enable-shadows: true !default;\n$select-font-family: inherit !default;\n$select-font-size: inherit !default;\n$select-line-height: $input-btn-line-height !default; //formerly line-height-computed\n\n$select-color-text: $gray-800 !default; //$gray-800\n$select-color-highlight: rgba(255, 237, 40, 0.4) !default;\n$select-color-input: $input-bg !default;\n$select-color-input-full: $input-bg !default;\n$select-color-input-error: $danger !default;\n$select-color-input-error-focus: darken(\n  $select-color-input-error,\n  10%\n) !default;\n$select-color-disabled: $input-bg !default;\n$select-color-item: #efefef !default;\n$select-color-item-border: $border-color !default;\n$select-color-item-active: $component-active-bg !default;\n$select-color-item-active-text: #fff !default;\n$select-color-item-active-border: rgba(0, 0, 0, 0) !default;\n$select-color-optgroup: $dropdown-bg !default;\n$select-color-optgroup-text: $dropdown-header-color !default;\n$select-color-optgroup-border: $dropdown-divider-bg !default;\n$select-color-dropdown: $dropdown-bg !default;\n$select-color-dropdown-border-top: mix(\n  $input-border-color,\n  $input-bg,\n  80%\n) !default;\n$select-color-dropdown-item-active: $dropdown-link-hover-bg !default;\n$select-color-dropdown-item-active-text: $dropdown-link-hover-color !default;\n$select-color-dropdown-item-create-active-text: $dropdown-link-hover-color !default;\n$select-opacity-disabled: 0.5 !default;\n$select-shadow-input: none !default;\n$select-shadow-input-focus: inset 0 1px 2px rgba(0, 0, 0, 0.15) !default;\n$select-shadow-input-error: inset 0 1px 1px rgba(0, 0, 0, 0.075) !default;\n$select-shadow-input-error-focus: inset 0 1px 1px rgba(0, 0, 0, 0.075),\n  0 0 6px lighten($select-color-input-error, 20%) !default;\n$select-border: 1px solid $input-border-color !default;\n$select-border-radius: $input-border-radius !default;\n\n$select-width-item-border: 0px !default;\n$select-padding-x: $input-btn-padding-x !default;\n$select-padding-y: $input-btn-padding-y !default;\n$select-padding-dropdown-item-x: $input-btn-padding-x !default;\n$select-padding-dropdown-item-y: 3px !default;\n$select-padding-item-x: 5px !default;\n$select-padding-item-y: 1px !default;\n$select-margin-item-x: 3px !default;\n$select-margin-item-y: 3px !default;\n\n$select-arrow-size: 5px !default;\n$select-arrow-color: $select-color-text !default;\n$select-arrow-offset: calc(#{$select-padding-x} + 5px) !default;\n\n@import \"selectize\";\n\n.#{$selectize}-dropdown,\n.#{$selectize}-dropdown.form-control {\n  height: auto;\n  padding: 0;\n  margin: 2px 0 0 0;\n  z-index: $zindex-dropdown;\n  background: $select-color-dropdown;\n  border: 1px solid $dropdown-border-color; //$dropdown-fallback-border\n  border-radius: $border-radius;\n  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n}\n\n.#{$selectize}-dropdown {\n  .optgroup-header {\n    font-size: $font-size-sm;\n    line-height: $line-height-base;\n  }\n  .optgroup:first-child:before {\n    display: none;\n  }\n  .optgroup:before {\n    content: \" \";\n    display: block;\n    height: 0;\n    margin: $dropdown-divider-margin-y 0;\n    overflow: hidden;\n    border-top: 1px solid $dropdown-divider-bg;\n    margin-left: $select-padding-dropdown-item-x * -1;\n    margin-right: $select-padding-dropdown-item-x * -1;\n  }\n\n  .create {\n    padding-left: $select-padding-dropdown-item-x;\n  }\n}\n\n.#{$selectize}-dropdown-content {\n  padding: 5px 0;\n}\n\n.#{$selectize}-dropdown-emptyoptionlabel {\n\ttext-align: center;\n}\n\n.#{$selectize}-input {\n  min-height: $input-height;\n  @include box-shadow($input-box-shadow);\n  @include transition($input-transition);\n\n  &.dropdown-active {\n    border-radius: $select-border-radius;\n  }\n  &.dropdown-active::before {\n    display: none;\n  }\n  &.focus {\n    border-color: $input-focus-border-color;\n    outline: 0;\n    @if $enable-shadows {\n      box-shadow: $input-box-shadow, $input-focus-box-shadow;\n    } @else {\n      box-shadow: $input-focus-box-shadow;\n    }\n  }\n}\n\n.is-invalid .#{$selectize}-input {\n  border-color: $select-color-input-error;\n  box-shadow: $select-shadow-input-error;\n\n  &:focus {\n    border-color: $select-color-input-error-focus;\n    box-shadow: $select-shadow-input-error-focus;\n  }\n}\n\n.#{$selectize}-control {\n  &.form-control-sm {\n    .#{$selectize}-input {\n      min-height: $input-height-sm !important;\n      height: $input-height-sm;\n      padding: $input-padding-y-sm $input-padding-x-sm !important;\n      font-size: $input-font-size-sm;\n      line-height: $line-height-sm;\n    }\n  }\n\n  &.multi {\n    .#{$selectize}-input {\n      height: auto;\n      padding-left: calc(#{$select-padding-x} - #{$select-padding-item-x});\n      padding-right: calc(#{$select-padding-x} - #{$select-padding-item-x});\n    }\n    .#{$selectize}-input > div {\n      border-radius: calc(#{$select-border-radius} - 1px);\n    }\n  }\n}\n\n.form-select.#{$selectize}-control,\n.form-control.#{$selectize}-control {\n  padding: 0;\n  height: auto;\n  border: none;\n  background: none;\n  box-shadow: none;\n  border-radius: 0;\n}\n\n.input-group>.input-group-append>.btn, .input-group>.form-control:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group>.input-group-prepend>.btn {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n\n.input-group .#{$selectize}-control:not(:last-child) {\n  .#{$selectize}-input{\n    overflow: unset;\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n}\n\n.input-group .#{$selectize}-control:not(:first-child) {\n  .#{$selectize}-input{\n    overflow: unset;\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n}\n\n.#{selectize}-dropdown.plugin-auto_position.#{$selectize}-position-top {\n  border-top: $select-border!important;\n  border-bottom: $select-border!important;\n  border-radius: $select-border-radius!important;\n}\n.#{selectize}-control.plugin-auto_position .#{selectize}-input.#{$selectize}-position-top.dropdown-active {\n  border-radius: $select-border-radius!important;\n  border-top: $select-border!important;\n}\n"
  },
  {
    "path": "dist/scss/selectize.default.scss",
    "content": "$select-color-item: #1da7ee;\n$select-color-item-text: #fff;\n$select-color-item-active-text: #fff;\n$select-color-item-border: #0073bb;\n$select-color-item-active: #92c836;\n$select-color-item-active-border: #00578d;\n$select-width-item-border: 1px;\n\n@import \"selectize.scss\";\n\n.#{$selectize}-control {\n  &.multi {\n    .#{$selectize}-input {\n      &.has-items {\n        $padding-x: $select-padding-x - 3px;\n        padding-left: $padding-x;\n        padding-right: $padding-x;\n      }\n      &.disabled [data-value] {\n        color: #999;\n        text-shadow: none;\n        background: none;\n        box-shadow: none;\n\n        &,\n        .remove {\n          border-color: #e6e6e6;\n        }\n        .remove {\n          background: none;\n        }\n      }\n      [data-value] {\n        text-shadow: 0 1px 0 rgba(0, 51, 83, 0.3);\n        border-radius: 3px;\n        @include selectize-vertical-gradient(#1da7ee, #178ee9);\n        box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2),\n          inset 0 1px rgba(255, 255, 255, 0.03);\n        &.active {\n          @include selectize-vertical-gradient(#008fd8, #0075cf);\n        }\n      }\n    }\n  }\n  &.single {\n    .#{$selectize}-input {\n      box-shadow: 0 1px 0 rgba(0, 0, 0, 0.05),\n        inset 0 1px 0 rgba(255, 255, 255, 0.8);\n      @include selectize-vertical-gradient(#fefefe, #f2f2f2);\n    }\n  }\n}\n\n.#{$selectize}-control.single .#{$selectize}-input,\n.#{$selectize}-dropdown.single {\n  border-color: #b8b8b8;\n}\n\n.#{$selectize}-dropdown {\n  .optgroup-header {\n    padding-top: $select-padding-dropdown-item-y + 2px;\n    font-weight: bold;\n    font-size: 0.85em;\n  }\n  .optgroup {\n    border-top: 1px solid $select-color-dropdown-border-top;\n    &:first-child {\n      border-top: 0 none;\n    }\n  }\n}\n"
  },
  {
    "path": "dist/scss/selectize.scss",
    "content": "@use \"sass:math\";\n\n// base styles\n$selectize: \"selectize\" !default;\n$select-font-family: inherit !default;\n$select-font-smoothing: inherit !default;\n$select-font-size: 13px !default;\n$select-line-height: 18px !default;\n\n$select-color-text: #303030 !default;\n$select-color-border: #d0d0d0 !default;\n$select-color-highlight: rgba(125, 168, 208, 0.2) !default;\n$select-color-input: #fff !default;\n$select-color-input-full: $select-color-input !default;\n$select-color-disabled: #fafafa !default;\n$select-color-item: #f2f2f2 !default;\n$select-color-item-text: $select-color-text !default;\n$select-color-item-border: #d0d0d0 !default;\n$select-color-item-active: #e8e8e8 !default;\n$select-color-item-active-text: $select-color-text !default;\n$select-color-item-active-border: #cacaca !default;\n$select-color-dropdown: #fff !default;\n$select-color-dropdown-border: $select-color-border !default;\n$select-color-dropdown-border-top: #f0f0f0 !default;\n$select-color-dropdown-item-active: #f5fafd !default;\n$select-color-dropdown-item-active-text: #495c68 !default;\n$select-color-dropdown-item-create-text: rgba(\n  red($select-color-text),\n  green($select-color-text),\n  blue($select-color-text),\n  0.5\n) !default;\n$select-color-dropdown-item-create-active-text: $select-color-dropdown-item-active-text !default;\n$select-color-optgroup: $select-color-dropdown !default;\n$select-color-optgroup-text: $select-color-text !default;\n$select-lighten-disabled-item: 30% !default;\n$select-lighten-disabled-item-text: 30% !default;\n$select-lighten-disabled-item-border: 30% !default;\n$select-opacity-disabled: 0.5 !default;\n\n$select-shadow-input: inset 0 1px 1px rgba(0, 0, 0, 0.1) !default;\n$select-shadow-input-focus: inset 0 1px 2px rgba(0, 0, 0, 0.15) !default;\n$select-border: 1px solid $select-color-border !default;\n$select-dropdown-border: 1px solid $select-color-dropdown-border !default;\n$select-border-radius: 3px !default;\n\n$select-width-item-border: 0px !default;\n$select-max-height-dropdown: 200px !default;\n\n$select-padding-x: 8px !default;\n$select-padding-y: 8px !default;\n$select-padding-item-x: 6px !default;\n$select-padding-item-y: 2px !default;\n$select-padding-dropdown-item-x: $select-padding-x !default;\n$select-padding-dropdown-item-y: 5px !default;\n$select-margin-item-x: 3px !default;\n$select-margin-item-y: 3px !default;\n\n$select-arrow-size: 5px !default;\n$select-arrow-color: #808080 !default;\n$select-arrow-offset: 15px !default;\n\n$select-caret-margin: 0 0px !default;\n$select-caret-margin-rtl: 0 4px 0 -2px !default;\n\n$select-spinner-size: 30px;\n$select-spinner-border-size: 5px;\n$select-spinner-border-color: $select-color-border;\n\n@mixin selectize-vertical-gradient($color-top, $color-bottom) {\n  background-color: mix($color-top, $color-bottom, 60%);\n  background-image: linear-gradient(to bottom, $color-top, $color-bottom);\n  background-repeat: repeat-x;\n}\n\n@import \"plugins/drag_drop.scss\";\n@import \"plugins/dropdown_header.scss\";\n@import \"plugins/optgroup_columns.scss\";\n@import \"plugins/remove_button.scss\";\n@import \"plugins/clear_button.scss\";\n@import \"plugins/auto_position.scss\";\n\n.#{$selectize}-control {\n  position: relative;\n}\n\n.#{$selectize}-dropdown,\n.#{$selectize}-input,\n.#{$selectize}-input input {\n  color: $select-color-text;\n  font-family: $select-font-family;\n  font-size: $select-font-size;\n  line-height: $select-line-height;\n  font-smoothing: $select-font-smoothing;\n}\n\n.#{$selectize}-input,\n.#{$selectize}-control.single .#{$selectize}-input.input-active {\n  background: $select-color-input;\n  cursor: text;\n  display: inline-block;\n}\n\n.#{$selectize}-input {\n  border: $select-border;\n  padding: $select-padding-y $select-padding-x;\n  display: inline-block;\n  width: 100%;\n  // overflow: hidden;\n  position: relative;\n  z-index: 1;\n  box-sizing: border-box;\n  box-shadow: $select-shadow-input;\n  border-radius: $select-border-radius;\n\n  .#{$selectize}-control.multi &.has-items {\n    $padding-x: $select-padding-x;\n    $padding-top: calc(\n      #{$select-padding-y} - #{$select-padding-item-y} - #{$select-width-item-border}\n    );\n    $padding-bottom: calc(\n      #{$select-padding-y} - #{$select-padding-item-y} - #{$select-margin-item-y} -\n        #{$select-width-item-border}\n    );\n    padding: $padding-top $padding-x $padding-bottom;\n  }\n\n  &.full {\n    background-color: $select-color-input-full;\n  }\n  &.disabled,\n  &.disabled * {\n    cursor: default !important;\n  }\n  &.focus {\n    box-shadow: $select-shadow-input-focus;\n  }\n  &.dropdown-active {\n    border-radius: $select-border-radius $select-border-radius 0 0;\n  }\n\n  > * {\n    vertical-align: baseline;\n    display: inline-block;\n    zoom: 1;\n  }\n  .#{$selectize}-control.multi & > div {\n    cursor: pointer;\n    margin: 0 $select-margin-item-x $select-margin-item-y 0;\n    padding: $select-padding-item-y $select-padding-item-x;\n    background: $select-color-item;\n    color: $select-color-item-text;\n    border: $select-width-item-border solid $select-color-item-border;\n\n    &.active {\n      background: $select-color-item-active;\n      color: $select-color-item-active-text;\n      border: $select-width-item-border solid $select-color-item-active-border;\n    }\n  }\n  .#{$selectize}-control.multi &.disabled > div {\n    &,\n    &.active {\n      color: lighten(\n        desaturate($select-color-item-text, 100%),\n        $select-lighten-disabled-item-text\n      );\n      background: lighten(\n        desaturate($select-color-item, 100%),\n        $select-lighten-disabled-item\n      );\n      border: $select-width-item-border solid\n        lighten(\n          desaturate($select-color-item-border, 100%),\n          $select-lighten-disabled-item-border\n        );\n    }\n  }\n  > input {\n    &::-ms-clear {\n      display: none;\n    }\n    display: inline-block !important;\n    padding: 0 !important;\n    min-height: 0 !important;\n    max-height: none !important;\n    max-width: 100% !important;\n    margin: 0 !important;\n    text-indent: 0 !important;\n    border: 0 none !important;\n    background: none !important;\n    line-height: inherit !important;\n    user-select: auto !important;\n    box-shadow: none !important;\n    &:focus {\n      outline: none !important;\n    }\n\n    &[placeholder] {\n      box-sizing: initial;\n    }\n  }\n  &.has-items > input {\n    margin: $select-caret-margin !important;\n  }\n}\n\n.#{$selectize}-input::after {\n  content: \" \";\n  display: block;\n  clear: left;\n}\n\n.#{$selectize}-input.dropdown-active::before {\n  content: \" \";\n  display: block;\n  position: absolute;\n  background: $select-color-dropdown-border-top;\n  height: 1px;\n  bottom: 0;\n  left: 0;\n  right: 0;\n}\n\n.#{$selectize}-dropdown {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  width: 100%;\n  z-index: 10;\n\n  border: $select-dropdown-border;\n  background: $select-color-dropdown;\n  margin: -1px 0 0 0;\n  border-top: 0 none;\n  box-sizing: border-box;\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n  border-radius: 0 0 $select-border-radius $select-border-radius;\n\n  [data-selectable] {\n    cursor: pointer;\n    overflow: hidden;\n    .highlight {\n      background: $select-color-highlight;\n      border-radius: 1px;\n    }\n  }\n  .option,\n  .optgroup-header,\n  .no-results,\n  .create {\n    padding: $select-padding-dropdown-item-y $select-padding-dropdown-item-x;\n  }\n  .option,\n  [data-disabled],\n  [data-disabled] [data-selectable].option {\n    cursor: inherit;\n    opacity: 0.5;\n  }\n  [data-selectable].option {\n    opacity: 1;\n    cursor: pointer;\n  }\n  .optgroup:first-child .optgroup-header {\n    border-top: 0 none;\n  }\n  .optgroup-header {\n    color: $select-color-optgroup-text;\n    background: $select-color-optgroup;\n    cursor: default;\n  }\n  .active {\n    background-color: $select-color-item-active;\n    color: $select-color-item-active-text;\n    &.create {\n      color: $select-color-dropdown-item-create-active-text;\n    }\n  }\n\n  .selected {\n    background-color: $select-color-item-active;\n    color: $select-color-item-active-text;\n  }\n  .create {\n    color: $select-color-dropdown-item-create-text;\n  }\n\n  .active:not(.selected) {\n    background: $select-color-dropdown-item-active;\n    color: $select-color-dropdown-item-active-text;\n  }\n}\n\n.#{$selectize}-dropdown-content {\n  overflow-y: auto;\n  overflow-x: hidden;\n  max-height: $select-max-height-dropdown;\n  overflow-scrolling: touch;\n}\n\n.#{$selectize}-dropdown-emptyoptionlabel {\n\ttext-align: center;\n}\n\n.#{$selectize}-dropdown .spinner {\n  display: inline-block;\n  width: $select-spinner-size;\n  height: $select-spinner-size;\n  margin: $select-padding-dropdown-item-y $select-padding-dropdown-item-x;\n\n  &:after {\n    content: \" \";\n    display: block;\n    width: $select-spinner-size * 0.8;\n    height: $select-spinner-size * 0.8;\n    margin: $select-spinner-size * 0.1;\n    border-radius: 50%;\n    border: $select-spinner-border-size solid $select-spinner-border-color;\n    border-color: $select-spinner-border-color transparent\n      $select-spinner-border-color transparent;\n    animation: lds-dual-ring 1.2s linear infinite;\n  }\n  @keyframes lds-dual-ring {\n    0% {\n      transform: rotate(0deg);\n    }\n    100% {\n      transform: rotate(360deg);\n    }\n  }\n}\n\n.#{$selectize}-control.single .#{$selectize}-input {\n  &,\n  input {\n    cursor: pointer;\n  }\n  &.input-active,\n  &.input-active input:not(:read-only) {\n    cursor: text;\n  }\n\n  &:not(.no-arrow):after {\n    content: \" \";\n    display: block;\n    position: absolute;\n    top: 50%;\n    right: $select-arrow-offset;\n    margin-top: round(math.div(-1 * $select-arrow-size, 2));\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: $select-arrow-size $select-arrow-size 0 $select-arrow-size;\n    border-color: $select-arrow-color transparent transparent transparent;\n  }\n  &:not(.no-arrow).dropdown-active:after {\n    margin-top: $select-arrow-size * -0.8;\n    border-width: 0 $select-arrow-size $select-arrow-size $select-arrow-size;\n    border-color: transparent transparent $select-arrow-color transparent;\n  }\n}\n\n.#{$selectize}-control.rtl {\n  text-align: right;\n  &.single .#{$selectize}-input:after {\n    left: $select-arrow-offset;\n    right: auto;\n  }\n  .#{$selectize}-input > input {\n    margin: $select-caret-margin-rtl !important;\n  }\n}\n\n.#{$selectize}-control .#{$selectize}-input.disabled {\n  opacity: $select-opacity-disabled;\n  background-color: $select-color-disabled;\n}\n"
  },
  {
    "path": "docs/.gitignore",
    "content": "# Dependencies\n/node_modules\n\n# Production\n/build\n\n# Generated files\n.docusaurus\n.cache-loader\n\n# Misc\n.DS_Store\n.env.local\n.env.development.local\n.env.test.local\n.env.production.local\n\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n"
  },
  {
    "path": "docs/.ssl/loopback_website.crt",
    "content": "-----BEGIN CERTIFICATE-----\nMIIDWjCCAkKgAwIBAgIJAIETdtjPHOAJMA0GCSqGSIb3DQEBCwUAMEMxCzAJBgNV\nBAYTAlVTMQswCQYDVQQIDAJQQTETMBEGA1UEBwwKUGl0dHNidXJnaDESMBAGA1UE\nCwwJQXJjaGl0ZWNoMB4XDTE3MDYwMTExMzkxN1oXDTI3MDUzMDExMzkxN1owQzEL\nMAkGA1UEBhMCVVMxCzAJBgNVBAgMAlBBMRMwEQYDVQQHDApQaXR0c2J1cmdoMRIw\nEAYDVQQLDAlBcmNoaXRlY2gwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQCzOW7y3/95mqLavJqFLpaiXeSdKV391ZviICdfngHzSzgUJirew8vaEFitX7CI\nb8D0Wc5OWKwotJgjramZQdlK9FM6bFYIGVzyYBOhjle24BH+P6H6CTOoyCNZB1+2\niqmUQ7r36Koq8hyzNJRgoShNyLxHZbsiFWLXWlkdQ4mapTf/9dwEV0mszcSEDviC\n6AOyuLZ0Ynlck3dlC9lCXd/+ngyn1VmyO+2+X41ZU+jODhUak6okMHTGoxo/fCmY\nfGrj9gOJ62VhKxrpnYnLcvPDIOMy3Uh56uEexIB/nNY4CrqGDY7u/GhC9zs9KilE\nB9lLLFOGuwcSOPWodomi64nbAgMBAAGjUTBPMAkGA1UdEwQCMAAwCwYDVR0PBAQD\nAgXgMDUGA1UdEQQuMCyCEioubG9vcGJhY2sud2Vic2l0ZYIQbG9vcGJhY2sud2Vi\nc2l0ZYcEfwAAATANBgkqhkiG9w0BAQsFAAOCAQEAE25dLxblB0aqUP2AvuOj2Mnb\nLfMjfZvQoVXRWPjOfqF9xzIwzAvmKk2vnktWEYrulJO4XVAyH9Z/ilrqoULoDOL8\nGLjAJXdxQhxC9JWRzWYURMpF2Jmeqh6r8xsEEwqa3JXNhTfc8WpSFqbD2bIuaHQt\nCSkdP7XJHNzGDjL4gYCapjhLN27EkAMmpfk5vVPaf1K+AiWXxwxb3fo6B5w2+6Fn\nJAEH0t6l4Fl5U84er/MkubJ9X/jOA8ATQYjzSqfghr7MTJxM6Tj8AonazyN6m0Zy\na+2C4UGWpNECmSnsUUfMXjx2wbe2VLb2me3BuyExMwospSj0pVamrnV+obiqQQ==\n-----END CERTIFICATE-----\n"
  },
  {
    "path": "docs/.ssl/loopback_website.key",
    "content": "-----BEGIN RSA PRIVATE KEY-----\r\nMIIEpAIBAAKCAQEAszlu8t//eZqi2ryahS6Wol3knSld/dWb4iAnX54B80s4FCYq\r\n3sPL2hBYrV+wiG/A9FnOTlisKLSYI62pmUHZSvRTOmxWCBlc8mAToY5XtuAR/j+h\r\n+gkzqMgjWQdftoqplEO69+iqKvIcszSUYKEoTci8R2W7IhVi11pZHUOJmqU3//Xc\r\nBFdJrM3EhA74gugDsri2dGJ5XJN3ZQvZQl3f/p4Mp9VZsjvtvl+NWVPozg4VGpOq\r\nJDB0xqMaP3wpmHxq4/YDietlYSsa6Z2Jy3LzwyDjMt1IeerhHsSAf5zWOAq6hg2O\r\n7vxoQvc7PSopRAfZSyxThrsHEjj1qHaJouuJ2wIDAQABAoIBAAzYS+xaQ3waqhtV\r\nMxnieedPJWhiI5tiqNZvCYNf1rHyLSW8iowGqmCJlWFvnz5YDBM3MIMK9ePA9bpw\r\n4tvaDVHC6wgf5ZaVAsVYP2/vvLednYyEUP6TlEE/ftENpz10+KxookjMQw3q5kWt\r\nugim5DWW8m+Hif7qW3glwIdJZN5RZFq/dzu0R1yIRpj384+ENNGQlLGLwhAwpeew\r\nIlO8eUXpxfHMPJpQs0Q2SxcHiwnJBFVnpmP4LoNJzil3icwkxoh0afjau6/lGZ+T\r\nzPE7XA5elfJnbLjqaZHajiTrSzvOxUnvjBTNwwkpG9URMpylIdomzvRONr9PIz7j\r\nuAGrnmkCgYEA18M2CxCgXoetbSRqPS2AY7G1wbCFV8cXJEevFrsTTfA4HSPk8UBZ\r\nV2L0QojNDGL5yV9uDxVCBmLU9G0Aaq3Di9ilw4uLq8n+wunpNJ5b8u6hkYK9kt1i\r\nsLzlB+ohtMEOcQoBMdOyClSXyIkEf5wT2e+YGfVe//3m/ZdN+ibRkXcCgYEA1KXX\r\nMvBcqH+Q/d3Xm84yI7ID3luFSzoZnWJAeNkAgCiApldmfm8WxPY7NEmLDdWhH/E2\r\n8uIZTHalWuSmMGjBjgpV1yuEs/FHL3deoDmN96JD5MqzdbctMn5RDh0rVIdIGGS6\r\n4YeKsGXxu/IrdR+1umVodAsOI+IFMt/H4MgnQ70CgYEAsEF/B4D4kOBjMxKZWwqt\r\npENLCEQMWc2AwRlyFa6TMYr4PA3Te6UmlrV2dlfMsb608OTtQpMKEa9w6Y+V1I/I\r\ne5hqqZh4a8iiPlXZNSvcT1LTV8wm0y/Y7CoTKuj/yeofwwX6PdsCyV+bcq1DqH82\r\n1ETeyu3gQl0G8shEYgKOFjcCgYAXX/N74fgNfZhOj6g3tD7Gtba/JohMcKKILliv\r\n8AqiC9G4dzsJAuUZ2YdAhCUI7Ea94CIOKNRnF1Ot3hx2jc1Y88Hj2SDJNuiASzrX\r\nmfwFEI0uBSoc8nnBZyk5x/MPY5+FLu1sBR41rb8YzdIBGe88AhGtT9nKD/pKUVcD\r\nWn0WcQKBgQCOvBEgg+6CDk+VFJZYwUP7OwQBgEmpaV+1Qxaw6KfM/MsLrpAhQPe+\r\nC7QFTZMfg5+tIxeLnMY27y7MWcYJGPY543OUQb7emI2ppVT7cnb2+k9Uvd5tDSBG\r\nLc9VaV32JmMa5TBYY0QPJV87OHNs3p2DCD04j3O2lzldReOTFLPPLg==\r\n-----END RSA PRIVATE KEY-----\r\n"
  },
  {
    "path": "docs/README.md",
    "content": "# Website\n\nThis website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.\n\n### Installation\n\n```\n$ yarn\n```\n\n### Local Development\n\n```\n$ yarn start\n```\n\nThis command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.\n\n### Build\n\n```\n$ yarn build\n```\n\nThis command generates static content into the `build` directory and can be served using any static contents hosting service.\n\n### Deployment\n\nUsing SSH:\n\n```\n$ USE_SSH=true yarn deploy\n```\n\nNot using SSH:\n\n```\n$ GIT_USER=<Your GitHub username> yarn deploy\n```\n\nIf you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.\n"
  },
  {
    "path": "docs/babel.config.js",
    "content": "module.exports = {\n  presets: [require.resolve('@docusaurus/core/lib/babel/preset')],\n};\n"
  },
  {
    "path": "docs/config/typography.js",
    "content": "module.exports = ({ theme }) => ({\n  DEFAULT: {\n    css: {\n      '--tw-prose-body': theme('colors.zinc.700'),\n      '--tw-prose-headings': theme('colors.zinc.900'),\n      '--tw-prose-links': theme('colors.emerald.500'),\n      '--tw-prose-links-hover': theme('colors.emerald.600'),\n      '--tw-prose-links-underline': theme('colors.emerald.500 / 0.3'),\n      '--tw-prose-bold': theme('colors.zinc.900'),\n      '--tw-prose-counters': theme('colors.zinc.500'),\n      '--tw-prose-bullets': theme('colors.zinc.300'),\n      '--tw-prose-hr': theme('colors.zinc.900 / 0.05'),\n      '--tw-prose-quotes': theme('colors.zinc.900'),\n      '--tw-prose-quote-borders': theme('colors.zinc.200'),\n      '--tw-prose-captions': theme('colors.zinc.500'),\n      '--tw-prose-code': theme('colors.zinc.900'),\n      '--tw-prose-code-bg': theme('colors.zinc.100'),\n      '--tw-prose-code-ring': theme('colors.zinc.300'),\n      '--tw-prose-th-borders': theme('colors.zinc.300'),\n      '--tw-prose-td-borders': theme('colors.zinc.200'),\n\n      '--tw-prose-invert-body': theme('colors.zinc.400'),\n      '--tw-prose-invert-headings': theme('colors.white'),\n      '--tw-prose-invert-links': theme('colors.emerald.400'),\n      '--tw-prose-invert-links-hover': theme('colors.emerald.500'),\n      '--tw-prose-invert-links-underline': theme('colors.emerald.500 / 0.3'),\n      '--tw-prose-invert-bold': theme('colors.white'),\n      '--tw-prose-invert-counters': theme('colors.zinc.400'),\n      '--tw-prose-invert-bullets': theme('colors.zinc.600'),\n      '--tw-prose-invert-hr': theme('colors.white / 0.05'),\n      '--tw-prose-invert-quotes': theme('colors.zinc.100'),\n      '--tw-prose-invert-quote-borders': theme('colors.zinc.700'),\n      '--tw-prose-invert-captions': theme('colors.zinc.400'),\n      '--tw-prose-invert-code': theme('colors.white'),\n      '--tw-prose-invert-code-bg': theme('colors.zinc.700 / 0.15'),\n      '--tw-prose-invert-code-ring': theme('colors.white / 0.1'),\n      '--tw-prose-invert-th-borders': theme('colors.zinc.600'),\n      '--tw-prose-invert-td-borders': theme('colors.zinc.700'),\n\n      // Base\n      color: 'var(--tw-prose-body)',\n      fontSize: theme('fontSize.sm')[0],\n      lineHeight: theme('lineHeight.7'),\n\n      // Layout\n      '> *': {\n        maxWidth: theme('maxWidth.2xl'),\n        marginLeft: 'auto',\n        marginRight: 'auto',\n        '@screen lg': {\n          maxWidth: theme('maxWidth.3xl'),\n          marginLeft: `calc(50% - min(50%, ${theme('maxWidth.lg')}))`,\n          marginRight: `calc(50% - min(50%, ${theme('maxWidth.lg')}))`,\n        },\n      },\n\n      // Text\n      p: {\n        marginTop: theme('spacing.6'),\n        marginBottom: theme('spacing.6'),\n      },\n      '[class~=\"lead\"]': {\n        fontSize: theme('fontSize.base')[0],\n        ...theme('fontSize.base')[1],\n      },\n\n      // Lists\n      ol: {\n        listStyleType: 'decimal',\n        marginTop: theme('spacing.5'),\n        marginBottom: theme('spacing.5'),\n        paddingLeft: '1.625rem',\n      },\n      'ol[type=\"A\"]': {\n        listStyleType: 'upper-alpha',\n      },\n      'ol[type=\"a\"]': {\n        listStyleType: 'lower-alpha',\n      },\n      'ol[type=\"A\" s]': {\n        listStyleType: 'upper-alpha',\n      },\n      'ol[type=\"a\" s]': {\n        listStyleType: 'lower-alpha',\n      },\n      'ol[type=\"I\"]': {\n        listStyleType: 'upper-roman',\n      },\n      'ol[type=\"i\"]': {\n        listStyleType: 'lower-roman',\n      },\n      'ol[type=\"I\" s]': {\n        listStyleType: 'upper-roman',\n      },\n      'ol[type=\"i\" s]': {\n        listStyleType: 'lower-roman',\n      },\n      'ol[type=\"1\"]': {\n        listStyleType: 'decimal',\n      },\n      ul: {\n        listStyleType: 'disc',\n        marginTop: theme('spacing.5'),\n        marginBottom: theme('spacing.5'),\n        paddingLeft: '1.625rem',\n      },\n      li: {\n        marginTop: theme('spacing.2'),\n        marginBottom: theme('spacing.2'),\n      },\n      ':is(ol, ul) > li': {\n        paddingLeft: theme('spacing[1.5]'),\n      },\n      'ol > li::marker': {\n        fontWeight: '400',\n        color: 'var(--tw-prose-counters)',\n      },\n      'ul > li::marker': {\n        color: 'var(--tw-prose-bullets)',\n      },\n      '> ul > li p': {\n        marginTop: theme('spacing.3'),\n        marginBottom: theme('spacing.3'),\n      },\n      '> ul > li > *:first-child': {\n        marginTop: theme('spacing.5'),\n      },\n      '> ul > li > *:last-child': {\n        marginBottom: theme('spacing.5'),\n      },\n      '> ol > li > *:first-child': {\n        marginTop: theme('spacing.5'),\n      },\n      '> ol > li > *:last-child': {\n        marginBottom: theme('spacing.5'),\n      },\n      'ul ul, ul ol, ol ul, ol ol': {\n        marginTop: theme('spacing.3'),\n        marginBottom: theme('spacing.3'),\n      },\n\n      // Horizontal rules\n      hr: {\n        borderColor: 'var(--tw-prose-hr)',\n        borderTopWidth: 1,\n        marginTop: theme('spacing.16'),\n        marginBottom: theme('spacing.16'),\n        maxWidth: 'none',\n        marginLeft: `calc(-1 * ${theme('spacing.4')})`,\n        marginRight: `calc(-1 * ${theme('spacing.4')})`,\n        '@screen sm': {\n          marginLeft: `calc(-1 * ${theme('spacing.6')})`,\n          marginRight: `calc(-1 * ${theme('spacing.6')})`,\n        },\n        '@screen lg': {\n          marginLeft: `calc(-1 * ${theme('spacing.8')})`,\n          marginRight: `calc(-1 * ${theme('spacing.8')})`,\n        },\n      },\n\n      // Quotes\n      blockquote: {\n        fontWeight: '500',\n        fontStyle: 'italic',\n        color: 'var(--tw-prose-quotes)',\n        borderLeftWidth: '0.25rem',\n        borderLeftColor: 'var(--tw-prose-quote-borders)',\n        quotes: '\"\\\\201C\"\"\\\\201D\"\"\\\\2018\"\"\\\\2019\"',\n        marginTop: theme('spacing.8'),\n        marginBottom: theme('spacing.8'),\n        paddingLeft: theme('spacing.5'),\n      },\n      'blockquote p:first-of-type::before': {\n        content: 'open-quote',\n      },\n      'blockquote p:last-of-type::after': {\n        content: 'close-quote',\n      },\n\n      // Headings\n      h1: {\n        color: 'var(--tw-prose-headings)',\n        fontWeight: '700',\n        fontSize: theme('fontSize.2xl')[0],\n        ...theme('fontSize.2xl')[1],\n        marginBottom: theme('spacing.2'),\n      },\n      h2: {\n        color: 'var(--tw-prose-headings)',\n        fontWeight: '600',\n        fontSize: theme('fontSize.lg')[0],\n        ...theme('fontSize.lg')[1],\n        marginTop: theme('spacing.16'),\n        marginBottom: theme('spacing.2'),\n      },\n      h3: {\n        color: 'var(--tw-prose-headings)',\n        fontSize: theme('fontSize.base')[0],\n        ...theme('fontSize.base')[1],\n        fontWeight: '600',\n        marginTop: theme('spacing.10'),\n        marginBottom: theme('spacing.2'),\n      },\n\n      // Media\n      'img, video, figure': {\n        marginTop: theme('spacing.8'),\n        marginBottom: theme('spacing.8'),\n      },\n      'figure > *': {\n        marginTop: '0',\n        marginBottom: '0',\n      },\n      figcaption: {\n        color: 'var(--tw-prose-captions)',\n        fontSize: theme('fontSize.xs')[0],\n        ...theme('fontSize.xs')[1],\n        marginTop: theme('spacing.2'),\n      },\n\n      // Tables\n      table: {\n        width: '100%',\n        tableLayout: 'auto',\n        textAlign: 'left',\n        marginTop: theme('spacing.8'),\n        marginBottom: theme('spacing.8'),\n        lineHeight: theme('lineHeight.6'),\n      },\n      thead: {\n        borderBottomWidth: '1px',\n        borderBottomColor: 'var(--tw-prose-th-borders)',\n      },\n      'thead th': {\n        color: 'var(--tw-prose-headings)',\n        fontWeight: '600',\n        verticalAlign: 'bottom',\n        paddingRight: theme('spacing.2'),\n        paddingBottom: theme('spacing.2'),\n        paddingLeft: theme('spacing.2'),\n      },\n      'thead th:first-child': {\n        paddingLeft: '0',\n      },\n      'thead th:last-child': {\n        paddingRight: '0',\n      },\n      'tbody tr': {\n        borderBottomWidth: '1px',\n        borderBottomColor: 'var(--tw-prose-td-borders)',\n      },\n      'tbody tr:last-child': {\n        borderBottomWidth: '0',\n      },\n      'tbody td': {\n        verticalAlign: 'baseline',\n      },\n      tfoot: {\n        borderTopWidth: '1px',\n        borderTopColor: 'var(--tw-prose-th-borders)',\n      },\n      'tfoot td': {\n        verticalAlign: 'top',\n      },\n      ':is(tbody, tfoot) td': {\n        paddingTop: theme('spacing.2'),\n        paddingRight: theme('spacing.2'),\n        paddingBottom: theme('spacing.2'),\n        paddingLeft: theme('spacing.2'),\n      },\n      ':is(tbody, tfoot) td:first-child': {\n        paddingLeft: '0',\n      },\n      ':is(tbody, tfoot) td:last-child': {\n        paddingRight: '0',\n      },\n\n      // Inline elements\n      a: {\n        color: 'var(--tw-prose-links)',\n        textDecoration: 'underline transparent',\n        fontWeight: '500',\n        transitionProperty: 'color, text-decoration-color',\n        transitionDuration: theme('transitionDuration.DEFAULT'),\n        transitionTimingFunction: theme('transitionTimingFunction.DEFAULT'),\n        '&:hover': {\n          color: 'var(--tw-prose-links-hover)',\n          textDecorationColor: 'var(--tw-prose-links-underline)',\n        },\n      },\n      ':is(h1, h2, h3) a': {\n        fontWeight: 'inherit',\n      },\n      strong: {\n        color: 'var(--tw-prose-bold)',\n        fontWeight: '600',\n      },\n      ':is(a, blockquote, thead th) strong': {\n        color: 'inherit',\n      },\n      code: {\n        color: 'var(--tw-prose-code)',\n        borderRadius: theme('borderRadius.lg'),\n        paddingTop: theme('padding.1'),\n        paddingRight: theme('padding[1.5]'),\n        paddingBottom: theme('padding.1'),\n        paddingLeft: theme('padding[1.5]'),\n        boxShadow: 'inset 0 0 0 1px var(--tw-prose-code-ring)',\n        backgroundColor: 'var(--tw-prose-code-bg)',\n        fontSize: theme('fontSize.2xs'),\n      },\n      ':is(a, h1, h2, h3, blockquote, thead th) code': {\n        color: 'inherit',\n      },\n      'h2 code': {\n        fontSize: theme('fontSize.base')[0],\n        fontWeight: 'inherit',\n      },\n      'h3 code': {\n        fontSize: theme('fontSize.sm')[0],\n        fontWeight: 'inherit',\n      },\n\n      // Overrides\n      ':is(h1, h2, h3) + *': {\n        marginTop: '0',\n      },\n      '> :first-child': {\n        marginTop: '0 !important',\n      },\n      '> :last-child': {\n        marginBottom: '0 !important',\n      },\n    },\n  },\n  invert: {\n    css: {\n      '--tw-prose-body': 'var(--tw-prose-invert-body)',\n      '--tw-prose-headings': 'var(--tw-prose-invert-headings)',\n      '--tw-prose-links': 'var(--tw-prose-invert-links)',\n      '--tw-prose-links-hover': 'var(--tw-prose-invert-links-hover)',\n      '--tw-prose-links-underline': 'var(--tw-prose-invert-links-underline)',\n      '--tw-prose-bold': 'var(--tw-prose-invert-bold)',\n      '--tw-prose-counters': 'var(--tw-prose-invert-counters)',\n      '--tw-prose-bullets': 'var(--tw-prose-invert-bullets)',\n      '--tw-prose-hr': 'var(--tw-prose-invert-hr)',\n      '--tw-prose-quotes': 'var(--tw-prose-invert-quotes)',\n      '--tw-prose-quote-borders': 'var(--tw-prose-invert-quote-borders)',\n      '--tw-prose-captions': 'var(--tw-prose-invert-captions)',\n      '--tw-prose-code': 'var(--tw-prose-invert-code)',\n      '--tw-prose-code-bg': 'var(--tw-prose-invert-code-bg)',\n      '--tw-prose-code-ring': 'var(--tw-prose-invert-code-ring)',\n      '--tw-prose-th-borders': 'var(--tw-prose-invert-th-borders)',\n      '--tw-prose-td-borders': 'var(--tw-prose-invert-td-borders)',\n    },\n  },\n})\n"
  },
  {
    "path": "docs/docs/API/auto_position Plugin.mdx",
    "content": "---\ntitle: auto_position Plugin\ndescription: API Reference for auto_position Plugin\n---\n# API Documentation for auto_position Plugin\n"
  },
  {
    "path": "docs/docs/API/auto_select_on_type Plugin.mdx",
    "content": "---\ntitle: auto_select_on_type Plugin\ndescription: API Reference for auto_select_on_type Plugin\n---\n# API Documentation for auto_select_on_type Plugin\n"
  },
  {
    "path": "docs/docs/API/autofill_disable Plugin.mdx",
    "content": "---\ntitle: autofill_disable Plugin\ndescription: API Reference for autofill_disable Plugin\n---\n# API Documentation for autofill_disable Plugin\n<a name=\"options\"></a>\n\n## options : <code>object</code>\nBy default, Selectize allows the browser to autofill the control input provided by the user.\nThis plugin disables that behavior by generating a random name and autocomplete attribute.\nThis is a workaround for the fact that browsers do not allow disabling autofill.\n\nThere are several ways to disable autofill, but they all have drawbacks\nand are not handled the same way across all browsers:\n\n- Set the attribute `autocomplete=\"off\"`: This is the most common way to disable autofill, but it is not supported by all browsers.\n- Set the attribute `autocomplete=\"new-password\"`: This is the most common way to disable autofill in modern browsers, but it is not supported by all browsers.\n- Add a `readonly` attribute to the input and remove the property after the user has interacted with the control.\n- Set the input type to `search` or `tel`: in conjuntion with `autocomplete=\"off\"`.\n- Wrap the input in a div, and add a hidden input with a tabindex of -1, and styled with 'display: none;'.\n- Add a duplicate hidden input with the same name, but a different id.\n- Use a randomizes name and autocomplete attribute.\n\n**Kind**: global typedef  \n**Author**: [Ris Adams](https://github.com/risadams)  \n**Example**  \n```js\n$('select').selectize({\n plugins: ['autofill_disable']\n});\n```\n"
  },
  {
    "path": "docs/docs/API/clear_button Plugin.mdx",
    "content": "---\ntitle: clear_button Plugin\ndescription: API Reference for clear_button Plugin\n---\n# API Documentation for clear_button Plugin\n<a name=\"options\"></a>\n\n## options : <code>object</code>\nObject of options available for \"clear_button\" plugin\n\n**Kind**: global typedef  \n**Author**: [Fabien Winkler](https://github.com/fabienwnklr)  \n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| [title] | <code>string</code> | <code>&quot;Clear&quot;</code> | Title for the clear button |\n| [className] | <code>string</code> | <code>&quot;clear&quot;</code> | Class name for the clear button |\n| [label] | <code>string</code> | <code>&quot;×&quot;</code> | [props=data] Label for the clear button |\n| [html] | <code>function</code> |  | Method used for rendering |\n\n**Example**  \n```js\n$('select').selectize({\n plugins: [\n   {\n     clear_button: {\n       title: 'Custom title',\n       className: 'custom-class',\n       label: 'custom label',\n       html: (data) => {\n         return (\n           `<a class=\"${data.className}\" title=\"${data.title}\">${data.label}</a>`;\n       }\n    }\n  }\n ]\n});\n```\n"
  },
  {
    "path": "docs/docs/API/constants.mdx",
    "content": "---\ntitle: constants\ndescription: API Reference for constants\n---\n# API Documentation for constants\n<a name=\"IS_MAC\"></a>\n\n## IS\\_MAC : <code>boolean</code>\nCheck if device is a Mac\n\n**Kind**: global variable  \n<a name=\"KEY_A\"></a>\n\n## KEY\\_A : <code>number</code>\n**Kind**: global variable  \n<a name=\"KEY_COMMA\"></a>\n\n## KEY\\_COMMA : <code>number</code>\n**Kind**: global variable  \n<a name=\"KEY_RETURN\"></a>\n\n## KEY\\_RETURN : <code>number</code>\n**Kind**: global variable  \n<a name=\"KEY_ESC\"></a>\n\n## KEY\\_ESC : <code>number</code>\n**Kind**: global variable  \n<a name=\"KEY_LEFT\"></a>\n\n## KEY\\_LEFT : <code>number</code>\n**Kind**: global variable  \n<a name=\"KEY_UP\"></a>\n\n## KEY\\_UP : <code>number</code>\n**Kind**: global variable  \n<a name=\"KEY_P\"></a>\n\n## KEY\\_P : <code>number</code>\n**Kind**: global variable  \n<a name=\"KEY_RIGHT\"></a>\n\n## KEY\\_RIGHT : <code>number</code>\n**Kind**: global variable  \n<a name=\"KEY_DOWN\"></a>\n\n## KEY\\_DOWN : <code>number</code>\n**Kind**: global variable  \n<a name=\"KEY_N\"></a>\n\n## KEY\\_N : <code>number</code>\n**Kind**: global variable  \n<a name=\"KEY_BACKSPACE\"></a>\n\n## KEY\\_BACKSPACE : <code>number</code>\n**Kind**: global variable  \n<a name=\"KEY_DELETE\"></a>\n\n## KEY\\_DELETE : <code>number</code>\n**Kind**: global variable  \n<a name=\"KEY_SHIFT\"></a>\n\n## KEY\\_SHIFT : <code>number</code>\n**Kind**: global variable  \n<a name=\"KEY_CMD\"></a>\n\n## KEY\\_CMD : <code>number</code>\n**Kind**: global variable  \n<a name=\"KEY_CTRL\"></a>\n\n## KEY\\_CTRL : <code>number</code>\n**Kind**: global variable  \n<a name=\"KEY_TAB\"></a>\n\n## KEY\\_TAB : <code>number</code>\n**Kind**: global variable  \n<a name=\"TAG_SELECT\"></a>\n\n## TAG\\_SELECT : <code>number</code>\n**Kind**: global variable  \n<a name=\"TAG_INPUT\"></a>\n\n## TAG\\_INPUT : <code>number</code>\n**Kind**: global variable  \n<a name=\"SUPPORTS_VALIDITY_API\"></a>\n\n## SUPPORTS\\_VALIDITY\\_API : <code>number</code>\nCheck if device support validity api, for now, android support in general is too spotty to support validity\n\n**Kind**: global variable  \n"
  },
  {
    "path": "docs/docs/API/defaults.mdx",
    "content": "---\ntitle: defaults\ndescription: API Reference for defaults\n---\n# API Documentation for defaults\n"
  },
  {
    "path": "docs/docs/API/drag_drop Plugin.mdx",
    "content": "---\ntitle: drag_drop Plugin\ndescription: API Reference for drag_drop Plugin\n---\n# API Documentation for drag_drop Plugin\n"
  },
  {
    "path": "docs/docs/API/dropdown_header Plugin.mdx",
    "content": "---\ntitle: dropdown_header Plugin\ndescription: API Reference for dropdown_header Plugin\n---\n# API Documentation for dropdown_header Plugin\n<a name=\"options\"></a>\n\n## options : <code>Object</code>\nAvailable options for dropdown_header plugin\n\n**Kind**: global typedef  \n**Author**: [Brian Reavis](https://github.com/brianreavis)  \n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| [title] | <code>string</code> | <code>&quot;Untitled&quot;</code> | Title of dropdown_header |\n| [headerClass] | <code>string</code> | <code>&quot;selectize-dropdown-header&quot;</code> | Class of dropdown_header |\n| [titleRowClass] | <code>string</code> | <code>&quot;selectize-dropdown-header-title&quot;</code> | Class for title row |\n| [labelClass] | <code>string</code> | <code>&quot;selectize-dropdown-header-label&quot;</code> | Class for label |\n| [closeClass] | <code>string</code> | <code>&quot;selectize-dropdown-header-close&quot;</code> | Class for dropdown_header close button |\n| [html] | <code>function</code> |  | Method for custom rendering of dropdown_header |\n\n**Example**  \n```js\n$('select').selectize({\n plugins: [\n   {\n     dropdown_header: {\n       title: 'Custom title',\n       headerClass: 'custom-header-class',\n       labelClass: 'custom-label-class',\n       closeClass: 'custom-close-class',\n       html: (data) => {\n         // data contain all options values\n         return (\n           `<a class=\"${data.labelClass}\" title=\"${data.title}\">${data.title}</a>`;\n       }\n    }\n  }\n ]\n});\n```\n"
  },
  {
    "path": "docs/docs/API/highlight.mdx",
    "content": "---\ntitle: highlight\ndescription: API Reference for highlight\n---\n# API Documentation for highlight\n<a name=\"highlight\"></a>\n\n## highlight()\nhighlight v3 | MIT license | Johann Burkard <jb@eaio.com>\nHighlights arbitrary terms in a node.\n\n- Modified by Marshal <beatgates@gmail.com> 2011-6-24 (added regex)\n- Modified by Brian Reavis <brian@thirdroute.com> 2012-8-27 (cleanup)\n\n**Kind**: global function  \n"
  },
  {
    "path": "docs/docs/API/microevent.mdx",
    "content": "---\ntitle: microevent\ndescription: API Reference for microevent\n---\n# API Documentation for microevent\n<a name=\"MicroEvent\"></a>\n\n## MicroEvent()\nMicroEvent - to make any js object an event emitter\n\n- pure javascript - server compatible, browser compatible\n- don't rely on the browser doms\n- super simple - you get it immediately, no mystery, no magic involved\n\n**Kind**: global function  \n**Author**: Jerome Etienne (https://github.com/jeromeetienne)  \n<a name=\"MicroEvent.mixin\"></a>\n\n### MicroEvent.mixin(the)\nMixin will delegate all MicroEvent.js function in the destination object.\n\n- MicroEvent.mixin(Foobar) will make Foobar able to use MicroEvent\n\n**Kind**: static method of [<code>MicroEvent</code>](#MicroEvent)  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| the | <code>object</code> | object which will support MicroEvent |\n\n"
  },
  {
    "path": "docs/docs/API/microplugin.mdx",
    "content": "---\ntitle: microplugin\ndescription: API Reference for microplugin\n---\n# API Documentation for microplugin\n<a name=\"MicroPlugin\"></a>\n\n## MicroPlugin\nMicroPlugin\n\n**Kind**: global class  \n\n* [MicroPlugin](#MicroPlugin)\n    * [new MicroPlugin(items, items)](#new_MicroPlugin_new)\n    * [.Interface.plugins](#MicroPlugin.Interface.plugins)\n    * [.Interface#initializePlugins(plugins)](#MicroPlugin.Interface+initializePlugins)\n    * [.Interface#loadPlugin(name)](#MicroPlugin.Interface+loadPlugin)\n    * [.Interface#require(name)](#MicroPlugin.Interface+require)\n    * [.Interface.define(name, fn)](#MicroPlugin.Interface.define)\n\n<a name=\"new_MicroPlugin_new\"></a>\n\n### new MicroPlugin(items, items)\nKeep code modularized & extensible.\nMicroPlugin is a lightweight drop-in plugin architecture for your JavaScript library.\n Plugins can declare dependencies to other plugins and can be initialized with options (in a variety of formats).\n\n\n| Param | Type |\n| --- | --- |\n| items | <code>array</code> \\| <code>object</code> | \n| items | <code>object</code> | \n\n<a name=\"MicroPlugin.Interface.plugins\"></a>\n\n### MicroPlugin.Interface.plugins\n**Kind**: static property of [<code>MicroPlugin</code>](#MicroPlugin)  \n<a name=\"MicroPlugin.Interface+initializePlugins\"></a>\n\n### MicroPlugin.Interface#initializePlugins(plugins)\nInitializes the listed plugins (with options).\nAcceptable formats:\n\n- List (without options): - `['a', 'b', 'c']`\n- List (with options): - `[{'name': 'a', options: {}}, {'name': 'b', options: {}}]`\n- Hash (with options): - `{'a': { ... }, 'b': { ... }, 'c': { ... }}`\n\n**Kind**: static method of [<code>MicroPlugin</code>](#MicroPlugin)  \n\n| Param | Type |\n| --- | --- |\n| plugins | <code>mixed</code> | \n\n<a name=\"MicroPlugin.Interface+loadPlugin\"></a>\n\n### MicroPlugin.Interface#loadPlugin(name)\nLoads a plugin.\n\n**Kind**: static method of [<code>MicroPlugin</code>](#MicroPlugin)  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| name | <code>string</code> | The name of the plugin to load. |\n\n<a name=\"MicroPlugin.Interface+require\"></a>\n\n### MicroPlugin.Interface#require(name)\nInitializes a plugin.\n\n**Kind**: static method of [<code>MicroPlugin</code>](#MicroPlugin)  \n\n| Param | Type |\n| --- | --- |\n| name | <code>string</code> | \n\n<a name=\"MicroPlugin.Interface.define\"></a>\n\n### MicroPlugin.Interface.define(name, fn)\nRegisters a plugin.\n\n**Kind**: static method of [<code>MicroPlugin</code>](#MicroPlugin)  \n\n| Param | Type |\n| --- | --- |\n| name | <code>string</code> | \n| fn | <code>function</code> | \n\n"
  },
  {
    "path": "docs/docs/API/nanoid.mdx",
    "content": "---\ntitle: nanoid\ndescription: API Reference for nanoid\n---\n# API Documentation for nanoid\n<a name=\"nanoid\"></a>\n\n## nanoid()\nnanoid v3 | MIT license | https://github.com/ai/nanoid\nGenerates a random ID. We use this to generate unique names for the input fields so that\nthe browser doesn't try to autofill them. This is a modified version of the original\nnanoid function that uses a shorter ID.\n\n- Modified by Ris Adams <ris@risadams.com> 2023-01-05 (Modified to support Selectize needs)\n\n**Kind**: global function  \n"
  },
  {
    "path": "docs/docs/API/optgroup_columns Plugin.mdx",
    "content": "---\ntitle: optgroup_columns Plugin\ndescription: API Reference for optgroup_columns Plugin\n---\n# API Documentation for optgroup_columns Plugin\n<a name=\"options\"></a>\n\n## options : <code>Object</code>\nAvailable options for optgroup_columns plugin\n\n**Kind**: global typedef  \n**Author**: [Simon Hewitt](https://github.com/sjhewitt)  \n\n| Param | Type | Default |\n| --- | --- | --- |\n| [equalizeWidth] | <code>boolean</code> | <code>true</code> | \n| [equalizeHeight] | <code>boolean</code> | <code>true</code> | \n\n**Example**  \n```js\n$('select').selectize({\n plugins: [\n   {\n     optgroup_columns: {\n       equalizeWidth: false,\n       equalizeHeight: false,\n    }\n  }\n ]\n});\n```\n"
  },
  {
    "path": "docs/docs/API/read-only Plugin.mdx",
    "content": "---\ntitle: read-only Plugin\ndescription: API Reference for read-only Plugin\n---\n# API Documentation for read-only Plugin\n"
  },
  {
    "path": "docs/docs/API/remove_button Plugin.mdx",
    "content": "---\ntitle: remove_button Plugin\ndescription: API Reference for remove_button Plugin\n---\n# API Documentation for remove_button Plugin\n<a name=\"options\"></a>\n\n## options : <code>Object</code>\nObject of options available for \"remove_button\" plugin\n\n**Kind**: global typedef  \n**Author**: [Brian Reavis](https://github.com/brianreavis)  \n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| [label] | <code>string</code> | <code>&quot;&amp;#xd7;&quot;</code> | The label value for remove button |\n| [title] | <code>string</code> | <code>&quot;Remove&quot;</code> | The Title value for remove button |\n| [className] | <code>string</code> | <code>&quot;remove&quot;</code> | Class name for remove button |\n| [append] | <code>boolean</code> | <code>true</code> | Append remove button to item |\n\n"
  },
  {
    "path": "docs/docs/API/restore_on_backspace Plugin.mdx",
    "content": "---\ntitle: restore_on_backspace Plugin\ndescription: API Reference for restore_on_backspace Plugin\n---\n# API Documentation for restore_on_backspace Plugin\n<a name=\"options\"></a>\n\n## options : <code>Object</code>\nObject of options available on restore_on_backspace plugin\n\n**Kind**: global typedef  \n**Author**: [Brian Reavis](htts://github.com/brianreavis)  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| text | <code>string</code> | Text to set on restore |\n\n"
  },
  {
    "path": "docs/docs/API/select_on_focus Plugin.mdx",
    "content": "---\ntitle: select_on_focus Plugin\ndescription: API Reference for select_on_focus Plugin\n---\n# API Documentation for select_on_focus Plugin\n"
  },
  {
    "path": "docs/docs/API/selectize.jquery.mdx",
    "content": "---\ntitle: selectize.jquery\ndescription: API Reference for selectize.jquery\n---\n# API Documentation for selectize.jquery\n"
  },
  {
    "path": "docs/docs/API/selectize.mdx",
    "content": "---\ntitle: selectize\ndescription: API Reference for selectize\n---\n# API Documentation for selectize\n<a name=\"Selectize\"></a>\n\n## Selectize($input, settings)\nSelectize instance\n\n**Kind**: global function  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| $input | <code>JQuery</code> | Jquery object of target element to Selectized |\n| settings | <code>Object</code> | Options to apply for selectized element |\n\n<a name=\"setup\"></a>\n\n## setup()\nCreates all elements and sets up event bindings.\n\n**Kind**: global function  \n<a name=\"setupTemplates\"></a>\n\n## setupTemplates()\nSets up default rendering functions.\n\n**Kind**: global function  \n<a name=\"setupCallbacks\"></a>\n\n## setupCallbacks()\nMaps fired events to callbacks provided\nin the settings used when creating the control.\n\n**Kind**: global function  \n<a name=\"onClick\"></a>\n\n## onClick(e) ⇒ <code>boolean</code>\nTriggered when the main control element\nhas a click event.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| e | <code>PointerEvent</code> | \n\n<a name=\"onMouseDown\"></a>\n\n## onMouseDown(e) ⇒ <code>boolean</code>\nTriggered when the main control element\nhas a mouse down event.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| e | <code>object</code> | \n\n<a name=\"onChange\"></a>\n\n## onChange()\nTriggered when the value of the control has been changed.\nThis should propagate the event to the original DOM\ninput / select element.\n\n**Kind**: global function  \n<a name=\"onPaste\"></a>\n\n## onPaste(e) ⇒ <code>boolean</code>\nTriggered on `<input>` paste.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| e | <code>object</code> | \n\n<a name=\"onKeyPress\"></a>\n\n## onKeyPress(e) ⇒ <code>boolean</code>\nTriggered on `<input>` keypress.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| e | <code>object</code> | \n\n<a name=\"onKeyDown\"></a>\n\n## onKeyDown(e) ⇒ <code>boolean</code>\nTriggered on `<input>` keydown.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| e | <code>object</code> | \n\n<a name=\"onInput\"></a>\n\n## onInput(e) ⇒ <code>boolean</code>\nTriggered on `<input>` input.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| e | <code>object</code> | \n\n<a name=\"onSearchChange\"></a>\n\n## onSearchChange(value)\nInvokes the user-provide option provider / loader.\n\nNote: this function is debounced in the Selectize\nconstructor (by `settings.loadThrottle` milliseconds)\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| value | <code>string</code> | \n\n<a name=\"onFocus\"></a>\n\n## onFocus(e) ⇒ <code>boolean</code>\nTriggered on `<input>` focus.\n\n**Kind**: global function  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| e | <code>FocusEvent</code> | (optional) |\n\n<a name=\"onBlur\"></a>\n\n## onBlur(e, dest)\nTriggered on `<input>` blur.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| e | <code>object</code> | \n| dest | <code>Element</code> | \n\n<a name=\"onOptionHover\"></a>\n\n## onOptionHover(e) ⇒ <code>boolean</code>\nTriggered when the user rolls over\nan option in the autocomplete dropdown menu.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| e | <code>object</code> | \n\n<a name=\"onOptionSelect\"></a>\n\n## onOptionSelect(e) ⇒ <code>boolean</code>\nTriggered when the user clicks on an option\nin the autocomplete dropdown menu.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| e | <code>object</code> | \n\n<a name=\"onItemSelect\"></a>\n\n## onItemSelect(e) ⇒ <code>boolean</code>\nTriggered when the user clicks on an item\nthat has been selected.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| e | <code>object</code> | \n\n<a name=\"load\"></a>\n\n## load(fn)\nInvokes the provided method that provides\nresults to a callback---which are then added\nas options to the control.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| fn | <code>function</code> | \n\n<a name=\"getTextboxValue\"></a>\n\n## getTextboxValue() ⇒ <code>string</code>\nGets the value of input field of the control.\n\n**Kind**: global function  \n**Returns**: <code>string</code> - value  \n<a name=\"setTextboxValue\"></a>\n\n## setTextboxValue(value)\nSets the input field of the control to the specified value.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| value | <code>string</code> | \n\n<a name=\"getValue\"></a>\n\n## getValue() ⇒ <code>mixed</code>\nReturns the value of the control. If multiple items\ncan be selected `(e.g. <select multiple>)`, this returns\nan array. If only one item can be selected, this\nreturns a string.\n\n**Kind**: global function  \n<a name=\"setValue\"></a>\n\n## setValue(value)\nResets the selected items to the given value.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| value | <code>Array.&lt;(String\\|Number)&gt;</code> | \n\n<a name=\"setMaxItems\"></a>\n\n## setMaxItems(value)\nResets the number of max items to the given value\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| value | <code>number</code> | \n\n<a name=\"setActiveItem\"></a>\n\n## setActiveItem($item, e)\nSets the selected item.\n\n**Kind**: global function  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| $item | <code>object</code> |  |\n| e | <code>object</code> | (optional) |\n\n<a name=\"setActiveOption\"></a>\n\n## setActiveOption($object, scroll, animate)\nSets the selected item in the dropdown menu\nof available options.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| $object | <code>object</code> | \n| scroll | <code>boolean</code> | \n| animate | <code>boolean</code> | \n\n<a name=\"selectAll\"></a>\n\n## selectAll()\nSelects all items (CTRL + A).\n\n**Kind**: global function  \n<a name=\"hideInput\"></a>\n\n## hideInput()\nHides the input element out of view, while\nretaining its focus.\n\n**Kind**: global function  \n<a name=\"showInput\"></a>\n\n## showInput()\nRestores input visibility.\n\n**Kind**: global function  \n<a name=\"focus\"></a>\n\n## focus()\nGives the control focus.\n\n**Kind**: global function  \n<a name=\"blur\"></a>\n\n## blur(dest)\nForces the control out of focus.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| dest | <code>Element</code> | \n\n<a name=\"getScoreFunction\"></a>\n\n## getScoreFunction(query, options) ⇒ <code>function</code>\nReturns a function that scores an object\nto show how good of a match it is to the\nprovided query.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| query | <code>string</code> | \n| options | <code>object</code> | \n\n<a name=\"getSearchOptions\"></a>\n\n## getSearchOptions() ⇒ <code>object</code>\nReturns search options for sifter (the system\nfor scoring and sorting results).\n\n**Kind**: global function  \n**See**: https://github.com/brianreavis/sifter.js  \n<a name=\"search\"></a>\n\n## search(query) ⇒ <code>object</code>\nSearches through available options and returns\na sorted array of matches.\n\nReturns an object containing:\n\n  - query {string}\n  - tokens {array}\n  - total {int}\n  - items {array}\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| query | <code>string</code> | \n\n<a name=\"refreshOptions\"></a>\n\n## refreshOptions(triggerDropdown)\nRefreshes the list of available options shown\nin the autocomplete dropdown menu.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| triggerDropdown | <code>boolean</code> | \n\n<a name=\"addOption\"></a>\n\n## addOption(data)\nAdds an available option. If it already exists,\nnothing will happen. Note: this does not refresh\nthe options list dropdown (use `refreshOptions`\nfor that).\n\nUsage:\n\n  this.addOption(data)\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| data | <code>object</code> \\| <code>array</code> | \n\n<a name=\"registerOption\"></a>\n\n## registerOption(data) ⇒ <code>boolean</code> \\| <code>string</code>\nRegisters an option to the pool of options.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| data | <code>object</code> | \n\n<a name=\"registerOptionGroup\"></a>\n\n## registerOptionGroup(data) ⇒ <code>boolean</code> \\| <code>string</code>\nRegisters an option group to the pool of option groups.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| data | <code>object</code> | \n\n<a name=\"addOptionGroup\"></a>\n\n## addOptionGroup(id, data)\nRegisters a new optgroup for options\nto be bucketed into.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| id | <code>string</code> | \n| data | <code>object</code> | \n\n<a name=\"removeOptionGroup\"></a>\n\n## removeOptionGroup(id)\nRemoves an existing option group.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| id | <code>string</code> | \n\n<a name=\"clearOptionGroups\"></a>\n\n## clearOptionGroups()\nClears all existing option groups.\n\n**Kind**: global function  \n<a name=\"updateOption\"></a>\n\n## updateOption(value, data)\nUpdates an option available for selection. If\nit is visible in the selected items or options\ndropdown, it will be re-rendered automatically.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| value | <code>string</code> | \n| data | <code>object</code> | \n\n<a name=\"removeOption\"></a>\n\n## removeOption(value, silent)\nRemoves a single option.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| value | <code>string</code> | \n| silent | <code>boolean</code> | \n\n<a name=\"clearOptions\"></a>\n\n## clearOptions(silent)\nClears all options, including all selected items\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| silent | <code>boolean</code> | \n\n<a name=\"getOption\"></a>\n\n## getOption(value) ⇒ <code>object</code>\nReturns the jQuery element of the option\nmatching the given value.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| value | <code>string</code> | \n\n<a name=\"getFirstOption\"></a>\n\n## getFirstOption() ⇒ <code>object</code>\nReturns the jQuery element of the first\nselectable option.\n\n**Kind**: global function  \n<a name=\"getAdjacentOption\"></a>\n\n## getAdjacentOption($option, direction) ⇒ <code>object</code>\nReturns the jQuery element of the next or\nprevious selectable option.\n\n**Kind**: global function  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| $option | <code>object</code> |  |\n| direction | <code>int</code> | can be 1 for next or -1 for previous |\n\n<a name=\"getElementWithValue\"></a>\n\n## getElementWithValue(value, $els) ⇒ <code>object</code>\nFinds the first element with a \"data-value\" attribute\nthat matches the given value.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| value | <code>mixed</code> | \n| $els | <code>object</code> | \n\n<a name=\"getElementWithTextContent\"></a>\n\n## getElementWithTextContent(textContent, ignoreCase, $els) ⇒ <code>object</code>\nFinds the first element with a \"textContent\" property\nthat matches the given textContent value.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| textContent | <code>mixed</code> | \n| ignoreCase | <code>boolean</code> | \n| $els | <code>object</code> | \n\n<a name=\"getItem\"></a>\n\n## getItem(value) ⇒ <code>object</code>\nReturns the jQuery element of the item\nmatching the given value.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| value | <code>string</code> | \n\n<a name=\"getFirstItemMatchedByTextContent\"></a>\n\n## getFirstItemMatchedByTextContent(value, ignoreCase) ⇒ <code>object</code>\nReturns the jQuery element of the item\nmatching the given textContent.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| value | <code>string</code> | \n| ignoreCase | <code>boolean</code> | \n\n<a name=\"addItems\"></a>\n\n## addItems(values, silent)\n\"Selects\" multiple items at once. Adds them to the list\nat the current caret position.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| values | <code>string</code> | \n| silent | <code>boolean</code> | \n\n<a name=\"addItem\"></a>\n\n## addItem(value, silent)\n\"Selects\" an item. Adds it to the list\nat the current caret position.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| value | <code>string</code> | \n| silent | <code>boolean</code> | \n\n<a name=\"removeItem\"></a>\n\n## removeItem(value)\nRemoves the selected item matching\nthe provided value.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| value | <code>string</code> | \n\n<a name=\"createItem\"></a>\n\n## createItem(value, [triggerDropdown], [callback]) ⇒ <code>boolean</code>\nInvokes the `create` method provided in the\nselectize options that should provide the data\nfor the new item, given the user input.\n\nOnce this completes, it will be added\nto the item list.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| value | <code>string</code> | \n| [triggerDropdown] | <code>boolean</code> | \n| [callback] | <code>function</code> | \n\n<a name=\"refreshItems\"></a>\n\n## refreshItems()\nRe-renders the selected item lists.\n\n**Kind**: global function  \n<a name=\"refreshState\"></a>\n\n## refreshState()\nUpdates all state-dependent attributes\nand CSS classes.\n\n**Kind**: global function  \n<a name=\"refreshValidityState\"></a>\n\n## refreshValidityState()\nUpdate the `required` attribute of both input and control input.\n\nThe `required` property needs to be activated on the control input\nfor the error to be displayed at the right place. `required` also\nneeds to be temporarily deactivated on the input since the input is\nhidden and can't show errors.\n\n**Kind**: global function  \n<a name=\"refreshClasses\"></a>\n\n## refreshClasses()\nUpdates all state-dependent CSS classes.\n\n**Kind**: global function  \n<a name=\"isFull\"></a>\n\n## isFull() ⇒ <code>boolean</code>\nDetermines whether or not more items can be added\nto the control without exceeding the user-defined maximum.\n\n**Kind**: global function  \n<a name=\"updateOriginalInput\"></a>\n\n## updateOriginalInput()\nRefreshes the original `<select>` or `<input>`\nelement to reflect the current state.\n\n**Kind**: global function  \n<a name=\"updatePlaceholder\"></a>\n\n## updatePlaceholder()\nShows/hide the input placeholder depending\non if there items in the list already.\n\n**Kind**: global function  \n<a name=\"open\"></a>\n\n## open()\nShows the autocomplete dropdown containing\nthe available options.\n\n**Kind**: global function  \n<a name=\"close\"></a>\n\n## close()\nCloses the autocomplete dropdown menu.\n\n**Kind**: global function  \n<a name=\"positionDropdown\"></a>\n\n## positionDropdown()\nCalculates and applies the appropriate\nposition of the dropdown.\n\n**Kind**: global function  \n<a name=\"clear\"></a>\n\n## clear(silent)\nResets / clears all selected items\nfrom the control.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| silent | <code>boolean</code> | \n\n<a name=\"insertAtCaret\"></a>\n\n## insertAtCaret($el)\nA helper method for inserting an element\nat the current caret position.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| $el | <code>object</code> | \n\n<a name=\"insertAtCaret..target\"></a>\n\n### insertAtCaret~target : <code>HTMLElement</code>\n**Kind**: inner property of [<code>insertAtCaret</code>](#insertAtCaret)  \n<a name=\"deleteSelection\"></a>\n\n## deleteSelection(e) ⇒ <code>boolean</code>\nRemoves the current selected item(s).\n\n**Kind**: global function  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| e | <code>object</code> | (optional) |\n\n<a name=\"advanceSelection\"></a>\n\n## advanceSelection(direction, e)\nSelects the previous / next item (depending\non the `direction` argument).\n\n> 0 - right\n< 0 - left\n\n**Kind**: global function  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| direction | <code>int</code> |  |\n| e | <code>object</code> | (optional) |\n\n<a name=\"advanceCaret\"></a>\n\n## advanceCaret(direction, e)\nMoves the caret left / right.\n\n**Kind**: global function  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| direction | <code>int</code> |  |\n| e | <code>object</code> | (optional) |\n\n<a name=\"setCaret\"></a>\n\n## setCaret(i)\nMoves the caret to the specified index.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| i | <code>int</code> | \n\n<a name=\"lock\"></a>\n\n## lock()\nDisables user input on the control. Used while\nitems are being asynchronously created.\n\n**Kind**: global function  \n<a name=\"unlock\"></a>\n\n## unlock()\nRe-enables user input on the control.\n\n**Kind**: global function  \n<a name=\"disable\"></a>\n\n## disable()\nDisables user input on the control completely.\nWhile disabled, it cannot receive focus.\n\n**Kind**: global function  \n<a name=\"enable\"></a>\n\n## enable()\nEnables the control so that it can respond\nto focus and user input.\n\n**Kind**: global function  \n<a name=\"destroy\"></a>\n\n## destroy()\nCompletely destroys the control and\nunbinds all event listeners so that it can\nbe garbage collected.\n\n**Kind**: global function  \n<a name=\"render\"></a>\n\n## render(templateName, data) ⇒ <code>string</code>\nA helper method for rendering \"item\" and\n\"option\" templates, given the data.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| templateName | <code>string</code> | \n| data | <code>object</code> | \n\n<a name=\"clearCache\"></a>\n\n## clearCache(templateName)\nClears the render cache for a template. If\nno template is given, clears all render\ncaches.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| templateName | <code>string</code> | \n\n<a name=\"canCreate\"></a>\n\n## canCreate(input) ⇒ <code>boolean</code>\nDetermines whether or not to display the\ncreate item prompt, given a user input.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| input | <code>string</code> | \n\n"
  },
  {
    "path": "docs/docs/API/sifter.mdx",
    "content": "---\ntitle: sifter\ndescription: API Reference for sifter\n---\n# API Documentation for sifter\n<a name=\"Sifter\"></a>\n\n## Sifter\nSifter\n\n**Kind**: global class  \n\n* [Sifter](#Sifter)\n    * [new Sifter(items, items)](#new_Sifter_new)\n    * [.tokenize(query)](#Sifter+tokenize) ⇒ <code>array</code>\n    * [.iterator(object)](#Sifter+iterator)\n    * [.getScoreFunction(search, options)](#Sifter+getScoreFunction) ⇒ <code>function</code>\n        * [~scoreObject](#Sifter+getScoreFunction..scoreObject) ⇒ <code>number</code>\n        * [~scoreValue(value, token)](#Sifter+getScoreFunction..scoreValue) ⇒ <code>number</code>\n    * [.getSortFunction(search, options)](#Sifter+getSortFunction) ⇒\n        * [~get_field(name, result)](#Sifter+getSortFunction..get_field) ⇒ <code>mixed</code>\n    * [.prepareSearch(query, options)](#Sifter+prepareSearch) ⇒ <code>object</code>\n    * [.search(query, options)](#Sifter+search) ⇒ <code>object</code>\n\n<a name=\"new_Sifter_new\"></a>\n\n### new Sifter(items, items)\nSifter is a client and server-side library (via UMD) for textually searching arrays and hashes of objects by property – or multiple properties. It's designed specifically for autocomplete. The process is three-step: score, filter, sort.\n - **Supports díåcritîçs.** - For example, if searching for \"montana\" and an item in the set has a value of \"montaña\", it will still be matched. Sorting will also play nicely with diacritics\n - **Smart scoring.** - Items are scored / sorted intelligently depending on where a match is found in the string (how close to the beginning) and what percentage of the string matches.\n - **Multi-field sorting**. - When scores aren't enough to go by – like when getting results for an empty query – it can sort by one or more fields. For example, sort by a person's first name and last name without actually merging the properties to a single string.\n - **Nested properties.** - Allows to search and sort on nested properties so you can perform search on complex objects without flattening them simply by using dot-notation to reference fields (ie. nested.property).\n\n\n| Param | Type |\n| --- | --- |\n| items | <code>array</code> \\| <code>object</code> | \n| items | <code>object</code> | \n\n<a name=\"Sifter+tokenize\"></a>\n\n### sifter.tokenize(query) ⇒ <code>array</code>\nSplits a search string into an array of individual\nregexps to be used to match results.\n\n**Kind**: instance method of [<code>Sifter</code>](#Sifter)  \n\n| Param | Type |\n| --- | --- |\n| query | <code>string</code> | \n\n<a name=\"Sifter+iterator\"></a>\n\n### sifter.iterator(object)\nIterates over arrays and hashes.\n\n```\nthis.iterator(this.items, function(item, id) {\n   // invoked for each item\n});\n```\n\n**Kind**: instance method of [<code>Sifter</code>](#Sifter)  \n\n| Param | Type |\n| --- | --- |\n| object | <code>array</code> \\| <code>object</code> | \n\n<a name=\"Sifter+getScoreFunction\"></a>\n\n### sifter.getScoreFunction(search, options) ⇒ <code>function</code>\nReturns a function to be used to score individual results.\n\nGood matches will have a higher score than poor matches.\nIf an item is not a match, 0 will be returned by the function.\n\n**Kind**: instance method of [<code>Sifter</code>](#Sifter)  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| search | <code>object</code> \\| <code>string</code> |  |\n| options | <code>object</code> | (optional) |\n\n\n* [.getScoreFunction(search, options)](#Sifter+getScoreFunction) ⇒ <code>function</code>\n    * [~scoreObject](#Sifter+getScoreFunction..scoreObject) ⇒ <code>number</code>\n    * [~scoreValue(value, token)](#Sifter+getScoreFunction..scoreValue) ⇒ <code>number</code>\n\n<a name=\"Sifter+getScoreFunction..scoreObject\"></a>\n\n#### getScoreFunction~scoreObject ⇒ <code>number</code>\nCalculates the score of an object\nagainst the search query.\n\n**Kind**: inner property of [<code>getScoreFunction</code>](#Sifter+getScoreFunction)  \n\n| Param | Type |\n| --- | --- |\n| token | <code>object</code> | \n| data | <code>object</code> | \n\n<a name=\"Sifter+getScoreFunction..scoreValue\"></a>\n\n#### getScoreFunction~scoreValue(value, token) ⇒ <code>number</code>\nCalculates how close of a match the\ngiven value is against a search token.\n\n**Kind**: inner method of [<code>getScoreFunction</code>](#Sifter+getScoreFunction)  \n\n| Param | Type |\n| --- | --- |\n| value | <code>mixed</code> | \n| token | <code>object</code> | \n\n<a name=\"Sifter+getSortFunction\"></a>\n\n### sifter.getSortFunction(search, options) ⇒\nReturns a function that can be used to compare two\nresults, for sorting purposes. If no sorting should\nbe performed, `null` will be returned.\n\n**Kind**: instance method of [<code>Sifter</code>](#Sifter)  \n**Returns**: function(a,b)  \n\n| Param | Type |\n| --- | --- |\n| search | <code>string</code> \\| <code>object</code> | \n| options | <code>object</code> | \n\n<a name=\"Sifter+getSortFunction..get_field\"></a>\n\n#### getSortFunction~get\\_field(name, result) ⇒ <code>mixed</code>\nFetches the specified sort field value\nfrom a search result item.\n\n**Kind**: inner method of [<code>getSortFunction</code>](#Sifter+getSortFunction)  \n\n| Param | Type |\n| --- | --- |\n| name | <code>string</code> | \n| result | <code>object</code> | \n\n<a name=\"Sifter+prepareSearch\"></a>\n\n### sifter.prepareSearch(query, options) ⇒ <code>object</code>\nParses a search query and returns an object\nwith tokens and fields ready to be populated\nwith results.\n\n**Kind**: instance method of [<code>Sifter</code>](#Sifter)  \n\n| Param | Type |\n| --- | --- |\n| query | <code>string</code> | \n| options | <code>object</code> | \n\n<a name=\"Sifter+search\"></a>\n\n### sifter.search(query, options) ⇒ <code>object</code>\nSearches through all items and returns a sorted array of matches.\n\nThe `options` parameter can contain:\n\n  - fields {string|array}\n  - sort {array}\n  - score {function}\n  - filter {bool}\n  - limit {integer}\n\nReturns an object containing:\n\n  - options {object}\n  - query {string}\n  - tokens {array}\n  - total {int}\n  - items {array}\n\n**Kind**: instance method of [<code>Sifter</code>](#Sifter)  \n\n| Param | Type |\n| --- | --- |\n| query | <code>string</code> | \n| options | <code>object</code> | \n\n<a name=\"getattr\"></a>\n\n## getattr(obj, name, nesting) ⇒ <code>Object</code>\nA property getter resolving dot-notation\n\n**Kind**: global function  \n**Returns**: <code>Object</code> - The resolved property value  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| obj | <code>Object</code> | The root object to fetch property on |\n| name | <code>String</code> | The optionally dotted property name to fetch |\n| nesting | <code>Boolean</code> | Handle nesting or not |\n\n"
  },
  {
    "path": "docs/docs/API/tag_limit Plugin.mdx",
    "content": "---\ntitle: tag_limit Plugin\ndescription: API Reference for tag_limit Plugin\n---\n# API Documentation for tag_limit Plugin\n<a name=\"options\"></a>\n\n## options : <code>Object</code>\nObject of available options for tag_limit plugin\n\n**Kind**: global typedef  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| tagLimit | <code>number</code> | Number of limit tag to display |\n\n"
  },
  {
    "path": "docs/docs/API/utils.mdx",
    "content": "---\ntitle: utils\ndescription: API Reference for utils\n---\n# API Documentation for utils\n<a name=\"isArray\"></a>\n\n## isArray ⇒ <code>Boolean</code>\nThis is a polyfill for the Array.isArray function.\nDetermines whether the passed obect is an Array.\n\n**Kind**: global variable  \n**Returns**: <code>Boolean</code> - returns true if the passed object is an Array.  \n\n| Param | Type |\n| --- | --- |\n| vArg | <code>object</code> | \n\n<a name=\"isset\"></a>\n\n## isset(object) ⇒ <code>boolean</code>\nDetermines if the provided value has been defined.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| object | <code>mixed</code> | \n\n<a name=\"hash_key\"></a>\n\n## hash\\_key(value) ⇒ <code>string</code> \\| <code>null</code>\nConverts a scalar to its best string representation\nfor hash keys and HTML attribute values.\n\nTransformations:\n  'str'     -> 'str'\n  null      -> ''\n  undefined -> ''\n  true      -> '1'\n  false     -> '0'\n  0         -> '0'\n  1         -> '1'\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| value | <code>string</code> | \n\n<a name=\"escape_html\"></a>\n\n## escape\\_html(str) ⇒ <code>string</code>\nEscapes a string for use within HTML.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| str | <code>string</code> | \n\n<a name=\"escape_replace\"></a>\n\n## escape\\_replace(str) ⇒ <code>string</code>\nEscapes \"$\" characters in replacement strings.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| str | <code>string</code> | \n\n<a name=\"once\"></a>\n\n## once(fn) ⇒ <code>function</code>\nWraps `fn` so that it can only be invoked once.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| fn | <code>function</code> | \n\n<a name=\"debounce\"></a>\n\n## debounce(fn, delay) ⇒ <code>function</code>\nWraps `fn` so that it can only be called once\nevery `delay` milliseconds (invoked on the falling edge).\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| fn | <code>function</code> | \n| delay | <code>number</code> | \n\n<a name=\"debounce_events\"></a>\n\n## debounce\\_events(self, types, fn)\nDebounce all fired events types listed in `types`\nwhile executing the provided `fn`.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| self | <code>object</code> | \n| types | <code>array</code> | \n| fn | <code>function</code> | \n\n<a name=\"watchChildEvent\"></a>\n\n## watchChildEvent($parent, event, selector, fn)\nA workaround for http://bugs.jquery.com/ticket/6696\n\n**Kind**: global function  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| $parent | <code>object</code> | Parent element to listen on. |\n| event | <code>string</code> | Event name. |\n| selector | <code>string</code> | Descendant selector to filter by. |\n| fn | <code>function</code> | Event handler. |\n\n<a name=\"getInputSelection\"></a>\n\n## getInputSelection(input) ⇒ <code>object</code>\nDetermines the current selection within a text input control.\nReturns an object containing:\n  - start\n  - length\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| input | <code>object</code> | \n\n<a name=\"transferStyles\"></a>\n\n## transferStyles($from, $to, properties)\nCopies CSS properties from one element to another.\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| $from | <code>object</code> | \n| $to | <code>object</code> | \n| properties | <code>array</code> | \n\n<a name=\"measureString\"></a>\n\n## measureString(str, $parent) ⇒ <code>number</code>\nMeasures the width of a string within a\nparent element (in pixels).\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| str | <code>string</code> | \n| $parent | <code>object</code> | \n\n<a name=\"autoGrow\"></a>\n\n## autoGrow($input)\nSets up an input to grow horizontally as the user\ntypes. If the value is changed manually, you can\ntrigger the \"update\" handler to resize:\n\n$input.trigger('update');\n\n**Kind**: global function  \n\n| Param | Type |\n| --- | --- |\n| $input | <code>object</code> | \n\n<a name=\"isJSON\"></a>\n\n## isJSON(data) ⇒ <code>Boolean</code>\nDetermines whether or not the `data` argument is a valid JSON string.\n\n**Kind**: global function  \n**Returns**: <code>Boolean</code> - true if is an JSON object  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| data | <code>String</code> | Data to test |\n\n<a name=\"uaDetect\"></a>\n\n## uaDetect(platform, re) ⇒ <code>Boolean</code>\nIf the browser supports the User-Agent Client Hint, then return the platform name, otherwise return\nthe result of a regular expression test on the user agent string\n\n**Kind**: global function  \n**Returns**: <code>Boolean</code> - A boolean value.  \n\n| Param | Description |\n| --- | --- |\n| platform | The platform you want to detect. |\n| re | A regular expression that matches the user agent string. |\n\n"
  },
  {
    "path": "docs/docs/api.mdx",
    "content": "---\ntitle: API Methods\ndescription: api reference\ndisplayed_sidebar: apiSidebar\n---\n\n# API Methods\n\nSelectize controls can be controlled programmatically via the methods described in this section. When initializing the control, the selectize property is added on the original `<select>` / `<input>` element—this property points to the underlying Selectize instance.\n\n```javascript\n// initialize the Selectize control\nvar $select = $(\"select\").selectize(options);\n```\n\n```javascript\n// fetch the instance\nvar selectize = $select[0].selectize;\n```\n"
  },
  {
    "path": "docs/docs/contribute.mdx",
    "content": "---\n---\n\nimport Tabs from \"@theme/Tabs\";\nimport TabItem from \"@theme/TabItem\";\n\n# Contributing to Selectize\n\nFirst off, thanks for taking the time to contribute! ❤️\n\nAll types of contributions are encouraged and valued. See the [Table of Contents](#table-of-contents) for different ways to help and details about how this project handles them. Please make sure to read the relevant section before making your contribution. It will make it a lot easier for us maintainers and smooth out the experience for all involved. The community looks forward to your contributions. 🎉\n\n> And if you like the project but don't have time to contribute, that's fine. There are other easy ways to support the project and show your appreciation, which we would also be very happy about:\n>\n> - Star us on GitHub\n> - Sponsor the project and/or individual contributors\n> - Tweet about it\n> - Refer to us in your project's readme\n> - Mention us at local meetups and tell your friends/colleagues\n\n## Code of Conduct\n\nThis project and everyone participating in it is governed by the\n[Contributor Code of Conduct](/code-of-conduct).\nBy participating, you are expected to uphold this code. Please report unacceptable behavior\nto the [maintainers](mailto:selectize@risadams.com).\n\n## I Have a Question\n\n> If you want to ask a question, we assume that you have read the available [Documentation](https://selectize.dev).\n\nBefore you ask a question, it is best to search for existing [Issues](https://github.com/selectize/selectize.js/issues) that might help you. In case you have found a suitable issue and still need clarification, you can write your question in this issue. It is also advisable to search the internet for answers first.\n\nIf you then still feel the need to ask a question and need clarification, we recommend the following:\n\n- Open an [Issue](https://github.com/selectize/selectize.js/issues/new).\n- Provide as much context as possible about what problem you're experiencing.\n- Provide project and platform versions (nodejs, npm, etc.), depending on what seems relevant.\n\nWe will then take care of the issue as soon as possible.\n\n## I Want To Contribute\n\n> ### Legal Notice\n>\n> When contributing to this project, you must agree that you have authored 100% of the content, that you have the necessary rights to the content and that the content you contribute may be provided under the project license.\n\n### Reporting Bugs\n\n#### Before Submitting a Bug Report\n\nA good bug report shouldn't leave others needing to chase you up for more information. Therefore, we ask you to investigate carefully, collect information and describe the issue in detail in your report. Please complete the following steps in advance to help us fix any potential bug as fast as possible.\n\n- Make sure that you are using the latest version.\n- Determine if your bug is a bug and not an error. e.g., using incompatible environment components/versions (Make sure that you have read the [documentation](https://selectize.dev). If you are looking for support, you might want to check [this section](#i-have-a-question)).\n- To see if other users have experienced (and potentially already solved) the same issue you are having, check if there is not already a bug report existing for your bug or error in the [bug tracker](https://github.com/selectize/selectize.jsissues?q=label%3Abug).\n- Make sure to search the internet (including Stack Overflow) to see if users outside the GitHub community have discussed the issue.\n- Collect information about the bug:\n  - Stack trace (Traceback)\n  - OS, Platform, and Version (Windows, Linux, macOS, x86, ARM)\n  - Version of the interpreter, compiler, SDK, runtime environment, and package manager, depending on what seems relevant.\n- Possibly your input and the output\n- Can you reliably reproduce the issue?\n  - Can you also reproduce it with older versions? Or have you updated to the latest version?\n\n#### How Do I Submit a Good Bug Report?\n\n> You must never report security related issues, vulnerabilities or bugs including sensitive information to the issue tracker, or elsewhere in public. Instead sensitive bugs must be sent by email to .\n\nWe use GitHub issues to track bugs and errors. If you run into an issue with the project:\n\n- Open an [Issue](https://github.com/selectize/selectize.js/issues/new). (Since we can't be sure at this point whether it is a bug or not, we ask you not to talk about a bug yet and not to label the issue.)\n- Explain the behavior you would expect and the actual behavior.\n- Please provide as much context as possible and describe the _reproduction steps_ that someone else can follow to recreate the issue on their own. This usually includes your code. For good bug reports you should isolate the problem and create a reduced test case.\n- Provide the information you collected in the previous section.\n\nOnce it's filed:\n\n- The project team will label the issue accordingly.\n- A team member will try to reproduce the issue with your provided steps. If there are no reproduction steps or no obvious way to reproduce the issue, the team will ask you for those steps and mark the issue as `needs-repro`. Bugs with the `needs-repro` tag will not be addressed until they are reproduced.\n- If the team can reproduce the issue, it will be marked `needs-fix`, as well as possibly other tags (such as `critical`), and the issue will be left to be [implemented by someone](#your-first-code-contribution).\n\n### Suggesting Enhancements\n\nThis section guides you through submitting an enhancement suggestion for Selectize, **including completely new features and minor improvements to existing functionality**. Following these guidelines will help maintainers and the community to understand your suggestion and find related suggestions.\n\n#### Before Submitting an Enhancement\n\n- Make sure that you are using the latest version.\n- Read the [documentation](https://selectize.dev) carefully and find out if the functionality is already covered, maybe by an individual configuration.\n- Perform a [search](https://github.com/selectize/selectize.js/issues) to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one.\n- Find out whether your idea fits with the scope and aims of the project. It's up to you to make a strong case to convince the project's developers of the merits of this feature. Keep in mind that we want features that will be useful to the majority of our users and not just a small subset. If you're just targeting a minority of users, consider writing an add-on/plugin library.\n\n#### How Do I Submit a Good Enhancement Suggestion?\n\nWe track enhancement suggestions as [GitHub issues](https://github.com/selectize/selectize.js/issues).\n\n- Use a **clear and descriptive title** for the issue to identify the suggestion.\n- Provide a **detailed description of the suggested enhancement** in as many details as possible.\n- **Describe the current behavior** and **explain which behavior you expected to see instead** and why. At this point, you can also tell which alternatives do not work for you.\n- You may want to **include screenshots and animated GIFs** which help you demonstrate the steps or point out the part to which the suggestion is related. You can use [this tool](https://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://github.com/GNOME/byzanz) on Linux. <!-- this should only be included if the project has a GUI -->\n- **Explain why this enhancement would be helpful** to most Selectize users. You may also want to point out the other projects that solved it better and which could serve as inspiration.\n\n### Your First Code Contribution\n\n#### Build from source\n\nCompile Javascript, SCSS and LESS in the `/src` directory to JavaScript and CSS in the `/build` directory.\n\nRunning `make` will build the project, run all tests, and update the distribution files in `/dist`.\n\n```bash npm2yarn\nnpm run build\n\n# Or to specify one or more specific browsers\nBROWSERS=Firefox,Chrome,Safari npm test\n```\n\n#### Functional and Unit Tests\n\nPlease ensure all the tests pass:\n\n```bash npm2yarn\nnpm run test\n```\n\n#### Local Environment\n\nRunning `npm start` on your repo will start a web server allowing you to view a local copy of this documentation, where you can test your changes against our example pages.\n\nIf you are adding a new plugin, you should also add a corresponding example page to the `/docs/docs/plugins` directory.\n\nYou can then run the examples at `https://loopback.website:4000/`.\n\n### Improving The Documentation\n\nIf you are a new contributor and want to help improve the documentation, you can edit the documentation files in the `/docs` directory.\n\nWe actively seek additional help in building new examples or providing documentation translations.\n\n### Commit Messages\n\nCommit messages should be concise and descriptive and reference the issue they are addressing whenever possible.\nIn addition, they should follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification.\n\n### Pull Requests\n\nIf you're motivated to fix a bug or to develop a new feature, we'd love to see your code. When submitting pull requests, please remember the following:\n\n- **Make sure tests pass:** Run `npm test` to make sure your changes don't break existing functionality\n- **Do not make changes to files in `/dist` or `/docs/static/js`.** Limiting your edits to files in `/src` directories keeps the size of your pull request down and makes it easier for us to evaluate.\n  After your pull request is approved, we'll update these folders automatically.\n- **Add tests:** In the best-case scenario, you are adding tests to back up your changes, but don't sweat it if you don't. We can discuss them at a later date.\n- **Squash your commits** together in one or a few complete, logical commits\n  with a concise and descriptive message. For example, one commit means one\n  feature/bugfix/thing that has changed or a diff bringing the code one\n  step forward to a better, working state.\n"
  },
  {
    "path": "docs/docs/demos/api.mdx",
    "content": "---\nid: api\ntitle: Using the API\ndescription: Examples of using the API to control selectize\n---\n\nimport Api from \"@site/src/components/Examples/Api\";\n\n<Api />\n"
  },
  {
    "path": "docs/docs/demos/basic.mdx",
    "content": "---\nid: single-item-select\ntitle: Single item select\ndescription: The most vanilla of examples.\n---\n\nimport Basic from \"@site/src/components/Examples/Basic\";\n\n<Basic />\n"
  },
  {
    "path": "docs/docs/demos/confirm.mdx",
    "content": "---\nid: confirm\ntitle: Confirm Delete\ndescription: Examples of how to use delete confirmation dialogs.\n---\n\nimport ConfirmDelete from \"@site/src/components/Examples/ConfirmDelete\";\n\n<ConfirmDelete />\n"
  },
  {
    "path": "docs/docs/demos/diacritics.mdx",
    "content": "---\nid: diacritics\ntitle: Diacritics\ndescription: Selectize can handle diacritics. Try typing \"côte d'ivoire\" or \"são\n---\n\nimport Diacritics from '@site/src/components/Examples/Diacritics';\n\n<Diacritics />\n"
  },
  {
    "path": "docs/docs/demos/dynamic-option-groups.mdx",
    "content": "---\nid: dynamic-option-groups\ntitle: Dynamic Option Groups\ndescription: Selectize provides the ability to create option groups dynamically.\n---\n\nimport DynamicOptGroups from \"@site/src/components/Examples/DynamicOptGroups\";\n\n<DynamicOptGroups />\n"
  },
  {
    "path": "docs/docs/demos/dynamic-options.mdx",
    "content": "---\nid: dynamic-options\ntitle: Dynamic Options\ndescription: Selectize provides the ability to create options  dynamically.\n---\n\nimport DynamicOpt from \"@site/src/components/Examples/DynamicOpt\";\n\n<DynamicOpt />\n"
  },
  {
    "path": "docs/docs/demos/email.mdx",
    "content": "---\nid: email-contact\ntitle: Custom Rendering and Validation\ndescription: This demonstrates two main things, (1) custom item and option rendering and (2) item creation on-the-fly. Try typing a valid and invalid email address.\n---\n\nimport EmailContact from '@site/src/components/Examples/EmailContact';\n\n<EmailContact />\n"
  },
  {
    "path": "docs/docs/demos/events.mdx",
    "content": "---\nid: events\ntitle: Using Events\ndescription: Examples of using selectize events\n---\n\nimport Events from \"@site/src/components/Examples/Events\";\n\n<Events />\n"
  },
  {
    "path": "docs/docs/demos/lock.mdx",
    "content": "---\nid: lock\ntitle: Control Locking\ndescription: Selectize controls can be locked to prevent user interaction.\n---\n\nimport Lock from \"@site/src/components/Examples/Lock\";\n\n<Lock />\n"
  },
  {
    "path": "docs/docs/demos/max-items.mdx",
    "content": "---\nid: max-items\ntitle: Maximum number of items\ndescription: This example only allows 3 items. Select one more item and the control will be disabled until one or more are deleted.\n---\n\nimport MaxItems from \"@site/src/components/Examples/MaxItems\";\n\n<MaxItems />\n"
  },
  {
    "path": "docs/docs/demos/normalize.mdx",
    "content": "---\nid: normalize\ntitle: Normalize Options\ndescription: Normalize string sended for search with any accent\n---\n\nimport Normalize from \"@site/src/components/Examples/Normalize\";\n\n<Normalize />\n"
  },
  {
    "path": "docs/docs/demos/opt-groups.mdx",
    "content": "---\nid: opt-groups\ntitle: Option Groups\ndescription: Selectize provides the ability to group options together within the dropdown menu.\n---\n\nimport OptGroups from '@site/src/components/Examples/OptGroups';\n\n<OptGroups />\n"
  },
  {
    "path": "docs/docs/demos/performance.mdx",
    "content": "---\nid: performance\ntitle: Performance and Scalability\ndescription: Examples of selectize performance and scalability.\n---\n\nimport Performance from \"@site/src/components/Examples/Performance\";\n\n<Performance />\n"
  },
  {
    "path": "docs/docs/demos/required.mdx",
    "content": "---\nid: required\ntitle: Required Elements\ndescription: Examples of using a required element with selectize\n---\n\nimport Required from \"@site/src/components/Examples/Required\";\n\n<Required />\n"
  },
  {
    "path": "docs/docs/demos/rtl.mdx",
    "content": "---\nid: rtl\ntitle: Right-to-left Support\ndescription: Examples of using the RTL support in selectize\n---\n\nimport Rtl from \"@site/src/components/Examples/Rtl\";\n\n<Rtl />\n"
  },
  {
    "path": "docs/docs/demos/tagging.mdx",
    "content": "---\nid: tagging\ntitle: Tagging\ndescription: Add and remove items in any order without touching your mouse. Use your left/right arrow keys to move the caret (ibeam) between items. This example is instantiated from a <input type=\"text\"> element (note that the value is represented as a string).\n---\n\nimport Tagging from '@site/src/components/Examples/Tagging';\n\n<Tagging />\n"
  },
  {
    "path": "docs/docs/events.mdx",
    "content": "---\ntitle: Events\ndescription: event reference\n---\n\nIn the usage documentation, a few callbacks are listed that allow you to listen to specific events.\nCallbacks aren't always ideal, though, specifically when you wish to have multiple handlers.\n\n| Event               | Params       | Description                                                                                                  |\n| ------------------- | ------------ | ------------------------------------------------------------------------------------------------------------ |\n| **initialize**      |              | Invoked once the control is completely initialized.                                                          |\n| **change**          | value        | Invoked when the value of the control changes.                                                               |\n| **focus**           |              | Invoked when the control gains focus.                                                                        |\n| **blur**            |              | Invoked when the control loses focus.                                                                        |\n| **item_add**        | value, item  | Invoked when an item is added (i.e., when an option is selected)                                             |\n| **item_remove**     | value, $item | Invoked when an item is deselected.                                                                          |\n| **item_select**     | item         | Invoked when an item is selected.                                                                            |\n| **clear**           |              | Invoked when the control is manually cleared via the clear() method.                                         |\n| **option_add**      | value, data  | Invoked when a new option is added to the list of available options.                                         |\n| **option_remove**   | value        | Invoked when an option is removed from the available options.                                                |\n| **option_clear**    |              | Invoked when all options are removed from the control.                                                       |\n| **optgroup_add**    | id, data     | Invoked when a new option is added to the list of available options.                                         |\n| **optgroup_remove** | id           | Invoked when an option group is removed.                                                                     |\n| **optgroup_clear**  |              | Invoked when all option groups are removed.                                                                  |\n| **dropdown_open**   | dropdown     | Invoked when the dropdown opens.                                                                             |\n| **dropdown_close**  | dropdown     | Invoked when the dropdown closes.                                                                            |\n| **type**            | str          | Invoked when the user types while filtering options.                                                         |\n| **load**            | data         | Invoked when new options have been loaded and added to the control (via the load option or load API method). |\n| **destroy**         |              | Invoked right before the control is destroyed.                                                               |\n"
  },
  {
    "path": "docs/docs/intro.mdx",
    "content": "---\n---\n\nimport Tabs from \"@theme/Tabs\";\nimport TabItem from \"@theme/TabItem\";\n\n# Getting Started with Selectize\n\nSelectize is a JavaScript library that provides a rich user experience for selecting items from a list. It supports single and multi-value selections, searching, tagging, remote data sets, and infinite scrolling.\n\n## Installation\n\n### What you'll need\n\nSelectize requires jQuery. We also include styles for bootstrap and provide raw Less and Sass files for you to customize with any framework you like.\n\nIf you want to use the Drag & Drop plugin, you'll need jQuery UI.\n\n### Install with npm / yarn\n\n```bash npm2yarn\nnpm install @selectize/selectize\n```\n\n### Install with cdn\n\nThe fastest way to add Selectize to your project is to include the js and css from [cdnjs](https://cdnjs.com/libraries/selectize.js).\n\n```html\n<link\n  rel=\"stylesheet\"\n  href=\"https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.15.2/css/selectize.default.min.css\"\n  integrity=\"sha512-pTaEn+6gF1IeWv3W1+7X7eM60TFu/agjgoHmYhAfLEU8Phuf6JKiiE8YmsNC0aCgQv4192s4Vai8YZ6VNM6vyQ==\"\n  crossorigin=\"anonymous\"\n  referrerpolicy=\"no-referrer\"\n/>\n<script\n  src=\"https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.15.2/js/selectize.min.js\"\n  integrity=\"sha512-IOebNkvA/HZjMM7MxL0NYeLYEalloZ8ckak+NDtOViP7oiYzG5vn6WVXyrJDiJPhl4yRdmNAG49iuLmhkUdVsQ==\"\n  crossorigin=\"anonymous\"\n  referrerpolicy=\"no-referrer\"\n></script>\n```\n"
  },
  {
    "path": "docs/docs/plugins/auto-position.mdx",
    "content": "---\nid: auto-position\ntitle: Auto position\ndescription: A plugin for auto manage position of dropdown\n---\n\nimport AutoPosition from '@site/src/components/Examples/Plugins/AutoPosition';\n\n<AutoPosition />\n"
  },
  {
    "path": "docs/docs/plugins/auto-select-on-type.mdx",
    "content": "---\nid: auto-select-on-type\ntitle: Auto Select On Tape\ndescription: A plugin by Ris Adams for auto select value when is tapping on select input\n---\n\nimport AutoSelectOnType from '@site/src/components/Examples/Plugins/AutoSelectOnType';\n\n<AutoSelectOnType />\n"
  },
  {
    "path": "docs/docs/plugins/autofill-disable.mdx",
    "content": "---\nid: autofill-disable\ntitle: Disable Autofill\ndescription: A plugin to disable the autofill feature of browsers.\n---\n\nimport AutoFillDisable from '@site/src/components/Examples/Plugins/AutoFillDisable';\n\n<AutoFillDisable />\n"
  },
  {
    "path": "docs/docs/plugins/clear-button.mdx",
    "content": "---\nid: clear-button\ntitle: Clear Button\ndescription: A plugin by Fabien Winkler that add clear button to single or multiple select\n---\n\nimport ClearBtn from '@site/src/components/Examples/Plugins/ClearBtn';\n\n<ClearBtn />\n"
  },
  {
    "path": "docs/docs/plugins/drag-drop.mdx",
    "content": "---\nid: drag-drop\ntitle: Drag & Drop\ndescription: Adds drag-and-drop support for easily rearranging selected items. Requires jQuery UI (sortable).\n---\n\nimport DragDrop from '@site/src/components/Examples/Plugins/DragDrop';\n\n<DragDrop />\n"
  },
  {
    "path": "docs/docs/plugins/dropdown-header.mdx",
    "content": "---\nid: dropdown-header\ntitle: Dropdown header\ndescription: Add dropdown header to native dropdown with a close button.\n---\n\nimport DropdownHeader from '@site/src/components/Examples/Plugins/DropdownHeader';\n\n<DropdownHeader />\n"
  },
  {
    "path": "docs/docs/plugins/opt-group-col.mdx",
    "content": "---\nid: opt-group-col\ntitle: Option Group Columns\ndescription: A plugin by Simon Hewitt that renders option groups horizontally with convenient left/right keyboard navigation.\n---\n\nimport OptGroupCol from '@site/src/components/Examples/Plugins/OptGroupCol';\n\n<OptGroupCol />\n"
  },
  {
    "path": "docs/docs/plugins/remove-button.mdx",
    "content": "---\nid: remove-button\ntitle: Remove Button\ndescription: This plugin adds classic a classic remove button to each item for behavior that mimics Select2 and Chosen.\n---\n\nimport RemoveBtn from '@site/src/components/Examples/Plugins/RemoveBtn';\n\n<RemoveBtn />\n"
  },
  {
    "path": "docs/docs/plugins/restore-backspace.mdx",
    "content": "---\nid: restore-backspace\ntitle: Restore on Backspace\ndescription: Press the [backspace] key and go back to editing the item without it being fully removed.\n---\n\nimport RestoreBackspace from '@site/src/components/Examples/Plugins/RestoreBackspace';\n\n<RestoreBackspace />\n"
  },
  {
    "path": "docs/docs/plugins/select-on-focus.mdx",
    "content": "---\nid: select-on-focus\ntitle: Select on focus\ndescription: Select input value when input is focused\n---\n\nimport SelectOnFocus from '@site/src/components/Examples/Plugins/SelectOnFocus';\n\n<SelectOnFocus />\n"
  },
  {
    "path": "docs/docs/plugins.mdx",
    "content": "---\ntitle: Creating Plugins\ndescription: creating plugins\n---\n\n# Plugin API\n\nVia the [microplugin interface](https://github.com/brianreavis/microplugin.js), features can be added to Selectize without modifying the main library. This is great because it protects against code bloat, allows for lean builds, and allows for addons to be sanely isolated. The plugin system isn't meant to be sexy; it's lean, makes very few assumptions, and gives the developer complete control.\n\n## Example Plugins\n\n### A few notes\n\n- All plugins live in their own folders in \"src/plugins\".\n- Plugin names should be in follow the format: `/[a-z_]+$`\n- JS source should live in a \"plugin.js\" file (required).\n- CSS should live in a \"plugin.less\" file (optional). It will be bundled at build time.\n- Plugins are initialized right before the control is setup. This means that if you want to listen for events on any of the control's elements, you should override the `setup()` method.\n\n## Boilerplate\n\n```javascript\nSelectize.define(\"plugin_name\", function (options) {\n  // options: plugin-specific options\n  // this: Selectize instance\n});\n```\n\n## Adding dependencies\n\n```javascript\nSelectize.define(\"plugin_name\", function (options) {\n  this.require(\"another_plugin\");\n});\n```\n\n## Configuration\n\nMethods should be extended by [wrapping them](http://coreymaynard.com/blog/extending-a-javascript-function/):\n\n```javascript\nvar self = this;\nthis.someMethod = (function () {\n  var original = self.someMethod;\n  return function () {\n    // do your logic\n    return original.apply(this, arguments);\n  };\n})();\n```\n\n## DOM Events\n\nBecause all elements for the control are created within the `setup()` method (which is invoked after the plugin initialized) events should be added by overriding the setup method, like so:\n\n```javascript\nSelectize.define('plugin_name', function(options) {\n    var self = this;\n\n    // override the setup method to add an extra `click`  handler\n    this.setup = (function() {\n    var original = self.setup;\n    return function() {\n        original.apply(this, arguments);\n        this.$control.on('click', 'div', function(e) {\n        alert('A div was clicked!');\n        });\n    };\n    })();\n```\n\n## Plugin Usage\n\nFor a more detailed description of plugin option formats and how the plugin system works, check out the [microplugin documentation](https://github.com/brianreavis/microplugin.js).\n\n### Without Options\n\n```javascript\n$(\"select\").selectize({\n  plugins: [\"plugin_a\", \"plugin_b\"],\n});\n```\n\n### With options\n\n```javascript\n$('select').selectize({\n    plugins: {\n        'plugin_a': { /* ... */ },\n        'plugin_b': { /* ... */ }\n    }\n```\n"
  },
  {
    "path": "docs/docs/usage.mdx",
    "content": "---\ntitle: Usage\ndescription: Usage\n---\n\n## Basic Usage\n\nIn its simplest form, Selectize is initialized using an existing `<select>` element:\n\n```html\n<script>\n  $(function () {\n    $(\"select\").selectize(options);\n  });\n</script>\n```\n\n## Advanced Usage\n\nConfiguration options are available for more advanced scenarios, including plugin support, remote data loading, custom rendering, and more.\nThe available settings are documented in the table below. See the [Demos](/docs/demos) page for examples of each option in action.\n\n```html\n<script type=\"text/javascript\" src=\"selectize.js\"></script>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"selectize.css\" />\n<script>\n  $(function () {\n    $(\"select\").selectize({\n      plugins: [\"restore_on_backspace\", \"clear_button\"],\n      delimiter: \" - \",\n      persist: false,\n      maxItems: null,\n      valueField: \"email\",\n      labelField: \"name\",\n      searchField: [\"name\", \"email\"],\n      options: [\n        { email: \"selectize@risadams.com\", name: \"Ris Adams\" },\n        { email: \"someone@gmail.com\", name: \"Someone\" },\n        { email: \"someone-else@yahoo.com\", name: \"Someone Else\" },\n      ],\n    });\n  });\n</script>\n```\n\n### Glossary\n\n- **Config/configuration**: the initial settings of Selectize, given at initialization.\n- **Settings**: the current settings of Selectize might have been updated. Accessible with the `setting` property of the Selectize object.\n- **Options**: the list of objects to display.\n  - Each object must have a property with a unique **value** to identify the option; the `valueField` setting defines the property name.\n  - Option objects must also have a property with the **label** to display (as tag, in the drop down, etc.); the `labelField` setting defines the property name.\n  - The options can have other properties, ignored unless referenced by different settings, like `sortField` or `searchField`.\n- **Items**: the list of selected options. Or, more precisely, the list of the chosen options values.\n\n### Configuration\n\n| Setting                       | Type              | Default      | Description                                                                                                                                                                                                                                                                                                                                                             |\n| ----------------------------- | ----------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **options**                   | array             | []           | An array of the initial options available to select; array of objects. By default, this is populated from the original input element. If your element is a `<select>` with `<option>`s specified, this property gets populated automatically. Setting this property is convenient if you have your data as an array and want to generate the `<option>`s automatically. |\n| **items**                     | array             | []           | An array of the initial selected values. By default, this is populated from the original input element.                                                                                                                                                                                                                                                                 |\n| **delimiter**                 | string            | ','          | The string to separate items by. When typing an item in a multi-selection control allowing creation, then the delimiter, the item is added. If you paste delimiter-separated items in such control, the items are added at once. The delimiter is also used in the getValue API call on a text `<input>` tag to separate the multiple values.                           |\n| **create**                    | boolean\\|function | false        | Allows the user to create new items that aren't in the initial list of options.                                                                                                                                                                                                                                                                                         |\n| **showAddOptionOnCreate**     | boolean           | true         | Toggles whether to show `'Add ...option...'` within the dropdown menu (if the create setting is enabled).                                                                                                                                                                                                                                                               |\n| **createOnBlur**              | boolean           | false        | If true, when a user exits the field (clicks outside of input), a new option is created and selected (if the create setting is enabled).                                                                                                                                                                                                                                |\n| **createFilter**              | RegExp\\|Function  | string\\|null | Specifies a Regular Expression or a string containing a regular expression that the current search filter must match to be allowed to be created. A predicate function may also take the filter text and return whether it is allowed.                                                                                                                                  |\n| **highlight**                 | boolean           | true         | Toggles match highlighting within the dropdown menu.                                                                                                                                                                                                                                                                                                                    |\n| **persist**                   | boolean           | true         | If false, items created by the user will not appear as available options once they are unselected.                                                                                                                                                                                                                                                                      |\n| **openOnFocus**               | boolean           | true         | Show the dropdown immediately when the control receives focus.                                                                                                                                                                                                                                                                                                          |\n| **maxOptions**                | int               | 1000         | The max number of items to render at once in the dropdown list of options.                                                                                                                                                                                                                                                                                              |\n| **maxItems**                  | int               | null         | The max number of items the user can select. `1` makes the control mono-selection, `null` allows an unlimited number of items.                                                                                                                                                                                                                                          |\n| **hideSelected**              | boolean           | null         | If true, the currently selected items will not be shown in the dropdown list of available options. This option defaults to true when in a multi-selection control and to false otherwise.                                                                                                                                                                               |\n| **closeAfterSelect**          | boolean           | false        | If true, the dropdown will be closed after a selection is made.                                                                                                                                                                                                                                                                                                         |\n| **closeDropdownThreshold**    | int               | 250          | The number of milliseconds to throttle the dropdown opening after it is closed by clicking on the control. Setting this to `0` will reopen the drop down after clicking on the control when the dropdown is open. This option does not affect multi-selects.                                                                                                            |\n| **allowEmptyOption**          | boolean           | false        | If true, Selectize will treat any options with a \"\" value like normal. This defaults to false to accommodate the common `<select>` practice of having the first empty option act as a placeholder.                                                                                                                                                                      |\n| **showEmptyOptionInDropdown** | boolean           | false        | If true, Selectize will show an option with value `\"\"` in dropdown, if one does not exist, which is required when you want to select an empty option via `selectOnTab`. This requires `allowEmptyOption: true`.                                                                                                                                                         |\n| **emptyOptionLabel**          | string            | '--'         | If `showEmptyOptionInDropdown: true` and an option with value `\"\"` in dropdown does not exist, an option with `\"\"` value is created, the label/text of the option can be set via this option, this requires `showEmptyOptionInDropdown: true`.                                                                                                                          |\n| **scrollDuration**            | int               | 60           | The animation duration (in milliseconds) of the scroll animation triggered when going [up] and [down] in the options dropdown.                                                                                                                                                                                                                                          |\n| **deselectBehavior**          | string            | previous     | If an option is selected, the same option is highlighted/marked active in the dropdown; pressing backspace on the input control removes the option, and in the drop down the last element is highlighted. When this option is set to `top` it shifts the highlight to the top-most option. Valid options are `top` and `previous`.                                      |\n| **loadThrottle**              | int               | 300          | The number of milliseconds to wait before requesting options from the server or null. If `null``, throttling is disabled. Useful when loading options dynamically while the user types a search/filter expression.                                                                                                                                                      |\n| **loadingClass**              | string            | 'loading'    | The class name is added to the wrapper element while awaiting the fulfillment of load requests.                                                                                                                                                                                                                                                                         |\n| **placeholder**               | string            | undefined    | The placeholder of the control (displayed when nothing is selected/typed). Defaults to input element's placeholder unless this one is specified.                                                                                                                                                                                                                        |\n| **preload**                   | boolean\\|string   | false        | If true, the load function will be called upon control initialization (with an empty search). Alternatively, it can be set to 'focus' to call the load function when the control receives focus.                                                                                                                                                                        |\n| **dropdownParent**            | string            | null         | The element the dropdown menu is appended to. This option should be `'body'` or `null`. If `null`, the dropdown will be appended as a child of the Selectize control.                                                                                                                                                                                                   |\n| **addPrecedence**             | boolean           | false        | If true, the \"Add...\" option is the default selection in the dropdown.                                                                                                                                                                                                                                                                                                  |\n| **selectOnTab**               | boolean           | false        | If true, the tab key will choose the currently selected item.                                                                                                                                                                                                                                                                                                           |\n| **diacritics**                | boolean           | true         | Enable or disable international character support.                                                                                                                                                                                                                                                                                                                      |\n| **setFirstOptionActive**      | boolean           | false        | Enable setting the first option in the list as active.                                                                                                                                                                                                                                                                                                                  |\n\n### Data/Searching\n\n| Setting                   | Type           | Default     | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |\n| ------------------------- | -------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| **options**               | array          | []          | See above                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |\n| **optgroups**             | array          | []          | Option groups that options will be bucketed into. If your element is a `<select>` with `<optgroup>`s, this property gets populated automatically. Ensure each object in the array has a property that matches the name of the `optgroupValueField`.                                                                                                                                                                                                                                                                                        |\n| **dataAttr**              | string         | 'data-data' | The `<option>` attribute from which to read JSON data about the option.                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |\n| **valueField**            | string         | 'value'     | The property name to use as the value when an item is selected.                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |\n| **optgroupValueField**    | string         | 'value'     | The name of the option group property that serves as its unique identifier.                                                                                                                                                                                                                                                                                                                                                                                                                                                                |\n| **labelField**            | string         | 'text'      | The property name to render as an `option`/`item` label (not needed when custom rendering functions are defined).                                                                                                                                                                                                                                                                                                                                                                                                                          |\n| **optgroupLabelField**    | string         | 'label'     | The property name to render as an option group label (not needed when custom rendering functions are defined).                                                                                                                                                                                                                                                                                                                                                                                                                             |\n| **optgroupField**         | string         | 'optgroup'  | The property name by which to group items.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |\n| **disabledField**         | string         | 'disabled'  | The property name to disabled option and `optgroup`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |\n| **sortField**             | string\\| array | '$order'    | A single field or an array of fields to sort by. Each item in the array should be an object containing at least a field property. Optionally, a direction can be set to either `'asc'` or `'desc'`. The order of the array defines the sort precedence.Unless present, a special `$score` field will be automatically added to the beginning of the sort list. This option will make results sorted primarily by match quality (descending). You can override the `$score` function. For more information, see the _sifter_ documentation. |\n| **searchField**           | array          | ['text']    | An array of property names to analyze when filtering options.                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |\n| **searchConjunction**     | string         | 'and'       | When searching for multiple terms (separated by space), this is the operator used. This option can be set to `'and'` or `'or'`.                                                                                                                                                                                                                                                                                                                                                                                                            |\n| **nesting**               | boolean        | false       | If `true`, nested fields will be available for search using dot-notation to reference them (e.g., the nested. property). _Warning: can reduce performance._                                                                                                                                                                                                                                                                                                                                                                                |\n| **lockOptgroupOrder**     | boolean        | false       | If `true`, Selectize will make all option groups appear in the same order as they were added (by the `$order` property). Otherwise, it will order based on the score of the results in each.                                                                                                                                                                                                                                                                                                                                               |\n| **copyClassesToDropdown** | boolean        | true        | If `true` Copies the original input classes to the dropdown element.                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |\n\n### Event Callbacks\n\n| Setting                        | Type     | Default | Description                                                                                                                                                                                                                                                                                                                                                    |\n| ------------------------------ | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **load(query, callback)**      | function | null    | Invoked when new options are loaded from the server. Called with the current query string and a callback function to call with the results when they are loaded (or nothing when an error arises).                                                                                                                                                             |\n| **score(search)**              | function | null    | Overrides the scoring function used to sort available options. The provided function should return a function that returns a number greater than or equal to zero to represent the score of an item (the function's first argument). If 0, the option is declared not a match. A search argument is a Search object. For an example, see the \"GitHub\" example. |\n| **formatValueToKey(key)**      | string   | null    | Function to generate a key for a new item created from input when create is set to true, to generate a (`'key' =>` 'value'`) combination. Without using this function, it will result in a (`'value' =>` 'value'`) combination. The provided function should return a unique key that is not an object or function.                                            |\n| **onInitialize()**             | function | null    | Invoked once the control is completely initialized.                                                                                                                                                                                                                                                                                                            |\n| **onFocus()**                  | function | null    | Invoked when the control gains focus.                                                                                                                                                                                                                                                                                                                          |\n| **onBlur()**                   | function | null    | Invoked when the control loses focus.                                                                                                                                                                                                                                                                                                                          |\n| **onChange(value)**            | function | null    | Invoked when the value of the control changes.                                                                                                                                                                                                                                                                                                                 |\n| **onItemAdd(value, $item)**    | function | null    | Invoked when an item is selected.                                                                                                                                                                                                                                                                                                                              |\n| **onItemRemove(value)**        | function | null    | Invoked when an item is deselected.                                                                                                                                                                                                                                                                                                                            |\n| **onClear()**                  | function | null    | Invoked when the control is manually cleared via the clear() method.                                                                                                                                                                                                                                                                                           |\n| **onDelete(values)**           | function | null    | Invoked when the user attempts to delete the current selection.                                                                                                                                                                                                                                                                                                |\n| **onOptionAdd(value, data)**   | function | null    | Invoked when a new option is added to the list of available options.                                                                                                                                                                                                                                                                                           |\n| **onOptionRemove(value)**      | function | null    | Invoked when an option is removed from the available options.                                                                                                                                                                                                                                                                                                  |\n| **onDropdownOpen($dropdown)**  | function | null    | Invoked when the dropdown opens.                                                                                                                                                                                                                                                                                                                               |\n| **onDropdownClose($dropdown)** | function | null    | Invoked when the dropdown closes.                                                                                                                                                                                                                                                                                                                              |\n| **onType(str)**                | function | null    | Invoked when the user types while filtering options.                                                                                                                                                                                                                                                                                                           |\n| **onLoad(data)**               | function | null    | Invoked when new options have been loaded and added to the control (via the load option or load API method).                                                                                                                                                                                                                                                   |\n\n### Custom Rendering\n\nCustom rendering functions. Each function should accept two arguments: `data` and `escape`, and must return HTML (string or DOM element) with a single root element.\nThe escape argument is a function that takes a string and escapes all special HTML characters; this is very important to use to prevent XSS vulnerabilities.\n\n| Function            | Description                                                                                                                           |\n| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |\n| **option**          | An option in the dropdown list of available options.                                                                                  |\n| **item**            | An item the user has selected.                                                                                                        |\n| **option_create**   | The \"create new\" option is at the bottom of the dropdown. The data contains one property: `input` (which is what the user has typed). |\n| **optgroup_header** | The header of an option group.                                                                                                        |\n| **optgroup**        | The wrapper for an optgroup. The html property in the data will be the raw html of the optgroup header and options.                   |\n"
  },
  {
    "path": "docs/docusaurus.config.js",
    "content": "// @ts-check\n// Note: type annotations allow type checking and IDEs autocompletion\n\nconst lightCodeTheme = require('prism-react-renderer/themes/github');\nconst darkCodeTheme = require('prism-react-renderer/themes/dracula');\n\n/** @type {import('@docusaurus/types').Config} */\nconst config = {\n  title: 'Selectize',\n  tagline: '',\n  url: 'https://selectize.dev',\n  baseUrl: '/',\n  onBrokenLinks: 'throw',\n  onBrokenMarkdownLinks: 'warn',\n  favicon: 'img/favicon.ico',\n\n  // GitHub pages deployment config.\n  // If you aren't using GitHub pages, you don't need these.\n  organizationName: 'selectize', // Usually your GitHub org/user name.\n  projectName: 'selectize', // Usually your repo name.\n  deploymentBranch: 'gh-pages', // Branch that GitHub pages will deploy from.\n  trailingSlash: false, // GitHub pages doesn't support trailing slashes.\n\n  // Even if you don't use internalization, you can use this field to set useful\n  // metadata like html lang. For example, if your site is Chinese, you may want\n  // to replace \"en\" with \"zh-Hans\".\n  i18n: {\n    defaultLocale: 'en',\n    locales: [\n      'en',\n      // 'fr'\n    ],\n    localeConfigs: {\n      en: {\n        htmlLang: 'en-US',\n      },\n    }\n  },\n\n  presets: [\n    [\n      'classic',\n      /** @type {import('@docusaurus/preset-classic').Options} */\n      ({\n        docs: {\n          sidebarPath: require.resolve('./sidebars.js'),\n          lastVersion: 'current',\n          versions: {\n            current: {\n              label: 'Current Version (0.15.x)',\n            },\n          },\n          remarkPlugins: [\n            [require('@docusaurus/remark-plugin-npm2yarn'), { sync: true }],\n          ],\n        },\n        blog: {\n          showReadingTime: true,\n        },\n        theme: {\n          customCss: require.resolve('./src/css/custom.css'),\n        },\n        pages: {\n          remarkPlugins: [require('@docusaurus/remark-plugin-npm2yarn')],\n        },\n        gtag: {\n          trackingID: 'G-QL249YEJYD',\n          anonymizeIP: true,\n        },\n      }),\n    ],\n  ],\n\n  plugins: [\n    'docusaurus-plugin-google-adsense',\n    '@docusaurus/theme-live-codeblock',\n    async function loadTailwindCss() {\n      return {\n        name: \"docusaurus-tailwindcss\",\n        configurePostCss(postcssOptions) {\n          // Appends TailwindCSS and AutoPrefixer.\n          postcssOptions.plugins.push(require(\"tailwindcss\"));\n          postcssOptions.plugins.push(require(\"autoprefixer\"));\n          return postcssOptions;\n        },\n      };\n    },\n  ],\n\n  scripts: [\n    \"https://code.jquery.com/jquery-3.6.3.min.js\",\n    \"https://code.jquery.com/ui/1.13.2/jquery-ui.min.js\",\n    \"https://kit.fontawesome.com/109d56cc28.js\",\n    \"/js/selectize.js\",\n  ],\n\n  themeConfig:\n    /* @type {import('@docusaurus/preset-classic').ThemeConfig} */\n    ({\n      colorMode: {\n        disableSwitch: true,\n        respectPrefersColorScheme: false\n      },\n      googleAdsense: {\n        dataAdClient: 'ca-pub-9290211346209107',\n      },\n      // Enable Algolia search when API issues are resolved.\n      // algolia: {\n      //   appId: 'I8ILTNUYXK',\n      //   apiKey: '6680cf1dd566e9052054d892083f4db2',\n      //   indexName: 'selectize',\n      //   contextualSearch: true,\n      //   externalUrlRegex: 'selectize\\\\.dev|loopback\\\\.website',\n      //   searchParameters: {},\n      //   searchPagePath: 'search',\n      // },\n      liveCodeBlock: {\n        playgroundPosition: 'bottom',\n      },\n      navbar: {\n        title: 'Selectize',\n        logo: {\n          alt: 'Selectize Logo',\n          src: 'img/logo.svg',\n        },\n        items: [\n          {\n            type: 'doc',\n            docId: 'intro',\n            position: 'left',\n            label: 'Get Started',\n          },\n          {\n            to: 'docs/demos/',\n            position: 'left',\n            label: 'Examples',\n          },\n          {\n            type: 'doc',\n            docId: 'api',\n            position: 'left',\n            label: 'API Documentation',\n          },\n          {\n            type: 'docsVersionDropdown',\n            position: 'right',\n          },\n          // TODO -- Enable when translations are available.\n          // {\n          //   type: 'localeDropdown',\n          //   position: 'right',\n          // },\n          { href: 'https://github.com/selectize/selectize.js/discussions', label: 'Community', position: 'right' },\n          { href: 'https://github.com/selectize/selectize.js', label: 'GitHub', position: 'right', },\n        ],\n      },\n      footer: {\n        style: 'dark',\n        logo: {\n          alt: 'Selectize Logo',\n          src: 'img/logo.svg',\n          width: 160,\n          height: 51,\n        },\n        links: [\n          {\n            title: \"Docs\",\n            items: [\n              {\n                label: \"Get Started\",\n                to: \"/docs/intro\",\n              },\n              {\n                label: \"Events\",\n                to: \"/docs/events\",\n              },\n              {\n                label: \"API\",\n                to: \"/docs/api\",\n              },\n            ],\n          },\n          {\n            title: \"Demos\",\n            items: [\n              {\n                label: \"Examples\",\n                to: \"/docs/demos\",\n              },\n              {\n                label: \"Plugins\",\n                to: \"/docs/plugins\",\n              },\n            ],\n          },\n          {\n            title: \"Community\",\n            items: [\n              {\n                label: 'GitHub',\n                href: 'https://github.com/selectize/selectize.js',\n              },\n              {\n                label: \"Keybase\",\n                href: \"https://keybase.io/team/selectize\",\n              },\n              {\n                label: \"Stackoverflow\",\n                href: \"https://stackoverflow.com/questions/tagged/selectize.js\",\n              },\n            ],\n          },\n          {\n            title: 'Legal',\n            items: [\n              {\n                label: 'License',\n                to: '/license',\n              },\n              {\n                label: 'Code of Conduct',\n                to: '/code-of-conduct',\n              },\n              {\n                label: 'Privacy Policy',\n                href: '/privacy-policy',\n              },\n              // {\n              //   label: 'Data Policy',\n              //   href: 'https://github.com/selectize/selectize.js',\n              // },\n              // {\n              //   label: 'Cookie Policy',\n              //   href: 'https://github.com/selectize/selectize.js',\n              // },\n            ],\n          },\n        ],\n        copyright: `Copyright © ${new Date().getFullYear()} Selectize team.`,\n      },\n      prism: {\n        theme: lightCodeTheme,\n        darkTheme: darkCodeTheme,\n      },\n    }),\n};\n\nmodule.exports = config;\n"
  },
  {
    "path": "docs/i18n/en/code.json",
    "content": "{\n  \"theme.ErrorPageContent.title\": {\n    \"message\": \"This page crashed.\",\n    \"description\": \"The title of the fallback page when the page crashed\"\n  },\n  \"theme.ErrorPageContent.tryAgain\": {\n    \"message\": \"Try again\",\n    \"description\": \"The label of the button to try again when the page crashed\"\n  },\n  \"theme.NotFound.title\": {\n    \"message\": \"Page Not Found\",\n    \"description\": \"The title of the 404 page\"\n  },\n  \"theme.NotFound.p1\": {\n    \"message\": \"We could not find what you were looking for.\",\n    \"description\": \"The first paragraph of the 404 page\"\n  },\n  \"theme.NotFound.p2\": {\n    \"message\": \"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.\",\n    \"description\": \"The 2nd paragraph of the 404 page\"\n  },\n  \"theme.admonition.note\": {\n    \"message\": \"note\",\n    \"description\": \"The default label used for the Note admonition (:::note)\"\n  },\n  \"theme.admonition.tip\": {\n    \"message\": \"tip\",\n    \"description\": \"The default label used for the Tip admonition (:::tip)\"\n  },\n  \"theme.admonition.danger\": {\n    \"message\": \"danger\",\n    \"description\": \"The default label used for the Danger admonition (:::danger)\"\n  },\n  \"theme.admonition.info\": {\n    \"message\": \"info\",\n    \"description\": \"The default label used for the Info admonition (:::info)\"\n  },\n  \"theme.admonition.caution\": {\n    \"message\": \"caution\",\n    \"description\": \"The default label used for the Caution admonition (:::caution)\"\n  },\n  \"theme.BackToTopButton.buttonAriaLabel\": {\n    \"message\": \"Scroll back to top\",\n    \"description\": \"The ARIA label for the back to top button\"\n  },\n  \"theme.blog.archive.title\": {\n    \"message\": \"Archive\",\n    \"description\": \"The page & hero title of the blog archive page\"\n  },\n  \"theme.blog.archive.description\": {\n    \"message\": \"Archive\",\n    \"description\": \"The page & hero description of the blog archive page\"\n  },\n  \"theme.blog.paginator.navAriaLabel\": {\n    \"message\": \"Blog list page navigation\",\n    \"description\": \"The ARIA label for the blog pagination\"\n  },\n  \"theme.blog.paginator.newerEntries\": {\n    \"message\": \"Newer Entries\",\n    \"description\": \"The label used to navigate to the newer blog posts page (previous page)\"\n  },\n  \"theme.blog.paginator.olderEntries\": {\n    \"message\": \"Older Entries\",\n    \"description\": \"The label used to navigate to the older blog posts page (next page)\"\n  },\n  \"theme.blog.post.paginator.navAriaLabel\": {\n    \"message\": \"Blog post page navigation\",\n    \"description\": \"The ARIA label for the blog posts pagination\"\n  },\n  \"theme.blog.post.paginator.newerPost\": {\n    \"message\": \"Newer Post\",\n    \"description\": \"The blog post button label to navigate to the newer/previous post\"\n  },\n  \"theme.blog.post.paginator.olderPost\": {\n    \"message\": \"Older Post\",\n    \"description\": \"The blog post button label to navigate to the older/next post\"\n  },\n  \"theme.blog.post.plurals\": {\n    \"message\": \"One post|{count} posts\",\n    \"description\": \"Pluralized label for \\\"{count} posts\\\". Use as much plural forms (separated by \\\"|\\\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)\"\n  },\n  \"theme.blog.tagTitle\": {\n    \"message\": \"{nPosts} tagged with \\\"{tagName}\\\"\",\n    \"description\": \"The title of the page for a blog tag\"\n  },\n  \"theme.tags.tagsPageLink\": {\n    \"message\": \"View All Tags\",\n    \"description\": \"The label of the link targeting the tag list page\"\n  },\n  \"theme.colorToggle.ariaLabel\": {\n    \"message\": \"Switch between dark and light mode (currently {mode})\",\n    \"description\": \"The ARIA label for the navbar color mode toggle\"\n  },\n  \"theme.colorToggle.ariaLabel.mode.dark\": {\n    \"message\": \"dark mode\",\n    \"description\": \"The name for the dark color mode\"\n  },\n  \"theme.colorToggle.ariaLabel.mode.light\": {\n    \"message\": \"light mode\",\n    \"description\": \"The name for the light color mode\"\n  },\n  \"theme.docs.breadcrumbs.home\": {\n    \"message\": \"Home page\",\n    \"description\": \"The ARIA label for the home page in the breadcrumbs\"\n  },\n  \"theme.docs.breadcrumbs.navAriaLabel\": {\n    \"message\": \"Breadcrumbs\",\n    \"description\": \"The ARIA label for the breadcrumbs\"\n  },\n  \"theme.docs.DocCard.categoryDescription\": {\n    \"message\": \"{count} items\",\n    \"description\": \"The default description for a category card in the generated index about how many items this category includes\"\n  },\n  \"theme.docs.paginator.navAriaLabel\": {\n    \"message\": \"Docs pages navigation\",\n    \"description\": \"The ARIA label for the docs pagination\"\n  },\n  \"theme.docs.paginator.previous\": {\n    \"message\": \"Previous\",\n    \"description\": \"The label used to navigate to the previous doc\"\n  },\n  \"theme.docs.paginator.next\": {\n    \"message\": \"Next\",\n    \"description\": \"The label used to navigate to the next doc\"\n  },\n  \"theme.docs.tagDocListPageTitle.nDocsTagged\": {\n    \"message\": \"One doc tagged|{count} docs tagged\",\n    \"description\": \"Pluralized label for \\\"{count} docs tagged\\\". Use as much plural forms (separated by \\\"|\\\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)\"\n  },\n  \"theme.docs.tagDocListPageTitle\": {\n    \"message\": \"{nDocsTagged} with \\\"{tagName}\\\"\",\n    \"description\": \"The title of the page for a docs tag\"\n  },\n  \"theme.docs.versionBadge.label\": {\n    \"message\": \"Version: {versionLabel}\"\n  },\n  \"theme.docs.versions.unreleasedVersionLabel\": {\n    \"message\": \"This is unreleased documentation for {siteTitle} {versionLabel} version.\",\n    \"description\": \"The label used to tell the user that he's browsing an unreleased doc version\"\n  },\n  \"theme.docs.versions.unmaintainedVersionLabel\": {\n    \"message\": \"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.\",\n    \"description\": \"The label used to tell the user that he's browsing an unmaintained doc version\"\n  },\n  \"theme.docs.versions.latestVersionSuggestionLabel\": {\n    \"message\": \"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).\",\n    \"description\": \"The label used to tell the user to check the latest version\"\n  },\n  \"theme.docs.versions.latestVersionLinkLabel\": {\n    \"message\": \"latest version\",\n    \"description\": \"The label used for the latest version suggestion link label\"\n  },\n  \"theme.common.editThisPage\": {\n    \"message\": \"Edit this page\",\n    \"description\": \"The link label to edit the current page\"\n  },\n  \"theme.common.headingLinkTitle\": {\n    \"message\": \"Direct link to heading\",\n    \"description\": \"Title for link to heading\"\n  },\n  \"theme.lastUpdated.atDate\": {\n    \"message\": \" on {date}\",\n    \"description\": \"The words used to describe on which date a page has been last updated\"\n  },\n  \"theme.lastUpdated.byUser\": {\n    \"message\": \" by {user}\",\n    \"description\": \"The words used to describe by who the page has been last updated\"\n  },\n  \"theme.lastUpdated.lastUpdatedAtBy\": {\n    \"message\": \"Last updated{atDate}{byUser}\",\n    \"description\": \"The sentence used to display when a page has been last updated, and by who\"\n  },\n  \"theme.navbar.mobileVersionsDropdown.label\": {\n    \"message\": \"Versions\",\n    \"description\": \"The label for the navbar versions dropdown on mobile view\"\n  },\n  \"theme.tags.tagsListLabel\": {\n    \"message\": \"Tags:\",\n    \"description\": \"The label alongside a tag list\"\n  },\n  \"theme.AnnouncementBar.closeButtonAriaLabel\": {\n    \"message\": \"Close\",\n    \"description\": \"The ARIA label for close button of announcement bar\"\n  },\n  \"theme.blog.sidebar.navAriaLabel\": {\n    \"message\": \"Blog recent posts navigation\",\n    \"description\": \"The ARIA label for recent posts in the blog sidebar\"\n  },\n  \"theme.CodeBlock.copied\": {\n    \"message\": \"Copied\",\n    \"description\": \"The copied button label on code blocks\"\n  },\n  \"theme.CodeBlock.copyButtonAriaLabel\": {\n    \"message\": \"Copy code to clipboard\",\n    \"description\": \"The ARIA label for copy code blocks button\"\n  },\n  \"theme.CodeBlock.copy\": {\n    \"message\": \"Copy\",\n    \"description\": \"The copy button label on code blocks\"\n  },\n  \"theme.CodeBlock.wordWrapToggle\": {\n    \"message\": \"Toggle word wrap\",\n    \"description\": \"The title attribute for toggle word wrapping button of code block lines\"\n  },\n  \"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel\": {\n    \"message\": \"Toggle the collapsible sidebar category '{label}'\",\n    \"description\": \"The ARIA label to toggle the collapsible sidebar category\"\n  },\n  \"theme.navbar.mobileLanguageDropdown.label\": {\n    \"message\": \"Languages\",\n    \"description\": \"The label for the mobile language switcher dropdown\"\n  },\n  \"theme.TOCCollapsible.toggleButtonLabel\": {\n    \"message\": \"On this page\",\n    \"description\": \"The label used by the button on the collapsible TOC component\"\n  },\n  \"theme.blog.post.readMore\": {\n    \"message\": \"Read More\",\n    \"description\": \"The label used in blog post item excerpts to link to full blog posts\"\n  },\n  \"theme.blog.post.readMoreLabel\": {\n    \"message\": \"Read more about {title}\",\n    \"description\": \"The ARIA label for the link to full blog posts from excerpts\"\n  },\n  \"theme.blog.post.readingTime.plurals\": {\n    \"message\": \"One min read|{readingTime} min read\",\n    \"description\": \"Pluralized label for \\\"{readingTime} min read\\\". Use as much plural forms (separated by \\\"|\\\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)\"\n  },\n  \"theme.docs.sidebar.collapseButtonTitle\": {\n    \"message\": \"Collapse sidebar\",\n    \"description\": \"The title attribute for collapse button of doc sidebar\"\n  },\n  \"theme.docs.sidebar.collapseButtonAriaLabel\": {\n    \"message\": \"Collapse sidebar\",\n    \"description\": \"The title attribute for collapse button of doc sidebar\"\n  },\n  \"theme.docs.sidebar.closeSidebarButtonAriaLabel\": {\n    \"message\": \"Close navigation bar\",\n    \"description\": \"The ARIA label for close button of mobile sidebar\"\n  },\n  \"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel\": {\n    \"message\": \"← Back to main menu\",\n    \"description\": \"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)\"\n  },\n  \"theme.docs.sidebar.toggleSidebarButtonAriaLabel\": {\n    \"message\": \"Toggle navigation bar\",\n    \"description\": \"The ARIA label for hamburger menu button of mobile navigation\"\n  },\n  \"theme.docs.sidebar.expandButtonTitle\": {\n    \"message\": \"Expand sidebar\",\n    \"description\": \"The ARIA label and title attribute for expand button of doc sidebar\"\n  },\n  \"theme.docs.sidebar.expandButtonAriaLabel\": {\n    \"message\": \"Expand sidebar\",\n    \"description\": \"The ARIA label and title attribute for expand button of doc sidebar\"\n  },\n  \"theme.SearchPage.documentsFound.plurals\": {\n    \"message\": \"One document found|{count} documents found\",\n    \"description\": \"Pluralized label for \\\"{count} documents found\\\". Use as much plural forms (separated by \\\"|\\\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)\"\n  },\n  \"theme.SearchPage.existingResultsTitle\": {\n    \"message\": \"Search results for \\\"{query}\\\"\",\n    \"description\": \"The search page title for non-empty query\"\n  },\n  \"theme.SearchPage.emptyResultsTitle\": {\n    \"message\": \"Search the documentation\",\n    \"description\": \"The search page title for empty query\"\n  },\n  \"theme.SearchPage.inputPlaceholder\": {\n    \"message\": \"Type your search here\",\n    \"description\": \"The placeholder for search page input\"\n  },\n  \"theme.SearchPage.inputLabel\": {\n    \"message\": \"Search\",\n    \"description\": \"The ARIA label for search page input\"\n  },\n  \"theme.SearchPage.algoliaLabel\": {\n    \"message\": \"Search by Algolia\",\n    \"description\": \"The ARIA label for Algolia mention\"\n  },\n  \"theme.SearchPage.noResultsText\": {\n    \"message\": \"No results were found\",\n    \"description\": \"The paragraph for empty search result\"\n  },\n  \"theme.SearchPage.fetchingNewResults\": {\n    \"message\": \"Fetching new results...\",\n    \"description\": \"The paragraph for fetching new search results\"\n  },\n  \"theme.SearchBar.seeAll\": {\n    \"message\": \"See all {count} results\"\n  },\n  \"theme.SearchBar.label\": {\n    \"message\": \"Search\",\n    \"description\": \"The ARIA label and placeholder for search button\"\n  },\n  \"theme.SearchModal.searchBox.resetButtonTitle\": {\n    \"message\": \"Clear the query\",\n    \"description\": \"The label and ARIA label for search box reset button\"\n  },\n  \"theme.SearchModal.searchBox.cancelButtonText\": {\n    \"message\": \"Cancel\",\n    \"description\": \"The label and ARIA label for search box cancel button\"\n  },\n  \"theme.SearchModal.startScreen.recentSearchesTitle\": {\n    \"message\": \"Recent\",\n    \"description\": \"The title for recent searches\"\n  },\n  \"theme.SearchModal.startScreen.noRecentSearchesText\": {\n    \"message\": \"No recent searches\",\n    \"description\": \"The text when no recent searches\"\n  },\n  \"theme.SearchModal.startScreen.saveRecentSearchButtonTitle\": {\n    \"message\": \"Save this search\",\n    \"description\": \"The label for save recent search button\"\n  },\n  \"theme.SearchModal.startScreen.removeRecentSearchButtonTitle\": {\n    \"message\": \"Remove this search from history\",\n    \"description\": \"The label for remove recent search button\"\n  },\n  \"theme.SearchModal.startScreen.favoriteSearchesTitle\": {\n    \"message\": \"Favorite\",\n    \"description\": \"The title for favorite searches\"\n  },\n  \"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle\": {\n    \"message\": \"Remove this search from favorites\",\n    \"description\": \"The label for remove favorite search button\"\n  },\n  \"theme.SearchModal.errorScreen.titleText\": {\n    \"message\": \"Unable to fetch results\",\n    \"description\": \"The title for error screen of search modal\"\n  },\n  \"theme.SearchModal.errorScreen.helpText\": {\n    \"message\": \"You might want to check your network connection.\",\n    \"description\": \"The help text for error screen of search modal\"\n  },\n  \"theme.SearchModal.footer.selectText\": {\n    \"message\": \"to select\",\n    \"description\": \"The explanatory text of the action for the enter key\"\n  },\n  \"theme.SearchModal.footer.selectKeyAriaLabel\": {\n    \"message\": \"Enter key\",\n    \"description\": \"The ARIA label for the Enter key button that makes the selection\"\n  },\n  \"theme.SearchModal.footer.navigateText\": {\n    \"message\": \"to navigate\",\n    \"description\": \"The explanatory text of the action for the Arrow up and Arrow down key\"\n  },\n  \"theme.SearchModal.footer.navigateUpKeyAriaLabel\": {\n    \"message\": \"Arrow up\",\n    \"description\": \"The ARIA label for the Arrow up key button that makes the navigation\"\n  },\n  \"theme.SearchModal.footer.navigateDownKeyAriaLabel\": {\n    \"message\": \"Arrow down\",\n    \"description\": \"The ARIA label for the Arrow down key button that makes the navigation\"\n  },\n  \"theme.SearchModal.footer.closeText\": {\n    \"message\": \"to close\",\n    \"description\": \"The explanatory text of the action for Escape key\"\n  },\n  \"theme.SearchModal.footer.closeKeyAriaLabel\": {\n    \"message\": \"Escape key\",\n    \"description\": \"The ARIA label for the Escape key button that close the modal\"\n  },\n  \"theme.SearchModal.footer.searchByText\": {\n    \"message\": \"Search by\",\n    \"description\": \"The text explain that the search is making by Algolia\"\n  },\n  \"theme.SearchModal.noResultsScreen.noResultsText\": {\n    \"message\": \"No results for\",\n    \"description\": \"The text explains that there are no results for the following search\"\n  },\n  \"theme.SearchModal.noResultsScreen.suggestedQueryText\": {\n    \"message\": \"Try searching for\",\n    \"description\": \"The text for the suggested query when no results are found for the following search\"\n  },\n  \"theme.SearchModal.noResultsScreen.reportMissingResultsText\": {\n    \"message\": \"Believe this query should return results?\",\n    \"description\": \"The text for the question where the user thinks there are missing results\"\n  },\n  \"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText\": {\n    \"message\": \"Let us know.\",\n    \"description\": \"The text for the link to report missing results\"\n  },\n  \"theme.SearchModal.placeholder\": {\n    \"message\": \"Search docs\",\n    \"description\": \"The placeholder of the input of the DocSearch pop-up modal\"\n  },\n  \"theme.common.skipToMainContent\": {\n    \"message\": \"Skip to main content\",\n    \"description\": \"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation\"\n  },\n  \"theme.tags.tagsPageTitle\": {\n    \"message\": \"Tags\",\n    \"description\": \"The title of the tag list page\"\n  }\n}\n"
  },
  {
    "path": "docs/i18n/en/docusaurus-plugin-content-blog/options.json",
    "content": "{\n  \"title\": {\n    \"message\": \"Blog\",\n    \"description\": \"The title for the blog used in SEO\"\n  },\n  \"description\": {\n    \"message\": \"Blog\",\n    \"description\": \"The description for the blog used in SEO\"\n  },\n  \"sidebar.title\": {\n    \"message\": \"Recent posts\",\n    \"description\": \"The label for the left sidebar\"\n  }\n}\n"
  },
  {
    "path": "docs/i18n/en/docusaurus-plugin-content-docs/current.json",
    "content": "{\n  \"version.label\": {\n    \"message\": \"Current Version (0.15.x)\",\n    \"description\": \"The label for version current\"\n  },\n  \"sidebar.demoSidebar.category.Selectize demos\": {\n    \"message\": \"Selectize demos\",\n    \"description\": \"The label for category Selectize demos in sidebar demoSidebar\"\n  },\n  \"sidebar.demoSidebar.category.Selectize demos.link.generated-index.title\": {\n    \"message\": \"Examples\",\n    \"description\": \"The generated-index page title for category Selectize demos in sidebar demoSidebar\"\n  },\n  \"sidebar.demoSidebar.category.Selectize demos.link.generated-index.description\": {\n    \"message\": \"Example how we can use Selectize.js\",\n    \"description\": \"The generated-index page description for category Selectize demos in sidebar demoSidebar\"\n  },\n  \"sidebar.demoSidebar.category.Selectize plugin demos\": {\n    \"message\": \"Selectize plugin demos\",\n    \"description\": \"The label for category Selectize plugin demos in sidebar demoSidebar\"\n  },\n  \"sidebar.demoSidebar.category.Selectize plugin demos.link.generated-index.title\": {\n    \"message\": \"Examples using plugins\",\n    \"description\": \"The generated-index page title for category Selectize plugin demos in sidebar demoSidebar\"\n  },\n  \"sidebar.demoSidebar.category.Selectize plugin demos.link.generated-index.description\": {\n    \"message\": \"Example how we can use Selectize.js with plugins\",\n    \"description\": \"The generated-index page description for category Selectize plugin demos in sidebar demoSidebar\"\n  },\n  \"sidebar.apiSidebar.category.Guides\": {\n    \"message\": \"Guides\",\n    \"description\": \"The label for category Guides in sidebar apiSidebar\"\n  },\n  \"sidebar.apiSidebar.category.Guides.link.generated-index.title\": {\n    \"message\": \"Selectize Api Guides\",\n    \"description\": \"The generated-index page title for category Guides in sidebar apiSidebar\"\n  },\n  \"sidebar.apiSidebar.category.Guides.link.generated-index.description\": {\n    \"message\": \"Check all api documentation that you can use with Selectize.js\",\n    \"description\": \"The generated-index page description for category Guides in sidebar apiSidebar\"\n  }\n}\n"
  },
  {
    "path": "docs/i18n/en/docusaurus-theme-classic/footer.json",
    "content": "{\n  \"link.title.Docs\": {\n    \"message\": \"Docs\",\n    \"description\": \"The title of the footer links column with title=Docs in the footer\"\n  },\n  \"link.title.Demos\": {\n    \"message\": \"Demos\",\n    \"description\": \"The title of the footer links column with title=Demos in the footer\"\n  },\n  \"link.title.Community\": {\n    \"message\": \"Community\",\n    \"description\": \"The title of the footer links column with title=Community in the footer\"\n  },\n  \"link.title.Legal\": {\n    \"message\": \"Legal\",\n    \"description\": \"The title of the footer links column with title=Legal in the footer\"\n  },\n  \"link.item.label.Get Started\": {\n    \"message\": \"Get Started\",\n    \"description\": \"The label of footer link with label=Get Started linking to /docs/intro\"\n  },\n  \"link.item.label.Events\": {\n    \"message\": \"Events\",\n    \"description\": \"The label of footer link with label=Events linking to /docs/events\"\n  },\n  \"link.item.label.API\": {\n    \"message\": \"API\",\n    \"description\": \"The label of footer link with label=API linking to /docs/api\"\n  },\n  \"link.item.label.Examples\": {\n    \"message\": \"Examples\",\n    \"description\": \"The label of footer link with label=Examples linking to /docs/demos\"\n  },\n  \"link.item.label.Plugins\": {\n    \"message\": \"Plugins\",\n    \"description\": \"The label of footer link with label=Plugins linking to /docs/plugins\"\n  },\n  \"link.item.label.GitHub\": {\n    \"message\": \"GitHub\",\n    \"description\": \"The label of footer link with label=GitHub linking to https://github.com/selectize/selectize.js\"\n  },\n  \"link.item.label.Keybase\": {\n    \"message\": \"Keybase\",\n    \"description\": \"The label of footer link with label=Keybase linking to https://keybase.io/team/selectize\"\n  },\n  \"link.item.label.Stackoverflow\": {\n    \"message\": \"Stackoverflow\",\n    \"description\": \"The label of footer link with label=Stackoverflow linking to https://stackoverflow.com/questions/tagged/selectize.js\"\n  },\n  \"link.item.label.License\": {\n    \"message\": \"License\",\n    \"description\": \"The label of footer link with label=License linking to /license\"\n  },\n  \"link.item.label.Code of Conduct\": {\n    \"message\": \"Code of Conduct\",\n    \"description\": \"The label of footer link with label=Code of Conduct linking to /code-of-conduct\"\n  },\n  \"copyright\": {\n    \"message\": \"Copyright © 2022 Selectize team.\",\n    \"description\": \"The footer copyright\"\n  }\n}\n"
  },
  {
    "path": "docs/i18n/en/docusaurus-theme-classic/navbar.json",
    "content": "{\n  \"title\": {\n    \"message\": \"Selectize\",\n    \"description\": \"The title in the navbar\"\n  },\n  \"item.label.Get Started\": {\n    \"message\": \"Get Started\",\n    \"description\": \"Navbar item with label Get Started\"\n  },\n  \"item.label.Examples\": {\n    \"message\": \"Examples\",\n    \"description\": \"Navbar item with label Examples\"\n  },\n  \"item.label.API Documentation\": {\n    \"message\": \"API Documentation\",\n    \"description\": \"Navbar item with label API Documentation\"\n  },\n  \"item.label.Community\": {\n    \"message\": \"Community\",\n    \"description\": \"Navbar item with label Community\"\n  },\n  \"item.label.GitHub\": {\n    \"message\": \"GitHub\",\n    \"description\": \"Navbar item with label GitHub\"\n  }\n}\n"
  },
  {
    "path": "docs/i18n/fr/code.json",
    "content": "{\n  \"theme.ErrorPageContent.title\": {\n    \"message\": \"This page crashed.\",\n    \"description\": \"The title of the fallback page when the page crashed\"\n  },\n  \"theme.ErrorPageContent.tryAgain\": {\n    \"message\": \"Try again\",\n    \"description\": \"The label of the button to try again when the page crashed\"\n  },\n  \"theme.NotFound.title\": {\n    \"message\": \"Page Not Found\",\n    \"description\": \"The title of the 404 page\"\n  },\n  \"theme.NotFound.p1\": {\n    \"message\": \"We could not find what you were looking for.\",\n    \"description\": \"The first paragraph of the 404 page\"\n  },\n  \"theme.NotFound.p2\": {\n    \"message\": \"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.\",\n    \"description\": \"The 2nd paragraph of the 404 page\"\n  },\n  \"theme.admonition.note\": {\n    \"message\": \"note\",\n    \"description\": \"The default label used for the Note admonition (:::note)\"\n  },\n  \"theme.admonition.tip\": {\n    \"message\": \"tip\",\n    \"description\": \"The default label used for the Tip admonition (:::tip)\"\n  },\n  \"theme.admonition.danger\": {\n    \"message\": \"danger\",\n    \"description\": \"The default label used for the Danger admonition (:::danger)\"\n  },\n  \"theme.admonition.info\": {\n    \"message\": \"info\",\n    \"description\": \"The default label used for the Info admonition (:::info)\"\n  },\n  \"theme.admonition.caution\": {\n    \"message\": \"caution\",\n    \"description\": \"The default label used for the Caution admonition (:::caution)\"\n  },\n  \"theme.BackToTopButton.buttonAriaLabel\": {\n    \"message\": \"Scroll back to top\",\n    \"description\": \"The ARIA label for the back to top button\"\n  },\n  \"theme.blog.archive.title\": {\n    \"message\": \"Archive\",\n    \"description\": \"The page & hero title of the blog archive page\"\n  },\n  \"theme.blog.archive.description\": {\n    \"message\": \"Archive\",\n    \"description\": \"The page & hero description of the blog archive page\"\n  },\n  \"theme.blog.paginator.navAriaLabel\": {\n    \"message\": \"Blog list page navigation\",\n    \"description\": \"The ARIA label for the blog pagination\"\n  },\n  \"theme.blog.paginator.newerEntries\": {\n    \"message\": \"Newer Entries\",\n    \"description\": \"The label used to navigate to the newer blog posts page (previous page)\"\n  },\n  \"theme.blog.paginator.olderEntries\": {\n    \"message\": \"Older Entries\",\n    \"description\": \"The label used to navigate to the older blog posts page (next page)\"\n  },\n  \"theme.blog.post.paginator.navAriaLabel\": {\n    \"message\": \"Blog post page navigation\",\n    \"description\": \"The ARIA label for the blog posts pagination\"\n  },\n  \"theme.blog.post.paginator.newerPost\": {\n    \"message\": \"Newer Post\",\n    \"description\": \"The blog post button label to navigate to the newer/previous post\"\n  },\n  \"theme.blog.post.paginator.olderPost\": {\n    \"message\": \"Older Post\",\n    \"description\": \"The blog post button label to navigate to the older/next post\"\n  },\n  \"theme.blog.post.plurals\": {\n    \"message\": \"One post|{count} posts\",\n    \"description\": \"Pluralized label for \\\"{count} posts\\\". Use as much plural forms (separated by \\\"|\\\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)\"\n  },\n  \"theme.blog.tagTitle\": {\n    \"message\": \"{nPosts} tagged with \\\"{tagName}\\\"\",\n    \"description\": \"The title of the page for a blog tag\"\n  },\n  \"theme.tags.tagsPageLink\": {\n    \"message\": \"View All Tags\",\n    \"description\": \"The label of the link targeting the tag list page\"\n  },\n  \"theme.colorToggle.ariaLabel\": {\n    \"message\": \"Switch between dark and light mode (currently {mode})\",\n    \"description\": \"The ARIA label for the navbar color mode toggle\"\n  },\n  \"theme.colorToggle.ariaLabel.mode.dark\": {\n    \"message\": \"dark mode\",\n    \"description\": \"The name for the dark color mode\"\n  },\n  \"theme.colorToggle.ariaLabel.mode.light\": {\n    \"message\": \"light mode\",\n    \"description\": \"The name for the light color mode\"\n  },\n  \"theme.docs.breadcrumbs.home\": {\n    \"message\": \"Home page\",\n    \"description\": \"The ARIA label for the home page in the breadcrumbs\"\n  },\n  \"theme.docs.breadcrumbs.navAriaLabel\": {\n    \"message\": \"Breadcrumbs\",\n    \"description\": \"The ARIA label for the breadcrumbs\"\n  },\n  \"theme.docs.DocCard.categoryDescription\": {\n    \"message\": \"{count} items\",\n    \"description\": \"The default description for a category card in the generated index about how many items this category includes\"\n  },\n  \"theme.docs.paginator.navAriaLabel\": {\n    \"message\": \"Docs pages navigation\",\n    \"description\": \"The ARIA label for the docs pagination\"\n  },\n  \"theme.docs.paginator.previous\": {\n    \"message\": \"Previous\",\n    \"description\": \"The label used to navigate to the previous doc\"\n  },\n  \"theme.docs.paginator.next\": {\n    \"message\": \"Next\",\n    \"description\": \"The label used to navigate to the next doc\"\n  },\n  \"theme.docs.tagDocListPageTitle.nDocsTagged\": {\n    \"message\": \"One doc tagged|{count} docs tagged\",\n    \"description\": \"Pluralized label for \\\"{count} docs tagged\\\". Use as much plural forms (separated by \\\"|\\\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)\"\n  },\n  \"theme.docs.tagDocListPageTitle\": {\n    \"message\": \"{nDocsTagged} with \\\"{tagName}\\\"\",\n    \"description\": \"The title of the page for a docs tag\"\n  },\n  \"theme.docs.versionBadge.label\": {\n    \"message\": \"Version: {versionLabel}\"\n  },\n  \"theme.docs.versions.unreleasedVersionLabel\": {\n    \"message\": \"This is unreleased documentation for {siteTitle} {versionLabel} version.\",\n    \"description\": \"The label used to tell the user that he's browsing an unreleased doc version\"\n  },\n  \"theme.docs.versions.unmaintainedVersionLabel\": {\n    \"message\": \"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.\",\n    \"description\": \"The label used to tell the user that he's browsing an unmaintained doc version\"\n  },\n  \"theme.docs.versions.latestVersionSuggestionLabel\": {\n    \"message\": \"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).\",\n    \"description\": \"The label used to tell the user to check the latest version\"\n  },\n  \"theme.docs.versions.latestVersionLinkLabel\": {\n    \"message\": \"latest version\",\n    \"description\": \"The label used for the latest version suggestion link label\"\n  },\n  \"theme.common.editThisPage\": {\n    \"message\": \"Edit this page\",\n    \"description\": \"The link label to edit the current page\"\n  },\n  \"theme.common.headingLinkTitle\": {\n    \"message\": \"Direct link to heading\",\n    \"description\": \"Title for link to heading\"\n  },\n  \"theme.lastUpdated.atDate\": {\n    \"message\": \" on {date}\",\n    \"description\": \"The words used to describe on which date a page has been last updated\"\n  },\n  \"theme.lastUpdated.byUser\": {\n    \"message\": \" by {user}\",\n    \"description\": \"The words used to describe by who the page has been last updated\"\n  },\n  \"theme.lastUpdated.lastUpdatedAtBy\": {\n    \"message\": \"Last updated{atDate}{byUser}\",\n    \"description\": \"The sentence used to display when a page has been last updated, and by who\"\n  },\n  \"theme.navbar.mobileVersionsDropdown.label\": {\n    \"message\": \"Versions\",\n    \"description\": \"The label for the navbar versions dropdown on mobile view\"\n  },\n  \"theme.tags.tagsListLabel\": {\n    \"message\": \"Tags:\",\n    \"description\": \"The label alongside a tag list\"\n  },\n  \"theme.AnnouncementBar.closeButtonAriaLabel\": {\n    \"message\": \"Close\",\n    \"description\": \"The ARIA label for close button of announcement bar\"\n  },\n  \"theme.blog.sidebar.navAriaLabel\": {\n    \"message\": \"Blog recent posts navigation\",\n    \"description\": \"The ARIA label for recent posts in the blog sidebar\"\n  },\n  \"theme.CodeBlock.copied\": {\n    \"message\": \"Copied\",\n    \"description\": \"The copied button label on code blocks\"\n  },\n  \"theme.CodeBlock.copyButtonAriaLabel\": {\n    \"message\": \"Copy code to clipboard\",\n    \"description\": \"The ARIA label for copy code blocks button\"\n  },\n  \"theme.CodeBlock.copy\": {\n    \"message\": \"Copy\",\n    \"description\": \"The copy button label on code blocks\"\n  },\n  \"theme.CodeBlock.wordWrapToggle\": {\n    \"message\": \"Toggle word wrap\",\n    \"description\": \"The title attribute for toggle word wrapping button of code block lines\"\n  },\n  \"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel\": {\n    \"message\": \"Toggle the collapsible sidebar category '{label}'\",\n    \"description\": \"The ARIA label to toggle the collapsible sidebar category\"\n  },\n  \"theme.navbar.mobileLanguageDropdown.label\": {\n    \"message\": \"Languages\",\n    \"description\": \"The label for the mobile language switcher dropdown\"\n  },\n  \"theme.TOCCollapsible.toggleButtonLabel\": {\n    \"message\": \"On this page\",\n    \"description\": \"The label used by the button on the collapsible TOC component\"\n  },\n  \"theme.blog.post.readMore\": {\n    \"message\": \"Read More\",\n    \"description\": \"The label used in blog post item excerpts to link to full blog posts\"\n  },\n  \"theme.blog.post.readMoreLabel\": {\n    \"message\": \"Read more about {title}\",\n    \"description\": \"The ARIA label for the link to full blog posts from excerpts\"\n  },\n  \"theme.blog.post.readingTime.plurals\": {\n    \"message\": \"One min read|{readingTime} min read\",\n    \"description\": \"Pluralized label for \\\"{readingTime} min read\\\". Use as much plural forms (separated by \\\"|\\\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)\"\n  },\n  \"theme.docs.sidebar.collapseButtonTitle\": {\n    \"message\": \"Collapse sidebar\",\n    \"description\": \"The title attribute for collapse button of doc sidebar\"\n  },\n  \"theme.docs.sidebar.collapseButtonAriaLabel\": {\n    \"message\": \"Collapse sidebar\",\n    \"description\": \"The title attribute for collapse button of doc sidebar\"\n  },\n  \"theme.docs.sidebar.closeSidebarButtonAriaLabel\": {\n    \"message\": \"Close navigation bar\",\n    \"description\": \"The ARIA label for close button of mobile sidebar\"\n  },\n  \"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel\": {\n    \"message\": \"← Back to main menu\",\n    \"description\": \"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)\"\n  },\n  \"theme.docs.sidebar.toggleSidebarButtonAriaLabel\": {\n    \"message\": \"Toggle navigation bar\",\n    \"description\": \"The ARIA label for hamburger menu button of mobile navigation\"\n  },\n  \"theme.docs.sidebar.expandButtonTitle\": {\n    \"message\": \"Expand sidebar\",\n    \"description\": \"The ARIA label and title attribute for expand button of doc sidebar\"\n  },\n  \"theme.docs.sidebar.expandButtonAriaLabel\": {\n    \"message\": \"Expand sidebar\",\n    \"description\": \"The ARIA label and title attribute for expand button of doc sidebar\"\n  },\n  \"theme.SearchPage.documentsFound.plurals\": {\n    \"message\": \"One document found|{count} documents found\",\n    \"description\": \"Pluralized label for \\\"{count} documents found\\\". Use as much plural forms (separated by \\\"|\\\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)\"\n  },\n  \"theme.SearchPage.existingResultsTitle\": {\n    \"message\": \"Search results for \\\"{query}\\\"\",\n    \"description\": \"The search page title for non-empty query\"\n  },\n  \"theme.SearchPage.emptyResultsTitle\": {\n    \"message\": \"Search the documentation\",\n    \"description\": \"The search page title for empty query\"\n  },\n  \"theme.SearchPage.inputPlaceholder\": {\n    \"message\": \"Type your search here\",\n    \"description\": \"The placeholder for search page input\"\n  },\n  \"theme.SearchPage.inputLabel\": {\n    \"message\": \"Recherche\",\n    \"description\": \"The ARIA label for search page input\"\n  },\n  \"theme.SearchPage.algoliaLabel\": {\n    \"message\": \"Recherche par Algolia\",\n    \"description\": \"The ARIA label for Algolia mention\"\n  },\n  \"theme.SearchPage.noResultsText\": {\n    \"message\": \"Aucun resultat n'a été trouvé\",\n    \"description\": \"The paragraph for empty search result\"\n  },\n  \"theme.SearchPage.fetchingNewResults\": {\n    \"message\": \"Récupération de nouveaux résultats...\",\n    \"description\": \"The paragraph for fetching new search results\"\n  },\n  \"theme.SearchBar.seeAll\": {\n    \"message\": \"Voir tous les {count} résultats\"\n  },\n  \"theme.SearchBar.label\": {\n    \"message\": \"Chercher\",\n    \"description\": \"The ARIA label and placeholder for search button\"\n  },\n  \"theme.SearchModal.searchBox.resetButtonTitle\": {\n    \"message\": \"Effacer la requête\",\n    \"description\": \"The label and ARIA label for search box reset button\"\n  },\n  \"theme.SearchModal.searchBox.cancelButtonText\": {\n    \"message\": \"Annuler\",\n    \"description\": \"The label and ARIA label for search box cancel button\"\n  },\n  \"theme.SearchModal.startScreen.recentSearchesTitle\": {\n    \"message\": \"Récent\",\n    \"description\": \"The title for recent searches\"\n  },\n  \"theme.SearchModal.startScreen.noRecentSearchesText\": {\n    \"message\": \"Aucune recherche récente\",\n    \"description\": \"The text when no recent searches\"\n  },\n  \"theme.SearchModal.startScreen.saveRecentSearchButtonTitle\": {\n    \"message\": \"Enregistrer cette recherche\",\n    \"description\": \"The label for save recent search button\"\n  },\n  \"theme.SearchModal.startScreen.removeRecentSearchButtonTitle\": {\n    \"message\": \"Supprimer cette recherche de l'historique\",\n    \"description\": \"The label for remove recent search button\"\n  },\n  \"theme.SearchModal.startScreen.favoriteSearchesTitle\": {\n    \"message\": \"Favori\",\n    \"description\": \"The title for favorite searches\"\n  },\n  \"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle\": {\n    \"message\": \"Supprimer cette recherche des favoris\",\n    \"description\": \"The label for remove favorite search button\"\n  },\n  \"theme.SearchModal.errorScreen.titleText\": {\n    \"message\": \"Impossible de récupérer les résultats\",\n    \"description\": \"The title for error screen of search modal\"\n  },\n  \"theme.SearchModal.errorScreen.helpText\": {\n    \"message\": \"Vous voudrez peut-être vérifier votre connexion réseau.\",\n    \"description\": \"The help text for error screen of search modal\"\n  },\n  \"theme.SearchModal.footer.selectText\": {\n    \"message\": \"pour sélectionner\",\n    \"description\": \"The explanatory text of the action for the enter key\"\n  },\n  \"theme.SearchModal.footer.selectKeyAriaLabel\": {\n    \"message\": \"La touche Entrée\",\n    \"description\": \"The ARIA label for the Enter key button that makes the selection\"\n  },\n  \"theme.SearchModal.footer.navigateText\": {\n    \"message\": \"naviguer\",\n    \"description\": \"The explanatory text of the action for the Arrow up and Arrow down key\"\n  },\n  \"theme.SearchModal.footer.navigateUpKeyAriaLabel\": {\n    \"message\": \"flèche vers le haut\",\n    \"description\": \"The ARIA label for the Arrow up key button that makes the navigation\"\n  },\n  \"theme.SearchModal.footer.navigateDownKeyAriaLabel\": {\n    \"message\": \"flèche vers le bas\",\n    \"description\": \"The ARIA label for the Arrow down key button that makes the navigation\"\n  },\n  \"theme.SearchModal.footer.closeText\": {\n    \"message\": \"fermer\",\n    \"description\": \"The explanatory text of the action for Escape key\"\n  },\n  \"theme.SearchModal.footer.closeKeyAriaLabel\": {\n    \"message\": \"Touche d'échappement\",\n    \"description\": \"The ARIA label for the Escape key button that close the modal\"\n  },\n  \"theme.SearchModal.footer.searchByText\": {\n    \"message\": \"Recherché par\",\n    \"description\": \"The text explain that the search is making by Algolia\"\n  },\n  \"theme.SearchModal.noResultsScreen.noResultsText\": {\n    \"message\": \"Aucun résultat pour\",\n    \"description\": \"Le texte explique qu'il n'y a pas de résultats pour la recherche suivante\"\n  },\n  \"theme.SearchModal.noResultsScreen.suggestedQueryText\": {\n    \"message\": \"Essayez de rechercher\",\n    \"description\": \"Le texte de la requête suggérée lorsqu'aucun résultat n'est trouvé pour la recherche suivante\"\n  },\n  \"theme.SearchModal.noResultsScreen.reportMissingResultsText\": {\n    \"message\": \"Vous pensez que cette requête devrait renvoyer des résultats ?\",\n    \"description\": \"Le texte de la question où l'utilisateur pense qu'il manque des résultats\"\n  },\n  \"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText\": {\n    \"message\": \"Faites le nous savoir.\",\n    \"description\": \"Le texte du lien pour signaler les résultats manquants\"\n  },\n  \"theme.SearchModal.placeholder\": {\n    \"message\": \"Rechercher des documents\",\n    \"description\": \"L'espace réservé de l'entrée de la fenêtre modale de recherche de documents\"\n  },\n  \"theme.common.skipToMainContent\": {\n    \"message\": \"Passer au contenu principal\",\n    \"description\": \"L'étiquette de saut au contenu utilisée pour l'accessibilité, permettant de naviguer rapidement vers le contenu principal avec la navigation par tabulation/entrée du clavier\"\n  },\n  \"theme.tags.tagsPageTitle\": {\n    \"message\": \"Mots clés\",\n    \"description\": \"Le titre de la page de liste de balises\"\n  }\n}\n"
  },
  {
    "path": "docs/i18n/fr/docusaurus-plugin-content-blog/options.json",
    "content": "{\n  \"title\": {\n    \"message\": \"Blog\",\n    \"description\": \"The title for the blog used in SEO\"\n  },\n  \"description\": {\n    \"message\": \"Blog\",\n    \"description\": \"The description for the blog used in SEO\"\n  },\n  \"sidebar.title\": {\n    \"message\": \"Recent posts\",\n    \"description\": \"The label for the left sidebar\"\n  }\n}\n"
  },
  {
    "path": "docs/i18n/fr/docusaurus-plugin-content-docs/current.json",
    "content": "{\n  \"version.label\": {\n    \"message\": \"Current Version (0.15.x)\",\n    \"description\": \"The label for version current\"\n  },\n  \"sidebar.demoSidebar.category.Selectize demos\": {\n    \"message\": \"Selectize demos\",\n    \"description\": \"The label for category Selectize demos in sidebar demoSidebar\"\n  },\n  \"sidebar.demoSidebar.category.Selectize demos.link.generated-index.title\": {\n    \"message\": \"Examples\",\n    \"description\": \"The generated-index page title for category Selectize demos in sidebar demoSidebar\"\n  },\n  \"sidebar.demoSidebar.category.Selectize demos.link.generated-index.description\": {\n    \"message\": \"Example how we can use Selectize.js\",\n    \"description\": \"The generated-index page description for category Selectize demos in sidebar demoSidebar\"\n  },\n  \"sidebar.demoSidebar.category.Selectize plugin demos\": {\n    \"message\": \"Selectize plugin demos\",\n    \"description\": \"The label for category Selectize plugin demos in sidebar demoSidebar\"\n  },\n  \"sidebar.demoSidebar.category.Selectize plugin demos.link.generated-index.title\": {\n    \"message\": \"Examples using plugins\",\n    \"description\": \"The generated-index page title for category Selectize plugin demos in sidebar demoSidebar\"\n  },\n  \"sidebar.demoSidebar.category.Selectize plugin demos.link.generated-index.description\": {\n    \"message\": \"Example how we can use Selectize.js with plugins\",\n    \"description\": \"The generated-index page description for category Selectize plugin demos in sidebar demoSidebar\"\n  },\n  \"sidebar.apiSidebar.category.Guides\": {\n    \"message\": \"Guides\",\n    \"description\": \"The label for category Guides in sidebar apiSidebar\"\n  },\n  \"sidebar.apiSidebar.category.Guides.link.generated-index.title\": {\n    \"message\": \"Selectize Api Guides\",\n    \"description\": \"The generated-index page title for category Guides in sidebar apiSidebar\"\n  },\n  \"sidebar.apiSidebar.category.Guides.link.generated-index.description\": {\n    \"message\": \"Check all api documentation that you can use with Selectize.js\",\n    \"description\": \"The generated-index page description for category Guides in sidebar apiSidebar\"\n  }\n}\n"
  },
  {
    "path": "docs/i18n/fr/docusaurus-theme-classic/footer.json",
    "content": "{\n  \"link.title.Docs\": {\n    \"message\": \"Docs\",\n    \"description\": \"The title of the footer links column with title=Docs in the footer\"\n  },\n  \"link.title.Demos\": {\n    \"message\": \"Demos\",\n    \"description\": \"The title of the footer links column with title=Demos in the footer\"\n  },\n  \"link.title.Community\": {\n    \"message\": \"Community\",\n    \"description\": \"The title of the footer links column with title=Community in the footer\"\n  },\n  \"link.title.Legal\": {\n    \"message\": \"Legal\",\n    \"description\": \"The title of the footer links column with title=Legal in the footer\"\n  },\n  \"link.item.label.Get Started\": {\n    \"message\": \"Get Started\",\n    \"description\": \"The label of footer link with label=Get Started linking to /docs/intro\"\n  },\n  \"link.item.label.Events\": {\n    \"message\": \"Events\",\n    \"description\": \"The label of footer link with label=Events linking to /docs/events\"\n  },\n  \"link.item.label.API\": {\n    \"message\": \"API\",\n    \"description\": \"The label of footer link with label=API linking to /docs/api\"\n  },\n  \"link.item.label.Examples\": {\n    \"message\": \"Examples\",\n    \"description\": \"The label of footer link with label=Examples linking to /docs/demos\"\n  },\n  \"link.item.label.Plugins\": {\n    \"message\": \"Plugins\",\n    \"description\": \"The label of footer link with label=Plugins linking to /docs/plugins\"\n  },\n  \"link.item.label.GitHub\": {\n    \"message\": \"GitHub\",\n    \"description\": \"The label of footer link with label=GitHub linking to https://github.com/selectize/selectize.js\"\n  },\n  \"link.item.label.Keybase\": {\n    \"message\": \"Keybase\",\n    \"description\": \"The label of footer link with label=Keybase linking to https://keybase.io/team/selectize\"\n  },\n  \"link.item.label.Stackoverflow\": {\n    \"message\": \"Stackoverflow\",\n    \"description\": \"The label of footer link with label=Stackoverflow linking to https://stackoverflow.com/questions/tagged/selectize.js\"\n  },\n  \"link.item.label.License\": {\n    \"message\": \"License\",\n    \"description\": \"The label of footer link with label=License linking to /license\"\n  },\n  \"link.item.label.Code of Conduct\": {\n    \"message\": \"Code of Conduct\",\n    \"description\": \"The label of footer link with label=Code of Conduct linking to /code-of-conduct\"\n  },\n  \"copyright\": {\n    \"message\": \"Copyright © 2022 Selectize team.\",\n    \"description\": \"The footer copyright\"\n  }\n}\n"
  },
  {
    "path": "docs/i18n/fr/docusaurus-theme-classic/navbar.json",
    "content": "{\n  \"title\": {\n    \"message\": \"Selectize\",\n    \"description\": \"The title in the navbar\"\n  },\n  \"item.label.Get Started\": {\n    \"message\": \"Get Started\",\n    \"description\": \"Navbar item with label Get Started\"\n  },\n  \"item.label.Examples\": {\n    \"message\": \"Examples\",\n    \"description\": \"Navbar item with label Examples\"\n  },\n  \"item.label.API Documentation\": {\n    \"message\": \"API Documentation\",\n    \"description\": \"Navbar item with label API Documentation\"\n  },\n  \"item.label.Community\": {\n    \"message\": \"Community\",\n    \"description\": \"Navbar item with label Community\"\n  },\n  \"item.label.GitHub\": {\n    \"message\": \"GitHub\",\n    \"description\": \"Navbar item with label GitHub\"\n  }\n}\n"
  },
  {
    "path": "docs/package.json",
    "content": "{\n  \"name\": \"selectize.dev\",\n  \"version\": \"2022.12.0\",\n  \"private\": true,\n  \"scripts\": {\n    \"docusaurus\": \"docusaurus\",\n    \"start\": \"docusaurus start\",\n    \"build\": \"docusaurus build\",\n    \"swizzle\": \"docusaurus swizzle\",\n    \"deploy\": \"docusaurus deploy\",\n    \"clear\": \"docusaurus clear\",\n    \"serve\": \"docusaurus serve\",\n    \"write-translations\": \"docusaurus write-translations\",\n    \"write-heading-ids\": \"docusaurus write-heading-ids\"\n  },\n  \"dependencies\": {\n    \"@docusaurus/core\": \"2.2.0\",\n    \"@docusaurus/preset-classic\": \"2.2.0\",\n    \"@docusaurus/remark-plugin-npm2yarn\": \"^2.2.0\",\n    \"@docusaurus/theme-live-codeblock\": \"^2.2.0\",\n    \"@mdx-js/react\": \"^1.6.22\",\n    \"@tailwindcss/aspect-ratio\": \"^0.4.2\",\n    \"@tailwindcss/forms\": \"^0.5.3\",\n    \"@tailwindcss/line-clamp\": \"^0.4.2\",\n    \"@tailwindcss/typography\": \"^0.5.8\",\n    \"autoprefixer\": \"^10.4.13\",\n    \"clsx\": \"^1.2.1\",\n    \"docusaurus-plugin-google-adsense\": \"^0.3.1\",\n    \"framer-motion\": \"6.5.1\",\n    \"postcss\": \"^8.4.19\",\n    \"postcss-focus-visible\": \"^7.1.0\",\n    \"postcss-import\": \"^15.1.0\",\n    \"prism-react-renderer\": \"^1.3.5\",\n    \"react\": \"^17.0.2\",\n    \"react-dom\": \"^17.0.2\",\n    \"tailwindcss\": \"^3.2.4\"\n  },\n  \"devDependencies\": {\n    \"@docusaurus/module-type-aliases\": \"2.2.0\"\n  },\n  \"browserslist\": {\n    \"production\": [\n      \">0.5%\",\n      \"not dead\",\n      \"not op_mini all\"\n    ],\n    \"development\": [\n      \"last 1 chrome version\",\n      \"last 1 firefox version\",\n      \"last 1 safari version\"\n    ]\n  },\n  \"engines\": {\n    \"node\": \">=16.14\"\n  }\n}\n"
  },
  {
    "path": "docs/postcss.config.js",
    "content": "module.exports = {\n  plugins: {\n    'postcss-import': {},\n    tailwindcss: {},\n    'postcss-focus-visible': {\n      replaceWith: '[data-focus-visible-added]',\n    },\n    autoprefixer: {},\n  },\n}\n"
  },
  {
    "path": "docs/sidebars.js",
    "content": "/**\n * Creating a sidebar enables you to:\n - create an ordered group of docs\n - render a sidebar for each doc of that group\n - provide next/previous navigation\n\n The sidebars can be generated from the filesystem, or explicitly defined here.\n\n Create as many sidebars as you want.\n */\n\n// @ts-check\n\n/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */\nconst sidebars = {\n  // By default, Docusaurus generates a sidebar from the docs folder structure\n  docsSidebar: [\"intro\",\n    \"usage\",\n    \"events\",\n    \"contribute\",\n    \"plugins\",\n  ],\n  demoSidebar: [\n    {\n      type: \"category\",\n      label: \"Selectize demos\",\n      link: {\n        type: \"generated-index\",\n        title: \"Examples\",\n        description: \"Example how we can use Selectize.js\",\n        slug: \"/demos\",\n        keywords: [\"demos\"],\n        image: \"/img/docusaurus.png\"\n      },\n      items: [\n        \"demos/api\",\n        \"demos/confirm\",\n        \"demos/diacritics\",\n        \"demos/dynamic-option-groups\",\n        \"demos/dynamic-options\",\n        \"demos/email-contact\",\n        \"demos/events\",\n        \"demos/lock\",\n        \"demos/max-items\",\n        \"demos/normalize\",\n        \"demos/opt-groups\",\n        \"demos/performance\",\n        \"demos/required\",\n        \"demos/rtl\",\n        \"demos/single-item-select\",\n        \"demos/tagging\",\n      ]\n    },\n    {\n      type: \"category\",\n      label: \"Selectize plugin demos\",\n      link: {\n        type: \"generated-index\",\n        title: \"Examples using plugins\",\n        description: \"Example how we can use Selectize.js with plugins\",\n        slug: \"/demos/plugins\",\n        keywords: [\"demos\", \"plugins\"],\n        image: \"/img/logo.svg\"\n      },\n      items: [\n        \"plugins/autofill-disable\",\n        \"plugins/auto-position\",\n        \"plugins/auto-select-on-type\",\n        \"plugins/clear-button\",\n        \"plugins/drag-drop\",\n        \"plugins/dropdown-header\",\n        \"plugins/opt-group-col\",\n        \"plugins/remove-button\",\n        \"plugins/restore-backspace\",\n        \"plugins/select-on-focus\",\n      ]\n    }\n  ],\n  apiSidebar: [\n    \"api\",\n    {\n      type: \"category\",\n      label: \"Guides\",\n      collapsed: false,\n      link: {\n        type: \"generated-index\",\n        title: \"Selectize Api Guides\",\n        description: \"Check all api documentation that you can use with Selectize.js\",\n        slug: \"/category/api-documentation\",\n        keywords: [\"api\"],\n        image: \"/img/logo.svg\"\n      },\n      items: [\n        \"API/constants\",\n        \"API/selectize\",\n        \"API/highlight\",\n        \"API/utils\",\n        \"API/microevent\",\n        \"API/microplugin\",\n        \"API/sifter\",\n        \"API/autofill_disable Plugin\",\n        \"API/optgroup_columns Plugin\",\n        \"API/remove_button Plugin\",\n        \"API/restore_on_backspace Plugin\",\n        \"API/clear_button Plugin\",\n        \"API/dropdown_header Plugin\",\n        \"API/tag_limit Plugin\",\n      ]\n    }\n  ]\n};\n\nmodule.exports = sidebars;\n"
  },
  {
    "path": "docs/src/components/Button.jsx",
    "content": "import React from 'react';\nimport Link from '@docusaurus/Link';\nimport clsx from 'clsx'\n\nconst styles = {\n  primary:\n    'rounded-full bg-sky-300 py-2 px-4 text-sm font-semibold text-slate-900 hover:bg-sky-200 focus:outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-sky-300/50 active:bg-sky-500',\n  secondary:\n    'rounded-full bg-slate-800 py-2 px-4 text-sm font-medium text-white hover:bg-slate-700 focus:outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white/50 active:text-slate-400',\n}\n\nexport function Button({ variant = 'primary', className, href, ...props }) {\n  className = clsx(styles[variant], className)\n\n  return href ? (\n    <Link href={href} className={className} {...props} />\n  ) : (\n    <button className={className} {...props} />\n  )\n}\n"
  },
  {
    "path": "docs/src/components/Examples/Api.js",
    "content": "\nimport React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../Theming/ThemeChanger\";\n\nexport default function Api() {\n  useEffect(() => {\n    var $select = $('#select-tools').selectize({\n      maxItems: null,\n      valueField: 'id',\n      labelField: 'title',\n      searchField: 'title',\n      options: [\n        { id: 1, title: 'Spectrometer', url: 'http://en.wikipedia.org/wiki/Spectrometers' },\n        { id: 2, title: 'Star Chart', url: 'http://en.wikipedia.org/wiki/Star_chart' },\n        { id: 3, title: 'Electrical Tape', url: 'http://en.wikipedia.org/wiki/Electrical_tape' }\n      ],\n      create: false\n    });\n\n    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n    var control = $select[0].selectize;\n\n    $('#button-clear').on('click', function () {\n      control.clear();\n    });\n\n    $('#button-clearoptions').on('click', function () {\n      control.clearOptions();\n    });\n\n    $('#button-addoption').on('click', function () {\n      control.addOption({\n        id: 4,\n        title: 'Something New',\n        url: 'http://google.com'\n      });\n    });\n\n    $('#button-additem').on('click', function () {\n      control.addItem(2);\n    });\n\n    $('#button-maxitems2').on('click', function () {\n      control.setMaxItems(2);\n    });\n\n    $('#button-maxitems100').on('click', function () {\n      control.setMaxItems(100);\n    });\n\n    $('#button-setvalue').on('click', function () {\n      control.setValue([2, 3]);\n    });\n  });\n\n  return (\n    <>\n      <ThemeChanger />\n      <h4>Examples of how to interact with the control programmatically.</h4>\n      <div className=\"control-group\">\n        <select id=\"select-tools\" multiple placeholder=\"Pick a tool...\"></select>\n      </div>\n\n      <div className=\"pt-4\">\n        <button type=\"button\" value=\"clear()\" id=\"button-clear\">clear()</button>\n        <button type=\"button\" value=\"clearOptions()\" id=\"button-clearoptions\">clearOptions()</button>\n        <button type=\"button\" value=\"addOption()\" id=\"button-addoption\">addOption()</button>\n        <button type=\"button\" value=\"addItem()\" id=\"button-additem\">addItem()</button>\n        <button type=\"button\" value=\"setValue()\" id=\"button-setvalue\">setValue()</button>\n        <button type=\"button\" value=\"maxItems(2)\" id=\"button-maxitems2\">maxItems(2)</button>\n        <button type=\"button\" value=\"maxItems(100)\" id=\"button-maxitems100\">maxItems(100)</button>\n      </div>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<select id=\"select-tools\" multiple placeholder=\"Pick a tool...\"></select>`}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {`var $select = $('#select-tools').selectize({\n  maxItems: null,\n  valueField: 'id',\n  labelField: 'title',\n  searchField: 'title',\n  options: [\n    {id: 1, title: 'Spectrometer', url: 'http://en.wikipedia.org/wiki/Spectrometers'},\n    {id: 2, title: 'Star Chart', url: 'http://en.wikipedia.org/wiki/Star_chart'},\n    {id: 3, title: 'Electrical Tape', url: 'http://en.wikipedia.org/wiki/Electrical_tape'}\n  ],\n  create: false\n});\n\n// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\nvar control = $select[0].selectize;\n\n$('#button-clear').on('click', function() {\n  control.clear();\n});\n\n$('#button-clearoptions').on('click', function() {\n  control.clearOptions();\n});\n\n$('#button-addoption').on('click', function() {\n  control.addOption({\n    id: 4,\n    title: 'Something New',\n    url: 'http://google.com'\n  });\n});\n\n$('#button-additem').on('click', function() {\n  control.addItem(2);\n});\n\n$('#button-maxitems2').on('click', function() {\n  control.setMaxItems(2);\n});\n\n$('#button-maxitems100').on('click', function() {\n  control.setMaxItems(100);\n});\n\n$('#button-setvalue').on('click', function() {\n  control.setValue([2, 3]);\n});\n        `}\n      </CodeBlock>\n    </>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/Basic.js",
    "content": "\nimport React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../Theming/ThemeChanger\";\n\nexport default function Basics() {\n  useEffect(() => {\n    $(\"#normalize\").selectize();\n  });\n\n  return (\n    <>\n      <ThemeChanger />\n      <h4>The most vanilla of examples.</h4>\n      <select id=\"normalize\">\n        <option value=\"\"></option>\n        <option value=\"1\">Awesome</option>\n        <option value=\"2\">Beast</option>\n        <option value=\"3\">Compatible</option>\n        <option value=\"4\">Thomas Edison</option>\n        <option value=\"5\">Nikola</option>\n        <option value=\"6\">Selectize</option>\n        <option value=\"7\">Javascript</option>\n      </select>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<select id=\"normalize\">\n  <option value=\"\"></option>\n  <option value=\"1\">Awesome</option>\n  <option value=\"2\">Beast</option>\n  <option value=\"3\">Compatible</option>\n  <option value=\"4\">Thomas Edison</option>\n  <option value=\"5\">Nikola</option>\n  <option value=\"6\">Selectize</option>\n  <option value=\"7\">Javascript</option>\n</select>`}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {\"$('#normalize').selectize();\"}\n      </CodeBlock>\n    </>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/ConfirmDelete.js",
    "content": "\nimport React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../Theming/ThemeChanger\";\n\nexport default function ConfirmDelete() {\n  useEffect(() => {\n    $('#input-tags').selectize({\n      delimiter: ',',\n      persist: false,\n      onDelete: function (values) {\n        return confirm(values.length > 1 ? 'Are you sure you want to remove these ' + values.length + ' items?' : 'Are you sure you want to remove \"' + values[0] + '\"?');\n      }\n    });\n  });\n\n  return (\n    <>\n      <ThemeChanger />\n      <h4>Using the Confirm Delete dialog</h4>\n      <div className=\"control-group\">\n        <label htmlFor=\"input-tags\">Tags:</label>\n        <input type=\"text\" id=\"input-tags\" className=\"demo-default\" defaultValue=\"awesome,neat,yeah\" />\n      </div>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<div class=\"control-group\">\n  <label for=\"input-tags\">Tags:</label>\n  <input type=\"text\" id=\"input-tags\" class=\"demo-default\" value=\"awesome,neat,yeah\">\n</div>`}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {`$('#input-tags').selectize({\n  delimiter: ',',\n  persist: false,\n  onDelete: function(values) {\n    return confirm(values.length > 1 ? 'Are you sure you want to remove these ' + values.length + ' items?' : 'Are you sure you want to remove \"' + values[0] + '\"?');\n  }\n});`}\n      </CodeBlock>\n    </>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/Diacritics.js",
    "content": "import React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../Theming/ThemeChanger\";\n\nexport default function Diacritics() {\n  useEffect(() => {\n    $(\"#diacritics\").selectize({\n      delimiter: \",\",\n      persist: false,\n      maxItems: null,\n      create: function (input) {\n        return {\n          value: input,\n          text: input,\n        };\n      },\n    });\n  });\n\n  return (\n    <div>\n      <ThemeChanger />\n      <h4>\n        Selectize can handle diacritics. Try typing \"côte d'ivoire\" or \"são\n      </h4>\n\n      <select id='diacritics'>\n        <option>Åland Islands</option>\n        <option>Helô</option>\n        <option>déjà vu</option>\n      </select>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<select id='diacritics'>\n  <option>Åland Islands</option>\n  <option>Helô</option>\n  <option>déjà vu</option>\n</select>`}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {`$(\"#diacritics\").selectize({\n  delimiter: \",\",\n  persist: false,\n  maxItems: null,\n  create: function (input) {\n    return {\n      value: input,\n      text: input,\n    };\n  }\n});`}\n      </CodeBlock>\n    </div>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/DynamicOpt.js",
    "content": "\nimport React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../Theming/ThemeChanger\";\n\nexport default function DynamicOpt() {\n  useEffect(() => {\n    $('#select-tools').selectize({\n      maxItems: null,\n      valueField: 'id',\n      labelField: 'title',\n      searchField: 'title',\n      options: [\n        { id: 1, title: 'Spectrometer', url: 'http://en.wikipedia.org/wiki/Spectrometers' },\n        { id: 2, title: 'Star Chart', url: 'http://en.wikipedia.org/wiki/Star_chart' },\n        { id: 3, title: 'Electrical Tape', url: 'http://en.wikipedia.org/wiki/Electrical_tape' }\n      ],\n      create: false\n    });\n  });\n\n  return (\n    <>\n      <ThemeChanger />\n      <h4>Using Dynamic Options.</h4>\n      <p>The options are created straight from an array.</p>\n      <select id=\"select-tools\" placeholder=\"Pick a tool...\"></select>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<select id=\"select-tools\" placeholder=\"Pick a tool...\"></select>`}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {`$('#select-tools').selectize({\n  maxItems: null,\n  valueField: 'id',\n  labelField: 'title',\n  searchField: 'title',\n  options: [\n    {id: 1, title: 'Spectrometer', url: 'http://en.wikipedia.org/wiki/Spectrometers'},\n    {id: 2, title: 'Star Chart', url: 'http://en.wikipedia.org/wiki/Star_chart'},\n    {id: 3, title: 'Electrical Tape', url: 'http://en.wikipedia.org/wiki/Electrical_tape'}\n  ],\n  create: false\n});`}\n      </CodeBlock>\n    </>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/DynamicOptGroups.js",
    "content": "import React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../Theming/ThemeChanger\";\n\nexport default function OptGroups() {\n  useEffect(() => {\n    $('#select-console').selectize({\n      options: [\n        { manufacturer: 'nintendo', value: \"nes\", name: \"Nintendo Entertainment System\" },\n        { manufacturer: 'nintendo', value: \"snes\", name: \"Super Nintendo Entertainment System\" },\n        { manufacturer: 'nintendo', value: \"n64\", name: \"Nintendo 64\" },\n        { manufacturer: 'nintendo', value: \"gamecube\", name: \"GameCube\" },\n        { manufacturer: 'nintendo', value: \"wii\", name: \"Wii\" },\n        { manufacturer: 'microsoft', value: 'xss', name: 'Xbox Series S' },\n        { manufacturer: 'nintendo', value: \"wiiu\", name: \"Wii U\" },\n        { manufacturer: 'nintendo', value: \"switch\", name: \"Switch\" },\n        { manufacturer: 'sony', value: 'ps1', name: 'PlayStation' },\n        { manufacturer: 'sony', value: 'ps2', name: 'PlayStation 2' },\n        { manufacturer: 'sony', value: 'ps3', name: 'PlayStation 3' },\n        { manufacturer: 'sony', value: 'ps4', name: 'PlayStation 4' },\n        { manufacturer: 'sony', value: 'ps5', name: 'PlayStation 5' },\n        { manufacturer: 'microsoft', value: 'xbox', name: 'Xbox' },\n        { manufacturer: 'microsoft', value: '360', name: 'Xbox 360' },\n        { manufacturer: 'microsoft', value: 'xbone', name: 'Xbox One' },\n        { manufacturer: 'microsoft', value: 'xsx', name: 'Xbox Series X' }\n      ],\n      optionGroupRegister: function (optgroup) {\n        var capitalised = optgroup.charAt(0).toUpperCase() + optgroup.substring(1);\n        var group = {\n          label: 'Manufacturer: ' + capitalised\n        };\n\n        group[this.settings.optgroupValueField] = optgroup;\n\n        return group;\n      },\n      optgroupField: 'manufacturer',\n      labelField: 'name',\n      searchField: ['name'],\n      sortField: 'name'\n    });\n  });\n\n  return (\n    <div>\n      <ThemeChanger />\n      <h4>\n        Selectize provides the ability to group options together within the dropdown menu.\n      </h4>\n      <div className=\"control-group\">\n        <label htmlFor=\"select-console\">Console:</label>\n        <select id=\"select-console\" className=\"demo-consoles\" placeholder=\"Select console...\"></select>\n      </div>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<div class=\"control-group\">\n  <label for=\"select-console\">Console:</label>\n  <select id=\"select-console\" class=\"demo-consoles\" placeholder=\"Select console...\"></select>\n</div>\n        `}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {`$('#select-console').selectize({\noptions: [\n  { manufacturer: 'nintendo', value: \"nes\", name: \"Nintendo Entertainment System\" },\n  { manufacturer: 'nintendo', value: \"snes\", name: \"Super Nintendo Entertainment System\" },\n  { manufacturer: 'nintendo', value: \"n64\", name: \"Nintendo 64\" },\n  { manufacturer: 'nintendo', value: \"gamecube\", name: \"GameCube\" },\n  { manufacturer: 'nintendo', value: \"wii\", name: \"Wii\" },\n  { manufacturer: 'microsoft', value: 'xss', name: 'Xbox Series S' },\n  { manufacturer: 'nintendo', value: \"wiiu\", name: \"Wii U\" },\n  { manufacturer: 'nintendo', value: \"switch\", name: \"Switch\" },\n  { manufacturer: 'sony', value: 'ps1', name: 'PlayStation' },\n  { manufacturer: 'sony', value: 'ps2', name: 'PlayStation 2' },\n  { manufacturer: 'sony', value: 'ps3', name: 'PlayStation 3' },\n  { manufacturer: 'sony', value: 'ps4', name: 'PlayStation 4' },\n  { manufacturer: 'sony', value: 'ps5', name: 'PlayStation 5' },\n  { manufacturer: 'microsoft', value: 'xbox', name: 'Xbox' },\n  { manufacturer: 'microsoft', value: '360', name: 'Xbox 360' },\n  { manufacturer: 'microsoft', value: 'xbone', name: 'Xbox One' },\n  { manufacturer: 'microsoft', value: 'xsx', name: 'Xbox Series X' }\n],\noptionGroupRegister: function (optgroup) {\n  var capitalised = optgroup.charAt(0).toUpperCase() + optgroup.substring(1);\n  var group = {\n    label: 'Manufacturer: ' + capitalised\n  };\n\n  group[this.settings.optgroupValueField] = optgroup;\n\n  return group;\n},\noptgroupField: 'manufacturer',\nlabelField: 'name',\nsearchField: ['name'],\nsortField: 'name'\n});\n        `}\n      </CodeBlock>\n    </div>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/EmailContact.css",
    "content": ".selectize-control.contacts .selectize-input > div .email {\n  opacity: 0.8;\n}\n.selectize-control.contacts .selectize-input > div .name + .email {\n  margin-left: 5px;\n}\n.selectize-control.contacts .selectize-input > div .email:before {\n  content: \"<\";\n}\n.selectize-control.contacts .selectize-input > div .email:after {\n  content: \">\";\n}\n.selectize-control.contacts .selectize-dropdown .caption {\n  font-size: 12px;\n  display: block;\n  color: #a0a0a0;\n}\n"
  },
  {
    "path": "docs/src/components/Examples/EmailContact.js",
    "content": "\nimport React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../Theming/ThemeChanger\";\nimport './EmailContact.css'\n\nexport default function EmailContact() {\n  useEffect(() => {\n    const REGEX_EMAIL =\n      \"([a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@\" +\n      \"(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\";\n\n    $(\"#select-to\").selectize({\n      persist: false,\n      maxItems: null,\n      valueField: \"email\",\n      labelField: \"name\",\n      searchField: [\"name\", \"email\"],\n      options: [\n        { email: \"selectize@risadams.com\", name: \"Ris Adams\" },\n        { email: \"brian@thirdroute.com\", name: \"Brian Reavis\" },\n        { email: \"nikola@tesla.com\", name: \"Nikola Tesla\" },\n        { email: \"someone@gmail.com\" },\n      ],\n      render: {\n        item: function (item, escape) {\n          return (\n            \"<div>\" +\n            (item.name\n              ? '<span class=\"name\">' + escape(item.name) + \"</span>\"\n              : \"\") +\n            (item.email\n              ? '<span class=\"email\">' + escape(item.email) + \"</span>\"\n              : \"\") +\n            \"</div>\"\n          );\n        },\n        option: function (item, escape) {\n          var label = item.name || item.email;\n          var caption = item.name ? item.email : null;\n          return (\n            \"<div>\" +\n            '<span class=\"label\">' +\n            escape(label) +\n            \"</span>\" +\n            (caption\n              ? '<span class=\"caption\">' + escape(caption) + \"</span>\"\n              : \"\") +\n            \"</div>\"\n          );\n        },\n      },\n      createFilter: function (input) {\n        var match, regex;\n\n        // email@address.com\n        regex = new RegExp(\"^\" + REGEX_EMAIL + \"$\", \"i\");\n        match = input.match(regex);\n        if (match) return !this.options.hasOwnProperty(match[0]);\n\n        // name <email@address.com>\n        regex = new RegExp(\"^([^<]*)<\" + REGEX_EMAIL + \">$\", \"i\");\n        match = input.match(regex);\n        if (match) return !this.options.hasOwnProperty(match[2]);\n\n        return false;\n      },\n      create: function (input) {\n        if (new RegExp(\"^\" + REGEX_EMAIL + \"$\", \"i\").test(input)) {\n          return { email: input };\n        }\n        var match = input.match(\n          new RegExp(\"^([^<]*)<\" + REGEX_EMAIL + \">$\", \"i\")\n        );\n        if (match) {\n          return {\n            email: match[2],\n            name: $.trim(match[1]),\n          };\n        }\n        alert(\"Invalid email address.\");\n        return false;\n      },\n    });\n  });\n\n  return (\n    <div>\n      <ThemeChanger />\n      <h4>\n        This demonstrates two main things: (1) custom item and option rendering,\n        and (2) item creation on-the-fly. Try typing a valid and invalid email\n        address.\n      </h4>\n      <select\n        id=\"select-to\"\n        className=\"contacts\"\n        placeholder=\"Pick some people...\"\n      ></select>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<select id=\"select-to\" class=\"contacts\" placeholder=\"Pick some people...\"></select>`}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {`const REGEX_EMAIL = \"([a-z0-9!#$%&'*+/=?^_\\`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_\\`{|}~-]+)*@\" + \"(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\";\n\n$(\"#select-to\").selectize({\n  persist: false,\n  maxItems: null,\n  valueField: \"email\",\n  labelField: \"name\",\n  searchField: [\"name\", \"email\"],\n  options: [\n    { email: \"brian@thirdroute.com\", name: \"Brian Reavis\" },\n    { email: \"nikola@tesla.com\", name: \"Nikola Tesla\" },\n    { email: \"someone@gmail.com\" },\n  ],\n  render: {\n    item: function (item, escape) {\n        return (\n        \"<div>\" +\n        (item.name\n            ? '<span class=\"name\">' + escape(item.name) + \"</span>\"\n            : \"\") +\n        (item.email\n            ? '<span class=\"email\">' + escape(item.email) + \"</span>\"\n            : \"\") +\n        \"</div>\"\n        );\n    },\n    option: function (item, escape) {\n        var label = item.name || item.email;\n        var caption = item.name ? item.email : null;\n        return (\n        \"<div>\" +\n        '<span class=\"label\">' +\n        escape(label) +\n        \"</span>\" +\n        (caption\n            ? '<span class=\"caption\">' + escape(caption) + \"</span>\"\n            : \"\") +\n        \"</div>\"\n        );\n    },\n  },\n  createFilter: function (input) {\n    var match, regex;\n\n    // email@address.com\n    regex = new RegExp(\"^\" + REGEX_EMAIL + \"$\", \"i\");\n    match = input.match(regex);\n    if (match) return !this.options.hasOwnProperty(match[0]);\n\n    // name <email@address.com>\n    regex = new RegExp(\"^([^<]*)<\" + REGEX_EMAIL + \">$\", \"i\");\n    match = input.match(regex);\n    if (match) return !this.options.hasOwnProperty(match[2]);\n\n    return false;\n  },\n  create: function (input) {\n    if (new RegExp(\"^\" + REGEX_EMAIL + \"$\", \"i\").test(input)) {\n        return { email: input };\n    }\n    var match = input.match(\n        new RegExp(\"^([^<]*)<\" + REGEX_EMAIL + \">$\", \"i\")\n    );\n    if (match) {\n        return {\n        email: match[2],\n        name: $.trim(match[1]),\n        };\n    }\n    alert(\"Invalid email address.\");\n    return false;\n  },\n});\n        `}\n      </CodeBlock>\n      <CodeBlock className=\"language-css\" title=\"CSS\">\n        {`.selectize-control.contacts .selectize-input > div .email {\n  opacity: 0.8;\n}\n.selectize-control.contacts .selectize-input > div .name + .email {\n  margin-left: 5px;\n}\n.selectize-control.contacts .selectize-input > div .email:before {\n  content: \"<\";\n}\n.selectize-control.contacts .selectize-input > div .email:after {\n  content: \">\";\n}\n.selectize-control.contacts .selectize-dropdown .caption {\n  font-size: 12px;\n  display: block;\n  color: #a0a0a0;\n}\n\n        `}\n      </CodeBlock>\n    </div>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/Events.js",
    "content": "\nimport React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../Theming/ThemeChanger\";\n\nexport default function Events() {\n  const defaultVal = ['WY'];\n\n  useEffect(() => {\n    var eventHandler = function (name) {\n      return function () {\n        console.log(name, arguments);\n        $('#log').append('<div><span class=\"name\">' + name + '</span></div>');\n      };\n    };\n    $('#select-state').selectize({\n      create: true,\n      onChange: eventHandler('onChange'),\n      onItemAdd: eventHandler('onItemAdd'),\n      onItemRemove: eventHandler('onItemRemove'),\n      onOptionAdd: eventHandler('onOptionAdd'),\n      onOptionRemove: eventHandler('onOptionRemove'),\n      onDropdownOpen: eventHandler('onDropdownOpen'),\n      onDropdownClose: eventHandler('onDropdownClose'),\n      onFocus: eventHandler('onFocus'),\n      onBlur: eventHandler('onBlur'),\n      onInitialize: eventHandler('onInitialize'),\n    });\n  });\n\n  return (\n    <>\n      <ThemeChanger />\n      <h4>Using Events</h4>\n      <p>Check out the console for more details about each event.</p>\n      <div className=\"control-group\">\n        <label htmlFor=\"select-state\">States:</label>\n        <select id=\"select-state\" multiple name=\"state\" defaultValue={defaultVal}>\n          <option value=\"\">Select a state...</option>\n          <option value=\"AL\">Alabama</option>\n          <option value=\"AK\">Alaska</option>\n          <option value=\"AZ\">Arizona</option>\n          <option value=\"AR\">Arkansas</option>\n          <option value=\"CA\">California</option>\n          <option value=\"CO\">Colorado</option>\n          <option value=\"CT\">Connecticut</option>\n          <option value=\"DE\">Delaware</option>\n          <option value=\"DC\">District of Columbia</option>\n          <option value=\"FL\">Florida</option>\n          <option value=\"GA\">Georgia</option>\n          <option value=\"HI\">Hawaii</option>\n          <option value=\"ID\">Idaho</option>\n          <option value=\"IL\">Illinois</option>\n          <option value=\"IN\">Indiana</option>\n          <option value=\"IA\">Iowa</option>\n          <option value=\"KS\">Kansas</option>\n          <option value=\"KY\">Kentucky</option>\n          <option value=\"LA\">Louisiana</option>\n          <option value=\"ME\">Maine</option>\n          <option value=\"MD\">Maryland</option>\n          <option value=\"MA\">Massachusetts</option>\n          <option value=\"MI\">Michigan</option>\n          <option value=\"MN\">Minnesota</option>\n          <option value=\"MS\">Mississippi</option>\n          <option value=\"MO\">Missouri</option>\n          <option value=\"MT\">Montana</option>\n          <option value=\"NE\">Nebraska</option>\n          <option value=\"NV\">Nevada</option>\n          <option value=\"NH\">New Hampshire</option>\n          <option value=\"NJ\">New Jersey</option>\n          <option value=\"NM\">New Mexico</option>\n          <option value=\"NY\">New York</option>\n          <option value=\"NC\">North Carolina</option>\n          <option value=\"ND\">North Dakota</option>\n          <option value=\"OH\">Ohio</option>\n          <option value=\"OK\">Oklahoma</option>\n          <option value=\"OR\">Oregon</option>\n          <option value=\"PA\">Pennsylvania</option>\n          <option value=\"RI\">Rhode Island</option>\n          <option value=\"SC\">South Carolina</option>\n          <option value=\"SD\">South Dakota</option>\n          <option value=\"TN\">Tennessee</option>\n          <option value=\"TX\">Texas</option>\n          <option value=\"UT\">Utah</option>\n          <option value=\"VT\">Vermont</option>\n          <option value=\"VA\">Virginia</option>\n          <option value=\"WA\">Washington</option>\n          <option value=\"WV\">West Virginia</option>\n          <option value=\"WI\">Wisconsin</option>\n          <option value=\"WY\">Wyoming</option>\n        </select>\n      </div>\n      <h4 className='mt-4'>Event Log</h4>\n      <pre id=\"log\"></pre>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<div class=\"control-group\">\n  <label for=\"select-state\">States:</label>\n  <select id=\"select-state\" multiple name=\"state[]\" class=\"demo-default\">\n    <option value=\"\">Select a state...</option>\n    <option value=\"AL\">Alabama</option>\n    ***\n    <option value=\"WY\" selected>Wyoming</option>\n  </select>\n</div>`}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {`var eventHandler = function(name) {\n  return function() {\n    console.log(name, arguments);\n    $('#log').append('<div><span class=\"name\">' + name + '</span></div>');\n  };\n};\nvar $select = $('#select-state').selectize({\n  create          : true,\n  onChange        : eventHandler('onChange'),\n  onItemAdd       : eventHandler('onItemAdd'),\n  onItemRemove    : eventHandler('onItemRemove'),\n  onOptionAdd     : eventHandler('onOptionAdd'),\n  onOptionRemove  : eventHandler('onOptionRemove'),\n  onDropdownOpen  : eventHandler('onDropdownOpen'),\n  onDropdownClose : eventHandler('onDropdownClose'),\n  onFocus         : eventHandler('onFocus'),\n  onBlur          : eventHandler('onBlur'),\n  onInitialize    : eventHandler('onInitialize'),\n});`}\n      </CodeBlock>\n    </>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/Lock.js",
    "content": "\nimport React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../Theming/ThemeChanger\";\n\nexport default function Lock() {\n  useEffect(() => {\n    $('select').selectize({ create: true });\n    $('#select-locked-empty')[0].selectize.lock();\n    $('#select-locked-single')[0].selectize.lock();\n    $('#select-locked')[0].selectize.lock();\n  });\n\n  return (\n    <>\n      <ThemeChanger />\n      <h4>Control Locking.</h4>\n      <p>Selectize controls can be locked to prevent user interaction.</p>\n      <div className=\"control-group\">\n        <label htmlFor=\"select-locked-empty\">Locked (empty):</label>\n        <select id=\"select-locked-empty\" multiple placeholder=\"No input allowed...\">\n          <option value=\"A\">Option A</option>\n          <option value=\"B\">Option B</option>\n          <option value=\"C\">Option C</option>\n        </select>\n      </div>\n      <div className=\"control-group\">\n        <label htmlFor=\"select-locked-single\">Locked (single):</label>\n        <select id=\"select-locked-single\" placeholder=\"No input allowed...\" defaultValue={'B'}>\n          <option value=\"A\">Option A</option>\n          <option value=\"B\">Option B</option>\n          <option value=\"C\">Option C</option>\n        </select>\n      </div>\n      <div className=\"control-group\">\n        <label htmlFor=\"select-locked\">Locked:</label>\n        <select id=\"select-locked\" multiple placeholder=\"No input allowed...\" defaultValue={['B', 'C']}>\n          <option value=\"A\">Option A</option>\n          <option value=\"B\">Option B</option>\n          <option value=\"C\">Option C</option>\n        </select>\n      </div>\n      <div className=\"control-group\">\n        <label htmlFor=\"select-unlocked\">Unlocked:</label>\n        <select id=\"select-unlocked\" multiple placeholder=\"Input allowed...\">\n          <option value=\"A\">Option A</option>\n          <option value=\"B\">Option B</option>\n          <option value=\"C\">Option C</option>\n        </select>\n      </div>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<div class=\"control-group\">\n  <label for=\"select-locked-empty\">Locked (empty):</label>\n  <select id=\"select-locked-empty\" multiple placeholder=\"No input allowed...\">\n    <option value=\"A\">Option A</option>\n    <option value=\"B\">Option B</option>\n    <option value=\"C\">Option C</option>\n  </select>\n</div>\n<div class=\"control-group\">\n  <label for=\"select-locked-single\">Locked (single):</label>\n  <select id=\"select-locked-single\" placeholder=\"No input allowed...\">\n    <option value=\"A\">Option A</option>\n    <option value=\"B\" selected>Option B</option>\n    <option value=\"C\">Option C</option>\n  </select>\n</div>\n<div class=\"control-group\">\n  <label for=\"select-locked\">Locked:</label>\n  <select id=\"select-locked\" multiple placeholder=\"No input allowed...\">\n    <option value=\"A\">Option A</option>\n    <option value=\"B\" selected>Option B</option>\n    <option value=\"C\" selected>Option C</option>\n  </select>\n</div>\n<div class=\"control-group\">\n  <label for=\"select-unlocked\">Unlocked:</label>\n  <select id=\"select-unlocked\" multiple placeholder=\"Input allowed...\">\n    <option value=\"A\">Option A</option>\n    <option value=\"B\">Option B</option>\n    <option value=\"C\">Option C</option>\n  </select>\n</div>`}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {`$('select').selectize({create: true});\n$('#select-locked-empty')[0].selectize.lock();\n$('#select-locked-single')[0].selectize.lock();\n$('#select-locked')[0].selectize.lock();`}\n      </CodeBlock>\n    </>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/MaxItems.js",
    "content": "import React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../Theming/ThemeChanger\";\n\nexport default function MaxItems() {\n  useEffect(() => {\n    $(\"select\").selectize({\n      maxItems: 3,\n    });\n  });\n\n  return (\n    <div>\n      <ThemeChanger />\n      <h4>\n        This example only allows 3 items. Select one more item and the control\n        will be disabled until one or more are deleted.\n      </h4>\n\n      <select multiple>\n        <option value=\"\"></option>\n        <option value=\"1\">Awesome</option>\n        <option value=\"2\">Beast</option>\n        <option value=\"3\">Compatible</option>\n        <option value=\"4\">Thomas Edison</option>\n        <option value=\"5\">Nikola</option>\n        <option value=\"6\">Selectize</option>\n        <option value=\"7\">Javascript</option>\n      </select>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<select multiple>\n  <option value=\"\"></option>\n  <option value=\"1\">Awesome</option>\n  <option value=\"2\">Beast</option>\n  <option value=\"3\">Compatible</option>\n  <option value=\"4\">Thomas Edison</option>\n  <option value=\"5\">Nikola</option>\n  <option value=\"6\">Selectize</option>\n  <option value=\"7\">Javascript</option>\n</select>\n        `}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {\"$('select').selectize({ maxItems: 3 })\"}\n      </CodeBlock>\n\n    </div>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/Normalize.js",
    "content": "import React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../Theming/ThemeChanger\";\n\nexport default function Normalize() {\n  useEffect(() => {\n    $(\"#normalize\").selectize({ normalize: true });\n  });\n\n  return (\n    <div>\n      <div style={{ marginBottom: \"1rem\" }}>\n        <ThemeChanger />\n        <h4>Normalize string sent for search with any accent:</h4>\n        <pre>\n          \"à\", \"è\", \"ì\", \"ò\", \"ù\", \"À\", \"È\", \"Ì\", \"Ò\", \"Ù\", \"á\", \"é\", \"í\", \"ó\",\n          <br />\"ú\", \"ý\", \"Á\", \"É\", \"Í\", \"Ó\", \"Ú\", \"Ý\", \"â\", \"ê\", \"î\", \"ô\", \"û\", \"Â\",\n          <br />\"Ê\", \"Î\", \"Ô\", \"Û\", \"ã\", \"ñ\", \"õ\", \"Õ\", \"Ã\", \"Ñ\", \"ä\", \"ë\", \"ï\", \"ö\",\n          <br />\"ü\", \"ÿ\", \"Ä\", \"Ë\", \"Ï\", \"Ö\", \"Ü\", \"Ÿ\", \"ç\", \"Ç\", \"å\", \"Å\"\n        </pre>\n        <select id=\"normalize\">\n          <option value=\"\"></option>\n          <option value=\"1\">Awsome</option>\n          <option value=\"2\">Beast</option>\n          <option value=\"3\">Compatible</option>\n          <option value=\"4\">Thomas Edison</option>\n          <option value=\"5\">Nikola</option>\n          <option value=\"6\">Selectize</option>\n          <option value=\"7\">Javascript</option>\n        </select>\n      </div>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<select id=\"normalize\">\n  <option value=\"\"></option>\n  <option value=\"1\">Awesome</option>\n  <option value=\"2\">Beast</option>\n  <option value=\"3\">Compatible</option>\n  <option value=\"4\">Thomas Edison</option>\n  <option value=\"5\">Nikola</option>\n  <option value=\"6\">Selectize</option>\n  <option value=\"7\">Javascript</option>\n</select>\n        `}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"javascript\">\n        {\"$('#normalize').selectize({ normalize: true });\"}\n      </CodeBlock>\n    </div>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/OptGroups.js",
    "content": "import React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../Theming/ThemeChanger\";\n\nexport default function OptGroups() {\n  useEffect(() => {\n    $(\"#select-gear\").selectize({\n      sortField: \"text\",\n    });\n  });\n\n  return (\n    <div>\n      <ThemeChanger />\n      <h4>\n        Selectize provides the ability to group options together within the dropdown menu.\n      </h4>\n      <select id=\"select-gear\" multiple placeholder=\"Select gear...\">\n        <option value=\"\">Select gear...</option>\n        <optgroup label=\"Climbing\">\n          <option value=\"pitons\">Pitons</option>\n          <option value=\"cams\">Cams</option>\n          <option value=\"nuts\">Nuts</option>\n          <option value=\"bolts\">Bolts</option>\n          <option value=\"stoppers\">Stoppers</option>\n          <option value=\"sling\">Sling</option>\n        </optgroup>\n        <optgroup label=\"Skiing\">\n          <option value=\"skis\">Skis</option>\n          <option value=\"skins\">Skins</option>\n          <option value=\"poles\">Poles</option>\n        </optgroup>\n      </select>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<select id=\"select-gear\" class=\"demo-default\" multiple placeholder=\"Select gear...\">\n  <option value=\"\">Select gear...</option>\n  <optgroup label=\"Climbing\">\n      <option value=\"pitons\">Pitons</option>\n      <option value=\"cams\">Cams</option>\n      <option value=\"nuts\">Nuts</option>\n      <option value=\"bolts\">Bolts</option>\n      <option value=\"stoppers\">Stoppers</option>\n      <option value=\"sling\">Sling</option>\n  </optgroup>\n  <optgroup label=\"Skiing\">\n      <option value=\"skis\">Skis</option>\n      <option value=\"skins\">Skins</option>\n      <option value=\"poles\">Poles</option>\n  </optgroup>\n</select>\n        `}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {\"$('#select-gear').selectize({ sortField: 'text' })\"}\n      </CodeBlock>\n    </div>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/Performance.js",
    "content": "\nimport React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../Theming/ThemeChanger\";\n\nexport default function Performance() {\n  useEffect(() => {\n    var letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV';\n    var children = [];\n    var options = [];\n    for (var i = 0; i < 25000; i++) {\n      var title = [];\n      for (var j = 0; j < 8; j++) {\n        title.push(letters.charAt(Math.round((letters.length - 1) * Math.random())));\n      }\n      options.push({\n        id: i,\n        title: title.join('')\n      });\n    }\n\n    $('#select-junk').selectize({\n      maxItems: null,\n      maxOptions: 100,\n      valueField: 'id',\n      labelField: 'title',\n      searchField: 'title',\n      sortField: 'title',\n      options: options,\n      create: false\n    });\n\n    $('#select-children-load').click(function () {\n      for (var i = 0; i < 12000; i++) {\n        var title = [];\n\n        for (var j = 0; j < 8; j++) {\n          title.push(letters.charAt(Math.round((letters.length - 1) * Math.random())));\n        }\n\n        title = title.join('');\n\n        var node = $('<option>', { text: title, value: title });\n        children.push(node);\n      }\n\n      $('#select-children').append(children);\n    });\n\n    $('#select-children-activate').click(function () {\n      $('#select-children').selectize({\n        maxItems: null,\n        create: true\n      });\n    });\n  });\n\n  return (\n    <>\n      <ThemeChanger />\n      <h4>Performance Demo</h4>\n      <p>This shows how it performs with 25,000 items.</p>\n      <div className=\"control-group\">\n        <label htmlFor=\"select-junk\">Jumbled Mess:</label>\n        <select id=\"select-junk\" placeholder=\"Start Typing...\"></select>\n      </div>\n\n      <h4 className=\"pt-6\">Digestion of many children</h4>\n      <p>This example shows how long it takes to initialize a demo with a lot of DOM children. Hint: Click the load button, then click the selectize button to run the demo.</p>\n      <div className='pt-2 pb-2'>\n        <button type=\"button\" className=\"activate\" id=\"select-children-load\">Load</button>\n        <button type=\"button\" className=\"activate\" id=\"select-children-activate\">Selectize</button>\n      </div>\n\n      <div className=\"control-group\">\n        <select id=\"select-children\"></select>\n      </div>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<div class=\"control-group\">\n  <label for=\"select-junk\">Jumbled Mess:</label>\n  <select id=\"select-junk\" placeholder=\"Start Typing...\"></select>\n</div>\n\n<button type=\"button\" class=\"activate\" id=\"select-children-load\">Load</button>\n  <button type=\"button\" class=\"activate\" id=\"select-children-activate\">Selectize</button>\n\n  <div class=\"control-group\">\n    <select id=\"select-children\"></select>\n  </div>\n\n`}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {` var letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV';\nvar options = [];\nvar children = [];\nfor (var i = 0; i < 25000; i++) {\n  var title = [];\n  for (var j = 0; j < 8; j++) {\n    title.push(letters.charAt(Math.round((letters.length - 1) * Math.random())));\n  }\n  options.push({\n    id: i,\n    title: title.join('')\n  });\n}\n\n$('#select-junk').selectize({\n  maxItems: null,\n  maxOptions: 100,\n  valueField: 'id',\n  labelField: 'title',\n  searchField: 'title',\n  sortField: 'title',\n  options: options,\n  create: false\n});\n\n$('#select-children-load').click(function () {\n  for (var i = 0; i < 12000; i++) {\n    var title = [];\n\n    for (var j = 0; j < 8; j++) {\n      title.push(letters.charAt(Math.round((letters.length - 1) * Math.random())));\n    }\n\n    title = title.join('');\n\n    var node = $('<option>', { text: title, value: title });\n    children.push(node);\n  }\n\n  $('#select-children').append(children);\n});\n\n$('#select-children-activate').click(function () {\n  $('#select-children').selectize({\n    maxItems: null,\n    create: true\n  });\n});`}\n      </CodeBlock>\n    </>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/Plugins/AutoFillDisable.js",
    "content": "import React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../../Theming/ThemeChanger\";\n\nexport default function AutofillDisable() {\n  useEffect(() => {\n    $(\"#disabledAutoFill\").selectize({\n      plugins: [\"autofill_disable\"],\n    });\n\n  });\n\n  return (\n    <div>\n      <ThemeChanger />\n      <h4>\n        A plugin for disabling the autofill feature of the browser.\n      </h4>\n\n      <p>This select expected to open on bottom</p>\n      <input id=\"disabledAutoFill\" />\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<input id=\"disabledAutoFill\" />`}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {`$(\"#disabledAutoFill\").selectize({\n  plugins: [\"autofill_disable\"],\n});`}\n      </CodeBlock>\n    </div>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/Plugins/AutoPosition.js",
    "content": "import React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../../Theming/ThemeChanger\";\n\nexport default function AutoPosition() {\n  useEffect(() => {\n    $(\"#autoPositionBottom\").selectize({\n      plugins: [\"auto_position\"],\n    });\n\n    $(\"#autoPositionTop\").selectize({\n      plugins: [\"auto_position\"],\n    });\n  });\n\n  return (\n    <div>\n\n      <ThemeChanger />\n      <h4>\n        A plugin for auto manage position of dropdown\n      </h4>\n\n      <p>This select is expected to open on bottom</p>\n      <select id=\"autoPositionBottom\">\n        <option value=\"\"></option>\n        <option value=\"1\">Awesome</option>\n        <option value=\"2\">Beast</option>\n        <option value=\"3\">Compatible</option>\n        <option value=\"4\">Thomas Edison</option>\n        <option value=\"5\">Nikola</option>\n        <option value=\"6\">Selectize</option>\n        <option value=\"7\">Javascript</option>\n      </select>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<select id=\"autoPositionBottom\">\n  <option value=''></option>\n  <option value='1'>Awesome</option>\n  <option value='2'>Beast</option>\n  <option value='3'>Compatible</option>\n  <option value='4'>Thomas Edison</option>\n  <option value='5'>Nikola</option>\n  <option value='6'>Selectize</option>\n  <option value='7'>Javascript</option>\n</select>\n              `}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {`$(\"#autoPositionBottom\").selectize({\n  plugins: [\"auto_position\"],\n});`}\n      </CodeBlock>\n\n      <p>\n        This select is expected to open on top.\n        <br />\n        <strong className=\"mb-2 text-red-600\">You may need to scroll or adjust your browser window</strong>\n      </p>\n      <select id=\"autoPositionTop\">\n        <option value=\"\"></option>\n        <option value=\"1\">Awesome</option>\n        <option value=\"2\">Beast</option>\n        <option value=\"3\">Compatible</option>\n        <option value=\"4\">Thomas Edison</option>\n        <option value=\"5\">Nikola</option>\n        <option value=\"6\">Selectize</option>\n        <option value=\"7\">Javascript</option>\n      </select>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<select id=\"autoPositionTop\">\n  <option value=''></option>\n  <option value='1'>Awesome</option>\n  <option value='2'>Beast</option>\n  <option value='3'>Compatible</option>\n  <option value='4'>Thomas Edison</option>\n  <option value='5'>Nikola</option>\n  <option value='6'>Selectize</option>\n  <option value='7'>Javascript</option>\n</select>\n              `}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {`$(\"#autoPositionTop\").selectize({\n  plugins: [\"auto_position\"],\n});`}\n      </CodeBlock>\n    </div>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/Plugins/AutoSelectOnType.js",
    "content": "import React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../../Theming/ThemeChanger\";\n\nexport default function AutoSelectOnType() {\n  useEffect(() => {\n    $(\"#autoSelectOnType\").selectize({\n      plugins: [\"auto_select_on_type\"],\n    });\n  });\n\n  return (\n    <div>\n      <ThemeChanger />\n      <h4>\n        A plugin by <a href=\"https://github.com/risadams\">Ris Adams</a> for\n        auto select value on <code>blur</code> if exact value available. Try\n        with tipping 'beast' and click outside of input.\n      </h4>\n\n      <select id=\"autoSelectOnType\">\n        <option value=\"\"></option>\n        <option value=\"1\">Awesome</option>\n        <option value=\"2\">Beast</option>\n        <option value=\"3\">Compatible</option>\n        <option value=\"4\">Thomas Edison</option>\n        <option value=\"5\">Nikola</option>\n        <option value=\"6\">Selectize</option>\n        <option value=\"7\">Javascript</option>\n      </select>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<select id=\"autoSelectOnType\">\n  <option value=''></option>\n  <option value='1'>Awesome</option>\n  <option value='2'>Beast</option>\n  <option value='3'>Compatible</option>\n  <option value='4'>Thomas Edison</option>\n  <option value='5'>Nikola</option>\n  <option value='6'>Selectize</option>\n  <option value='7'>Javascript</option>\n</select>\n              `}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {`$(\"#autoSelectOnType\").selectize({\n  plugins: [\"auto_select_on_type\"],\n});`}\n      </CodeBlock>\n    </div>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/Plugins/ClearBtn.js",
    "content": "import React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../../Theming/ThemeChanger\";\n\nexport default function ClearButton() {\n  useEffect(() => {\n    $(\"#clearButton\").selectize({\n      plugins: [\"clear_button\"],\n    });\n  });\n\n  return (\n    <div>\n      <ThemeChanger />\n      <h4>\n        A plugin by <a target=\"_blank\" href=\"https://github.com/fabienwnklr\">Fabien Winkler</a> that adds a clear button to single or multiple\n        select.\n      </h4>\n\n      <select id=\"clearButton\">\n        <option value=\"\"></option>\n        <option value=\"1\">Awesome</option>\n        <option value=\"2\">Beast</option>\n        <option value=\"3\">Compatible</option>\n        <option value=\"4\">Thomas Edison</option>\n        <option value=\"5\">Nikola</option>\n        <option value=\"6\">Selectize</option>\n        <option value=\"7\">Javascript</option>\n      </select>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<select id=\"clearButton\">\n  <option value=''></option>\n  <option value='1'>Awesome</option>\n  <option value='2'>Beast</option>\n  <option value='3'>Compatible</option>\n  <option value='4'>Thomas Edison</option>\n  <option value='5'>Nikola</option>\n  <option value='6'>Selectize</option>\n  <option value='7'>Javascript</option>\n</select>\n              `}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {`$(\"#clearButton\").selectize({\n  plugins: [\"clear_button\"],\n});`}\n      </CodeBlock>\n    </div>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/Plugins/DragDrop.js",
    "content": "import React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../../Theming/ThemeChanger\";\n\nexport default function DragNDrop() {\n  const defaultValue = [1, 2, 3];\n\n  useEffect(() => {\n    $(\"#DragNDrop\").selectize({\n      plugins: [\"drag_drop\"],\n    });\n  });\n\n  return (\n    <div>\n      <ThemeChanger />\n      <h4>\n        Adds drag-and-drop support for easily rearranging selected items.\n        Requires jQuery UI (sortable).\n      </h4>\n\n      <select id=\"DragNDrop\" multiple defaultValue={defaultValue}>\n        <option value=\"1\">Awesome</option>\n        <option value=\"2\">Beast</option>\n        <option value=\"3\">Compatible</option>\n        <option value=\"4\">Thomas Edison</option>\n        <option value=\"5\">Nikola</option>\n        <option value=\"6\">Selectize</option>\n        <option value=\"7\">Javascript</option>\n      </select>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<select id=\"DragNDrop\" multiple>\n  <option value=\"1\" selected>Awesome</option>\n  <option value=\"2\" selected>Beast</option>\n  <option value=\"3\" selected>Compatible</option>\n  <option value=\"4\">Thomas Edison</option>\n  <option value=\"5\">Nikola</option>\n  <option value=\"6\">Selectize</option>\n  <option value=\"7\">Javascript</option>\n</select>`}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {`$(\"#DragNDrop\").selectize({\n  plugins: [\"drag_drop\"],\n});`}\n      </CodeBlock>\n    </div>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/Plugins/DropdownHeader.js",
    "content": "import React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../../Theming/ThemeChanger\";\n\nexport default function DropdownHeader() {\n  useEffect(() => {\n    $(\"#dropdownHeader\").selectize({\n      plugins: {\n        dropdown_header: {\n          title: 'Dropdown Header'\n        }\n      },\n    });\n  });\n\n  return (\n    <div>\n      <ThemeChanger />\n      <h4>\n        A plugin by <a href=\"https://github.com/brianreavis\">Brian Reavis</a> for add dropdown header to native dropdown with a close button.\n      </h4>\n\n      <select id=\"dropdownHeader\">\n        <option value=\"1\">Awesome</option>\n        <option value=\"2\">Beast</option>\n        <option value=\"3\">Compatible</option>\n        <option value=\"4\">Thomas Edison</option>\n        <option value=\"5\">Nikola</option>\n        <option value=\"6\">Selectize</option>\n        <option value=\"7\">Javascript</option>\n      </select>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<select id=\"dropdownHeader\">\n  <option value=\"1\" selected>Awesome</option>\n  <option value=\"2\" selected>Beast</option>\n  <option value=\"3\" selected>Compatible</option>\n  <option value=\"4\">Thomas Edison</option>\n  <option value=\"5\">Nikola</option>\n  <option value=\"6\">Selectize</option>\n  <option value=\"7\">Javascript</option>\n</select>`}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {`    $(\"#dropdownHeader\").selectize({\n  plugins: {\n    dropdown_header: {\n        title: 'Dropdown Header'\n    }\n  },\n});`}\n      </CodeBlock>\n    </div>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/Plugins/OptGroupCol.js",
    "content": "import React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../../Theming/ThemeChanger\";\n\nexport default function OptGroupCol() {\n  useEffect(() => {\n    $(\"#selectCar\").selectize({\n      options: [\n        { id: \"avenger\", make: \"dodge\", model: \"Avenger\" },\n        { id: \"caliber\", make: \"dodge\", model: \"Caliber\" },\n        {\n          id: \"caravan-grand-passenger\",\n          make: \"dodge\",\n          model: \"Caravan Grand Passenger\",\n        },\n        { id: \"challenger\", make: \"dodge\", model: \"Challenger\" },\n        { id: \"ram-1500\", make: \"dodge\", model: \"Ram 1500\" },\n        { id: \"viper\", make: \"dodge\", model: \"Viper\" },\n        { id: \"a3\", make: \"audi\", model: \"A3\" },\n        { id: \"a6\", make: \"audi\", model: \"A6\" },\n        { id: \"r8\", make: \"audi\", model: \"R8\" },\n        { id: \"rs-4\", make: \"audi\", model: \"RS 4\" },\n        { id: \"s4\", make: \"audi\", model: \"S4\" },\n        { id: \"s8\", make: \"audi\", model: \"S8\" },\n        { id: \"tt\", make: \"audi\", model: \"TT\" },\n        { id: \"avalanche\", make: \"chevrolet\", model: \"Avalanche\" },\n        { id: \"aveo\", make: \"chevrolet\", model: \"Aveo\" },\n        { id: \"cobalt\", make: \"chevrolet\", model: \"Cobalt\" },\n        { id: \"silverado\", make: \"chevrolet\", model: \"Silverado\" },\n        { id: \"suburban\", make: \"chevrolet\", model: \"Suburban\" },\n        { id: \"tahoe\", make: \"chevrolet\", model: \"Tahoe\" },\n        { id: \"trail-blazer\", make: \"chevrolet\", model: \"TrailBlazer\" },\n      ],\n      optgroups: [\n        { id: \"dodge\", name: \"Dodge\" },\n        { id: \"audi\", name: \"Audi\" },\n        { id: \"chevrolet\", name: \"Chevrolet\" },\n      ],\n      labelField: \"model\",\n      valueField: \"id\",\n      optgroupField: \"make\",\n      optgroupLabelField: \"name\",\n      optgroupValueField: \"id\",\n      optgroupOrder: [\"chevrolet\", \"dodge\", \"audi\"],\n      searchField: [\"model\"],\n      plugins: [\"optgroup_columns\"],\n    });\n  });\n\n  return (\n    <div>\n      <ThemeChanger />\n      <h4>\n        A plugin by <a href=\"https://github.com/sjhewitt\" target=\"_blank\">\n          Simon Hewitt\n        </a> that renders option groups horizontally with convenient left/right\n        keyboard navigation.\n      </h4>\n\n      <select id=\"selectCar\"></select>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<select id=\"selectCar\"></select>`}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {`$(\"#selectCar\").selectize({\n  options: [\n    { id: \"avenger\", make: \"dodge\", model: \"Avenger\" },\n    { id: \"caliber\", make: \"dodge\", model: \"Caliber\" },\n    {\n        id: \"caravan-grand-passenger\",\n        make: \"dodge\",\n        model: \"Caravan Grand Passenger\",\n    },\n    { id: \"challenger\", make: \"dodge\", model: \"Challenger\" },\n    { id: \"ram-1500\", make: \"dodge\", model: \"Ram 1500\" },\n    { id: \"viper\", make: \"dodge\", model: \"Viper\" },\n    { id: \"a3\", make: \"audi\", model: \"A3\" },\n    { id: \"a6\", make: \"audi\", model: \"A6\" },\n    { id: \"r8\", make: \"audi\", model: \"R8\" },\n    { id: \"rs-4\", make: \"audi\", model: \"RS 4\" },\n    { id: \"s4\", make: \"audi\", model: \"S4\" },\n    { id: \"s8\", make: \"audi\", model: \"S8\" },\n    { id: \"tt\", make: \"audi\", model: \"TT\" },\n    { id: \"avalanche\", make: \"chevrolet\", model: \"Avalanche\" },\n    { id: \"aveo\", make: \"chevrolet\", model: \"Aveo\" },\n    { id: \"cobalt\", make: \"chevrolet\", model: \"Cobalt\" },\n    { id: \"silverado\", make: \"chevrolet\", model: \"Silverado\" },\n    { id: \"suburban\", make: \"chevrolet\", model: \"Suburban\" },\n    { id: \"tahoe\", make: \"chevrolet\", model: \"Tahoe\" },\n    { id: \"trail-blazer\", make: \"chevrolet\", model: \"TrailBlazer\" },\n  ],\n  optgroups: [\n    { id: \"dodge\", name: \"Dodge\" },\n    { id: \"audi\", name: \"Audi\" },\n    { id: \"chevrolet\", name: \"Chevrolet\" },\n  ],\n  labelField: \"model\",\n  valueField: \"id\",\n  optgroupField: \"make\",\n  optgroupLabelField: \"name\",\n  optgroupValueField: \"id\",\n  optgroupOrder: [\"chevrolet\", \"dodge\", \"audi\"],\n  searchField: [\"model\"],\n  plugins: [\"optgroup_columns\"],\n});`}\n      </CodeBlock>\n    </div>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/Plugins/RemoveBtn.js",
    "content": "import React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../../Theming/ThemeChanger\";\n\nexport default function RemoveButton() {\n  useEffect(() => {\n    $(\"#remove-button\").selectize({\n      plugins: [\"remove_button\"],\n      delimiter: \",\",\n      persist: false,\n      create: function (input) {\n        return {\n          value: input,\n          text: input,\n        };\n      },\n    });\n  });\n\n  return (\n    <div>\n      <ThemeChanger />\n      <h4>\n        This plugin adds classic a classic remove button to each item for\n        behavior that mimics Select2 and Chosen.\n      </h4>\n\n      <select id=\"remove-button\" multiple defaultValue={['1', '2', '3']}>\n        <option value=\"1\">\n          Awesome\n        </option>\n        <option value=\"2\">\n          Beast\n        </option>\n        <option value=\"3\">\n          Compatible\n        </option>\n        <option value=\"4\">Thomas Edison</option>\n        <option value=\"5\">Nikola</option>\n        <option value=\"6\">Selectize</option>\n        <option value=\"7\">Javascript</option>\n      </select>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<select id=\"remove-button\">\n  <option value=\"1\" selected>Awesome</option>\n  <option value=\"2\" selected>Beast</option>\n  <option value=\"3\" selected>Compatible</option>\n  <option value=\"4\">Thomas Edison</option>\n  <option value=\"5\">Nikola</option>\n  <option value=\"6\">Selectize</option>\n  <option value=\"7\">Javascript</option>\n</select>`}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {`$(\"#remove-button\").selectize({\n  plugins: [\"remove_button\"],\n  delimiter: \",\",\n  persist: false,\n  create: function (input) {\n    return {\n        value: input,\n        text: input,\n    };\n  },\n});`}\n      </CodeBlock>\n    </div>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/Plugins/RestoreBackspace.js",
    "content": "import React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../../Theming/ThemeChanger\";\n\nexport default function RestoreBackspace() {\n  useEffect(() => {\n    $(\"#restore-backspace\").selectize({\n      plugins: [\"restore_on_backspace\"],\n      delimiter: \",\",\n      persist: false,\n      create: function (input) {\n        return {\n          value: input,\n          text: input,\n        };\n      },\n    });\n  });\n\n  return (\n    <div>\n      <ThemeChanger />\n      <h4>\n        Press the [backspace] key and go back to editing the item without it being fully removed.\n      </h4>\n\n      <select id=\"restore-backspace\" multiple defaultValue={['1', '2', '3']}>\n        <option value=\"1\">\n          Awesome\n        </option>\n        <option value=\"2\">\n          Beast\n        </option>\n        <option value=\"3\">\n          Compatible\n        </option>\n        <option value=\"4\">Thomas Edison</option>\n        <option value=\"5\">Nikola</option>\n        <option value=\"6\">Selectize</option>\n        <option value=\"7\">Javascript</option>\n      </select>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`\n<select id=\"restore-backspace\" multiple>\n  <option value=\"1\" selected>Awesome</option>\n  <option value=\"2\" selected>Beast</option>\n  <option value=\"3\" selected>Compatible</option>\n  <option value=\"4\">Thomas Edison</option>\n  <option value=\"5\">Nikola</option>\n  <option value=\"6\">Selectize</option>\n  <option value=\"7\">Javascript</option>\n</select>`}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {`$(\"#restore-backspace\").selectize({\n  plugins: [\"restore_on_backspace\"],\n  delimiter: \",\",\n  persist: false,\n  create: function (input) {\n    return {\n        value: input,\n        text: input,\n    };\n  },\n});`}\n      </CodeBlock>\n    </div>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/Plugins/SelectOnFocus.js",
    "content": "import React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../../Theming/ThemeChanger\";\n\nexport default function SelectOnFocus() {\n  useEffect(() => {\n    $(\"#select-on-focus\").selectize({\n      plugins: [\"select_on_focus\"],\n    });\n  });\n\n  return (\n    <div>\n      <ThemeChanger />\n      <h4>\n        Select input value when input is focused\n      </h4>\n\n      <select id=\"select-on-focus\">\n        <option value=\"1\">\n          Awesome\n        </option>\n        <option value=\"2\">\n          Beast\n        </option>\n        <option value=\"3\">\n          Compatible\n        </option>\n        <option value=\"4\">Thomas Edison</option>\n        <option value=\"5\">Nikola</option>\n        <option value=\"6\">Selectize</option>\n        <option value=\"7\">Javascript</option>\n      </select>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`\n<select id=\"select-on-focus\">\n  <option value=\"1\">Awesome</option>\n  <option value=\"2\">Beast</option>\n  <option value=\"3\">Compatible</option>\n  <option value=\"4\">Thomas Edison</option>\n  <option value=\"5\">Nikola</option>\n  <option value=\"6\">Selectize</option>\n  <option value=\"7\">Javascript</option>\n</select>`}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {`$(\"#select-on-focus\").selectize({\n  plugins: [\"select_on_focus\"]\n});`}\n      </CodeBlock>\n    </div>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/Required.js",
    "content": "\nimport React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../Theming/ThemeChanger\";\n\nexport default function Required() {\n  useEffect(() => {\n    $('#select-beast').selectize({\n      create: true,\n      sortField: {\n        field: 'text',\n        direction: 'asc'\n      }\n    });\n  });\n\n  return (\n    <>\n      <ThemeChanger />\n      <h4>Required element</h4>\n      <div className=\"control-group\">\n        <form>\n          <label htmlFor=\"select-beast\">Beast:</label>\n          <select id=\"select-beast\" required className=\"demo-default\"\n            placeholder=\"Select a person...\" name=\"beast\">\n            <option value=\"\">Select a person...</option>\n            <option value=\"4\">Thomas Edison</option>\n            <option value=\"1\">Nikola</option>\n            <option value=\"3\">Nikola Tesla</option>\n            <option value=\"5\">Arnold Schwarzenegger</option>\n          </select>\n          <button style={{ marginTop: '2em' }} type=\"submit\">Submit</button>\n        </form>\n      </div>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<div class=\"control-group\">\n<form>\n  <label for=\"select-beast\">Beast:</label>\n  <select id=\"select-beast\" required class=\"demo-default\"\n    placeholder=\"Select a person...\" name=\"beast\">\n    <option value=\"\">Select a person...</option>\n    <option value=\"4\">Thomas Edison</option>\n    <option value=\"1\">Nikola</option>\n    <option value=\"3\">Nikola Tesla</option>\n    <option value=\"5\">Arnold Schwarzenegger</option>\n  </select>\n    <button type=\"submit\">Submit</button>\n</form>\n</div>`}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {`$('#select-beast').selectize({\n  create: true,\n  sortField: {\n    field: 'text',\n    direction: 'asc'\n  }\n});\n        `}\n      </CodeBlock>\n    </>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/Rtl.js",
    "content": "\nimport React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../Theming/ThemeChanger\";\n\nexport default function Rtl() {\n  useEffect(() => {\n    $('#input-tags').selectize({\n      persist: false,\n      create: true\n    });\n    $('#select-beast').selectize({});\n  });\n\n  return (\n    <>\n      <ThemeChanger />\n      <h4>Right-to-left Support (RTL)</h4>\n      <div className=\"control-group\" dir=\"rtl\">\n        <label htmlFor=\"input-tags\">Multiple: </label>\n        <input type=\"text\" id=\"input-tags\" className=\"demo-default\" defaultValue=\"awesome,neat\" />\n      </div>\n\n      <div className=\"control-group\" dir=\"rtl\">\n        <label htmlFor=\"select-beast\">Single: </label>\n        <select id=\"select-beast\" className=\"demo-default\" placeholder=\"Select a person...\">\n          <option value=\"\">Select a person...</option>\n          <option value=\"4\">Thomas Edison</option>\n          <option value=\"1\">Nikola</option>\n          <option value=\"3\">Nikola Tesla</option>\n          <option value=\"5\">Arnold Schwarzenegger</option>\n        </select>\n      </div>\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<div class=\"control-group\" dir=\"rtl\">\n  <label for=\"input-tags\">Multiple: </label>\n  <input type=\"text\" id=\"input-tags\" class=\"demo-default\" value=\"awesome,neat\">\n</div>\n\n<div class=\"control-group\" dir=\"rtl\">\n  <label for=\"select-beast\">Single: </label>\n  <select id=\"select-beast\" class=\"demo-default\" placeholder=\"Select a person...\">\n    <option value=\"\">Select a person...</option>\n    <option value=\"4\">Thomas Edison</option>\n    <option value=\"1\">Nikola</option>\n    <option value=\"3\">Nikola Tesla</option>\n    <option value=\"5\">Arnold Schwarzenegger</option>\n  </select>\n</div>`}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {`$('#input-tags').selectize({\n  persist: false,\n  create: true\n});\n\n$('#select-beast').selectize({});`}\n      </CodeBlock>\n    </>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/Examples/Tagging.js",
    "content": "import React, { useEffect } from \"react\";\nimport CodeBlock from \"@theme/CodeBlock\";\nimport ThemeChanger from \"../Theming/ThemeChanger\";\n\nexport default function Tagging() {\n  useEffect(() => {\n    $(\"#input-tags\").selectize({\n      delimiter: \",\",\n      persist: false,\n      create: function (input) {\n        return {\n          value: input,\n          text: input,\n        };\n      },\n    });\n  });\n\n  return (\n    <div>\n      <ThemeChanger />\n      <h4>\n        Add and remove items in any order without touching your mouse. Use\n        your left/right arrow keys to move the caret (ibeam) between items.\n        This example is instantiated from a <code>{'<input type=\"text\">'}</code> rendering (as of v0.5.0). element (note that the value is represented as a string).\n      </h4>\n\n      <input\n        type=\"text\"\n        id=\"input-tags\"\n        defaultValue=\"awesome,neasted,beast\"\n      />\n\n      <CodeBlock className=\"language-html\" title=\"Html\">\n        {`<input type=\"text\" id=\"input-tags\" value=\"awesome,neasted,beast\" />`}\n      </CodeBlock>\n      <CodeBlock className=\"language-javascript\" title=\"Javascript\">\n        {`$(\"#input-tags\").selectize({\n  delimiter: \",\",\n  persist: false,\n  create: function (input) {\n    return {\n        value: input,\n        text: input,\n    };\n  },\n});`}\n      </CodeBlock>\n    </div>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/GridPattern.jsx",
    "content": "import React from 'react';\n\nexport function GridPattern({ width, height, x, y, squares, ...props }) {\n\n  return (\n    <svg aria-hidden=\"true\" {...props}>\n      <defs>\n        <pattern\n          width={width}\n          height={height}\n          patternUnits=\"userSpaceOnUse\"\n          x={x}\n          y={y}\n        >\n          <path d={`M.5 ${height}V.5H${width}`} fill=\"none\" />\n        </pattern>\n      </defs>\n      <rect\n        width=\"100%\"\n        height=\"100%\"\n        strokeWidth={0}\n        fill={`url(#)`}\n      />\n      {squares && (\n        <svg x={x} y={y} className=\"overflow-visible\">\n          {squares.map(([x, y]) => (\n            <rect\n              strokeWidth=\"0\"\n              key={`${x}-${y}`}\n              width={width + 1}\n              height={height + 1}\n              x={x * width}\n              y={y * height}\n            />\n          ))}\n        </svg>\n      )}\n    </svg>\n  )\n}\n"
  },
  {
    "path": "docs/src/components/Hero.jsx",
    "content": "import React from 'react';\nimport clsx from 'clsx'\n\nimport { Button } from './Button'\nimport { HeroBackground } from './HeroBackground'\nimport blurCyanImage from '/img/blur-cyan.png'\nimport blurIndigoImage from '/img/blur-indigo.png'\n\nconst code = `npm install @selectize/selectize\n--\n<script>\n$(function () {\n  $(\"select\").selectize(options);\n});\n</script>`\n\nconst tabs = [\n  { name: 'selectize.js', isActive: true },\n  { name: 'package.json', isActive: false },\n  { name: 'application.js', isActive: false },\n]\n\nfunction TrafficLightsIcon(props) {\n  return (\n    <svg aria-hidden=\"true\" viewBox=\"0 0 42 10\" fill=\"none\" {...props}>\n      <circle cx=\"5\" cy=\"5\" r=\"4.5\" />\n      <circle cx=\"21\" cy=\"5\" r=\"4.5\" />\n      <circle cx=\"37\" cy=\"5\" r=\"4.5\" />\n    </svg>\n  )\n}\n\nexport function Hero() {\n  return (\n    <div className=\"overflow-hidden bg-slate-900 dark:-mb-32 dark:mt-[-4.5rem] dark:pb-32 dark:pt-[4.5rem] dark:lg:mt-[-4.75rem] dark:lg:pt-[4.75rem]\">\n      <div className=\"py-16 sm:px-2 lg:relative lg:py-20 lg:px-0\">\n        <div className=\"grid items-center grid-cols-1 px-4 mx-auto gap-y-16 gap-x-8 lg:grid-cols-2 lg:px-8 xl:gap-x-16 xl:px-12\">\n          <div className=\"relative z-10 md:text-center lg:text-left\">\n            <img\n              className=\"absolute -mb-56 opacity-50 bottom-full right-full -mr-72\"\n              src={blurCyanImage}\n              alt=\"\"\n              width={530}\n              height={530}\n            />\n            <div className=\"relative\">\n              <p className=\"inline text-5xl tracking-tight text-transparent bg-gradient-to-r from-indigo-200 via-cyan-400 to-indigo-200 bg-clip-text font-display\">\n                Selectize\n              </p>\n              <p className=\"mt-3 font-sans text-2xl tracking-tight text-slate-400\">\n                Selectize is the hybrid of a textbox and &lt;select&gt; box. It's jQuery-based and it's useful for tagging, contact lists, country selectors, and so on.\n              </p>\n              <div className=\"flex gap-4 mt-8 md:justify-center lg:justify-start\">\n                <Button href=\"/docs/intro\">Get started</Button>\n                <Button href=\"https://github.com/selectize/selectize.js\" variant=\"secondary\">View on GitHub</Button>\n              </div>\n            </div>\n          </div>\n          <div className=\"relative lg:static xl:pl-10\">\n            <div className=\"absolute inset-x-[-50vw] -top-32 -bottom-48 [mask-image:linear-gradient(transparent,white,white)] dark:[mask-image:linear-gradient(transparent,white,transparent)] lg:left-[calc(50%+14rem)] lg:right-0 lg:-top-32 lg:-bottom-32 lg:[mask-image:none] lg:dark:[mask-image:linear-gradient(white,white,transparent)]\">\n              <HeroBackground className=\"absolute top-1/2 left-1/2 -translate-y-1/2 -translate-x-1/2 lg:left-0 lg:translate-x-0 lg:translate-y-[-60%]\" />\n            </div>\n            <div className=\"relative\">\n              <img\n                className=\"absolute -top-64 -right-64\"\n                src={blurCyanImage}\n                alt=\"\"\n                width={530}\n                height={530}\n              />\n              <img\n                className=\"absolute -bottom-40 -right-44\"\n                src={blurIndigoImage}\n                alt=\"\"\n                width={567}\n                height={567}\n              />\n              <div className=\"absolute inset-0 rounded-2xl bg-gradient-to-tr from-cyan-300 via-cyan-300/70 to-indigo-300 opacity-10 blur-lg\" />\n              <div className=\"absolute inset-0 rounded-2xl bg-gradient-to-tr from-cyan-300 via-cyan-300/70 to-indigo-300 opacity-10\" />\n              <div className=\"relative rounded-2xl bg-[#0A101F]/80 ring-1 ring-white/10 backdrop-blur\">\n                <div className=\"absolute h-px -top-px left-20 right-11 bg-gradient-to-r from-cyan-300/0 via-cyan-300/70 to-cyan-300/0\" />\n                <div className=\"absolute h-px -bottom-px left-11 right-20 bg-gradient-to-r from-indigo-400/0 via-indigo-400 to-indigo-400/0\" />\n                <div className=\"pt-4 pl-4\">\n                  <TrafficLightsIcon className=\"h-2.5 w-auto stroke-slate-500/30\" />\n                  <div className=\"flex mt-4 space-x-2 text-xs\">\n                    {tabs.map((tab) => (\n                      <div\n                        key={tab.name}\n                        className={clsx(\n                          'flex h-6 rounded-full',\n                          tab.isActive\n                            ? 'bg-gradient-to-r from-cyan-400/30 via-cyan-400 to-indigo-400/30 p-px font-medium text-indigo-300'\n                            : 'text-slate-500'\n                        )}\n                      >\n                        <div\n                          className={clsx(\n                            'flex items-center rounded-full px-2.5',\n                            tab.isActive && 'bg-slate-800'\n                          )}\n                        >\n                          {tab.name}\n                        </div>\n                      </div>\n                    ))}\n                  </div>\n                  <div className=\"flex items-start px-1 mt-6 text-sm\">\n                    <div\n                      aria-hidden=\"true\"\n                      className=\"pr-4 font-mono border-r select-none border-slate-300/5 text-slate-600\"\n                    >\n                      {Array.from({\n                        length: code.split('\\n').length,\n                      }).map((_, index) => (\n                        <React.Fragment key={index}>\n                          {(index + 1).toString().padStart(2, '0')}\n                          <br />\n                        </React.Fragment>\n                      ))}\n                    </div>\n                    <pre className={clsx(\n                      'hero-code flex overflow-x-auto p-0 m-0 pb-b-4 w-full'\n                    )}>\n                      <code>\n                        {code}\n                      </code>\n                    </pre>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  )\n}\n"
  },
  {
    "path": "docs/src/components/HeroBackground.jsx",
    "content": "import React from 'react';\nexport function HeroBackground(props) {\n  let id = 'hero-background-'\n\n  return (\n    <svg\n      aria-hidden=\"true\"\n      viewBox=\"0 0 668 1069\"\n      width={668}\n      height={1069}\n      fill=\"none\"\n      {...props}\n    >\n      <defs>\n        <clipPath id={`${id}-clip-path`}>\n          <path\n            fill=\"#fff\"\n            transform=\"rotate(-180 334 534.4)\"\n            d=\"M0 0h668v1068.8H0z\"\n          />\n        </clipPath>\n      </defs>\n      <g opacity=\".4\" clipPath={`url(#${id}-clip-path)`} strokeWidth={4}>\n        <path\n          opacity=\".3\"\n          d=\"M584.5 770.4v-474M484.5 770.4v-474M384.5 770.4v-474M283.5 769.4v-474M183.5 768.4v-474M83.5 767.4v-474\"\n          stroke=\"#334155\"\n        />\n        <path\n          d=\"M83.5 221.275v6.587a50.1 50.1 0 0 0 22.309 41.686l55.581 37.054a50.102 50.102 0 0 1 22.309 41.686v6.587M83.5 716.012v6.588a50.099 50.099 0 0 0 22.309 41.685l55.581 37.054a50.102 50.102 0 0 1 22.309 41.686v6.587M183.7 584.5v6.587a50.1 50.1 0 0 0 22.31 41.686l55.581 37.054a50.097 50.097 0 0 1 22.309 41.685v6.588M384.101 277.637v6.588a50.1 50.1 0 0 0 22.309 41.685l55.581 37.054a50.1 50.1 0 0 1 22.31 41.686v6.587M384.1 770.288v6.587a50.1 50.1 0 0 1-22.309 41.686l-55.581 37.054A50.099 50.099 0 0 0 283.9 897.3v6.588\"\n          stroke=\"#334155\"\n        />\n        <path\n          d=\"M384.1 770.288v6.587a50.1 50.1 0 0 1-22.309 41.686l-55.581 37.054A50.099 50.099 0 0 0 283.9 897.3v6.588M484.3 594.937v6.587a50.1 50.1 0 0 1-22.31 41.686l-55.581 37.054A50.1 50.1 0 0 0 384.1 721.95v6.587M484.3 872.575v6.587a50.1 50.1 0 0 1-22.31 41.686l-55.581 37.054a50.098 50.098 0 0 0-22.309 41.686v6.582M584.501 663.824v39.988a50.099 50.099 0 0 1-22.31 41.685l-55.581 37.054a50.102 50.102 0 0 0-22.309 41.686v6.587M283.899 945.637v6.588a50.1 50.1 0 0 1-22.309 41.685l-55.581 37.05a50.12 50.12 0 0 0-22.31 41.69v6.59M384.1 277.637c0 19.946 12.763 37.655 31.686 43.962l137.028 45.676c18.923 6.308 31.686 24.016 31.686 43.962M183.7 463.425v30.69c0 21.564 13.799 40.709 34.257 47.529l134.457 44.819c18.922 6.307 31.686 24.016 31.686 43.962M83.5 102.288c0 19.515 13.554 36.412 32.604 40.645l235.391 52.309c19.05 4.234 32.605 21.13 32.605 40.646M83.5 463.425v-58.45M183.699 542.75V396.625M283.9 1068.8V945.637M83.5 363.225v-141.95M83.5 179.524v-77.237M83.5 60.537V0M384.1 630.425V277.637M484.301 830.824V594.937M584.5 1068.8V663.825M484.301 555.275V452.988M584.5 622.075V452.988M384.1 728.537v-56.362M384.1 1068.8v-20.88M384.1 1006.17V770.287M283.9 903.888V759.85M183.699 1066.71V891.362M83.5 1068.8V716.012M83.5 674.263V505.175\"\n          stroke=\"#334155\"\n        />\n        <circle\n          cx=\"83.5\"\n          cy=\"384.1\"\n          r=\"10.438\"\n          transform=\"rotate(-180 83.5 384.1)\"\n          fill=\"#1E293B\"\n          stroke=\"#334155\"\n        />\n        <circle\n          cx=\"83.5\"\n          cy=\"200.399\"\n          r=\"10.438\"\n          transform=\"rotate(-180 83.5 200.399)\"\n          stroke=\"#334155\"\n        />\n        <circle\n          cx=\"83.5\"\n          cy=\"81.412\"\n          r=\"10.438\"\n          transform=\"rotate(-180 83.5 81.412)\"\n          stroke=\"#334155\"\n        />\n        <circle\n          cx=\"183.699\"\n          cy=\"375.75\"\n          r=\"10.438\"\n          transform=\"rotate(-180 183.699 375.75)\"\n          fill=\"#1E293B\"\n          stroke=\"#334155\"\n        />\n        <circle\n          cx=\"183.699\"\n          cy=\"563.625\"\n          r=\"10.438\"\n          transform=\"rotate(-180 183.699 563.625)\"\n          fill=\"#1E293B\"\n          stroke=\"#334155\"\n        />\n        <circle\n          cx=\"384.1\"\n          cy=\"651.3\"\n          r=\"10.438\"\n          transform=\"rotate(-180 384.1 651.3)\"\n          fill=\"#1E293B\"\n          stroke=\"#334155\"\n        />\n        <circle\n          cx=\"484.301\"\n          cy=\"574.062\"\n          r=\"10.438\"\n          transform=\"rotate(-180 484.301 574.062)\"\n          fill=\"#0EA5E9\"\n          fillOpacity=\".42\"\n          stroke=\"#0EA5E9\"\n        />\n        <circle\n          cx=\"384.1\"\n          cy=\"749.412\"\n          r=\"10.438\"\n          transform=\"rotate(-180 384.1 749.412)\"\n          fill=\"#1E293B\"\n          stroke=\"#334155\"\n        />\n        <circle\n          cx=\"384.1\"\n          cy=\"1027.05\"\n          r=\"10.438\"\n          transform=\"rotate(-180 384.1 1027.05)\"\n          stroke=\"#334155\"\n        />\n        <circle\n          cx=\"283.9\"\n          cy=\"924.763\"\n          r=\"10.438\"\n          transform=\"rotate(-180 283.9 924.763)\"\n          stroke=\"#334155\"\n        />\n        <circle\n          cx=\"183.699\"\n          cy=\"870.487\"\n          r=\"10.438\"\n          transform=\"rotate(-180 183.699 870.487)\"\n          stroke=\"#334155\"\n        />\n        <circle\n          cx=\"283.9\"\n          cy=\"738.975\"\n          r=\"10.438\"\n          transform=\"rotate(-180 283.9 738.975)\"\n          fill=\"#1E293B\"\n          stroke=\"#334155\"\n        />\n        <circle\n          cx=\"83.5\"\n          cy=\"695.138\"\n          r=\"10.438\"\n          transform=\"rotate(-180 83.5 695.138)\"\n          fill=\"#1E293B\"\n          stroke=\"#334155\"\n        />\n        <circle\n          cx=\"83.5\"\n          cy=\"484.3\"\n          r=\"10.438\"\n          transform=\"rotate(-180 83.5 484.3)\"\n          fill=\"#0EA5E9\"\n          fillOpacity=\".42\"\n          stroke=\"#0EA5E9\"\n        />\n        <circle\n          cx=\"484.301\"\n          cy=\"432.112\"\n          r=\"10.438\"\n          transform=\"rotate(-180 484.301 432.112)\"\n          fill=\"#1E293B\"\n          stroke=\"#334155\"\n        />\n        <circle\n          cx=\"584.5\"\n          cy=\"432.112\"\n          r=\"10.438\"\n          transform=\"rotate(-180 584.5 432.112)\"\n          fill=\"#1E293B\"\n          stroke=\"#334155\"\n        />\n        <circle\n          cx=\"584.5\"\n          cy=\"642.95\"\n          r=\"10.438\"\n          transform=\"rotate(-180 584.5 642.95)\"\n          fill=\"#1E293B\"\n          stroke=\"#334155\"\n        />\n        <circle\n          cx=\"484.301\"\n          cy=\"851.699\"\n          r=\"10.438\"\n          transform=\"rotate(-180 484.301 851.699)\"\n          stroke=\"#334155\"\n        />\n        <circle\n          cx=\"384.1\"\n          cy=\"256.763\"\n          r=\"10.438\"\n          transform=\"rotate(-180 384.1 256.763)\"\n          stroke=\"#334155\"\n        />\n      </g>\n    </svg>\n  )\n}\n"
  },
  {
    "path": "docs/src/components/HomepageFeatures/index.js",
    "content": "import React from 'react';\nimport clsx from 'clsx';\nimport { motion, useMotionTemplate, useMotionValue } from 'framer-motion'\nimport { GridPattern } from '../GridPattern'\nimport { PagePattern } from '../PagePattern'\nimport { Prose } from '../Prose'\n\nconst FeatureList = [\n  {\n    href: '',\n    name: 'Easy to use and customize',\n    description:\n      'Selectize Includes default styles as well as packaged LESS and SCSS sources available for all Bootstrap versions.',\n    icon: 'fa-pencil-paintbrush',\n    pattern: {\n      y: 16,\n      squares: [\n        [0, 1],\n        [1, 3],\n      ],\n    },\n  },\n  {\n    href: '',\n    name: 'Smart Ranking / Multi-Property Searching & Sorting',\n    description:\n      'Want to search an item\\'s title <em>and</em> description? No problem. You can even override the scoring function used for sorting if you want to get crazy.',\n    icon: 'fa-rocket',\n    pattern: {\n      y: -6,\n      squares: [\n        [-1, 2],\n        [1, 3],\n      ],\n    },\n  },\n  {\n    href: '',\n    name: 'Clean API & Extensible code',\n    description:\n      'Interface & make addons like a boss with a powerfull plugin system.',\n    icon: 'fa-laptop-code',\n    pattern: {\n      y: 32,\n      squares: [\n        [0, 2],\n        [1, 4],\n      ],\n    },\n  },\n  {\n    href: '',\n    name: 'Remote Data Loading',\n    description:\n      'For when you have thousands of options and want them provided by the server as the user types.',\n    icon: 'fa-cloud-upload',\n    pattern: {\n      y: 120,\n      squares: [\n        [0, 1],\n        [1, 2],\n        [3, 1]\n      ],\n    },\n  },\n  {\n    href: '',\n    name: 'Keyboard Navigation',\n    description:\n      'Order matters sometimes. Use the <kbd>left</kbd> and <kbd>right</kbd> arrow keys to move between items.',\n    icon: 'fa-keyboard',\n    pattern: {\n      y: 6,\n      squares: [\n        [-1, 2],\n        [1, 3],\n      ],\n    },\n  },\n  {\n    href: '',\n    name: 'Right-to-Left + Díåcritîçs supported',\n    description:\n      'Great for international environments.',\n    icon: 'fa-language',\n    pattern: {\n      y: 16,\n      squares: [\n        [0, 1],\n        [1, 3],\n      ],\n    },\n  },\n  {\n    href: '',\n    name: 'Item Creation',\n    description:\n      'Allow users to create items on the fly (and it\\'s async friendly; the control locks until you invoke a callback)',\n    icon: 'fa-octagon-plus',\n    pattern: {\n      y: 8,\n      squares: [\n        [-1, 2],\n        [1, 3],\n      ],\n    },\n  },\n  {\n    href: '',\n    name: 'Select & Delete multiple items at once',\n    description:\n      'Hold down <kbd>option</kbd> on Mac or <kbd>ctrl</kbd> on Windows to select more than one item to delete.',\n    icon: 'fa-hand-pointer',\n    pattern: {\n      y: 12,\n      squares: [\n        [0, 2],\n        [1, 4],\n      ],\n    },\n  }\n];\n\nfunction Feature({ feature }) {\n  let mouseX = useMotionValue(0)\n  let mouseY = useMotionValue(0)\n\n  function onMouseMove({ currentTarget, clientX, clientY }) {\n    let { left, top } = currentTarget.getBoundingClientRect()\n    mouseX.set(clientX - left)\n    mouseY.set(clientY - top)\n  }\n\n  return (\n    <div\n      onMouseMove={onMouseMove}\n      className={clsx('group relative flex',\n        'rounded-2xl',\n        'bg-zinc-50',\n        'transition-shadow shadow-lg hover:shadow-lg hover:shadow-zinc-900/5'\n      )}>\n      <FeaturePattern {...feature.pattern} mouseX={mouseX} mouseY={mouseY} />\n      <div className=\"absolute inset-0 rounded-2xl ring-1 ring-inset\" />\n      <div className=\"relative px-4 pt-16 pb-4 rounded-2xl\">\n        <div className=\"float-left px-4 pb-4 text--center\">\n          <FeatureIcon icon={feature.icon} />\n        </div>\n        <Prose>\n          <h3 className='text-xl text-transparent font-display bg-gradient-to-r from-cyan-500 to-indigo-800 bg-clip-text'>{feature.name}</h3>\n          <p className='pt-5 font-sans'>{feature.description}</p>\n        </Prose>\n      </div>\n    </div>\n  );\n}\n\nfunction FeatureIcon({ icon }) {\n  return (\n    <div className=\"flex h-12 w-12 items-center justify-center rounded-full bg-zinc-900/5 backdrop-blur-[2px] transition duration-300\">\n      <span className={clsx('icon', icon,\n        'fa-duotone',\n        'w-7 h-7 transition-colors duration-300 fill-zinc-700/10 stroke-zinc-700 group-hover:stroke-zinc-900',\n        'text-sky-500/75')}></span>\n    </div>\n  )\n}\n\nfunction FeaturePattern({ mouseX, mouseY, ...gridProps }) {\n  let maskImage = useMotionTemplate`radial-gradient(180px at ${mouseX}px ${mouseY}px, white, transparent)`\n  let style = { maskImage, WebkitMaskImage: maskImage }\n\n  return (\n    <div className=\"pointer-events-none\">\n      <div className=\"absolute inset-0 rounded-2xl transition duration-300 [mask-image:linear-gradient(white,transparent)] group-hover:opacity-50\">\n        <GridPattern\n          width={72}\n          height={56}\n          x=\"50%\"\n          className=\"absolute inset-x-0 inset-y-[-30%] h-[160%] w-full skew-y-[-18deg] fill-black/[0.02] stroke-black/5\"\n          {...gridProps}\n        />\n      </div>\n      <motion.div\n        className=\"absolute inset-0 rounded-2xl bg-gradient-to-r from-[#d7e6ed] to-[#e0e8f6] opacity-0 transition duration-300 group-hover:opacity-100\"\n        style={style}\n      />\n      <motion.div\n        className=\"absolute inset-0 transition duration-300 opacity-0 rounded-2xl mix-blend-overlay group-hover:opacity-100\"\n        style={style}\n      >\n        <GridPattern\n          width={72}\n          height={56}\n          x=\"50%\"\n          className=\"absolute inset-x-0 inset-y-[-30%] h-[160%] w-full skew-y-[-18deg] fill-black/50 stroke-black/70\"\n          {...gridProps}\n        />\n      </motion.div>\n    </div>\n  )\n}\n\nexport default function HomepageFeatures() {\n  return (\n    <section className={clsx('my-0 p-8 w-full max-w-none relative')}>\n      <PagePattern />\n      <div className=\"w-full text-center\">\n        <h2 className='text-4xl text-transparent font-display bg-gradient-to-t from-cyan-500 to-indigo-800 bg-clip-text'>\n          Features\n        </h2>\n      </div>\n      <div className={clsx('not-prose grid grid-cols-1 gap-8 border-t border-zinc-900/5 pt-10 sm:grid-cols-2 xl:grid-cols-4')}>\n        {FeatureList.map((props, idx) => (\n          <Feature key={idx} feature={props} />\n        ))}\n      </div>\n    </section>\n  );\n}\n"
  },
  {
    "path": "docs/src/components/PagePattern.jsx",
    "content": "import React from 'react';\nimport { GridPattern } from './GridPattern'\n\nexport function PagePattern() {\n  return (\n    <div className=\"absolute inset-0 mx-0 overflow-hidden -z-10 max-w-none\">\n      <div className=\"absolute left-1/2 top-0 ml-[-38rem] h-[25rem] w-[81.25rem]\">\n        <div className=\"absolute inset-0 bg-gradient-to-r from-[#366bb4] to-[#8eb6f1] opacity-40 [mask-image:radial-gradient(farthest-side_at_top,white,transparent)]\">\n          <GridPattern\n            width={72}\n            height={64}\n            x=\"-12\"\n            y=\"4\"\n            squares={[\n              [4, 3],\n              [2, 1],\n              [7, 3],\n              [10, 6],\n              [14, 6],\n            ]}\n            className=\"absolute inset-x-0 inset-y-[-50%] h-[200%] w-full skew-y-[-18deg] fill-black/40 stroke-black/50 mix-blend-overlay\"\n          />\n        </div>\n        <svg\n          viewBox=\"0 0 1113 440\"\n          aria-hidden=\"true\"\n          className=\"absolute top-0 left-1/2 ml-[-19rem] w-[69.5625rem] fill-white blur-[26px]\"\n        >\n          <path d=\"M.016 439.5s-9.5-300 434-300S882.516 20 882.516 20V0h230.004v439.5H.016Z\" />\n        </svg>\n      </div>\n    </div>\n  )\n}\n"
  },
  {
    "path": "docs/src/components/Prose.jsx",
    "content": "import React from 'react';\nimport clsx from 'clsx'\n\nexport function Prose({ as: Component = 'div', className, ...props }) {\n  return (\n    <Component\n      className={clsx(className, 'content-trap')}\n      {...props}\n    />\n  )\n}\n"
  },
  {
    "path": "docs/src/components/Theming/ThemeChanger.js",
    "content": "\nimport React, { useEffect } from \"react\";\nimport clsx from \"clsx\";\nimport Head from '@docusaurus/Head';\n\nexport default function ThemeChanger() {\n  const themes = [\n    { src: \"default\", label: \"Selectize\", icon: \"fak fa-selectize\" },\n    { src: \"bootstrap2\", label: \"Bootstrap 2\", icon: \"fa-duotone fa-square-b\" },\n    { src: \"bootstrap3\", label: \"Bootstrap 3\", icon: \"fa-duotone fa-square-b\" },\n    { src: \"bootstrap4\", label: \"Bootstrap 4\", icon: \"fa-duotone fa-square-b\" },\n    { src: \"bootstrap5\", label: \"Bootstrap 5\", icon: \"fa-duotone fa-square-b\" },\n  ];\n  useEffect(() => {\n    const $theme_links = $(\".theme-changer button\");\n\n    $theme_links.off(\"click\").on(\"click\", function () {\n      if ($(this).hasClass(\"active\")) return;\n\n      const theme = $(this).data(\"theme\");\n\n      $theme_links.removeClass(\"active\");\n      $(this).addClass(\"active\");\n      $(\"link[data-theme]\").remove();\n\n      const $linkTheme = $(\"link[data-theme=\" + theme + \"]\");\n\n      if ($linkTheme.length === 0) {\n        $(\"head\").append(\n          `<link data-theme=\"${theme}\" href=\"/css/selectize.${theme}.css\" rel=\"stylesheet\">`\n        );\n      }\n    });\n  });\n\n  return (\n    <>\n      <Head>\n        <link rel='stylesheet' href=\"/css/selectize.css\" />\n        <link rel='stylesheet' data-theme='default' href=\"/css/selectize.default.css\" />\n      </Head>\n      <span className={clsx('theme-changer', 'isolate inline-flex rounded-md shadow-sm mb-6')}>\n        {themes.map((theme, index) => {\n          const active = index === 0 ? \"active\" : \"\";\n          return (\n            <button\n              className={clsx(active, \"relative inline-flex items-center border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50 focus:z-10 focus:border-indigo-500 focus:outline-none focus:ring-1 focus:ring-indigo-500\")}\n              key={index}\n              type=\"button\"\n              data-theme={theme.src}\n            >\n              <span className={clsx(theme.icon, 'pr-2')}></span>{theme.label}\n            </button>\n          );\n        })}\n      </span>\n    </>\n  );\n}\n"
  },
  {
    "path": "docs/src/css/custom.css",
    "content": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n/* You can override the default Infima variables here. */\n:root {\n  --ifm-color-primary: theme(\"colors.sky.500\");\n  --ifm-color-primary-dark: theme(\"colors.sky.700\")\n  --ifm-color-primary-darker: theme(\"colors.sky.800\");\n  --ifm-color-primary-darkest: theme(\"colors.sky.900\");\n  --ifm-color-primary-light: theme(\"colors.sky.400\");\n  --ifm-color-primary-lighter: theme(\"colors.sky.300\");\n  --ifm-color-primary-lightest: theme(\"colors.sky.200\");\n  --ifm-code-font-size: 90%;\n  --ifm-font-size-base: 105%;\n  --docusaurus-highlighted-code-line-bg: theme(\"colors.slate.200\");\n  --ifm-heading-font-family: \"Lexend\", sans-serif;\n  --ifm-font-family-base: \"Visby CF\", sans-serif;\n  --ifm-font-family-monospace: \"CaskaydiaCove Nerd Font Mono\", sans-serif;\n  --ifm-breadcrumb-color-active: var(--ifm-color-primary-darkest);\n  --ifm-link-color: var(--ifm-color-primary);\n  --ifm-link-hover-color: var(--ifm-color-primary-darkest);\n}\n\n/* For readability concerns, you should choose a lighter palette in dark mode. */\n[data-theme=\"dark\"] {\n  --ifm-color-primary: theme(\"colors.sky.500\");\n  --ifm-color-primary-dark: theme(\"colors.sky.700\")\n  --ifm-color-primary-darker: theme(\"colors.sky.800\");\n  --ifm-color-primary-darkest: theme(\"colors.sky.900\");\n  --ifm-color-primary-light: theme(\"colors.sky.400\");\n  --ifm-color-primary-lighter: theme(\"colors.sky.300\");\n  --ifm-color-primary-lightest: theme(\"colors.sky.200\");\n  --docusaurus-highlighted-code-line-bg: theme(\"colors.slate.800\");\n}\n\n/* Fonts */\n@font-face {\n  font-family: \"Lexend\";\n  font-style: normal;\n  font-weight: 100 900;\n  font-display: swap;\n  src: url(../fonts/lexend.woff2) format(\"woff2\");\n}\n\n@font-face {\n  font-family: 'Visby CF';\n  src: url('../fonts/VisbyCF-BoldOblique.woff2') format('woff2');\n  font-weight: bold;\n  font-style: italic;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Visby CF';\n  src: url('../fonts/VisbyCF-Bold.woff2') format('woff2');\n  font-weight: bold;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Visby CF';\n  src: url('../fonts/VisbyCF-HeavyOblique.woff2') format('woff2');\n  font-weight: 900;\n  font-style: italic;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Visby CF';\n  src: url('../fonts/VisbyCF-MediumOblique.woff2') format('woff2');\n  font-weight: 500;\n  font-style: italic;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Visby CF';\n  src: url('../fonts/VisbyCF-RegularOblique.woff2') format('woff2');\n  font-weight: normal;\n  font-style: italic;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Visby CF Demi';\n  src: url('../fonts/VisbyCF-DemiBold.woff2') format('woff2');\n  font-weight: 600;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Visby CF Extra';\n  src: url('../fonts/VisbyCF-ExtraBoldOblique.woff2') format('woff2');\n  font-weight: bold;\n  font-style: italic;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Visby CF';\n  src: url('../fonts/VisbyCF-Light.woff2') format('woff2');\n  font-weight: 300;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Visby CF';\n  src: url('../fonts/VisbyCF-Medium.woff2') format('woff2');\n  font-weight: 500;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Visby CF';\n  src: url('../fonts/VisbyCF-LightOblique.woff2') format('woff2');\n  font-weight: 300;\n  font-style: italic;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Visby CF Demi';\n  src: url('../fonts/VisbyCF-DemiBoldOblique.woff2') format('woff2');\n  font-weight: 600;\n  font-style: italic;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Visby CF';\n  src: url('../fonts/VisbyCF-Thin.woff2') format('woff2');\n  font-weight: 100;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Visby CF Extra';\n  src: url('../fonts/VisbyCF-ExtraBold.woff2') format('woff2');\n  font-weight: bold;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Visby CF';\n  src: url('../fonts/VisbyCF-Regular.woff2') format('woff2');\n  font-weight: normal;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Visby CF';\n  src: url('../fonts/VisbyCF-Heavy.woff2') format('woff2');\n  font-weight: 900;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'Visby CF';\n  src: url('../fonts/VisbyCF-ThinOblique.woff2') format('woff2');\n  font-weight: 100;\n  font-style: italic;\n  font-display: swap;\n}\n\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-Italic.otf') format('otf');\n  font-weight: normal;\n  font-style: italic;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font Mono';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-MonoItalic.otf') format('otf');\n  font-weight: normal;\n  font-style: italic;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font Mono';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-MonoRegular.otf') format('otf');\n  font-weight: normal;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-LightItalic.otf') format('otf');\n  font-weight: 300;\n  font-style: italic;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-Regular.otf') format('otf');\n  font-weight: normal;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font Mono SemiLight';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-MonoSemiLightItalic.otf') format('otf');\n  font-weight: 300;\n  font-style: italic;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font Mono SemiLight';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-MonoSemiLight.otf') format('otf');\n  font-weight: 300;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font SemiLight';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-SemiLight.otf') format('otf');\n  font-weight: 300;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font SemiLight';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-SemiLightItalic.otf') format('otf');\n  font-weight: 300;\n  font-style: italic;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-BoldItalic.otf') format('otf');\n  font-weight: bold;\n  font-style: italic;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-Bold.otf') format('otf');\n  font-weight: bold;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-Light.otf') format('otf');\n  font-weight: 300;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font Mono';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-MonoBoldItalic.otf') format('otf');\n  font-weight: bold;\n  font-style: italic;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font Mono';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-MonoExtraLightItalic.otf') format('otf');\n  font-weight: 200;\n  font-style: italic;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font Mono';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-MonoBold.otf') format('otf');\n  font-weight: bold;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font Mono';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-MonoExtraLight.otf') format('otf');\n  font-weight: 200;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font Mono';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-MonoLightItalic.otf') format('otf');\n  font-weight: 300;\n  font-style: italic;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-ExtraLightItalic.otf') format('otf');\n  font-weight: 200;\n  font-style: italic;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font Mono';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-MonoLight.otf') format('otf');\n  font-weight: 300;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-ExtraLight.otf') format('otf');\n  font-weight: 200;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-SemiBoldItalic.otf') format('otf');\n  font-weight: 600;\n  font-style: italic;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font Mono';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-MonoSemiBold.otf') format('otf');\n  font-weight: 600;\n  font-style: normal;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font Mono';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-MonoSemiBoldItalic.otf') format('otf');\n  font-weight: 600;\n  font-style: italic;\n  font-display: swap;\n}\n\n@font-face {\n  font-family: 'CaskaydiaCove Nerd Font';\n  src: url('../fonts/CaskaydiaCoveNerdFontComplete-SemiBold.otf') format('otf');\n  font-weight: 600;\n  font-style: normal;\n  font-display: swap;\n}\n\n/* Utility Overrides */\npre[class*=\"hero-code\"] {\n  background-color: theme(\"colors.slate.800\");\n  color: theme(\"colors.slate.200\");\n}\n\n\n"
  },
  {
    "path": "docs/src/fonts/Caskaydia Cove.LICENSE.txt",
    "content": "Copyright (c) 2019 - Present, Microsoft Corporation,\nwith Reserved Font Name Cascadia Code.\n\nThis Font Software is licensed under the SIL Open Font License, Version 1.1.\nThis license is copied below, and is also available with a FAQ at:\nhttp://scripts.sil.org/OFL\n\n\n-----------------------------------------------------------\nSIL OPEN FONT LICENSE Version 1.1 - 26 February 2007\n-----------------------------------------------------------\n\nPREAMBLE\nThe goals of the Open Font License (OFL) are to stimulate worldwide\ndevelopment of collaborative font projects, to support the font creation\nefforts of academic and linguistic communities, and to provide a free and\nopen framework in which fonts may be shared and improved in partnership\nwith others.\n\nThe OFL allows the licensed fonts to be used, studied, modified and\nredistributed freely as long as they are not sold by themselves. The\nfonts, including any derivative works, can be bundled, embedded, \nredistributed and/or sold with any software provided that any reserved\nnames are not used by derivative works. The fonts and derivatives,\nhowever, cannot be released under any other type of license. The\nrequirement for fonts to remain under this license does not apply\nto any document created using the fonts or their derivatives.\n\nDEFINITIONS\n\"Font Software\" refers to the set of files released by the Copyright\nHolder(s) under this license and clearly marked as such. This may\ninclude source files, build scripts and documentation.\n\n\"Reserved Font Name\" refers to any names specified as such after the\ncopyright statement(s).\n\n\"Original Version\" refers to the collection of Font Software components as\ndistributed by the Copyright Holder(s).\n\n\"Modified Version\" refers to any derivative made by adding to, deleting,\nor substituting -- in part or in whole -- any of the components of the\nOriginal Version, by changing formats or by porting the Font Software to a\nnew environment.\n\n\"Author\" refers to any designer, engineer, programmer, technical\nwriter or other person who contributed to the Font Software.\n\nPERMISSION & CONDITIONS\nPermission is hereby granted, free of charge, to any person obtaining\na copy of the Font Software, to use, study, copy, merge, embed, modify,\nredistribute, and sell modified and unmodified copies of the Font\nSoftware, subject to the following conditions:\n\n1) Neither the Font Software nor any of its individual components,\nin Original or Modified Versions, may be sold by itself.\n\n2) Original or Modified Versions of the Font Software may be bundled,\nredistributed and/or sold with any software, provided that each copy\ncontains the above copyright notice and this license. These can be\nincluded either as stand-alone text files, human-readable headers or\nin the appropriate machine-readable metadata fields within text or\nbinary files as long as those fields can be easily viewed by the user.\n\n3) No Modified Version of the Font Software may use the Reserved Font\nName(s) unless explicit written permission is granted by the corresponding\nCopyright Holder. This restriction only applies to the primary font name as\npresented to the users.\n\n4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font\nSoftware shall not be used to promote, endorse or advertise any\nModified Version, except to acknowledge the contribution(s) of the\nCopyright Holder(s) and the Author(s) or with their explicit written\npermission.\n\n5) The Font Software, modified or unmodified, in part or in whole,\nmust be distributed entirely under this license, and must not be\ndistributed under any other license. The requirement for fonts to\nremain under this license does not apply to any document created\nusing the Font Software.\n\nTERMINATION\nThis license becomes null and void if any of the above conditions are\nnot met.\n\nDISCLAIMER\nTHE FONT SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\nOF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE\nCOPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nINCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL\nDAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM\nOTHER DEALINGS IN THE FONT SOFTWARE.\n"
  },
  {
    "path": "docs/src/fonts/VisbyCF-License.txt",
    "content": "LICENSE CERTIFICATE: Envato Elements Item\n=================================================\nThis license certificate documents a license to use the item listed below\non a non-exclusive, commercial, worldwide and revokable basis, for\none Single Use for this Registered Project.\n\nItem Title:                      Visby CF | geometric font family\nItem URL:                        https://elements.envato.com/visby-cf-geometric-font-family-G4EH78\nItem ID:                         G4EH78\nAuthor Username:                 connary\nLicensee:                        Chris Adams\nRegistered Project Name:         selectize\nLicense Date:                    December 8th, 2022\nItem License Code:               LCNFBX72GV\n\nThe license you hold for this item is only valid if you complete your End\nProduct while your subscription is active. Then the license continues\nfor the life of the End Product (even if your subscription ends).\n\nFor any queries related to this document or license please contact\nEnvato Support via https://help.elements.envato.com/hc/en-us/requests/new\n\nEnvato Elements Pty Ltd (ABN 87 613 824 258)\nPO Box 16122, Collins St West, VIC 8007, Australia\n==== THIS IS NOT A TAX RECEIPT OR INVOICE ====\n"
  },
  {
    "path": "docs/src/fonts/lexend.txt",
    "content": "Copyright 2018 The Lexend Project Authors (https://github.com/googlefonts/lexend), with Reserved Font Name “RevReading Lexend”.\n\nThis Font Software is licensed under the SIL Open Font License, Version 1.1.\nThis license is copied below, and is also available with a FAQ at:\nhttps://scripts.sil.org/OFL\n\n\n-----------------------------------------------------------\nSIL OPEN FONT LICENSE Version 1.1 - 26 February 2007\n-----------------------------------------------------------\n\nPREAMBLE\nThe goals of the Open Font License (OFL) are to stimulate worldwide\ndevelopment of collaborative font projects, to support the font creation\nefforts of academic and linguistic communities, and to provide a free and\nopen framework in which fonts may be shared and improved in partnership\nwith others.\n\nThe OFL allows the licensed fonts to be used, studied, modified and\nredistributed freely as long as they are not sold by themselves. The\nfonts, including any derivative works, can be bundled, embedded,\nredistributed and/or sold with any software provided that any reserved\nnames are not used by derivative works. The fonts and derivatives,\nhowever, cannot be released under any other type of license. The\nrequirement for fonts to remain under this license does not apply\nto any document created using the fonts or their derivatives.\n\nDEFINITIONS\n\"Font Software\" refers to the set of files released by the Copyright\nHolder(s) under this license and clearly marked as such. This may\ninclude source files, build scripts and documentation.\n\n\"Reserved Font Name\" refers to any names specified as such after the\ncopyright statement(s).\n\n\"Original Version\" refers to the collection of Font Software components as\ndistributed by the Copyright Holder(s).\n\n\"Modified Version\" refers to any derivative made by adding to, deleting,\nor substituting -- in part or in whole -- any of the components of the\nOriginal Version, by changing formats or by porting the Font Software to a\nnew environment.\n\n\"Author\" refers to any designer, engineer, programmer, technical\nwriter or other person who contributed to the Font Software.\n\nPERMISSION & CONDITIONS\nPermission is hereby granted, free of charge, to any person obtaining\na copy of the Font Software, to use, study, copy, merge, embed, modify,\nredistribute, and sell modified and unmodified copies of the Font\nSoftware, subject to the following conditions:\n\n1) Neither the Font Software nor any of its individual components,\nin Original or Modified Versions, may be sold by itself.\n\n2) Original or Modified Versions of the Font Software may be bundled,\nredistributed and/or sold with any software, provided that each copy\ncontains the above copyright notice and this license. These can be\nincluded either as stand-alone text files, human-readable headers or\nin the appropriate machine-readable metadata fields within text or\nbinary files as long as those fields can be easily viewed by the user.\n\n3) No Modified Version of the Font Software may use the Reserved Font\nName(s) unless explicit written permission is granted by the corresponding\nCopyright Holder. This restriction only applies to the primary font name as\npresented to the users.\n\n4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font\nSoftware shall not be used to promote, endorse or advertise any\nModified Version, except to acknowledge the contribution(s) of the\nCopyright Holder(s) and the Author(s) or with their explicit written\npermission.\n\n5) The Font Software, modified or unmodified, in part or in whole,\nmust be distributed entirely under this license, and must not be\ndistributed under any other license. The requirement for fonts to\nremain under this license does not apply to any document created\nusing the Font Software.\n\nTERMINATION\nThis license becomes null and void if any of the above conditions are\nnot met.\n\nDISCLAIMER\nTHE FONT SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\nOF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE\nCOPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nINCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL\nDAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM\nOTHER DEALINGS IN THE FONT SOFTWARE.\n"
  },
  {
    "path": "docs/src/pages/code-of-conduct.mdx",
    "content": "---\ntitle: Code of conduct\n---\n\n# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe, as members, contributors, and leaders, pledge to make participation in our\ncommunity a harassment-free experience for everyone, regardless of age, body\nsize, visible or invisible disability, ethnicity, sex characteristics, gender\nidentity and expression, level of experience, education, socio-economic status,\nnationality, personal appearance, race, religion, or sexual identity\nand orientation.\n\nWe pledge to act and interact in ways that contribute to an open, welcoming,\ndiverse, inclusive, and healthy community.\n\n## Our Standards\n\nExamples of behavior that contributes to a positive environment for our\ncommunity includes:\n\n- Demonstrating empathy and kindness toward other people\n- Being respectful of differing opinions, viewpoints, and experiences\n- Giving and gracefully accepting constructive feedback\n- Accepting responsibility and apologizing to those affected by our mistakes,\n  and learning from the experience\n- Focusing on what is best not just for us as individuals; but for the\n  overall community\n\nExamples of unacceptable behavior include:\n\n- The use of sexualized language or imagery, and sexual attention or\n  advances of any kind\n- Trolling, insulting or derogatory comments, and personal or political attacks\n- Public or private harassment\n- Publishing others' private information, such as a physical or email\n  address without their explicit permission\n- Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Enforcement Responsibilities\n\nCommunity leaders are responsible for clarifying and enforcing our standards of\nacceptable behavior and will take appropriate and fair corrective action in\nresponse to any behavior that they deem inappropriate, threatening, offensive,\nor harmful.\n\nCommunity leaders have the right and responsibility to remove, edit, or reject\ncomments, commits, code, wiki edits, issues, and other contributions that are\nnot aligned to this Code of Conduct, and will communicate reasons for moderation\ndecisions when appropriate.\n\n## Scope\n\nThis Code of Conduct applies within all community spaces and also applies when\nan individual is officially representing the community in public spaces.\nExamples of representing our community include using an official e-mail address,\nposting via an official social media account or acting as an appointed\nrepresentative at an online or offline event.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported to the community leaders responsible for enforcement at\nhttps://keybase.io/team/selectize.\nAll complaints will be reviewed and investigated promptly and fairly.\n\nAll community leaders are obligated to respect the privacy and security of the\nreporter of any incident.\n\n## Enforcement Guidelines\n\nCommunity leaders will follow these Community Impact Guidelines in determining\nthe consequences for any action they deem in violation of this Code of Conduct:\n\n### 1. Correction\n\n**Community Impact**: Use of inappropriate language or other behavior deemed\nunprofessional or unwelcome in the community.\n\n**Consequence**: A private, written warning from community leaders, providing\nclarity around the nature of the violation and an explanation of why the\nbehavior was inappropriate. A public apology may be requested.\n\n### 2. Warning\n\n**Community Impact**: A violation through a single incident or series\nof actions.\n\n**Consequence**: A warning with consequences for continued behavior. No\ninteraction with the people involved, including unsolicited interaction with\nthose enforcing the Code of Conduct, for a specified period of time. This\nincludes avoiding interactions in community spaces as well as external channels\nlike social media. Violating these terms may lead to a temporary or\npermanent ban.\n\n### 3. Temporary Ban\n\n**Community Impact**: A serious violation of community standards, including\nsustained inappropriate behavior.\n\n**Consequence**: A temporary ban from any sort of interaction or public\ncommunication with the community for a specified period of time. No public or\nprivate interaction with the people involved, including unsolicited interaction\nwith those enforcing the Code of Conduct, is allowed during this period.\nViolating these terms may lead to a permanent ban.\n\n### 4. Permanent Ban\n\n**Community Impact**: Demonstrating a pattern of violation of community\nstandards, including sustained inappropriate behavior, harassment of an\nindividual, or aggression toward or disparagement of classes of individuals.\n\n**Consequence**: A permanent ban from any sort of public interaction within\nthe community.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage],\nversion 2.0, available at\nhttps://www.contributor-covenant.org/version/2/0/code_of_conduct.html.\n\nCommunity Impact Guidelines were inspired by [Mozilla's code of conduct\nenforcement ladder](https://github.com/mozilla/diversity).\n\n[homepage]: https://www.contributor-covenant.org\n\nFor answers to common questions about this code of conduct, see the FAQ at\nhttps://www.contributor-covenant.org/faq. Translations are available at\nhttps://www.contributor-covenant.org/translations.\n"
  },
  {
    "path": "docs/src/pages/index.js",
    "content": "import React from 'react';\nimport Layout from '@theme/Layout';\nimport HomepageFeatures from '@site/src/components/HomepageFeatures';\n\nimport { Hero } from '../components/Hero';\n\nexport default function Home() {\n  return (\n    <Layout\n      title={``}\n      description=\"Documentation and demos for the selectize.js library\">\n      <Hero />\n      <main>\n        <HomepageFeatures />\n      </main>\n    </Layout>\n  );\n}\n"
  },
  {
    "path": "docs/src/pages/license.mdx",
    "content": "---\ntitle: License\ndescription: Apache2 License and guidelines for using the project\n---\n\nimport Tabs from \"@theme/Tabs\";\nimport TabItem from \"@theme/TabItem\";\nimport { Prose } from \"../components/Prose\";\n\n# Selectize License\n\nSelectize is licensed under the Apache License, Version 2.0. The full license text is included in the LICENSE file.\n\n# Usage Guidelines\n\nSelectize is free to use for any purpose, including commercial projects. However, if you use Selectize in a project, please consider the following guidelines:\n\n- If you use Selectize in a commercial project, please consider making a donation to the project. Donations help fund the development of new features and bug fixes.\n- If you use Selectize in a commercial project, please consider becoming a sponsor. Sponsors receive additional benefits, including priority support.\n\n:::tip License FAQ\n\n<Tabs>\n  <TabItem value=\"can\" label=\"Things you CAN do\">\n    <ul>\n      <li>Use Selectize in any project, including commercial projects.</li>\n      <li>Modify Selectize to suit your needs.</li>\n      <li>\n        Use Selectize in a project that is distributed under a different\n        license, or a proprietary license.\n      </li>\n      <li>Use Selectize for your own private use</li>\n    </ul>\n  </TabItem>\n  <TabItem value=\"cannot\" label=\"Things you CANNOT do\">\n    <ul>\n      <li>Use the Selectize name in any trademarks.</li>\n      <li>\n        Use the Selectize name in any way that implies endorsement by the\n        Selectize project.\n      </li>\n      <li>\n        Hold the Selectize project or its contributors liable for any damages.\n      </li>\n    </ul>\n  </TabItem>\n  <TabItem value=\"must\" label=\"Things you MUST do\">\n    <ul>\n      <li>Include the full license text in any distribution of Selectize.</li>\n      <li>Include the full copyright notices.</li>\n      <li>State any changes that you have made to the source code.</li>\n    </ul>\n  </TabItem>\n</Tabs>\n:::\n\n```\n\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n1.  Definitions.\n\n    \"License\" shall mean the terms and conditions for use, reproduction,\n    and distribution as defined by Sections 1 through 9 of this document.\n\n    \"Licensor\" shall mean the copyright owner or entity authorized by\n    the copyright owner that is granting the License.\n\n    \"Legal Entity\" shall mean the union of the acting entity and all\n    other entities that control, are controlled by, or are under common\n    control with that entity. For the purposes of this definition,\n    \"control\" means (i) the power, direct or indirect, to cause the\n    direction or management of such entity, whether by contract or\n    otherwise, or (ii) ownership of fifty percent (50%) or more of the\n    outstanding shares, or (iii) beneficial ownership of such entity.\n\n    \"You\" (or \"Your\") shall mean an individual or Legal Entity\n    exercising permissions granted by this License.\n\n    \"Source\" form shall mean the preferred form for making modifications,\n    including but not limited to software source code, documentation\n    source, and configuration files.\n\n    \"Object\" form shall mean any form resulting from mechanical\n    transformation or translation of a Source form, including but\n    not limited to compiled object code, generated documentation,\n    and conversions to other media types.\n\n    \"Work\" shall mean the work of authorship, whether in Source or\n    Object form, made available under the License, as indicated by a\n    copyright notice that is included in or attached to the work\n    (an example is provided in the Appendix below).\n\n    \"Derivative Works\" shall mean any work, whether in Source or Object\n    form, that is based on (or derived from) the Work and for which the\n    editorial revisions, annotations, elaborations, or other modifications\n    represent, as a whole, an original work of authorship. For the purposes\n    of this License, Derivative Works shall not include works that remain\n    separable from, or merely link (or bind by name) to the interfaces of,\n    the Work and Derivative Works thereof.\n\n    \"Contribution\" shall mean any work of authorship, including\n    the original version of the Work and any modifications or additions\n    to that Work or Derivative Works thereof, that is intentionally\n    submitted to Licensor for inclusion in the Work by the copyright owner\n    or by an individual or Legal Entity authorized to submit on behalf of\n    the copyright owner. For the purposes of this definition, \"submitted\"\n    means any form of electronic, verbal, or written communication sent\n    to the Licensor or its representatives, including but not limited to\n    communication on electronic mailing lists, source code control systems,\n    and issue tracking systems that are managed by, or on behalf of, the\n    Licensor for the purpose of discussing and improving the Work, but\n    excluding communication that is conspicuously marked or otherwise\n    designated in writing by the copyright owner as \"Not a Contribution.\"\n\n    \"Contributor\" shall mean Licensor and any individual or Legal Entity\n    on behalf of whom a Contribution has been received by Licensor and\n    subsequently incorporated within the Work.\n\n2.  Grant of Copyright License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    copyright license to reproduce, prepare Derivative Works of,\n    publicly display, publicly perform, sublicense, and distribute the\n    Work and such Derivative Works in Source or Object form.\n\n3.  Grant of Patent License. Subject to the terms and conditions of\n    this License, each Contributor hereby grants to You a perpetual,\n    worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n    (except as stated in this section) patent license to make, have made,\n    use, offer to sell, sell, import, and otherwise transfer the Work,\n    where such license applies only to those patent claims licensable\n    by such Contributor that are necessarily infringed by their\n    Contribution(s) alone or by combination of their Contribution(s)\n    with the Work to which such Contribution(s) was submitted. If You\n    institute patent litigation against any entity (including a\n    cross-claim or counterclaim in a lawsuit) alleging that the Work\n    or a Contribution incorporated within the Work constitutes direct\n    or contributory patent infringement, then any patent licenses\n    granted to You under this License for that Work shall terminate\n    as of the date such litigation is filed.\n\n4.  Redistribution. You may reproduce and distribute copies of the\n    Work or Derivative Works thereof in any medium, with or without\n    modifications, and in Source or Object form, provided that You\n    meet the following conditions:\n\n    (a) You must give any other recipients of the Work or\n    Derivative Works a copy of this License; and\n\n    (b) You must cause any modified files to carry prominent notices\n    stating that You changed the files; and\n\n    (c) You must retain, in the Source form of any Derivative Works\n    that You distribute, all copyright, patent, trademark, and\n    attribution notices from the Source form of the Work,\n    excluding those notices that do not pertain to any part of\n    the Derivative Works; and\n\n    (d) If the Work includes a \"NOTICE\" text file as part of its\n    distribution, then any Derivative Works that You distribute must\n    include a readable copy of the attribution notices contained\n    within such NOTICE file, excluding those notices that do not\n    pertain to any part of the Derivative Works, in at least one\n    of the following places: within a NOTICE text file distributed\n    as part of the Derivative Works; within the Source form or\n    documentation, if provided along with the Derivative Works; or,\n    within a display generated by the Derivative Works, if and\n    wherever such third-party notices normally appear. The contents\n    of the NOTICE file are for informational purposes only and\n    do not modify the License. You may add Your own attribution\n    notices within Derivative Works that You distribute, alongside\n    or as an addendum to the NOTICE text from the Work, provided\n    that such additional attribution notices cannot be construed\n    as modifying the License.\n\n    You may add Your own copyright statement to Your modifications and\n    may provide additional or different license terms and conditions\n    for use, reproduction, or distribution of Your modifications, or\n    for any such Derivative Works as a whole, provided Your use,\n    reproduction, and distribution of the Work otherwise complies with\n    the conditions stated in this License.\n\n5.  Submission of Contributions. Unless You explicitly state otherwise,\n    any Contribution intentionally submitted for inclusion in the Work\n    by You to the Licensor shall be under the terms and conditions of\n    this License, without any additional terms or conditions.\n    Notwithstanding the above, nothing herein shall supersede or modify\n    the terms of any separate license agreement you may have executed\n    with Licensor regarding such Contributions.\n\n6.  Trademarks. This License does not grant permission to use the trade\n    names, trademarks, service marks, or product names of the Licensor,\n    except as required for reasonable and customary use in describing the\n    origin of the Work and reproducing the content of the NOTICE file.\n\n7.  Disclaimer of Warranty. Unless required by applicable law or\n    agreed to in writing, Licensor provides the Work (and each\n    Contributor provides its Contributions) on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n    implied, including, without limitation, any warranties or conditions\n    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n    PARTICULAR PURPOSE. You are solely responsible for determining the\n    appropriateness of using or redistributing the Work and assume any\n    risks associated with Your exercise of permissions under this License.\n\n8.  Limitation of Liability. In no event and under no legal theory,\n    whether in tort (including negligence), contract, or otherwise,\n    unless required by applicable law (such as deliberate and grossly\n    negligent acts) or agreed to in writing, shall any Contributor be\n    liable to You for damages, including any direct, indirect, special,\n    incidental, or consequential damages of any character arising as a\n    result of this License or out of the use or inability to use the\n    Work (including but not limited to damages for loss of goodwill,\n    work stoppage, computer failure or malfunction, or any and all\n    other commercial damages or losses), even if such Contributor\n    has been advised of the possibility of such damages.\n\n9.  Accepting Warranty or Additional Liability. While redistributing\n    the Work or Derivative Works thereof, You may choose to offer,\n    and charge a fee for, acceptance of support, warranty, indemnity,\n    or other liability obligations and/or rights consistent with this\n    License. However, in accepting such obligations, You may act only\n    on Your own behalf and on Your sole responsibility, not on behalf\n    of any other Contributor, and only if You agree to indemnify,\n    defend, and hold each Contributor harmless for any liability\n    incurred by, or claims asserted against, such Contributor by reason\n    of your accepting any such warranty or additional liability.\n\nEND OF TERMS AND CONDITIONS\n\nAPPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\nCopyright 2013-2015 Brian Reavis & Contributors\nCopyright 2020-2023 Ris Adams & Contributors\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n"
  },
  {
    "path": "docs/src/pages/privacy-policy.mdx",
    "content": "---\ntitle: Privacy Policy\n---\n\n## PRIVACY NOTICE\n\n### Last updated December 20, 2022\n\nThis privacy notice for Ris Adams (\" **Company**,\" \"**we**,\" \"**us**,\" or \"**our**\" ) describes how and why we might collect, store, use, and/or share ( \"**process**\") your information when you use our services (\"**Services**\"), such as when you:\n\n- Visit our website at [https://selectize.dev](https://selectize.dev), or any other website we provide that may link to this privacy notice,\n- Engage with us in other related ways, including any sales, marketing, or events\n\n:::tip Privacy FAQ\n\nThis policy only applies to the Selectize documentation website.\n\n**The Selectize library itself does not collect any personal information or send/receive\nany telemetry data.**\n\n<ul>\n  <li>\n    We DO NOT directly collect, store, or process any personal information from\n    our users.\n  </li>\n  <li>\n    We DO use Google Analytics, and you can opt-out of Google Analytics tracking\n    by installing the Google Analytics Opt-out Browser Add-on.\n  </li>\n  <li>\n    We Do serve advertisements, and you can opt-out of Google Adsense tracking\n    by visiting the Google Ads Settings page.\n  </li>\n</ul>\n:::\n\n**Questions or concerns?** Reading this privacy notice will help you understand your privacy rights and choices. If you do not agree with our policies and practices, please do not use our Services. If you still have any questions or concerns, please contact us at info@risadams.com.\n\n### SUMMARY OF KEY POINTS\n\n**_This summary provides key points from our privacy notice._**\n\n- **What personal information do we process?** When you visit, use, or navigate our Services, we may process personal information depending on how you interact with Ris Adams and the Services, the choices you make, and the products and features you use.\n- **Do we process any sensitive personal information?** We do not process sensitive personal information.\n- **Do we receive any information from third parties?** We do not receive any information from third parties.\n- **How do we process your information?** We process your information to provide, improve, and administer our Services, communicate with you, for security and fraud prevention, and to comply with law. We may also process your information for other purposes with your consent. We process your information only when we have a valid legal reason to do so.\n- **In what situations and with which types of parties do we share personal information?** We may share information in specific situations and with specific categories of third parties.\n- **How do we keep your information safe?** We have organizational and technical processes and procedures in place to protect your personal information. However, no electronic transmission over the internet or information storage technology can be guaranteed to be 100% secure, so we cannot promise or guarantee that hackers, cybercriminals, or other unauthorized third parties will not be able to defeat our security and improperly collect, access, steal, or modify your information.\n- **What are your rights?** Depending on where you are located geographically, the applicable privacy law may mean you have certain rights regarding your personal information.\n- **How do I exercise my rights?** The easiest way to exercise your rights is by contacting us. We will consider and act upon any request in accordance with applicable data protection laws.\n\n### 1. WHAT INFORMATION DO WE COLLECT?\n\n#### Personal information you disclose to us\n\n**_In Short:_** _We collect personal information that you provide to us._\n\nWe collect personal information that you voluntarily provide to us when you express an interest in obtaining information about us or our products and Services, when you participate in activities on the Services, or otherwise when you contact us.\n\n**Sensitive Information.** We do not process sensitive information.\n\nAll personal information that you provide to us must be true, complete, and accurate, and you must notify us of any changes to such personal information.\n\n#### Information automatically collected\n\n**_In Short:_** _Some information — such as your Internet Protocol (IP) address and/or browser and device characteristics — is collected automatically when you visit our Services._\n\nWe automatically collect certain information when you visit, use, or navigate the Services. This information does not reveal your specific identity (like your name or contact information) but may include device and usage information, such as your IP address, browser and device characteristics, operating system, language preferences, referring URLs, device name, country, location, information about how and when you use our Services, and other technical information. This information is primarily needed to maintain the security and operation of our Services, and for our internal analytics and reporting purposes.\n\n##### The information we collect includes\n\n- _Log and Usage Data._ Log and usage data is service-related, diagnostic, usage, and performance information our servers automatically collect when you access or use our Services and which we record in log files. Depending on how you interact with us, this log data may include your IP address, device information, browser type, and settings and information about your activity in the Services (such as the date/time stamps associated with your usage, pages and files viewed, searches, and other actions you take such as which features you use), device event information (such as system activity, error reports (sometimes called \"crash dumps\"), and hardware settings).\n\n- _Device Data._ We collect device data such as information about your computer, phone, tablet, or other device you use to access the Services. Depending on the device used, this device data may include information such as your IP address (or proxy server), device and application identification numbers, location, browser type, hardware model, Internet service provider and/or mobile carrier, operating system, and system configuration information.\n\n- _Location Data._ We collect location data such as information about your device's location, which can be either precise or imprecise. How much information we collect depends on the type and settings of the device you use to access the Services. For example, we may use GPS and other technologies to collect geolocation data that tells us your current location (based on your IP address). You can opt-out of allowing us to collect this information either by refusing access to the information or by disabling your Location setting on your device. However, if you choose to opt-out, you may not be able to use certain aspects of the Services.\n\n### 2. HOW DO WE PROCESS YOUR INFORMATION?\n\n**_In Short:_** _We process your information to provide, improve, and administer our Services, communicate with you, for security and fraud prevention, and to comply with law. We may also process your information for other purposes with your consent._\n\n**We process your personal information for a variety of reasons, depending on how you interact with our Services, including:**\n\n- **To deliver and facilitate the delivery of services to the user.** We may process your information to provide you with the requested service.\n- **To deliver targeted advertising to you.** We may process your information to develop and display personalized content and advertising tailored to your interests, location, and more.\n- **To evaluate and improve our Services, products, marketing, and your experience.** We may process your information when we believe it is necessary to identify usage trends, determine the effectiveness of our promotional campaigns, and to evaluate and improve our Services, products, marketing, and your experience.\n- **To identify usage trends.** We may process information about how you use our Services to better understand how they are being used so we can improve them.\n- **To determine the effectiveness of our marketing and promotional campaigns.** We may process your information to better understand how to provide marketing and promotional campaigns that are most relevant to you.\n- **To comply with our legal obligations.** We may process your information to comply with our legal obligations, respond to legal requests, and exercise, establish, or defend our legal rights.\n\n### 3. WHEN AND WITH WHOM DO WE SHARE YOUR PERSONAL INFORMATION?\n\n**_In Short:_** _We may share information in specific situations described in this section and/or with the following categories of third parties._\n\n**Vendors, Consultants, and Other Third-Party Service Providers.** We may share your data with third-party vendors, service providers, contractors, or agents (\"**third parties**\") who perform services for us or on our behalf and require access to such information to do that work. The categories of third parties we may share personal information with are as follows:\n\n- Ad Networks\n- Data Analytics Services\n\nWe also may need to share your personal information in the following situations:\n\n- **Business Transfers.** We may share or transfer your information in connection with, or during negotiations of, any merger, sale of company assets, financing, or acquisition of all or a portion of our business to another company.\n\n### 4. WHAT IS OUR STANCE ON THIRD-PARTY WEBSITES?\n\n**_In Short:_** _We are not responsible for the safety of any information that you share with third parties that we may link to or who advertise on our Services, but are not affiliated with, our Services._\n\nThe Services may link to third-party websites, online services, or mobile applications and/or contain advertisements from third parties that are not affiliated with us and which may link to other websites, services, or applications. Accordingly, we do not make any guarantee regarding any such third parties, and we will not be liable for any loss or damage caused by the use of such third-party websites, services, or applications. The inclusion of a link towards a third-party website, service, or application does not imply an endorsement by us. We cannot guarantee the safety and privacy of data you provide to any third parties. Any data collected by third parties is not covered by this privacy notice. We are not responsible for the content or privacy and security practices and policies of any third parties, including other websites, services, or applications that may be linked to or from the Services. You should review the policies of such third parties and contact them directly to respond to your questions.\n\n### 5. HOW LONG DO WE KEEP YOUR INFORMATION\n\n**_In Short:_** _We keep your information for as long as necessary to fulfill the purposes outlined in this privacy notice unless otherwise required by law._\n\nWe will only keep your personal information for as long as it is necessary for the purposes set out in this privacy notice unless a longer retention period is required or permitted by law (such as tax, accounting, or other legal requirements). No purpose in this notice will require us keeping your personal information for longer than 90 days.\n\nWhen we have no ongoing legitimate business need to process your personal information, we will either delete or anonymize such information or, if this is not possible (for example, because your personal information has been stored in backup archives), then we will securely store your personal information and isolate it from any further processing until deletion is possible.\n\n### 6. HOW DO WE KEEP YOUR INFORMATION SAFE?\n\n**_In Short:_** _We aim to protect your personal information through a system of organizational and technical security measures._\n\nWe have implemented appropriate and reasonable technical and organizational security measures designed to protect the security of any personal information we process. However, despite our safeguards and efforts to secure your information, no electronic transmission over the Internet or information storage technology can be guaranteed to be 100% secure, so we cannot promise or guarantee that hackers, cybercriminals, or other unauthorized third parties will not be able to defeat our security and improperly collect, access, steal, or modify your information. Although we will do our best to protect your personal information, the transmission of personal information to and from our Services is at your own risk. You should only access the Services within a secure environment.\n\n### 7. WHAT ARE YOUR PRIVACY RIGHTS?\n\n**_In Short:_** _You may review, change, or terminate your account at any time._\n\nIf you are located in the EEA or UK and you believe we are unlawfully processing your personal information, you also have the right to complain to your local data protection supervisory authority. You can find their contact details here: [https://ec.europa.eu/justice/data-protection/bodies/authorities/index_en.htm](https://ec.europa.eu/justice/data-protection/bodies/authorities/index_en.htm).\n\nIf you are located in Switzerland, the contact details for the data protection authorities are available here: [https://www.edoeb.admin.ch/edoeb/en/home.html](https://www.edoeb.admin.ch/edoeb/en/home.html).\n\n**Withdrawing your consent:** If we are relying on your consent to process your personal information, which may be express and/or implied consent, depending on the applicable law, you have the right to withdraw your consent at any time. You can withdraw your consent at any time by contacting us by using the contact details provided in the section \"HOW CAN YOU CONTACT US ABOUT THIS NOTICE?\" below.\n\nHowever, please note that this will not affect the lawfulness of the processing before its withdrawal, nor when applicable law allows, will it affect the processing of your personal information conducted in reliance on lawful processing grounds other than consent.\n\nIf you have questions or comments about your privacy rights, you may email us selectize@risadams.com.\n\n### 8. CONTROLS FOR DO-NOT-TRACK FEATURES\n\nMost web browsers and some mobile operating systems and mobile applications include a Do-Not-Track (\"DNT\") feature or setting you can activate to signal your privacy preference not to have data about your online browsing activities monitored and collected. At this stage, no uniform technology standard for recognizing and implementing DNT signals has been finalized. As such, we do not currently respond to DNT browser signals or any other mechanism that automatically communicates your choice not to be tracked online. If a standard for online tracking is adopted that we must follow in the future, we will inform you about that practice in a revised version of this privacy notice.\n\n### 9. DO CALIFORNIA RESIDENTS HAVE SPECIFIC PRIVACY RIGHTS?\n\n**_In Short:_** _Yes, if you are a resident of California, you are granted specific rights regarding access to your personal information._\n\nCalifornia Civil Code Section 1798.83, also known as the \"Shine The Light\" law, permits our users who are California residents to request and obtain from us, once a year and free of charge, information about categories of personal information (if any) we disclosed to third parties for direct marketing purposes and the names and addresses of all third parties with which we shared personal information in the immediately preceding calendar year. If you are a California resident and would like to make such a request, please submit your request in writing to us using the contact information provided below.\n\nIf you are under 18 years of age, reside in California, and have a registered account with Services, you have the right to request the removal of unwanted data that you publicly post on the Services. To request removal of such data, please contact us using the contact information provided below and include the email address associated with your account and a statement that you reside in California. We will make sure the data is not publicly displayed on the Services, but please be aware that the data may not be completely or comprehensively removed from all our systems (e.g., backups, etc.).\n\n**CCPA Privacy Notice**\n\nThe California Code of Regulations defines a \"resident\" as:\n\n(1) every individual who is in the State of California for other than a temporary or transitory purpose and\n\n(2) every individual who is domiciled in the State of California who is outside the State of California for a temporary or transitory purpose\n\nAll other individuals are defined as \"non-residents.\"\n\nIf this definition of \"resident\" applies to you, we must adhere to certain rights and obligations regarding your personal information.\n\n**What categories of personal information do we collect?**\n\nWe have collected the following categories of personal information in the past twelve (12) months:\n\n| Category                                                                             | Example                                                                                                                                                                                                  | Collected |\n| ------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- |\n| A. Identifiers                                                                       | Contact details, such as real name, alias, postal address, telephone or mobile contact number, unique personal identifier, online identifier, Internet Protocol address, email address, and account name | NO        |\n| B. Personal information categories listed in the California Customer Records statute | Name, contact information, education, employment, employment history, and financial information                                                                                                          | YES       |\n| C. Protected classification characteristics under California or federal law          | Gender and date of birth                                                                                                                                                                                 | NO        |\n| D. Commercial information                                                            | Transaction information, purchase history, financial details, and payment information                                                                                                                    | NO        |\n| E. Biometric information                                                             | Fingerprints and voiceprints                                                                                                                                                                             | NO        |\n| F. Internet or other similar network activity                                        | Browsing history, search history, online behavior , interest data, and interactions with our and other websites, applications, systems, and advertisements                                               | NO        |\n| G. Geolocation data                                                                  | Device Location                                                                                                                                                                                          | NO        |\n| H. Audio, electronic, visual, thermal, olfactory, or similar information             | Images and audio, video or call recordings created in connection with our business activities                                                                                                            | NO        |\n| I. Professional or employment-related information                                    | Business contact details in order to provide you our services at a business level or job title, work history, and professional qualifications if you apply for a job with us                             | NO        |\n| J. Education Information                                                             | Student records and directory information                                                                                                                                                                | NO        |\n| K. Health information                                                                | Medical records, medical history, and medical information                                                                                                                                                | NO        |\n| L. Legal information                                                                 | Legal records, including criminal history, and other legal information                                                                                                                                   | NO        |\n| M. Inferences drawn from other personal information                                  | Inferences drawn from any of the collected personal information listed above to create a profile or summary about, for example, an individual’s preferences and characteristics                          | NO        |\n| N. Other information                                                                 | Other information, including information about your interests, hobbies, and other activities                                                                                                             | NO        |\n\nWe may also collect other personal information outside of these categories in instances where you interact with us in person, online, or by phone or mail in the context of:\n\n- Receiving help through our customer support channels;\n- Participation in customer surveys or contests; and\n- Facilitation in the delivery of our Services and to respond to your inquiries.\n\n#### How do we use and share your personal information?\n\nSelectize collects and shares your personal information through:\n\n- Targeting cookies/Marketing cookies\n- Beacons/Pixels/Tags\n\nMore information about our data collection and sharing practices can be found in this privacy notice.\n\nYou may contact us by email selectize@risadams.com, or by referring to the contact details at the bottom of this document.\n\nIf you are using an authorized agent to exercise your right to opt-out we may deny a request if the authorized agent does not submit proof that they have been validly authorized to act on your behalf.\n\n#### Will your information be shared with anyone else?\n\nWe may disclose your personal information with our service providers pursuant to a written contract between us and each service provider. Each service provider is a for-profit entity that processes the information on our behalf.\n\nWe may use your personal information for our own business purposes, such as for undertaking internal research for technological development and demonstration. This is not considered to be \"selling\" of your personal information.\n\nRis Adams has not sold any personal information to third parties for a business or commercial purpose in the preceding twelve (12) months. Ris Adams has disclosed the following categories of personal information to third parties for a business or commercial purpose in the preceding twelve (12) months:\n\n- Category B. Personal information, as defined in the California Customer Records law, such as your name, contact information, education, employment, employment history, and financial information.\n\nThe categories of third parties to whom we disclosed personal information for a business or commercial purpose can be found under \"WHEN AND WITH WHOM DO WE SHARE YOUR PERSONAL INFORMATION?\".\n\n#### Your rights with respect to your personal data\n\nRight to request deletion of the data — Request to delete\n\nYou can ask for the deletion of your personal information. If you ask us to delete your personal information, we will respect your request and delete your personal information, subject to certain exceptions provided by law, such as (but not limited to) the exercise by another consumer of his or her right to free speech, our compliance requirements resulting from a legal obligation, or any processing that may be required to protect against illegal activities.\n\n#### Right to be informed — Request to know\n\nDepending on the circumstances, you have a right to know:\n\n- whether we collect and use your personal information;\n- the categories of personal information that we collect;\n- the purposes for which the collected personal information is used;\n- whether we sell your personal information to third parties;\n- the categories of personal information that we sold or disclosed for a business purpose;\n- the categories of third parties to whom the personal information was sold or disclosed for a business purpose; and\n- the business or commercial purpose for collecting or selling personal information.\n\nIn accordance with applicable law, we are not obligated to provide or delete consumer information that is de-identified in response to a consumer request or to re-identify individual data to verify a consumer request.\n\nRight to Non-Discrimination for the Exercise of a Consumer's Privacy Rights\n\nWe will not discriminate against you if you exercise your privacy rights.\n\n#### Verification process\n\nUpon receiving your request, we will need to verify your identity to determine you are the same person about whom we have the information in our system. These verification efforts require us to ask you to provide information so that we can match it with information you have previously provided us. For instance, depending on the type of request you submit, we may ask you to provide certain information so that we can match the information you provide with the information we already have on file, or we may contact you through a communication method (e.g., phone or email) that you have previously provided to us. We may also use other verification methods as the circumstances dictate.\n\nWe will only use personal information provided in your request to verify your identity or authority to make the request. To the extent possible, we will avoid requesting additional information from you for the purposes of verification. However, if we cannot verify your identity from the information already maintained by us, we may request that you provide additional information for the purposes of verifying your identity and for security or fraud-prevention purposes. We will delete such additionally provided information as soon as we finish verifying you.\n\n#### Other privacy rights\n\n- You may object to the processing of your personal information.\n- You may request correction of your personal data if it is incorrect or no longer relevant, or ask to restrict the processing of the information.\n- You can designate an authorized agent to make a request under the CCPA on your behalf. We may deny a request from an authorized agent that does not submit proof that they have been validly authorized to act on your behalf in accordance with the CCPA.\n- You may request to opt-out from future selling of your personal information to third parties. Upon receiving an opt-out request, we will act upon the request as soon as feasibly possible, but no later than fifteen (15) days from the date of the request submission.\n\nTo exercise these rights, you can contact us by email at selectize@risadams.com, or by referring to the contact details at the bottom of this document. If you have a complaint about how we handle your data, we would like to hear from you.\n\n### 10. DO WE MAKE UPDATES TO THIS NOTICE?\n\n_**In Short:** Yes, we will update this notice as necessary to stay compliant with relevant laws._\n\nWe may update this privacy notice from time to time. The updated version will be indicated by an updated \"Revised\" date and the updated version will be effective as soon as it is accessible. If we make material changes to this privacy notice, we may notify you either by prominently posting a notice of such changes or by directly sending you a notification. We encourage you to review this privacy notice frequently to be informed of how we are protecting your information.\n\n### 11. HOW CAN YOU CONTACT US ABOUT THIS NOTICE?\n\nIf you have questions or comments about this notice, you may email us at selectize@risadams.com\n\n### 12. HOW CAN YOU REVIEW, UPDATE, OR DELETE THE DATA WE COLLECT FROM YOU?\n\nBased on the applicable laws of your country, you may have the right to request access to the personal information we collect from you, change that information, or delete it in some circumstances. To request to review, update, or delete your personal information, please email us at privacy@risadams.com.\n"
  },
  {
    "path": "docs/src/theme/CodeBlock/index.js",
    "content": "import React, { isValidElement } from 'react';\nimport clsx from 'clsx'\nimport useIsBrowser from '@docusaurus/useIsBrowser';\nimport ElementContent from '@theme/CodeBlock/Content/Element';\nimport StringContent from '@theme/CodeBlock/Content/String';\n/**\n * Best attempt to make the children a plain string so it is copyable. If there\n * are react elements, we will not be able to copy the content, and it will\n * return `children` as-is; otherwise, it concatenates the string children\n * together.\n */\nfunction maybeStringifyChildren(children) {\n  if (React.Children.toArray(children).some((el) => isValidElement(el))) {\n    return children;\n  }\n  // The children is now guaranteed to be one/more plain strings\n  return Array.isArray(children) ? children.join('') : children;\n}\nexport default function CodeBlock({ children: rawChildren, ...props }) {\n  // The Prism theme on SSR is always the default theme but the site theme can\n  // be in a different mode. React hydration doesn't update DOM styles that come\n  // from SSR. Hence force a re-render after mounting to apply the current\n  // relevant styles.\n  const isBrowser = useIsBrowser();\n  const children = maybeStringifyChildren(rawChildren);\n  const CodeBlockComp =\n    typeof children === 'string' ? StringContent : ElementContent;\n  return (\n    <div className={clsx(\n      'mt-6',\n      'shadow-xl',\n      'shadow-glow',\n      'border',\n      'rounded-lg',\n      'border-gray-200',\n    )}>\n      <CodeBlockComp key={String(isBrowser)} {...props}>\n        {children}\n      </CodeBlockComp>\n    </div>\n  );\n}\n"
  },
  {
    "path": "docs/src/theme/DocBreadcrumbs/index.js",
    "content": "import React from 'react';\nimport clsx from 'clsx';\nimport { ThemeClassNames } from '@docusaurus/theme-common';\nimport {\n  useSidebarBreadcrumbs,\n  useHomePageRoute,\n} from '@docusaurus/theme-common/internal';\nimport Link from '@docusaurus/Link';\nimport useBaseUrl from '@docusaurus/useBaseUrl';\nimport { translate } from '@docusaurus/Translate';\nimport IconHome from '@theme/Icon/Home';\nimport styles from './styles.module.css';\n// TODO move to design system folder\nfunction BreadcrumbsItemLink({ children, href, isLast }) {\n  const className = 'breadcrumbs__link';\n  if (isLast) {\n    return (\n      <span className={className} itemProp=\"name\">\n        {children}\n      </span>\n    );\n  }\n  return href ? (\n    <Link className={className} href={href} itemProp=\"item\">\n      <span itemProp=\"name\">{children}</span>\n    </Link>\n  ) : (\n    // TODO Google search console doesn't like breadcrumb items without href.\n    // The schema doesn't seem to require `id` for each `item`, although Google\n    // insist to infer one, even if it's invalid. Removing `itemProp=\"item\n    // name\"` for now, since I don't know how to properly fix it.\n    // See https://github.com/facebook/docusaurus/issues/7241\n    <span className={className}>{children}</span>\n  );\n}\n// TODO move to design system folder\nfunction BreadcrumbsItem({ children, active, index, addMicrodata }) {\n  return (\n    <li\n      {...(addMicrodata && {\n        itemScope: true,\n        itemProp: 'itemListElement',\n        itemType: 'https://schema.org/ListItem',\n      })}\n      className={clsx('breadcrumbs__item', {\n        'breadcrumbs__item--active': active,\n      })}>\n      {children}\n      <meta itemProp=\"position\" content={String(index + 1)} />\n    </li>\n  );\n}\nfunction HomeBreadcrumbItem() {\n  const homeHref = useBaseUrl('/');\n  return (\n    <li className={clsx(\n      \"breadcrumbs__item\"\n    )}>\n      <Link\n        aria-label={translate({\n          id: 'theme.docs.breadcrumbs.home',\n          message: 'Home page',\n          description: 'The ARIA label for the home page in the breadcrumbs',\n        })}\n        className={clsx('breadcrumbs__link', styles.breadcrumbsItemLink)}\n        href={homeHref}>\n        <IconHome className={styles.breadcrumbHomeIcon} />\n      </Link>\n    </li>\n  );\n}\nexport default function DocBreadcrumbs() {\n  const breadcrumbs = useSidebarBreadcrumbs();\n  const homePageRoute = useHomePageRoute();\n  if (!breadcrumbs) {\n    return null;\n  }\n  return (\n    <nav\n      className={clsx(\n        ThemeClassNames.docs.docBreadcrumbs,\n        'pt-4'\n      )}\n      aria-label={translate({\n        id: 'theme.docs.breadcrumbs.navAriaLabel',\n        message: 'Breadcrumbs',\n        description: 'The ARIA label for the breadcrumbs',\n      })}>\n      <ul\n        className=\"breadcrumbs\"\n        itemScope\n        itemType=\"https://schema.org/BreadcrumbList\">\n        {homePageRoute && <HomeBreadcrumbItem />}\n        {breadcrumbs.map((item, idx) => {\n          const isLast = idx === breadcrumbs.length - 1;\n          return (\n            <BreadcrumbsItem\n              key={idx}\n              active={isLast}\n              index={idx}\n              addMicrodata={!!item.href}>\n              <BreadcrumbsItemLink href={item.href} isLast={isLast}>\n                {item.label}\n              </BreadcrumbsItemLink>\n            </BreadcrumbsItem>\n          );\n        })}\n      </ul>\n    </nav>\n  );\n}\n"
  },
  {
    "path": "docs/src/theme/DocBreadcrumbs/styles.module.css",
    "content": ".breadcrumbHomeIcon {\n  position: relative;\n  top: 1px;\n  vertical-align: top;\n  height: 1.5rem;\n  width: 1.6rem;\n  color: var(--ifm-color-primary);\n}\n"
  },
  {
    "path": "docs/src/theme/DocCardList/index.js",
    "content": "import React from 'react';\nimport clsx from 'clsx';\nimport {\n  useCurrentSidebarCategory,\n  filterDocCardListItems,\n} from '@docusaurus/theme-common';\nimport DocCard from '@theme/DocCard';\nfunction DocCardListForCurrentSidebarCategory({ className }) {\n  const category = useCurrentSidebarCategory();\n  return <DocCardList items={category.items} className={className} />;\n}\nexport default function DocCardList(props) {\n  const { items, className } = props;\n  if (!items) {\n    return <DocCardListForCurrentSidebarCategory {...props} />;\n  }\n  const filteredItems = filterDocCardListItems(items);\n  return (\n    <section className={clsx('row', className)}>\n      {filteredItems.map((item, index) => (\n        <article key={index} className=\"col col--6 margin-bottom--lg\">\n          <DocCard item={item} />\n        </article>\n      ))}\n    </section>\n  );\n}\n"
  },
  {
    "path": "docs/src/theme/DocItem/Content/index.js",
    "content": "import React from 'react';\nimport clsx from 'clsx';\nimport { ThemeClassNames } from '@docusaurus/theme-common';\nimport { useDoc } from '@docusaurus/theme-common/internal';\nimport Heading from '@theme/Heading';\nimport MDXContent from '@theme/MDXContent';\n/**\n Title can be declared inside md content or declared through\n front matter and added manually. To make both cases consistent,\n the added title is added under the same div.markdown block\n See https://github.com/facebook/docusaurus/pull/4882#issuecomment-853021120\n\n We render a \"synthetic title\" if:\n - user doesn't ask to hide it with front matter\n - the markdown content does not already contain a top-level h1 heading\n*/\nfunction useSyntheticTitle() {\n  const { metadata, frontMatter, contentTitle } = useDoc();\n  const shouldRender =\n    !frontMatter.hide_title && typeof contentTitle === 'undefined';\n  if (!shouldRender) {\n    return null;\n  }\n  return metadata.title;\n}\nexport default function DocItemContent({ children }) {\n  const syntheticTitle = useSyntheticTitle();\n  return (\n    <div className={clsx(ThemeClassNames.docs.docMarkdown, 'markdown')}>\n      {syntheticTitle && (\n        <header>\n          <Heading as=\"h1\">{syntheticTitle}</Heading>\n        </header>\n      )}\n      <MDXContent>{children}</MDXContent>\n    </div>\n  );\n}\n"
  },
  {
    "path": "docs/src/theme/DocItem/Paginator/index.js",
    "content": "import React from 'react';\nimport {useDoc} from '@docusaurus/theme-common/internal';\nimport DocPaginator from '@theme/DocPaginator';\n/**\n * This extra component is needed, because <DocPaginator> should remain generic.\n * DocPaginator is used in non-docs contexts too: generated-index pages...\n */\nexport default function DocItemPaginator() {\n  const {metadata} = useDoc();\n  return <DocPaginator previous={metadata.previous} next={metadata.next} />;\n}\n"
  },
  {
    "path": "docs/src/theme/DocItem/index.js",
    "content": "import React from 'react';\nimport {HtmlClassNameProvider} from '@docusaurus/theme-common';\nimport {DocProvider} from '@docusaurus/theme-common/internal';\nimport DocItemMetadata from '@theme/DocItem/Metadata';\nimport DocItemLayout from '@theme/DocItem/Layout';\nexport default function DocItem(props) {\n  const docHtmlClassName = `docs-doc-id-${props.content.metadata.unversionedId}`;\n  const MDXComponent = props.content;\n  return (\n    <DocProvider content={props.content}>\n      <HtmlClassNameProvider className={docHtmlClassName}>\n        <DocItemMetadata />\n        <DocItemLayout>\n          <MDXComponent />\n        </DocItemLayout>\n      </HtmlClassNameProvider>\n    </DocProvider>\n  );\n}\n"
  },
  {
    "path": "docs/src/theme/DocPage/Layout/Main/index.js",
    "content": "import React from 'react';\nimport clsx from 'clsx';\nimport { useDocsSidebar } from '@docusaurus/theme-common/internal';\nimport styles from './styles.module.css';\nimport { PagePattern } from '../../../../components/PagePattern'\n\nexport default function DocPageLayoutMain({ hiddenSidebarContainer, children }) {\n  const sidebar = useDocsSidebar();\n  return (\n    <main\n      className={clsx(\n        styles.docMainContainer,\n        (hiddenSidebarContainer || !sidebar) && styles.docMainContainerEnhanced,\n      )}>\n\n      <div\n        className={clsx(\n          'container',\n          styles.docItemWrapper,\n          hiddenSidebarContainer && styles.docItemWrapperEnhanced,\n        )}>\n        <PagePattern />\n        {children}\n      </div>\n    </main>\n  );\n}\n"
  },
  {
    "path": "docs/src/theme/DocPage/Layout/Main/styles.module.css",
    "content": ".docMainContainer {\n  display: flex;\n  width: 100%;\n}\n\n@media (min-width: 997px) {\n  .docMainContainer {\n    flex-grow: 1;\n    max-width: calc(100% - var(--doc-sidebar-width));\n  }\n\n  .docMainContainerEnhanced {\n    max-width: calc(100% - var(--doc-sidebar-hidden-width));\n  }\n\n  .docItemWrapperEnhanced {\n    max-width: calc(\n      var(--ifm-container-width) + var(--doc-sidebar-width)\n    ) !important;\n  }\n}\n"
  },
  {
    "path": "docs/src/theme/DocPage/index.js",
    "content": "import React from 'react';\nimport clsx from 'clsx';\nimport {\n  HtmlClassNameProvider,\n  ThemeClassNames,\n  PageMetadata,\n} from '@docusaurus/theme-common';\nimport {\n  docVersionSearchTag,\n  DocsSidebarProvider,\n  DocsVersionProvider,\n  useDocRouteMetadata,\n} from '@docusaurus/theme-common/internal';\nimport DocPageLayout from '@theme/DocPage/Layout';\nimport NotFound from '@theme/NotFound';\nimport SearchMetadata from '@theme/SearchMetadata';\nfunction DocPageMetadata(props) {\n  const { versionMetadata } = props;\n  return (\n    <>\n      <SearchMetadata\n        version={versionMetadata.version}\n        tag={docVersionSearchTag(\n          versionMetadata.pluginId,\n          versionMetadata.version,\n        )}\n      />\n      <PageMetadata>\n        {versionMetadata.noIndex && (\n          <meta name=\"robots\" content=\"noindex, nofollow\" />\n        )}\n      </PageMetadata>\n    </>\n  );\n}\nexport default function DocPage(props) {\n  const { versionMetadata } = props;\n  const currentDocRouteMetadata = useDocRouteMetadata(props);\n  if (!currentDocRouteMetadata) {\n    return <NotFound />;\n  }\n  const { docElement, sidebarName, sidebarItems } = currentDocRouteMetadata;\n  return (\n    <>\n      <DocPageMetadata {...props} />\n      <HtmlClassNameProvider\n        className={clsx(\n          // TODO: it should be removed from here\n          ThemeClassNames.wrapper.docsPages,\n          ThemeClassNames.page.docsDocPage,\n          props.versionMetadata.className,\n        )}>\n        <DocsVersionProvider version={versionMetadata}>\n          <DocsSidebarProvider name={sidebarName} items={sidebarItems}>\n            <DocPageLayout>{docElement}</DocPageLayout>\n          </DocsSidebarProvider>\n        </DocsVersionProvider>\n      </HtmlClassNameProvider>\n    </>\n  );\n}\n"
  },
  {
    "path": "docs/src/theme/DocPaginator/index.js",
    "content": "import React from 'react';\nimport Translate, { translate } from '@docusaurus/Translate';\nimport PaginatorNavLink from '@theme/PaginatorNavLink';\nexport default function DocPaginator(props) {\n  const { previous, next } = props;\n  return (\n    <nav\n      className=\"pagination-nav docusaurus-mt-lg\"\n      aria-label={translate({\n        id: 'theme.docs.paginator.navAriaLabel',\n        message: 'Docs pages navigation',\n        description: 'The ARIA label for the docs pagination',\n      })}>\n      {previous && (\n        <PaginatorNavLink\n          {...previous}\n          subLabel={\n            <Translate\n              id=\"theme.docs.paginator.previous\"\n              description=\"The label used to navigate to the previous doc\">\n              Previous\n            </Translate>\n          }\n        />\n      )}\n      {next && (\n        <PaginatorNavLink\n          {...next}\n          subLabel={\n            <Translate\n              id=\"theme.docs.paginator.next\"\n              description=\"The label used to navigate to the next doc\">\n              Next\n            </Translate>\n          }\n          isNext\n        />\n      )}\n    </nav>\n  );\n}\n"
  },
  {
    "path": "docs/src/theme/Footer/Copyright/index.js",
    "content": "import React from 'react';\nexport default function FooterCopyright({copyright}) {\n  return (\n    <div\n      className=\"footer__copyright\"\n      // Developer provided the HTML, so assume it's safe.\n      // eslint-disable-next-line react/no-danger\n      dangerouslySetInnerHTML={{__html: copyright}}\n    />\n  );\n}\n"
  },
  {
    "path": "docs/src/theme/Footer/Layout/index.js",
    "content": "import React from 'react';\nimport clsx from 'clsx';\n\nimport { HeroBackground } from '../../../components/HeroBackground'\n\nimport blurCyanImage from '/img/blur-cyan.png'\nimport blurIndigoImage from '/img/blur-indigo.png'\n\nexport default function FooterLayout({ style, links, logo, copyright }) {\n  return (\n    <footer\n      className={clsx('footer', {\n        'footer--dark': style === 'dark'\n      },\n        'sm:mt-0 md:mt-4 xl:mt-8',\n        'overflow-hidden bg-slate-900'\n      )}>\n      <div className='relative'>\n        <img\n          className=\"absolute opacity-50 -mb-72 bottom-full right-full -mr-72\"\n          src={blurCyanImage}\n          alt=\"\"\n          width={530}\n          height={530}\n        />\n        <div className=\"absolute inset-x-[-50vw] -top-32 -bottom-48 [mask-image:linear-gradient(transparent,white,white)] lg:left-[calc(50%+14rem)] lg:right-0 lg:-top-32 lg:-bottom-32 lg:[mask-image:none] \">\n          <HeroBackground className=\"absolute top-0 right-0 rotate-90 translate-x-1/2 opacity-25 -translate-y-1/3\" />\n        </div>\n        <img\n          className=\"absolute -bottom-40 -right-44\"\n          src={blurIndigoImage}\n          alt=\"\"\n          width={567}\n          height={567}\n        />\n      </div>\n      <div className='relative px-8 md:px-4 lg:px-2 md:text-center lg:text-left'>\n        {links}\n        {(logo || copyright) && (\n          <div className=\"footer__bottom text--center\">\n            {logo && <div className=\"margin-bottom--sm\">{logo}</div>}\n            {copyright}\n          </div>\n        )}\n      </div>\n    </footer>\n  );\n}\n"
  },
  {
    "path": "docs/src/theme/Footer/LinkItem/index.js",
    "content": "import React from 'react';\nimport Link from '@docusaurus/Link';\nimport useBaseUrl from '@docusaurus/useBaseUrl';\nimport isInternalUrl from '@docusaurus/isInternalUrl';\nimport IconExternalLink from '@theme/Icon/ExternalLink';\nexport default function FooterLinkItem({ item }) {\n  const { to, href, label, prependBaseUrlToHref, ...props } = item;\n  const toUrl = useBaseUrl(to);\n  const normalizedHref = useBaseUrl(href, { forcePrependBaseUrl: true });\n  return (\n    <Link\n      className=\"footer__link-item\"\n      {...(href\n        ? {\n          href: prependBaseUrlToHref ? normalizedHref : href,\n        }\n        : {\n          to: toUrl,\n        })}\n      {...props}>\n      {label}\n      {href && !isInternalUrl(href) && <IconExternalLink />}\n    </Link>\n  );\n}\n"
  },
  {
    "path": "docs/src/theme/Footer/Links/MultiColumn/index.js",
    "content": "import React from 'react';\nimport LinkItem from '@theme/Footer/LinkItem';\nfunction ColumnLinkItem({item}) {\n  return item.html ? (\n    <li\n      className=\"footer__item\"\n      // Developer provided the HTML, so assume it's safe.\n      // eslint-disable-next-line react/no-danger\n      dangerouslySetInnerHTML={{__html: item.html}}\n    />\n  ) : (\n    <li key={item.href ?? item.to} className=\"footer__item\">\n      <LinkItem item={item} />\n    </li>\n  );\n}\nfunction Column({column}) {\n  return (\n    <div className=\"col footer__col\">\n      <div className=\"footer__title\">{column.title}</div>\n      <ul className=\"footer__items clean-list\">\n        {column.items.map((item, i) => (\n          <ColumnLinkItem key={i} item={item} />\n        ))}\n      </ul>\n    </div>\n  );\n}\nexport default function FooterLinksMultiColumn({columns}) {\n  return (\n    <div className=\"row footer__links\">\n      {columns.map((column, i) => (\n        <Column key={i} column={column} />\n      ))}\n    </div>\n  );\n}\n"
  },
  {
    "path": "docs/src/theme/Footer/Links/index.js",
    "content": "import React from 'react';\nimport {isMultiColumnFooterLinks} from '@docusaurus/theme-common';\nimport FooterLinksMultiColumn from '@theme/Footer/Links/MultiColumn';\nimport FooterLinksSimple from '@theme/Footer/Links/Simple';\nexport default function FooterLinks({links}) {\n  return isMultiColumnFooterLinks(links) ? (\n    <FooterLinksMultiColumn columns={links} />\n  ) : (\n    <FooterLinksSimple links={links} />\n  );\n}\n"
  },
  {
    "path": "docs/src/theme/Footer/Logo/index.js",
    "content": "import React from 'react';\nimport clsx from 'clsx';\nimport Link from '@docusaurus/Link';\nimport { useBaseUrlUtils } from '@docusaurus/useBaseUrl';\nimport ThemedImage from '@theme/ThemedImage';\nimport styles from './styles.module.css';\nfunction LogoImage({ logo }) {\n  const { withBaseUrl } = useBaseUrlUtils();\n  const sources = {\n    light: withBaseUrl(logo.src),\n    dark: withBaseUrl(logo.srcDark ?? logo.src),\n  };\n  return (\n    <ThemedImage\n      className={clsx('footer__logo', logo.className)}\n      alt={logo.alt}\n      sources={sources}\n      width={logo.width}\n      height={logo.height}\n      style={logo.style}\n    />\n  );\n}\nexport default function FooterLogo({ logo }) {\n  return logo.href ? (\n    <Link\n      href={logo.href}\n      className={styles.footerLogoLink}\n      target={logo.target}>\n      <LogoImage logo={logo} />\n    </Link>\n  ) : (\n    <LogoImage logo={logo} />\n  );\n}\n"
  },
  {
    "path": "docs/src/theme/Footer/Logo/styles.module.css",
    "content": ".footerLogoLink {\n  opacity: 0.5;\n  transition: opacity var(--ifm-transition-fast)\n    var(--ifm-transition-timing-default);\n}\n\n.footerLogoLink:hover {\n  opacity: 1;\n}\n"
  },
  {
    "path": "docs/src/theme/Footer/index.js",
    "content": "import React from 'react';\nimport { useThemeConfig } from '@docusaurus/theme-common';\nimport FooterLinks from '@theme/Footer/Links';\nimport FooterLogo from '@theme/Footer/Logo';\nimport FooterCopyright from '@theme/Footer/Copyright';\nimport FooterLayout from '@theme/Footer/Layout';\n\nfunction Footer() {\n  const { footer } = useThemeConfig();\n  if (!footer) {\n    return null;\n  }\n  const { copyright, links, logo, style } = footer;\n  return (\n    <>\n      <FooterLayout\n        style={style}\n        links={links && links.length > 0 && <FooterLinks links={links} />}\n        logo={logo && <FooterLogo logo={logo} />}\n        copyright={copyright && <FooterCopyright copyright={copyright} />}\n      />\n    </>);\n}\nexport default React.memo(Footer);\n"
  },
  {
    "path": "docs/src/theme/PaginatorNavLink/index.js",
    "content": "import React from 'react';\nimport clsx from 'clsx';\nimport Link from '@docusaurus/Link';\nimport { motion, useMotionTemplate, useMotionValue } from 'framer-motion'\nimport { GridPattern } from '../../components/GridPattern';\n\nexport default function PaginatorNavLink(props) {\n  const { permalink, title, subLabel, isNext } = props;\n\n  let mouseX = useMotionValue(0)\n  let mouseY = useMotionValue(0)\n\n  function onMouseMove({ currentTarget, clientX, clientY }) {\n    let { left, top } = currentTarget.getBoundingClientRect()\n    mouseX.set(clientX - left)\n    mouseY.set(clientY - top)\n  }\n\n  let pattern = {\n    y: 48,\n    squares: isNext ? [\n      [-1, 0],\n      [0, -1],\n      [-2, -1],\n    ] : [\n      [2, 0],\n      [0, 1],\n      [-1, 0],\n    ],\n  };\n\n  return (\n    <Link\n      onMouseMove={onMouseMove}\n      className={clsx(\n        'pagination-nav__link',\n        'group relative',\n        'bg-zinc-50',\n        'transition-shadow shadow-lg hover:shadow-lg hover:shadow-zinc-900/5',\n        'display-inline',\n        isNext ? 'pagination-nav__link--next' : 'pagination-nav__link--prev',\n      )}\n      to={permalink}>\n      <FeaturePattern {...pattern} mouseX={mouseX} mouseY={mouseY} />\n      {subLabel && <div className=\"pagination-nav__sublabel\">{subLabel}</div>}\n      <div className=\"pagination-nav__label\">{title}</div>\n    </Link>\n  );\n}\n\n\nfunction FeaturePattern({ mouseX, mouseY, ...gridProps }) {\n  let maskImage = useMotionTemplate`radial-gradient(180px at ${mouseX}px ${mouseY}px, white, transparent)`\n  let style = { maskImage, WebkitMaskImage: maskImage }\n\n  return (\n    <div className=\"pointer-events-none\">\n      <div className=\"absolute inset-0 rounded-2xl transition duration-300 [mask-image:linear-gradient(white,transparent)] group-hover:opacity-50\">\n        <GridPattern\n          width={72}\n          height={56}\n          x=\"50%\"\n          className=\"absolute inset-x-0 inset-y-[-30%] h-[160%] w-full skew-y-[-18deg] fill-black/[0.02] stroke-black/5\"\n          {...gridProps}\n        />\n      </div>\n      <motion.div\n        className=\"absolute inset-0 rounded-2xl bg-gradient-to-r from-[#d7e6ed] to-[#e0e8f6] opacity-0 transition duration-300 group-hover:opacity-100\"\n        style={style}\n      />\n      <motion.div\n        className=\"absolute inset-0 transition duration-300 opacity-0 rounded-2xl mix-blend-overlay group-hover:opacity-100\"\n        style={style}\n      >\n        <GridPattern\n          width={72}\n          height={56}\n          x=\"50%\"\n          className=\"absolute inset-x-0 inset-y-[-30%] h-[160%] w-full skew-y-[-18deg] fill-black/50 stroke-black/70\"\n          {...gridProps}\n        />\n      </motion.div>\n    </div>\n  )\n}\n"
  },
  {
    "path": "docs/src/theme/root.js",
    "content": "import React from 'react';\n\n// Default implementation, that you can customize\nexport default function Root({ children }) {\n  return <>\n    <React.StrictMode>\n      {children}\n    </React.StrictMode>\n  </>;\n}\n"
  },
  {
    "path": "docs/static/.nojekyll",
    "content": ""
  },
  {
    "path": "docs/static/CNAME",
    "content": "selectize.dev"
  },
  {
    "path": "docs/static/ads.txt",
    "content": "google.com, pub-9290211346209107, DIRECT, f08c47fec0942fa0"
  },
  {
    "path": "docs/static/css/selectize.bootstrap2.css",
    "content": "/**\n * Selectize (v0.15.2)\n * https://selectize.dev\n *\n * Copyright (c) 2013-2015 Brian Reavis & contributors\n * Copyright (c) 2020-2023 Selectize Team & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis <brian@thirdroute.com>\n * @author Ris Adams <selectize@risadams.com>\n */\n.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:\"\";line-height:0}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#333;font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;-webkit-font-smoothing:inherit}.selectize-input,.selectize-control.single .selectize-input.input-active{background:#fff;cursor:text;display:inline-block}.selectize-input{border:1px solid #d0d0d0;padding:7px 10px;display:inline-block;width:100%;overflow:hidden;position:relative;z-index:1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:none;box-shadow:none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.selectize-control.multi .selectize-input.has-items{padding:5px 10px 2px}.selectize-input.full{background-color:#fff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default !important}.selectize-input.focus{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}.selectize-input.dropdown-active{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.selectize-input>*{vertical-align:baseline;display:-moz-inline-stack;display:inline-block;zoom:1;*display:inline}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:0 3px 3px 0;padding:1px 3px;background:#e6e6e6;color:#333;border:1px solid #ccc}.selectize-control.multi .selectize-input>div.active{background:#08c;color:#fff;border:1px solid #0077b3}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:#474747;background:#fafafa;border:1px solid #e0e0e0}.selectize-input>input{display:inline-block !important;padding:0 !important;min-height:0 !important;max-height:none !important;max-width:100% !important;margin:0 !important;text-indent:0 !important;border:0 none !important;background:none !important;line-height:inherit !important;-webkit-user-select:auto !important;-webkit-box-shadow:none !important;box-shadow:none !important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:none !important}.selectize-input>input[placeholder]{box-sizing:initial}.selectize-input::after{content:' ';display:block;clear:left}.selectize-input.dropdown-active::before{content:' ';display:block;position:absolute;background:#e5e5e5;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;z-index:10;border:1px solid #ccc;background:#fff;margin:-1px 0 0 0;border-top:0 none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1);-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(255,237,40,0.4);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.selectize-dropdown .option,.selectize-dropdown .optgroup-header{padding:3px 10px}.selectize-dropdown .option,.selectize-dropdown [data-disabled],.selectize-dropdown [data-disabled] [data-selectable].option{cursor:inherit;opacity:.5}.selectize-dropdown [data-selectable].option{opacity:1}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.selectize-dropdown .optgroup-header{color:#999;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#08c;color:#fff}.selectize-dropdown .active.create{color:#fff}.selectize-dropdown .create{color:rgba(51,51,51,0.5)}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px;-webkit-overflow-scrolling:touch}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input{cursor:text}.selectize-control.single .selectize-input:after{content:' ';display:block;position:absolute;top:50%;right:15px;margin-top:-3px;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#000 transparent transparent transparent}.selectize-control.single .selectize-input.dropdown-active:after{margin-top:-4px;border-width:0 5px 5px 5px;border-color:transparent transparent #000 transparent}.selectize-control.rtl.single .selectize-input:after{left:15px;right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px !important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fff}.selectize-dropdown{margin:2px 0 0 0;z-index:1000;border:1px solid rgba(0,0,0,0.2);border-radius:4px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.selectize-dropdown .optgroup-header{font-size:11px;font-weight:bold;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.selectize-dropdown .optgroup:first-child:before{display:none}.selectize-dropdown .optgroup:before{content:' ';display:block;*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff;margin-left:-10px;margin-right:-10px}.selectize-dropdown [data-selectable].active{background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.selectize-dropdown-content{padding:5px 0}.selectize-dropdown-header{padding:6px 10px}.selectize-input{-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}.selectize-input.dropdown-active{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.selectize-input.dropdown-active::before{display:none}.selectize-input.input-active,.selectize-input.input-active:hover,.selectize-control.multi .selectize-input.focus{background:#fff !important;border-color:rgba(82,168,236,0.8) !important;outline:0 !important;outline:thin dotted \\9 !important;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6) !important;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6) !important;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6) !important}.selectize-control.single .selectize-input{color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.selectize-control.single .selectize-input:hover,.selectize-control.single .selectize-input:focus,.selectize-control.single .selectize-input:active,.selectize-control.single .selectize-input.active,.selectize-control.single .selectize-input.disabled,.selectize-control.single .selectize-input[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.selectize-control.single .selectize-input:active,.selectize-control.single .selectize-input.active{background-color:#ccc \\9}.selectize-control.single .selectize-input:hover{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.selectize-control.single .selectize-input.disabled{background:#e6e6e6 !important;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.selectize-control.multi .selectize-input{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.selectize-control.multi .selectize-input.has-items{padding-left:7px;padding-right:7px}.selectize-control.multi .selectize-input>div{color:#333;text-shadow:none;background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#e6e6e6;border:1px solid #ccc;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.selectize-control.multi .selectize-input>div.active{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05);color:#fff;text-shadow:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0);border-color:#0077b3 #0077b3 #046;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#08c;border:1px solid #08c}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #d0d0d0;border-bottom:0 none;border-radius:3px 3px 0 0}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:0 0 3px 3px;border-top:0 none}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active::before{top:0;bottom:unset}.selectize-control.plugin-clear_button .clear{text-decoration:none;display:flex;position:absolute;height:100%;width:25px;top:0;right:calc(10px - 3px);color:rgba(0,0,0);opacity:.4;font-weight:bold;border:0;cursor:pointer;z-index:1;font-size:21px;justify-content:center;align-items:center}.selectize-control.plugin-clear_button .clear:hover{opacity:1}.selectize-control.plugin-clear_button.single .clear{right:calc(10px - 3px + 1.5rem)}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;-webkit-box-shadow:inset 0 0 12px 4px #fff;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:'!';visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{-webkit-box-shadow:0 2px 5px rgba(0,0,0,0.2);box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown-header{position:relative;padding:3px 10px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.selectize-dropdown-header-close{position:absolute;right:10px;top:50%;color:#333;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px !important;text-decoration:none}.selectize-dropdown-header-close:hover{color:#000}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button [data-value]{position:relative;padding-right:24px !important}.selectize-control.plugin-remove_button [data-value] .remove{z-index:1;position:absolute;top:0;right:0;bottom:0;width:17px;text-align:center;font-weight:bold;font-size:12px;color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:1px 0 0 0;border-left:1px solid #ccc;-webkit-border-radius:0 2px 2px 0;-moz-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-control.plugin-remove_button [data-value] .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button [data-value].active .remove{border-left-color:#0077b3}.selectize-control.plugin-remove_button .disabled [data-value] .remove:hover{background:0}.selectize-control.plugin-remove_button .disabled [data-value] .remove{border-left-color:#e0e0e0}.selectize-control.plugin-remove_button .remove-single{position:absolute;right:0;top:0;font-size:23px}"
  },
  {
    "path": "docs/static/css/selectize.bootstrap3.css",
    "content": "/**\n * Selectize (v0.15.2)\n * https://selectize.dev\n *\n * Copyright (c) 2013-2015 Brian Reavis & contributors\n * Copyright (c) 2020-2023 Selectize Team & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis <brian@thirdroute.com>\n * @author Ris Adams <selectize@risadams.com>\n */\n.selectize-control.plugin-drag_drop.multi>.selectize-input.dragging{overflow:visible}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:\"!\";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header{position:relative;padding:6px 12px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:4px 4px 0 0}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close{position:absolute;right:12px;top:50%;color:#333;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px !important;text-decoration:none}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close:hover{color:black}.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content{display:flex}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button .item{display:inline-flex;align-items:center;padding-right:0 !important}.selectize-control.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:1px 5px;border-left:1px solid rgba(0,0,0,0);border-radius:0 2px 2px 0;box-sizing:border-box;margin-left:5px}.selectize-control.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button .item.active .remove{border-left-color:rgba(0,0,0,0)}.selectize-control.plugin-remove_button .disabled .item .remove:hover{background:0}.selectize-control.plugin-remove_button .disabled .item .remove{border-left-color:rgba(77,77,77,0)}.selectize-control.plugin-clear_button .clear{text-decoration:none;display:flex;position:absolute;height:100%;width:25px;top:0;right:calc(12px - 5px);color:#000;opacity:.4;font-weight:bold;border:0;cursor:pointer;z-index:1;font-size:21px;justify-content:center;align-items:center}.selectize-control.plugin-clear_button .clear:hover{opacity:1}.selectize-control.plugin-clear_button.single .clear{right:calc(12px - 5px + 1.5rem)}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #d0d0d0;border-bottom:0 none;border-radius:3px 3px 0 0;box-shadow:0 -6px 12px rgba(0,0,0,0.18)}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:0 0 3px 3px;border-top:0 none}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active::before{top:0;bottom:unset}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#333;font-family:inherit;font-size:inherit;line-height:20px;font-smoothing:inherit}.selectize-input,.selectize-control.single .selectize-input.input-active{background:#fff;cursor:text;display:inline-block}.selectize-input{border:1px solid #ccc;padding:6px 12px;display:inline-block;width:100%;position:relative;z-index:1;box-sizing:border-box;box-shadow:none;border-radius:4px}.selectize-control.multi .selectize-input.has-items{padding:calc(6px - 1px - 0px) 12px calc(6px - 1px - 3px - 0px)}.selectize-input.full{background-color:#fff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default !important}.selectize-input.focus{box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}.selectize-input.dropdown-active{border-radius:4px 4px 0 0}.selectize-input>*{vertical-align:baseline;display:inline-block;zoom:1}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:0 3px 3px 0;padding:1px 5px;background:#efefef;color:#333;border:0 solid rgba(0,0,0,0)}.selectize-control.multi .selectize-input>div.active{background:#337ab7;color:#fff;border:0 solid rgba(0,0,0,0)}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:gray;background:white;border:0 solid rgba(77,77,77,0)}.selectize-input>input{display:inline-block !important;padding:0 !important;min-height:0 !important;max-height:none !important;max-width:100% !important;margin:0 !important;text-indent:0 !important;border:0 none !important;background:none !important;line-height:inherit !important;user-select:auto !important;box-shadow:none !important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:none !important}.selectize-input>input[placeholder]{box-sizing:initial}.selectize-input.has-items>input{margin:0 0 !important}.selectize-input::after{content:\" \";display:block;clear:left}.selectize-input.dropdown-active::before{content:\" \";display:block;position:absolute;background:#d6d6d6;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;top:100%;left:0;width:100%;z-index:10;border:1px solid #d0d0d0;background:#fff;margin:-1px 0 0 0;border-top:0 none;box-sizing:border-box;box-shadow:0 1px 3px rgba(0,0,0,0.1);border-radius:0 0 4px 4px}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(255,237,40,0.4);border-radius:1px}.selectize-dropdown .option,.selectize-dropdown .optgroup-header,.selectize-dropdown .no-results,.selectize-dropdown .create{padding:3px 12px}.selectize-dropdown .option,.selectize-dropdown [data-disabled],.selectize-dropdown [data-disabled] [data-selectable].option{cursor:inherit;opacity:.5}.selectize-dropdown [data-selectable].option{opacity:1;cursor:pointer}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.selectize-dropdown .optgroup-header{color:#777;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#337ab7;color:#fff}.selectize-dropdown .active.create{color:#262626}.selectize-dropdown .selected{background-color:#337ab7;color:#fff}.selectize-dropdown .create{color:rgba(51,51,51,0.5)}.selectize-dropdown .active:not(.selected){background:#f5f5f5;color:#262626}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px;overflow-scrolling:touch}.selectize-dropdown-emptyoptionlabel{text-align:center}.selectize-dropdown .spinner{display:inline-block;width:30px;height:30px;margin:3px 12px}.selectize-dropdown .spinner:after{content:\" \";display:block;width:24px;height:24px;margin:3px;border-radius:50%;border:5px solid #d0d0d0;border-color:#d0d0d0 transparent #d0d0d0 transparent;animation:lds-dual-ring 1.2s linear infinite}@keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input:not(:read-only){cursor:text}.selectize-control.single .selectize-input:not(.no-arrow):after{content:\" \";display:block;position:absolute;top:50%;right:17px;margin-top:-3px;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#333 transparent transparent transparent}.selectize-control.single .selectize-input:not(.no-arrow).dropdown-active:after{margin-top:-4px;border-width:0 5px 5px 5px;border-color:transparent transparent #333 transparent}.selectize-control.rtl{text-align:right}.selectize-control.rtl.single .selectize-input:after{left:17px;right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px !important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fff}.selectize-dropdown,.selectize-dropdown.form-control{height:auto;padding:0;margin:2px 0 0 0;z-index:1000;background:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;box-shadow:0 6px 12px rgba(0,0,0,0.175)}.selectize-dropdown .optgroup-header{font-size:12px;line-height:1.428571429}.selectize-dropdown .optgroup:first-child:before{display:none}.selectize-dropdown .optgroup:before{content:\" \";display:block;height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5;margin-left:-12px;margin-right:-12px}.selectize-dropdown-content{padding:5px 0}.selectize-dropdown-emptyoptionlabel{text-align:center}.selectize-input{min-height:34px}.selectize-input.dropdown-active{border-radius:4px}.selectize-input.dropdown-active::before{display:none}.selectize-input.focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.has-error .selectize-input{border-color:#a94442;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .selectize-input:focus{border-color:#843534;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.selectize-control.multi .selectize-input.has-items{padding-left:7px;padding-right:7px}.selectize-control.multi .selectize-input>div{border-radius:3px}.form-control.selectize-control{padding:0;height:auto;border:0;background:0;box-shadow:none;border-radius:0}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #d0d0d0;border-bottom:0 none;border-radius:3px 3px 0 0;box-shadow:0 -6px 12px rgba(0,0,0,0.18)}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:0 0 3px 3px;border-top:0 none}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active::before{top:0;bottom:unset}.selectize-control.plugin-clear_button .clear{text-decoration:none;display:flex;position:absolute;height:100%;width:25px;top:0;right:calc(12px - 5px);color:#000;opacity:.4;font-weight:bold;border:0;cursor:pointer;z-index:1;font-size:21px;justify-content:center;align-items:center}.selectize-control.plugin-clear_button .clear:hover{opacity:1}.selectize-control.plugin-clear_button.single .clear{right:calc(12px - 5px + 1.5rem)}.selectize-control.plugin-drag_drop.multi>.selectize-input.dragging{overflow:visible}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:\"!\";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header{position:relative;padding:6px 12px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:4px 4px 0 0}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close{position:absolute;right:12px;top:50%;color:#333;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px !important;text-decoration:none}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close:hover{color:black}.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content{display:flex}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button .item{display:inline-flex;align-items:center;padding-right:0 !important}.selectize-control.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:1px 5px;border-left:1px solid rgba(0,0,0,0);border-radius:0 2px 2px 0;box-sizing:border-box;margin-left:5px}.selectize-control.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button .item.active .remove{border-left-color:rgba(0,0,0,0)}.selectize-control.plugin-remove_button .disabled .item .remove:hover{background:0}.selectize-control.plugin-remove_button .disabled .item .remove{border-left-color:rgba(77,77,77,0)}"
  },
  {
    "path": "docs/static/css/selectize.bootstrap4.css",
    "content": "/**\n * Selectize (v0.15.2)\n * https://selectize.dev\n *\n * Copyright (c) 2013-2015 Brian Reavis & contributors\n * Copyright (c) 2020-2023 Selectize Team & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis <brian@thirdroute.com>\n * @author Ris Adams <selectize@risadams.com>\n */\n.selectize-control.plugin-drag_drop.multi>.selectize-input.dragging{overflow:visible}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:\"!\";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header{position:relative;padding:6px .75rem;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:.25rem .25rem 0 0}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close{position:absolute;right:.75rem;top:50%;color:#343a40;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px !important;text-decoration:none}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close:hover{color:black}.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content{display:flex}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button .item{display:inline-flex;align-items:center;padding-right:0 !important}.selectize-control.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:1px 5px;border-left:1px solid #dee2e6;border-radius:0 2px 2px 0;box-sizing:border-box;margin-left:5px}.selectize-control.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button .item.active .remove{border-left-color:rgba(0,0,0,0)}.selectize-control.plugin-remove_button .disabled .item .remove:hover{background:0}.selectize-control.plugin-remove_button .disabled .item .remove{border-left-color:white}.selectize-control.plugin-clear_button .clear{text-decoration:none;display:flex;position:absolute;height:100%;width:25px;top:0;right:calc(0.75rem - 5px);color:#000;opacity:.4;font-weight:bold;border:0;cursor:pointer;z-index:1;font-size:21px;justify-content:center;align-items:center}.selectize-control.plugin-clear_button .clear:hover{opacity:1}.selectize-control.plugin-clear_button.single .clear{right:calc(0.75rem - 5px + 1.5rem)}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #d0d0d0;border-bottom:0 none;border-radius:3px 3px 0 0;box-shadow:0 -6px 12px rgba(0,0,0,0.18)}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:0 0 3px 3px;border-top:0 none}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active::before{top:0;bottom:unset}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#343a40;font-family:inherit;font-size:inherit;line-height:1.5;font-smoothing:inherit}.selectize-input,.selectize-control.single .selectize-input.input-active{background:#fff;cursor:text;display:inline-block}.selectize-input{border:1px solid #ced4da;padding:.375rem .75rem;display:inline-block;width:100%;position:relative;z-index:1;box-sizing:border-box;box-shadow:none;border-radius:.25rem}.selectize-control.multi .selectize-input.has-items{padding:calc(0.375rem - 1px - 0px) 0.75rem calc(0.375rem - 1px - 3px - 0px)}.selectize-input.full{background-color:#fff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default !important}.selectize-input.focus{box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}.selectize-input.dropdown-active{border-radius:.25rem .25rem 0 0}.selectize-input>*{vertical-align:baseline;display:inline-block;zoom:1}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:0 3px 3px 0;padding:1px 5px;background:#efefef;color:#343a40;border:0 solid #dee2e6}.selectize-control.multi .selectize-input>div.active{background:#007bff;color:#fff;border:0 solid rgba(0,0,0,0)}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:#878787;background:white;border:0 solid white}.selectize-input>input{display:inline-block !important;padding:0 !important;min-height:0 !important;max-height:none !important;max-width:100% !important;margin:0 !important;text-indent:0 !important;border:0 none !important;background:none !important;line-height:inherit !important;user-select:auto !important;box-shadow:none !important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:none !important}.selectize-input>input[placeholder]{box-sizing:initial}.selectize-input.has-items>input{margin:0 0 !important}.selectize-input::after{content:\" \";display:block;clear:left}.selectize-input.dropdown-active::before{content:\" \";display:block;position:absolute;background:#d8dde1;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;top:100%;left:0;width:100%;z-index:10;border:1px solid #d0d0d0;background:#fff;margin:-1px 0 0 0;border-top:0 none;box-sizing:border-box;box-shadow:0 1px 3px rgba(0,0,0,0.1);border-radius:0 0 .25rem .25rem}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(255,237,40,0.4);border-radius:1px}.selectize-dropdown .option,.selectize-dropdown .optgroup-header,.selectize-dropdown .no-results,.selectize-dropdown .create{padding:3px .75rem}.selectize-dropdown .option,.selectize-dropdown [data-disabled],.selectize-dropdown [data-disabled] [data-selectable].option{cursor:inherit;opacity:.5}.selectize-dropdown [data-selectable].option{opacity:1;cursor:pointer}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.selectize-dropdown .optgroup-header{color:#6c757d;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#007bff;color:#fff}.selectize-dropdown .active.create{color:#16181b}.selectize-dropdown .selected{background-color:#007bff;color:#fff}.selectize-dropdown .create{color:rgba(52,58,64,0.5)}.selectize-dropdown .active:not(.selected){background:#e9ecef;color:#16181b}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px;overflow-scrolling:touch}.selectize-dropdown-emptyoptionlabel{text-align:center}.selectize-dropdown .spinner{display:inline-block;width:30px;height:30px;margin:3px .75rem}.selectize-dropdown .spinner:after{content:\" \";display:block;width:24px;height:24px;margin:3px;border-radius:50%;border:5px solid #d0d0d0;border-color:#d0d0d0 transparent #d0d0d0 transparent;animation:lds-dual-ring 1.2s linear infinite}@keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input:not(:read-only){cursor:text}.selectize-control.single .selectize-input:not(.no-arrow):after{content:\" \";display:block;position:absolute;top:50%;right:calc(0.75rem + 5px);margin-top:-3px;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#343a40 transparent transparent transparent}.selectize-control.single .selectize-input:not(.no-arrow).dropdown-active:after{margin-top:-4px;border-width:0 5px 5px 5px;border-color:transparent transparent #343a40 transparent}.selectize-control.rtl{text-align:right}.selectize-control.rtl.single .selectize-input:after{left:calc(0.75rem + 5px);right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px !important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fff}.selectize-dropdown,.selectize-dropdown.form-control{height:auto;padding:0;margin:2px 0 0 0;z-index:1000;background:#fff;border:1px solid rgba(0,0,0,0.15);border-radius:.25rem;box-shadow:0 6px 12px rgba(0,0,0,0.175)}.selectize-dropdown .optgroup-header{font-size:.875rem;line-height:1.5}.selectize-dropdown .optgroup:first-child:before{display:none}.selectize-dropdown .optgroup:before{content:\" \";display:block;height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef;margin-left:-0.75rem;margin-right:-0.75rem}.selectize-dropdown .create{padding-left:.75rem}.selectize-dropdown-content{padding:5px 0}.selectize-dropdown-emptyoptionlabel{text-align:center}.selectize-input{min-height:calc(1.5em + 0.75rem + 2px);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.selectize-input{transition:none}}.selectize-input.dropdown-active{border-radius:.25rem}.selectize-input.dropdown-active::before{display:none}.selectize-input.focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,0.25)}.is-invalid .selectize-input{border-color:#dc3545;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.is-invalid .selectize-input:focus{border-color:#bd2130;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #eb8c95}.selectize-control.form-control-sm .selectize-input.has-items{min-height:calc(1.5em + 0.5rem + 2px) !important;height:calc(1.5em + 0.5rem + 2px);padding:.25rem .5rem !important;font-size:.875rem;line-height:1.5}.selectize-control.multi .selectize-input.has-items{height:auto;padding-left:calc(0.75rem - 5px);padding-right:calc(0.75rem - 5px)}.selectize-control.multi .selectize-input>div{border-radius:calc(0.25rem - 1px)}.form-control.selectize-control{padding:0;height:auto;border:0;background:0;box-shadow:none;border-radius:0}.input-group .selectize-control:not(:last-child) .selectize-input{overflow:unset;border-top-right-radius:0;border-bottom-right-radius:0}.input-group .selectize-control:not(:first-child) .selectize-input{overflow:unset;border-top-left-radius:0;border-bottom-left-radius:0}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #ced4da !important;border-bottom:1px solid #ced4da !important;border-radius:.25rem !important}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:.25rem !important;border-top:1px solid #ced4da !important}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #d0d0d0;border-bottom:0 none;border-radius:3px 3px 0 0;box-shadow:0 -6px 12px rgba(0,0,0,0.18)}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:0 0 3px 3px;border-top:0 none}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active::before{top:0;bottom:unset}.selectize-control.plugin-clear_button .clear{text-decoration:none;display:flex;position:absolute;height:100%;width:25px;top:0;right:calc(0.75rem - 5px);color:#000;opacity:.4;font-weight:bold;border:0;cursor:pointer;z-index:1;font-size:21px;justify-content:center;align-items:center}.selectize-control.plugin-clear_button .clear:hover{opacity:1}.selectize-control.plugin-clear_button.single .clear{right:calc(0.75rem - 5px + 1.5rem)}.selectize-control.plugin-drag_drop.multi>.selectize-input.dragging{overflow:visible}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:\"!\";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header{position:relative;padding:6px .75rem;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:.25rem .25rem 0 0}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close{position:absolute;right:.75rem;top:50%;color:#343a40;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px !important;text-decoration:none}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close:hover{color:black}.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content{display:flex}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button .item{display:inline-flex;align-items:center;padding-right:0 !important}.selectize-control.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:1px 5px;border-left:1px solid #dee2e6;border-radius:0 2px 2px 0;box-sizing:border-box;margin-left:5px}.selectize-control.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button .item.active .remove{border-left-color:rgba(0,0,0,0)}.selectize-control.plugin-remove_button .disabled .item .remove:hover{background:0}.selectize-control.plugin-remove_button .disabled .item .remove{border-left-color:white}"
  },
  {
    "path": "docs/static/css/selectize.bootstrap5.css",
    "content": "/**\n * Selectize (v0.15.2)\n * https://selectize.dev\n *\n * Copyright (c) 2013-2015 Brian Reavis & contributors\n * Copyright (c) 2020-2023 Selectize Team & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis <brian@thirdroute.com>\n * @author Ris Adams <selectize@risadams.com>\n */\n.selectize-control.plugin-drag_drop.multi>.selectize-input.dragging{overflow:visible}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:\"!\";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header{position:relative;padding:6px .75rem;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:.375rem .375rem 0 0}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close{position:absolute;right:.75rem;top:50%;color:#343a40;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px !important;text-decoration:none}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close:hover{color:black}.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content{display:flex}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button .item{display:inline-flex;align-items:center;padding-right:0 !important}.selectize-control.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:1px 5px;border-left:1px solid #dee2e6;border-radius:0 2px 2px 0;box-sizing:border-box;margin-left:5px}.selectize-control.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button .item.active .remove{border-left-color:rgba(0,0,0,0)}.selectize-control.plugin-remove_button .disabled .item .remove:hover{background:0}.selectize-control.plugin-remove_button .disabled .item .remove{border-left-color:white}.selectize-control.plugin-clear_button .clear{text-decoration:none;display:flex;position:absolute;height:100%;width:25px;top:0;right:calc(0.75rem - 5px);color:#000;opacity:.4;font-weight:bold;border:0;cursor:pointer;z-index:1;font-size:21px;justify-content:center;align-items:center}.selectize-control.plugin-clear_button .clear:hover{opacity:1}.selectize-control.plugin-clear_button.single .clear{right:calc(0.75rem - 5px + 1.5rem)}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #d0d0d0;border-bottom:0 none;border-radius:3px 3px 0 0;box-shadow:0 -6px 12px rgba(0,0,0,0.18)}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:0 0 3px 3px;border-top:0 none}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active::before{top:0;bottom:unset}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#343a40;font-family:inherit;font-size:inherit;line-height:1.5;font-smoothing:inherit}.selectize-input,.selectize-control.single .selectize-input.input-active{background:#fff;cursor:text;display:inline-block}.selectize-input{border:1px solid #ced4da;padding:.375rem .75rem;display:inline-block;width:100%;position:relative;z-index:1;box-sizing:border-box;box-shadow:none;border-radius:.375rem}.selectize-control.multi .selectize-input.has-items{padding:calc(0.375rem - 1px - 0px) 0.75rem calc(0.375rem - 1px - 3px - 0px)}.selectize-input.full{background-color:#fff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default !important}.selectize-input.focus{box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}.selectize-input.dropdown-active{border-radius:.375rem .375rem 0 0}.selectize-input>*{vertical-align:baseline;display:inline-block;zoom:1}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:0 3px 3px 0;padding:1px 5px;background:#efefef;color:#343a40;border:0 solid #dee2e6}.selectize-control.multi .selectize-input>div.active{background:#0d6efd;color:#fff;border:0 solid rgba(0,0,0,0)}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:#878787;background:white;border:0 solid white}.selectize-input>input{display:inline-block !important;padding:0 !important;min-height:0 !important;max-height:none !important;max-width:100% !important;margin:0 !important;text-indent:0 !important;border:0 none !important;background:none !important;line-height:inherit !important;user-select:auto !important;box-shadow:none !important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:none !important}.selectize-input>input[placeholder]{box-sizing:initial}.selectize-input.has-items>input{margin:0 0 !important}.selectize-input::after{content:\" \";display:block;clear:left}.selectize-input.dropdown-active::before{content:\" \";display:block;position:absolute;background:#d8dde1;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;top:100%;left:0;width:100%;z-index:10;border:1px solid #d0d0d0;background:#fff;margin:-1px 0 0 0;border-top:0 none;box-sizing:border-box;box-shadow:0 1px 3px rgba(0,0,0,0.1);border-radius:0 0 .375rem .375rem}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(255,237,40,0.4);border-radius:1px}.selectize-dropdown .option,.selectize-dropdown .optgroup-header,.selectize-dropdown .no-results,.selectize-dropdown .create{padding:3px .75rem}.selectize-dropdown .option,.selectize-dropdown [data-disabled],.selectize-dropdown [data-disabled] [data-selectable].option{cursor:inherit;opacity:.5}.selectize-dropdown [data-selectable].option{opacity:1;cursor:pointer}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.selectize-dropdown .optgroup-header{color:#6c757d;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#0d6efd;color:#fff}.selectize-dropdown .active.create{color:#1e2125}.selectize-dropdown .selected{background-color:#0d6efd;color:#fff}.selectize-dropdown .create{color:rgba(52,58,64,0.5)}.selectize-dropdown .active:not(.selected){background:#e9ecef;color:#1e2125}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px;overflow-scrolling:touch}.selectize-dropdown-emptyoptionlabel{text-align:center}.selectize-dropdown .spinner{display:inline-block;width:30px;height:30px;margin:3px .75rem}.selectize-dropdown .spinner:after{content:\" \";display:block;width:24px;height:24px;margin:3px;border-radius:50%;border:5px solid #d0d0d0;border-color:#d0d0d0 transparent #d0d0d0 transparent;animation:lds-dual-ring 1.2s linear infinite}@keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input:not(:read-only){cursor:text}.selectize-control.single .selectize-input:not(.no-arrow):after{content:\" \";display:block;position:absolute;top:50%;right:calc(0.75rem + 5px);margin-top:-3px;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#343a40 transparent transparent transparent}.selectize-control.single .selectize-input:not(.no-arrow).dropdown-active:after{margin-top:-4px;border-width:0 5px 5px 5px;border-color:transparent transparent #343a40 transparent}.selectize-control.rtl{text-align:right}.selectize-control.rtl.single .selectize-input:after{left:calc(0.75rem + 5px);right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px !important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fff}.selectize-dropdown,.selectize-dropdown.form-control{height:auto;padding:0;margin:2px 0 0 0;z-index:1000;background:#fff;border:1px solid var(--bs-border-color-translucent);border-radius:.375rem;box-shadow:0 6px 12px rgba(0,0,0,0.175)}.selectize-dropdown .optgroup-header{font-size:.875rem;line-height:1.5}.selectize-dropdown .optgroup:first-child:before{display:none}.selectize-dropdown .optgroup:before{content:\" \";display:block;height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid var(--bs-border-color-translucent);margin-left:-0.75rem;margin-right:-0.75rem}.selectize-dropdown .create{padding-left:.75rem}.selectize-dropdown-content{padding:5px 0}.selectize-dropdown-emptyoptionlabel{text-align:center}.selectize-input{min-height:calc(1.5em + 0.75rem + 2px);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.selectize-input{transition:none}}.selectize-input.dropdown-active{border-radius:.375rem}.selectize-input.dropdown-active::before{display:none}.selectize-input.focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,0.25)}.is-invalid .selectize-input{border-color:#dc3545;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.is-invalid .selectize-input:focus{border-color:#bd2130;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #eb8c95}.selectize-control.form-control-sm .selectize-input{min-height:calc(1.5em + 0.5rem + 2px) !important;height:calc(1.5em + 0.5rem + 2px);padding:.25rem .5rem !important;font-size:.875rem;line-height:1.25}.selectize-control.multi .selectize-input{height:auto;padding-left:calc(0.75rem - 5px);padding-right:calc(0.75rem - 5px)}.selectize-control.multi .selectize-input>div{border-radius:calc(0.375rem - 1px)}.form-select.selectize-control,.form-control.selectize-control{padding:0;height:auto;border:0;background:0;box-shadow:none;border-radius:0}.input-group>.input-group-append>.btn,.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.input-group-prepend>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group .selectize-control:not(:last-child) .selectize-input{overflow:unset;border-top-right-radius:0;border-bottom-right-radius:0}.input-group .selectize-control:not(:first-child) .selectize-input{overflow:unset;border-top-left-radius:0;border-bottom-left-radius:0}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #ced4da !important;border-bottom:1px solid #ced4da !important;border-radius:.375rem !important}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:.375rem !important;border-top:1px solid #ced4da !important}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #d0d0d0;border-bottom:0 none;border-radius:3px 3px 0 0;box-shadow:0 -6px 12px rgba(0,0,0,0.18)}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:0 0 3px 3px;border-top:0 none}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active::before{top:0;bottom:unset}.selectize-control.plugin-clear_button .clear{text-decoration:none;display:flex;position:absolute;height:100%;width:25px;top:0;right:calc(0.75rem - 5px);color:#000;opacity:.4;font-weight:bold;border:0;cursor:pointer;z-index:1;font-size:21px;justify-content:center;align-items:center}.selectize-control.plugin-clear_button .clear:hover{opacity:1}.selectize-control.plugin-clear_button.single .clear{right:calc(0.75rem - 5px + 1.5rem)}.selectize-control.plugin-drag_drop.multi>.selectize-input.dragging{overflow:visible}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:\"!\";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header{position:relative;padding:6px .75rem;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:.375rem .375rem 0 0}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close{position:absolute;right:.75rem;top:50%;color:#343a40;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px !important;text-decoration:none}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close:hover{color:black}.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content{display:flex}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button .item{display:inline-flex;align-items:center;padding-right:0 !important}.selectize-control.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:1px 5px;border-left:1px solid #dee2e6;border-radius:0 2px 2px 0;box-sizing:border-box;margin-left:5px}.selectize-control.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button .item.active .remove{border-left-color:rgba(0,0,0,0)}.selectize-control.plugin-remove_button .disabled .item .remove:hover{background:0}.selectize-control.plugin-remove_button .disabled .item .remove{border-left-color:white}"
  },
  {
    "path": "docs/static/css/selectize.css",
    "content": "/**\n * Selectize (v0.15.2)\n * https://selectize.dev\n *\n * Copyright (c) 2013-2015 Brian Reavis & contributors\n * Copyright (c) 2020-2023 Selectize Team & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis <brian@thirdroute.com>\n * @author Ris Adams <selectize@risadams.com>\n */\n.selectize-control.plugin-drag_drop.multi>.selectize-input.dragging{overflow:visible}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:\"!\";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header{position:relative;padding:10px 8px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:3px 3px 0 0}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close{position:absolute;right:8px;top:50%;color:#303030;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px !important;text-decoration:none}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close:hover{color:black}.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content{display:flex}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button .item{display:inline-flex;align-items:center;padding-right:0 !important}.selectize-control.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:2px 6px;border-left:1px solid #d0d0d0;border-radius:0 2px 2px 0;box-sizing:border-box;margin-left:6px}.selectize-control.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button .item.active .remove{border-left-color:#cacaca}.selectize-control.plugin-remove_button .disabled .item .remove:hover{background:0}.selectize-control.plugin-remove_button .disabled .item .remove{border-left-color:white}.selectize-control.plugin-clear_button .clear{text-decoration:none;display:flex;position:absolute;height:100%;width:25px;top:0;right:calc(8px - 6px);color:#000;opacity:.4;font-weight:bold;border:0;cursor:pointer;z-index:1;font-size:21px;justify-content:center;align-items:center}.selectize-control.plugin-clear_button .clear:hover{opacity:1}.selectize-control.plugin-clear_button.single .clear{right:calc(8px - 6px + 1.5rem)}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #d0d0d0;border-bottom:0 none;border-radius:3px 3px 0 0;box-shadow:0 -6px 12px rgba(0,0,0,0.18)}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:0 0 3px 3px;border-top:0 none}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active::before{top:0;bottom:unset}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#303030;font-family:inherit;font-size:13px;line-height:18px;font-smoothing:inherit}.selectize-input,.selectize-control.single .selectize-input.input-active{background:#fff;cursor:text;display:inline-block}.selectize-input{border:1px solid #d0d0d0;padding:8px 8px;display:inline-block;width:100%;position:relative;z-index:1;box-sizing:border-box;box-shadow:inset 0 1px 1px rgba(0,0,0,0.1);border-radius:3px}.selectize-control.multi .selectize-input.has-items{padding:calc(8px - 2px - 0px) 8px calc(8px - 2px - 3px - 0px)}.selectize-input.full{background-color:#fff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default !important}.selectize-input.focus{box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}.selectize-input.dropdown-active{border-radius:3px 3px 0 0}.selectize-input>*{vertical-align:baseline;display:inline-block;zoom:1}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:0 3px 3px 0;padding:2px 6px;background:#f2f2f2;color:#303030;border:0 solid #d0d0d0}.selectize-control.multi .selectize-input>div.active{background:#e8e8e8;color:#303030;border:0 solid #cacaca}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:#7d7d7d;background:white;border:0 solid white}.selectize-input>input{display:inline-block !important;padding:0 !important;min-height:0 !important;max-height:none !important;max-width:100% !important;margin:0 !important;text-indent:0 !important;border:0 none !important;background:none !important;line-height:inherit !important;user-select:auto !important;box-shadow:none !important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:none !important}.selectize-input>input[placeholder]{box-sizing:initial}.selectize-input.has-items>input{margin:0 0 !important}.selectize-input::after{content:\" \";display:block;clear:left}.selectize-input.dropdown-active::before{content:\" \";display:block;position:absolute;background:#f0f0f0;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;top:100%;left:0;width:100%;z-index:10;border:1px solid #d0d0d0;background:#fff;margin:-1px 0 0 0;border-top:0 none;box-sizing:border-box;box-shadow:0 1px 3px rgba(0,0,0,0.1);border-radius:0 0 3px 3px}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(125,168,208,0.2);border-radius:1px}.selectize-dropdown .option,.selectize-dropdown .optgroup-header,.selectize-dropdown .no-results,.selectize-dropdown .create{padding:5px 8px}.selectize-dropdown .option,.selectize-dropdown [data-disabled],.selectize-dropdown [data-disabled] [data-selectable].option{cursor:inherit;opacity:.5}.selectize-dropdown [data-selectable].option{opacity:1;cursor:pointer}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.selectize-dropdown .optgroup-header{color:#303030;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#e8e8e8;color:#303030}.selectize-dropdown .active.create{color:#495c68}.selectize-dropdown .selected{background-color:#e8e8e8;color:#303030}.selectize-dropdown .create{color:rgba(48,48,48,0.5)}.selectize-dropdown .active:not(.selected){background:#f5fafd;color:#495c68}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px;overflow-scrolling:touch}.selectize-dropdown-emptyoptionlabel{text-align:center}.selectize-dropdown .spinner{display:inline-block;width:30px;height:30px;margin:5px 8px}.selectize-dropdown .spinner:after{content:\" \";display:block;width:24px;height:24px;margin:3px;border-radius:50%;border:5px solid #d0d0d0;border-color:#d0d0d0 transparent #d0d0d0 transparent;animation:lds-dual-ring 1.2s linear infinite}@keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input:not(:read-only){cursor:text}.selectize-control.single .selectize-input:not(.no-arrow):after{content:\" \";display:block;position:absolute;top:50%;right:15px;margin-top:-3px;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#808080 transparent transparent transparent}.selectize-control.single .selectize-input:not(.no-arrow).dropdown-active:after{margin-top:-4px;border-width:0 5px 5px 5px;border-color:transparent transparent #808080 transparent}.selectize-control.rtl{text-align:right}.selectize-control.rtl.single .selectize-input:after{left:15px;right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px !important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fafafa}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #d0d0d0;border-bottom:0 none;border-radius:3px 3px 0 0;box-shadow:0 -6px 12px rgba(0,0,0,0.18)}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:0 0 3px 3px;border-top:0 none}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active::before{top:0;bottom:unset}.selectize-control.plugin-clear_button .clear{text-decoration:none;display:flex;position:absolute;height:100%;width:25px;top:0;right:calc(8px - 6px);color:#000;opacity:.4;font-weight:bold;border:0;cursor:pointer;z-index:1;font-size:21px;justify-content:center;align-items:center}.selectize-control.plugin-clear_button .clear:hover{opacity:1}.selectize-control.plugin-clear_button.single .clear{right:calc(8px - 6px + 1.5rem)}.selectize-control.plugin-drag_drop.multi>.selectize-input.dragging{overflow:visible}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:\"!\";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header{position:relative;padding:10px 8px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:3px 3px 0 0}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close{position:absolute;right:8px;top:50%;color:#303030;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px !important;text-decoration:none}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close:hover{color:black}.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content{display:flex}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button .item{display:inline-flex;align-items:center;padding-right:0 !important}.selectize-control.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:2px 6px;border-left:1px solid #d0d0d0;border-radius:0 2px 2px 0;box-sizing:border-box;margin-left:6px}.selectize-control.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button .item.active .remove{border-left-color:#cacaca}.selectize-control.plugin-remove_button .disabled .item .remove:hover{background:0}.selectize-control.plugin-remove_button .disabled .item .remove{border-left-color:white}"
  },
  {
    "path": "docs/static/css/selectize.default.css",
    "content": "/**\n * Selectize (v0.15.2)\n * https://selectize.dev\n *\n * Copyright (c) 2013-2015 Brian Reavis & contributors\n * Copyright (c) 2020-2023 Selectize Team & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis <brian@thirdroute.com>\n * @author Ris Adams <selectize@risadams.com>\n */\n.selectize-control.plugin-drag_drop.multi>.selectize-input.dragging{overflow:visible}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:\"!\";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header{position:relative;padding:10px 8px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:3px 3px 0 0}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close{position:absolute;right:8px;top:50%;color:#303030;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px !important;text-decoration:none}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close:hover{color:black}.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content{display:flex}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button .item{display:inline-flex;align-items:center;padding-right:0 !important}.selectize-control.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:2px 6px;border-left:1px solid #0073bb;border-radius:0 2px 2px 0;box-sizing:border-box;margin-left:6px}.selectize-control.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button .item.active .remove{border-left-color:#00578d}.selectize-control.plugin-remove_button .disabled .item .remove:hover{background:0}.selectize-control.plugin-remove_button .disabled .item .remove{border-left-color:#aaa}.selectize-control.plugin-clear_button .clear{text-decoration:none;display:flex;position:absolute;height:100%;width:25px;top:0;right:calc(8px - 6px);color:#000;opacity:.4;font-weight:bold;border:0;cursor:pointer;z-index:1;font-size:21px;justify-content:center;align-items:center}.selectize-control.plugin-clear_button .clear:hover{opacity:1}.selectize-control.plugin-clear_button.single .clear{right:calc(8px - 6px + 1.5rem)}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #d0d0d0;border-bottom:0 none;border-radius:3px 3px 0 0;box-shadow:0 -6px 12px rgba(0,0,0,0.18)}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:0 0 3px 3px;border-top:0 none}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active::before{top:0;bottom:unset}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#303030;font-family:inherit;font-size:13px;line-height:18px;font-smoothing:inherit}.selectize-input,.selectize-control.single .selectize-input.input-active{background:#fff;cursor:text;display:inline-block}.selectize-input{border:1px solid #d0d0d0;padding:8px 8px;display:inline-block;width:100%;position:relative;z-index:1;box-sizing:border-box;box-shadow:inset 0 1px 1px rgba(0,0,0,0.1);border-radius:3px}.selectize-control.multi .selectize-input.has-items{padding:calc(8px - 2px - 1px) 8px calc(8px - 2px - 3px - 1px)}.selectize-input.full{background-color:#fff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default !important}.selectize-input.focus{box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}.selectize-input.dropdown-active{border-radius:3px 3px 0 0}.selectize-input>*{vertical-align:baseline;display:inline-block;zoom:1}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:0 3px 3px 0;padding:2px 6px;background:#1da7ee;color:#fff;border:1px solid #0073bb}.selectize-control.multi .selectize-input>div.active{background:#92c836;color:#fff;border:1px solid #00578d}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:white;background:#d2d2d2;border:1px solid #aaa}.selectize-input>input{display:inline-block !important;padding:0 !important;min-height:0 !important;max-height:none !important;max-width:100% !important;margin:0 !important;text-indent:0 !important;border:0 none !important;background:none !important;line-height:inherit !important;user-select:auto !important;box-shadow:none !important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:none !important}.selectize-input>input[placeholder]{box-sizing:initial}.selectize-input.has-items>input{margin:0 0 !important}.selectize-input::after{content:\" \";display:block;clear:left}.selectize-input.dropdown-active::before{content:\" \";display:block;position:absolute;background:#f0f0f0;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;top:100%;left:0;width:100%;z-index:10;border:1px solid #d0d0d0;background:#fff;margin:-1px 0 0 0;border-top:0 none;box-sizing:border-box;box-shadow:0 1px 3px rgba(0,0,0,0.1);border-radius:0 0 3px 3px}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(125,168,208,0.2);border-radius:1px}.selectize-dropdown .option,.selectize-dropdown .optgroup-header,.selectize-dropdown .no-results,.selectize-dropdown .create{padding:5px 8px}.selectize-dropdown .option,.selectize-dropdown [data-disabled],.selectize-dropdown [data-disabled] [data-selectable].option{cursor:inherit;opacity:.5}.selectize-dropdown [data-selectable].option{opacity:1;cursor:pointer}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.selectize-dropdown .optgroup-header{color:#303030;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#92c836;color:#fff}.selectize-dropdown .active.create{color:#495c68}.selectize-dropdown .selected{background-color:#92c836;color:#fff}.selectize-dropdown .create{color:rgba(48,48,48,0.5)}.selectize-dropdown .active:not(.selected){background:#f5fafd;color:#495c68}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px;overflow-scrolling:touch}.selectize-dropdown-emptyoptionlabel{text-align:center}.selectize-dropdown .spinner{display:inline-block;width:30px;height:30px;margin:5px 8px}.selectize-dropdown .spinner:after{content:\" \";display:block;width:24px;height:24px;margin:3px;border-radius:50%;border:5px solid #d0d0d0;border-color:#d0d0d0 transparent #d0d0d0 transparent;animation:lds-dual-ring 1.2s linear infinite}@keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input:not(:read-only){cursor:text}.selectize-control.single .selectize-input:not(.no-arrow):after{content:\" \";display:block;position:absolute;top:50%;right:15px;margin-top:-3px;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#808080 transparent transparent transparent}.selectize-control.single .selectize-input:not(.no-arrow).dropdown-active:after{margin-top:-4px;border-width:0 5px 5px 5px;border-color:transparent transparent #808080 transparent}.selectize-control.rtl{text-align:right}.selectize-control.rtl.single .selectize-input:after{left:15px;right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px !important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fafafa}.selectize-control.multi .selectize-input.has-items{padding-left:5px;padding-right:5px}.selectize-control.multi .selectize-input.disabled [data-value]{color:#999;text-shadow:none;background:0;box-shadow:none}.selectize-control.multi .selectize-input.disabled [data-value],.selectize-control.multi .selectize-input.disabled [data-value] .remove{border-color:#e6e6e6}.selectize-control.multi .selectize-input.disabled [data-value] .remove{background:0}.selectize-control.multi .selectize-input [data-value]{text-shadow:0 1px 0 rgba(0,51,83,0.3);border-radius:3px;background-color:#1b9dec;background-image:linear-gradient(to bottom,#1da7ee,#178ee9);background-repeat:repeat-x;box-shadow:0 1px 0 rgba(0,0,0,0.2),inset 0 1px rgba(255,255,255,0.03)}.selectize-control.multi .selectize-input [data-value].active{background-color:#0085d4;background-image:linear-gradient(to bottom,#008fd8,#0075cf);background-repeat:repeat-x}.selectize-control.single .selectize-input{box-shadow:0 1px 0 rgba(0,0,0,0.05),inset 0 1px 0 rgba(255,255,255,0.8);background-color:#f9f9f9;background-image:linear-gradient(to bottom,#fefefe,#f2f2f2);background-repeat:repeat-x}.selectize-control.single .selectize-input,.selectize-dropdown.single{border-color:#b8b8b8}.selectize-dropdown .optgroup-header{padding-top:7px;font-weight:bold;font-size:.85em}.selectize-dropdown .optgroup{border-top:1px solid #f0f0f0}.selectize-dropdown .optgroup:first-child{border-top:0 none}.selectize-dropdown.plugin-auto_position.selectize-position-top{border-top:1px solid #d0d0d0;border-bottom:0 none;border-radius:3px 3px 0 0;box-shadow:0 -6px 12px rgba(0,0,0,0.18)}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active{border-radius:0 0 3px 3px;border-top:0 none}.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active::before{top:0;bottom:unset}.selectize-control.plugin-clear_button .clear{text-decoration:none;display:flex;position:absolute;height:100%;width:25px;top:0;right:calc(8px - 6px);color:#000;opacity:.4;font-weight:bold;border:0;cursor:pointer;z-index:1;font-size:21px;justify-content:center;align-items:center}.selectize-control.plugin-clear_button .clear:hover{opacity:1}.selectize-control.plugin-clear_button.single .clear{right:calc(8px - 6px + 1.5rem)}.selectize-control.plugin-drag_drop.multi>.selectize-input.dragging{overflow:visible}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:\"!\";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header{position:relative;padding:10px 8px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:3px 3px 0 0}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close{position:absolute;right:8px;top:50%;color:#303030;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px !important;text-decoration:none}.selectize-dropdown.plugin-dropdown_header .selectize-dropdown-header-close:hover{color:black}.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content{display:flex}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button .item{display:inline-flex;align-items:center;padding-right:0 !important}.selectize-control.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:2px 6px;border-left:1px solid #0073bb;border-radius:0 2px 2px 0;box-sizing:border-box;margin-left:6px}.selectize-control.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button .item.active .remove{border-left-color:#00578d}.selectize-control.plugin-remove_button .disabled .item .remove:hover{background:0}.selectize-control.plugin-remove_button .disabled .item .remove{border-left-color:#aaa}"
  },
  {
    "path": "docs/static/js/selectize.js",
    "content": "/**\n * Selectize (v0.15.2)\n * https://selectize.dev\n *\n * Copyright (c) 2013-2015 Brian Reavis & contributors\n * Copyright (c) 2020-2023 Selectize Team & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis <brian@thirdroute.com>\n * @author Ris Adams <selectize@risadams.com>\n */\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && typeof module.exports === 'object') {\n    module.exports = factory(require('jquery'));\n  } else {\n    root.Selectize = factory(root.jQuery);\n  }\n}(this, function ($) {\n  'use strict';\nvar highlight = function ($element, pattern) {\n  if (typeof pattern === 'string' && !pattern.length) return;\n  var regex = (typeof pattern === 'string') ? new RegExp(pattern, 'i') : pattern;\n\n  var highlight = function (node) {\n    var skip = 0;\n    if (node.nodeType === 3) {\n      var pos = node.data.search(regex);\n      if (pos >= 0 && node.data.length > 0) {\n        var match = node.data.match(regex);\n        var spannode = document.createElement('span');\n        spannode.className = 'highlight';\n        var middlebit = node.splitText(pos);\n        var endbit = middlebit.splitText(match[0].length);\n        var middleclone = middlebit.cloneNode(true);\n        spannode.appendChild(middleclone);\n        middlebit.parentNode.replaceChild(spannode, middlebit);\n        skip = 1;\n      }\n    }\n    else if (node.nodeType === 1 && node.childNodes && !/(script|style)/i.test(node.tagName) && (node.className !== 'highlight' || node.tagName !== 'SPAN')) {\n      for (var i = 0; i < node.childNodes.length; ++i) {\n        i += highlight(node.childNodes[i]);\n      }\n    }\n    return skip;\n  };\n\n  return $element.each(function () {\n    highlight(this);\n  });\n};\n\n$.fn.removeHighlight = function () {\n  return this.find(\"span.highlight\").each(function () {\n    this.parentNode.firstChild.nodeName;\n    var parent = this.parentNode;\n    parent.replaceChild(this.firstChild, this);\n    parent.normalize();\n  }).end();\n};\n\nvar MicroEvent = function () { };\nMicroEvent.prototype = {\n  on: function (event, fct) {\n    this._events = this._events || {};\n    this._events[event] = this._events[event] || [];\n    this._events[event].push(fct);\n  },\n  off: function (event, fct) {\n    var n = arguments.length;\n    if (n === 0) return delete this._events;\n    if (n === 1) return delete this._events[event];\n\n    this._events = this._events || {};\n    if (event in this._events === false) return;\n    this._events[event].splice(this._events[event].indexOf(fct), 1);\n  },\n  trigger: function (event ) {\n    const events = this._events = this._events || {};\n    if (event in events === false) return;\n    for (var i = 0; i < events[event].length; i++) {\n      events[event][i].apply(this, Array.prototype.slice.call(arguments, 1));\n    }\n  }\n};\n\nMicroEvent.mixin = function (destObject) {\n  var props = ['on', 'off', 'trigger'];\n  for (var i = 0; i < props.length; i++) {\n    destObject.prototype[props[i]] = MicroEvent.prototype[props[i]];\n  }\n};\n\nvar MicroPlugin = {};\nMicroPlugin.mixin = function (Interface) {\n\n  Interface.plugins = {};\n\n  Interface.prototype.initializePlugins = function (plugins) {\n    var i, n, key;\n    var self = this;\n    var queue = [];\n\n    self.plugins = {\n      names: [],\n      settings: {},\n      requested: {},\n      loaded: {}\n    };\n\n    if (isArray(plugins)) {\n      for (i = 0, n = plugins.length; i < n; i++) {\n        if (typeof plugins[i] === 'string') {\n          queue.push(plugins[i]);\n        } else {\n          self.plugins.settings[plugins[i].name] = plugins[i].options;\n          queue.push(plugins[i].name);\n        }\n      }\n    } else if (plugins) {\n      for (key in plugins) {\n        if (plugins.hasOwnProperty(key)) {\n          self.plugins.settings[key] = plugins[key];\n          queue.push(key);\n        }\n      }\n    }\n\n    while (queue.length) {\n      self.require(queue.shift());\n    }\n  };\n\n\n  Interface.prototype.loadPlugin = function (name) {\n    var self = this;\n    var plugins = self.plugins;\n    var plugin = Interface.plugins[name];\n\n    if (!Interface.plugins.hasOwnProperty(name)) {\n      throw new Error('Unable to find \"' + name + '\" plugin');\n    }\n\n    plugins.requested[name] = true;\n    plugins.loaded[name] = plugin.fn.apply(self, [self.plugins.settings[name] || {}]);\n    plugins.names.push(name);\n  };\n\n  Interface.prototype.require = function (name) {\n    var self = this;\n    var plugins = self.plugins;\n\n    if (!self.plugins.loaded.hasOwnProperty(name)) {\n      if (plugins.requested[name]) {\n        throw new Error('Plugin has circular dependency (\"' + name + '\")');\n      }\n      self.loadPlugin(name);\n    }\n\n    return plugins.loaded[name];\n  };\n\n  Interface.define = function (name, fn) {\n    Interface.plugins[name] = {\n      'name': name,\n      'fn': fn\n    };\n  };\n};\n\nconst nanoid = (t = 21) => crypto.getRandomValues(new Uint8Array(t))\n  .reduce(((t, e) =>\n    t += (e &= 63) < 36 ? e.toString(36) :\n      e < 62 ? (e - 26).toString(36).toUpperCase()\n        : e > 62 ? \"-\" : \"_\"), \"\");\n\n\nvar Sifter = function (items, settings) {\n  this.items = items;\n  this.settings = settings || { diacritics: true };\n};\n\nSifter.prototype.tokenize = function (query, respect_word_boundaries) {\n  query = trim(String(query || '').toLowerCase());\n  if (!query || !query.length) return [];\n\n  var i, n, regex, letter;\n  var tokens = [];\n  var words = query.split(/ +/);\n\n  for (i = 0, n = words.length; i < n; i++) {\n    regex = escape_regex(words[i]);\n    if (this.settings.diacritics) {\n      for (letter in DIACRITICS) {\n        if (DIACRITICS.hasOwnProperty(letter)) {\n          regex = regex.replace(new RegExp(letter, 'g'), DIACRITICS[letter]);\n        }\n      }\n    }\n    if (respect_word_boundaries) regex = \"\\\\b\" + regex\n    tokens.push({\n      string: words[i],\n      regex: new RegExp(regex, 'i')\n    });\n  }\n\n  return tokens;\n};\n\nSifter.prototype.iterator = function (object, callback) {\n  var iterator;\n  if (is_array(object)) {\n    iterator = Array.prototype.forEach || function (callback) {\n      for (var i = 0, n = this.length; i < n; i++) {\n        callback(this[i], i, this);\n      }\n    };\n  } else {\n    iterator = function (callback) {\n      for (var key in this) {\n        if (this.hasOwnProperty(key)) {\n          callback(this[key], key, this);\n        }\n      }\n    };\n  }\n\n  iterator.apply(object, [callback]);\n};\n\nSifter.prototype.getScoreFunction = function (search, options) {\n  var self, fields, tokens, token_count, nesting;\n\n  self = this;\n  search = self.prepareSearch(search, options);\n  tokens = search.tokens;\n  fields = search.options.fields;\n  token_count = tokens.length;\n  nesting = search.options.nesting;\n\n  var scoreValue = function (value, token) {\n    var score, pos;\n\n    if (!value) return 0;\n    value = String(value || '');\n    pos = value.search(token.regex);\n    if (pos === -1) return 0;\n    score = token.string.length / value.length;\n    if (pos === 0) score += 0.5;\n    return score;\n  };\n\n  var scoreObject = (function () {\n    var field_count = fields.length;\n    if (!field_count) {\n      return function () { return 0; };\n    }\n    if (field_count === 1) {\n      return function (token, data) {\n        return scoreValue(getattr(data, fields[0], nesting), token);\n      };\n    }\n    return function (token, data) {\n      for (var i = 0, sum = 0; i < field_count; i++) {\n        sum += scoreValue(getattr(data, fields[i], nesting), token);\n      }\n      return sum / field_count;\n    };\n  })();\n\n  if (!token_count) {\n    return function () { return 0; };\n  }\n  if (token_count === 1) {\n    return function (data) {\n      return scoreObject(tokens[0], data);\n    };\n  }\n\n  if (search.options.conjunction === 'and') {\n    return function (data) {\n      var score;\n      for (var i = 0, sum = 0; i < token_count; i++) {\n        score = scoreObject(tokens[i], data);\n        if (score <= 0) return 0;\n        sum += score;\n      }\n      return sum / token_count;\n    };\n  } else {\n    return function (data) {\n      for (var i = 0, sum = 0; i < token_count; i++) {\n        sum += scoreObject(tokens[i], data);\n      }\n      return sum / token_count;\n    };\n  }\n};\n\nSifter.prototype.getSortFunction = function (search, options) {\n  var i, n, self, field, fields, fields_count, multiplier, multipliers, get_field, implicit_score, sort;\n\n  self = this;\n  search = self.prepareSearch(search, options);\n  sort = (!search.query && options.sort_empty) || options.sort;\n\n  get_field = function (name, result) {\n    if (name === '$score') return result.score;\n    return getattr(self.items[result.id], name, options.nesting);\n  };\n\n  fields = [];\n  if (sort) {\n    for (i = 0, n = sort.length; i < n; i++) {\n      if (search.query || sort[i].field !== '$score') {\n        fields.push(sort[i]);\n      }\n    }\n  }\n\n  if (search.query) {\n    implicit_score = true;\n    for (i = 0, n = fields.length; i < n; i++) {\n      if (fields[i].field === '$score') {\n        implicit_score = false;\n        break;\n      }\n    }\n    if (implicit_score) {\n      fields.unshift({ field: '$score', direction: 'desc' });\n    }\n  } else {\n    for (i = 0, n = fields.length; i < n; i++) {\n      if (fields[i].field === '$score') {\n        fields.splice(i, 1);\n        break;\n      }\n    }\n  }\n\n  multipliers = [];\n  for (i = 0, n = fields.length; i < n; i++) {\n    multipliers.push(fields[i].direction === 'desc' ? -1 : 1);\n  }\n\n  fields_count = fields.length;\n  if (!fields_count) {\n    return null;\n  } else if (fields_count === 1) {\n    field = fields[0].field;\n    multiplier = multipliers[0];\n    return function (a, b) {\n      return multiplier * cmp(\n        get_field(field, a),\n        get_field(field, b)\n      );\n    };\n  } else {\n    return function (a, b) {\n      var i, result, a_value, b_value, field;\n      for (i = 0; i < fields_count; i++) {\n        field = fields[i].field;\n        result = multipliers[i] * cmp(\n          get_field(field, a),\n          get_field(field, b)\n        );\n        if (result) return result;\n      }\n      return 0;\n    };\n  }\n};\n\nSifter.prototype.prepareSearch = function (query, options) {\n  if (typeof query === 'object') return query;\n\n  options = extend({}, options);\n\n  var option_fields = options.fields;\n  var option_sort = options.sort;\n  var option_sort_empty = options.sort_empty;\n\n  if (option_fields && !is_array(option_fields)) options.fields = [option_fields];\n  if (option_sort && !is_array(option_sort)) options.sort = [option_sort];\n  if (option_sort_empty && !is_array(option_sort_empty)) options.sort_empty = [option_sort_empty];\n\n  return {\n    options: options,\n    query: String(query || '').toLowerCase(),\n    tokens: this.tokenize(query, options.respect_word_boundaries),\n    total: 0,\n    items: []\n  };\n};\n\nSifter.prototype.search = function (query, options) {\n  var self = this, value, score, search, calculateScore;\n  var fn_sort;\n  var fn_score;\n\n  search = this.prepareSearch(query, options);\n  options = search.options;\n  query = search.query;\n\n  fn_score = options.score || self.getScoreFunction(search);\n\n  if (query.length) {\n    self.iterator(self.items, function (item, id) {\n      score = fn_score(item);\n      if (options.filter === false || score > 0) {\n        search.items.push({ 'score': score, 'id': id });\n      }\n    });\n  } else {\n    self.iterator(self.items, function (item, id) {\n      search.items.push({ 'score': 1, 'id': id });\n    });\n  }\n\n  fn_sort = self.getSortFunction(search, options);\n  if (fn_sort) search.items.sort(fn_sort);\n\n  search.total = search.items.length;\n  if (typeof options.limit === 'number') {\n    search.items = search.items.slice(0, options.limit);\n  }\n\n  return search;\n};\n\nvar cmp = function (a, b) {\n  if (typeof a === 'number' && typeof b === 'number') {\n    return a > b ? 1 : (a < b ? -1 : 0);\n  }\n  a = asciifold(String(a || ''));\n  b = asciifold(String(b || ''));\n  if (a > b) return 1;\n  if (b > a) return -1;\n  return 0;\n};\n\nvar extend = function (a, b) {\n  var i, n, k, object;\n  for (i = 1, n = arguments.length; i < n; i++) {\n    object = arguments[i];\n    if (!object) continue;\n    for (k in object) {\n      if (object.hasOwnProperty(k)) {\n        a[k] = object[k];\n      }\n    }\n  }\n  return a;\n};\n\nvar getattr = function (obj, name, nesting) {\n  if (!obj || !name) return;\n  if (!nesting) return obj[name];\n  var names = name.split(\".\");\n  while (names.length && (obj = obj[names.shift()]));\n  return obj;\n};\n\nvar trim = function (str) {\n  return (str + '').replace(/^\\s+|\\s+$|/g, '');\n};\n\nvar escape_regex = function (str) {\n  return (str + '').replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1');\n};\n\nvar is_array = Array.isArray || function (object) {\n  return Object.prototype.toString.call(object) === '[object Array]';\n};\n\nvar DIACRITICS = {\n  'a': '[aḀḁĂăÂâǍǎȺⱥȦȧẠạÄäÀàÁáĀāÃãÅåąĄÃąĄ]',\n  'b': '[b␢βΒB฿𐌁ᛒ]',\n  'c': '[cĆćĈĉČčĊċC̄c̄ÇçḈḉȻȼƇƈɕᴄＣｃ]',\n  'd': '[dĎďḊḋḐḑḌḍḒḓḎḏĐđD̦d̦ƉɖƊɗƋƌᵭᶁᶑȡᴅＤｄð]',\n  'e': '[eÉéÈèÊêḘḙĚěĔĕẼẽḚḛẺẻĖėËëĒēȨȩĘęᶒɆɇȄȅẾếỀềỄễỂểḜḝḖḗḔḕȆȇẸẹỆệⱸᴇＥｅɘǝƏƐε]',\n  'f': '[fƑƒḞḟ]',\n  'g': '[gɢ₲ǤǥĜĝĞğĢģƓɠĠġ]',\n  'h': '[hĤĥĦħḨḩẖẖḤḥḢḣɦʰǶƕ]',\n  'i': '[iÍíÌìĬĭÎîǏǐÏïḮḯĨĩĮįĪīỈỉȈȉȊȋỊịḬḭƗɨɨ̆ᵻᶖİiIıɪＩｉ]',\n  'j': '[jȷĴĵɈɉʝɟʲ]',\n  'k': '[kƘƙꝀꝁḰḱǨǩḲḳḴḵκϰ₭]',\n  'l': '[lŁłĽľĻļĹĺḶḷḸḹḼḽḺḻĿŀȽƚⱠⱡⱢɫɬᶅɭȴʟＬｌ]',\n  'n': '[nŃńǸǹŇňÑñṄṅŅņṆṇṊṋṈṉN̈n̈ƝɲȠƞᵰᶇɳȵɴＮｎŊŋ]',\n  'o': '[oØøÖöÓóÒòÔôǑǒŐőŎŏȮȯỌọƟɵƠơỎỏŌōÕõǪǫȌȍՕօ]',\n  'p': '[pṔṕṖṗⱣᵽƤƥᵱ]',\n  'q': '[qꝖꝗʠɊɋꝘꝙq̃]',\n  'r': '[rŔŕɌɍŘřŖŗṘṙȐȑȒȓṚṛⱤɽ]',\n  's': '[sŚśṠṡṢṣꞨꞩŜŝŠšŞşȘșS̈s̈]',\n  't': '[tŤťṪṫŢţṬṭƮʈȚțṰṱṮṯƬƭ]',\n  'u': '[uŬŭɄʉỤụÜüÚúÙùÛûǓǔŰűŬŭƯưỦủŪūŨũŲųȔȕ∪]',\n  'v': '[vṼṽṾṿƲʋꝞꝟⱱʋ]',\n  'w': '[wẂẃẀẁŴŵẄẅẆẇẈẉ]',\n  'x': '[xẌẍẊẋχ]',\n  'y': '[yÝýỲỳŶŷŸÿỸỹẎẏỴỵɎɏƳƴ]',\n  'z': '[zŹźẐẑŽžŻżẒẓẔẕƵƶ]'\n};\n\nvar asciifold = (function () {\n  var i, n, k, chunk;\n  var i18nChars = '';\n  var lookup = {};\n  for (k in DIACRITICS) {\n    if (DIACRITICS.hasOwnProperty(k)) {\n      chunk = DIACRITICS[k].substring(2, DIACRITICS[k].length - 1);\n      i18nChars += chunk;\n      for (i = 0, n = chunk.length; i < n; i++) {\n        lookup[chunk.charAt(i)] = k;\n      }\n    }\n  }\n  var regexp = new RegExp('[' + i18nChars + ']', 'g');\n  return function (str) {\n    return str.replace(regexp, function (i18nChar) {\n      return lookup[i18nChar];\n    }).toLowerCase();\n  };\n})();\n\nvar IS_MAC = uaDetect(\"macOS\", /Mac/);\nvar KEY_A = 65;\nvar KEY_COMMA = 188;\nvar KEY_RETURN = 13;\nvar KEY_ESC = 27;\nvar KEY_LEFT = 37;\nvar KEY_UP = 38;\nvar KEY_P = 80;\nvar KEY_RIGHT = 39;\nvar KEY_DOWN = 40;\nvar KEY_N = 78;\nvar KEY_BACKSPACE = 8;\nvar KEY_DELETE = 46;\nvar KEY_SHIFT = 16;\nvar KEY_CMD = IS_MAC ? 91 : 17;\nvar KEY_CTRL = IS_MAC ? 18 : 17;\nvar KEY_TAB = 9;\nvar TAG_SELECT = 1;\nvar TAG_INPUT = 2;\n\nvar SUPPORTS_VALIDITY_API = !uaDetect(\"Android\", /android/i) && !!document.createElement('input').validity;\n\nvar isset = function (object) {\n  return typeof object !== 'undefined';\n};\n\nvar isArray = Array.isArray || function (vArg) {\n  return Object.prototype.toString.call(vArg) === '[object Array]';\n}\n\nvar hash_key = function (value) {\n  if (typeof value === 'undefined' || value === null) return null;\n  if (typeof value === 'boolean') return value ? '1' : '0';\n  return value + '';\n};\n\nvar escape_html = function (str) {\n  return (str + '')\n    .replace(/&/g, '&amp;')\n    .replace(/</g, '&lt;')\n    .replace(/>/g, '&gt;')\n    .replace(/\"/g, '&quot;');\n};\n\nvar escape_replace = function (str) {\n  return (str + '').replace(/\\$/g, '$$$$');\n};\n\nvar hook = {};\n\nhook.before = function (self, method, fn) {\n  var original = self[method];\n  self[method] = function () {\n    fn.apply(self, arguments);\n    return original.apply(self, arguments);\n  };\n};\n\nhook.after = function (self, method, fn) {\n  var original = self[method];\n  self[method] = function () {\n    var result = original.apply(self, arguments);\n    fn.apply(self, arguments);\n    return result;\n  };\n};\n\nvar once = function (fn) {\n  var called = false;\n  return function () {\n    if (called) return;\n    called = true;\n    fn.apply(this, arguments);\n  };\n};\n\nvar debounce = function (fn, delay) {\n  var timeout;\n  return function () {\n    var self = this;\n    var args = arguments;\n    window.clearTimeout(timeout);\n    timeout = window.setTimeout(function () {\n      fn.apply(self, args);\n    }, delay);\n  };\n};\n\nvar debounce_events = function (self, types, fn) {\n  var type;\n  var trigger = self.trigger;\n  var event_args = {};\n\n  self.trigger = function () {\n    var type = arguments[0];\n    if (types.indexOf(type) !== -1) {\n      event_args[type] = arguments;\n    } else {\n      return trigger.apply(self, arguments);\n    }\n  };\n\n  fn.apply(self, []);\n  self.trigger = trigger;\n\n  for (type in event_args) {\n    if (event_args.hasOwnProperty(type)) {\n      trigger.apply(self, event_args[type]);\n    }\n  }\n};\n\nvar watchChildEvent = function ($parent, event, selector, fn) {\n  $parent.on(event, selector, function (e) {\n    var child = e.target;\n    while (child && child.parentNode !== $parent[0]) {\n      child = child.parentNode;\n    }\n    e.currentTarget = child;\n    return fn.apply(this, [e]);\n  });\n};\n\nvar getInputSelection = function (input) {\n  var result = {};\n  if (input === undefined) {\n    console.warn('WARN getInputSelection cannot locate input control');\n    return result;\n  }\n  if ('selectionStart' in input) {\n    result.start = input.selectionStart;\n    result.length = input.selectionEnd - result.start;\n  } else if (document.selection) {\n    input.focus();\n    var sel = document.selection.createRange();\n    var selLen = document.selection.createRange().text.length;\n    sel.moveStart('character', -input.value.length);\n    result.start = sel.text.length - selLen;\n    result.length = selLen;\n  }\n  return result;\n};\n\nvar transferStyles = function ($from, $to, properties) {\n  var i, n, styles = {};\n  if (properties) {\n    for (i = 0, n = properties.length; i < n; i++) {\n      styles[properties[i]] = $from.css(properties[i]);\n    }\n  } else {\n    styles = $from.css();\n  }\n  $to.css(styles);\n};\n\nvar measureString = function (str, $parent) {\n  if (!str) {\n    return 0;\n  }\n\n  if (!Selectize.$testInput) {\n    Selectize.$testInput = $('<span />').css({\n      position: 'absolute',\n      width: 'auto',\n      padding: 0,\n      whiteSpace: 'pre'\n    });\n\n    $('<div />').css({\n      position: 'absolute',\n      width: 0,\n      height: 0,\n      overflow: 'hidden'\n    }).attr({\n      'aria-hidden': true\n    }).append(Selectize.$testInput).appendTo('body');\n  }\n\n  Selectize.$testInput.text(str);\n\n  transferStyles($parent, Selectize.$testInput, [\n    'letterSpacing',\n    'fontSize',\n    'fontFamily',\n    'fontWeight',\n    'textTransform'\n  ]);\n\n  return Selectize.$testInput.width();\n};\n\nvar autoGrow = function ($input) {\n  var currentWidth = null;\n\n  var update = function (e, options) {\n    var value, keyCode, printable, width;\n    var placeholder, placeholderWidth;\n    var shift, character, selection;\n    e = e || window.event || {};\n    options = options || {};\n\n    if (e.metaKey || e.altKey) return;\n    if (!options.force && $input.data('grow') === false) return;\n\n    value = $input.val();\n    if (e.type && e.type.toLowerCase() === 'keydown') {\n      keyCode = e.keyCode;\n      printable = (\n        (keyCode >= 48 && keyCode <= 57) || \n        (keyCode >= 65 && keyCode <= 90) || \n        (keyCode >= 96 && keyCode <= 111) || \n        (keyCode >= 186 && keyCode <= 222) || \n        keyCode === 32 \n      );\n\n      if (keyCode === KEY_DELETE || keyCode === KEY_BACKSPACE) {\n        selection = getInputSelection($input[0]);\n        if (selection.length) {\n          value = value.substring(0, selection.start) + value.substring(selection.start + selection.length);\n        } else if (keyCode === KEY_BACKSPACE && selection.start) {\n          value = value.substring(0, selection.start - 1) + value.substring(selection.start + 1);\n        } else if (keyCode === KEY_DELETE && typeof selection.start !== 'undefined') {\n          value = value.substring(0, selection.start) + value.substring(selection.start + 1);\n        }\n      } else if (printable) {\n        shift = e.shiftKey;\n        character = String.fromCharCode(e.keyCode);\n        if (shift) character = character.toUpperCase();\n        else character = character.toLowerCase();\n        value += character;\n      }\n    }\n\n    var width = $input.attr('readonly') ? 0 : 4;\n    placeholder = $input.attr('placeholder');\n    if (placeholder) {\n      placeholderWidth = measureString(placeholder, $input) + width;\n    } else {\n      placeholderWidth = 0;\n    }\n\n    width = Math.max(measureString(value, $input), placeholderWidth) + width;\n    if (width !== currentWidth) {\n      currentWidth = width;\n      $input.width(width);\n      $input.triggerHandler('resize');\n    }\n  };\n\n  $input.on('keydown keyup update blur', update);\n  update();\n};\n\nvar domToString = function (d) {\n  var tmp = document.createElement('div');\n\n  tmp.appendChild(d.cloneNode(true));\n\n  return tmp.innerHTML;\n};\n\nvar logError = function (message, options) {\n  if (!options) options = {};\n  var component = \"Selectize\";\n\n  console.error(component + \": \" + message)\n\n  if (options.explanation) {\n    if (console.group) console.group();\n    console.error(options.explanation);\n    if (console.group) console.groupEnd();\n  }\n};\n\nvar isJSON = function (data) {\n  try {\n    JSON.parse(data);\n  } catch (e) {\n    return false;\n  }\n  return true;\n};\n\nfunction uaDetect(platform, re) {\n  if (navigator.userAgentData) {\n    return platform === navigator.userAgentData.platform;\n  }\n\n  return re.test(navigator.userAgent);\n}\n\nvar Selectize = function($input, settings) {\n\tvar key, i, n, dir, input, self = this;\n\tinput = $input[0];\n\tinput.selectize = self;\n\n\tvar computedStyle = window.getComputedStyle && window.getComputedStyle(input, null);\n\tdir = computedStyle ? computedStyle.getPropertyValue('direction') : input.currentStyle && input.currentStyle.direction;\n  dir = dir || $input.parents('[dir]:first').attr('dir') || '';\n\n  self.settings = {};\n\n\t$.extend(self, {\n\t\torder            : 0,\n\t\tsettings         : settings,\n\t\t$input           : $input,\n\t\ttabIndex         : $input.attr('tabindex') || '',\n\t\ttagType          : input.tagName.toLowerCase() === 'select' ? TAG_SELECT : TAG_INPUT,\n\t\trtl              : /rtl/i.test(dir),\n\n\t\teventNS          : '.selectize' + (++Selectize.count),\n\t\thighlightedValue : null,\n\t\tisBlurring       : false,\n\t\tisOpen           : false,\n\t\tisDisabled       : false,\n\t\tisRequired       : $input.is('[required]'),\n\t\tisInvalid        : false,\n\t\tisLocked         : false,\n\t\tisFocused        : false,\n\t\tisInputHidden    : false,\n\t\tisSetup          : false,\n\t\tisShiftDown      : false,\n\t\tisCmdDown        : false,\n\t\tisCtrlDown       : false,\n\t\tignoreFocus      : false,\n\t\tignoreBlur       : false,\n\t\tignoreHover      : false,\n\t\thasOptions       : false,\n\t\tcurrentResults   : null,\n\t\tlastValue        : '',\n\t\tlastValidValue   : '',\n\t\tlastOpenTarget   : false,\n\t\tcaretPos         : 0,\n\t\tloading          : 0,\n\t\tloadedSearches   : {},\n    isDropdownClosing: false,\n\n\t\t$activeOption    : null,\n\t\t$activeItems     : [],\n\n\t\toptgroups        : {},\n\t\toptions          : {},\n\t\tuserOptions      : {},\n\t\titems            : [],\n\t\trenderCache      : {},\n\t\tonSearchChange   : settings.loadThrottle === null ? self.onSearchChange : debounce(self.onSearchChange, settings.loadThrottle)\n\t});\n\n\tself.sifter = new Sifter(this.options, {diacritics: settings.diacritics});\n\n\tif (self.settings.options) {\n\t\tfor (i = 0, n = self.settings.options.length; i < n; i++) {\n\t\t\tself.registerOption(self.settings.options[i]);\n\t\t}\n\t\tdelete self.settings.options;\n  }\n\n\tif (self.settings.optgroups) {\n\t\tfor (i = 0, n = self.settings.optgroups.length; i < n; i++) {\n\t\t\tself.registerOptionGroup(self.settings.optgroups[i]);\n\t\t}\n\t\tdelete self.settings.optgroups;\n\t}\n\n\tself.settings.mode = self.settings.mode || (self.settings.maxItems === 1 ? 'single' : 'multi');\n\tif (typeof self.settings.hideSelected !== 'boolean') {\n\t\tself.settings.hideSelected = self.settings.mode === 'multi';\n\t}\n\n\tself.initializePlugins(self.settings.plugins);\n\tself.setupCallbacks();\n\tself.setupTemplates();\n\tself.setup();\n};\n\nMicroEvent.mixin(Selectize);\nMicroPlugin.mixin(Selectize);\n\n$.extend(Selectize.prototype, {\n\n\tsetup: function() {\n\t\tvar self      = this;\n\t\tvar settings  = self.settings;\n\t\tvar eventNS   = self.eventNS;\n\t\tvar $window   = $(window);\n\t\tvar $document = $(document);\n\t\tvar $input    = self.$input;\n\n\t\tvar $wrapper;\n\t\tvar $control;\n\t\tvar $control_input;\n\t\tvar $dropdown;\n\t\tvar $dropdown_content;\n\t\tvar $dropdown_parent;\n\t\tvar inputMode;\n\t\tvar timeout_blur;\n\t\tvar timeout_focus;\n\t\tvar classes;\n\t\tvar classes_plugins;\n\t\tvar inputId;\n    var noArrowClass;\n\n\t\tinputMode         = self.settings.mode;\n    classes           = $input.attr('class') || '';\n    noArrowClass      = settings.showArrow ? '' : ' no-arrow';\n\n    $wrapper          = $('<div>').addClass(settings.wrapperClass).addClass(classes + ' selectize-control').addClass(inputMode);\n\t\t$control          = $('<div>').addClass(settings.inputClass + noArrowClass + ' selectize-input items').appendTo($wrapper);\n\t\t$control_input    = $('<input type=\"text\" autocomplete=\"new-password\" autofill=\"no\" />').appendTo($control).attr('tabindex', $input.is(':disabled') ? '-1' : self.tabIndex);\n\t\t$dropdown_parent  = $(settings.dropdownParent || $wrapper);\n\t\t$dropdown         = $('<div>').addClass(settings.dropdownClass).addClass(inputMode + ' selectize-dropdown').hide().appendTo($dropdown_parent);\n\t\t$dropdown_content = $('<div>').addClass(settings.dropdownContentClass + ' selectize-dropdown-content').attr('tabindex', '-1').appendTo($dropdown);\n\n\t\tif(inputId = $input.attr('id')) {\n\t\t\t$control_input.attr('id', inputId + '-selectized');\n\t\t\t$(\"label[for='\"+inputId+\"']\").attr('for', inputId + '-selectized');\n\t\t}\n\n\t\tif(self.settings.copyClassesToDropdown) {\n\t\t\t$dropdown.addClass(classes);\n\t\t}\n\n\t\t$wrapper.css({\n\t\t\twidth: $input[0].style.width\n\t\t});\n\n\t\tif (self.plugins.names.length) {\n\t\t\tclasses_plugins = 'plugin-' + self.plugins.names.join(' plugin-');\n\t\t\t$wrapper.addClass(classes_plugins);\n\t\t\t$dropdown.addClass(classes_plugins);\n\t\t}\n\n\t\tif ((settings.maxItems === null || settings.maxItems > 1) && self.tagType === TAG_SELECT) {\n\t\t\t$input.attr('multiple', 'multiple');\n\t\t}\n\n\t\tif (self.settings.placeholder) {\n\t\t\t$control_input.attr('placeholder', settings.placeholder);\n\t\t}\n\n    if (!self.settings.search) {\n      $control_input.attr('readonly', true);\n\t    $control_input.attr('inputmode', 'none');\n      $control.css('cursor', 'pointer');\n    }\n\n\t\tif (!self.settings.splitOn && self.settings.delimiter) {\n\t\t\tvar delimiterEscaped = self.settings.delimiter.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\t\t\tself.settings.splitOn = new RegExp('\\\\s*' + delimiterEscaped + '+\\\\s*');\n\t\t}\n\n\t\tif ($input.attr('autocorrect')) {\n\t\t\t$control_input.attr('autocorrect', $input.attr('autocorrect'));\n\t\t}\n\n\t\tif ($input.attr('autocapitalize')) {\n\t\t\t$control_input.attr('autocapitalize', $input.attr('autocapitalize'));\n\t\t}\n\t\tif ($input.is('input')) {\n\t\t\t$control_input[0].type = $input[0].type;\n\t\t}\n\n\t\tself.$wrapper          = $wrapper;\n\t\tself.$control          = $control;\n\t\tself.$control_input    = $control_input;\n\t\tself.$dropdown         = $dropdown;\n\t\tself.$dropdown_content = $dropdown_content;\n\n\t\t$dropdown.on('mouseenter mousedown mouseup click', '[data-disabled]>[data-selectable]', function(e) { e.stopImmediatePropagation(); });\n\t\t$dropdown.on('mouseenter', '[data-selectable]', function() { return self.onOptionHover.apply(self, arguments); });\n\t\t$dropdown.on('mouseup click', '[data-selectable]', function() { return self.onOptionSelect.apply(self, arguments); });\n\t\twatchChildEvent($control, 'mouseup', '*:not(input)', function() { return self.onItemSelect.apply(self, arguments); });\n\t\tautoGrow($control_input);\n\n\t\t$control.on({\n\t\t\tmousedown : function() { return self.onMouseDown.apply(self, arguments); },\n\t\t\tclick     : function() { return self.onClick.apply(self, arguments); }\n\t\t});\n\n\t\t$control_input.on({\n\t\t\tmousedown : function(e) {\n\t\t\t\tif (self.$control_input.val() !== '' || self.settings.openOnFocus) {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t}\n\t\t\t},\n\t\t\tkeydown   : function() { return self.onKeyDown.apply(self, arguments); },\n\t\t\tkeypress  : function() { return self.onKeyPress.apply(self, arguments); },\n\t\t\tinput     : function() { return self.onInput.apply(self, arguments); },\n\t\t\tresize    : function() { self.positionDropdown.apply(self, []); },\n\t\t\tblur      : function() { return self.onBlur.apply(self, arguments); },\n\t\t\tfocus     : function() { return self.onFocus.apply(self, arguments); },\n\t\t\tpaste     : function() { return self.onPaste.apply(self, arguments); }\n\t\t});\n\n\t\t$document.on('keydown' + eventNS, function(e) {\n\t\t\tself.isCmdDown = e[IS_MAC ? 'metaKey' : 'ctrlKey'];\n\t\t\tself.isCtrlDown = e[IS_MAC ? 'altKey' : 'ctrlKey'];\n\t\t\tself.isShiftDown = e.shiftKey;\n\t\t});\n\n\t\t$document.on('keyup' + eventNS, function(e) {\n\t\t\tif (e.keyCode === KEY_CTRL) self.isCtrlDown = false;\n\t\t\tif (e.keyCode === KEY_SHIFT) self.isShiftDown = false;\n\t\t\tif (e.keyCode === KEY_CMD) self.isCmdDown = false;\n\t\t});\n\n\t\t$document.on('mousedown' + eventNS, function(e) {\n\t\t\tif (self.isFocused) {\n\t\t\t\tif (\n\t\t\t\t\te.target === self.$dropdown[0] ||\n\t\t\t\t\tself.$dropdown.has(e.target).length)\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (e.target !== self.$control[0]) {\n\t\t\t\t\tself.blur(e.target);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t$window.on(['scroll' + eventNS, 'resize' + eventNS].join(' '), function() {\n\t\t\tif (self.isOpen) {\n\t\t\t\tself.positionDropdown.apply(self, arguments);\n\t\t\t}\n\t\t});\n\t\t$window.on('mousemove' + eventNS, function() {\n      self.ignoreHover = self.settings.ignoreHover;\n\t\t});\n\n    var inputPlaceholder = $('<div></div>');\n\t\tvar inputChildren = $input.children().detach();\n\n    $input.replaceWith(inputPlaceholder);\n    inputPlaceholder.replaceWith($input);\n\n    this.revertSettings = {\n\t\t\t$children : inputChildren,\n\t\t\ttabindex  : $input.attr('tabindex')\n\t\t};\n\n\t\t$input.attr('tabindex', -1).hide().after(self.$wrapper);\n\n\t\tif (Array.isArray(settings.items)) {\n\t\t\tself.lastValidValue = settings.items;\n\t\t\tself.setValue(settings.items);\n\t\t\tdelete settings.items;\n\t\t}\n\n\t\tif (SUPPORTS_VALIDITY_API) {\n\t\t\t$input.on('invalid' + eventNS, function(e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.isInvalid = true;\n\t\t\t\tself.refreshState();\n\t\t\t});\n\t\t}\n\n\t\tself.updateOriginalInput();\n\t\tself.refreshItems();\n\t\tself.refreshState();\n\t\tself.updatePlaceholder();\n\t\tself.isSetup = true;\n\n\t\tif ($input.is(':disabled')) {\n\t\t\tself.disable();\n\t\t}\n\n\t\tself.on('change', this.onChange);\n\n\t\t$input.data('selectize', self);\n\t\t$input.addClass('selectized');\n\t\tself.trigger('initialize');\n\n\t\tif (settings.preload === true) {\n\t\t\tself.onSearchChange('');\n\t\t}\n\n\t},\n\n\tsetupTemplates: function() {\n\t\tvar self = this;\n\t\tvar field_label = self.settings.labelField;\n\t\tvar field_value = self.settings.valueField;\n\t\tvar field_optgroup = self.settings.optgroupLabelField;\n\n\t\tvar templates = {\n\t\t\t'optgroup': function(data) {\n\t\t\t\treturn '<div class=\"optgroup\">' + data.html + '</div>';\n\t\t\t},\n\t\t\t'optgroup_header': function(data, escape) {\n\t\t\t\treturn '<div class=\"optgroup-header\">' + escape(data[field_optgroup]) + '</div>';\n\t\t\t},\n\t\t\t'option': function(data, escape) {\n        var classes = data.classes ? ' ' + data.classes : '';\n        classes += data[field_value] === '' ? ' selectize-dropdown-emptyoptionlabel' : '';\n\n        var styles = data.styles ? ' style=\"' + data.styles +  '\"': '';\n\t\t\t\treturn '<div' + styles + ' class=\"option' + classes + '\">' + escape(data[field_label]) + '</div>';\n\t\t\t},\n\t\t\t'item': function(data, escape) {\n\t\t\t\treturn '<div class=\"item\">' + escape(data[field_label]) + '</div>';\n\t\t\t},\n\t\t\t'option_create': function(data, escape) {\n\t\t\t\treturn '<div class=\"create\">Add <strong>' + escape(data.input) + '</strong>&#x2026;</div>';\n\t\t\t}\n\t\t};\n\n\t\tself.settings.render = $.extend({}, templates, self.settings.render);\n\t},\n\n\tsetupCallbacks: function() {\n\t\tvar key, fn, callbacks = {\n\t\t\t'initialize'      : 'onInitialize',\n\t\t\t'change'          : 'onChange',\n\t\t\t'item_add'        : 'onItemAdd',\n\t\t\t'item_remove'     : 'onItemRemove',\n\t\t\t'clear'           : 'onClear',\n\t\t\t'option_add'      : 'onOptionAdd',\n\t\t\t'option_remove'   : 'onOptionRemove',\n\t\t\t'option_clear'    : 'onOptionClear',\n\t\t\t'optgroup_add'    : 'onOptionGroupAdd',\n\t\t\t'optgroup_remove' : 'onOptionGroupRemove',\n\t\t\t'optgroup_clear'  : 'onOptionGroupClear',\n\t\t\t'dropdown_open'   : 'onDropdownOpen',\n\t\t\t'dropdown_close'  : 'onDropdownClose',\n\t\t\t'type'            : 'onType',\n\t\t\t'load'            : 'onLoad',\n\t\t\t'focus'           : 'onFocus',\n\t\t\t'blur'            : 'onBlur',\n\t\t\t'dropdown_item_activate'        : 'onDropdownItemActivate',\n\t\t\t'dropdown_item_deactivate'      : 'onDropdownItemDeactivate'\n\t\t};\n\n\t\tfor (key in callbacks) {\n\t\t\tif (callbacks.hasOwnProperty(key)) {\n\t\t\t\tfn = this.settings[callbacks[key]];\n\t\t\t\tif (fn) this.on(key, fn);\n\t\t\t}\n\t\t}\n\t},\n\n\tonClick: function(e) {\n\t\tvar self = this;\n\n    if (self.isDropdownClosing) {\n      return;\n    }\n\n\t\tif (!self.isFocused || !self.isOpen) {\n\t\t\tself.focus();\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\n\tonMouseDown: function(e) {\n\t\tvar self = this;\n\t\tvar defaultPrevented = e.isDefaultPrevented();\n\t\tvar $target = $(e.target);\n\n\t\tif (!self.isFocused) {\n\t\t\tif (!defaultPrevented) {\n        window.setTimeout(function () {\n          if (!self.isOpen) {\n            self.focus();\n          }\n        }, 0);\n\t\t\t}\n\t\t}\n\t\tif ($target !== self.$control_input[0] || self.$control_input.val() === '') {\n\t\t\tif (self.settings.mode === 'single') {\n\t\t\t\tself.isOpen ? self.close() : self.open();\n\t\t\t} else {\n\t\t\t\tif (!defaultPrevented) {\n\t\t\t\t\t\tself.setActiveItem(null);\n\t\t\t\t}\n\t\t\t\tif (!self.settings.openOnFocus) {\n\t\t\t\t\tif (self.isOpen && $target === self.lastOpenTarget) {\n\t\t\t\t\t\tself.close();\n\t\t\t\t\t\tself.lastOpenTarget = false;\n\t\t\t\t\t} else if (!self.isOpen) {\n\t\t\t\t\t\tself.refreshOptions();\n\t\t\t\t\t\tself.open();\n\t\t\t\t\t\tself.lastOpenTarget = $target;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.lastOpenTarget = $target;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t},\n\n\tonChange: function() {\n\t\tvar self = this;\n\t\tif (self.getValue() !== \"\") {\n\t\t\tself.lastValidValue = self.getValue();\n\t\t}\n\t\tthis.$input.trigger('input');\n\t\tthis.$input.trigger('change');\n\t},\n\n\tonPaste: function(e) {\n\t\tvar self = this;\n\n\t\tif (self.isFull() || self.isInputHidden || self.isLocked) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (self.settings.splitOn) {\n\n\t\t\tsetTimeout(function() {\n\t\t\t\tvar pastedText = self.$control_input.val();\n\t\t\t\tif(!pastedText.match(self.settings.splitOn)){ return }\n\n\t\t\t\tvar splitInput = pastedText\n\t\t\t\t\t.trim()\n\t\t\t\t\t.split(self.settings.splitOn);\n\t\t\t\tfor (var i = 0, n = splitInput.length; i < n; i++) {\n\t\t\t\t\tself.createItem(splitInput[i]);\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t}\n\t},\n\n\tonKeyPress: function(e) {\n\t\tif (this.isLocked) return e && e.preventDefault();\n\t\tvar character = String.fromCharCode(e.keyCode || e.which);\n\t\tif (this.settings.create && this.settings.mode === 'multi' && character === this.settings.delimiter) {\n\t\t\tthis.createItem();\n\t\t\te.preventDefault();\n\t\t\treturn false;\n\t\t}\n\t},\n\n\tonKeyDown: function(e) {\n\t\tvar isInput = e.target === this.$control_input[0];\n\t\tvar self = this;\n\n\t\tif (self.isLocked) {\n\t\t\tif (e.keyCode !== KEY_TAB) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tswitch (e.keyCode) {\n\t\t\tcase KEY_A:\n\t\t\t\tif (self.isCmdDown) {\n\t\t\t\t\tself.selectAll();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase KEY_ESC:\n\t\t\t\tif (self.isOpen) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tself.close();\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\tcase KEY_N:\n\t\t\t\tif (!e.ctrlKey || e.altKey) break;\n\t\t\tcase KEY_DOWN:\n\t\t\t\tif (!self.isOpen && self.hasOptions) {\n\t\t\t\t\tself.open();\n\t\t\t\t} else if (self.$activeOption) {\n\t\t\t\t\tself.ignoreHover = true;\n\t\t\t\t\tvar $next = self.getAdjacentOption(self.$activeOption, 1);\n\t\t\t\t\tif ($next.length) self.setActiveOption($next, true, true);\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t\treturn;\n\t\t\tcase KEY_P:\n\t\t\t\tif (!e.ctrlKey || e.altKey) break;\n\t\t\tcase KEY_UP:\n\t\t\t\tif (self.$activeOption) {\n\t\t\t\t\tself.ignoreHover = true;\n\t\t\t\t\tvar $prev = self.getAdjacentOption(self.$activeOption, -1);\n\t\t\t\t\tif ($prev.length) self.setActiveOption($prev, true, true);\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t\treturn;\n\t\t\tcase KEY_RETURN:\n\t\t\t\tif (self.isOpen && self.$activeOption) {\n\t\t\t\t\tself.onOptionSelect({currentTarget: self.$activeOption});\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\tcase KEY_LEFT:\n\t\t\t\tself.advanceSelection(-1, e);\n\t\t\t\treturn;\n\t\t\tcase KEY_RIGHT:\n\t\t\t\tself.advanceSelection(1, e);\n\t\t\t\treturn;\n\t\t\tcase KEY_TAB:\n\t\t\t\tif (self.settings.selectOnTab && self.isOpen && self.$activeOption) {\n\t\t\t\t\tself.onOptionSelect({currentTarget: self.$activeOption});\n\n\t\t\t\t\tif (!self.isFull()) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (self.settings.create && self.createItem() && self.settings.showAddOptionOnCreate) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\tcase KEY_BACKSPACE:\n\t\t\tcase KEY_DELETE:\n\t\t\t\tself.deleteSelection(e);\n\t\t\t\treturn;\n\t\t}\n\n\t\tif ((self.isFull() || self.isInputHidden) && !(IS_MAC ? e.metaKey : e.ctrlKey)) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\t},\n\n\tonInput: function(e) {\n\t\tvar self = this;\n\n\t\tvar value = self.$control_input.val() || '';\n\t\tif (self.lastValue !== value) {\n\t\t\tself.lastValue = value;\n\t\t\tself.onSearchChange(value);\n\t\t\tself.refreshOptions();\n\t\t\tself.trigger('type', value);\n\t\t}\n\t},\n\n\tonSearchChange: function(value) {\n\t\tvar self = this;\n\t\tvar fn = self.settings.load;\n\t\tif (!fn) return;\n\t\tif (self.loadedSearches.hasOwnProperty(value)) return;\n\t\tself.loadedSearches[value] = true;\n\t\tself.load(function(callback) {\n\t\t\tfn.apply(self, [value, callback]);\n\t\t});\n\t},\n\n\tonFocus: function(e) {\n\t\tvar self = this;\n\t\tvar wasFocused = self.isFocused;\n\n\t\tif (self.isDisabled) {\n\t\t\tself.blur();\n\t\t\te && e.preventDefault();\n\t\t\treturn false;\n\t\t}\n\n\t\tif (self.ignoreFocus) return;\n\t\tself.isFocused = true;\n\t\tif (self.settings.preload === 'focus') self.onSearchChange('');\n\n\t\tif (!wasFocused) self.trigger('focus');\n\n\t\tif (!self.$activeItems.length) {\n\t\t\tself.showInput();\n\t\t\tself.setActiveItem(null);\n\t\t\tself.refreshOptions(!!self.settings.openOnFocus);\n\t\t}\n\n\t\tself.refreshState();\n\t},\n\n\tonBlur: function(e, dest) {\n\t\tvar self = this;\n\n\t\tif (!self.isFocused) return;\n\t\tself.isFocused = false;\n\n\t\tif (self.ignoreFocus) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar deactivate = function() {\n\t\t\tself.close();\n\t\t\tself.setTextboxValue('');\n\t\t\tself.setActiveItem(null);\n\t\t\tself.setActiveOption(null);\n\t\t\tself.setCaret(self.items.length);\n\t\t\tself.refreshState();\n\n\t\t\tdest && dest.focus && dest.focus();\n\n\t\t\tself.isBlurring = false;\n\t\t\tself.ignoreFocus = false;\n\t\t\tself.trigger('blur');\n\t\t};\n\n\t\tself.isBlurring = true;\n\t\tself.ignoreFocus = true;\n\t\tif (self.settings.create && self.settings.createOnBlur) {\n\t\t\tself.createItem(null, false, deactivate);\n\t\t} else {\n\t\t\tdeactivate();\n\t\t}\n\t},\n\n\tonOptionHover: function(e) {\n\t\tif (this.ignoreHover) return;\n\t\tthis.setActiveOption(e.currentTarget, false);\n\t},\n\n\tonOptionSelect: function(e) {\n\t\tvar value, $target, $option, self = this;\n\n\t\tif (e.preventDefault) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\t$target = $(e.currentTarget);\n\t\tif ($target.hasClass('create')) {\n\t\t\tself.createItem(null, function() {\n\t\t\t\tif (self.settings.closeAfterSelect) {\n\t\t\t\t\tself.close();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tvalue = $target.attr('data-value');\n\t\t\tif (typeof value !== 'undefined') {\n\t\t\t\tself.lastQuery = null;\n\t\t\t\tself.setTextboxValue('');\n\t\t\t\tself.addItem(value);\n\t\t\t\tif (self.settings.closeAfterSelect) {\n\t\t\t\t\tself.close();\n\t\t\t\t} else if (!self.settings.hideSelected && e.type && /mouse/.test(e.type)) {\n\t\t\t\t\tself.setActiveOption(self.getOption(value));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tonItemSelect: function(e) {\n\t\tvar self = this;\n\n\t\tif (self.isLocked) return;\n\t\tif (self.settings.mode === 'multi') {\n\t\t\te.preventDefault();\n\t\t\tself.setActiveItem(e.currentTarget, e);\n\t\t}\n\t},\n\n\tload: function(fn) {\n\t\tvar self = this;\n\t\tvar $wrapper = self.$wrapper.addClass(self.settings.loadingClass);\n\n\t\tself.loading++;\n\t\tfn.apply(self, [function(results) {\n\t\t\tself.loading = Math.max(self.loading - 1, 0);\n\t\t\tif (results && results.length) {\n\t\t\t\tself.addOption(results);\n\t\t\t\tself.refreshOptions(self.isFocused && !self.isInputHidden);\n\t\t\t}\n\t\t\tif (!self.loading) {\n\t\t\t\t$wrapper.removeClass(self.settings.loadingClass);\n\t\t\t}\n\t\t\tself.trigger('load', results);\n\t\t}]);\n\t},\n\n\tgetTextboxValue: function() {\n\t\tvar $input = this.$control_input;\n\t\treturn $input.val();\n\t},\n\n\tsetTextboxValue: function(value) {\n\t\tvar $input = this.$control_input;\n\t\tvar changed = $input.val() !== value;\n\t\tif (changed) {\n\t\t\t$input.val(value).triggerHandler('update');\n\t\t\tthis.lastValue = value;\n\t\t}\n\t},\n\n\tgetValue: function() {\n\t\tif (this.tagType === TAG_SELECT && this.$input.attr('multiple')) {\n\t\t\treturn this.items;\n\t\t} else {\n\t\t\treturn this.items.join(this.settings.delimiter);\n\t\t}\n\t},\n\n\tsetValue: function(value, silent) {\n\t\tconst items = Array.isArray(value) ? value : [value];\n\t\tif (items.join('') === this.items.join('')) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar events = silent ? [] : ['change'];\n\n\t\tdebounce_events(this, events, function() {\n\t\t\tthis.clear(silent);\n\t\t\tthis.addItems(value, silent);\n\t\t});\n\t},\n\n\tsetMaxItems: function(value){\n\t\tif(value === 0) value = null; \n\t\tthis.settings.maxItems = value;\n\t\tthis.settings.mode = this.settings.mode || (this.settings.maxItems === 1 ? 'single' : 'multi');\n\t\tthis.refreshState();\n\t},\n\n\tsetActiveItem: function($item, e) {\n\t\tvar self = this;\n\t\tvar eventName;\n\t\tvar i, idx, begin, end, item, swap;\n\t\tvar $last;\n\n\t\tif (self.settings.mode === 'single') return;\n\t\t$item = $($item);\n\n\t\tif (!$item.length) {\n\t\t\t$(self.$activeItems).removeClass('active');\n\t\t\tself.$activeItems = [];\n\t\t\tif (self.isFocused) {\n\t\t\t\tself.showInput();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\teventName = e && e.type.toLowerCase();\n\n\t\tif (eventName === 'mousedown' && self.isShiftDown && self.$activeItems.length) {\n\t\t\t$last = self.$control.children('.active:last');\n\t\t\tbegin = Array.prototype.indexOf.apply(self.$control[0].childNodes, [$last[0]]);\n\t\t\tend   = Array.prototype.indexOf.apply(self.$control[0].childNodes, [$item[0]]);\n\t\t\tif (begin > end) {\n\t\t\t\tswap  = begin;\n\t\t\t\tbegin = end;\n\t\t\t\tend   = swap;\n\t\t\t}\n\t\t\tfor (i = begin; i <= end; i++) {\n\t\t\t\titem = self.$control[0].childNodes[i];\n\t\t\t\tif (self.$activeItems.indexOf(item) === -1) {\n\t\t\t\t\t$(item).addClass('active');\n\t\t\t\t\tself.$activeItems.push(item);\n\t\t\t\t}\n\t\t\t}\n\t\t\te.preventDefault();\n\t\t} else if ((eventName === 'mousedown' && self.isCtrlDown) || (eventName === 'keydown' && this.isShiftDown)) {\n\t\t\tif ($item.hasClass('active')) {\n\t\t\t\tidx = self.$activeItems.indexOf($item[0]);\n\t\t\t\tself.$activeItems.splice(idx, 1);\n\t\t\t\t$item.removeClass('active');\n\t\t\t} else {\n\t\t\t\tself.$activeItems.push($item.addClass('active')[0]);\n\t\t\t}\n\t\t} else {\n\t\t\t$(self.$activeItems).removeClass('active');\n\t\t\tself.$activeItems = [$item.addClass('active')[0]];\n\t\t}\n\n\t\tself.hideInput();\n\t\tif (!this.isFocused) {\n\t\t\tself.focus();\n\t\t}\n\t},\n\n\tsetActiveOption: function($option, scroll, animate) {\n\t\tvar height_menu, height_item, y;\n\t\tvar scroll_top, scroll_bottom;\n\t\tvar self = this;\n\n\t\tif (self.$activeOption) {\n\t\t\tself.$activeOption.removeClass('active');\n\t\t\tself.trigger('dropdown_item_deactivate', self.$activeOption.attr('data-value'));\n\t\t}\n\t\tself.$activeOption = null;\n\n\t\t$option = $($option);\n\t\tif (!$option.length) return;\n\n\t\tself.$activeOption = $option.addClass('active');\n\t\tif (self.isOpen) self.trigger('dropdown_item_activate', self.$activeOption.attr('data-value'));\n\n\t\tif (scroll || !isset(scroll)) {\n\n\t\t\theight_menu   = self.$dropdown_content.height();\n\t\t\theight_item   = self.$activeOption.outerHeight(true);\n\t\t\tscroll        = self.$dropdown_content.scrollTop() || 0;\n\t\t\ty             = self.$activeOption.offset().top - self.$dropdown_content.offset().top + scroll;\n\t\t\tscroll_top    = y;\n\t\t\tscroll_bottom = y - height_menu + height_item;\n\n\t\t\tif (y + height_item > height_menu + scroll) {\n\t\t\t\tself.$dropdown_content.stop().animate({scrollTop: scroll_bottom}, animate ? self.settings.scrollDuration : 0);\n\t\t\t} else if (y < scroll) {\n\t\t\t\tself.$dropdown_content.stop().animate({scrollTop: scroll_top}, animate ? self.settings.scrollDuration : 0);\n\t\t\t}\n\n\t\t}\n\t},\n\n\tselectAll: function() {\n\t\tvar self = this;\n\t\tif (self.settings.mode === 'single') return;\n\n\t\tself.$activeItems = Array.prototype.slice.apply(self.$control.children(':not(input)').addClass('active'));\n\t\tif (self.$activeItems.length) {\n\t\t\tself.hideInput();\n\t\t\tself.close();\n\t\t}\n\t\tself.focus();\n\t},\n\n\thideInput: function() {\n\t\tvar self = this;\n\n\t\tself.setTextboxValue('');\n\t\tself.$control_input.css({opacity: 0, position: 'absolute', left: self.rtl ? 10000 : 0});\n\t\tself.isInputHidden = true;\n\t},\n\n\tshowInput: function() {\n\t\tthis.$control_input.css({opacity: 1, position: 'relative', left: 0});\n\t\tthis.isInputHidden = false;\n\t},\n\n\tfocus: function() {\n\t\tvar self = this;\n\t\tif (self.isDisabled) return self;\n\n\t\tself.ignoreFocus = true;\n\t\tself.$control_input[0].focus();\n\t\twindow.setTimeout(function() {\n\t\t\tself.ignoreFocus = false;\n\t\t\tself.onFocus();\n\t\t}, 0);\n\t\treturn self;\n\t},\n\n\tblur: function(dest) {\n\t\tthis.$control_input[0].blur();\n\t\tthis.onBlur(null, dest);\n\t\treturn this;\n\t},\n\n\tgetScoreFunction: function(query) {\n\t\treturn this.sifter.getScoreFunction(query, this.getSearchOptions());\n\t},\n\n\tgetSearchOptions: function() {\n\t\tvar settings = this.settings;\n\t\tvar sort = settings.sortField;\n\t\tif (typeof sort === 'string') {\n\t\t\tsort = [{field: sort}];\n\t\t}\n\n\t\treturn {\n\t\t\tfields      : settings.searchField,\n\t\t\tconjunction : settings.searchConjunction,\n\t\t\tsort        : sort,\n\t\t\tnesting     : settings.nesting,\n      filter      : settings.filter,\n      respect_word_boundaries : settings.respect_word_boundaries\n\t\t};\n\t},\n\n\tsearch: function(query) {\n\t\tvar i, value, score, result, calculateScore;\n\t\tvar self     = this;\n\t\tvar settings = self.settings;\n\t\tvar options  = this.getSearchOptions();\n\n\t\tif (settings.score) {\n\t\t\tcalculateScore = self.settings.score.apply(this, [query]);\n\t\t\tif (typeof calculateScore !== 'function') {\n\t\t\t\tthrow new Error('Selectize \"score\" setting must be a function that returns a function');\n\t\t\t}\n\t\t}\n\n    if (query !== self.lastQuery) {\n      if (settings.normalize) query = query.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n\t\t\tself.lastQuery = query;\n\t\t\tresult = self.sifter.search(query, $.extend(options, {score: calculateScore}));\n\t\t\tself.currentResults = result;\n\t\t} else {\n\t\t\tresult = $.extend(true, {}, self.currentResults);\n\t\t}\n\n\t\tif (settings.hideSelected) {\n\t\t\tfor (i = result.items.length - 1; i >= 0; i--) {\n\t\t\t\tif (self.items.indexOf(hash_key(result.items[i].id)) !== -1) {\n\t\t\t\t\tresult.items.splice(i, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t},\n\n\trefreshOptions: function(triggerDropdown) {\n\t\tvar i, j, k, n, groups, groups_order, option, option_html, optgroup, optgroups, html, html_children, has_create_option;\n\t\tvar $active, $active_before, $create;\n\n\t\tif (typeof triggerDropdown === 'undefined') {\n\t\t\ttriggerDropdown = true;\n\t\t}\n\n\t\tvar self              = this;\n\t\tvar query             = (self.$control_input.val()).trim();\n\t\tvar results           = self.search(query);\n\t\tvar $dropdown_content = self.$dropdown_content;\n\t\tvar active_before     = self.$activeOption && hash_key(self.$activeOption.attr('data-value'));\n\n\t\tn = results.items.length;\n\t\tif (typeof self.settings.maxOptions === 'number') {\n\t\t\tn = Math.min(n, self.settings.maxOptions);\n\t\t}\n\n\t\tgroups = {};\n\t\tgroups_order = [];\n\n\t\tfor (i = 0; i < n; i++) {\n\t\t\toption      = self.options[results.items[i].id];\n\t\t\toption_html = self.render('option', option);\n\t\t\toptgroup    = option[self.settings.optgroupField] || '';\n\t\t\toptgroups   = Array.isArray(optgroup) ? optgroup : [optgroup];\n\n\t\t\tfor (j = 0, k = optgroups && optgroups.length; j < k; j++) {\n\t\t\t\toptgroup = optgroups[j];\n\t\t\t\tif (!self.optgroups.hasOwnProperty(optgroup) && typeof self.settings.optionGroupRegister === 'function') {\n\t\t\t\t\tvar regGroup;\n\t\t\t\t\tif (regGroup = self.settings.optionGroupRegister.apply(self, [optgroup])) {\n\t\t\t\t\t\tself.registerOptionGroup(regGroup);\n\t\t\t\t\t}\n\t\t\t\t}\n        if (!self.optgroups.hasOwnProperty(optgroup)) {\n\t\t\t\t\toptgroup = '';\n\t\t\t\t}\n\t\t\t\tif (!groups.hasOwnProperty(optgroup)) {\n\t\t\t\t\tgroups[optgroup] = document.createDocumentFragment();\n\t\t\t\t\tgroups_order.push(optgroup);\n\t\t\t\t}\n\t\t\t\tgroups[optgroup].appendChild(option_html);\n\t\t\t}\n\t\t}\n\n\t\tif (this.settings.lockOptgroupOrder) {\n\t\t\tgroups_order.sort(function(a, b) {\n\t\t\t\tvar a_order = self.optgroups[a] && self.optgroups[a].$order || 0;\n\t\t\t\tvar b_order = self.optgroups[b] && self.optgroups[b].$order || 0;\n\t\t\t\treturn a_order - b_order;\n\t\t\t});\n\t\t}\n\n\t\thtml = document.createDocumentFragment();\n\t\tfor (i = 0, n = groups_order.length; i < n; i++) {\n\t\t\toptgroup = groups_order[i];\n\t\t\tif (self.optgroups.hasOwnProperty(optgroup) && groups[optgroup].childNodes.length) {\n\t\t\t\thtml_children = document.createDocumentFragment();\n\t\t\t\thtml_children.appendChild(self.render('optgroup_header', self.optgroups[optgroup]));\n\t\t\t\thtml_children.appendChild(groups[optgroup]);\n\n\t\t\t\thtml.appendChild(self.render('optgroup', $.extend({}, self.optgroups[optgroup], {\n\t\t\t\t\thtml: domToString(html_children),\n\t\t\t\t\tdom:  html_children\n\t\t\t\t})));\n\t\t\t} else {\n\t\t\t\thtml.appendChild(groups[optgroup]);\n\t\t\t}\n\t\t}\n\n\t\t$dropdown_content.html(html);\n\n\t\tif (self.settings.highlight) {\n\t\t\t$dropdown_content.removeHighlight();\n\t\t\tif (results.query.length && results.tokens.length) {\n\t\t\t\tfor (i = 0, n = results.tokens.length; i < n; i++) {\n\t\t\t\t\thighlight($dropdown_content, results.tokens[i].regex);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!self.settings.hideSelected) {\n\t\t\tself.$dropdown.find('.selected').removeClass('selected');\n\n\t\t\tfor (i = 0, n = self.items.length; i < n; i++) {\n\t\t\t\tself.getOption(self.items[i]).addClass('selected');\n\t\t\t}\n\t\t}\n\n\t\tif (self.settings.dropdownSize.sizeType !== 'auto' && self.isOpen) {\n\t\t\tself.setupDropdownHeight();\n\t\t}\n\n\t\tself.positionDropdown();\n\n\t\thas_create_option = self.canCreate(query);\n\t\tif (has_create_option) {\n\t\t\tif(self.settings.showAddOptionOnCreate) {\n\t\t\t\t$dropdown_content.prepend(self.render('option_create', {input: query}));\n\t\t\t\t$create = $($dropdown_content[0].childNodes[0]);\n\t\t\t}\n\t\t}\n\n\t\tself.hasOptions = results.items.length > 0 || ( has_create_option && self.settings.showAddOptionOnCreate ) || self.settings.setFirstOptionActive;\n\n\t\tif (self.hasOptions) {\n      \t\tif (results.items.length > 0) {\n\t\t\t$active_before = active_before && self.getOption(active_before);\n\t\t\tif (results.query !== \"\" && self.settings.setFirstOptionActive) {\n\t\t\t$active = $dropdown_content.find('[data-selectable]:first')\n\t\t\t} else if (results.query !== \"\" && $active_before && $active_before.length) {\n\t\t\t$active = $active_before;\n\t\t\t} else if (self.settings.mode === 'single' && self.items.length) {\n\t\t\t$active = self.getOption(self.items[0]);\n\t\t\t}\n\t\t\tif (!$active || !$active.length) {\n\t\t\tif ($create && !self.settings.addPrecedence) {\n\t\t\t\t$active = self.getAdjacentOption($create, 1);\n\t\t\t} else {\n\t\t\t\t$active = $dropdown_content.find('[data-selectable]:first');\n\t\t\t}\n\t\t\t}\n\t\t\t} else {\n\t\t\t\t$active = $create;\n\t\t\t}\n\t\t\tself.setActiveOption($active);\n\t\t\tif (triggerDropdown && !self.isOpen) { self.open(); }\n\t\t} else {\n\t\t\tself.setActiveOption(null);\n\t\t\tif (triggerDropdown && self.isOpen) { self.close(); }\n\t\t}\n\t},\n\n\taddOption: function(data) {\n\t\tvar i, n, value, self = this;\n\n\t\tif (Array.isArray(data)) {\n\t\t\tfor (i = 0, n = data.length; i < n; i++) {\n\t\t\t\tself.addOption(data[i]);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (value = self.registerOption(data)) {\n\t\t\tself.userOptions[value] = true;\n\t\t\tself.lastQuery = null;\n\t\t\tself.trigger('option_add', value, data);\n\t\t}\n\t},\n\n\tregisterOption: function(data) {\n\t\tvar key = hash_key(data[this.settings.valueField]);\n\t\tif (typeof key === 'undefined' || key === null || this.options.hasOwnProperty(key)) return false;\n\t\tdata.$order = data.$order || ++this.order;\n\t\tthis.options[key] = data;\n\t\treturn key;\n\t},\n\n\tregisterOptionGroup: function(data) {\n\t\tvar key = hash_key(data[this.settings.optgroupValueField]);\n\t\tif (!key) return false;\n\n\t\tdata.$order = data.$order || ++this.order;\n\t\tthis.optgroups[key] = data;\n\t\treturn key;\n\t},\n\n\taddOptionGroup: function(id, data) {\n\t\tdata[this.settings.optgroupValueField] = id;\n\t\tif (id = this.registerOptionGroup(data)) {\n\t\t\tthis.trigger('optgroup_add', id, data);\n\t\t}\n\t},\n\n\tremoveOptionGroup: function(id) {\n\t\tif (this.optgroups.hasOwnProperty(id)) {\n\t\t\tdelete this.optgroups[id];\n\t\t\tthis.renderCache = {};\n\t\t\tthis.trigger('optgroup_remove', id);\n\t\t}\n\t},\n\n\tclearOptionGroups: function() {\n\t\tthis.optgroups = {};\n\t\tthis.renderCache = {};\n\t\tthis.trigger('optgroup_clear');\n\t},\n\n\tupdateOption: function(value, data) {\n\t\tvar self = this;\n\t\tvar $item, $item_new;\n\t\tvar value_new, index_item, cache_items, cache_options, order_old;\n\n\t\tvalue     = hash_key(value);\n\t\tvalue_new = hash_key(data[self.settings.valueField]);\n\n\t\tif (value === null) return;\n\t\tif (!self.options.hasOwnProperty(value)) return;\n\t\tif (typeof value_new !== 'string') throw new Error('Value must be set in option data');\n\n\t\torder_old = self.options[value].$order;\n\n\t\tif (value_new !== value) {\n\t\t\tdelete self.options[value];\n\t\t\tindex_item = self.items.indexOf(value);\n\t\t\tif (index_item !== -1) {\n\t\t\t\tself.items.splice(index_item, 1, value_new);\n\t\t\t}\n\t\t}\n\t\tdata.$order = data.$order || order_old;\n\t\tself.options[value_new] = data;\n\n\t\tcache_items = self.renderCache['item'];\n\t\tcache_options = self.renderCache['option'];\n\n\t\tif (cache_items) {\n\t\t\tdelete cache_items[value];\n\t\t\tdelete cache_items[value_new];\n\t\t}\n\t\tif (cache_options) {\n\t\t\tdelete cache_options[value];\n\t\t\tdelete cache_options[value_new];\n\t\t}\n\n\t\tif (self.items.indexOf(value_new) !== -1) {\n\t\t\t$item = self.getItem(value);\n\t\t\t$item_new = $(self.render('item', data));\n\t\t\tif ($item.hasClass('active')) $item_new.addClass('active');\n\t\t\t$item.replaceWith($item_new);\n\t\t}\n\n\t\tself.lastQuery = null;\n\n\t\tif (self.isOpen) {\n\t\t\tself.refreshOptions(false);\n\t\t}\n\t},\n\n\tremoveOption: function(value, silent) {\n\t\tvar self = this;\n\t\tvalue = hash_key(value);\n\n\t\tvar cache_items = self.renderCache['item'];\n\t\tvar cache_options = self.renderCache['option'];\n\t\tif (cache_items) delete cache_items[value];\n\t\tif (cache_options) delete cache_options[value];\n\n\t\tdelete self.userOptions[value];\n\t\tdelete self.options[value];\n\t\tself.lastQuery = null;\n\t\tself.trigger('option_remove', value);\n\t\tself.removeItem(value, silent);\n\t},\n\n\tclearOptions: function(silent) {\n\t\tvar self = this;\n\n\t\tself.loadedSearches = {};\n\t\tself.userOptions = {};\n\t\tself.renderCache = {};\n\t\tvar options = self.options;\n\t\t$.each(self.options, function(key, value) {\n\t\t\tif(self.items.indexOf(key) == -1) {\n\t\t\t\tdelete options[key];\n\t\t\t}\n\t\t});\n\t\tself.options = self.sifter.items = options;\n\t\tself.lastQuery = null;\n\t\tself.trigger('option_clear');\n\t\tself.clear(silent);\n\t},\n\n\tgetOption: function(value) {\n\t\treturn this.getElementWithValue(value, this.$dropdown_content.find('[data-selectable]'));\n\t},\n\n\tgetFirstOption: function() {\n\t\tvar $options = this.$dropdown.find('[data-selectable]');\n\t\treturn $options.length > 0 ? $options.eq(0) : $();\n\t},\n\n\tgetAdjacentOption: function($option, direction) {\n\t\tvar $options = this.$dropdown.find('[data-selectable]');\n\t\tvar index    = $options.index($option) + direction;\n\n\t\treturn index >= 0 && index < $options.length ? $options.eq(index) : $();\n\t},\n\n\tgetElementWithValue: function(value, $els) {\n\t\tvalue = hash_key(value);\n\n\t\tif (typeof value !== 'undefined' && value !== null) {\n\t\t\tfor (var i = 0, n = $els.length; i < n; i++) {\n\t\t\t\tif ($els[i].getAttribute('data-value') === value) {\n\t\t\t\t\treturn $($els[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn $();\n\t},\n\n\tgetElementWithTextContent: function(textContent, ignoreCase ,$els) {\n\t\ttextContent = hash_key(textContent);\n\n\t\tif (typeof textContent !== 'undefined' && textContent !== null) {\n\t\t\tfor (var i = 0, n = $els.length; i < n; i++) {\n\t\t\t\tvar eleTextContent = $els[i].textContent\n\t\t\t\tif (ignoreCase == true) {\n\t\t\t\t\teleTextContent = (eleTextContent !== null) ? eleTextContent.toLowerCase() : null;\n\t\t\t\t\ttextContent = textContent.toLowerCase();\n\t\t\t\t}\n\t\t\t\tif (eleTextContent === textContent) {\n\t\t\t\t\treturn $($els[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn $();\n\t},\n\n\tgetItem: function(value) {\n\t\treturn this.getElementWithValue(value, this.$control.children());\n\t},\n\n\tgetFirstItemMatchedByTextContent: function(textContent, ignoreCase) {\n\t\tignoreCase = (ignoreCase !== null && ignoreCase === true) ? true : false;\n\t\treturn this.getElementWithTextContent(textContent, ignoreCase, this.$dropdown_content.find('[data-selectable]'));\n\t},\n\n\taddItems: function(values, silent) {\n\t\tthis.buffer = document.createDocumentFragment();\n\n\t\tvar childNodes = this.$control[0].childNodes;\n\t\tfor (var i = 0; i < childNodes.length; i++) {\n\t\t\tthis.buffer.appendChild(childNodes[i]);\n\t\t}\n\n\t\tvar items = Array.isArray(values) ? values : [values];\n\t\tfor (var i = 0, n = items.length; i < n; i++) {\n\t\t\tthis.isPending = (i < n - 1);\n\t\t\tthis.addItem(items[i], silent);\n\t\t}\n\n\t\tvar control = this.$control[0];\n\t\tcontrol.insertBefore(this.buffer, control.firstChild);\n\n\t\tthis.buffer = null;\n\t},\n\n\taddItem: function(value, silent) {\n\t\tvar events = silent ? [] : ['change'];\n\n\t\tdebounce_events(this, events, function() {\n\t\t\tvar $item, $option, $options;\n\t\t\tvar self = this;\n\t\t\tvar inputMode = self.settings.mode;\n\t\t\tvar i, active, value_next, wasFull;\n\t\t\tvalue = hash_key(value);\n\n\t\t\tif (self.items.indexOf(value) !== -1) {\n\t\t\t\tif (inputMode === 'single') self.close();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!self.options.hasOwnProperty(value)) return;\n\t\t\tif (inputMode === 'single') self.clear(silent);\n\t\t\tif (inputMode === 'multi' && self.isFull()) return;\n\n      $item = $(self.render('item', self.options[value]));\n\t\t\twasFull = self.isFull();\n\t\t\tself.items.splice(self.caretPos, 0, value);\n      self.insertAtCaret($item);\n\t\t\tif (!self.isPending || (!wasFull && self.isFull())) {\n\t\t\t\tself.refreshState();\n\t\t\t}\n\n\t\t\tif (self.isSetup) {\n\t\t\t\t$options = self.$dropdown_content.find('[data-selectable]');\n\n\t\t\t\tif (!self.isPending) {\n\t\t\t\t\t$option = self.getOption(value);\n\t\t\t\t\tvalue_next = self.getAdjacentOption($option, 1).attr('data-value');\n\t\t\t\t\tself.refreshOptions(self.isFocused && inputMode !== 'single');\n\t\t\t\t\tif (value_next) {\n\t\t\t\t\t\tself.setActiveOption(self.getOption(value_next));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!$options.length || self.isFull()) {\n\t\t\t\t\tself.close();\n\t\t\t\t} else if (!self.isPending) {\n\t\t\t\t\tself.positionDropdown();\n\t\t\t\t}\n\n\t\t\t\tself.updatePlaceholder();\n\t\t\t\tself.trigger('item_add', value, $item);\n\n\t\t\t\tif (!self.isPending) {\n\t\t\t\t\tself.updateOriginalInput({silent: silent});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tremoveItem: function(value, silent) {\n\t\tvar self = this;\n\t\tvar $item, i, idx;\n\n\t\t$item = (value instanceof $) ? value : self.getItem(value);\n\t\tvalue = hash_key($item.attr('data-value'));\n\t\ti = self.items.indexOf(value);\n\n\t\tif (i !== -1) {\n\t\t\tself.trigger('item_before_remove', value, $item);\n\t\t\t$item.remove();\n      if ($item.hasClass('active')) {\n        $item.removeClass('active');\n\t\t\t\tidx = self.$activeItems.indexOf($item[0]);\n\t\t\t\tself.$activeItems.splice(idx, 1);\n\t\t\t\t$item.removeClass('active');\n\t\t\t}\n\n\t\t\tself.items.splice(i, 1);\n\t\t\tself.lastQuery = null;\n\t\t\tif (!self.settings.persist && self.userOptions.hasOwnProperty(value)) {\n\t\t\t\tself.removeOption(value, silent);\n\t\t\t}\n\n\t\t\tif (i < self.caretPos) {\n\t\t\t\tself.setCaret(self.caretPos - 1);\n\t\t\t}\n\n\t\t\tself.refreshState();\n\t\t\tself.updatePlaceholder();\n\t\t\tself.updateOriginalInput({silent: silent});\n\t\t\tself.positionDropdown();\n\t\t\tself.trigger('item_remove', value, $item);\n\t\t}\n\t},\n\n\tcreateItem: function(input, triggerDropdown) {\n\t\tvar self  = this;\n\t\tvar caret = self.caretPos;\n\t\tinput = input || (self.$control_input.val() || '').trim();\n\n\t\tvar callback = arguments[arguments.length - 1];\n\t\tif (typeof callback !== 'function') callback = function() {};\n\n\t\tif (typeof triggerDropdown !== 'boolean') {\n\t\t\ttriggerDropdown = true;\n\t\t}\n\n\t\tif (!self.canCreate(input)) {\n\t\t\tcallback();\n\t\t\treturn false;\n\t\t}\n\n\t\tself.lock();\n\n\t\tvar setup = (typeof self.settings.create === 'function') ? this.settings.create : function(input) {\n\t\t\tvar data = {};\n\t\t\tdata[self.settings.labelField] = input;\n\t\t\tvar key = input;\n\t\t\tif ( self.settings.formatValueToKey && typeof self.settings.formatValueToKey === 'function' ) {\n\t\t\t\tkey = self.settings.formatValueToKey.apply(this, [key]);\n\t\t\t\tif (key === null || typeof key === 'undefined' || typeof key === 'object' || typeof key === 'function') {\n\t\t\t\t\tthrow new Error('Selectize \"formatValueToKey\" setting must be a function that returns a value other than object or function.');\n\t\t\t\t}\n\t\t\t}\n\t\t\tdata[self.settings.valueField] = key;\n\t\t\treturn data;\n\t\t};\n\n\t\tvar create = once(function(data) {\n\t\t\tself.unlock();\n\n\t\t\tif (!data || typeof data !== 'object') return callback();\n\t\t\tvar value = hash_key(data[self.settings.valueField]);\n\t\t\tif (typeof value !== 'string') return callback();\n\n\t\t\tself.setTextboxValue('');\n\t\t\tself.addOption(data);\n\t\t\tself.setCaret(caret);\n\t\t\tself.addItem(value);\n\t\t\tself.refreshOptions(triggerDropdown && self.settings.mode !== 'single');\n\t\t\tcallback(data);\n\t\t});\n\n\t\tvar output = setup.apply(this, [input, create]);\n\t\tif (typeof output !== 'undefined') {\n\t\t\tcreate(output);\n\t\t}\n\n\t\treturn true;\n\t},\n\n\trefreshItems: function(silent) {\n\t\tthis.lastQuery = null;\n\n\t\tif (this.isSetup) {\n\t\t\tthis.addItem(this.items, silent);\n\t\t}\n\n\t\tthis.refreshState();\n\t\tthis.updateOriginalInput({silent: silent});\n\t},\n\n\trefreshState: function() {\n\t\tthis.refreshValidityState();\n\t\tthis.refreshClasses();\n\t},\n\n\trefreshValidityState: function() {\n\t\tif (!this.isRequired) return false;\n\n\t\tvar invalid = !this.items.length;\n\n\t\tthis.isInvalid = invalid;\n\t\tthis.$control_input.prop('required', invalid);\n\t\tthis.$input.prop('required', !invalid);\n\t},\n\n\trefreshClasses: function() {\n\t\tvar self     = this;\n\t\tvar isFull   = self.isFull();\n\t\tvar isLocked = self.isLocked;\n\n\t\tself.$wrapper\n\t\t\t.toggleClass('rtl', self.rtl);\n\n\t\tself.$control\n\t\t\t.toggleClass('focus', self.isFocused)\n\t\t\t.toggleClass('disabled', self.isDisabled)\n\t\t\t.toggleClass('required', self.isRequired)\n\t\t\t.toggleClass('invalid', self.isInvalid)\n\t\t\t.toggleClass('locked', isLocked)\n\t\t\t.toggleClass('full', isFull).toggleClass('not-full', !isFull)\n\t\t\t.toggleClass('input-active', self.isFocused && !self.isInputHidden)\n\t\t\t.toggleClass('dropdown-active', self.isOpen)\n\t\t\t.toggleClass('has-options', !$.isEmptyObject(self.options))\n\t\t\t.toggleClass('has-items', self.items.length > 0);\n\n\t\tself.$control_input.data('grow', !isFull && !isLocked);\n\t},\n\n\tisFull: function() {\n\t\treturn this.settings.maxItems !== null && this.items.length >= this.settings.maxItems;\n\t},\n\n\tupdateOriginalInput: function(opts) {\n\t\tvar i, n, existing, fresh, old, $options, label, value, values, self = this;\n\t\topts = opts || {};\n\n\t\tif (self.tagType === TAG_SELECT) {\n\t\t\t$options  = self.$input.find('option');\n\t\t\texisting  = [];\n\t\t\tfresh     = [];\n\t\t\told       = [];\n\t\t\tvalues    = [];\n\n\t\t\t$options.get().forEach(function(option) {\n\t\t\t\texisting.push(option.value);\n\t\t\t});\n\n\t\t\tself.items.forEach(function(item) {\n\t\t\t\tlabel = self.options[item][self.settings.labelField] || '';\n\n\t\t\t\tvalues.push(item);\n\n\t\t\t\tif (existing.indexOf(item) != -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfresh.push('<option value=\"' + escape_html(item) + '\" selected=\"selected\">' + escape_html(label) + '</option>');\n\t\t\t});\n\n\t\t\told = existing.filter(function(value) {\n\t\t\t\treturn values.indexOf(value) < 0;\n\t\t\t}).map(function(value) {\n\t\t\t\treturn 'option[value=\"' + escape_html(value) + '\"]';\n\t\t\t});\n\n\t\t\tif (existing.length - old.length + fresh.length === 0 && !self.$input.attr('multiple')) {\n\t\t\t\tfresh.push('<option value=\"\" selected=\"selected\"></option>');\n\t\t\t}\n\n\t\t\tself.$input.find(old.join(', ')).remove();\n\t\t\tself.$input.append(fresh.join(''));\n\t\t} else {\n\t\t\tself.$input.val(self.getValue());\n\t\t\tself.$input.attr('value',self.$input.val());\n\t\t}\n\n\t\tif (self.isSetup) {\n\t\t\tif (!opts.silent) {\n\t\t\t\tself.trigger('change', self.$input.val());\n\t\t\t}\n\t\t}\n\t},\n\n\tupdatePlaceholder: function() {\n\t\tif (!this.settings.placeholder) return;\n\t\tvar $input = this.$control_input;\n\n\t\tif (this.items.length) {\n\t\t\t$input.removeAttr('placeholder');\n\t\t} else {\n\t\t\t$input.attr('placeholder', this.settings.placeholder);\n\t\t}\n\t\t$input.triggerHandler('update', {force: true});\n\t},\n\n\topen: function() {\n\t\tvar self = this;\n\n\t\tif (\n      self.isLocked ||\n      self.isOpen ||\n      (self.settings.mode === \"multi\" && self.isFull())\n    )\n      return;\n\t\tself.focus();\n\t\tself.isOpen = true;\n\t\tself.refreshState();\n\t\tself.$dropdown.css({ visibility: 'hidden', display: 'block' });\n\t\tself.setupDropdownHeight();\n    self.positionDropdown();\n\t\tself.$dropdown.css({visibility: 'visible'});\n\t\tself.trigger('dropdown_open', self.$dropdown);\n\t},\n\n\tclose: function() {\n\t\tvar self = this;\n\t\tvar trigger = self.isOpen;\n\n\t\tif (self.settings.mode === 'single' && self.items.length) {\n\t\t\tself.hideInput();\n\n\t\t\tif (self.isBlurring) {\n\t\t\t\tself.$control_input[0].blur(); \n\t\t\t}\n\t\t}\n\n\t\tself.isOpen = false;\n\t\tself.$dropdown.hide();\n\t\tself.setActiveOption(null);\n\t\tself.refreshState();\n\n\t\tif (trigger) self.trigger('dropdown_close', self.$dropdown);\n\t},\n\n\tpositionDropdown: function() {\n\t\tvar $control = this.$control;\n\t\tvar offset = this.settings.dropdownParent === 'body' ? $control.offset() : $control.position();\n\t\toffset.top += $control.outerHeight(true);\n\t\tvar w = this.$wrapper[0].style.width !== 'fit-content' ? this.settings.dropdownParent === 'body' ? 'max-content' : '100%' : 'max-content';\n\t\tif (this.settings.minWidth && this.settings.minWidth > w)\n\t\t{\n\t\t\tw = this.settings.minWidth;\n\t\t}\n\n    if (this.settings.dropdownParent !== 'body' && w === 'max-content' && $control.outerWidth(true) >= this.$dropdown.outerWidth(true)) {\n      w = '100%';\n    }\n\n    this.$dropdown.css({\n\t\t\twidth : w,\n      minWidth : $control.outerWidth(true),\n\t\t\ttop   : offset.top,\n\t\t\tleft  : offset.left\n\t\t});\n\t},\n\n  setupDropdownHeight: function () {\n    if (typeof this.settings.dropdownSize === 'object' && this.settings.dropdownSize.sizeType !== 'auto') {\n      var height = this.settings.dropdownSize.sizeValue;\n\n      if (this.settings.dropdownSize.sizeType === 'numberItems') {\n        var $items = this.$dropdown_content.find('*').not('.optgroup, .highlight').not(this.settings.ignoreOnDropwdownHeight);\n        var totalHeight = 0;\n        var marginTop = 0;\n        var marginBottom = 0;\n        var separatorHeight = 0;\n\n\n        for (var i = 0; i < height; i++) {\n          var $item = $($items[i]);\n\n          if ($item.length === 0) {\n            break;\n          }\n\n          totalHeight += $item.outerHeight(true);\n          if (typeof $item.data('selectable') == 'undefined') {\n            if ($item.hasClass('optgroup-header')) {\n              var styles = window.getComputedStyle($item.parent()[0], ':before');\n\n              if (styles) {\n                marginTop = styles.marginTop ? Number(styles.marginTop.replace(/\\W*(\\w)\\w*/g, '$1')) : 0;\n                marginBottom = styles.marginBottom ? Number(styles.marginBottom.replace(/\\W*(\\w)\\w*/g, '$1')) : 0;\n                separatorHeight = styles.borderTopWidth ? Number(styles.borderTopWidth.replace(/\\W*(\\w)\\w*/g, '$1')) : 0;\n              }\n            }\n            height++;\n          }\n\n        }\n\n        var paddingTop = this.$dropdown_content.css('padding-top') ? Number(this.$dropdown_content.css('padding-top').replace(/\\W*(\\w)\\w*/g, '$1')) : 0;\n        var paddingBottom = this.$dropdown_content.css('padding-bottom') ? Number(this.$dropdown_content.css('padding-bottom').replace(/\\W*(\\w)\\w*/g, '$1')) : 0;\n\n        height = (totalHeight + paddingTop + paddingBottom + marginTop + marginBottom + separatorHeight) + 'px';\n      } else if (this.settings.dropdownSize.sizeType !== 'fixedHeight') {\n        console.warn('Selectize.js - Value of \"sizeType\" must be \"fixedHeight\" or \"numberItems');\n        return;\n      }\n\n      this.$dropdown_content.css({ height: height, maxHeight: 'none' });\n    }\n  },\n\n\tclear: function(silent) {\n\t\tvar self = this;\n\n\t\tif (!self.items.length) return;\n\t\tself.$control.children(':not(input)').remove();\n\t\tself.items = [];\n\t\tself.lastQuery = null;\n\t\tself.setCaret(0);\n\t\tself.setActiveItem(null);\n\t\tself.updatePlaceholder();\n\t\tself.updateOriginalInput({silent: silent});\n\t\tself.refreshState();\n\t\tself.showInput();\n\t\tself.trigger('clear');\n\t},\n\n\tinsertAtCaret: function($el) {\n\t\tvar caret = Math.min(this.caretPos, this.items.length);\n    var el = $el[0];\n\t\tvar target = this.buffer || this.$control[0];\n\n\t\tif (caret === 0) {\n\t\t\ttarget.insertBefore(el, target.firstChild);\n\t\t} else {\n\t\t\ttarget.insertBefore(el, target.childNodes[caret]);\n\t\t}\n\n\t\tthis.setCaret(caret + 1);\n\t},\n\n\tdeleteSelection: function(e) {\n\t\tvar i, n, direction, selection, values, caret, option_select, $option_select, $tail;\n\t\tvar self = this;\n\n\t\tdirection = (e && e.keyCode === KEY_BACKSPACE) ? -1 : 1;\n\t\tselection = getInputSelection(self.$control_input[0]);\n\n\t\tif (self.$activeOption && !self.settings.hideSelected) {\n\t\t\tif (typeof self.settings.deselectBehavior === 'string' && self.settings.deselectBehavior === 'top') {\n\t\t\t\toption_select = self.getFirstOption().attr('data-value');\n\t\t\t} else {\n\t\t\t\toption_select = self.getAdjacentOption(self.$activeOption, -1).attr('data-value');\n\t\t\t}\n\t\t}\n\n\t\tvalues = [];\n\n\t\tif (self.$activeItems.length) {\n\t\t\t$tail = self.$control.children('.active:' + (direction > 0 ? 'last' : 'first'));\n\t\t\tcaret = self.$control.children(':not(input)').index($tail);\n\t\t\tif (direction > 0) { caret++; }\n\n\t\t\tfor (i = 0, n = self.$activeItems.length; i < n; i++) {\n\t\t\t\tvalues.push($(self.$activeItems[i]).attr('data-value'));\n\t\t\t}\n\t\t\tif (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t}\n\t\t} else if ((self.isFocused || self.settings.mode === 'single') && self.items.length) {\n\t\t\tif (direction < 0 && selection.start === 0 && selection.length === 0) {\n\t\t\t\tvalues.push(self.items[self.caretPos - 1]);\n\t\t\t} else if (direction > 0 && selection.start === self.$control_input.val().length) {\n\t\t\t\tvalues.push(self.items[self.caretPos]);\n\t\t\t}\n\t\t}\n\n\t\tif (!values.length || (typeof self.settings.onDelete === 'function' && self.settings.onDelete.apply(self, [values]) === false)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (typeof caret !== 'undefined') {\n\t\t\tself.setCaret(caret);\n\t\t}\n\t\twhile (values.length) {\n\t\t\tself.removeItem(values.pop());\n\t\t}\n\n\t\tself.showInput();\n\t\tself.positionDropdown();\n\t\tself.refreshOptions(true);\n\n\t\tif (option_select) {\n\t\t\t$option_select = self.getOption(option_select);\n\t\t\tif ($option_select.length) {\n\t\t\t\tself.setActiveOption($option_select);\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t},\n\n\tadvanceSelection: function(direction, e) {\n\t\tvar tail, selection, idx, valueLength, cursorAtEdge, $tail;\n\t\tvar self = this;\n\n\t\tif (direction === 0) return;\n\t\tif (self.rtl) direction *= -1;\n\n\t\ttail = direction > 0 ? 'last' : 'first';\n\t\tselection = getInputSelection(self.$control_input[0]);\n\n\t\tif (self.isFocused && !self.isInputHidden) {\n\t\t\tvalueLength = self.$control_input.val().length;\n\t\t\tcursorAtEdge = direction < 0\n\t\t\t\t? selection.start === 0 && selection.length === 0\n\t\t\t\t: selection.start === valueLength;\n\n\t\t\tif (cursorAtEdge && !valueLength) {\n\t\t\t\tself.advanceCaret(direction, e);\n\t\t\t}\n\t\t} else {\n\t\t\t$tail = self.$control.children('.active:' + tail);\n\t\t\tif ($tail.length) {\n\t\t\t\tidx = self.$control.children(':not(input)').index($tail);\n\t\t\t\tself.setActiveItem(null);\n\t\t\t\tself.setCaret(direction > 0 ? idx + 1 : idx);\n\t\t\t}\n\t\t}\n\t},\n\n\tadvanceCaret: function(direction, e) {\n\t\tvar self = this, fn, $adj;\n\n\t\tif (direction === 0) return;\n\n\t\tfn = direction > 0 ? 'next' : 'prev';\n\t\tif (self.isShiftDown) {\n\t\t\t$adj = self.$control_input[fn]();\n\t\t\tif ($adj.length) {\n\t\t\t\tself.hideInput();\n\t\t\t\tself.setActiveItem($adj);\n\t\t\t\te && e.preventDefault();\n\t\t\t}\n\t\t} else {\n\t\t\tself.setCaret(self.caretPos + direction);\n\t\t}\n\t},\n\n\tsetCaret: function(i) {\n\t\tvar self = this;\n\n\t\tif (self.settings.mode === 'single') {\n\t\t\ti = self.items.length;\n\t\t} else {\n\t\t\ti = Math.max(0, Math.min(self.items.length, i));\n\t\t}\n\n\t\tif(!self.isPending) {\n\t\t\tvar j, n, fn, $children, $child;\n\t\t\t$children = self.$control.children(':not(input)');\n\t\t\tfor (j = 0, n = $children.length; j < n; j++) {\n\t\t\t\t$child = $($children[j]).detach();\n\t\t\t\tif (j <  i) {\n\t\t\t\t\tself.$control_input.before($child);\n\t\t\t\t} else {\n\t\t\t\t\tself.$control.append($child);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tself.caretPos = i;\n\t},\n\n\tlock: function() {\n\t\tthis.close();\n\t\tthis.isLocked = true;\n\t\tthis.refreshState();\n\t},\n\n\tunlock: function() {\n\t\tthis.isLocked = false;\n\t\tthis.refreshState();\n\t},\n\n\tdisable: function() {\n\t\tvar self = this;\n\t\tself.$input.prop('disabled', true);\n\t\tself.$control_input.prop('disabled', true).prop('tabindex', -1);\n\t\tself.isDisabled = true;\n\t\tself.lock();\n\t},\n\n\tenable: function() {\n\t\tvar self = this;\n\t\tself.$input.prop('disabled', false);\n\t\tself.$control_input.prop('disabled', false).prop('tabindex', self.tabIndex);\n\t\tself.isDisabled = false;\n\t\tself.unlock();\n\t},\n\n\tdestroy: function() {\n\t\tvar self = this;\n\t\tvar eventNS = self.eventNS;\n\t\tvar revertSettings = self.revertSettings;\n\n\t\tself.trigger('destroy');\n\t\tself.off();\n\t\tself.$wrapper.remove();\n\t\tself.$dropdown.remove();\n\n\t\tself.$input\n\t\t\t.html('')\n\t\t\t.append(revertSettings.$children)\n\t\t\t.removeAttr('tabindex')\n\t\t\t.removeClass('selectized')\n\t\t\t.attr({tabindex: revertSettings.tabindex})\n\t\t\t.show();\n\n\t\tself.$control_input.removeData('grow');\n\t\tself.$input.removeData('selectize');\n\n\t\tif (--Selectize.count == 0 && Selectize.$testInput) {\n\t\t\tSelectize.$testInput.remove();\n\t\t\tSelectize.$testInput = undefined;\n\t\t}\n\n\t\t$(window).off(eventNS);\n\t\t$(document).off(eventNS);\n\t\t$(document.body).off(eventNS);\n\n\t\tdelete self.$input[0].selectize;\n\t},\n\n\trender: function(templateName, data) {\n\t\tvar value, id, label;\n\t\tvar html = '';\n\t\tvar cache = false;\n\t\tvar self = this;\n\t\tvar regex_tag = /^[\\t \\r\\n]*<([a-z][a-z0-9\\-_]*(?:\\:[a-z][a-z0-9\\-_]*)?)/i;\n\n\t\tif (templateName === 'option' || templateName === 'item') {\n\t\t\tvalue = hash_key(data[self.settings.valueField]);\n\t\t\tcache = !!value;\n\t\t}\n\n\t\tif (cache) {\n\t\t\tif (!isset(self.renderCache[templateName])) {\n\t\t\t\tself.renderCache[templateName] = {};\n\t\t\t}\n\t\t\tif (self.renderCache[templateName].hasOwnProperty(value)) {\n\t\t\t\treturn self.renderCache[templateName][value];\n\t\t\t}\n\t\t}\n\n\t\thtml = $(self.settings.render[templateName].apply(this, [data, escape_html]));\n\n\t\tif (templateName === 'option' || templateName === 'option_create') {\n\t\t\tif (!data[self.settings.disabledField]) {\n\t\t\t\thtml.attr('data-selectable', '');\n\t\t\t}\n\t\t}\n\t\telse if (templateName === 'optgroup') {\n\t\t\tid = data[self.settings.optgroupValueField] || '';\n\t\t\thtml.attr('data-group', id);\n\t\t\tif(data[self.settings.disabledField]) {\n\t\t\t\thtml.attr('data-disabled', '');\n\t\t\t}\n\t\t}\n\t\tif (templateName === 'option' || templateName === 'item') {\n\t\t\thtml.attr('data-value', value || '');\n\t\t}\n\n\t\tif (cache) {\n\t\t\tself.renderCache[templateName][value] = html[0];\n\t\t}\n\n\t\treturn html[0];\n\t},\n\n\tclearCache: function(templateName) {\n\t\tvar self = this;\n\t\tif (typeof templateName === 'undefined') {\n\t\t\tself.renderCache = {};\n\t\t} else {\n\t\t\tdelete self.renderCache[templateName];\n\t\t}\n\t},\n\n\tcanCreate: function(input) {\n\t\tvar self = this;\n\t\tif (!self.settings.create) return false;\n\t\tvar filter = self.settings.createFilter;\n\t\treturn input.length\n\t\t\t&& (typeof filter !== 'function' || filter.apply(self, [input]))\n\t\t\t&& (typeof filter !== 'string' || new RegExp(filter).test(input))\n\t\t\t&& (!(filter instanceof RegExp) || filter.test(input));\n\t}\n});\n\nSelectize.count = 0;\nSelectize.defaults = {\n  options: [],\n  optgroups: [],\n\n  plugins: [],\n  delimiter: ',',\n  splitOn: null, \n  persist: true,\n  diacritics: true,\n  create: false,\n  showAddOptionOnCreate: true,\n  createOnBlur: false,\n  createFilter: null,\n  highlight: true,\n  openOnFocus: true,\n  maxOptions: 1000,\n  maxItems: null,\n  hideSelected: null,\n  addPrecedence: false,\n  selectOnTab: true,\n  preload: false,\n  allowEmptyOption: false,\n  showEmptyOptionInDropdown: false,\n  emptyOptionLabel: '--',\n  setFirstOptionActive: false,\n  closeAfterSelect: false,\n  closeDropdownThreshold: 250, \n\n  scrollDuration: 60,\n  deselectBehavior: 'previous', \n  loadThrottle: 300,\n  loadingClass: 'loading',\n\n  dataAttr: 'data-data',\n  optgroupField: 'optgroup',\n  valueField: 'value',\n  labelField: 'text',\n  disabledField: 'disabled',\n  optgroupLabelField: 'label',\n  optgroupValueField: 'value',\n  lockOptgroupOrder: false,\n\n  sortField: '$order',\n  searchField: ['text'],\n  searchConjunction: 'and',\n  respect_word_boundaries: false, \n  normalize: true,\n\n  mode: null,\n  wrapperClass: '',\n  inputClass: '',\n  dropdownClass: '',\n  dropdownContentClass: '',\n\n  dropdownParent: null,\n\n  copyClassesToDropdown: true,\n  dropdownSize: {\n    sizeType: 'auto',\n    sizeValue: 'auto',\n  },\n\n  ignoreOnDropwdownHeight: 'img, i',\n  search: true,\n  showArrow: true,\n\n  render: {\n  }\n};\n\n$.fn.selectize = function (settings_user) {\n  var defaults = $.fn.selectize.defaults;\n  var settings = $.extend({}, defaults, settings_user);\n  var attr_data = settings.dataAttr;\n  var field_label = settings.labelField;\n  var field_value = settings.valueField;\n  var field_disabled = settings.disabledField;\n  var field_optgroup = settings.optgroupField;\n  var field_optgroup_label = settings.optgroupLabelField;\n  var field_optgroup_value = settings.optgroupValueField;\n\n  var init_textbox = function ($input, settings_element) {\n    var i, n, values, option;\n\n    var data_raw = $input.attr(attr_data);\n\n    if (!data_raw) {\n      var value = ($input.val() || '').trim();\n      if (!settings.allowEmptyOption && !value.length) return;\n      values = value.split(settings.delimiter);\n      for (i = 0, n = values.length; i < n; i++) {\n        option = {};\n        option[field_label] = values[i];\n        option[field_value] = values[i];\n        settings_element.options.push(option);\n      }\n      settings_element.items = values;\n    } else {\n      settings_element.options = JSON.parse(data_raw);\n      for (i = 0, n = settings_element.options.length; i < n; i++) {\n        settings_element.items.push(settings_element.options[i][field_value]);\n      }\n    }\n  };\n\n  var init_select = function ($input, settings_element) {\n    var i, n, tagName, $children, order = 0;\n    var options = settings_element.options;\n    var optionsMap = {};\n\n    var readData = function ($el) {\n      var data = attr_data && $el.attr(attr_data);\n      var allData = $el.data();\n      var obj = {};\n\n      if (typeof data === 'string' && data.length) {\n        if (isJSON(data)) {\n          Object.assign(obj, JSON.parse(data))\n        } else {\n          obj[data] = data;\n        }\n      }\n\n\n      Object.assign(obj, allData);\n\n      return obj || null;\n    };\n\n    var addOption = function ($option, group) {\n      $option = $($option);\n\n      var value = hash_key($option.val());\n      if (!value && !settings.allowEmptyOption) return;\n\n      if (optionsMap.hasOwnProperty(value)) {\n        if (group) {\n          var arr = optionsMap[value][field_optgroup];\n          if (!arr) {\n            optionsMap[value][field_optgroup] = group;\n          } else if (!Array.isArray(arr)) {\n            optionsMap[value][field_optgroup] = [arr, group];\n          } else {\n            arr.push(group);\n          }\n        }\n        return;\n      }\n\n      var option = readData($option) || {};\n      option[field_label] = option[field_label] || $option.text();\n      option[field_value] = option[field_value] || value;\n      option[field_disabled] = option[field_disabled] || $option.prop('disabled');\n      option[field_optgroup] = option[field_optgroup] || group;\n      option.styles = $option.attr('style') || '';\n      option.classes = $option.attr('class') || '';\n\n      optionsMap[value] = option;\n      options.push(option);\n\n      if ($option.is(':selected')) {\n        settings_element.items.push(value);\n      }\n    };\n\n    var addGroup = function ($optgroup) {\n      var i, n, id, optgroup, $options;\n\n      $optgroup = $($optgroup);\n      id = $optgroup.attr('label');\n\n      if (id) {\n        optgroup = readData($optgroup) || {};\n        optgroup[field_optgroup_label] = id;\n        optgroup[field_optgroup_value] = id;\n        optgroup[field_disabled] = $optgroup.prop('disabled');\n        settings_element.optgroups.push(optgroup);\n      }\n\n      $options = $('option', $optgroup);\n      for (i = 0, n = $options.length; i < n; i++) {\n        addOption($options[i], id);\n      }\n    };\n\n    settings_element.maxItems = $input.attr('multiple') ? null : 1;\n\n    $children = $input.children();\n    for (i = 0, n = $children.length; i < n; i++) {\n      tagName = $children[i].tagName.toLowerCase();\n      if (tagName === 'optgroup') {\n        addGroup($children[i]);\n      } else if (tagName === 'option') {\n        addOption($children[i]);\n      }\n    }\n  };\n\n  return this.each(function () {\n    if (this.selectize) return;\n\n    var instance;\n    var $input = $(this);\n    var tag_name = this.tagName.toLowerCase();\n    var placeholder = $input.attr('placeholder') || $input.attr('data-placeholder');\n    if (!placeholder && !settings.allowEmptyOption) {\n      placeholder = $input.children('option[value=\"\"]').text();\n    }\n    if (settings.allowEmptyOption && settings.showEmptyOptionInDropdown && !$input.children('option[value=\"\"]').length) {\n      var input_html = $input.html();\n      var label = escape_html(settings.emptyOptionLabel || '--');\n      $input.html('<option value=\"\">' + label + '</option>' + input_html);\n    }\n\n    var settings_element = {\n      'placeholder': placeholder,\n      'options': [],\n      'optgroups': [],\n      'items': []\n    };\n\n    if (tag_name === 'select') {\n      init_select($input, settings_element);\n    } else {\n      init_textbox($input, settings_element);\n    }\n\n    instance = new Selectize($input, $.extend(true, {}, defaults, settings_element, settings_user));\n    instance.settings_user = settings_user;\n  });\n};\n\n$.fn.selectize.defaults = Selectize.defaults;\n$.fn.selectize.support = {\n  validity: SUPPORTS_VALIDITY_API\n};\n\nSelectize.define(\"auto_position\", function () {\n  var self = this;\n\n  const POSITION = {\n    top: 'top',\n    bottom: 'bottom',\n  };\n\n  self.positionDropdown = (function () {\n    return function () {\n      const $control = this.$control;\n      const offset = this.settings.dropdownParent === 'body' ? $control.offset() : $control.position();\n      offset.top += $control.outerHeight(true);\n\n      const dropdownHeight = this.$dropdown.prop('scrollHeight') + 5; \n      const controlPosTop = this.$control.get(0).getBoundingClientRect().top;\n      const wrapperHeight = this.$wrapper.height();\n      const controlPosBottom = self.$control.get(0).getBoundingClientRect().bottom\n      const position =\n        controlPosTop + dropdownHeight + wrapperHeight > window.innerHeight &&\n          controlPosBottom - dropdownHeight - wrapperHeight >= 0 ?\n          POSITION.top :\n          POSITION.bottom;\n      let w = this.$wrapper[0].style.width !== 'fit-content' ? this.settings.dropdownParent === 'body' ? 'max-content' : '100%' : 'max-content';\n      const styles = {\n        width: w,\n        minWidth : $control.outerWidth(true),\n        left: offset.left\n      };\n\n      if (position === POSITION.top) {\n        const styleToAdd = { bottom: offset.top, top: 'unset' };\n\n        if (this.settings.dropdownParent === 'body') {\n          styleToAdd.top = offset.top - this.$dropdown.outerHeight(true) - $control.outerHeight(true);\n          styleToAdd.bottom = 'unset';\n        }\n        Object.assign(styles, styleToAdd);\n        this.$dropdown.addClass('selectize-position-top');\n        this.$control.addClass('selectize-position-top');\n      } else {\n        Object.assign(styles, { top: offset.top, bottom: 'unset' });\n        this.$dropdown.removeClass('selectize-position-top');\n        this.$control.removeClass('selectize-position-top');\n      }\n\n      if (this.settings.dropdownParent !== 'body' && w === 'max-content' && $control.outerWidth(true) >= this.$dropdown.outerWidth(true)) {\n        w = '100%';\n      }\n\n      this.$dropdown.css(styles);\n    };\n  }());\n});\n\nSelectize.define('auto_select_on_type', function(options) {\n\tvar self = this;\n\n\tself.onBlur = (function() {\n\t\tvar originalBlur = self.onBlur;\n\t\treturn function(e) {\n\t\t\tvar $matchedItem = self.getFirstItemMatchedByTextContent(self.lastValue, true);\n\t\t\tif (typeof $matchedItem.attr('data-value') !== 'undefined' && self.getValue() !== $matchedItem.attr('data-value'))\n\t\t\t{\n\t\t\t\tself.setValue($matchedItem.attr('data-value'));\n\t\t\t}\n\t\t\treturn originalBlur.apply(this, arguments);\n\t\t}\n\t}());\n});\n\nSelectize.define(\"autofill_disable\", function (options) {\n  var self = this;\n\n  self.setup = (function () {\n    var original = self.setup;\n    return function () {\n      original.apply(self, arguments);\n\n      self.$control_input.attr({ name: nanoid(21), autocomplete: nanoid(21) });\n    };\n  })();\n});\n\nSelectize.define(\"clear_button\", function (options) {\n  var self = this;\n\n  options = $.extend(\n    {\n      title: \"Clear\",\n      className: \"clear\",\n      label: \"×\",\n      html: function (data) {\n        return (\n          '<a class=\"' + data.className + '\" title=\"' + data.title + '\"> ' + data.label + '</a>'\n        );\n      },\n    },\n    options\n  );\n\n  self.setup = (function () {\n    var original = self.setup;\n    return function () {\n      original.apply(self, arguments);\n      self.$button_clear = $(options.html(options));\n\n      if (self.settings.mode === \"single\") self.$wrapper.addClass(\"single\");\n\n      self.$wrapper.append(self.$button_clear);\n\n      if (self.getValue() === \"\" || self.getValue().length === 0) {\n        self.$wrapper.find(\".\" + options.className).css(\"display\", \"none\");\n      }\n\n      self.on(\"change\", function () {\n        if (self.getValue() === \"\" || self.getValue().length === 0) {\n          self.$wrapper.find(\".\" + options.className).css(\"display\", \"none\");\n        } else {\n          self.$wrapper.find(\".\" + options.className).css(\"display\", \"\");\n        }\n      });\n\n      self.$wrapper.on(\"click\", \".\" + options.className, function (e) {\n        e.preventDefault();\n        e.stopImmediatePropagation();\n        e.stopPropagation();\n\n        if (self.isLocked) return;\n\n        self.clear();\n        self.$wrapper.find(\".\" + options.className).css(\"display\", \"none\");\n      });\n    };\n  })();\n});\n\nSelectize.define('drag_drop', function(options) {\n\tif (!$.fn.sortable) throw new Error('The \"drag_drop\" plugin requires jQuery UI \"sortable\".');\n\tif (this.settings.mode !== 'multi') return;\n\tvar self = this;\n\n\tself.lock = (function() {\n\t\tvar original = self.lock;\n\t\treturn function() {\n\t\t\tvar sortable = self.$control.data('sortable');\n\t\t\tif (sortable) sortable.disable();\n\t\t\treturn original.apply(self, arguments);\n\t\t};\n\t})();\n\n\tself.unlock = (function() {\n\t\tvar original = self.unlock;\n\t\treturn function() {\n\t\t\tvar sortable = self.$control.data('sortable');\n\t\t\tif (sortable) sortable.enable();\n\t\t\treturn original.apply(self, arguments);\n\t\t};\n\t})();\n\n\tself.setup = (function() {\n\t\tvar original = self.setup;\n\t\treturn function() {\n\t\t\toriginal.apply(this, arguments);\n\n\t\t\tvar $control = self.$control.sortable({\n\t\t\t\titems: '[data-value]',\n\t\t\t\tforcePlaceholderSize: true,\n\t\t\t\tdisabled: self.isLocked,\n\t\t\t\tstart: function(e, ui) {\n\t\t\t\t\tui.placeholder.css('width', ui.helper.css('width'));\n\t\t\t\t\t$control.addClass('dragging');\n\t\t\t\t},\n\t\t\t\tstop: function() {\n\t\t\t\t\t$control.removeClass('dragging');\n\t\t\t\t\tvar active = self.$activeItems ? self.$activeItems.slice() : null;\n\t\t\t\t\tvar values = [];\n\t\t\t\t\t$control.children('[data-value]').each(function() {\n\t\t\t\t\t\tvalues.push($(this).attr('data-value'));\n\t\t\t\t\t});\n\t\t\t\t\tself.isFocused = false;\n\t\t\t\t\tself.setValue(values);\n\t\t\t\t\tself.isFocused = true;\n\t\t\t\t\tself.setActiveItem(active);\n\t\t\t\t\tself.positionDropdown();\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t})();\n\n});\n\nSelectize.define('dropdown_header', function(options) {\n\tvar self = this;\n\n\toptions = $.extend({\n\t\ttitle         : 'Untitled',\n\t\theaderClass   : 'selectize-dropdown-header',\n\t\ttitleRowClass : 'selectize-dropdown-header-title',\n\t\tlabelClass    : 'selectize-dropdown-header-label',\n\t\tcloseClass    : 'selectize-dropdown-header-close',\n\n\t\thtml: function(data) {\n\t\t\treturn (\n\t\t\t\t'<div class=\"' + data.headerClass + '\">' +\n\t\t\t\t\t'<div class=\"' + data.titleRowClass + '\">' +\n\t\t\t\t\t\t'<span class=\"' + data.labelClass + '\">' + data.title + '</span>' +\n\t\t\t\t\t\t'<a href=\"javascript:void(0)\" class=\"' + data.closeClass + '\">&#xd7;</a>' +\n\t\t\t\t\t'</div>' +\n\t\t\t\t'</div>'\n\t\t\t);\n\t\t}\n\t}, options);\n\n\tself.setup = (function() {\n\t\tvar original = self.setup;\n\t\treturn function() {\n\t\t\toriginal.apply(self, arguments);\n\t\t\tself.$dropdown_header = $(options.html(options));\n      self.$dropdown.prepend(self.$dropdown_header);\n      self.$dropdown_header.find('.' + options.closeClass).on('click', function () {\n        self.close();\n      });\n\t\t};\n\t})();\n\n});\n\nSelectize.define('optgroup_columns', function(options) {\n\tvar self = this;\n\n\toptions = $.extend({\n\t\tequalizeWidth  : true,\n\t\tequalizeHeight : true\n\t}, options);\n\n\tthis.getAdjacentOption = function($option, direction) {\n\t\tvar $options = $option.closest('[data-group]').find('[data-selectable]');\n\t\tvar index    = $options.index($option) + direction;\n\n\t\treturn index >= 0 && index < $options.length ? $options.eq(index) : $();\n\t};\n\n\tthis.onKeyDown = (function() {\n\t\tvar original = self.onKeyDown;\n\t\treturn function(e) {\n\t\t\tvar index, $option, $options, $optgroup;\n\n\t\t\tif (this.isOpen && (e.keyCode === KEY_LEFT || e.keyCode === KEY_RIGHT)) {\n\t\t\t\tself.ignoreHover = true;\n\t\t\t\t$optgroup = this.$activeOption.closest('[data-group]');\n\t\t\t\tindex = $optgroup.find('[data-selectable]').index(this.$activeOption);\n\n\t\t\t\tif(e.keyCode === KEY_LEFT) {\n\t\t\t\t\t$optgroup = $optgroup.prev('[data-group]');\n\t\t\t\t} else {\n\t\t\t\t\t$optgroup = $optgroup.next('[data-group]');\n\t\t\t\t}\n\n\t\t\t\t$options = $optgroup.find('[data-selectable]');\n\t\t\t\t$option  = $options.eq(Math.min($options.length - 1, index));\n\t\t\t\tif ($option.length) {\n\t\t\t\t\tthis.setActiveOption($option);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treturn original.apply(this, arguments);\n\t\t};\n\t})();\n\n\tvar getScrollbarWidth = function() {\n\t\tvar div;\n\t\tvar width = getScrollbarWidth.width;\n\t\tvar doc = document;\n\n\t\tif (typeof width === 'undefined') {\n\t\t\tdiv = doc.createElement('div');\n\t\t\tdiv.innerHTML = '<div style=\"width:50px;height:50px;position:absolute;left:-50px;top:-50px;overflow:auto;\"><div style=\"width:1px;height:100px;\"></div></div>';\n\t\t\tdiv = div.firstChild;\n\t\t\tdoc.body.appendChild(div);\n\t\t\twidth = getScrollbarWidth.width = div.offsetWidth - div.clientWidth;\n\t\t\tdoc.body.removeChild(div);\n\t\t}\n\t\treturn width;\n\t};\n\n\tvar equalizeSizes = function() {\n\t\tvar i, n, height_max, width, width_last, width_parent, $optgroups;\n\n\t\t$optgroups = $('[data-group]', self.$dropdown_content);\n\t\tn = $optgroups.length;\n\t\tif (!n || !self.$dropdown_content.width()) return;\n\n\t\tif (options.equalizeHeight) {\n\t\t\theight_max = 0;\n\t\t\tfor (i = 0; i < n; i++) {\n\t\t\t\theight_max = Math.max(height_max, $optgroups.eq(i).height());\n\t\t\t}\n\t\t\t$optgroups.css({height: height_max});\n\t\t}\n\n\t\tif (options.equalizeWidth) {\n\t\t\twidth_parent = self.$dropdown_content.innerWidth() - getScrollbarWidth();\n\t\t\twidth = Math.round(width_parent / n);\n\t\t\t$optgroups.css({width: width});\n\t\t\tif (n > 1) {\n\t\t\t\twidth_last = width_parent - width * (n - 1);\n\t\t\t\t$optgroups.eq(n - 1).css({width: width_last});\n\t\t\t}\n\t\t}\n\t};\n\n\tif (options.equalizeHeight || options.equalizeWidth) {\n\t\thook.after(this, 'positionDropdown', equalizeSizes);\n\t\thook.after(this, 'refreshOptions', equalizeSizes);\n\t}\n\n\n});\n\nSelectize.define('read-only', function(options){\n\tvar self = this;\n\tthis.setup = (function() {\n\t\tvar original = self.setup;\n\t\treturn function() {\n\t\t\toriginal.apply(this, arguments);\n\t\t\tif(this.$dropdown.hasClass(\"read-only\"))this.$control_input.attr('readonly', 'readonly');\n\t\t};\n\t})();\n\tthis.readonly = (function() {\n\t\treturn function(state) {\n\t\t\tif(state){\n\t\t\t\tthis.$control_input.attr('readonly', 'readonly');\n\t\t\t\tthis.$dropdown.addClass(\"read-only\")\n\t\t\t}\n\t\t\telse{\n\t\t\t\tthis.$control_input.removeAttr('readonly');\n\t\t\t\tthis.$dropdown.removeClass(\"read-only\")\n\t\t\t}\n\t\t};\n\t})();\n});\n\nSelectize.define('remove_button', function (options) {\n  if (this.settings.mode === 'single') return;\n\n\toptions = $.extend({\n\t\t\tlabel     : '&#xd7;',\n\t\t\ttitle     : 'Remove',\n\t\t\tclassName : 'remove',\n\t\t\tappend    : true\n\t\t}, options);\n\n\t\tvar multiClose = function(thisRef, options) {\n\n\t\t\tvar self = thisRef;\n\t\t\tvar html = '<a href=\"javascript:void(0)\" class=\"' + options.className + '\" tabindex=\"-1\" title=\"' + escape_html(options.title) + '\">' + options.label + '</a>';\n\n\t\t\tvar append = function(html_container, html_element) {\n\t\t\t\tvar pos = html_container.search(/(<\\/[^>]+>\\s*)$/);\n\t\t\t\treturn html_container.substring(0, pos) + html_element + html_container.substring(pos);\n\t\t\t};\n\n\t\t\tthisRef.setup = (function() {\n\t\t\t\tvar original = self.setup;\n\t\t\t\treturn function() {\n\t\t\t\t\tif (options.append) {\n\t\t\t\t\t\tvar render_item = self.settings.render.item;\n\t\t\t\t\t\tself.settings.render.item = function(data) {\n\t\t\t\t\t\t\treturn append(render_item.apply(thisRef, arguments), html);\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\toriginal.apply(thisRef, arguments);\n\n\t\t\t\t\tthisRef.$control.on('click', '.' + options.className, function(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tif (self.isLocked) return;\n\n\t\t\t\t\t\tvar $item = $(e.currentTarget).parent();\n\t\t\t\t\t\tself.setActiveItem($item);\n\t\t\t\t\t\tif (self.deleteSelection()) {\n\t\t\t\t\t\t\tself.setCaret(self.items.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\n\t\t\t\t};\n\t\t\t})();\n\t\t};\n\n    multiClose(this, options);\n});\n\nSelectize.define('restore_on_backspace', function(options) {\n\tvar self = this;\n\n\toptions.text = options.text || function(option) {\n\t\treturn option[this.settings.labelField];\n\t};\n\n\tthis.onKeyDown = (function() {\n\t\tvar original = self.onKeyDown;\n\t\treturn function(e) {\n\t\t\tvar index, option;\n\t\t\tif (e.keyCode === KEY_BACKSPACE && this.$control_input.val() === '' && !this.$activeItems.length) {\n\t\t\t\tindex = this.caretPos - 1;\n\t\t\t\tif (index >= 0 && index < this.items.length) {\n\t\t\t\t\toption = this.options[this.items[index]];\n\t\t\t\t\tif (this.deleteSelection(e)) {\n\t\t\t\t\t\tthis.setTextboxValue(options.text.apply(this, [option]));\n\t\t\t\t\t\tthis.refreshOptions(true);\n\t\t\t\t\t}\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn original.apply(this, arguments);\n\t\t};\n\t})();\n});\n\nSelectize.define('select_on_focus', function(options) {\n\tvar self = this;\n\n\tself.on('focus', function() {\n\t\tvar originalFocus = self.onFocus;\n\t\treturn function(e) {\n\t\t\tvar value = self.getItem(self.getValue()).text();\n\t\t\tself.clear();\n\t\t\tself.setTextboxValue(value);\n\t\t\tself.$control_input.select();\n\t\t\tsetTimeout( function () {\n\t\t\t\tif (self.settings.selectOnTab) {\n\t\t\t\t\tself.setActiveOption(self.getFirstItemMatchedByTextContent(value));\n\t\t\t\t}\n\t\t\t\tself.settings.score = null;\n\t\t\t},0);\n\t\t\treturn originalFocus.apply(this, arguments);\n\t\t};\n\t}());\n\n\tself.onBlur = (function() {\n\t\tvar originalBlur = self.onBlur;\n\t\treturn function(e) {\n\t\t\tif (self.getValue() === \"\" && self.lastValidValue !== self.getValue()) {\n\t\t\t\tself.setValue(self.lastValidValue);\n\t\t\t}\n\t\t\tsetTimeout( function () {\n\t\t\t\tself.settings.score = function() {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\treturn 1;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}, 0 );\n\t\t\treturn originalBlur.apply(this, arguments);\n\t\t}\n\t}());\n\tself.settings.score = function() {\n\t\treturn function() { return 1; };\n\t};\n\n});\n\nSelectize.define('tag_limit', function (options) {\n    const self = this\n    options.tagLimit = options.tagLimit\n    this.onBlur = (function (e) {\n        const original = self.onBlur\n\n        return function (e) {\n            original.apply(this, e);\n            if (!e)\n                return\n            const $control = this.$control\n            const $items = $control.find('.item')\n            const limit = options.tagLimit\n            if (limit === undefined || $items.length <= limit)\n                return\n\n            $items.toArray().forEach(function(item, index) {\n                if (index < limit)\n                    return\n                $(item).hide()\n            });\n\n            $control.append('<span><b>' + ($items.length - limit) + '</b></span>')\n        };\n    })()\n\n    this.onFocus = (function (e) {\n        const original = self.onFocus\n\n        return function (e) {\n            original.apply(this, e);\n            if (!e)\n                return\n            const $control = this.$control\n            const $items = $control.find('.item')\n            $items.show()\n            $control.find('span').remove()\n\n        };\n    })()\n});\n\n  return Selectize;\n}));\n"
  },
  {
    "path": "docs/tailwind.config.js",
    "content": "const defaultTheme = require('tailwindcss/defaultTheme')\n\n/** @type {import('tailwindcss').Config} */\nmodule.exports = {\n  content: [\"./src/**/*.{js,jsx,ts,tsx}\"],\n  theme: {\n    extend: {\n      boxShadow: {\n        glow: '0 0 4px rgb(0 0 0 / 0.1)',\n      },\n      maxWidth: {\n        lg: '33rem',\n        '2xl': '40rem',\n        '3xl': '50rem',\n        '5xl': '66rem',\n      },\n      opacity: {\n        1: '0.01',\n        2.5: '0.025',\n        7.5: '0.075',\n        15: '0.15',\n      },\n    },\n    fontFamily: {\n      sans: ['Lexand', ...defaultTheme.fontFamily.sans],\n      display: ['Visby CF', ...defaultTheme.fontFamily.sans],\n      mono: ['CaskaydiaCove Nerd Font Mono', ...defaultTheme.fontFamily.mono],\n    },\n  },\n  typography: require('./config/typography'),\n  corePlugins: { preflight: false },\n  plugins: [\n    require('@tailwindcss/typography'),\n    require('@tailwindcss/forms'),\n    require('@tailwindcss/line-clamp'),\n    require('@tailwindcss/aspect-ratio'),\n  ],\n  darkMode: ['class', '[data-theme=\"dark\"]']\n}\n"
  },
  {
    "path": "gulpfile.js",
    "content": "const concat = require('gulp-concat');\nconst dartSass = require('sass');\nconst del = require('del');\nconst fs = require('fs');\nconst gulpSass = require('gulp-sass');\nconst jsdoc2md = require(\"jsdoc-to-markdown\");\nconst lazypipe = require('lazypipe');\nconst less = require('gulp-less');\nconst path = require('path');\nconst rename = require('gulp-rename');\nconst replace = require('gulp-replace');\nconst sass = gulpSass(dartSass);\nconst strip = require('gulp-strip-comments');\nconst uglify = require('gulp-uglify');\nconst uglifycss = require('gulp-uglifycss');\nconst wrapper = require('@risadams/gulp-wrapper');\n\nconst { resolve } = require('path');\nconst { readdir } = require('fs').promises;\n\nconst { src, dest, series, watch, parallel } = require('gulp');\n\n\n// ----------------------------------------\n// Internal task definitions\n// ----------------------------------------\nconst cleanLibs = async () => del('dist/**/*');\nconst loadDependencies = async () => await _copyLibs();\nconst copyDependencies = async () => src(['lib/**/*']).pipe(dest('dist/lib'));\nconst copySrc = async () => {\n\n  let scripts = [\n    'src/contrib/*.js',\n    'src/constants.js',\n    'src/utils.js',\n    'src/selectize.js',\n    'src/defaults.js',\n    'src/selectize.jquery.js'\n  ];\n\n  // Add in all plugin scripts in a predictable order\n  fs.readdirSync('src/plugins').sort().forEach((file) => {\n    scripts.push(`src/plugins/${file}/plugin.js`);\n  });\n\n  setTimeout(async () => {\n    await _compileLess();\n    await _compileSass();\n    await _compileJavascript(scripts);\n    await _minifyScripts(scripts);\n  }, 1000);\n};\nconst watchFiles = async () => watch(['src/**/*.{js,css,less,scss}']).on('change', series(loadDependencies, copyDependencies, copySrc, generateJsDoc, forwardToDocs));\nconst forwardToDocs = async () => {\n  setTimeout(async () => {\n    src(['dist/css/**/*']).pipe(dest('docs/static/css'));\n    src(['dist/js/**/*']).pipe(dest('docs/static/js'));\n  }, 1500);\n}\nconst generateJsDoc = async () => {\n  (async () => {\n    for await (const file of getFiles('src')) {\n      if (path.extname(file) === '.js') {\n        let basename = path.basename(file, '.js');\n        if (basename === 'plugin') basename = `${path.dirname(file).split(path.sep).pop()} Plugin`;\n\n        const output = `docs/docs/API/${basename}.mdx`;\n        const toAdd = `---\ntitle: ${basename}\ndescription: API Reference for ${basename}\n---\n# API Documentation for ${basename}\\n`;\n\n        const data = await jsdoc2md.render({\n          files: file,\n          \"no-gfm\": false,\n          \"global-index-format\": \"none\",\n          \"module-index-format\": \"none\",\n        });\n\n\n\n\n        const sanatizedData = toAdd + data;\n        fs.writeFileSync(output, sanatizedData);\n      }\n    }\n  })();\n}\n// ----------------------------------------\n\n\n// Helper methods and constants\nconst getYear = () => new Date().getFullYear();\nconst getVersion = () => process.env.npm_package_version;\nconst renameFileToParentDirName = (filepath) => {\n  filepath.basename = path.basename(filepath.dirname);\n  filepath.dirname = path.dirname(filepath.dirname);\n}\n\nasync function* getFiles(dir) {\n  const dirents = await readdir(dir, { withFileTypes: true });\n  for (const dirent of dirents) {\n    const res = resolve(dir, dirent.name);\n    if (dirent.isDirectory()) {\n      yield* getFiles(res);\n    } else {\n      yield res;\n    }\n  }\n}\n\nconst license_header = `/**\n * Selectize (v@@version)\n * https://selectize.dev\n *\n * Copyright (c) 2013-2015 Brian Reavis & contributors\n * Copyright (c) 2020-@@YEAR Selectize Team & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis <brian@thirdroute.com>\n * @author Ris Adams <selectize@risadams.com>\n */\n`;\n\nconst amd_header = `(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && typeof module.exports === 'object') {\n    module.exports = factory(require('jquery'));\n  } else {\n    root.Selectize = factory(root.jQuery);\n  }\n}(this, function ($) {\n  'use strict';\n`;\n\nconst amd_footer = `\n  return Selectize;\n}));\n`\n\nasync function _copyLibs() {\n  'use strict';\n\n  src(['node_modules/bootstrap2/less/**/**.*']).pipe(dest('lib/bootstrap2'));\n  src(['node_modules/bootstrap3/less/**/**.*']).pipe(dest('lib/bootstrap3'));\n  src(['node_modules/bootstrap4/scss/**/**.*'])\n    .pipe(__fixScssDeprecations())\n    .pipe(dest('lib/bootstrap4'));\n\n  src(['node_modules/bootstrap5/scss/**/**.*'])\n    .pipe(__fixScssDeprecations())\n    .pipe(dest('lib/bootstrap5'));\n\n  src(['node_modules/bootstrap-sass/assets/stylesheets/bootstrap/**/**.*']).pipe(dest('lib/bootstrap-sass'));\n}\n\n\n\n// ----------------------------------------\n// re-usable pipelines\nconst __fixScssDeprecations = lazypipe()\n  .pipe(replace, /\\$spacer \\/ 2/g, 'calc($spacer /2)')\n  .pipe(replace, /\\$input-padding-y \\/ 2/g, 'calc($input-padding-y / 2)')\n  .pipe(replace, /\\$custom-control-indicator-size \\/ 2/g, 'calc($custom-control-indicator-size / 2)')\n  .pipe(replace, /\\$grid-gutter-width \\/ 2/g, 'calc($grid-gutter-width / 2)')\n  .pipe(replace, /1 \\/ \\$rfs-rem-value/g, 'calc(1 / $rfs-rem-value)')\n  .pipe(replace, /\\$rfs-breakpoint \\/ \\(\\$rfs-breakpoint \\* 0 \\+ 1\\)/g, 'calc($rfs-breakpoint / ($rfs-breakpoint * 0 + 1px))')\n  .pipe(replace, /\\(\\$nav-link-height - \\$navbar-brand-height\\) \\/ 2/g, 'calc(($nav-link-height - $navbar-brand-height))')\n  .pipe(replace, /\\$rfs-base-font-size \\/ \\(\\$rfs-base-font-size \\* 0 \\+ calc\\(1 \\/ \\$rfs-rem-value\\)\\)/g, 'calc($rfs-base-font-size / ($rfs-base-font-size * 0 + calc(1px / $rfs-rem-value)))')\n  ;\n\nconst __wrapScripts = lazypipe()\n  .pipe(wrapper, {\n    header: amd_header,\n    footer: amd_footer\n  })\n  .pipe(strip, { trim: true })\n  .pipe(wrapper, { header: license_header })\n  .pipe(replace, /@@YEAR/g, getYear())\n  .pipe(replace, /@@version/g, getVersion())\n  ;\n\nconst __wrapStyles = lazypipe()\n  .pipe(uglifycss)\n  .pipe(wrapper, { header: license_header })\n  .pipe(replace, /@@YEAR/g, getYear())\n  .pipe(replace, /@@version/g, getVersion())\n  ;\n\n\n// ----------------------------------------\n// task internals\n\nconst _compileLess = async () => {\n  src(['src/less/**.less']).pipe(dest('dist/less'));\n  src(['src/plugins/**/*.less']).pipe(rename(renameFileToParentDirName)).pipe(dest('dist/less/plugins'));\n\n  let plugin_styles = [];\n\n  // Add in all plugin styles in a predictable order\n  fs.readdirSync('src/plugins').sort().forEach((file) => {\n    const path = `src/plugins/${file}/plugin.less`;\n    if (fs.existsSync(path)) {\n      plugin_styles.push(path);\n    }\n  });\n\n  src(['src/less/selectize.bootstrap2.less', ...plugin_styles])\n    .pipe(concat('selectize.bootstrap2.css'))\n    .pipe(less({ paths: ['lib', 'src/less'], math: 'always' }))\n    .pipe(__wrapStyles())\n    .pipe(dest('dist/css'));\n}\n\nconst _compileSass = async () => {\n  src(['src/scss/**.scss'])\n    .pipe(replace(/\\.\\.\\/plugins\\/(.+)\\/plugin.scss/g, 'plugins/$1.scss')) // fix relative paths GH#1886\n    .pipe(dest('dist/scss'));\n  src(['src/plugins/**/*.scss']).pipe(rename(renameFileToParentDirName)).pipe(dest('dist/scss/plugins'));\n\n  let plugin_styles = [];\n\n  // Add in all plugin styles in a predictable order\n  fs.readdirSync('src/plugins').sort().forEach((file) => {\n    const path = `src/plugins/${file}/plugin.scss`;\n    if (fs.existsSync(path)) {\n      plugin_styles.push(path);\n    }\n  });\n\n  src(['src/scss/selectize.scss', ...plugin_styles])\n    .pipe(concat('selectize.css'))\n    .pipe(sass({ includePaths: ['lib', 'src/scss'], }).on('error', sass.logError))\n    .pipe(__wrapStyles())\n    .pipe(dest('dist/css'));\n\n  src(['src/scss/selectize.default.scss', ...plugin_styles])\n    .pipe(concat('selectize.default.css'))\n    .pipe(sass({ includePaths: ['lib', 'src/scss'], }).on('error', sass.logError))\n    .pipe(__wrapStyles())\n    .pipe(dest('dist/css'));\n\n  // build the bootstrap base sccss styles\n  for (let bs_version = 3; bs_version <= 5; bs_version++) {\n    src(['src/scss/selectize.bootstrap' + bs_version + '.scss', ...plugin_styles])\n      .pipe(concat('selectize.bootstrap' + bs_version + '.css'))\n      .pipe(sass({ includePaths: ['lib', 'src/scss'], }).on('error', sass.logError))\n      .pipe(__wrapStyles())\n      .pipe(dest('dist/css'));\n  }\n}\n\nconst _compileJavascript = async (scripts) =>\n  src(scripts)\n    .pipe(concat('selectize.js'))\n    .pipe(__wrapScripts())\n    .pipe(dest('dist/js'));\n\nconst _minifyScripts = async (scripts) =>\n  src(scripts)\n    .pipe(concat('selectize.min.js'))\n    .pipe(uglify())\n    .pipe(__wrapScripts())\n    .pipe(dest('dist/js'));\n\n// public task definitions\nexports.default = series(copyDependencies, copySrc);\nexports.docs = parallel(generateJsDoc, forwardToDocs);\nexports.loadDependencies = series(cleanLibs, loadDependencies);\nexports.watch = series(watchFiles);\n"
  },
  {
    "path": "index.d.ts",
    "content": "// Type definitions for Selectize 0.15.3\n// Project: https://github.com/selectize/selectize.js\n// Definitions by: Adi Dahiya <https://github.com/adidahiya>, Natalie Bausch <https://github.com/naBausch>\n// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped\n\n/// <reference types=\"jquery\"/>\n\nexport declare namespace Selectize {\n    // see https://github.com/selectize/selectize.js/blob/master/docs/usage.md\n    // option identifiers are parameterized by T; data is parameterized by U\n    interface IOptions<T, U> {\n\n        // General\n        // ------------------------------------------------------------------------------------------------------------\n\n        /**\n         * The string to separate items by. This option is only used when Selectize is instantiated from a\n         * <input type=\"text\"> element.\n         *\n         * Default: ','\n         */\n        delimiter?: string;\n\n        /**\n         * Enable or disable international character support.\n         *\n         * Default: true\n         */\n        diacritics?: boolean;\n\n        /**\n         * Allows the user to create a new items that aren't in the list of options.\n         * This option can be any of the following: \"true\", \"false\" (disabled), or a function that accepts two\n         * arguments: \"input\" and \"callback\". The callback should be invoked with the final data for the option.\n         *\n         * Default: false\n         */\n        create?: any;\n\n        /**\n         * If true, when user exits the field (clicks outside of input or presses ESC) new option is created and\n         * selected (if `create`-option is enabled).\n         *\n         * Default: false\n         */\n        createOnBlur?: boolean;\n\n        /**\n         * Specifies a RegExp or String containing a regular expression that the current search filter must match to\n         * be allowed to be created. May also be a predicate function that takes the filter text and returns whether\n         * it is allowed.\n         *\n         * Default: null\n         */\n        createFilter?: any;\n\n        /**\n         * Toggles match highlighting within the dropdown menu.\n         *\n         * Default: true\n         */\n        highlight?: boolean;\n\n        /**\n         * If false, items created by the user will not show up as available options once they are unselected.\n         *\n         * Default: true\n         */\n        persist?: boolean;\n\n        /**\n         * Show the dropdown immediately when the control receives focus.\n         *\n         * Default: true\n         */\n        openOnFocus?: boolean;\n\n        /**\n         * The max number of items to render at once in the dropdown list of options.\n         *\n         * Default: 1000\n         */\n        maxOptions?: number;\n\n        /**\n         * The max number of items the user can select.\n         *\n         * Default: Infinity\n         */\n        maxItems?: number;\n\n        /**\n         * If true, the items that are currently selected will not be shown in the dropdown list of available options.\n         *\n         * Default: false\n         */\n        hideSelected?: boolean;\n\n        /**\n         * If true, Selectize will treat any options with a \"\" value like normal. This defaults to false to\n         * accomodate the common <select> practice of having the first empty option act as a placeholder.\n         *\n         * Default: false\n         */\n        allowEmptyOption?: boolean;\n\n        /**\n         * The animation duration (in milliseconds) of the scroll animation triggered when going [up] and [down] in\n         * the options dropdown.\n         *\n         * Default: 60\n         */\n        scrollDuration?: number;\n\n        /**\n         * The number of milliseconds to wait before requesting options from the server or null.\n         * If null, throttling is disabled.\n         *\n         * Default: 300\n         */\n        loadThrottle?: number;\n\n        /**\n         * If true, the \"load\" function will be called upon control initialization (with an empty search).\n         * Alternatively it can be set to \"focus\" to call the \"load\" function when control receives focus.\n         *\n         * Default: false\n         */\n        preload?: any;\n\n        /**\n         * The element the dropdown menu is appended to. This should be \"body\" or null.\n         * If null, the dropdown will be appended as a child of the selectize control.\n         *\n         * Default: null\n         */\n        dropdownParent?: string;\n\n        /**\n         * Sets if the \"Add...\" option should be the default selection in the dropdown.\n         *\n         * Default: false\n         */\n        addPrecedence?: boolean;\n\n        /**\n         * If true, the tab key will choose the currently selected item.\n         *\n         * Default: false\n         */\n        selectOnTab?: boolean;\n\n        /**\n         * An array of plugins to use\n         *\n         * Default: null\n         */\n        plugins?: string[];\n\n        // Data / Searching\n        // ------------------------------------------------------------------------------------------------------------\n\n        /**\n         * Options available to select; array of objects. If your element is <select> with <option>s specified this\n         * property gets populated accordingly. Setting this property is convenient if you have your data as an\n         * array and want to automatically generate the <option>s.\n         *\n         * Default: []\n         */\n        options?: U[];\n\n        /**\n         * The <option> attribute from which to read JSON data about the option.\n         *\n         * Default: \"data-data\"\n         */\n        dataAttr?: string;\n\n        /**\n         * The name of the property to use as the \"value\" when an item is selected.\n         *\n         * Default: \"value\"\n         */\n        valueField?: string;\n\n        /**\n         * Option groups that options will be bucketed into.\n         * If your element is a <select> with <optgroup>s this property gets populated automatically.\n         * Make sure each object in the array has a property named whatever \"optgroupValueField\" is set to.\n         */\n        optgroups?: U[];\n\n        /**\n         * The name of the option group property that serves as its unique identifier.\n         *\n         * Default: \"value\"\n         */\n        optgroupValueField?: string;\n\n        /**\n         * The name of the property to render as an option / item label (not needed when custom rendering\n         * functions are defined).\n         *\n         * Default: \"text\"\n         */\n        labelField?: string;\n\n        /**\n         * The name of the property to render as an option group label (not needed when custom rendering\n         * functions are defined).\n         *\n         * Default: \"label\"\n         */\n        optgroupLabelField?: string;\n\n        /**\n         * The name of the property to group items by.\n         *\n         * Default: \"optgroup\"\n         */\n        optgroupField?: string;\n\n        /**\n         * A single field or an array of fields to sort by. Each item in the array should be an object containing at\n         * least a \"field\" property. Optionally, \"direction\" can be set to \"asc\" or \"desc\". The order of the array\n         * defines the sort precedence.\n         *\n         * Unless present, a special \"$score\" field will be automatically added to the beginning of the sort list.\n         * This will make results sorted primarily by match quality (descending).\n         *\n         * Default: \"$order\"\n         */\n        sortField?: any;\n\n        /**\n         * An array of property names to analyze when filtering options.\n         *\n         * Default: [\"text\"]\n         */\n        searchField?: any;\n\n        /**\n         * When searching for multiple terms (separated by a space), this is the operator used. Can be \"and\" or \"or\".\n         *\n         * Default: \"and\"\n         */\n        searchConjunction?: string;\n\n        /**\n         * An array of optgroup values that indicates the order they should be listed in in the dropdown.\n         * If not provided, groups will be ordered by the ranking of the options within them.\n         *\n         * Default: null\n         */\n        optgroupOrder?: string[];\n\n        /**\n         * Copy the original input classes to the Dropdown element.\n         *\n         * Default: true\n         */\n        copyClassesToDropdown?: boolean;\n\n         /**\n         * Sets always the first option in the list as active.\n         *\n         * Default: false\n         */\n          setFirstOptionActive?: boolean;\n\n        // Callbacks\n        // ------------------------------------------------------------------------------------------------------------\n\n        /**\n         * Invoked when new options should be loaded from the server.\n         */\n        load?(query: string, callback: Function): any;\n\n        /**\n         * Overrides the scoring function used to sort available options. The provided function should return a\n         * function that returns a number greater than or equal to zero to represent the \"score\" of an item\n         * (the function's first argument). If 0, the option is declared not a match.\n         */\n        score?(search: ISearch): (item: any) => number;\n\n        /**\n         * Invoked once the control is completely initialized.\n         */\n        onInitialize?(): any;\n\n        /**\n         * Invoked when the value of the control changes.\n         *\n         * If single select, value is of type T.\n         * If multi select, value is of type T[].\n         */\n        onChange?(value: any): any;\n\n        /**\n         * Invoked when an item is selected.\n         */\n        onItemAdd?(value: T, item: JQuery): any;\n\n        /**\n         * Invoked when an item is deselected.\n         */\n        onItemRemove?(value: T): any;\n\n        /**\n         * Invoked when the control is manually cleared via the clear() method.\n         */\n        onClear?(): any;\n\n        /**\n         * Invoked when the user attempts to delete the current selection.\n         */\n        onDelete?(values: T[]): any;\n\n        /**\n         * Invoked when a new option is added to the available options list.\n         */\n        onOptionAdd?(value: T, data: U): any;\n\n        /**\n         * Invoked when an option is removed from the available options.\n         */\n        onOptionRemove?(value: T): any;\n\n        /**\n         * Invoked when the dropdown opens.\n         */\n        onDropdownOpen?(dropdown: JQuery): any;\n\n        /**\n         * Invoked when the dropdown closes.\n         */\n        onDropdownClose?(dropdown: JQuery): any;\n\n        /**\n         * Invoked when the user types while filtering options.\n         */\n        onType?(srt: string): any;\n\n        /**\n         * Invoked when new options have been loaded and added to the control (via the \"load\" option or \"load\" API method).\n         */\n        onLoad?(data: U[]): any;\n\n        // Rendering\n        // ------------------------------------------------------------------------------------------------------------\n\n        render?: ICustomRenderers<U>;\n\n        // Classes\n        // ------------------------------------------------------------------------------------------------------------\n\n        wrapperClass?: string;\n        inputClass?: string;\n        dropdownClass?: string;\n        dropdownContentClass?: string;\n\n        /**\n         * Setup the dropdown size to auto / number of visible items or a fixed height\n         */\n        dropdownSize?: {\n            /**\n             * Type of dropdown\n             *\n             * @default 'auto'\n             */\n            sizeType: 'auto' | 'numberItems' | 'fixedHeight',\n            /**\n             * Size value of dropdown\n             *\n             * @default 'auto'\n             */\n            sizeValue: 'auto' | '??px' | '??rem' | '??em' | '??vh'\n        },\n\n        /**\n         * Ignored selector when dropdown height calculated\n         *\n         * @default 'img, i'\n         */\n        ignoreOnDropwdownHeight: string,\n\n        /**\n         * For setting search mode on input on a single select\n         *\n         * @default true\n         */\n        search: boolean,\n    }\n\n    /**\n     * Custom rendering functions. Each function should accept two arguments: \"data\" and \"escape\" and return\n     * HTML (string) with a single root element. The \"escape\" argument is a function that takes a string and\n     * escapes all special HTML characters. This is very important to use to prevent XSS vulnerabilities.\n     */\n    interface ICustomRenderers<U> {\n        // An option in the dropdown list of available options.\n        option?(data: U, escape: (input: string) => string): string;\n\n        // An item the user has selected.\n        item?(data: U, escape: (input: string) => string): string;\n\n        // The \"create new\" option at the bottom of the dropdown. The data contains one property: \"input\"\n        // (which is what the user has typed).\n        option_create?(data: U, escape: (input: string) => string): string;\n\n        // The header of an option group.\n        optgroup_header?(data: U, escape: (input: string) => string): string;\n\n        // The wrapper for an optgroup. The \"html\" property in the data will be the raw html of the optgroup's header\n        // and options.\n        optgroup?(data: U, escape: (input: string) => string): string;\n    }\n\n    // see https://github.com/selectize/selectize.js/blob/master/docs/api.md\n    interface IApi<T, U> {\n\n        // Dropdown Options\n        // ------------------------------------------------------------------------------------------------------------\n\n        /**\n         * Adds an available option. If it already exists, nothing will happen.\n         * Note: this does not refresh the options list dropdown (use refreshOptions() for that).\n         */\n        addOption(data: U): void;\n\n        /**\n         * Updates an option available for selection. If it is visible in the selected items or options dropdown,\n         * it will be re-rendered automatically.\n         */\n        updateOption(value: T, data: U): void;\n\n        /**\n         * Removes the option identified by the given value.\n         */\n        removeOption(value: T): void;\n\n        /**\n         * Removes all options from the control.\n         */\n        clearOptions(): void;\n\n        /**\n         * Retrieves the jQuery element for the option identified by the given value.\n         */\n        getOption(value: T): any;\n\n        /**\n         * Retrieves the jQuery element for the previous or next option, relative to the currently highlighted option.\n         * The \"direction\" argument should be 1 for \"next\" or -1 for \"previous\".\n         */\n        getAdjacentOption(value: T, direction: number): void;\n\n        /**\n         * Refreshes the list of available options shown in the autocomplete dropdown menu.\n         */\n        refreshOptions(triggerDropdown: boolean): void;\n\n        // Selected Items\n        // ------------------------------------------------------------------------------------------------------------\n\n        /**\n         * Resets / clears all selected items from the control.\n         */\n        clear(): void;\n\n        /**\n         * Returns the jQuery element of the item matching the given value.\n         */\n        getItem(value: T): JQuery;\n\n        /**\n         * \"Selects\" an item. Adds it to the list at the current caret position.\n         */\n        addItem(value: T): void;\n\n        /**\n         * Removes the selected item matching the provided value.\n         */\n        removeItem(value: T): void;\n\n        /**\n         * Invokes the \"create\" method provided in the selectize options that should provide the data for the\n         * new item, given the user input. Once this completes, it will be added to the item list.\n         */\n        createItem(value: T): void;\n\n        /**\n         * Re-renders the selected item lists.\n         */\n        refreshItems(): void;\n\n        // Optgroups\n        // ------------------------------------------------------------------------------------------------------------\n\n        /**\n         * Registers a new optgroup for options to be bucketed into.\n         * The \"id\" argument refers to a value of the property in option identified by the \"optgroupField\" setting.\n         */\n        addOptionGroup(id: string, data: U): void;\n\n        // Events\n        // ------------------------------------------------------------------------------------------------------------\n\n        /**\n         * Adds an event listener.\n         */\n        on(eventName: string, handler: Function): void;\n\n        /**\n         * Removes an event listener. If no handler is provided, all event listeners are removed.\n         */\n        off(eventName: string, handler?: Function): void;\n\n        /**\n         * Triggers event listeners.\n         */\n        trigger(eventName: string, ...args: any[]): void;\n\n        // Dropdown Actions\n        // ------------------------------------------------------------------------------------------------------------\n\n        /**\n         * Shows the autocomplete dropdown containing the available options.\n         */\n        open(): void;\n\n        /**\n         * Closes the autocomplete dropdown menu.\n         */\n        close(): void;\n\n        /**\n         * Calculates and applies the appropriate position of the dropdown.\n         */\n        positionDropdown(): void;\n\n        // Other\n        // ------------------------------------------------------------------------------------------------------------\n\n        /**\n         * Destroys the control and unbinds event listeners so that it can be garbage collected.\n         */\n        destroy(): void;\n\n        /**\n         * Loads options by invoking the the provided function. The function should accept one argument (callback)\n         * and invoke the callback with the results once they are available.\n         */\n        load(callback: (results: any) => any): void;\n\n        /**\n         * Brings the control into focus.\n         */\n        focus(): void;\n\n        /**\n         * Forces the control out of focus.\n         */\n        blur(): void;\n\n        /**\n         * Disables user input on the control (note: the control can still receive focus).\n         */\n        lock(): void;\n\n        /**\n         * Re-enables user input on the control.\n         */\n        unlock(): void;\n\n        /**\n         * Disables user input on the control completely. While disabled, it cannot receive focus.\n         */\n        disable(): void;\n\n        /**\n         * Enables the control so that it can respond to focus and user input.\n         */\n        enable(): void;\n\n        /**\n         * Returns the value of the control. If multiple items can be selected (e.g. <select multiple>), this\n         * returns an array. If only one item can be selected, this returns a string.\n         */\n        getValue(): any;\n\n        /**\n         * Resets the selected items to the given value(s).\n         */\n        setValue(value: T): void;\n        setValue(value: T[]): void;\n\n        /**\n         * Moves the caret to the specified position (\"index\" being the index in the list of selected items).\n         */\n        setCaret(index: number): void;\n\n        /**\n         * Updates the settings to allow the maximum item limit to be updated.\n         */\n        setMaxItems(value: number): void;\n\n        /**\n         * Returns whether or not the user can select more items.\n         */\n        isFull(): boolean;\n\n        /**\n         * Clears the render cache. Takes an optional template argument (e.g. \"option\", \"item\") to clear only that cache.\n         */\n        clearCache(template?: string): void;\n\n        /**\n         * When the `settings.placeholder` value is changed, the new placeholder will be displayed.\n         */\n        updatePlaceholder(): void;\n    }\n\n    interface ISearchToken {\n        regex: RegExp;\n        string: string;\n    }\n\n    interface ISearchResult {\n        id: string;\n        score: number;\n    }\n\n    interface ISearch {\n        /**\n         * Original search options.\n         */\n        options: any;\n\n        /**\n         * The raw user input\n         */\n        query: string;\n\n        /**\n         * An array containing parsed search tokens. A token is an object containing two properties: \"string\" and \"regex\".\n         */\n        tokens: ISearchToken[];\n\n        /**\n         * The total number of results.\n         */\n        total: number;\n\n        /**\n         * A list of matched results. Each result is an object containing two properties: \"score\" and \"id\".\n         */\n        items: ISearchResult[];\n    }\n}\n\ninterface JQuery {\n    selectize(options?: Selectize.IOptions<any, any>): JQuery;\n}\n\ninterface HTMLElement {\n    selectize: Selectize.IApi<any, any>;\n}\n\n"
  },
  {
    "path": "karma.conf.js",
    "content": "module.exports = function (config) {\n  var targets = {\n    'ChromeHeadless': ['ChromeHeadless']\n  };\n\n  var browsers = targets[process.env.TARGET || 'ChromeHeadless'];\n  if (process.env.BROWSERS) {\n    browsers = process.env.BROWSERS.split(',');\n  }\n\n  config.set({\n    frameworks: ['mocha', 'chai'],\n    files: [\n      'dist/css/selectize.default.css',\n      'node_modules/jquery/dist/jquery.js',\n      'test/support/*.js',\n      'src/contrib/*.js',\n      'src/utils.js',\n      'src/constants.js',\n      'src/selectize.js',\n      'src/defaults.js',\n      'src/selectize.jquery.js',\n      'test/*.js'\n    ],\n    preprocessors: {\n      'src/*.js': ['coverage']\n    },\n    reporters: ['progress', 'coverage'],\n    port: 8888,\n    colors: true,\n    captureTimeout: 0,\n    logLevel: config.LOG_INFO,\n    browsers: browsers,\n    browserDisconnectTolerance: 2,\n    browserDisconnectTimeout: 10000,\n    browserNoActivityTimeout: 120000,\n    singleRun: true\n  });\n};\n"
  },
  {
    "path": "lib/bootstrap-sass/_alerts.scss",
    "content": "//\n// Alerts\n// --------------------------------------------------\n\n\n// Base styles\n// -------------------------\n\n.alert {\n  padding: $alert-padding;\n  margin-bottom: $line-height-computed;\n  border: 1px solid transparent;\n  border-radius: $alert-border-radius;\n\n  // Headings for larger alerts\n  h4 {\n    margin-top: 0;\n    color: inherit; // Specified for the h4 to prevent conflicts of changing $headings-color\n  }\n\n  // Provide class for links that match alerts\n  .alert-link {\n    font-weight: $alert-link-font-weight;\n  }\n\n  // Improve alignment and spacing of inner content\n  > p,\n  > ul {\n    margin-bottom: 0;\n  }\n\n  > p + p {\n    margin-top: 5px;\n  }\n}\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n// The misspelled .alert-dismissable was deprecated in 3.2.0.\n.alert-dismissable,\n.alert-dismissible {\n  padding-right: ($alert-padding + 20);\n\n  // Adjust close link position\n  .close {\n    position: relative;\n    top: -2px;\n    right: -21px;\n    color: inherit;\n  }\n}\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n.alert-success {\n  @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text);\n}\n\n.alert-info {\n  @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text);\n}\n\n.alert-warning {\n  @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text);\n}\n\n.alert-danger {\n  @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text);\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_badges.scss",
    "content": "//\n// Badges\n// --------------------------------------------------\n\n\n// Base class\n.badge {\n  display: inline-block;\n  min-width: 10px;\n  padding: 3px 7px;\n  font-size: $font-size-small;\n  font-weight: $badge-font-weight;\n  line-height: $badge-line-height;\n  color: $badge-color;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: middle;\n  background-color: $badge-bg;\n  border-radius: $badge-border-radius;\n\n  // Empty badges collapse automatically (not available in IE8)\n  &:empty {\n    display: none;\n  }\n\n  // Quick fix for badges in buttons\n  .btn & {\n    position: relative;\n    top: -1px;\n  }\n\n  .btn-xs &,\n  .btn-group-xs > .btn & {\n    top: 0;\n    padding: 1px 5px;\n  }\n\n  // [converter] extracted a& to a.badge\n\n  // Account for badges in navs\n  .list-group-item.active > &,\n  .nav-pills > .active > a > & {\n    color: $badge-active-color;\n    background-color: $badge-active-bg;\n  }\n\n  .list-group-item > & {\n    float: right;\n  }\n\n  .list-group-item > & + & {\n    margin-right: 5px;\n  }\n\n  .nav-pills > li > a > & {\n    margin-left: 3px;\n  }\n}\n\n// Hover state, but only for links\na.badge {\n  &:hover,\n  &:focus {\n    color: $badge-link-hover-color;\n    text-decoration: none;\n    cursor: pointer;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_breadcrumbs.scss",
    "content": "//\n// Breadcrumbs\n// --------------------------------------------------\n\n\n.breadcrumb {\n  padding: $breadcrumb-padding-vertical $breadcrumb-padding-horizontal;\n  margin-bottom: $line-height-computed;\n  list-style: none;\n  background-color: $breadcrumb-bg;\n  border-radius: $border-radius-base;\n\n  > li {\n    display: inline-block;\n\n    + li:before {\n      padding: 0 5px;\n      color: $breadcrumb-color;\n      // [converter] Workaround for https://github.com/sass/libsass/issues/1115\n      $nbsp: \"\\00a0\";\n      content: \"#{$breadcrumb-separator}#{$nbsp}\"; // Unicode space added since inline-block means non-collapsing white-space\n    }\n  }\n\n  > .active {\n    color: $breadcrumb-active-color;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_button-groups.scss",
    "content": "//\n// Button groups\n// --------------------------------------------------\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle; // match .btn alignment given font-size hack above\n  > .btn {\n    position: relative;\n    float: left;\n    // Bring the \"active\" button to the front\n    &:hover,\n    &:focus,\n    &:active,\n    &.active {\n      z-index: 2;\n    }\n  }\n}\n\n// Prevent double borders when buttons are next to each other\n.btn-group {\n  .btn + .btn,\n  .btn + .btn-group,\n  .btn-group + .btn,\n  .btn-group + .btn-group {\n    margin-left: -1px;\n  }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n  margin-left: -5px; // Offset the first child's margin\n  @include clearfix;\n\n  .btn,\n  .btn-group,\n  .input-group {\n    float: left;\n  }\n  > .btn,\n  > .btn-group,\n  > .input-group {\n    margin-left: 5px;\n  }\n}\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n  border-radius: 0;\n}\n\n// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match\n.btn-group > .btn:first-child {\n  margin-left: 0;\n  &:not(:last-child):not(.dropdown-toggle) {\n    @include border-right-radius(0);\n  }\n}\n// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n  @include border-left-radius(0);\n}\n\n// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)\n.btn-group > .btn-group {\n  float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) {\n  > .btn:last-child,\n  > .dropdown-toggle {\n    @include border-right-radius(0);\n  }\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  @include border-left-radius(0);\n}\n\n// On active and open, don't show outline\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n  outline: 0;\n}\n\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-xs > .btn { @extend .btn-xs; }\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n// Split button dropdowns\n// ----------------------\n\n// Give the line between buttons some depth\n.btn-group > .btn + .dropdown-toggle {\n  padding-right: 8px;\n  padding-left: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n  padding-right: 12px;\n  padding-left: 12px;\n}\n\n// The clickable button for toggling the menu\n// Remove the gradient and set the same inset shadow as the :active state\n.btn-group.open .dropdown-toggle {\n  @include box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125));\n\n  // Show no shadow for `.btn-link` since it has no other button styles.\n  &.btn-link {\n    @include box-shadow(none);\n  }\n}\n\n\n// Reposition the caret\n.btn .caret {\n  margin-left: 0;\n}\n// Carets in other button sizes\n.btn-lg .caret {\n  border-width: $caret-width-large $caret-width-large 0;\n  border-bottom-width: 0;\n}\n// Upside down carets for .dropup\n.dropup .btn-lg .caret {\n  border-width: 0 $caret-width-large $caret-width-large;\n}\n\n\n// Vertical button groups\n// ----------------------\n\n.btn-group-vertical {\n  > .btn,\n  > .btn-group,\n  > .btn-group > .btn {\n    display: block;\n    float: none;\n    width: 100%;\n    max-width: 100%;\n  }\n\n  // Clear floats so dropdown menus can be properly placed\n  > .btn-group {\n    @include clearfix;\n    > .btn {\n      float: none;\n    }\n  }\n\n  > .btn + .btn,\n  > .btn + .btn-group,\n  > .btn-group + .btn,\n  > .btn-group + .btn-group {\n    margin-top: -1px;\n    margin-left: 0;\n  }\n}\n\n.btn-group-vertical > .btn {\n  &:not(:first-child):not(:last-child) {\n    border-radius: 0;\n  }\n  &:first-child:not(:last-child) {\n    @include border-top-radius($btn-border-radius-base);\n    @include border-bottom-radius(0);\n  }\n  &:last-child:not(:first-child) {\n    @include border-top-radius(0);\n    @include border-bottom-radius($btn-border-radius-base);\n  }\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) {\n  > .btn:last-child,\n  > .dropdown-toggle {\n    @include border-bottom-radius(0);\n  }\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  @include border-top-radius(0);\n}\n\n\n// Justified button groups\n// ----------------------\n\n.btn-group-justified {\n  display: table;\n  width: 100%;\n  table-layout: fixed;\n  border-collapse: separate;\n  > .btn,\n  > .btn-group {\n    display: table-cell;\n    float: none;\n    width: 1%;\n  }\n  > .btn-group .btn {\n    width: 100%;\n  }\n\n  > .btn-group .dropdown-menu {\n    left: auto;\n  }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n[data-toggle=\"buttons\"] {\n  > .btn,\n  > .btn-group > .btn {\n    input[type=\"radio\"],\n    input[type=\"checkbox\"] {\n      position: absolute;\n      clip: rect(0, 0, 0, 0);\n      pointer-events: none;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_buttons.scss",
    "content": "//\n// Buttons\n// --------------------------------------------------\n\n\n// Base styles\n// --------------------------------------------------\n\n.btn {\n  display: inline-block;\n  margin-bottom: 0; // For input.btn\n  font-weight: $btn-font-weight;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: middle;\n  touch-action: manipulation;\n  cursor: pointer;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid transparent;\n  @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $btn-border-radius-base);\n  @include user-select(none);\n\n  &,\n  &:active,\n  &.active {\n    &:focus,\n    &.focus {\n      @include tab-focus;\n    }\n  }\n\n  &:hover,\n  &:focus,\n  &.focus {\n    color: $btn-default-color;\n    text-decoration: none;\n  }\n\n  &:active,\n  &.active {\n    background-image: none;\n    outline: 0;\n    @include box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125));\n  }\n\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    cursor: $cursor-disabled;\n    @include opacity(.65);\n    @include box-shadow(none);\n  }\n\n  // [converter] extracted a& to a.btn\n}\n\na.btn {\n  &.disabled,\n  fieldset[disabled] & {\n    pointer-events: none; // Future-proof disabling of clicks on `<a>` elements\n  }\n}\n\n\n// Alternate buttons\n// --------------------------------------------------\n\n.btn-default {\n  @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border);\n}\n.btn-primary {\n  @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border);\n}\n// Success appears as green\n.btn-success {\n  @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border);\n}\n// Info appears as blue-green\n.btn-info {\n  @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border);\n}\n// Warning appears as orange\n.btn-warning {\n  @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border);\n}\n// Danger and error appear as red\n.btn-danger {\n  @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border);\n}\n\n\n// Link buttons\n// -------------------------\n\n// Make a button look and behave like a link\n.btn-link {\n  font-weight: 400;\n  color: $link-color;\n  border-radius: 0;\n\n  &,\n  &:active,\n  &.active,\n  &[disabled],\n  fieldset[disabled] & {\n    background-color: transparent;\n    @include box-shadow(none);\n  }\n  &,\n  &:hover,\n  &:focus,\n  &:active {\n    border-color: transparent;\n  }\n  &:hover,\n  &:focus {\n    color: $link-hover-color;\n    text-decoration: $link-hover-decoration;\n    background-color: transparent;\n  }\n  &[disabled],\n  fieldset[disabled] & {\n    &:hover,\n    &:focus {\n      color: $btn-link-disabled-color;\n      text-decoration: none;\n    }\n  }\n}\n\n\n// Button Sizes\n// --------------------------------------------------\n\n.btn-lg {\n  // line-height: ensure even-numbered height of button next to large input\n  @include button-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $btn-border-radius-large);\n}\n.btn-sm {\n  // line-height: ensure proper height of button next to small input\n  @include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small);\n}\n.btn-xs {\n  @include button-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small);\n}\n\n\n// Block button\n// --------------------------------------------------\n\n.btn-block {\n  display: block;\n  width: 100%;\n}\n\n// Vertically space out multiple block buttons\n.btn-block + .btn-block {\n  margin-top: 5px;\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n  &.btn-block {\n    width: 100%;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_carousel.scss",
    "content": "@use \"sass:math\";\n//\n// Carousel\n// --------------------------------------------------\n\n\n// Wrapper for the slide container and indicators\n.carousel {\n  position: relative;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n\n  > .item {\n    position: relative;\n    display: none;\n    @include transition(.6s ease-in-out left);\n\n    // Account for jankitude on images\n    > img,\n    > a > img {\n      @include img-responsive;\n      line-height: 1;\n    }\n\n    // WebKit CSS3 transforms for supported devices\n    @media all and (transform-3d), (-webkit-transform-3d) {\n      @include transition-transform(0.6s ease-in-out);\n      @include backface-visibility(hidden);\n      @include perspective(1000px);\n\n      &.next,\n      &.active.right {\n        @include translate3d(100%, 0, 0);\n        left: 0;\n      }\n      &.prev,\n      &.active.left {\n        @include translate3d(-100%, 0, 0);\n        left: 0;\n      }\n      &.next.left,\n      &.prev.right,\n      &.active {\n        @include translate3d(0, 0, 0);\n        left: 0;\n      }\n    }\n  }\n\n  > .active,\n  > .next,\n  > .prev {\n    display: block;\n  }\n\n  > .active {\n    left: 0;\n  }\n\n  > .next,\n  > .prev {\n    position: absolute;\n    top: 0;\n    width: 100%;\n  }\n\n  > .next {\n    left: 100%;\n  }\n  > .prev {\n    left: -100%;\n  }\n  > .next.left,\n  > .prev.right {\n    left: 0;\n  }\n\n  > .active.left {\n    left: -100%;\n  }\n  > .active.right {\n    left: 100%;\n  }\n\n}\n\n// Left/right controls for nav\n// ---------------------------\n\n.carousel-control {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  width: $carousel-control-width;\n  font-size: $carousel-control-font-size;\n  color: $carousel-control-color;\n  text-align: center;\n  text-shadow: $carousel-text-shadow;\n  background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug\n  @include opacity($carousel-control-opacity);\n  // We can't have this transition here because WebKit cancels the carousel\n  // animation if you trip this while in the middle of another animation.\n\n  // Set gradients for backgrounds\n  &.left {\n    @include gradient-horizontal($start-color: rgba(0, 0, 0, .5), $end-color: rgba(0, 0, 0, .0001));\n  }\n  &.right {\n    right: 0;\n    left: auto;\n    @include gradient-horizontal($start-color: rgba(0, 0, 0, .0001), $end-color: rgba(0, 0, 0, .5));\n  }\n\n  // Hover/focus state\n  &:hover,\n  &:focus {\n    color: $carousel-control-color;\n    text-decoration: none;\n    outline: 0;\n    @include opacity(.9);\n  }\n\n  // Toggles\n  .icon-prev,\n  .icon-next,\n  .glyphicon-chevron-left,\n  .glyphicon-chevron-right {\n    position: absolute;\n    top: 50%;\n    z-index: 5;\n    display: inline-block;\n    margin-top: -10px;\n  }\n  .icon-prev,\n  .glyphicon-chevron-left {\n    left: 50%;\n    margin-left: -10px;\n  }\n  .icon-next,\n  .glyphicon-chevron-right {\n    right: 50%;\n    margin-right: -10px;\n  }\n  .icon-prev,\n  .icon-next {\n    width: 20px;\n    height: 20px;\n    font-family: serif;\n    line-height: 1;\n  }\n\n  .icon-prev {\n    &:before {\n      content: \"\\2039\";// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)\n    }\n  }\n  .icon-next {\n    &:before {\n      content: \"\\203a\";// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)\n    }\n  }\n}\n\n// Optional indicator pips\n//\n// Add an unordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n  position: absolute;\n  bottom: 10px;\n  left: 50%;\n  z-index: 15;\n  width: 60%;\n  padding-left: 0;\n  margin-left: -30%;\n  text-align: center;\n  list-style: none;\n\n  li {\n    display: inline-block;\n    width: 10px;\n    height: 10px;\n    margin: 1px;\n    text-indent: -999px;\n    cursor: pointer;\n    // IE8-9 hack for event handling\n    //\n    // Internet Explorer 8-9 does not support clicks on elements without a set\n    // `background-color`. We cannot use `filter` since that's not viewed as a\n    // background color by the browser. Thus, a hack is needed.\n    // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer\n    //\n    // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we\n    // set alpha transparency for the best results possible.\n    background-color: #000 \\9; // IE8\n    background-color: rgba(0, 0, 0, 0); // IE9\n\n    border: 1px solid $carousel-indicator-border-color;\n    border-radius: 10px;\n  }\n\n  .active {\n    width: 12px;\n    height: 12px;\n    margin: 0;\n    background-color: $carousel-indicator-active-bg;\n  }\n}\n\n// Optional captions\n// -----------------------------\n// Hidden by default for smaller viewports\n.carousel-caption {\n  position: absolute;\n  right: 15%;\n  bottom: 20px;\n  left: 15%;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: $carousel-caption-color;\n  text-align: center;\n  text-shadow: $carousel-text-shadow;\n\n  & .btn {\n    text-shadow: none; // No shadow for button elements in carousel-caption\n  }\n}\n\n\n// Scale up controls for tablets and up\n@media screen and (min-width: $screen-sm-min) {\n\n  // Scale up the controls a smidge\n  .carousel-control {\n    .glyphicon-chevron-left,\n    .glyphicon-chevron-right,\n    .icon-prev,\n    .icon-next {\n      width: ($carousel-control-font-size * 1.5);\n      height: ($carousel-control-font-size * 1.5);\n      margin-top: math.div($carousel-control-font-size, -2);\n      font-size: ($carousel-control-font-size * 1.5);\n    }\n    .glyphicon-chevron-left,\n    .icon-prev {\n      margin-left: math.div($carousel-control-font-size, -2);\n    }\n    .glyphicon-chevron-right,\n    .icon-next {\n      margin-right: math.div($carousel-control-font-size, -2);\n    }\n  }\n\n  // Show and left align the captions\n  .carousel-caption {\n    right: 20%;\n    left: 20%;\n    padding-bottom: 30px;\n  }\n\n  // Move up the indicators\n  .carousel-indicators {\n    bottom: 20px;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_close.scss",
    "content": "//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n  float: right;\n  font-size: ($font-size-base * 1.5);\n  font-weight: $close-font-weight;\n  line-height: 1;\n  color: $close-color;\n  text-shadow: $close-text-shadow;\n  @include opacity(.2);\n\n  &:hover,\n  &:focus {\n    color: $close-color;\n    text-decoration: none;\n    cursor: pointer;\n    @include opacity(.5);\n  }\n\n  // [converter] extracted button& to button.close\n}\n\n// Additional properties for button version\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\nbutton.close {\n  padding: 0;\n  cursor: pointer;\n  background: transparent;\n  border: 0;\n  -webkit-appearance: none;\n  appearance: none;\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_code.scss",
    "content": "@use \"sass:math\";\n//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n  font-family: $font-family-monospace;\n}\n\n// Inline code\ncode {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: $code-color;\n  background-color: $code-bg;\n  border-radius: $border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: $kbd-color;\n  background-color: $kbd-bg;\n  border-radius: $border-radius-small;\n  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);\n\n  kbd {\n    padding: 0;\n    font-size: 100%;\n    font-weight: 700;\n    box-shadow: none;\n  }\n}\n\n// Blocks of code\npre {\n  display: block;\n  padding: math.div(($line-height-computed - 1), 2);\n  margin: 0 0 math.div($line-height-computed, 2);\n  font-size: ($font-size-base - 1); // 14px to 13px\n  line-height: $line-height-base;\n  color: $pre-color;\n  word-break: break-all;\n  word-wrap: break-word;\n  background-color: $pre-bg;\n  border: 1px solid $pre-border-color;\n  border-radius: $border-radius-base;\n\n  // Account for some code outputs that place code tags in pre tags\n  code {\n    padding: 0;\n    font-size: inherit;\n    color: inherit;\n    white-space: pre-wrap;\n    background-color: transparent;\n    border-radius: 0;\n  }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n  max-height: $pre-scrollable-max-height;\n  overflow-y: scroll;\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_component-animations.scss",
    "content": "//\n// Component animations\n// --------------------------------------------------\n\n// Heads up!\n//\n// We don't use the `.opacity()` mixin here since it causes a bug with text\n// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.\n\n.fade {\n  opacity: 0;\n  @include transition(opacity .15s linear);\n\n  &.in {\n    opacity: 1;\n  }\n}\n\n.collapse {\n  display: none;\n\n  &.in      { display: block; }\n  // [converter] extracted tr&.in to tr.collapse.in\n  // [converter] extracted tbody&.in to tbody.collapse.in\n}\n\ntr.collapse.in    { display: table-row; }\n\ntbody.collapse.in { display: table-row-group; }\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  @include transition-property(height, visibility);\n  @include transition-duration(.35s);\n  @include transition-timing-function(ease);\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_dropdowns.scss",
    "content": "//\n// Dropdown menus\n// --------------------------------------------------\n\n\n// Dropdown arrow/caret\n.caret {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 2px;\n  vertical-align: middle;\n  border-top: $caret-width-base dashed;\n  border-top: $caret-width-base solid \\9; // IE8\n  border-right: $caret-width-base solid transparent;\n  border-left: $caret-width-base solid transparent;\n}\n\n// The dropdown wrapper (div)\n.dropup,\n.dropdown {\n  position: relative;\n}\n\n// Prevent the focus on the dropdown toggle when closing dropdowns\n.dropdown-toggle:focus {\n  outline: 0;\n}\n\n// The dropdown menu (ul)\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: $zindex-dropdown;\n  display: none; // none by default, but block on \"open\" of the menu\n  float: left;\n  min-width: 160px;\n  padding: 5px 0;\n  margin: 2px 0 0; // override default ul\n  font-size: $font-size-base;\n  text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n  list-style: none;\n  background-color: $dropdown-bg;\n  background-clip: padding-box;\n  border: 1px solid $dropdown-fallback-border; // IE8 fallback\n  border: 1px solid $dropdown-border;\n  border-radius: $border-radius-base;\n  @include box-shadow(0 6px 12px rgba(0, 0, 0, .175));\n\n  // Aligns the dropdown menu to right\n  //\n  // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`\n  &.pull-right {\n    right: 0;\n    left: auto;\n  }\n\n  // Dividers (basically an hr) within the dropdown\n  .divider {\n    @include nav-divider($dropdown-divider-bg);\n  }\n\n  // Links within the dropdown menu\n  > li > a {\n    display: block;\n    padding: 3px 20px;\n    clear: both;\n    font-weight: 400;\n    line-height: $line-height-base;\n    color: $dropdown-link-color;\n    white-space: nowrap; // prevent links from randomly breaking onto new lines\n\n    &:hover,\n    &:focus {\n      color: $dropdown-link-hover-color;\n      text-decoration: none;\n      background-color: $dropdown-link-hover-bg;\n    }\n  }\n}\n\n// Active state\n.dropdown-menu > .active > a {\n  &,\n  &:hover,\n  &:focus {\n    color: $dropdown-link-active-color;\n    text-decoration: none;\n    background-color: $dropdown-link-active-bg;\n    outline: 0;\n  }\n}\n\n// Disabled state\n//\n// Gray out text and ensure the hover/focus state remains gray\n\n.dropdown-menu > .disabled > a {\n  &,\n  &:hover,\n  &:focus {\n    color: $dropdown-link-disabled-color;\n  }\n\n  // Nuke hover/focus effects\n  &:hover,\n  &:focus {\n    text-decoration: none;\n    cursor: $cursor-disabled;\n    background-color: transparent;\n    background-image: none; // Remove CSS gradient\n    @include reset-filter;\n  }\n}\n\n// Open state for the dropdown\n.open {\n  // Show the menu\n  > .dropdown-menu {\n    display: block;\n  }\n\n  // Remove the outline when :focus is triggered\n  > a {\n    outline: 0;\n  }\n}\n\n// Menu positioning\n//\n// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown\n// menu with the parent.\n.dropdown-menu-right {\n  right: 0;\n  left: auto; // Reset the default from `.dropdown-menu`\n}\n// With v3, we enabled auto-flipping if you have a dropdown within a right\n// aligned nav component. To enable the undoing of that, we provide an override\n// to restore the default dropdown menu alignment.\n//\n// This is only for left-aligning a dropdown menu within a `.navbar-right` or\n// `.pull-right` nav component.\n.dropdown-menu-left {\n  right: auto;\n  left: 0;\n}\n\n// Dropdown section headers\n.dropdown-header {\n  display: block;\n  padding: 3px 20px;\n  font-size: $font-size-small;\n  line-height: $line-height-base;\n  color: $dropdown-header-color;\n  white-space: nowrap; // as with > li > a\n}\n\n// Backdrop to catch body clicks on mobile, etc.\n.dropdown-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: ($zindex-dropdown - 10);\n}\n\n// Right aligned dropdowns\n.pull-right > .dropdown-menu {\n  right: 0;\n  left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n//\n// Just add .dropup after the standard .dropdown class and you're set, bro.\n// TODO: abstract this so that the navbar fixed styles are not placed here?\n\n.dropup,\n.navbar-fixed-bottom .dropdown {\n  // Reverse the caret\n  .caret {\n    content: \"\";\n    border-top: 0;\n    border-bottom: $caret-width-base dashed;\n    border-bottom: $caret-width-base solid \\9; // IE8\n  }\n  // Different positioning for bottom up menu\n  .dropdown-menu {\n    top: auto;\n    bottom: 100%;\n    margin-bottom: 2px;\n  }\n}\n\n\n// Component alignment\n//\n// Reiterate per navbar.less and the modified component alignment there.\n\n@media (min-width: $grid-float-breakpoint) {\n  .navbar-right {\n    .dropdown-menu {\n      right: 0; left: auto;\n    }\n    // Necessary for overrides of the default right aligned menu.\n    // Will remove come v4 in all likelihood.\n    .dropdown-menu-left {\n      left: 0; right: auto;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_forms.scss",
    "content": "@use \"sass:math\";\n//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n  // Chrome and Firefox set a `min-width: min-content;` on fieldsets,\n  // so we reset that to ensure it behaves more like a standard block element.\n  // See https://github.com/twbs/bootstrap/issues/12359.\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: $line-height-computed;\n  font-size: ($font-size-base * 1.5);\n  line-height: inherit;\n  color: $legend-color;\n  border: 0;\n  border-bottom: 1px solid $legend-border-color;\n}\n\nlabel {\n  display: inline-block;\n  max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)\n  margin-bottom: 5px;\n  font-weight: 700;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\ninput[type=\"search\"] {\n  // Override content-box in Normalize (* isn't specific enough)\n  @include box-sizing(border-box);\n\n  // Search inputs in iOS\n  //\n  // This overrides the extra rounded corners on search inputs in iOS so that our\n  // `.form-control` class can properly style them. Note that this cannot simply\n  // be added to `.form-control` as it's not specific enough. For details, see\n  // https://github.com/twbs/bootstrap/issues/11586.\n  -webkit-appearance: none;\n  appearance: none;\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  margin: 4px 0 0;\n  margin-top: 1px \\9; // IE8-9\n  line-height: normal;\n\n  // Apply same disabled cursor tweak as for inputs\n  // Some special care is needed because <label>s don't inherit their parent's `cursor`.\n  //\n  // Note: Neither radios nor checkboxes can be readonly.\n  &[disabled],\n  &.disabled,\n  fieldset[disabled] & {\n    cursor: $cursor-disabled;\n  }\n}\n\ninput[type=\"file\"] {\n  display: block;\n}\n\n// Make range inputs behave like textual form controls\ninput[type=\"range\"] {\n  display: block;\n  width: 100%;\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n  height: auto;\n}\n\n// Focus for file, radio, and checkbox\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n  @include tab-focus;\n}\n\n// Adjust output element\noutput {\n  display: block;\n  padding-top: ($padding-base-vertical + 1);\n  font-size: $font-size-base;\n  line-height: $line-height-base;\n  color: $input-color;\n}\n\n\n// Common form controls\n//\n// Shared size and type resets for form controls. Apply `.form-control` to any\n// of the following form controls:\n//\n// select\n// textarea\n// input[type=\"text\"]\n// input[type=\"password\"]\n// input[type=\"datetime\"]\n// input[type=\"datetime-local\"]\n// input[type=\"date\"]\n// input[type=\"month\"]\n// input[type=\"time\"]\n// input[type=\"week\"]\n// input[type=\"number\"]\n// input[type=\"email\"]\n// input[type=\"url\"]\n// input[type=\"search\"]\n// input[type=\"tel\"]\n// input[type=\"color\"]\n\n.form-control {\n  display: block;\n  width: 100%;\n  height: $input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n  padding: $padding-base-vertical $padding-base-horizontal;\n  font-size: $font-size-base;\n  line-height: $line-height-base;\n  color: $input-color;\n  background-color: $input-bg;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid $input-border;\n  border-radius: $input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.\n  @include box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075));\n  @include transition(border-color ease-in-out .15s, box-shadow ease-in-out .15s);\n\n  // Customize the `:focus` state to imitate native WebKit styles.\n  @include form-control-focus;\n\n  // Placeholder\n  @include placeholder;\n\n  // Unstyle the caret on `<select>`s in IE10+.\n  &::-ms-expand {\n    background-color: transparent;\n    border: 0;\n  }\n\n  // Disabled and read-only inputs\n  //\n  // HTML5 says that controls under a fieldset > legend:first-child won't be\n  // disabled if the fieldset is disabled. Due to implementation difficulty, we\n  // don't honor that edge case; we style them as disabled anyway.\n  &[disabled],\n  &[readonly],\n  fieldset[disabled] & {\n    background-color: $input-bg-disabled;\n    opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655\n  }\n\n  &[disabled],\n  fieldset[disabled] & {\n    cursor: $cursor-disabled;\n  }\n\n  // [converter] extracted textarea& to textarea.form-control\n}\n\n// Reset height for `textarea`s\ntextarea.form-control {\n  height: auto;\n}\n\n\n// Special styles for iOS temporal inputs\n//\n// In Mobile Safari, setting `display: block` on temporal inputs causes the\n// text within the input to become vertically misaligned. As a workaround, we\n// set a pixel line-height that matches the given height of the input, but only\n// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848\n//\n// Note that as of 9.3, iOS doesn't support `week`.\n\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n  input[type=\"date\"],\n  input[type=\"time\"],\n  input[type=\"datetime-local\"],\n  input[type=\"month\"] {\n    &.form-control {\n      line-height: $input-height-base;\n    }\n\n    &.input-sm,\n    .input-group-sm & {\n      line-height: $input-height-small;\n    }\n\n    &.input-lg,\n    .input-group-lg & {\n      line-height: $input-height-large;\n    }\n  }\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n  margin-bottom: $form-group-margin-bottom;\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.radio,\n.checkbox {\n  position: relative;\n  display: block;\n  margin-top: 10px;\n  margin-bottom: 10px;\n\n  // These are used on elements with <label> descendants\n  &.disabled,\n  fieldset[disabled] & {\n    label {\n      cursor: $cursor-disabled;\n    }\n  }\n\n  label {\n    min-height: $line-height-computed; // Ensure the input doesn't jump when there is no text\n    padding-left: 20px;\n    margin-bottom: 0;\n    font-weight: 400;\n    cursor: pointer;\n  }\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n  position: absolute;\n  margin-top: 4px \\9;\n  margin-left: -20px;\n}\n\n.radio + .radio,\n.checkbox + .checkbox {\n  margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing\n}\n\n// Radios and checkboxes on same line\n.radio-inline,\n.checkbox-inline {\n  position: relative;\n  display: inline-block;\n  padding-left: 20px;\n  margin-bottom: 0;\n  font-weight: 400;\n  vertical-align: middle;\n  cursor: pointer;\n\n  // These are used directly on <label>s\n  &.disabled,\n  fieldset[disabled] & {\n    cursor: $cursor-disabled;\n  }\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n  margin-top: 0;\n  margin-left: 10px; // space out consecutive inline controls\n}\n\n\n// Static form control text\n//\n// Apply class to a `p` element to make any string of text align with labels in\n// a horizontal form layout.\n\n.form-control-static {\n  min-height: ($line-height-computed + $font-size-base);\n  // Size it appropriately next to real form controls\n  padding-top: ($padding-base-vertical + 1);\n  padding-bottom: ($padding-base-vertical + 1);\n  // Remove default margin from `p`\n  margin-bottom: 0;\n\n  &.input-lg,\n  &.input-sm {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// The `.form-group-* form-control` variations are sadly duplicated to avoid the\n// issue documented in https://github.com/twbs/bootstrap/issues/15074.\n\n@include input-size('.input-sm', $input-height-small, $padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $input-border-radius-small);\n.form-group-sm {\n  .form-control {\n    height: $input-height-small;\n    padding: $padding-small-vertical $padding-small-horizontal;\n    font-size: $font-size-small;\n    line-height: $line-height-small;\n    border-radius: $input-border-radius-small;\n  }\n  select.form-control {\n    height: $input-height-small;\n    line-height: $input-height-small;\n  }\n  textarea.form-control,\n  select[multiple].form-control {\n    height: auto;\n  }\n  .form-control-static {\n    height: $input-height-small;\n    min-height: ($line-height-computed + $font-size-small);\n    padding: ($padding-small-vertical + 1) $padding-small-horizontal;\n    font-size: $font-size-small;\n    line-height: $line-height-small;\n  }\n}\n\n@include input-size('.input-lg', $input-height-large, $padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $input-border-radius-large);\n.form-group-lg {\n  .form-control {\n    height: $input-height-large;\n    padding: $padding-large-vertical $padding-large-horizontal;\n    font-size: $font-size-large;\n    line-height: $line-height-large;\n    border-radius: $input-border-radius-large;\n  }\n  select.form-control {\n    height: $input-height-large;\n    line-height: $input-height-large;\n  }\n  textarea.form-control,\n  select[multiple].form-control {\n    height: auto;\n  }\n  .form-control-static {\n    height: $input-height-large;\n    min-height: ($line-height-computed + $font-size-large);\n    padding: ($padding-large-vertical + 1) $padding-large-horizontal;\n    font-size: $font-size-large;\n    line-height: $line-height-large;\n  }\n}\n\n\n// Form control feedback states\n//\n// Apply contextual and semantic states to individual form controls.\n\n.has-feedback {\n  // Enable absolute positioning\n  position: relative;\n\n  // Ensure icons don't overlap text\n  .form-control {\n    padding-right: ($input-height-base * 1.25);\n  }\n}\n// Feedback icon (requires .glyphicon classes)\n.form-control-feedback {\n  position: absolute;\n  top: 0;\n  right: 0;\n  z-index: 2; // Ensure icon is above input groups\n  display: block;\n  width: $input-height-base;\n  height: $input-height-base;\n  line-height: $input-height-base;\n  text-align: center;\n  pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n  width: $input-height-large;\n  height: $input-height-large;\n  line-height: $input-height-large;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n  width: $input-height-small;\n  height: $input-height-small;\n  line-height: $input-height-small;\n}\n\n// Feedback states\n.has-success {\n  @include form-control-validation($state-success-text, $state-success-text, $state-success-bg);\n}\n.has-warning {\n  @include form-control-validation($state-warning-text, $state-warning-text, $state-warning-bg);\n}\n.has-error {\n  @include form-control-validation($state-danger-text, $state-danger-text, $state-danger-bg);\n}\n\n// Reposition feedback icon if input has visible label above\n.has-feedback label {\n\n  & ~ .form-control-feedback {\n    top: ($line-height-computed + 5); // Height of the `label` and its margin\n  }\n  &.sr-only ~ .form-control-feedback {\n    top: 0;\n  }\n}\n\n\n// Help text\n//\n// Apply to any element you wish to create light text for placement immediately\n// below a form control. Use for general help, formatting, or instructional text.\n\n.help-block {\n  display: block; // account for any element using help-block\n  margin-top: 5px;\n  margin-bottom: 10px;\n  color: lighten($text-color, 25%); // lighten the text some for contrast\n}\n\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n//\n// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.\n\n// [converter] extracted from `.form-inline` for libsass compatibility\n@mixin form-inline {\n\n  // Kick in the inline\n  @media (min-width: $screen-sm-min) {\n    // Inline-block all the things for \"inline\"\n    .form-group {\n      display: inline-block;\n      margin-bottom: 0;\n      vertical-align: middle;\n    }\n\n    // In navbar-form, allow folks to *not* use `.form-group`\n    .form-control {\n      display: inline-block;\n      width: auto; // Prevent labels from stacking above inputs in `.form-group`\n      vertical-align: middle;\n    }\n\n    // Make static controls behave like regular ones\n    .form-control-static {\n      display: inline-block;\n    }\n\n    .input-group {\n      display: inline-table;\n      vertical-align: middle;\n\n      .input-group-addon,\n      .input-group-btn,\n      .form-control {\n        width: auto;\n      }\n    }\n\n    // Input groups need that 100% width though\n    .input-group > .form-control {\n      width: 100%;\n    }\n\n    .control-label {\n      margin-bottom: 0;\n      vertical-align: middle;\n    }\n\n    // Remove default margin on radios/checkboxes that were used for stacking, and\n    // then undo the floating of radios and checkboxes to match.\n    .radio,\n    .checkbox {\n      display: inline-block;\n      margin-top: 0;\n      margin-bottom: 0;\n      vertical-align: middle;\n\n      label {\n        padding-left: 0;\n      }\n    }\n    .radio input[type=\"radio\"],\n    .checkbox input[type=\"checkbox\"] {\n      position: relative;\n      margin-left: 0;\n    }\n\n    // Re-override the feedback icon.\n    .has-feedback .form-control-feedback {\n      top: 0;\n    }\n  }\n}\n// [converter] extracted as `@mixin form-inline` for libsass compatibility\n.form-inline {\n  @include form-inline;\n}\n\n\n\n// Horizontal forms\n//\n// Horizontal forms are built on grid classes and allow you to create forms with\n// labels on the left and inputs on the right.\n\n.form-horizontal {\n\n  // Consistent vertical alignment of radios and checkboxes\n  //\n  // Labels also get some reset styles, but that is scoped to a media query below.\n  .radio,\n  .checkbox,\n  .radio-inline,\n  .checkbox-inline {\n    padding-top: ($padding-base-vertical + 1); // Default padding plus a border\n    margin-top: 0;\n    margin-bottom: 0;\n  }\n  // Account for padding we're adding to ensure the alignment and of help text\n  // and other content below items\n  .radio,\n  .checkbox {\n    min-height: ($line-height-computed + ($padding-base-vertical + 1));\n  }\n\n  // Make form groups behave like rows\n  .form-group {\n    @include make-row;\n  }\n\n  // Reset spacing and right align labels, but scope to media queries so that\n  // labels on narrow viewports stack the same as a default form example.\n  @media (min-width: $screen-sm-min) {\n    .control-label {\n      padding-top: ($padding-base-vertical + 1); // Default padding plus a border\n      margin-bottom: 0;\n      text-align: right;\n    }\n  }\n\n  // Validation states\n  //\n  // Reposition the icon because it's now within a grid column and columns have\n  // `position: relative;` on them. Also accounts for the grid gutter padding.\n  .has-feedback .form-control-feedback {\n    right: floor(math.div($grid-gutter-width, 2));\n  }\n\n  // Form group sizes\n  //\n  // Quick utility class for applying `.input-lg` and `.input-sm` styles to the\n  // inputs and labels within a `.form-group`.\n  .form-group-lg {\n    @media (min-width: $screen-sm-min) {\n      .control-label {\n        padding-top: ($padding-large-vertical + 1);\n        font-size: $font-size-large;\n      }\n    }\n  }\n  .form-group-sm {\n    @media (min-width: $screen-sm-min) {\n      .control-label {\n        padding-top: ($padding-small-vertical + 1);\n        font-size: $font-size-small;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_glyphicons.scss",
    "content": "//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// <a href=\"#\"><span class=\"glyphicon glyphicon-star\"></span> Star</a>\n\n@at-root {\n  // Import the fonts\n  @font-face {\n    font-family: \"Glyphicons Halflings\";\n    src: url(if($bootstrap-sass-asset-helper, twbs-font-path(\"#{$icon-font-path}#{$icon-font-name}.eot\"), \"#{$icon-font-path}#{$icon-font-name}.eot\"));\n    src: url(if($bootstrap-sass-asset-helper, twbs-font-path(\"#{$icon-font-path}#{$icon-font-name}.eot?#iefix\"), \"#{$icon-font-path}#{$icon-font-name}.eot?#iefix\")) format(\"embedded-opentype\"),\n         url(if($bootstrap-sass-asset-helper, twbs-font-path(\"#{$icon-font-path}#{$icon-font-name}.woff2\"), \"#{$icon-font-path}#{$icon-font-name}.woff2\")) format(\"woff2\"),\n         url(if($bootstrap-sass-asset-helper, twbs-font-path(\"#{$icon-font-path}#{$icon-font-name}.woff\"), \"#{$icon-font-path}#{$icon-font-name}.woff\")) format(\"woff\"),\n         url(if($bootstrap-sass-asset-helper, twbs-font-path(\"#{$icon-font-path}#{$icon-font-name}.ttf\"), \"#{$icon-font-path}#{$icon-font-name}.ttf\")) format(\"truetype\"),\n         url(if($bootstrap-sass-asset-helper, twbs-font-path(\"#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}\"), \"#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}\")) format(\"svg\");\n  }\n}\n\n// Catchall baseclass\n.glyphicon {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  font-family: \"Glyphicons Halflings\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk               { &:before { content: \"\\002a\"; } }\n.glyphicon-plus                   { &:before { content: \"\\002b\"; } }\n.glyphicon-euro,\n.glyphicon-eur                    { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus                  { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud                  { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope               { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil                 { &:before { content: \"\\270f\"; } }\n.glyphicon-glass                  { &:before { content: \"\\e001\"; } }\n.glyphicon-music                  { &:before { content: \"\\e002\"; } }\n.glyphicon-search                 { &:before { content: \"\\e003\"; } }\n.glyphicon-heart                  { &:before { content: \"\\e005\"; } }\n.glyphicon-star                   { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty             { &:before { content: \"\\e007\"; } }\n.glyphicon-user                   { &:before { content: \"\\e008\"; } }\n.glyphicon-film                   { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large               { &:before { content: \"\\e010\"; } }\n.glyphicon-th                     { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list                { &:before { content: \"\\e012\"; } }\n.glyphicon-ok                     { &:before { content: \"\\e013\"; } }\n.glyphicon-remove                 { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in                { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out               { &:before { content: \"\\e016\"; } }\n.glyphicon-off                    { &:before { content: \"\\e017\"; } }\n.glyphicon-signal                 { &:before { content: \"\\e018\"; } }\n.glyphicon-cog                    { &:before { content: \"\\e019\"; } }\n.glyphicon-trash                  { &:before { content: \"\\e020\"; } }\n.glyphicon-home                   { &:before { content: \"\\e021\"; } }\n.glyphicon-file                   { &:before { content: \"\\e022\"; } }\n.glyphicon-time                   { &:before { content: \"\\e023\"; } }\n.glyphicon-road                   { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt           { &:before { content: \"\\e025\"; } }\n.glyphicon-download               { &:before { content: \"\\e026\"; } }\n.glyphicon-upload                 { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox                  { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle            { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat                 { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh                { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt               { &:before { content: \"\\e032\"; } }\n.glyphicon-lock                   { &:before { content: \"\\e033\"; } }\n.glyphicon-flag                   { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones             { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off             { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down            { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up              { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode                 { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode                { &:before { content: \"\\e040\"; } }\n.glyphicon-tag                    { &:before { content: \"\\e041\"; } }\n.glyphicon-tags                   { &:before { content: \"\\e042\"; } }\n.glyphicon-book                   { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark               { &:before { content: \"\\e044\"; } }\n.glyphicon-print                  { &:before { content: \"\\e045\"; } }\n.glyphicon-camera                 { &:before { content: \"\\e046\"; } }\n.glyphicon-font                   { &:before { content: \"\\e047\"; } }\n.glyphicon-bold                   { &:before { content: \"\\e048\"; } }\n.glyphicon-italic                 { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height            { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width             { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left             { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center           { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right            { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify          { &:before { content: \"\\e055\"; } }\n.glyphicon-list                   { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left            { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right           { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video         { &:before { content: \"\\e059\"; } }\n.glyphicon-picture                { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker             { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust                 { &:before { content: \"\\e063\"; } }\n.glyphicon-tint                   { &:before { content: \"\\e064\"; } }\n.glyphicon-edit                   { &:before { content: \"\\e065\"; } }\n.glyphicon-share                  { &:before { content: \"\\e066\"; } }\n.glyphicon-check                  { &:before { content: \"\\e067\"; } }\n.glyphicon-move                   { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward          { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward          { &:before { content: \"\\e070\"; } }\n.glyphicon-backward               { &:before { content: \"\\e071\"; } }\n.glyphicon-play                   { &:before { content: \"\\e072\"; } }\n.glyphicon-pause                  { &:before { content: \"\\e073\"; } }\n.glyphicon-stop                   { &:before { content: \"\\e074\"; } }\n.glyphicon-forward                { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward           { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward           { &:before { content: \"\\e077\"; } }\n.glyphicon-eject                  { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left           { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right          { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign              { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign             { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign            { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign                { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign          { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign              { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot             { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle          { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle              { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle             { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left             { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right            { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up               { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down             { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt              { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full            { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small           { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign       { &:before { content: \"\\e101\"; } }\n.glyphicon-gift                   { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf                   { &:before { content: \"\\e103\"; } }\n.glyphicon-fire                   { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open               { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close              { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign           { &:before { content: \"\\e107\"; } }\n.glyphicon-plane                  { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar               { &:before { content: \"\\e109\"; } }\n.glyphicon-random                 { &:before { content: \"\\e110\"; } }\n.glyphicon-comment                { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet                 { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up             { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down           { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet                { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart          { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close           { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open            { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical        { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal      { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd                    { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn               { &:before { content: \"\\e122\"; } }\n.glyphicon-bell                   { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate            { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up              { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down            { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right             { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left              { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up                { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down              { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right     { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left      { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up        { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down      { &:before { content: \"\\e134\"; } }\n.glyphicon-globe                  { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench                 { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks                  { &:before { content: \"\\e137\"; } }\n.glyphicon-filter                 { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase              { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen             { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard              { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip              { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty            { &:before { content: \"\\e143\"; } }\n.glyphicon-link                   { &:before { content: \"\\e144\"; } }\n.glyphicon-phone                  { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin                { &:before { content: \"\\e146\"; } }\n.glyphicon-usd                    { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp                    { &:before { content: \"\\e149\"; } }\n.glyphicon-sort                   { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet       { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt   { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order          { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt      { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes     { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked              { &:before { content: \"\\e157\"; } }\n.glyphicon-expand                 { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down          { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up            { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in                 { &:before { content: \"\\e161\"; } }\n.glyphicon-flash                  { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out                { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window             { &:before { content: \"\\e164\"; } }\n.glyphicon-record                 { &:before { content: \"\\e165\"; } }\n.glyphicon-save                   { &:before { content: \"\\e166\"; } }\n.glyphicon-open                   { &:before { content: \"\\e167\"; } }\n.glyphicon-saved                  { &:before { content: \"\\e168\"; } }\n.glyphicon-import                 { &:before { content: \"\\e169\"; } }\n.glyphicon-export                 { &:before { content: \"\\e170\"; } }\n.glyphicon-send                   { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk            { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved           { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove          { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save            { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open            { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card            { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer               { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery                { &:before { content: \"\\e179\"; } }\n.glyphicon-header                 { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed             { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone               { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt              { &:before { content: \"\\e183\"; } }\n.glyphicon-tower                  { &:before { content: \"\\e184\"; } }\n.glyphicon-stats                  { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video               { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video               { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles              { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo           { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby            { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1              { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1              { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1              { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark         { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark      { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download         { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload           { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer           { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous         { &:before { content: \"\\e200\"; } }\n.glyphicon-cd                     { &:before { content: \"\\e201\"; } }\n.glyphicon-save-file              { &:before { content: \"\\e202\"; } }\n.glyphicon-open-file              { &:before { content: \"\\e203\"; } }\n.glyphicon-level-up               { &:before { content: \"\\e204\"; } }\n.glyphicon-copy                   { &:before { content: \"\\e205\"; } }\n.glyphicon-paste                  { &:before { content: \"\\e206\"; } }\n// The following 2 Glyphicons are omitted for the time being because\n// they currently use Unicode codepoints that are outside the\n// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle\n// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.\n// Notably, the bug affects some older versions of the Android Browser.\n// More info: https://github.com/twbs/bootstrap/issues/10106\n// .glyphicon-door                   { &:before { content: \"\\1f6aa\"; } }\n// .glyphicon-key                    { &:before { content: \"\\1f511\"; } }\n.glyphicon-alert                  { &:before { content: \"\\e209\"; } }\n.glyphicon-equalizer              { &:before { content: \"\\e210\"; } }\n.glyphicon-king                   { &:before { content: \"\\e211\"; } }\n.glyphicon-queen                  { &:before { content: \"\\e212\"; } }\n.glyphicon-pawn                   { &:before { content: \"\\e213\"; } }\n.glyphicon-bishop                 { &:before { content: \"\\e214\"; } }\n.glyphicon-knight                 { &:before { content: \"\\e215\"; } }\n.glyphicon-baby-formula           { &:before { content: \"\\e216\"; } }\n.glyphicon-tent                   { &:before { content: \"\\26fa\"; } }\n.glyphicon-blackboard             { &:before { content: \"\\e218\"; } }\n.glyphicon-bed                    { &:before { content: \"\\e219\"; } }\n.glyphicon-apple                  { &:before { content: \"\\f8ff\"; } }\n.glyphicon-erase                  { &:before { content: \"\\e221\"; } }\n.glyphicon-hourglass              { &:before { content: \"\\231b\"; } }\n.glyphicon-lamp                   { &:before { content: \"\\e223\"; } }\n.glyphicon-duplicate              { &:before { content: \"\\e224\"; } }\n.glyphicon-piggy-bank             { &:before { content: \"\\e225\"; } }\n.glyphicon-scissors               { &:before { content: \"\\e226\"; } }\n.glyphicon-bitcoin                { &:before { content: \"\\e227\"; } }\n.glyphicon-btc                    { &:before { content: \"\\e227\"; } }\n.glyphicon-xbt                    { &:before { content: \"\\e227\"; } }\n.glyphicon-yen                    { &:before { content: \"\\00a5\"; } }\n.glyphicon-jpy                    { &:before { content: \"\\00a5\"; } }\n.glyphicon-ruble                  { &:before { content: \"\\20bd\"; } }\n.glyphicon-rub                    { &:before { content: \"\\20bd\"; } }\n.glyphicon-scale                  { &:before { content: \"\\e230\"; } }\n.glyphicon-ice-lolly              { &:before { content: \"\\e231\"; } }\n.glyphicon-ice-lolly-tasted       { &:before { content: \"\\e232\"; } }\n.glyphicon-education              { &:before { content: \"\\e233\"; } }\n.glyphicon-option-horizontal      { &:before { content: \"\\e234\"; } }\n.glyphicon-option-vertical        { &:before { content: \"\\e235\"; } }\n.glyphicon-menu-hamburger         { &:before { content: \"\\e236\"; } }\n.glyphicon-modal-window           { &:before { content: \"\\e237\"; } }\n.glyphicon-oil                    { &:before { content: \"\\e238\"; } }\n.glyphicon-grain                  { &:before { content: \"\\e239\"; } }\n.glyphicon-sunglasses             { &:before { content: \"\\e240\"; } }\n.glyphicon-text-size              { &:before { content: \"\\e241\"; } }\n.glyphicon-text-color             { &:before { content: \"\\e242\"; } }\n.glyphicon-text-background        { &:before { content: \"\\e243\"; } }\n.glyphicon-object-align-top       { &:before { content: \"\\e244\"; } }\n.glyphicon-object-align-bottom    { &:before { content: \"\\e245\"; } }\n.glyphicon-object-align-horizontal{ &:before { content: \"\\e246\"; } }\n.glyphicon-object-align-left      { &:before { content: \"\\e247\"; } }\n.glyphicon-object-align-vertical  { &:before { content: \"\\e248\"; } }\n.glyphicon-object-align-right     { &:before { content: \"\\e249\"; } }\n.glyphicon-triangle-right         { &:before { content: \"\\e250\"; } }\n.glyphicon-triangle-left          { &:before { content: \"\\e251\"; } }\n.glyphicon-triangle-bottom        { &:before { content: \"\\e252\"; } }\n.glyphicon-triangle-top           { &:before { content: \"\\e253\"; } }\n.glyphicon-console                { &:before { content: \"\\e254\"; } }\n.glyphicon-superscript            { &:before { content: \"\\e255\"; } }\n.glyphicon-subscript              { &:before { content: \"\\e256\"; } }\n.glyphicon-menu-left              { &:before { content: \"\\e257\"; } }\n.glyphicon-menu-right             { &:before { content: \"\\e258\"; } }\n.glyphicon-menu-down              { &:before { content: \"\\e259\"; } }\n.glyphicon-menu-up                { &:before { content: \"\\e260\"; } }\n"
  },
  {
    "path": "lib/bootstrap-sass/_grid.scss",
    "content": "//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n  @include container-fixed;\n\n  @media (min-width: $screen-sm-min) {\n    width: $container-sm;\n  }\n  @media (min-width: $screen-md-min) {\n    width: $container-md;\n  }\n  @media (min-width: $screen-lg-min) {\n    width: $container-lg;\n  }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n  @include container-fixed;\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n  @include make-row;\n}\n\n.row-no-gutters {\n  margin-right: 0;\n  margin-left: 0;\n\n  [class*=\"col-\"] {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@include make-grid-columns;\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n@include make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: $screen-sm-min) {\n  @include make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: $screen-md-min) {\n  @include make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: $screen-lg-min) {\n  @include make-grid(lg);\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_input-groups.scss",
    "content": "//\n// Input groups\n// --------------------------------------------------\n\n// Base styles\n// -------------------------\n.input-group {\n  position: relative; // For dropdowns\n  display: table;\n  border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table\n\n  // Undo padding and float of grid classes\n  &[class*=\"col-\"] {\n    float: none;\n    padding-right: 0;\n    padding-left: 0;\n  }\n\n  .form-control {\n    // Ensure that the input is always above the *appended* addon button for\n    // proper border colors.\n    position: relative;\n    z-index: 2;\n\n    // IE9 fubars the placeholder attribute in text inputs and the arrows on\n    // select elements in input groups. To fix it, we float the input. Details:\n    // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855\n    float: left;\n\n    width: 100%;\n    margin-bottom: 0;\n\n    &:focus {\n      z-index: 3;\n    }\n  }\n}\n\n// Sizing options\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n  @extend .input-lg;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n  @extend .input-sm;\n}\n\n\n// Display as table-cell\n// -------------------------\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n  display: table-cell;\n\n  &:not(:first-child):not(:last-child) {\n    border-radius: 0;\n  }\n}\n// Addon and addon wrapper for buttons\n.input-group-addon,\n.input-group-btn {\n  width: 1%;\n  white-space: nowrap;\n  vertical-align: middle; // Match the inputs\n}\n\n// Text input groups\n// -------------------------\n.input-group-addon {\n  padding: $padding-base-vertical $padding-base-horizontal;\n  font-size: $font-size-base;\n  font-weight: 400;\n  line-height: 1;\n  color: $input-color;\n  text-align: center;\n  background-color: $input-group-addon-bg;\n  border: 1px solid $input-group-addon-border-color;\n  border-radius: $input-border-radius;\n\n  // Sizing\n  &.input-sm {\n    padding: $padding-small-vertical $padding-small-horizontal;\n    font-size: $font-size-small;\n    border-radius: $input-border-radius-small;\n  }\n  &.input-lg {\n    padding: $padding-large-vertical $padding-large-horizontal;\n    font-size: $font-size-large;\n    border-radius: $input-border-radius-large;\n  }\n\n  // Nuke default margins from checkboxes and radios to vertically center within.\n  input[type=\"radio\"],\n  input[type=\"checkbox\"] {\n    margin-top: 0;\n  }\n}\n\n// Reset rounded corners\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n  @include border-right-radius(0);\n}\n.input-group-addon:first-child {\n  border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n  @include border-left-radius(0);\n}\n.input-group-addon:last-child {\n  border-left: 0;\n}\n\n// Button input groups\n// -------------------------\n.input-group-btn {\n  position: relative;\n  // Jankily prevent input button groups from wrapping with `white-space` and\n  // `font-size` in combination with `inline-block` on buttons.\n  font-size: 0;\n  white-space: nowrap;\n\n  // Negative margin for spacing, position for bringing hovered/focused/actived\n  // element above the siblings.\n  > .btn {\n    position: relative;\n    + .btn {\n      margin-left: -1px;\n    }\n    // Bring the \"active\" button to the front\n    &:hover,\n    &:focus,\n    &:active {\n      z-index: 2;\n    }\n  }\n\n  // Negative margin to only have a 1px border between the two\n  &:first-child {\n    > .btn,\n    > .btn-group {\n      margin-right: -1px;\n    }\n  }\n  &:last-child {\n    > .btn,\n    > .btn-group {\n      z-index: 2;\n      margin-left: -1px;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_jumbotron.scss",
    "content": "@use \"sass:math\";\n//\n// Jumbotron\n// --------------------------------------------------\n\n\n.jumbotron {\n  padding-top: $jumbotron-padding;\n  padding-bottom: $jumbotron-padding;\n  margin-bottom: $jumbotron-padding;\n  color: $jumbotron-color;\n  background-color: $jumbotron-bg;\n\n  h1,\n  .h1 {\n    color: $jumbotron-heading-color;\n  }\n\n  p {\n    margin-bottom: math.div($jumbotron-padding, 2);\n    font-size: $jumbotron-font-size;\n    font-weight: 200;\n  }\n\n  > hr {\n    border-top-color: darken($jumbotron-bg, 10%);\n  }\n\n  .container &,\n  .container-fluid & {\n    padding-right: math.div($grid-gutter-width, 2);\n    padding-left: math.div($grid-gutter-width, 2);\n    border-radius: $border-radius-large; // Only round corners at higher resolutions if contained in a container\n  }\n\n  .container {\n    max-width: 100%;\n  }\n\n  @media screen and (min-width: $screen-sm-min) {\n    padding-top: ($jumbotron-padding * 1.6);\n    padding-bottom: ($jumbotron-padding * 1.6);\n\n    .container &,\n    .container-fluid & {\n      padding-right: ($jumbotron-padding * 2);\n      padding-left: ($jumbotron-padding * 2);\n    }\n\n    h1,\n    .h1 {\n      font-size: $jumbotron-heading-font-size;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_labels.scss",
    "content": "//\n// Labels\n// --------------------------------------------------\n\n.label {\n  display: inline;\n  padding: .2em .6em .3em;\n  font-size: 75%;\n  font-weight: 700;\n  line-height: 1;\n  color: $label-color;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: .25em;\n\n  // [converter] extracted a& to a.label\n\n  // Empty labels collapse automatically (not available in IE8)\n  &:empty {\n    display: none;\n  }\n\n  // Quick fix for labels in buttons\n  .btn & {\n    position: relative;\n    top: -1px;\n  }\n}\n\n// Add hover effects, but only for links\na.label {\n  &:hover,\n  &:focus {\n    color: $label-link-hover-color;\n    text-decoration: none;\n    cursor: pointer;\n  }\n}\n\n// Colors\n// Contextual variations (linked labels get darker on :hover)\n\n.label-default {\n  @include label-variant($label-default-bg);\n}\n\n.label-primary {\n  @include label-variant($label-primary-bg);\n}\n\n.label-success {\n  @include label-variant($label-success-bg);\n}\n\n.label-info {\n  @include label-variant($label-info-bg);\n}\n\n.label-warning {\n  @include label-variant($label-warning-bg);\n}\n\n.label-danger {\n  @include label-variant($label-danger-bg);\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_list-group.scss",
    "content": "//\n// List groups\n// --------------------------------------------------\n\n\n// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n  // No need to set list-style: none; since .list-group-item is block level\n  padding-left: 0; // reset padding because ul and ol\n  margin-bottom: 20px;\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n  // Place the border on the list items and negative margin up for better styling\n  margin-bottom: -1px;\n  background-color: $list-group-bg;\n  border: 1px solid $list-group-border;\n\n  // Round the first and last items\n  &:first-child {\n    @include border-top-radius($list-group-border-radius);\n  }\n  &:last-child {\n    margin-bottom: 0;\n    @include border-bottom-radius($list-group-border-radius);\n  }\n\n  // Disabled state\n  &.disabled,\n  &.disabled:hover,\n  &.disabled:focus {\n    color: $list-group-disabled-color;\n    cursor: $cursor-disabled;\n    background-color: $list-group-disabled-bg;\n\n    // Force color to inherit for custom content\n    .list-group-item-heading {\n      color: inherit;\n    }\n    .list-group-item-text {\n      color: $list-group-disabled-text-color;\n    }\n  }\n\n  // Active class on item itself, not parent\n  &.active,\n  &.active:hover,\n  &.active:focus {\n    z-index: 2; // Place active items above their siblings for proper border styling\n    color: $list-group-active-color;\n    background-color: $list-group-active-bg;\n    border-color: $list-group-active-border;\n\n    // Force color to inherit for custom content\n    .list-group-item-heading,\n    .list-group-item-heading > small,\n    .list-group-item-heading > .small {\n      color: inherit;\n    }\n    .list-group-item-text {\n      color: $list-group-active-text-color;\n    }\n  }\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive items.\n// Includes an extra `.active` modifier class for showing selected items.\n\na.list-group-item,\nbutton.list-group-item {\n  color: $list-group-link-color;\n\n  .list-group-item-heading {\n    color: $list-group-link-heading-color;\n  }\n\n  // Hover state\n  &:hover,\n  &:focus {\n    color: $list-group-link-hover-color;\n    text-decoration: none;\n    background-color: $list-group-hover-bg;\n  }\n}\n\nbutton.list-group-item {\n  width: 100%;\n  text-align: left;\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n@include list-group-item-variant(success, $state-success-bg, $state-success-text);\n@include list-group-item-variant(info, $state-info-bg, $state-info-text);\n@include list-group-item-variant(warning, $state-warning-bg, $state-warning-text);\n@include list-group-item-variant(danger, $state-danger-bg, $state-danger-text);\n\n\n// Custom content options\n//\n// Extra classes for creating well-formatted content within `.list-group-item`s.\n\n.list-group-item-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n.list-group-item-text {\n  margin-bottom: 0;\n  line-height: 1.3;\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_media.scss",
    "content": ".media {\n  // Proper spacing between instances of .media\n  margin-top: 15px;\n\n  &:first-child {\n    margin-top: 0;\n  }\n}\n\n.media,\n.media-body {\n  overflow: hidden;\n  zoom: 1;\n}\n\n.media-body {\n  width: 10000px;\n}\n\n.media-object {\n  display: block;\n\n  // Fix collapse in webkit from max-width: 100% and display: table-cell.\n  &.img-thumbnail {\n    max-width: none;\n  }\n}\n\n.media-right,\n.media > .pull-right {\n  padding-left: 10px;\n}\n\n.media-left,\n.media > .pull-left {\n  padding-right: 10px;\n}\n\n.media-left,\n.media-right,\n.media-body {\n  display: table-cell;\n  vertical-align: top;\n}\n\n.media-middle {\n  vertical-align: middle;\n}\n\n.media-bottom {\n  vertical-align: bottom;\n}\n\n// Reset margins on headings for tighter default spacing\n.media-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n\n// Media list variation\n//\n// Undo default ul/ol styles\n.media-list {\n  padding-left: 0;\n  list-style: none;\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_mixins.scss",
    "content": "// Mixins\n// --------------------------------------------------\n\n// Utilities\n@import \"mixins/hide-text\";\n@import \"mixins/opacity\";\n@import \"mixins/image\";\n@import \"mixins/labels\";\n@import \"mixins/reset-filter\";\n@import \"mixins/resize\";\n@import \"mixins/responsive-visibility\";\n@import \"mixins/size\";\n@import \"mixins/tab-focus\";\n@import \"mixins/reset-text\";\n@import \"mixins/text-emphasis\";\n@import \"mixins/text-overflow\";\n@import \"mixins/vendor-prefixes\";\n\n// Components\n@import \"mixins/alerts\";\n@import \"mixins/buttons\";\n@import \"mixins/panels\";\n@import \"mixins/pagination\";\n@import \"mixins/list-group\";\n@import \"mixins/nav-divider\";\n@import \"mixins/forms\";\n@import \"mixins/progress-bar\";\n@import \"mixins/table-row\";\n\n// Skins\n@import \"mixins/background-variant\";\n@import \"mixins/border-radius\";\n@import \"mixins/gradients\";\n\n// Layout\n@import \"mixins/clearfix\";\n@import \"mixins/center-block\";\n@import \"mixins/nav-vertical-align\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n"
  },
  {
    "path": "lib/bootstrap-sass/_modals.scss",
    "content": "//\n// Modals\n// --------------------------------------------------\n\n// .modal-open      - body class for killing the scroll\n// .modal           - container to scroll within\n// .modal-dialog    - positioning shell for the actual modal\n// .modal-content   - actual modal w/ bg and corners and shit\n\n// Kill the scroll on the body\n.modal-open {\n  overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $zindex-modal;\n  display: none;\n  overflow: hidden;\n  -webkit-overflow-scrolling: touch;\n\n  // Prevent Chrome on Windows from adding a focus outline. For details, see\n  // https://github.com/twbs/bootstrap/pull/10951.\n  outline: 0;\n\n  // When fading in the modal, animate it to slide down\n  &.fade .modal-dialog {\n    @include translate(0, -25%);\n    @include transition-transform(0.3s ease-out);\n  }\n  &.in .modal-dialog { @include translate(0, 0); }\n}\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 10px;\n}\n\n// Actual modal\n.modal-content {\n  position: relative;\n  background-color: $modal-content-bg;\n  background-clip: padding-box;\n  border: 1px solid $modal-content-fallback-border-color; //old browsers fallback (ie8 etc)\n  border: 1px solid $modal-content-border-color;\n  border-radius: $border-radius-large;\n  @include box-shadow(0 3px 9px rgba(0, 0, 0, .5));\n  // Remove focus outline from opened modal\n  outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $zindex-modal-background;\n  background-color: $modal-backdrop-bg;\n  // Fade for backdrop\n  &.fade { @include opacity(0); }\n  &.in { @include opacity($modal-backdrop-opacity); }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n  padding: $modal-title-padding;\n  border-bottom: 1px solid $modal-header-border-color;\n  @include clearfix;\n}\n// Close icon\n.modal-header .close {\n  margin-top: -2px;\n}\n\n// Title text within header\n.modal-title {\n  margin: 0;\n  line-height: $modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n  position: relative;\n  padding: $modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n  padding: $modal-inner-padding;\n  text-align: right; // right align buttons\n  border-top: 1px solid $modal-footer-border-color;\n  @include clearfix; // clear it in case folks use .pull-* classes on buttons\n\n  // Properly space out buttons\n  .btn + .btn {\n    margin-bottom: 0; // account for input[type=\"submit\"] which gets the bottom margin like all other inputs\n    margin-left: 5px;\n  }\n  // but override that for button groups\n  .btn-group .btn + .btn {\n    margin-left: -1px;\n  }\n  // and override it for block buttons as well\n  .btn-block + .btn-block {\n    margin-left: 0;\n  }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n// Scale up the modal\n@media (min-width: $screen-sm-min) {\n  // Automatically set modal's width for larger viewports\n  .modal-dialog {\n    width: $modal-md;\n    margin: 30px auto;\n  }\n  .modal-content {\n    @include box-shadow(0 5px 15px rgba(0, 0, 0, .5));\n  }\n\n  // Modal sizes\n  .modal-sm { width: $modal-sm; }\n}\n\n@media (min-width: $screen-md-min) {\n  .modal-lg { width: $modal-lg; }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_navbar.scss",
    "content": "@use \"sass:math\";\n//\n// Navbars\n// --------------------------------------------------\n\n\n// Wrapper and base class\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n  position: relative;\n  min-height: $navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)\n  margin-bottom: $navbar-margin-bottom;\n  border: 1px solid transparent;\n\n  // Prevent floats from breaking the navbar\n  @include clearfix;\n\n  @media (min-width: $grid-float-breakpoint) {\n    border-radius: $navbar-border-radius;\n  }\n}\n\n\n// Navbar heading\n//\n// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy\n// styling of responsive aspects.\n\n.navbar-header {\n  @include clearfix;\n\n  @media (min-width: $grid-float-breakpoint) {\n    float: left;\n  }\n}\n\n\n// Navbar collapse (body)\n//\n// Group your navbar content into this for easy collapsing and expanding across\n// various device sizes. By default, this content is collapsed when <768px, but\n// will expand past that for a horizontal display.\n//\n// To start (on mobile devices) the navbar links, forms, and buttons are stacked\n// vertically and include a `max-height` to overflow in case you have too much\n// content for the user's viewport.\n\n.navbar-collapse {\n  padding-right: $navbar-padding-horizontal;\n  padding-left: $navbar-padding-horizontal;\n  overflow-x: visible;\n  border-top: 1px solid transparent;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);\n  @include clearfix;\n  -webkit-overflow-scrolling: touch;\n\n  &.in {\n    overflow-y: auto;\n  }\n\n  @media (min-width: $grid-float-breakpoint) {\n    width: auto;\n    border-top: 0;\n    box-shadow: none;\n\n    &.collapse {\n      display: block !important;\n      height: auto !important;\n      padding-bottom: 0; // Override default setting\n      overflow: visible !important;\n    }\n\n    &.in {\n      overflow-y: visible;\n    }\n\n    // Undo the collapse side padding for navbars with containers to ensure\n    // alignment of right-aligned contents.\n    .navbar-fixed-top &,\n    .navbar-static-top &,\n    .navbar-fixed-bottom & {\n      padding-right: 0;\n      padding-left: 0;\n    }\n  }\n}\n\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  .navbar-collapse {\n    max-height: $navbar-collapse-max-height;\n\n    @media (max-device-width: $screen-xs-min) and (orientation: landscape) {\n      max-height: 200px;\n    }\n  }\n\n  // Fix the top/bottom navbars when screen real estate supports it\n  position: fixed;\n  right: 0;\n  left: 0;\n  z-index: $zindex-navbar-fixed;\n\n  // Undo the rounded corners\n  @media (min-width: $grid-float-breakpoint) {\n    border-radius: 0;\n  }\n}\n\n.navbar-fixed-top {\n  top: 0;\n  border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n  bottom: 0;\n  margin-bottom: 0; // override .navbar defaults\n  border-width: 1px 0 0;\n}\n\n\n// Both navbar header and collapse\n//\n// When a container is present, change the behavior of the header and collapse.\n\n.container,\n.container-fluid {\n  > .navbar-header,\n  > .navbar-collapse {\n    margin-right: -$navbar-padding-horizontal;\n    margin-left: -$navbar-padding-horizontal;\n\n    @media (min-width: $grid-float-breakpoint) {\n      margin-right: 0;\n      margin-left: 0;\n    }\n  }\n}\n\n\n//\n// Navbar alignment options\n//\n// Display the navbar across the entirety of the page or fixed it to the top or\n// bottom of the page.\n\n// Static top (unfixed, but 100% wide) navbar\n.navbar-static-top {\n  z-index: $zindex-navbar;\n  border-width: 0 0 1px;\n\n  @media (min-width: $grid-float-breakpoint) {\n    border-radius: 0;\n  }\n}\n\n\n// Brand/project name\n\n.navbar-brand {\n  float: left;\n  height: $navbar-height;\n  padding: $navbar-padding-vertical $navbar-padding-horizontal;\n  font-size: $font-size-large;\n  line-height: $line-height-computed;\n\n  &:hover,\n  &:focus {\n    text-decoration: none;\n  }\n\n  > img {\n    display: block;\n  }\n\n  @media (min-width: $grid-float-breakpoint) {\n    .navbar > .container &,\n    .navbar > .container-fluid & {\n      margin-left: -$navbar-padding-horizontal;\n    }\n  }\n}\n\n\n// Navbar toggle\n//\n// Custom button for toggling the `.navbar-collapse`, powered by the collapse\n// JavaScript plugin.\n\n.navbar-toggle {\n  position: relative;\n  float: right;\n  padding: 9px 10px;\n  margin-right: $navbar-padding-horizontal;\n  @include navbar-vertical-align(34px);\n  background-color: transparent;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid transparent;\n  border-radius: $border-radius-base;\n\n  // We remove the `outline` here, but later compensate by attaching `:hover`\n  // styles to `:focus`.\n  &:focus {\n    outline: 0;\n  }\n\n  // Bars\n  .icon-bar {\n    display: block;\n    width: 22px;\n    height: 2px;\n    border-radius: 1px;\n  }\n  .icon-bar + .icon-bar {\n    margin-top: 4px;\n  }\n\n  @media (min-width: $grid-float-breakpoint) {\n    display: none;\n  }\n}\n\n\n// Navbar nav links\n//\n// Builds on top of the `.nav` components with its own modifier class to make\n// the nav the full height of the horizontal nav (above 768px).\n\n.navbar-nav {\n  margin: math.div($navbar-padding-vertical, 2) (-$navbar-padding-horizontal);\n\n  > li > a {\n    padding-top: 10px;\n    padding-bottom: 10px;\n    line-height: $line-height-computed;\n  }\n\n  @media (max-width: $grid-float-breakpoint-max) {\n    // Dropdowns get custom display when collapsed\n    .open .dropdown-menu {\n      position: static;\n      float: none;\n      width: auto;\n      margin-top: 0;\n      background-color: transparent;\n      border: 0;\n      box-shadow: none;\n      > li > a,\n      .dropdown-header {\n        padding: 5px 15px 5px 25px;\n      }\n      > li > a {\n        line-height: $line-height-computed;\n        &:hover,\n        &:focus {\n          background-image: none;\n        }\n      }\n    }\n  }\n\n  // Uncollapse the nav\n  @media (min-width: $grid-float-breakpoint) {\n    float: left;\n    margin: 0;\n\n    > li {\n      float: left;\n      > a {\n        padding-top: $navbar-padding-vertical;\n        padding-bottom: $navbar-padding-vertical;\n      }\n    }\n  }\n}\n\n\n// Navbar form\n//\n// Extension of the `.form-inline` with some extra flavor for optimum display in\n// our navbars.\n\n.navbar-form {\n  padding: 10px $navbar-padding-horizontal;\n  margin-right: -$navbar-padding-horizontal;\n  margin-left: -$navbar-padding-horizontal;\n  border-top: 1px solid transparent;\n  border-bottom: 1px solid transparent;\n  $shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);\n  @include box-shadow($shadow);\n\n  // Mixin behavior for optimum display\n  @include form-inline;\n\n  .form-group {\n    @media (max-width: $grid-float-breakpoint-max) {\n      margin-bottom: 5px;\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  // Vertically center in expanded, horizontal navbar\n  @include navbar-vertical-align($input-height-base);\n\n  // Undo 100% width for pull classes\n  @media (min-width: $grid-float-breakpoint) {\n    width: auto;\n    padding-top: 0;\n    padding-bottom: 0;\n    margin-right: 0;\n    margin-left: 0;\n    border: 0;\n    @include box-shadow(none);\n  }\n}\n\n\n// Dropdown menus\n\n// Menu position and menu carets\n.navbar-nav > li > .dropdown-menu {\n  margin-top: 0;\n  @include border-top-radius(0);\n}\n// Menu position and menu caret support for dropups via extra dropup class\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n  margin-bottom: 0;\n  @include border-top-radius($navbar-border-radius);\n  @include border-bottom-radius(0);\n}\n\n\n// Buttons in navbars\n//\n// Vertically center a button within a navbar (when *not* in a form).\n\n.navbar-btn {\n  @include navbar-vertical-align($input-height-base);\n\n  &.btn-sm {\n    @include navbar-vertical-align($input-height-small);\n  }\n  &.btn-xs {\n    @include navbar-vertical-align(22);\n  }\n}\n\n\n// Text in navbars\n//\n// Add a class to make any element properly align itself vertically within the navbars.\n\n.navbar-text {\n  @include navbar-vertical-align($line-height-computed);\n\n  @media (min-width: $grid-float-breakpoint) {\n    float: left;\n    margin-right: $navbar-padding-horizontal;\n    margin-left: $navbar-padding-horizontal;\n  }\n}\n\n\n// Component alignment\n//\n// Repurpose the pull utilities as their own navbar utilities to avoid specificity\n// issues with parents and chaining. Only do this when the navbar is uncollapsed\n// though so that navbar contents properly stack and align in mobile.\n//\n// Declared after the navbar components to ensure more specificity on the margins.\n\n@media (min-width: $grid-float-breakpoint) {\n  .navbar-left {\n    float: left !important;\n  }\n  .navbar-right {\n    float: right !important;\n  margin-right: -$navbar-padding-horizontal;\n\n    ~ .navbar-right {\n      margin-right: 0;\n    }\n  }\n}\n\n\n// Alternate navbars\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n  background-color: $navbar-default-bg;\n  border-color: $navbar-default-border;\n\n  .navbar-brand {\n    color: $navbar-default-brand-color;\n    &:hover,\n    &:focus {\n      color: $navbar-default-brand-hover-color;\n      background-color: $navbar-default-brand-hover-bg;\n    }\n  }\n\n  .navbar-text {\n    color: $navbar-default-color;\n  }\n\n  .navbar-nav {\n    > li > a {\n      color: $navbar-default-link-color;\n\n      &:hover,\n      &:focus {\n        color: $navbar-default-link-hover-color;\n        background-color: $navbar-default-link-hover-bg;\n      }\n    }\n    > .active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: $navbar-default-link-active-color;\n        background-color: $navbar-default-link-active-bg;\n      }\n    }\n    > .disabled > a {\n      &,\n      &:hover,\n      &:focus {\n        color: $navbar-default-link-disabled-color;\n        background-color: $navbar-default-link-disabled-bg;\n      }\n    }\n\n    // Dropdown menu items\n    // Remove background color from open dropdown\n    > .open > a {\n      &,\n      &:hover,\n      &:focus {\n        color: $navbar-default-link-active-color;\n        background-color: $navbar-default-link-active-bg;\n      }\n    }\n\n    @media (max-width: $grid-float-breakpoint-max) {\n      // Dropdowns get custom display when collapsed\n      .open .dropdown-menu {\n        > li > a {\n          color: $navbar-default-link-color;\n          &:hover,\n          &:focus {\n            color: $navbar-default-link-hover-color;\n            background-color: $navbar-default-link-hover-bg;\n          }\n        }\n        > .active > a {\n          &,\n          &:hover,\n          &:focus {\n            color: $navbar-default-link-active-color;\n            background-color: $navbar-default-link-active-bg;\n          }\n        }\n        > .disabled > a {\n          &,\n          &:hover,\n          &:focus {\n            color: $navbar-default-link-disabled-color;\n            background-color: $navbar-default-link-disabled-bg;\n          }\n        }\n      }\n    }\n  }\n\n  .navbar-toggle {\n    border-color: $navbar-default-toggle-border-color;\n    &:hover,\n    &:focus {\n      background-color: $navbar-default-toggle-hover-bg;\n    }\n    .icon-bar {\n      background-color: $navbar-default-toggle-icon-bar-bg;\n    }\n  }\n\n  .navbar-collapse,\n  .navbar-form {\n    border-color: $navbar-default-border;\n  }\n\n\n  // Links in navbars\n  //\n  // Add a class to ensure links outside the navbar nav are colored correctly.\n\n  .navbar-link {\n    color: $navbar-default-link-color;\n    &:hover {\n      color: $navbar-default-link-hover-color;\n    }\n  }\n\n  .btn-link {\n    color: $navbar-default-link-color;\n    &:hover,\n    &:focus {\n      color: $navbar-default-link-hover-color;\n    }\n    &[disabled],\n    fieldset[disabled] & {\n      &:hover,\n      &:focus {\n        color: $navbar-default-link-disabled-color;\n      }\n    }\n  }\n}\n\n// Inverse navbar\n\n.navbar-inverse {\n  background-color: $navbar-inverse-bg;\n  border-color: $navbar-inverse-border;\n\n  .navbar-brand {\n    color: $navbar-inverse-brand-color;\n    &:hover,\n    &:focus {\n      color: $navbar-inverse-brand-hover-color;\n      background-color: $navbar-inverse-brand-hover-bg;\n    }\n  }\n\n  .navbar-text {\n    color: $navbar-inverse-color;\n  }\n\n  .navbar-nav {\n    > li > a {\n      color: $navbar-inverse-link-color;\n\n      &:hover,\n      &:focus {\n        color: $navbar-inverse-link-hover-color;\n        background-color: $navbar-inverse-link-hover-bg;\n      }\n    }\n    > .active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: $navbar-inverse-link-active-color;\n        background-color: $navbar-inverse-link-active-bg;\n      }\n    }\n    > .disabled > a {\n      &,\n      &:hover,\n      &:focus {\n        color: $navbar-inverse-link-disabled-color;\n        background-color: $navbar-inverse-link-disabled-bg;\n      }\n    }\n\n    // Dropdowns\n    > .open > a {\n      &,\n      &:hover,\n      &:focus {\n        color: $navbar-inverse-link-active-color;\n        background-color: $navbar-inverse-link-active-bg;\n      }\n    }\n\n    @media (max-width: $grid-float-breakpoint-max) {\n      // Dropdowns get custom display\n      .open .dropdown-menu {\n        > .dropdown-header {\n          border-color: $navbar-inverse-border;\n        }\n        .divider {\n          background-color: $navbar-inverse-border;\n        }\n        > li > a {\n          color: $navbar-inverse-link-color;\n          &:hover,\n          &:focus {\n            color: $navbar-inverse-link-hover-color;\n            background-color: $navbar-inverse-link-hover-bg;\n          }\n        }\n        > .active > a {\n          &,\n          &:hover,\n          &:focus {\n            color: $navbar-inverse-link-active-color;\n            background-color: $navbar-inverse-link-active-bg;\n          }\n        }\n        > .disabled > a {\n          &,\n          &:hover,\n          &:focus {\n            color: $navbar-inverse-link-disabled-color;\n            background-color: $navbar-inverse-link-disabled-bg;\n          }\n        }\n      }\n    }\n  }\n\n  // Darken the responsive nav toggle\n  .navbar-toggle {\n    border-color: $navbar-inverse-toggle-border-color;\n    &:hover,\n    &:focus {\n      background-color: $navbar-inverse-toggle-hover-bg;\n    }\n    .icon-bar {\n      background-color: $navbar-inverse-toggle-icon-bar-bg;\n    }\n  }\n\n  .navbar-collapse,\n  .navbar-form {\n    border-color: darken($navbar-inverse-bg, 7%);\n  }\n\n  .navbar-link {\n    color: $navbar-inverse-link-color;\n    &:hover {\n      color: $navbar-inverse-link-hover-color;\n    }\n  }\n\n  .btn-link {\n    color: $navbar-inverse-link-color;\n    &:hover,\n    &:focus {\n      color: $navbar-inverse-link-hover-color;\n    }\n    &[disabled],\n    fieldset[disabled] & {\n      &:hover,\n      &:focus {\n        color: $navbar-inverse-link-disabled-color;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_navs.scss",
    "content": "//\n// Navs\n// --------------------------------------------------\n\n\n// Base class\n// --------------------------------------------------\n\n.nav {\n  padding-left: 0; // Override default ul/ol\n  margin-bottom: 0;\n  list-style: none;\n  @include clearfix;\n\n  > li {\n    position: relative;\n    display: block;\n\n    > a {\n      position: relative;\n      display: block;\n      padding: $nav-link-padding;\n      &:hover,\n      &:focus {\n        text-decoration: none;\n        background-color: $nav-link-hover-bg;\n      }\n    }\n\n    // Disabled state sets text to gray and nukes hover/tab effects\n    &.disabled > a {\n      color: $nav-disabled-link-color;\n\n      &:hover,\n      &:focus {\n        color: $nav-disabled-link-hover-color;\n        text-decoration: none;\n        cursor: $cursor-disabled;\n        background-color: transparent;\n      }\n    }\n  }\n\n  // Open dropdowns\n  .open > a {\n    &,\n    &:hover,\n    &:focus {\n      background-color: $nav-link-hover-bg;\n      border-color: $link-color;\n    }\n  }\n\n  // Nav dividers (deprecated with v3.0.1)\n  //\n  // This should have been removed in v3 with the dropping of `.nav-list`, but\n  // we missed it. We don't currently support this anywhere, but in the interest\n  // of maintaining backward compatibility in case you use it, it's deprecated.\n  .nav-divider {\n    @include nav-divider;\n  }\n\n  // Prevent IE8 from misplacing imgs\n  //\n  // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989\n  > li > a > img {\n    max-width: none;\n  }\n}\n\n\n// Tabs\n// -------------------------\n\n// Give the tabs something to sit on\n.nav-tabs {\n  border-bottom: 1px solid $nav-tabs-border-color;\n  > li {\n    float: left;\n    // Make the list-items overlay the bottom border\n    margin-bottom: -1px;\n\n    // Actual tabs (as links)\n    > a {\n      margin-right: 2px;\n      line-height: $line-height-base;\n      border: 1px solid transparent;\n      border-radius: $border-radius-base $border-radius-base 0 0;\n      &:hover {\n        border-color: $nav-tabs-link-hover-border-color $nav-tabs-link-hover-border-color $nav-tabs-border-color;\n      }\n    }\n\n    // Active state, and its :hover to override normal :hover\n    &.active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: $nav-tabs-active-link-hover-color;\n        cursor: default;\n        background-color: $nav-tabs-active-link-hover-bg;\n        border: 1px solid $nav-tabs-active-link-hover-border-color;\n        border-bottom-color: transparent;\n      }\n    }\n  }\n  // pulling this in mainly for less shorthand\n  &.nav-justified {\n    @extend .nav-justified;\n    @extend .nav-tabs-justified;\n  }\n}\n\n\n// Pills\n// -------------------------\n.nav-pills {\n  > li {\n    float: left;\n\n    // Links rendered as pills\n    > a {\n      border-radius: $nav-pills-border-radius;\n    }\n    + li {\n      margin-left: 2px;\n    }\n\n    // Active state\n    &.active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: $nav-pills-active-link-hover-color;\n        background-color: $nav-pills-active-link-hover-bg;\n      }\n    }\n  }\n}\n\n\n// Stacked pills\n.nav-stacked {\n  > li {\n    float: none;\n    + li {\n      margin-top: 2px;\n      margin-left: 0; // no need for this gap between nav items\n    }\n  }\n}\n\n\n// Nav variations\n// --------------------------------------------------\n\n// Justified nav links\n// -------------------------\n\n.nav-justified {\n  width: 100%;\n\n  > li {\n    float: none;\n    > a {\n      margin-bottom: 5px;\n      text-align: center;\n    }\n  }\n\n  > .dropdown .dropdown-menu {\n    top: auto;\n    left: auto;\n  }\n\n  @media (min-width: $screen-sm-min) {\n    > li {\n      display: table-cell;\n      width: 1%;\n      > a {\n        margin-bottom: 0;\n      }\n    }\n  }\n}\n\n// Move borders to anchors instead of bottom of list\n//\n// Mixin for adding on top the shared `.nav-justified` styles for our tabs\n.nav-tabs-justified {\n  border-bottom: 0;\n\n  > li > a {\n    // Override margin from .nav-tabs\n    margin-right: 0;\n    border-radius: $border-radius-base;\n  }\n\n  > .active > a,\n  > .active > a:hover,\n  > .active > a:focus {\n    border: 1px solid $nav-tabs-justified-link-border-color;\n  }\n\n  @media (min-width: $screen-sm-min) {\n    > li > a {\n      border-bottom: 1px solid $nav-tabs-justified-link-border-color;\n      border-radius: $border-radius-base $border-radius-base 0 0;\n    }\n    > .active > a,\n    > .active > a:hover,\n    > .active > a:focus {\n      border-bottom-color: $nav-tabs-justified-active-link-border-color;\n    }\n  }\n}\n\n\n// Tabbable tabs\n// -------------------------\n\n// Hide tabbable panes to start, show them when `.active`\n.tab-content {\n  > .tab-pane {\n    display: none;\n  }\n  > .active {\n    display: block;\n  }\n}\n\n\n// Dropdowns\n// -------------------------\n\n// Specific dropdowns\n.nav-tabs .dropdown-menu {\n  // make dropdown border overlap tab border\n  margin-top: -1px;\n  // Remove the top rounded corners here since there is a hard edge above the menu\n  @include border-top-radius(0);\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_normalize.scss",
    "content": "/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS and IE text size adjust after device orientation change,\n//    without disabling user zoom.\n//\n\nhtml {\n  font-family: sans-serif; // 1\n  -ms-text-size-adjust: 100%; // 2\n  -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n  margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined for any HTML5 element in IE 8/9.\n// Correct `block` display not defined for `details` or `summary` in IE 10/11\n// and Firefox.\n// Correct `block` display not defined for `main` in IE 11.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n  display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n  display: inline-block; // 1\n  vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n  display: none;\n  height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9/10.\n// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n  display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n  background-color: transparent;\n}\n\n//\n// Improve readability of focused elements when they are also in an\n// active/hover state.\n//\n\na:active,\na:hover {\n  outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// 1. Remove the bottom border in Chrome 57- and Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n//\n\nabbr[title] {\n  border-bottom: none; // 1\n  text-decoration: underline; // 2\n  text-decoration: underline dotted; // 2\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n//\n\nb,\nstrong {\n  font-weight: bold;\n}\n\n//\n// Address styling not present in Safari and Chrome.\n//\n\ndfn {\n  font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari, and Chrome.\n//\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n  background: #ff0;\n  color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n  font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\n\nsup {\n  top: -0.5em;\n}\n\nsub {\n  bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9/10.\n//\n\nimg {\n  border: 0;\n}\n\n//\n// Correct overflow not hidden in IE 9/10/11.\n//\n\nsvg:not(:root) {\n  overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari.\n//\n\nfigure {\n  margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n  overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n//    Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  color: inherit; // 1\n  font: inherit; // 2\n  margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10/11.\n//\n\nbutton {\n  overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n  text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n//    and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n//    `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  -webkit-appearance: button; // 2\n  cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n  cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  border: 0;\n  padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n  line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n  box-sizing: border-box; // 1\n  padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n//\n\ninput[type=\"search\"] {\n  -webkit-appearance: textfield; // 1\n  box-sizing: content-box; //2\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n  border: 1px solid #c0c0c0;\n  margin: 0 2px;\n  padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9/10/11.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n  border: 0; // 1\n  padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9/10/11.\n//\n\ntextarea {\n  overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n  font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\ntd,\nth {\n  padding: 0;\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_pager.scss",
    "content": "//\n// Pager pagination\n// --------------------------------------------------\n\n\n.pager {\n  padding-left: 0;\n  margin: $line-height-computed 0;\n  text-align: center;\n  list-style: none;\n  @include clearfix;\n  li {\n    display: inline;\n    > a,\n    > span {\n      display: inline-block;\n      padding: 5px 14px;\n      background-color: $pager-bg;\n      border: 1px solid $pager-border;\n      border-radius: $pager-border-radius;\n    }\n\n    > a:hover,\n    > a:focus {\n      text-decoration: none;\n      background-color: $pager-hover-bg;\n    }\n  }\n\n  .next {\n    > a,\n    > span {\n      float: right;\n    }\n  }\n\n  .previous {\n    > a,\n    > span {\n      float: left;\n    }\n  }\n\n  .disabled {\n    > a,\n    > a:hover,\n    > a:focus,\n    > span {\n      color: $pager-disabled-color;\n      cursor: $cursor-disabled;\n      background-color: $pager-bg;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_pagination.scss",
    "content": "//\n// Pagination (multiple pages)\n// --------------------------------------------------\n.pagination {\n  display: inline-block;\n  padding-left: 0;\n  margin: $line-height-computed 0;\n  border-radius: $border-radius-base;\n\n  > li {\n    display: inline; // Remove list-style and block-level defaults\n    > a,\n    > span {\n      position: relative;\n      float: left; // Collapse white-space\n      padding: $padding-base-vertical $padding-base-horizontal;\n      margin-left: -1px;\n      line-height: $line-height-base;\n      color: $pagination-color;\n      text-decoration: none;\n      background-color: $pagination-bg;\n      border: 1px solid $pagination-border;\n\n      &:hover,\n      &:focus {\n        z-index: 2;\n        color: $pagination-hover-color;\n        background-color: $pagination-hover-bg;\n        border-color: $pagination-hover-border;\n      }\n    }\n    &:first-child {\n      > a,\n      > span {\n        margin-left: 0;\n        @include border-left-radius($border-radius-base);\n      }\n    }\n    &:last-child {\n      > a,\n      > span {\n        @include border-right-radius($border-radius-base);\n      }\n    }\n  }\n\n  > .active > a,\n  > .active > span {\n    &,\n    &:hover,\n    &:focus {\n      z-index: 3;\n      color: $pagination-active-color;\n      cursor: default;\n      background-color: $pagination-active-bg;\n      border-color: $pagination-active-border;\n    }\n  }\n\n  > .disabled {\n    > span,\n    > span:hover,\n    > span:focus,\n    > a,\n    > a:hover,\n    > a:focus {\n      color: $pagination-disabled-color;\n      cursor: $cursor-disabled;\n      background-color: $pagination-disabled-bg;\n      border-color: $pagination-disabled-border;\n    }\n  }\n}\n\n// Sizing\n// --------------------------------------------------\n\n// Large\n.pagination-lg {\n  @include pagination-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $border-radius-large);\n}\n\n// Small\n.pagination-sm {\n  @include pagination-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $border-radius-small);\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_panels.scss",
    "content": "//\n// Panels\n// --------------------------------------------------\n\n\n// Base class\n.panel {\n  margin-bottom: $line-height-computed;\n  background-color: $panel-bg;\n  border: 1px solid transparent;\n  border-radius: $panel-border-radius;\n  @include box-shadow(0 1px 1px rgba(0, 0, 0, .05));\n}\n\n// Panel contents\n.panel-body {\n  padding: $panel-body-padding;\n  @include clearfix;\n}\n\n// Optional heading\n.panel-heading {\n  padding: $panel-heading-padding;\n  border-bottom: 1px solid transparent;\n  @include border-top-radius(($panel-border-radius - 1));\n\n  > .dropdown .dropdown-toggle {\n    color: inherit;\n  }\n}\n\n// Within heading, strip any `h*` tag of its default margins for spacing.\n.panel-title {\n  margin-top: 0;\n  margin-bottom: 0;\n  font-size: ceil(($font-size-base * 1.125));\n  color: inherit;\n\n  > a,\n  > small,\n  > .small,\n  > small > a,\n  > .small > a {\n    color: inherit;\n  }\n}\n\n// Optional footer (stays gray in every modifier class)\n.panel-footer {\n  padding: $panel-footer-padding;\n  background-color: $panel-footer-bg;\n  border-top: 1px solid $panel-inner-border;\n  @include border-bottom-radius(($panel-border-radius - 1));\n}\n\n\n// List groups in panels\n//\n// By default, space out list group content from panel headings to account for\n// any kind of custom content between the two.\n\n.panel {\n  > .list-group,\n  > .panel-collapse > .list-group {\n    margin-bottom: 0;\n\n    .list-group-item {\n      border-width: 1px 0;\n      border-radius: 0;\n    }\n\n    // Add border top radius for first one\n    &:first-child {\n      .list-group-item:first-child {\n        border-top: 0;\n        @include border-top-radius(($panel-border-radius - 1));\n      }\n    }\n\n    // Add border bottom radius for last one\n    &:last-child {\n      .list-group-item:last-child {\n        border-bottom: 0;\n        @include border-bottom-radius(($panel-border-radius - 1));\n      }\n    }\n  }\n  > .panel-heading + .panel-collapse > .list-group {\n    .list-group-item:first-child {\n      @include border-top-radius(0);\n    }\n  }\n}\n// Collapse space between when there's no additional content.\n.panel-heading + .list-group {\n  .list-group-item:first-child {\n    border-top-width: 0;\n  }\n}\n.list-group + .panel-footer {\n  border-top-width: 0;\n}\n\n// Tables in panels\n//\n// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and\n// watch it go full width.\n\n.panel {\n  > .table,\n  > .table-responsive > .table,\n  > .panel-collapse > .table {\n    margin-bottom: 0;\n\n    caption {\n      padding-right: $panel-body-padding;\n      padding-left: $panel-body-padding;\n    }\n  }\n  // Add border top radius for first one\n  > .table:first-child,\n  > .table-responsive:first-child > .table:first-child {\n    @include border-top-radius(($panel-border-radius - 1));\n\n    > thead:first-child,\n    > tbody:first-child {\n      > tr:first-child {\n        border-top-left-radius: ($panel-border-radius - 1);\n        border-top-right-radius: ($panel-border-radius - 1);\n\n        td:first-child,\n        th:first-child {\n          border-top-left-radius: ($panel-border-radius - 1);\n        }\n        td:last-child,\n        th:last-child {\n          border-top-right-radius: ($panel-border-radius - 1);\n        }\n      }\n    }\n  }\n  // Add border bottom radius for last one\n  > .table:last-child,\n  > .table-responsive:last-child > .table:last-child {\n    @include border-bottom-radius(($panel-border-radius - 1));\n\n    > tbody:last-child,\n    > tfoot:last-child {\n      > tr:last-child {\n        border-bottom-right-radius: ($panel-border-radius - 1);\n        border-bottom-left-radius: ($panel-border-radius - 1);\n\n        td:first-child,\n        th:first-child {\n          border-bottom-left-radius: ($panel-border-radius - 1);\n        }\n        td:last-child,\n        th:last-child {\n          border-bottom-right-radius: ($panel-border-radius - 1);\n        }\n      }\n    }\n  }\n  > .panel-body + .table,\n  > .panel-body + .table-responsive,\n  > .table + .panel-body,\n  > .table-responsive + .panel-body {\n    border-top: 1px solid $table-border-color;\n  }\n  > .table > tbody:first-child > tr:first-child th,\n  > .table > tbody:first-child > tr:first-child td {\n    border-top: 0;\n  }\n  > .table-bordered,\n  > .table-responsive > .table-bordered {\n    border: 0;\n    > thead,\n    > tbody,\n    > tfoot {\n      > tr {\n        > th:first-child,\n        > td:first-child {\n          border-left: 0;\n        }\n        > th:last-child,\n        > td:last-child {\n          border-right: 0;\n        }\n      }\n    }\n    > thead,\n    > tbody {\n      > tr:first-child {\n        > td,\n        > th {\n          border-bottom: 0;\n        }\n      }\n    }\n    > tbody,\n    > tfoot {\n      > tr:last-child {\n        > td,\n        > th {\n          border-bottom: 0;\n        }\n      }\n    }\n  }\n  > .table-responsive {\n    margin-bottom: 0;\n    border: 0;\n  }\n}\n\n\n// Collapsible panels (aka, accordion)\n//\n// Wrap a series of panels in `.panel-group` to turn them into an accordion with\n// the help of our collapse JavaScript plugin.\n\n.panel-group {\n  margin-bottom: $line-height-computed;\n\n  // Tighten up margin so it's only between panels\n  .panel {\n    margin-bottom: 0;\n    border-radius: $panel-border-radius;\n\n    + .panel {\n      margin-top: 5px;\n    }\n  }\n\n  .panel-heading {\n    border-bottom: 0;\n\n    + .panel-collapse > .panel-body,\n    + .panel-collapse > .list-group {\n      border-top: 1px solid $panel-inner-border;\n    }\n  }\n\n  .panel-footer {\n    border-top: 0;\n    + .panel-collapse .panel-body {\n      border-bottom: 1px solid $panel-inner-border;\n    }\n  }\n}\n\n\n// Contextual variations\n.panel-default {\n  @include panel-variant($panel-default-border, $panel-default-text, $panel-default-heading-bg, $panel-default-border);\n}\n.panel-primary {\n  @include panel-variant($panel-primary-border, $panel-primary-text, $panel-primary-heading-bg, $panel-primary-border);\n}\n.panel-success {\n  @include panel-variant($panel-success-border, $panel-success-text, $panel-success-heading-bg, $panel-success-border);\n}\n.panel-info {\n  @include panel-variant($panel-info-border, $panel-info-text, $panel-info-heading-bg, $panel-info-border);\n}\n.panel-warning {\n  @include panel-variant($panel-warning-border, $panel-warning-text, $panel-warning-heading-bg, $panel-warning-border);\n}\n.panel-danger {\n  @include panel-variant($panel-danger-border, $panel-danger-text, $panel-danger-heading-bg, $panel-danger-border);\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_popovers.scss",
    "content": "//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: $zindex-popover;\n  display: none;\n  max-width: $popover-max-width;\n  padding: 1px;\n  // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  @include reset-text;\n  font-size: $font-size-base;\n  background-color: $popover-bg;\n  background-clip: padding-box;\n  border: 1px solid $popover-fallback-border-color;\n  border: 1px solid $popover-border-color;\n  border-radius: $border-radius-large;\n  @include box-shadow(0 5px 10px rgba(0, 0, 0, .2));\n\n  // Offset the popover to account for the popover arrow\n  &.top { margin-top: -$popover-arrow-width; }\n  &.right { margin-left: $popover-arrow-width; }\n  &.bottom { margin-top: $popover-arrow-width; }\n  &.left { margin-left: -$popover-arrow-width; }\n\n  // Arrows\n  // .arrow is outer, .arrow:after is inner\n  > .arrow {\n    border-width: $popover-arrow-outer-width;\n\n    &,\n    &:after {\n      position: absolute;\n      display: block;\n      width: 0;\n      height: 0;\n      border-color: transparent;\n      border-style: solid;\n    }\n\n    &:after {\n      content: \"\";\n      border-width: $popover-arrow-width;\n    }\n  }\n\n  &.top > .arrow {\n    bottom: -$popover-arrow-outer-width;\n    left: 50%;\n    margin-left: -$popover-arrow-outer-width;\n    border-top-color: $popover-arrow-outer-fallback-color; // IE8 fallback\n    border-top-color: $popover-arrow-outer-color;\n    border-bottom-width: 0;\n    &:after {\n      bottom: 1px;\n      margin-left: -$popover-arrow-width;\n      content: \" \";\n      border-top-color: $popover-arrow-color;\n      border-bottom-width: 0;\n    }\n  }\n  &.right > .arrow {\n    top: 50%;\n    left: -$popover-arrow-outer-width;\n    margin-top: -$popover-arrow-outer-width;\n    border-right-color: $popover-arrow-outer-fallback-color; // IE8 fallback\n    border-right-color: $popover-arrow-outer-color;\n    border-left-width: 0;\n    &:after {\n      bottom: -$popover-arrow-width;\n      left: 1px;\n      content: \" \";\n      border-right-color: $popover-arrow-color;\n      border-left-width: 0;\n    }\n  }\n  &.bottom > .arrow {\n    top: -$popover-arrow-outer-width;\n    left: 50%;\n    margin-left: -$popover-arrow-outer-width;\n    border-top-width: 0;\n    border-bottom-color: $popover-arrow-outer-fallback-color; // IE8 fallback\n    border-bottom-color: $popover-arrow-outer-color;\n    &:after {\n      top: 1px;\n      margin-left: -$popover-arrow-width;\n      content: \" \";\n      border-top-width: 0;\n      border-bottom-color: $popover-arrow-color;\n    }\n  }\n\n  &.left > .arrow {\n    top: 50%;\n    right: -$popover-arrow-outer-width;\n    margin-top: -$popover-arrow-outer-width;\n    border-right-width: 0;\n    border-left-color: $popover-arrow-outer-fallback-color; // IE8 fallback\n    border-left-color: $popover-arrow-outer-color;\n    &:after {\n      right: 1px;\n      bottom: -$popover-arrow-width;\n      content: \" \";\n      border-right-width: 0;\n      border-left-color: $popover-arrow-color;\n    }\n  }\n}\n\n.popover-title {\n  padding: 8px 14px;\n  margin: 0; // reset heading margin\n  font-size: $font-size-base;\n  background-color: $popover-title-bg;\n  border-bottom: 1px solid darken($popover-title-bg, 5%);\n  border-radius: ($border-radius-large - 1) ($border-radius-large - 1) 0 0;\n}\n\n.popover-content {\n  padding: 9px 14px;\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_print.scss",
    "content": "/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request: h5bp.com/r\n// ==========================================================================\n\n@media print {\n  *,\n  *:before,\n  *:after {\n    color: #000 !important; // Black prints faster: h5bp.com/s\n    text-shadow: none !important;\n    background: transparent !important;\n    box-shadow: none !important;\n  }\n\n  a,\n  a:visited {\n    text-decoration: underline;\n  }\n\n  a[href]:after {\n    content: \" (\" attr(href) \")\";\n  }\n\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\";\n  }\n\n  // Don't show links that are fragment identifiers,\n  // or use the `javascript:` pseudo protocol\n  a[href^=\"#\"]:after,\n  a[href^=\"javascript:\"]:after {\n    content: \"\";\n  }\n\n  pre,\n  blockquote {\n    border: 1px solid #999;\n    page-break-inside: avoid;\n  }\n\n  thead {\n    display: table-header-group; // h5bp.com/t\n  }\n\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n\n  img {\n    max-width: 100% !important;\n  }\n\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n\n  // Bootstrap specific changes start\n\n  // Bootstrap components\n  .navbar {\n    display: none;\n  }\n  .btn,\n  .dropup > .btn {\n    > .caret {\n      border-top-color: #000 !important;\n    }\n  }\n  .label {\n    border: 1px solid #000;\n  }\n\n  .table {\n    border-collapse: collapse !important;\n\n    td,\n    th {\n      background-color: #fff !important;\n    }\n  }\n  .table-bordered {\n    th,\n    td {\n      border: 1px solid #ddd !important;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_progress-bars.scss",
    "content": "//\n// Progress bars\n// --------------------------------------------------\n\n\n// Bar animations\n// -------------------------\n\n// WebKit\n@-webkit-keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n// Spec and IE10+\n@keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n\n// Bar itself\n// -------------------------\n\n// Outer container\n.progress {\n  height: $line-height-computed;\n  margin-bottom: $line-height-computed;\n  overflow: hidden;\n  background-color: $progress-bg;\n  border-radius: $progress-border-radius;\n  @include box-shadow(inset 0 1px 2px rgba(0, 0, 0, .1));\n}\n\n// Bar of progress\n.progress-bar {\n  float: left;\n  width: 0%;\n  height: 100%;\n  font-size: $font-size-small;\n  line-height: $line-height-computed;\n  color: $progress-bar-color;\n  text-align: center;\n  background-color: $progress-bar-bg;\n  @include box-shadow(inset 0 -1px 0 rgba(0, 0, 0, .15));\n  @include transition(width .6s ease);\n}\n\n// Striped bars\n//\n// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar-striped` class, which you just add to an existing\n// `.progress-bar`.\n.progress-striped .progress-bar,\n.progress-bar-striped {\n  @include gradient-striped;\n  background-size: 40px 40px;\n}\n\n// Call animation for the active one\n//\n// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar.active` approach.\n.progress.active .progress-bar,\n.progress-bar.active {\n  @include animation(progress-bar-stripes 2s linear infinite);\n}\n\n\n// Variations\n// -------------------------\n\n.progress-bar-success {\n  @include progress-bar-variant($progress-bar-success-bg);\n}\n\n.progress-bar-info {\n  @include progress-bar-variant($progress-bar-info-bg);\n}\n\n.progress-bar-warning {\n  @include progress-bar-variant($progress-bar-warning-bg);\n}\n\n.progress-bar-danger {\n  @include progress-bar-variant($progress-bar-danger-bg);\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_responsive-embed.scss",
    "content": "// Embeds responsive\n//\n// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  height: 0;\n  padding: 0;\n  overflow: hidden;\n\n  .embed-responsive-item,\n  iframe,\n  embed,\n  object,\n  video {\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    border: 0;\n  }\n}\n\n// Modifier class for 16:9 aspect ratio\n.embed-responsive-16by9 {\n  padding-bottom: 56.25%;\n}\n\n// Modifier class for 4:3 aspect ratio\n.embed-responsive-4by3 {\n  padding-bottom: 75%;\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_responsive-utilities.scss",
    "content": "//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 in Windows (Phone) 8\n//\n// Support for responsive views via media queries is kind of borked in IE10, for\n// Surface/desktop in split view and for Windows Phone 8. This particular fix\n// must be accompanied by a snippet of JavaScript to sniff the user agent and\n// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at\n// our Getting Started page for more information on this bug.\n//\n// For more information, see the following:\n//\n// Issue: https://github.com/twbs/bootstrap/issues/10497\n// Docs: https://getbootstrap.com/docs/3.4/getting-started/#support-ie10-width\n// Source: https://timkadlec.com/2013/01/windows-phone-8-and-device-width/\n// Source: https://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/\n\n@at-root {\n  @-ms-viewport {\n    width: device-width;\n  }\n}\n\n\n// Visibility utilities\n// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0\n\n@include responsive-invisibility('.visible-xs');\n@include responsive-invisibility('.visible-sm');\n@include responsive-invisibility('.visible-md');\n@include responsive-invisibility('.visible-lg');\n\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n  display: none !important;\n}\n\n@media (max-width: $screen-xs-max) {\n  @include responsive-visibility('.visible-xs');\n}\n.visible-xs-block {\n  @media (max-width: $screen-xs-max) {\n    display: block !important;\n  }\n}\n.visible-xs-inline {\n  @media (max-width: $screen-xs-max) {\n    display: inline !important;\n  }\n}\n.visible-xs-inline-block {\n  @media (max-width: $screen-xs-max) {\n    display: inline-block !important;\n  }\n}\n\n@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {\n  @include responsive-visibility('.visible-sm');\n}\n.visible-sm-block {\n  @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {\n    display: block !important;\n  }\n}\n.visible-sm-inline {\n  @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {\n    display: inline !important;\n  }\n}\n.visible-sm-inline-block {\n  @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {\n    display: inline-block !important;\n  }\n}\n\n@media (min-width: $screen-md-min) and (max-width: $screen-md-max) {\n  @include responsive-visibility('.visible-md');\n}\n.visible-md-block {\n  @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {\n    display: block !important;\n  }\n}\n.visible-md-inline {\n  @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {\n    display: inline !important;\n  }\n}\n.visible-md-inline-block {\n  @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {\n    display: inline-block !important;\n  }\n}\n\n@media (min-width: $screen-lg-min) {\n  @include responsive-visibility('.visible-lg');\n}\n.visible-lg-block {\n  @media (min-width: $screen-lg-min) {\n    display: block !important;\n  }\n}\n.visible-lg-inline {\n  @media (min-width: $screen-lg-min) {\n    display: inline !important;\n  }\n}\n.visible-lg-inline-block {\n  @media (min-width: $screen-lg-min) {\n    display: inline-block !important;\n  }\n}\n\n@media (max-width: $screen-xs-max) {\n  @include responsive-invisibility('.hidden-xs');\n}\n\n@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {\n  @include responsive-invisibility('.hidden-sm');\n}\n\n@media (min-width: $screen-md-min) and (max-width: $screen-md-max) {\n  @include responsive-invisibility('.hidden-md');\n}\n\n@media (min-width: $screen-lg-min) {\n  @include responsive-invisibility('.hidden-lg');\n}\n\n\n// Print utilities\n//\n// Media queries are placed on the inside to be mixin-friendly.\n\n// Note: Deprecated .visible-print as of v3.2.0\n\n@include responsive-invisibility('.visible-print');\n\n@media print {\n  @include responsive-visibility('.visible-print');\n}\n.visible-print-block {\n  display: none !important;\n\n  @media print {\n    display: block !important;\n  }\n}\n.visible-print-inline {\n  display: none !important;\n\n  @media print {\n    display: inline !important;\n  }\n}\n.visible-print-inline-block {\n  display: none !important;\n\n  @media print {\n    display: inline-block !important;\n  }\n}\n\n@media print {\n  @include responsive-invisibility('.hidden-print');\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_scaffolding.scss",
    "content": "//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// https://getbootstrap.com/docs/3.4/getting-started/#third-box-sizing\n* {\n  @include box-sizing(border-box);\n}\n*:before,\n*:after {\n  @include box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n  font-size: 10px;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\nbody {\n  font-family: $font-family-base;\n  font-size: $font-size-base;\n  line-height: $line-height-base;\n  color: $text-color;\n  background-color: $body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\n\n// Links\n\na {\n  color: $link-color;\n  text-decoration: none;\n\n  &:hover,\n  &:focus {\n    color: $link-hover-color;\n    text-decoration: $link-hover-decoration;\n  }\n\n  &:focus {\n    @include tab-focus;\n  }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n  margin: 0;\n}\n\n\n// Images\n\nimg {\n  vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n  @include img-responsive;\n}\n\n// Rounded corners\n.img-rounded {\n  border-radius: $border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n  padding: $thumbnail-padding;\n  line-height: $line-height-base;\n  background-color: $thumbnail-bg;\n  border: 1px solid $thumbnail-border;\n  border-radius: $thumbnail-border-radius;\n  @include transition(all .2s ease-in-out);\n\n  // Keep them at most 100% wide\n  @include img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n  border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n  margin-top: $line-height-computed;\n  margin-bottom: $line-height-computed;\n  border: 0;\n  border-top: 1px solid $hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: https://a11yproject.com/posts/how-to-hide-content\n\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable {\n  &:active,\n  &:focus {\n    position: static;\n    width: auto;\n    height: auto;\n    margin: 0;\n    overflow: visible;\n    clip: auto;\n  }\n}\n\n\n// iOS \"clickable elements\" fix for role=\"button\"\n//\n// Fixes \"clickability\" issue (and more generally, the firing of events such as focus as well)\n// for traditionally non-focusable elements with role=\"button\"\n// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n[role=\"button\"] {\n  cursor: pointer;\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_tables.scss",
    "content": "//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n  background-color: $table-bg;\n\n  // Table cell sizing\n  //\n  // Reset default table behavior\n\n  col[class*=\"col-\"] {\n    position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n    display: table-column;\n    float: none;\n  }\n\n  td,\n  th {\n    &[class*=\"col-\"] {\n      position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n      display: table-cell;\n      float: none;\n    }\n  }\n}\n\ncaption {\n  padding-top: $table-cell-padding;\n  padding-bottom: $table-cell-padding;\n  color: $text-muted;\n  text-align: left;\n}\n\nth {\n  text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: $line-height-computed;\n  // Cells\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        padding: $table-cell-padding;\n        line-height: $line-height-base;\n        vertical-align: top;\n        border-top: 1px solid $table-border-color;\n      }\n    }\n  }\n  // Bottom align for column headings\n  > thead > tr > th {\n    vertical-align: bottom;\n    border-bottom: 2px solid $table-border-color;\n  }\n  // Remove top border from thead by default\n  > caption + thead,\n  > colgroup + thead,\n  > thead:first-child {\n    > tr:first-child {\n      > th,\n      > td {\n        border-top: 0;\n      }\n    }\n  }\n  // Account for multiple tbody instances\n  > tbody + tbody {\n    border-top: 2px solid $table-border-color;\n  }\n\n  // Nesting\n  .table {\n    background-color: $body-bg;\n  }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        padding: $table-condensed-cell-padding;\n      }\n    }\n  }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n  border: 1px solid $table-border-color;\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        border: 1px solid $table-border-color;\n      }\n    }\n  }\n  > thead > tr {\n    > th,\n    > td {\n      border-bottom-width: 2px;\n    }\n  }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n  > tbody > tr:nth-of-type(odd) {\n    background-color: $table-bg-accent;\n  }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n  > tbody > tr:hover {\n    background-color: $table-bg-hover;\n  }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n@include table-row-variant('active', $table-bg-active);\n@include table-row-variant('success', $state-success-bg);\n@include table-row-variant('info', $state-info-bg);\n@include table-row-variant('warning', $state-warning-bg);\n@include table-row-variant('danger', $state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n.table-responsive {\n  min-height: .01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)\n  overflow-x: auto;\n\n  @media screen and (max-width: $screen-xs-max) {\n    width: 100%;\n    margin-bottom: ($line-height-computed * .75);\n    overflow-y: hidden;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n    border: 1px solid $table-border-color;\n\n    // Tighten up spacing\n    > .table {\n      margin-bottom: 0;\n\n      // Ensure the content doesn't wrap\n      > thead,\n      > tbody,\n      > tfoot {\n        > tr {\n          > th,\n          > td {\n            white-space: nowrap;\n          }\n        }\n      }\n    }\n\n    // Special overrides for the bordered tables\n    > .table-bordered {\n      border: 0;\n\n      // Nuke the appropriate borders so that the parent can handle them\n      > thead,\n      > tbody,\n      > tfoot {\n        > tr {\n          > th:first-child,\n          > td:first-child {\n            border-left: 0;\n          }\n          > th:last-child,\n          > td:last-child {\n            border-right: 0;\n          }\n        }\n      }\n\n      // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n      // chances are there will be only one `tr` in a `thead` and that would\n      // remove the border altogether.\n      > tbody,\n      > tfoot {\n        > tr:last-child {\n          > th,\n          > td {\n            border-bottom: 0;\n          }\n        }\n      }\n\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_theme.scss",
    "content": "/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables\";\n@import \"mixins\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);\n  $shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);\n  @include box-shadow($shadow);\n\n  // Reset the shadow\n  &:active,\n  &.active {\n    @include box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125));\n  }\n\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    @include box-shadow(none);\n  }\n\n  .badge {\n    text-shadow: none;\n  }\n}\n\n// Mixin for generating new styles\n@mixin btn-styles($btn-color: #555) {\n  @include gradient-vertical($start-color: $btn-color, $end-color: darken($btn-color, 12%));\n  @include reset-filter; // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n  background-repeat: repeat-x;\n  border-color: darken($btn-color, 14%);\n\n  &:hover,\n  &:focus  {\n    background-color: darken($btn-color, 12%);\n    background-position: 0 -15px;\n  }\n\n  &:active,\n  &.active {\n    background-color: darken($btn-color, 12%);\n    border-color: darken($btn-color, 14%);\n  }\n\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    &,\n    &:hover,\n    &:focus,\n    &.focus,\n    &:active,\n    &.active {\n      background-color: darken($btn-color, 12%);\n      background-image: none;\n    }\n  }\n}\n\n// Common styles\n.btn {\n  // Remove the gradient for the pressed/active state\n  &:active,\n  &.active {\n    background-image: none;\n  }\n}\n\n// Apply the mixin to the buttons\n.btn-default {\n  @include btn-styles($btn-default-bg);\n  text-shadow: 0 1px 0 #fff;\n  border-color: #ccc;\n}\n.btn-primary { @include btn-styles($btn-primary-bg); }\n.btn-success { @include btn-styles($btn-success-bg); }\n.btn-info    { @include btn-styles($btn-info-bg); }\n.btn-warning { @include btn-styles($btn-warning-bg); }\n.btn-danger  { @include btn-styles($btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n  @include box-shadow(0 1px 2px rgba(0, 0, 0, .075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n  @include gradient-vertical($start-color: $dropdown-link-hover-bg, $end-color: darken($dropdown-link-hover-bg, 5%));\n  background-color: darken($dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n  @include gradient-vertical($start-color: $dropdown-link-active-bg, $end-color: darken($dropdown-link-active-bg, 5%));\n  background-color: darken($dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n  @include gradient-vertical($start-color: lighten($navbar-default-bg, 10%), $end-color: $navbar-default-bg);\n  @include reset-filter; // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n  border-radius: $navbar-border-radius;\n  $shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);\n  @include box-shadow($shadow);\n\n  .navbar-nav > .open > a,\n  .navbar-nav > .active > a {\n    @include gradient-vertical($start-color: darken($navbar-default-link-active-bg, 5%), $end-color: darken($navbar-default-link-active-bg, 2%));\n    @include box-shadow(inset 0 3px 9px rgba(0, 0, 0, .075));\n  }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n  text-shadow: 0 1px 0 rgba(255, 255, 255, .25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n  @include gradient-vertical($start-color: lighten($navbar-inverse-bg, 10%), $end-color: $navbar-inverse-bg);\n  @include reset-filter; // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n  border-radius: $navbar-border-radius;\n  .navbar-nav > .open > a,\n  .navbar-nav > .active > a {\n    @include gradient-vertical($start-color: $navbar-inverse-link-active-bg, $end-color: lighten($navbar-inverse-link-active-bg, 2.5%));\n    @include box-shadow(inset 0 3px 9px rgba(0, 0, 0, .25));\n  }\n\n  .navbar-brand,\n  .navbar-nav > li > a {\n    text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);\n  }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: $grid-float-breakpoint-max) {\n  .navbar .navbar-nav .open .dropdown-menu > .active > a {\n    &,\n    &:hover,\n    &:focus {\n      color: #fff;\n      @include gradient-vertical($start-color: $dropdown-link-active-bg, $end-color: darken($dropdown-link-active-bg, 5%));\n    }\n  }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n  text-shadow: 0 1px 0 rgba(255, 255, 255, .2);\n  $shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);\n  @include box-shadow($shadow);\n}\n\n// Mixin for generating new styles\n@mixin alert-styles($color) {\n  @include gradient-vertical($start-color: $color, $end-color: darken($color, 7.5%));\n  border-color: darken($color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success    { @include alert-styles($alert-success-bg); }\n.alert-info       { @include alert-styles($alert-info-bg); }\n.alert-warning    { @include alert-styles($alert-warning-bg); }\n.alert-danger     { @include alert-styles($alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n  @include gradient-vertical($start-color: darken($progress-bg, 4%), $end-color: $progress-bg)\n}\n\n// Mixin for generating new styles\n@mixin progress-bar-styles($color) {\n  @include gradient-vertical($start-color: $color, $end-color: darken($color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar            { @include progress-bar-styles($progress-bar-bg); }\n.progress-bar-success    { @include progress-bar-styles($progress-bar-success-bg); }\n.progress-bar-info       { @include progress-bar-styles($progress-bar-info-bg); }\n.progress-bar-warning    { @include progress-bar-styles($progress-bar-warning-bg); }\n.progress-bar-danger     { @include progress-bar-styles($progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n  @include gradient-striped;\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n  border-radius: $border-radius-base;\n  @include box-shadow(0 1px 2px rgba(0, 0, 0, .075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n  text-shadow: 0 -1px 0 darken($list-group-active-bg, 10%);\n  @include gradient-vertical($start-color: $list-group-active-bg, $end-color: darken($list-group-active-bg, 7.5%));\n  border-color: darken($list-group-active-border, 7.5%);\n\n  .badge {\n    text-shadow: none;\n  }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n  @include box-shadow(0 1px 2px rgba(0, 0, 0, .05));\n}\n\n// Mixin for generating new styles\n@mixin panel-heading-styles($color) {\n  @include gradient-vertical($start-color: $color, $end-color: darken($color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading   { @include panel-heading-styles($panel-default-heading-bg); }\n.panel-primary > .panel-heading   { @include panel-heading-styles($panel-primary-heading-bg); }\n.panel-success > .panel-heading   { @include panel-heading-styles($panel-success-heading-bg); }\n.panel-info > .panel-heading      { @include panel-heading-styles($panel-info-heading-bg); }\n.panel-warning > .panel-heading   { @include panel-heading-styles($panel-warning-heading-bg); }\n.panel-danger > .panel-heading    { @include panel-heading-styles($panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n  @include gradient-vertical($start-color: darken($well-bg, 5%), $end-color: $well-bg);\n  border-color: darken($well-bg, 10%);\n  $shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);\n  @include box-shadow($shadow);\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_thumbnails.scss",
    "content": "//\n// Thumbnails\n// --------------------------------------------------\n\n\n// Mixin and adjust the regular image class\n.thumbnail {\n  display: block;\n  padding: $thumbnail-padding;\n  margin-bottom: $line-height-computed;\n  line-height: $line-height-base;\n  background-color: $thumbnail-bg;\n  border: 1px solid $thumbnail-border;\n  border-radius: $thumbnail-border-radius;\n  @include transition(border .2s ease-in-out);\n\n  > img,\n  a > img {\n    @include img-responsive;\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  // [converter] extracted a&:hover, a&:focus, a&.active to a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active\n\n  // Image captions\n  .caption {\n    padding: $thumbnail-caption-padding;\n    color: $thumbnail-caption-color;\n  }\n}\n\n// Add a hover state for linked versions only\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n  border-color: $link-color;\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_tooltip.scss",
    "content": "//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n  position: absolute;\n  z-index: $zindex-tooltip;\n  display: block;\n  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  @include reset-text;\n  font-size: $font-size-small;\n\n  @include opacity(0);\n\n  &.in { @include opacity($tooltip-opacity); }\n  &.top {\n    padding: $tooltip-arrow-width 0;\n    margin-top: -3px;\n  }\n  &.right {\n    padding: 0 $tooltip-arrow-width;\n    margin-left: 3px;\n  }\n  &.bottom {\n    padding: $tooltip-arrow-width 0;\n    margin-top: 3px;\n  }\n  &.left {\n    padding: 0 $tooltip-arrow-width;\n    margin-left: -3px;\n  }\n\n  // Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1\n  &.top .tooltip-arrow {\n    bottom: 0;\n    left: 50%;\n    margin-left: -$tooltip-arrow-width;\n    border-width: $tooltip-arrow-width $tooltip-arrow-width 0;\n    border-top-color: $tooltip-arrow-color;\n  }\n  &.top-left .tooltip-arrow {\n    right: $tooltip-arrow-width;\n    bottom: 0;\n    margin-bottom: -$tooltip-arrow-width;\n    border-width: $tooltip-arrow-width $tooltip-arrow-width 0;\n    border-top-color: $tooltip-arrow-color;\n  }\n  &.top-right .tooltip-arrow {\n    bottom: 0;\n    left: $tooltip-arrow-width;\n    margin-bottom: -$tooltip-arrow-width;\n    border-width: $tooltip-arrow-width $tooltip-arrow-width 0;\n    border-top-color: $tooltip-arrow-color;\n  }\n  &.right .tooltip-arrow {\n    top: 50%;\n    left: 0;\n    margin-top: -$tooltip-arrow-width;\n    border-width: $tooltip-arrow-width $tooltip-arrow-width $tooltip-arrow-width 0;\n    border-right-color: $tooltip-arrow-color;\n  }\n  &.left .tooltip-arrow {\n    top: 50%;\n    right: 0;\n    margin-top: -$tooltip-arrow-width;\n    border-width: $tooltip-arrow-width 0 $tooltip-arrow-width $tooltip-arrow-width;\n    border-left-color: $tooltip-arrow-color;\n  }\n  &.bottom .tooltip-arrow {\n    top: 0;\n    left: 50%;\n    margin-left: -$tooltip-arrow-width;\n    border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;\n    border-bottom-color: $tooltip-arrow-color;\n  }\n  &.bottom-left .tooltip-arrow {\n    top: 0;\n    right: $tooltip-arrow-width;\n    margin-top: -$tooltip-arrow-width;\n    border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;\n    border-bottom-color: $tooltip-arrow-color;\n  }\n  &.bottom-right .tooltip-arrow {\n    top: 0;\n    left: $tooltip-arrow-width;\n    margin-top: -$tooltip-arrow-width;\n    border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;\n    border-bottom-color: $tooltip-arrow-color;\n  }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n  max-width: $tooltip-max-width;\n  padding: 3px 8px;\n  color: $tooltip-color;\n  text-align: center;\n  background-color: $tooltip-bg;\n  border-radius: $border-radius-base;\n}\n\n// Arrows\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_type.scss",
    "content": "@use \"sass:math\";\n//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  font-family: $headings-font-family;\n  font-weight: $headings-font-weight;\n  line-height: $headings-line-height;\n  color: $headings-color;\n\n  small,\n  .small {\n    font-weight: 400;\n    line-height: 1;\n    color: $headings-small-color;\n  }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n  margin-top: $line-height-computed;\n  margin-bottom: math.div($line-height-computed, 2);\n\n  small,\n  .small {\n    font-size: 65%;\n  }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  margin-top: math.div($line-height-computed, 2);\n  margin-bottom: math.div($line-height-computed, 2);\n\n  small,\n  .small {\n    font-size: 75%;\n  }\n}\n\nh1, .h1 { font-size: $font-size-h1; }\nh2, .h2 { font-size: $font-size-h2; }\nh3, .h3 { font-size: $font-size-h3; }\nh4, .h4 { font-size: $font-size-h4; }\nh5, .h5 { font-size: $font-size-h5; }\nh6, .h6 { font-size: $font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n  margin: 0 0 math.div($line-height-computed, 2);\n}\n\n.lead {\n  margin-bottom: $line-height-computed;\n  font-size: floor(($font-size-base * 1.15));\n  font-weight: 300;\n  line-height: 1.4;\n\n  @media (min-width: $screen-sm-min) {\n    font-size: ($font-size-base * 1.5);\n  }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: math.div(12px small font, 14px base font) * 100% = about 85%\nsmall,\n.small {\n  font-size: floor(math.div(100% * $font-size-small, $font-size-base));\n}\n\nmark,\n.mark {\n  padding: .2em;\n  background-color: $state-warning-bg;\n}\n\n// Alignment\n.text-left           { text-align: left; }\n.text-right          { text-align: right; }\n.text-center         { text-align: center; }\n.text-justify        { text-align: justify; }\n.text-nowrap         { white-space: nowrap; }\n\n// Transformation\n.text-lowercase      { text-transform: lowercase; }\n.text-uppercase      { text-transform: uppercase; }\n.text-capitalize     { text-transform: capitalize; }\n\n// Contextual colors\n.text-muted {\n  color: $text-muted;\n}\n\n@include text-emphasis-variant('.text-primary', $brand-primary);\n\n@include text-emphasis-variant('.text-success', $state-success-text);\n\n@include text-emphasis-variant('.text-info', $state-info-text);\n\n@include text-emphasis-variant('.text-warning', $state-warning-text);\n\n@include text-emphasis-variant('.text-danger', $state-danger-text);\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n  // Given the contrast here, this is the only class to have its color inverted\n  // automatically.\n  color: #fff;\n}\n@include bg-variant('.bg-primary', $brand-primary);\n\n@include bg-variant('.bg-success', $state-success-bg);\n\n@include bg-variant('.bg-info', $state-info-bg);\n\n@include bg-variant('.bg-warning', $state-warning-bg);\n\n@include bg-variant('.bg-danger', $state-danger-bg);\n\n\n// Page header\n// -------------------------\n\n.page-header {\n  padding-bottom: (math.div($line-height-computed, 2) - 1);\n  margin: ($line-height-computed * 2) 0 $line-height-computed;\n  border-bottom: 1px solid $page-header-border-color;\n}\n\n\n// Lists\n// -------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n  margin-top: 0;\n  margin-bottom: math.div($line-height-computed, 2);\n  ul,\n  ol {\n    margin-bottom: 0;\n  }\n}\n\n// List options\n\n// [converter] extracted from `.list-unstyled` for libsass compatibility\n@mixin list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n// [converter] extracted as `@mixin list-unstyled` for libsass compatibility\n.list-unstyled {\n  @include list-unstyled;\n}\n\n\n// Inline turns list items into inline-block\n.list-inline {\n  @include list-unstyled;\n  margin-left: -5px;\n\n  > li {\n    display: inline-block;\n    padding-right: 5px;\n    padding-left: 5px;\n  }\n}\n\n// Description Lists\ndl {\n  margin-top: 0; // Remove browser default\n  margin-bottom: $line-height-computed;\n}\ndt,\ndd {\n  line-height: $line-height-base;\n}\ndt {\n  font-weight: 700;\n}\ndd {\n  margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n.dl-horizontal {\n  dd {\n    @include clearfix; // Clear the floated `dt` if an empty `dd` is present\n  }\n\n  @media (min-width: $dl-horizontal-breakpoint) {\n    dt {\n      float: left;\n      width: ($dl-horizontal-offset - 20);\n      clear: left;\n      text-align: right;\n      @include text-overflow;\n    }\n    dd {\n      margin-left: $dl-horizontal-offset;\n    }\n  }\n}\n\n\n// Misc\n// -------------------------\n\n// Abbreviations and acronyms\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[title],\nabbr[data-original-title] {\n  cursor: help;\n}\n\n.initialism {\n  font-size: 90%;\n  @extend .text-uppercase;\n}\n\n// Blockquotes\nblockquote {\n  padding: math.div($line-height-computed, 2) $line-height-computed;\n  margin: 0 0 $line-height-computed;\n  font-size: $blockquote-font-size;\n  border-left: 5px solid $blockquote-border-color;\n\n  p,\n  ul,\n  ol {\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Note: Deprecated small and .small as of v3.1.0\n  // Context: https://github.com/twbs/bootstrap/issues/11660\n  footer,\n  small,\n  .small {\n    display: block;\n    font-size: 80%; // back to default font-size\n    line-height: $line-height-base;\n    color: $blockquote-small-color;\n\n    &:before {\n      content: \"\\2014 \\00A0\"; // em dash, nbsp\n    }\n  }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n  padding-right: 15px;\n  padding-left: 0;\n  text-align: right;\n  border-right: 5px solid $blockquote-border-color;\n  border-left: 0;\n\n  // Account for citation\n  footer,\n  small,\n  .small {\n    &:before { content: \"\"; }\n    &:after {\n      content: \"\\00A0 \\2014\"; // nbsp, em dash\n    }\n  }\n}\n\n// Addresses\naddress {\n  margin-bottom: $line-height-computed;\n  font-style: normal;\n  line-height: $line-height-base;\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_utilities.scss",
    "content": "//\n// Utility classes\n// --------------------------------------------------\n\n\n// Floats\n// -------------------------\n\n.clearfix {\n  @include clearfix;\n}\n.center-block {\n  @include center-block;\n}\n.pull-right {\n  float: right !important;\n}\n.pull-left {\n  float: left !important;\n}\n\n\n// Toggling content\n// -------------------------\n\n// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1\n.hide {\n  display: none !important;\n}\n.show {\n  display: block !important;\n}\n.invisible {\n  visibility: hidden;\n}\n.text-hide {\n  @include text-hide;\n}\n\n\n// Hide from screenreaders and browsers\n//\n// Credit: HTML5 Boilerplate\n\n.hidden {\n  display: none !important;\n}\n\n\n// For Affix plugin\n// -------------------------\n\n.affix {\n  position: fixed;\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/_variables.scss",
    "content": "$bootstrap-sass-asset-helper: false !default;\n@use \"sass:math\";\n//\n// Variables\n// --------------------------------------------------\n\n\n//== Colors\n//\n//## Gray and brand colors for use across Bootstrap.\n\n$gray-base:              #000 !default;\n$gray-darker:            lighten($gray-base, 13.5%) !default; // #222\n$gray-dark:              lighten($gray-base, 20%) !default;   // #333\n$gray:                   lighten($gray-base, 33.5%) !default; // #555\n$gray-light:             lighten($gray-base, 46.7%) !default; // #777\n$gray-lighter:           lighten($gray-base, 93.5%) !default; // #eee\n\n$brand-primary:         darken(#428bca, 6.5%) !default; // #337ab7\n$brand-success:         #5cb85c !default;\n$brand-info:            #5bc0de !default;\n$brand-warning:         #f0ad4e !default;\n$brand-danger:          #d9534f !default;\n\n\n//== Scaffolding\n//\n//## Settings for some of the most global styles.\n\n//** Background color for `<body>`.\n$body-bg:               #fff !default;\n//** Global text color on `<body>`.\n$text-color:            $gray-dark !default;\n\n//** Global textual link color.\n$link-color:            $brand-primary !default;\n//** Link hover color set via `darken()` function.\n$link-hover-color:      darken($link-color, 15%) !default;\n//** Link hover decoration.\n$link-hover-decoration: underline !default;\n\n\n//== Typography\n//\n//## Font, line-height, and color for body text, headings, and more.\n\n$font-family-sans-serif:  \"Helvetica Neue\", Helvetica, Arial, sans-serif !default;\n$font-family-serif:       Georgia, \"Times New Roman\", Times, serif !default;\n//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.\n$font-family-monospace:   Menlo, Monaco, Consolas, \"Courier New\", monospace !default;\n$font-family-base:        $font-family-sans-serif !default;\n\n$font-size-base:          14px !default;\n$font-size-large:         ceil(($font-size-base * 1.25)) !default; // ~18px\n$font-size-small:         ceil(($font-size-base * .85)) !default; // ~12px\n\n$font-size-h1:            floor(($font-size-base * 2.6)) !default; // ~36px\n$font-size-h2:            floor(($font-size-base * 2.15)) !default; // ~30px\n$font-size-h3:            ceil(($font-size-base * 1.7)) !default; // ~24px\n$font-size-h4:            ceil(($font-size-base * 1.25)) !default; // ~18px\n$font-size-h5:            $font-size-base !default;\n$font-size-h6:            ceil(($font-size-base * .85)) !default; // ~12px\n\n//** Unit-less `line-height` for use in components like buttons.\n$line-height-base:        1.428571429 !default; // 20/14\n//** Computed \"line-height\" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.\n$line-height-computed:    floor(($font-size-base * $line-height-base)) !default; // ~20px\n\n//** By default, this inherits from the `<body>`.\n$headings-font-family:    inherit !default;\n$headings-font-weight:    500 !default;\n$headings-line-height:    1.1 !default;\n$headings-color:          inherit !default;\n\n\n//== Iconography\n//\n//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.\n\n//** Load fonts from this directory.\n\n// [converter] If $bootstrap-sass-asset-helper if used, provide path relative to the assets load path.\n// [converter] This is because some asset helpers, such as Sprockets, do not work with file-relative paths.\n$icon-font-path: if($bootstrap-sass-asset-helper, \"bootstrap/\", \"../fonts/bootstrap/\") !default;\n\n//** File name for all font files.\n$icon-font-name:          \"glyphicons-halflings-regular\" !default;\n//** Element ID within SVG icon file.\n$icon-font-svg-id:        \"glyphicons_halflingsregular\" !default;\n\n\n//== Components\n//\n//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).\n\n$padding-base-vertical:     6px !default;\n$padding-base-horizontal:   12px !default;\n\n$padding-large-vertical:    10px !default;\n$padding-large-horizontal:  16px !default;\n\n$padding-small-vertical:    5px !default;\n$padding-small-horizontal:  10px !default;\n\n$padding-xs-vertical:       1px !default;\n$padding-xs-horizontal:     5px !default;\n\n$line-height-large:         1.3333333 !default; // extra decimals for Win 8.1 Chrome\n$line-height-small:         1.5 !default;\n\n$border-radius-base:        4px !default;\n$border-radius-large:       6px !default;\n$border-radius-small:       3px !default;\n\n//** Global color for active items (e.g., navs or dropdowns).\n$component-active-color:    #fff !default;\n//** Global background color for active items (e.g., navs or dropdowns).\n$component-active-bg:       $brand-primary !default;\n\n//** Width of the `border` for generating carets that indicate dropdowns.\n$caret-width-base:          4px !default;\n//** Carets increase slightly in size for larger components.\n$caret-width-large:         5px !default;\n\n\n//== Tables\n//\n//## Customizes the `.table` component with basic values, each used across all table variations.\n\n//** Padding for `<th>`s and `<td>`s.\n$table-cell-padding:            8px !default;\n//** Padding for cells in `.table-condensed`.\n$table-condensed-cell-padding:  5px !default;\n\n//** Default background color used for all tables.\n$table-bg:                      transparent !default;\n//** Background color used for `.table-striped`.\n$table-bg-accent:               #f9f9f9 !default;\n//** Background color used for `.table-hover`.\n$table-bg-hover:                #f5f5f5 !default;\n$table-bg-active:               $table-bg-hover !default;\n\n//** Border color for table and cell borders.\n$table-border-color:            #ddd !default;\n\n\n//== Buttons\n//\n//## For each of Bootstrap's buttons, define text, background and border color.\n\n$btn-font-weight:                normal !default;\n\n$btn-default-color:              #333 !default;\n$btn-default-bg:                 #fff !default;\n$btn-default-border:             #ccc !default;\n\n$btn-primary-color:              #fff !default;\n$btn-primary-bg:                 $brand-primary !default;\n$btn-primary-border:             darken($btn-primary-bg, 5%) !default;\n\n$btn-success-color:              #fff !default;\n$btn-success-bg:                 $brand-success !default;\n$btn-success-border:             darken($btn-success-bg, 5%) !default;\n\n$btn-info-color:                 #fff !default;\n$btn-info-bg:                    $brand-info !default;\n$btn-info-border:                darken($btn-info-bg, 5%) !default;\n\n$btn-warning-color:              #fff !default;\n$btn-warning-bg:                 $brand-warning !default;\n$btn-warning-border:             darken($btn-warning-bg, 5%) !default;\n\n$btn-danger-color:               #fff !default;\n$btn-danger-bg:                  $brand-danger !default;\n$btn-danger-border:              darken($btn-danger-bg, 5%) !default;\n\n$btn-link-disabled-color:        $gray-light !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius-base:         $border-radius-base !default;\n$btn-border-radius-large:        $border-radius-large !default;\n$btn-border-radius-small:        $border-radius-small !default;\n\n\n//== Forms\n//\n//##\n\n//** `<input>` background color\n$input-bg:                       #fff !default;\n//** `<input disabled>` background color\n$input-bg-disabled:              $gray-lighter !default;\n\n//** Text color for `<input>`s\n$input-color:                    $gray !default;\n//** `<input>` border color\n$input-border:                   #ccc !default;\n\n// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4\n//** Default `.form-control` border radius\n// This has no effect on `<select>`s in some browsers, due to the limited stylability of `<select>`s in CSS.\n$input-border-radius:            $border-radius-base !default;\n//** Large `.form-control` border radius\n$input-border-radius-large:      $border-radius-large !default;\n//** Small `.form-control` border radius\n$input-border-radius-small:      $border-radius-small !default;\n\n//** Border color for inputs on focus\n$input-border-focus:             #66afe9 !default;\n\n//** Placeholder text color\n$input-color-placeholder:        #999 !default;\n\n//** Default `.form-control` height\n$input-height-base:              ($line-height-computed + ($padding-base-vertical * 2) + 2) !default;\n//** Large `.form-control` height\n$input-height-large:             (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default;\n//** Small `.form-control` height\n$input-height-small:             (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default;\n\n//** `.form-group` margin\n$form-group-margin-bottom:       15px !default;\n\n$legend-color:                   $gray-dark !default;\n$legend-border-color:            #e5e5e5 !default;\n\n//** Background color for textual input addons\n$input-group-addon-bg:           $gray-lighter !default;\n//** Border color for textual input addons\n$input-group-addon-border-color: $input-border !default;\n\n//** Disabled cursor for form controls and buttons.\n$cursor-disabled:                not-allowed !default;\n\n\n//== Dropdowns\n//\n//## Dropdown menu container and contents.\n\n//** Background for the dropdown menu.\n$dropdown-bg:                    #fff !default;\n//** Dropdown menu `border-color`.\n$dropdown-border:                rgba(0, 0, 0, .15) !default;\n//** Dropdown menu `border-color` **for IE8**.\n$dropdown-fallback-border:       #ccc !default;\n//** Divider color for between dropdown items.\n$dropdown-divider-bg:            #e5e5e5 !default;\n\n//** Dropdown link text color.\n$dropdown-link-color:            $gray-dark !default;\n//** Hover color for dropdown links.\n$dropdown-link-hover-color:      darken($gray-dark, 5%) !default;\n//** Hover background for dropdown links.\n$dropdown-link-hover-bg:         #f5f5f5 !default;\n\n//** Active dropdown menu item text color.\n$dropdown-link-active-color:     $component-active-color !default;\n//** Active dropdown menu item background color.\n$dropdown-link-active-bg:        $component-active-bg !default;\n\n//** Disabled dropdown menu item background color.\n$dropdown-link-disabled-color:   $gray-light !default;\n\n//** Text color for headers within dropdown menus.\n$dropdown-header-color:          $gray-light !default;\n\n//** Deprecated `$dropdown-caret-color` as of v3.1.0\n$dropdown-caret-color:           #000 !default;\n\n\n//-- Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n//\n// Note: These variables are not generated into the Customizer.\n\n$zindex-navbar:            1000 !default;\n$zindex-dropdown:          1000 !default;\n$zindex-popover:           1060 !default;\n$zindex-tooltip:           1070 !default;\n$zindex-navbar-fixed:      1030 !default;\n$zindex-modal-background:  1040 !default;\n$zindex-modal:             1050 !default;\n\n\n//== Media queries breakpoints\n//\n//## Define the breakpoints at which your layout will change, adapting to different screen sizes.\n\n// Extra small screen / phone\n//** Deprecated `$screen-xs` as of v3.0.1\n$screen-xs:                  480px !default;\n//** Deprecated `$screen-xs-min` as of v3.2.0\n$screen-xs-min:              $screen-xs !default;\n//** Deprecated `$screen-phone` as of v3.0.1\n$screen-phone:               $screen-xs-min !default;\n\n// Small screen / tablet\n//** Deprecated `$screen-sm` as of v3.0.1\n$screen-sm:                  768px !default;\n$screen-sm-min:              $screen-sm !default;\n//** Deprecated `$screen-tablet` as of v3.0.1\n$screen-tablet:              $screen-sm-min !default;\n\n// Medium screen / desktop\n//** Deprecated `$screen-md` as of v3.0.1\n$screen-md:                  992px !default;\n$screen-md-min:              $screen-md !default;\n//** Deprecated `$screen-desktop` as of v3.0.1\n$screen-desktop:             $screen-md-min !default;\n\n// Large screen / wide desktop\n//** Deprecated `$screen-lg` as of v3.0.1\n$screen-lg:                  1200px !default;\n$screen-lg-min:              $screen-lg !default;\n//** Deprecated `$screen-lg-desktop` as of v3.0.1\n$screen-lg-desktop:          $screen-lg-min !default;\n\n// So media queries don't overlap when required, provide a maximum\n$screen-xs-max:              ($screen-sm-min - 1) !default;\n$screen-sm-max:              ($screen-md-min - 1) !default;\n$screen-md-max:              ($screen-lg-min - 1) !default;\n\n\n//== Grid system\n//\n//## Define your custom responsive grid.\n\n//** Number of columns in the grid.\n$grid-columns:              12 !default;\n//** Padding between columns. Gets divided in half for the left and right.\n$grid-gutter-width:         30px !default;\n// Navbar collapse\n//** Point at which the navbar becomes uncollapsed.\n$grid-float-breakpoint:     $screen-sm-min !default;\n//** Point at which the navbar begins collapsing.\n$grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default;\n\n\n//== Container sizes\n//\n//## Define the maximum width of `.container` for different screen sizes.\n\n// Small screen / tablet\n$container-tablet:             (720px + $grid-gutter-width) !default;\n//** For `$screen-sm-min` and up.\n$container-sm:                 $container-tablet !default;\n\n// Medium screen / desktop\n$container-desktop:            (940px + $grid-gutter-width) !default;\n//** For `$screen-md-min` and up.\n$container-md:                 $container-desktop !default;\n\n// Large screen / wide desktop\n$container-large-desktop:      (1140px + $grid-gutter-width) !default;\n//** For `$screen-lg-min` and up.\n$container-lg:                 $container-large-desktop !default;\n\n\n//== Navbar\n//\n//##\n\n// Basics of a navbar\n$navbar-height:                    50px !default;\n$navbar-margin-bottom:             $line-height-computed !default;\n$navbar-border-radius:             $border-radius-base !default;\n$navbar-padding-horizontal:        floor(math.div($grid-gutter-width, 2)) !default;\n$navbar-padding-vertical:          math.div(($navbar-height - $line-height-computed), 2) !default;\n$navbar-collapse-max-height:       340px !default;\n\n$navbar-default-color:             #777 !default;\n$navbar-default-bg:                #f8f8f8 !default;\n$navbar-default-border:            darken($navbar-default-bg, 6.5%) !default;\n\n// Navbar links\n$navbar-default-link-color:                #777 !default;\n$navbar-default-link-hover-color:          #333 !default;\n$navbar-default-link-hover-bg:             transparent !default;\n$navbar-default-link-active-color:         #555 !default;\n$navbar-default-link-active-bg:            darken($navbar-default-bg, 6.5%) !default;\n$navbar-default-link-disabled-color:       #ccc !default;\n$navbar-default-link-disabled-bg:          transparent !default;\n\n// Navbar brand label\n$navbar-default-brand-color:               $navbar-default-link-color !default;\n$navbar-default-brand-hover-color:         darken($navbar-default-brand-color, 10%) !default;\n$navbar-default-brand-hover-bg:            transparent !default;\n\n// Navbar toggle\n$navbar-default-toggle-hover-bg:           #ddd !default;\n$navbar-default-toggle-icon-bar-bg:        #888 !default;\n$navbar-default-toggle-border-color:       #ddd !default;\n\n\n//=== Inverted navbar\n// Reset inverted navbar basics\n$navbar-inverse-color:                      lighten($gray-light, 15%) !default;\n$navbar-inverse-bg:                         #222 !default;\n$navbar-inverse-border:                     darken($navbar-inverse-bg, 10%) !default;\n\n// Inverted navbar links\n$navbar-inverse-link-color:                 lighten($gray-light, 15%) !default;\n$navbar-inverse-link-hover-color:           #fff !default;\n$navbar-inverse-link-hover-bg:              transparent !default;\n$navbar-inverse-link-active-color:          $navbar-inverse-link-hover-color !default;\n$navbar-inverse-link-active-bg:             darken($navbar-inverse-bg, 10%) !default;\n$navbar-inverse-link-disabled-color:        #444 !default;\n$navbar-inverse-link-disabled-bg:           transparent !default;\n\n// Inverted navbar brand label\n$navbar-inverse-brand-color:                $navbar-inverse-link-color !default;\n$navbar-inverse-brand-hover-color:          #fff !default;\n$navbar-inverse-brand-hover-bg:             transparent !default;\n\n// Inverted navbar toggle\n$navbar-inverse-toggle-hover-bg:            #333 !default;\n$navbar-inverse-toggle-icon-bar-bg:         #fff !default;\n$navbar-inverse-toggle-border-color:        #333 !default;\n\n\n//== Navs\n//\n//##\n\n//=== Shared nav styles\n$nav-link-padding:                          10px 15px !default;\n$nav-link-hover-bg:                         $gray-lighter !default;\n\n$nav-disabled-link-color:                   $gray-light !default;\n$nav-disabled-link-hover-color:             $gray-light !default;\n\n//== Tabs\n$nav-tabs-border-color:                     #ddd !default;\n\n$nav-tabs-link-hover-border-color:          $gray-lighter !default;\n\n$nav-tabs-active-link-hover-bg:             $body-bg !default;\n$nav-tabs-active-link-hover-color:          $gray !default;\n$nav-tabs-active-link-hover-border-color:   #ddd !default;\n\n$nav-tabs-justified-link-border-color:            #ddd !default;\n$nav-tabs-justified-active-link-border-color:     $body-bg !default;\n\n//== Pills\n$nav-pills-border-radius:                   $border-radius-base !default;\n$nav-pills-active-link-hover-bg:            $component-active-bg !default;\n$nav-pills-active-link-hover-color:         $component-active-color !default;\n\n\n//== Pagination\n//\n//##\n\n$pagination-color:                     $link-color !default;\n$pagination-bg:                        #fff !default;\n$pagination-border:                    #ddd !default;\n\n$pagination-hover-color:               $link-hover-color !default;\n$pagination-hover-bg:                  $gray-lighter !default;\n$pagination-hover-border:              #ddd !default;\n\n$pagination-active-color:              #fff !default;\n$pagination-active-bg:                 $brand-primary !default;\n$pagination-active-border:             $brand-primary !default;\n\n$pagination-disabled-color:            $gray-light !default;\n$pagination-disabled-bg:               #fff !default;\n$pagination-disabled-border:           #ddd !default;\n\n\n//== Pager\n//\n//##\n\n$pager-bg:                             $pagination-bg !default;\n$pager-border:                         $pagination-border !default;\n$pager-border-radius:                  15px !default;\n\n$pager-hover-bg:                       $pagination-hover-bg !default;\n\n$pager-active-bg:                      $pagination-active-bg !default;\n$pager-active-color:                   $pagination-active-color !default;\n\n$pager-disabled-color:                 $pagination-disabled-color !default;\n\n\n//== Jumbotron\n//\n//##\n\n$jumbotron-padding:              30px !default;\n$jumbotron-color:                inherit !default;\n$jumbotron-bg:                   $gray-lighter !default;\n$jumbotron-heading-color:        inherit !default;\n$jumbotron-font-size:            ceil(($font-size-base * 1.5)) !default;\n$jumbotron-heading-font-size:    ceil(($font-size-base * 4.5)) !default;\n\n\n//== Form states and alerts\n//\n//## Define colors for form feedback states and, by default, alerts.\n\n$state-success-text:             #3c763d !default;\n$state-success-bg:               #dff0d8 !default;\n$state-success-border:           darken(adjust-hue($state-success-bg, -10), 5%) !default;\n\n$state-info-text:                #31708f !default;\n$state-info-bg:                  #d9edf7 !default;\n$state-info-border:              darken(adjust-hue($state-info-bg, -10), 7%) !default;\n\n$state-warning-text:             #8a6d3b !default;\n$state-warning-bg:               #fcf8e3 !default;\n$state-warning-border:           darken(adjust-hue($state-warning-bg, -10), 5%) !default;\n\n$state-danger-text:              #a94442 !default;\n$state-danger-bg:                #f2dede !default;\n$state-danger-border:            darken(adjust-hue($state-danger-bg, -10), 5%) !default;\n\n\n//== Tooltips\n//\n//##\n\n//** Tooltip max width\n$tooltip-max-width:           200px !default;\n//** Tooltip text color\n$tooltip-color:               #fff !default;\n//** Tooltip background color\n$tooltip-bg:                  #000 !default;\n$tooltip-opacity:             .9 !default;\n\n//** Tooltip arrow width\n$tooltip-arrow-width:         5px !default;\n//** Tooltip arrow color\n$tooltip-arrow-color:         $tooltip-bg !default;\n\n\n//== Popovers\n//\n//##\n\n//** Popover body background color\n$popover-bg:                          #fff !default;\n//** Popover maximum width\n$popover-max-width:                   276px !default;\n//** Popover border color\n$popover-border-color:                rgba(0, 0, 0, .2) !default;\n//** Popover fallback border color\n$popover-fallback-border-color:       #ccc !default;\n\n//** Popover title background color\n$popover-title-bg:                    darken($popover-bg, 3%) !default;\n\n//** Popover arrow width\n$popover-arrow-width:                 10px !default;\n//** Popover arrow color\n$popover-arrow-color:                 $popover-bg !default;\n\n//** Popover outer arrow width\n$popover-arrow-outer-width:           ($popover-arrow-width + 1) !default;\n//** Popover outer arrow color\n$popover-arrow-outer-color:           fade_in($popover-border-color, 0.05) !default;\n//** Popover outer arrow fallback color\n$popover-arrow-outer-fallback-color:  darken($popover-fallback-border-color, 20%) !default;\n\n\n//== Labels\n//\n//##\n\n//** Default label background color\n$label-default-bg:            $gray-light !default;\n//** Primary label background color\n$label-primary-bg:            $brand-primary !default;\n//** Success label background color\n$label-success-bg:            $brand-success !default;\n//** Info label background color\n$label-info-bg:               $brand-info !default;\n//** Warning label background color\n$label-warning-bg:            $brand-warning !default;\n//** Danger label background color\n$label-danger-bg:             $brand-danger !default;\n\n//** Default label text color\n$label-color:                 #fff !default;\n//** Default text color of a linked label\n$label-link-hover-color:      #fff !default;\n\n\n//== Modals\n//\n//##\n\n//** Padding applied to the modal body\n$modal-inner-padding:         15px !default;\n\n//** Padding applied to the modal title\n$modal-title-padding:         15px !default;\n//** Modal title line-height\n$modal-title-line-height:     $line-height-base !default;\n\n//** Background color of modal content area\n$modal-content-bg:                             #fff !default;\n//** Modal content border color\n$modal-content-border-color:                   rgba(0, 0, 0, .2) !default;\n//** Modal content border color **for IE8**\n$modal-content-fallback-border-color:          #999 !default;\n\n//** Modal backdrop background color\n$modal-backdrop-bg:           #000 !default;\n//** Modal backdrop opacity\n$modal-backdrop-opacity:      .5 !default;\n//** Modal header border color\n$modal-header-border-color:   #e5e5e5 !default;\n//** Modal footer border color\n$modal-footer-border-color:   $modal-header-border-color !default;\n\n$modal-lg:                    900px !default;\n$modal-md:                    600px !default;\n$modal-sm:                    300px !default;\n\n\n//== Alerts\n//\n//## Define alert colors, border radius, and padding.\n\n$alert-padding:               15px !default;\n$alert-border-radius:         $border-radius-base !default;\n$alert-link-font-weight:      bold !default;\n\n$alert-success-bg:            $state-success-bg !default;\n$alert-success-text:          $state-success-text !default;\n$alert-success-border:        $state-success-border !default;\n\n$alert-info-bg:               $state-info-bg !default;\n$alert-info-text:             $state-info-text !default;\n$alert-info-border:           $state-info-border !default;\n\n$alert-warning-bg:            $state-warning-bg !default;\n$alert-warning-text:          $state-warning-text !default;\n$alert-warning-border:        $state-warning-border !default;\n\n$alert-danger-bg:             $state-danger-bg !default;\n$alert-danger-text:           $state-danger-text !default;\n$alert-danger-border:         $state-danger-border !default;\n\n\n//== Progress bars\n//\n//##\n\n//** Background color of the whole progress component\n$progress-bg:                 #f5f5f5 !default;\n//** Progress bar text color\n$progress-bar-color:          #fff !default;\n//** Variable for setting rounded corners on progress bar.\n$progress-border-radius:      $border-radius-base !default;\n\n//** Default progress bar color\n$progress-bar-bg:             $brand-primary !default;\n//** Success progress bar color\n$progress-bar-success-bg:     $brand-success !default;\n//** Warning progress bar color\n$progress-bar-warning-bg:     $brand-warning !default;\n//** Danger progress bar color\n$progress-bar-danger-bg:      $brand-danger !default;\n//** Info progress bar color\n$progress-bar-info-bg:        $brand-info !default;\n\n\n//== List group\n//\n//##\n\n//** Background color on `.list-group-item`\n$list-group-bg:                 #fff !default;\n//** `.list-group-item` border color\n$list-group-border:             #ddd !default;\n//** List group border radius\n$list-group-border-radius:      $border-radius-base !default;\n\n//** Background color of single list items on hover\n$list-group-hover-bg:           #f5f5f5 !default;\n//** Text color of active list items\n$list-group-active-color:       $component-active-color !default;\n//** Background color of active list items\n$list-group-active-bg:          $component-active-bg !default;\n//** Border color of active list elements\n$list-group-active-border:      $list-group-active-bg !default;\n//** Text color for content within active list items\n$list-group-active-text-color:  lighten($list-group-active-bg, 40%) !default;\n\n//** Text color of disabled list items\n$list-group-disabled-color:      $gray-light !default;\n//** Background color of disabled list items\n$list-group-disabled-bg:         $gray-lighter !default;\n//** Text color for content within disabled list items\n$list-group-disabled-text-color: $list-group-disabled-color !default;\n\n$list-group-link-color:         #555 !default;\n$list-group-link-hover-color:   $list-group-link-color !default;\n$list-group-link-heading-color: #333 !default;\n\n\n//== Panels\n//\n//##\n\n$panel-bg:                    #fff !default;\n$panel-body-padding:          15px !default;\n$panel-heading-padding:       10px 15px !default;\n$panel-footer-padding:        $panel-heading-padding !default;\n$panel-border-radius:         $border-radius-base !default;\n\n//** Border color for elements within panels\n$panel-inner-border:          #ddd !default;\n$panel-footer-bg:             #f5f5f5 !default;\n\n$panel-default-text:          $gray-dark !default;\n$panel-default-border:        #ddd !default;\n$panel-default-heading-bg:    #f5f5f5 !default;\n\n$panel-primary-text:          #fff !default;\n$panel-primary-border:        $brand-primary !default;\n$panel-primary-heading-bg:    $brand-primary !default;\n\n$panel-success-text:          $state-success-text !default;\n$panel-success-border:        $state-success-border !default;\n$panel-success-heading-bg:    $state-success-bg !default;\n\n$panel-info-text:             $state-info-text !default;\n$panel-info-border:           $state-info-border !default;\n$panel-info-heading-bg:       $state-info-bg !default;\n\n$panel-warning-text:          $state-warning-text !default;\n$panel-warning-border:        $state-warning-border !default;\n$panel-warning-heading-bg:    $state-warning-bg !default;\n\n$panel-danger-text:           $state-danger-text !default;\n$panel-danger-border:         $state-danger-border !default;\n$panel-danger-heading-bg:     $state-danger-bg !default;\n\n\n//== Thumbnails\n//\n//##\n\n//** Padding around the thumbnail image\n$thumbnail-padding:           4px !default;\n//** Thumbnail background color\n$thumbnail-bg:                $body-bg !default;\n//** Thumbnail border color\n$thumbnail-border:            #ddd !default;\n//** Thumbnail border radius\n$thumbnail-border-radius:     $border-radius-base !default;\n\n//** Custom text color for thumbnail captions\n$thumbnail-caption-color:     $text-color !default;\n//** Padding around the thumbnail caption\n$thumbnail-caption-padding:   9px !default;\n\n\n//== Wells\n//\n//##\n\n$well-bg:                     #f5f5f5 !default;\n$well-border:                 darken($well-bg, 7%) !default;\n\n\n//== Badges\n//\n//##\n\n$badge-color:                 #fff !default;\n//** Linked badge text color on hover\n$badge-link-hover-color:      #fff !default;\n$badge-bg:                    $gray-light !default;\n\n//** Badge text color in active nav link\n$badge-active-color:          $link-color !default;\n//** Badge background color in active nav link\n$badge-active-bg:             #fff !default;\n\n$badge-font-weight:           bold !default;\n$badge-line-height:           1 !default;\n$badge-border-radius:         10px !default;\n\n\n//== Breadcrumbs\n//\n//##\n\n$breadcrumb-padding-vertical:   8px !default;\n$breadcrumb-padding-horizontal: 15px !default;\n//** Breadcrumb background color\n$breadcrumb-bg:                 #f5f5f5 !default;\n//** Breadcrumb text color\n$breadcrumb-color:              #ccc !default;\n//** Text color of current page in the breadcrumb\n$breadcrumb-active-color:       $gray-light !default;\n//** Textual separator for between breadcrumb elements\n$breadcrumb-separator:          \"/\" !default;\n\n\n//== Carousel\n//\n//##\n\n$carousel-text-shadow:                        0 1px 2px rgba(0, 0, 0, .6) !default;\n\n$carousel-control-color:                      #fff !default;\n$carousel-control-width:                      15% !default;\n$carousel-control-opacity:                    .5 !default;\n$carousel-control-font-size:                  20px !default;\n\n$carousel-indicator-active-bg:                #fff !default;\n$carousel-indicator-border-color:             #fff !default;\n\n$carousel-caption-color:                      #fff !default;\n\n\n//== Close\n//\n//##\n\n$close-font-weight:           bold !default;\n$close-color:                 #000 !default;\n$close-text-shadow:           0 1px 0 #fff !default;\n\n\n//== Code\n//\n//##\n\n$code-color:                  #c7254e !default;\n$code-bg:                     #f9f2f4 !default;\n\n$kbd-color:                   #fff !default;\n$kbd-bg:                      #333 !default;\n\n$pre-bg:                      #f5f5f5 !default;\n$pre-color:                   $gray-dark !default;\n$pre-border-color:            #ccc !default;\n$pre-scrollable-max-height:   340px !default;\n\n\n//== Type\n//\n//##\n\n//** Horizontal offset for forms and lists.\n$component-offset-horizontal: 180px !default;\n//** Text muted color\n$text-muted:                  $gray-light !default;\n//** Abbreviations and acronyms border color\n$abbr-border-color:           $gray-light !default;\n//** Headings small color\n$headings-small-color:        $gray-light !default;\n//** Blockquote small color\n$blockquote-small-color:      $gray-light !default;\n//** Blockquote font size\n$blockquote-font-size:        ($font-size-base * 1.25) !default;\n//** Blockquote border color\n$blockquote-border-color:     $gray-lighter !default;\n//** Page header border color\n$page-header-border-color:    $gray-lighter !default;\n//** Width of horizontal description list titles\n$dl-horizontal-offset:        $component-offset-horizontal !default;\n//** Point at which .dl-horizontal becomes horizontal\n$dl-horizontal-breakpoint:    $grid-float-breakpoint !default;\n//** Horizontal line color.\n$hr-border:                   $gray-lighter !default;\n"
  },
  {
    "path": "lib/bootstrap-sass/_wells.scss",
    "content": "//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n  min-height: 20px;\n  padding: 19px;\n  margin-bottom: 20px;\n  background-color: $well-bg;\n  border: 1px solid $well-border;\n  border-radius: $border-radius-base;\n  @include box-shadow(inset 0 1px 1px rgba(0, 0, 0, .05));\n  blockquote {\n    border-color: #ddd;\n    border-color: rgba(0, 0, 0, .15);\n  }\n}\n\n// Sizes\n.well-lg {\n  padding: 24px;\n  border-radius: $border-radius-large;\n}\n.well-sm {\n  padding: 9px;\n  border-radius: $border-radius-small;\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_alerts.scss",
    "content": "// Alerts\n\n@mixin alert-variant($background, $border, $text-color) {\n  color: $text-color;\n  background-color: $background;\n  border-color: $border;\n\n  hr {\n    border-top-color: darken($border, 5%);\n  }\n\n  .alert-link {\n    color: darken($text-color, 10%);\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_background-variant.scss",
    "content": "// Contextual backgrounds\n\n// [converter] $parent hack\n@mixin bg-variant($parent, $color) {\n  #{$parent} {\n    background-color: $color;\n  }\n  a#{$parent}:hover,\n  a#{$parent}:focus {\n    background-color: darken($color, 10%);\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_border-radius.scss",
    "content": "// Single side border-radius\n\n@mixin border-top-radius($radius) {\n  border-top-left-radius: $radius;\n  border-top-right-radius: $radius;\n}\n@mixin border-right-radius($radius) {\n  border-top-right-radius: $radius;\n  border-bottom-right-radius: $radius;\n}\n@mixin border-bottom-radius($radius) {\n  border-bottom-right-radius: $radius;\n  border-bottom-left-radius: $radius;\n}\n@mixin border-left-radius($radius) {\n  border-top-left-radius: $radius;\n  border-bottom-left-radius: $radius;\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_buttons.scss",
    "content": "// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($color, $background, $border) {\n  color: $color;\n  background-color: $background;\n  border-color: $border;\n\n  &:focus,\n  &.focus {\n    color: $color;\n    background-color: darken($background, 10%);\n    border-color: darken($border, 25%);\n  }\n  &:hover {\n    color: $color;\n    background-color: darken($background, 10%);\n    border-color: darken($border, 12%);\n  }\n  &:active,\n  &.active,\n  .open > &.dropdown-toggle {\n    color: $color;\n    background-color: darken($background, 10%);\n    background-image: none;\n    border-color: darken($border, 12%);\n\n    &:hover,\n    &:focus,\n    &.focus {\n      color: $color;\n      background-color: darken($background, 17%);\n      border-color: darken($border, 25%);\n    }\n  }\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    &:hover,\n    &:focus,\n    &.focus {\n      background-color: $background;\n      border-color: $border;\n    }\n  }\n\n  .badge {\n    color: $background;\n    background-color: $color;\n  }\n}\n\n// Button sizes\n@mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {\n  padding: $padding-vertical $padding-horizontal;\n  font-size: $font-size;\n  line-height: $line-height;\n  border-radius: $border-radius;\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_center-block.scss",
    "content": "// Center-align a block level element\n\n@mixin center-block() {\n  display: block;\n  margin-right: auto;\n  margin-left: auto;\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_clearfix.scss",
    "content": "// Clearfix\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n//    contenteditable attribute is included anywhere else in the document.\n//    Otherwise it causes space to appear at the top and bottom of elements\n//    that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n//    `:before` to contain the top-margins of child elements.\n//\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n\n@mixin clearfix() {\n  &:before,\n  &:after {\n    display: table; // 2\n    content: \" \"; // 1\n  }\n  &:after {\n    clear: both;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_forms.scss",
    "content": "// Form validation states\n//\n// Used in forms.less to generate the form validation CSS for warnings, errors,\n// and successes.\n\n@mixin form-control-validation($text-color: #555, $border-color: #ccc, $background-color: #f5f5f5) {\n  // Color the label and help text\n  .help-block,\n  .control-label,\n  .radio,\n  .checkbox,\n  .radio-inline,\n  .checkbox-inline,\n  &.radio label,\n  &.checkbox label,\n  &.radio-inline label,\n  &.checkbox-inline label  {\n    color: $text-color;\n  }\n  // Set the border and box shadow on specific inputs to match\n  .form-control {\n    border-color: $border-color;\n    @include box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075)); // Redeclare so transitions work\n    &:focus {\n      border-color: darken($border-color, 10%);\n      $shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px lighten($border-color, 20%);\n      @include box-shadow($shadow);\n    }\n  }\n  // Set validation states also for addons\n  .input-group-addon {\n    color: $text-color;\n    background-color: $background-color;\n    border-color: $border-color;\n  }\n  // Optional feedback icon\n  .form-control-feedback {\n    color: $text-color;\n  }\n}\n\n\n// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `$input-border-focus` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n@mixin form-control-focus($color: $input-border-focus) {\n  $color-rgba: rgba(red($color), green($color), blue($color), .6);\n  &:focus {\n    border-color: $color;\n    outline: 0;\n    @include box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px $color-rgba);\n  }\n}\n\n// Form control sizing\n//\n// Relative text size, padding, and border-radii changes for form controls. For\n// horizontal sizing, wrap controls in the predefined grid classes. `<select>`\n// element gets special love because it's special, and that's a fact!\n// [converter] $parent hack\n@mixin input-size($parent, $input-height, $padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {\n  #{$parent} {\n    height: $input-height;\n    padding: $padding-vertical $padding-horizontal;\n    font-size: $font-size;\n    line-height: $line-height;\n    border-radius: $border-radius;\n  }\n\n  select#{$parent} {\n    height: $input-height;\n    line-height: $input-height;\n  }\n\n  textarea#{$parent},\n  select[multiple]#{$parent} {\n    height: auto;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_gradients.scss",
    "content": "\n\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n// Color stops are not available in IE9 and below.\n@mixin gradient-horizontal($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {\n  background-image: -webkit-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Safari 5.1-6, Chrome 10+\n  background-image: -o-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Opera 12\n  background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down\n  background-repeat: repeat-x;\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n// Color stops are not available in IE9 and below.\n@mixin gradient-vertical($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {\n  background-image: -webkit-linear-gradient(top, $start-color $start-percent, $end-color $end-percent);  // Safari 5.1-6, Chrome 10+\n  background-image: -o-linear-gradient(top, $start-color $start-percent, $end-color $end-percent);  // Opera 12\n  background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down\n  background-repeat: repeat-x;\n}\n\n@mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {\n  background-image: -webkit-linear-gradient($deg, $start-color, $end-color); // Safari 5.1-6, Chrome 10+\n  background-image: -o-linear-gradient($deg, $start-color, $end-color); // Opera 12\n  background-image: linear-gradient($deg, $start-color, $end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n  background-repeat: repeat-x;\n}\n@mixin gradient-horizontal-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {\n  background-image: -webkit-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);\n  background-image: -o-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);\n  background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down, gets no color-stop at all for proper fallback\n  background-repeat: no-repeat;\n}\n@mixin gradient-vertical-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {\n  background-image: -webkit-linear-gradient($start-color, $mid-color $color-stop, $end-color);\n  background-image: -o-linear-gradient($start-color, $mid-color $color-stop, $end-color);\n  background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down, gets no color-stop at all for proper fallback\n  background-repeat: no-repeat;\n}\n@mixin gradient-radial($inner-color: #555, $outer-color: #333) {\n  background-image: -webkit-radial-gradient(circle, $inner-color, $outer-color);\n  background-image: radial-gradient(circle, $inner-color, $outer-color);\n  background-repeat: no-repeat;\n}\n@mixin gradient-striped($color: rgba(255, 255, 255, .15), $angle: 45deg) {\n  background-image: -webkit-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n  background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_grid-framework.scss",
    "content": "@use \"sass:math\";\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n// [converter] This is defined recursively in LESS, but Sass supports real loops\n@mixin make-grid-columns($i: 1, $list: \".col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}\") {\n  @for $i from (1 + 1) through $grid-columns {\n    $list: \"#{$list}, .col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}\";\n  }\n  #{$list} {\n    position: relative;\n    // Prevent columns from collapsing when empty\n    min-height: 1px;\n    // Inner gutter via padding\n    padding-right: floor(math.div($grid-gutter-width, 2));\n    padding-left: ceil(math.div($grid-gutter-width, 2));\n  }\n}\n\n\n// [converter] This is defined recursively in LESS, but Sass supports real loops\n@mixin float-grid-columns($class, $i: 1, $list: \".col-#{$class}-#{$i}\") {\n  @for $i from (1 + 1) through $grid-columns {\n    $list: \"#{$list}, .col-#{$class}-#{$i}\";\n  }\n  #{$list} {\n    float: left;\n  }\n}\n\n\n@mixin calc-grid-column($index, $class, $type) {\n  @if ($type == width) and ($index > 0) {\n    .col-#{$class}-#{$index} {\n      width: percentage(math.div($index, $grid-columns));\n    }\n  }\n  @if ($type == push) and ($index > 0) {\n    .col-#{$class}-push-#{$index} {\n      left: percentage(math.div($index, $grid-columns));\n    }\n  }\n  @if ($type == push) and ($index == 0) {\n    .col-#{$class}-push-0 {\n      left: auto;\n    }\n  }\n  @if ($type == pull) and ($index > 0) {\n    .col-#{$class}-pull-#{$index} {\n      right: percentage(math.div($index, $grid-columns));\n    }\n  }\n  @if ($type == pull) and ($index == 0) {\n    .col-#{$class}-pull-0 {\n      right: auto;\n    }\n  }\n  @if ($type == offset) {\n    .col-#{$class}-offset-#{$index} {\n      margin-left: percentage(math.div($index, $grid-columns));\n    }\n  }\n}\n\n// [converter] This is defined recursively in LESS, but Sass supports real loops\n@mixin loop-grid-columns($columns, $class, $type) {\n  @for $i from 0 through $columns {\n    @include calc-grid-column($i, $class, $type);\n  }\n}\n\n\n// Create grid for specific class\n@mixin make-grid($class) {\n  @include float-grid-columns($class);\n  @include loop-grid-columns($grid-columns, $class, width);\n  @include loop-grid-columns($grid-columns, $class, pull);\n  @include loop-grid-columns($grid-columns, $class, push);\n  @include loop-grid-columns($grid-columns, $class, offset);\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_grid.scss",
    "content": "@use \"sass:math\";\n// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n// Centered container element\n@mixin container-fixed($gutter: $grid-gutter-width) {\n  padding-right: ceil(math.div($gutter, 2));\n  padding-left: floor(math.div($gutter, 2));\n  margin-right: auto;\n  margin-left: auto;\n  @include clearfix;\n}\n\n// Creates a wrapper for a series of columns\n@mixin make-row($gutter: $grid-gutter-width) {\n  margin-right: floor(math.div($gutter, -2));\n  margin-left: ceil(math.div($gutter, -2));\n  @include clearfix;\n}\n\n// Generate the extra small columns\n@mixin make-xs-column($columns, $gutter: $grid-gutter-width) {\n  position: relative;\n  float: left;\n  width: percentage(math.div($columns, $grid-columns));\n  min-height: 1px;\n  padding-right: math.div($gutter, 2);\n  padding-left: math.div($gutter, 2);\n}\n@mixin make-xs-column-offset($columns) {\n  margin-left: percentage(math.div($columns, $grid-columns));\n}\n@mixin make-xs-column-push($columns) {\n  left: percentage(math.div($columns, $grid-columns));\n}\n@mixin make-xs-column-pull($columns) {\n  right: percentage(math.div($columns, $grid-columns));\n}\n\n// Generate the small columns\n@mixin make-sm-column($columns, $gutter: $grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-right: math.div($gutter, 2);\n  padding-left: math.div($gutter, 2);\n\n  @media (min-width: $screen-sm-min) {\n    float: left;\n    width: percentage(math.div($columns, $grid-columns));\n  }\n}\n@mixin make-sm-column-offset($columns) {\n  @media (min-width: $screen-sm-min) {\n    margin-left: percentage(math.div($columns, $grid-columns));\n  }\n}\n@mixin make-sm-column-push($columns) {\n  @media (min-width: $screen-sm-min) {\n    left: percentage(math.div($columns, $grid-columns));\n  }\n}\n@mixin make-sm-column-pull($columns) {\n  @media (min-width: $screen-sm-min) {\n    right: percentage(math.div($columns, $grid-columns));\n  }\n}\n\n// Generate the medium columns\n@mixin make-md-column($columns, $gutter: $grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-right: math.div($gutter, 2);\n  padding-left: math.div($gutter, 2);\n\n  @media (min-width: $screen-md-min) {\n    float: left;\n    width: percentage(math.div($columns, $grid-columns));\n  }\n}\n@mixin make-md-column-offset($columns) {\n  @media (min-width: $screen-md-min) {\n    margin-left: percentage(math.div($columns, $grid-columns));\n  }\n}\n@mixin make-md-column-push($columns) {\n  @media (min-width: $screen-md-min) {\n    left: percentage(math.div($columns, $grid-columns));\n  }\n}\n@mixin make-md-column-pull($columns) {\n  @media (min-width: $screen-md-min) {\n    right: percentage(math.div($columns, $grid-columns));\n  }\n}\n\n// Generate the large columns\n@mixin make-lg-column($columns, $gutter: $grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-right: math.div($gutter, 2);\n  padding-left: math.div($gutter, 2);\n\n  @media (min-width: $screen-lg-min) {\n    float: left;\n    width: percentage(math.div($columns, $grid-columns));\n  }\n}\n@mixin make-lg-column-offset($columns) {\n  @media (min-width: $screen-lg-min) {\n    margin-left: percentage(math.div($columns, $grid-columns));\n  }\n}\n@mixin make-lg-column-push($columns) {\n  @media (min-width: $screen-lg-min) {\n    left: percentage(math.div($columns, $grid-columns));\n  }\n}\n@mixin make-lg-column-pull($columns) {\n  @media (min-width: $screen-lg-min) {\n    right: percentage(math.div($columns, $grid-columns));\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_hide-text.scss",
    "content": "// CSS image replacement\n//\n// Heads up! v3 launched with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (has been removed in v4)\n@mixin hide-text() {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n// New mixin to use as of v3.0.1\n@mixin text-hide() {\n  @include hide-text;\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_image.scss",
    "content": "// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n@mixin img-responsive($display: block) {\n  display: $display;\n  max-width: 100%; // Part 1: Set a maximum relative to the parent\n  height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size. Note that the\n// spelling of `min--moz-device-pixel-ratio` is intentional.\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n  background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path(\"#{$file-1x}\"), \"#{$file-1x}\"));\n\n  @media\n  only screen and (-webkit-min-device-pixel-ratio: 2),\n  only screen and ( min--moz-device-pixel-ratio: 2),\n  only screen and ( -o-min-device-pixel-ratio: 2/1),\n  only screen and ( min-device-pixel-ratio: 2),\n  only screen and ( min-resolution: 192dpi),\n  only screen and ( min-resolution: 2dppx) {\n    background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path(\"#{$file-2x}\"), \"#{$file-2x}\"));\n    background-size: $width-1x $height-1x;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_labels.scss",
    "content": "// Labels\n\n@mixin label-variant($color) {\n  background-color: $color;\n\n  &[href] {\n    &:hover,\n    &:focus {\n      background-color: darken($color, 10%);\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_list-group.scss",
    "content": "// List Groups\n\n@mixin list-group-item-variant($state, $background, $color) {\n  .list-group-item-#{$state} {\n    color: $color;\n    background-color: $background;\n\n    // [converter] extracted a&, button& to a.list-group-item-#{$state}, button.list-group-item-#{$state}\n  }\n\n  a.list-group-item-#{$state},\n  button.list-group-item-#{$state} {\n    color: $color;\n\n    .list-group-item-heading {\n      color: inherit;\n    }\n\n    &:hover,\n    &:focus {\n      color: $color;\n      background-color: darken($background, 5%);\n    }\n    &.active,\n    &.active:hover,\n    &.active:focus {\n      color: #fff;\n      background-color: $color;\n      border-color: $color;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_nav-divider.scss",
    "content": "@use \"sass:math\";\n// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n@mixin nav-divider($color: #e5e5e5) {\n  height: 1px;\n  margin: (math.div($line-height-computed, 2) - 1) 0;\n  overflow: hidden;\n  background-color: $color;\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_nav-vertical-align.scss",
    "content": "@use \"sass:math\";\n// Navbar vertical align\n//\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.\n\n@mixin navbar-vertical-align($element-height) {\n  margin-top: math.div(($navbar-height - $element-height), 2);\n  margin-bottom: math.div(($navbar-height - $element-height), 2);\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_opacity.scss",
    "content": "// Opacity\n\n@mixin opacity($opacity) {\n  $opacity-ie: ($opacity * 100);  // IE8 filter\n  filter: alpha(opacity=$opacity-ie);\n  opacity: $opacity;\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_pagination.scss",
    "content": "// Pagination\n\n@mixin pagination-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {\n  > li {\n    > a,\n    > span {\n      padding: $padding-vertical $padding-horizontal;\n      font-size: $font-size;\n      line-height: $line-height;\n    }\n    &:first-child {\n      > a,\n      > span {\n        @include border-left-radius($border-radius);\n      }\n    }\n    &:last-child {\n      > a,\n      > span {\n        @include border-right-radius($border-radius);\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_panels.scss",
    "content": "// Panels\n\n@mixin panel-variant($border, $heading-text-color, $heading-bg-color, $heading-border) {\n  border-color: $border;\n\n  & > .panel-heading {\n    color: $heading-text-color;\n    background-color: $heading-bg-color;\n    border-color: $heading-border;\n\n    + .panel-collapse > .panel-body {\n      border-top-color: $border;\n    }\n    .badge {\n      color: $heading-bg-color;\n      background-color: $heading-text-color;\n    }\n  }\n  & > .panel-footer {\n    + .panel-collapse > .panel-body {\n      border-bottom-color: $border;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_progress-bar.scss",
    "content": "// Progress bars\n\n@mixin progress-bar-variant($color) {\n  background-color: $color;\n\n  // Deprecated parent class requirement as of v3.2.0\n  .progress-striped & {\n    @include gradient-striped;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_reset-filter.scss",
    "content": "// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n@mixin reset-filter() {\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_reset-text.scss",
    "content": "@mixin reset-text() {\n  font-family: $font-family-base;\n  // We deliberately do NOT reset font-size.\n  font-style: normal;\n  font-weight: 400;\n  line-height: $line-height-base;\n  line-break: auto;\n  text-align: left; // Fallback for where `start` is not supported\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  word-wrap: normal;\n  white-space: normal;\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_resize.scss",
    "content": "// Resize anything\n\n@mixin resizable($direction) {\n  overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`\n  resize: $direction; // Options: horizontal, vertical, both\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_responsive-visibility.scss",
    "content": "// [converter] $parent hack\n@mixin responsive-visibility($parent) {\n  #{$parent} {\n    display: block !important;\n  }\n  table#{$parent}  { display: table !important; }\n  tr#{$parent}     { display: table-row !important; }\n  th#{$parent},\n  td#{$parent}     { display: table-cell !important; }\n}\n\n// [converter] $parent hack\n@mixin responsive-invisibility($parent) {\n  #{$parent} {\n    display: none !important;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_size.scss",
    "content": "// Sizing shortcuts\n\n@mixin size($width, $height) {\n  width: $width;\n  height: $height;\n}\n\n@mixin square($size) {\n  @include size($size, $size);\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_tab-focus.scss",
    "content": "// WebKit-style focus\n\n@mixin tab-focus() {\n  // WebKit-specific. Other browsers will keep their default outline style.\n  // (Initially tried to also force default via `outline: initial`,\n  // but that seems to erroneously remove the outline in Firefox altogether.)\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_table-row.scss",
    "content": "// Tables\n\n@mixin table-row-variant($state, $background) {\n  // Exact selectors below required to override `.table-striped` and prevent\n  // inheritance to nested tables.\n  .table > thead > tr,\n  .table > tbody > tr,\n  .table > tfoot > tr {\n    > td.#{$state},\n    > th.#{$state},\n    &.#{$state} > td,\n    &.#{$state} > th {\n      background-color: $background;\n    }\n  }\n\n  // Hover states for `.table-hover`\n  // Note: this is not available for cells or rows within `thead` or `tfoot`.\n  .table-hover > tbody > tr {\n    > td.#{$state}:hover,\n    > th.#{$state}:hover,\n    &.#{$state}:hover > td,\n    &:hover > .#{$state},\n    &.#{$state}:hover > th {\n      background-color: darken($background, 5%);\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_text-emphasis.scss",
    "content": "// Typography\n\n// [converter] $parent hack\n@mixin text-emphasis-variant($parent, $color) {\n  #{$parent} {\n    color: $color;\n  }\n  a#{$parent}:hover,\n  a#{$parent}:focus {\n    color: darken($color, 10%);\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_text-overflow.scss",
    "content": "// Text overflow\n// Requires inline-block or block for proper styling\n\n@mixin text-overflow() {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n"
  },
  {
    "path": "lib/bootstrap-sass/mixins/_vendor-prefixes.scss",
    "content": "// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n@mixin animation($animation) {\n  -webkit-animation: $animation;\n       -o-animation: $animation;\n          animation: $animation;\n}\n@mixin animation-name($name) {\n  -webkit-animation-name: $name;\n          animation-name: $name;\n}\n@mixin animation-duration($duration) {\n  -webkit-animation-duration: $duration;\n          animation-duration: $duration;\n}\n@mixin animation-timing-function($timing-function) {\n  -webkit-animation-timing-function: $timing-function;\n          animation-timing-function: $timing-function;\n}\n@mixin animation-delay($delay) {\n  -webkit-animation-delay: $delay;\n          animation-delay: $delay;\n}\n@mixin animation-iteration-count($iteration-count) {\n  -webkit-animation-iteration-count: $iteration-count;\n          animation-iteration-count: $iteration-count;\n}\n@mixin animation-direction($direction) {\n  -webkit-animation-direction: $direction;\n          animation-direction: $direction;\n}\n@mixin animation-fill-mode($fill-mode) {\n  -webkit-animation-fill-mode: $fill-mode;\n          animation-fill-mode: $fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n@mixin backface-visibility($visibility) {\n  -webkit-backface-visibility: $visibility;\n     -moz-backface-visibility: $visibility;\n          backface-visibility: $visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n@mixin box-shadow($shadow...) {\n  -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1\n          box-shadow: $shadow;\n}\n\n// Box sizing\n@mixin box-sizing($boxmodel) {\n  -webkit-box-sizing: $boxmodel;\n     -moz-box-sizing: $boxmodel;\n          box-sizing: $boxmodel;\n}\n\n// CSS3 Content Columns\n@mixin content-columns($column-count, $column-gap: $grid-gutter-width) {\n  -webkit-column-count: $column-count;\n     -moz-column-count: $column-count;\n          column-count: $column-count;\n  -webkit-column-gap: $column-gap;\n     -moz-column-gap: $column-gap;\n          column-gap: $column-gap;\n}\n\n// Optional hyphenation\n@mixin hyphens($mode: auto) {\n  -webkit-hyphens: $mode;\n     -moz-hyphens: $mode;\n      -ms-hyphens: $mode; // IE10+\n       -o-hyphens: $mode;\n          hyphens: $mode;\n  word-wrap: break-word;\n}\n\n// Placeholder text\n@mixin placeholder($color: $input-color-placeholder) {\n  // Firefox\n  &::-moz-placeholder {\n    color: $color;\n    opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n  }\n  &:-ms-input-placeholder { color: $color; } // Internet Explorer 10+\n  &::-webkit-input-placeholder  { color: $color; } // Safari and Chrome\n}\n\n// Transformations\n@mixin scale($ratio...) {\n  -webkit-transform: scale($ratio);\n      -ms-transform: scale($ratio); // IE9 only\n       -o-transform: scale($ratio);\n          transform: scale($ratio);\n}\n\n@mixin scaleX($ratio) {\n  -webkit-transform: scaleX($ratio);\n      -ms-transform: scaleX($ratio); // IE9 only\n       -o-transform: scaleX($ratio);\n          transform: scaleX($ratio);\n}\n@mixin scaleY($ratio) {\n  -webkit-transform: scaleY($ratio);\n      -ms-transform: scaleY($ratio); // IE9 only\n       -o-transform: scaleY($ratio);\n          transform: scaleY($ratio);\n}\n@mixin skew($x, $y) {\n  -webkit-transform: skewX($x) skewY($y);\n      -ms-transform: skewX($x) skewY($y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n       -o-transform: skewX($x) skewY($y);\n          transform: skewX($x) skewY($y);\n}\n@mixin translate($x, $y) {\n  -webkit-transform: translate($x, $y);\n      -ms-transform: translate($x, $y); // IE9 only\n       -o-transform: translate($x, $y);\n          transform: translate($x, $y);\n}\n@mixin translate3d($x, $y, $z) {\n  -webkit-transform: translate3d($x, $y, $z);\n          transform: translate3d($x, $y, $z);\n}\n@mixin rotate($degrees) {\n  -webkit-transform: rotate($degrees);\n      -ms-transform: rotate($degrees); // IE9 only\n       -o-transform: rotate($degrees);\n          transform: rotate($degrees);\n}\n@mixin rotateX($degrees) {\n  -webkit-transform: rotateX($degrees);\n      -ms-transform: rotateX($degrees); // IE9 only\n       -o-transform: rotateX($degrees);\n          transform: rotateX($degrees);\n}\n@mixin rotateY($degrees) {\n  -webkit-transform: rotateY($degrees);\n      -ms-transform: rotateY($degrees); // IE9 only\n       -o-transform: rotateY($degrees);\n          transform: rotateY($degrees);\n}\n@mixin perspective($perspective) {\n  -webkit-perspective: $perspective;\n     -moz-perspective: $perspective;\n          perspective: $perspective;\n}\n@mixin perspective-origin($perspective) {\n  -webkit-perspective-origin: $perspective;\n     -moz-perspective-origin: $perspective;\n          perspective-origin: $perspective;\n}\n@mixin transform-origin($origin) {\n  -webkit-transform-origin: $origin;\n     -moz-transform-origin: $origin;\n      -ms-transform-origin: $origin; // IE9 only\n          transform-origin: $origin;\n}\n\n\n// Transitions\n\n@mixin transition($transition...) {\n  -webkit-transition: $transition;\n       -o-transition: $transition;\n          transition: $transition;\n}\n@mixin transition-property($transition-property...) {\n  -webkit-transition-property: $transition-property;\n          transition-property: $transition-property;\n}\n@mixin transition-delay($transition-delay) {\n  -webkit-transition-delay: $transition-delay;\n          transition-delay: $transition-delay;\n}\n@mixin transition-duration($transition-duration...) {\n  -webkit-transition-duration: $transition-duration;\n          transition-duration: $transition-duration;\n}\n@mixin transition-timing-function($timing-function) {\n  -webkit-transition-timing-function: $timing-function;\n          transition-timing-function: $timing-function;\n}\n@mixin transition-transform($transition...) {\n  -webkit-transition: -webkit-transform $transition;\n     -moz-transition: -moz-transform $transition;\n       -o-transition: -o-transform $transition;\n          transition: transform $transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n@mixin user-select($select) {\n  -webkit-user-select: $select;\n     -moz-user-select: $select;\n      -ms-user-select: $select; // IE10+\n          user-select: $select;\n}\n"
  },
  {
    "path": "lib/bootstrap2/accordion.less",
    "content": "//\n// Accordion\n// --------------------------------------------------\n\n\n// Parent container\n.accordion {\n  margin-bottom: @baseLineHeight;\n}\n\n// Group == heading + body\n.accordion-group {\n  margin-bottom: 2px;\n  border: 1px solid #e5e5e5;\n  .border-radius(@baseBorderRadius);\n}\n.accordion-heading {\n  border-bottom: 0;\n}\n.accordion-heading .accordion-toggle {\n  display: block;\n  padding: 8px 15px;\n}\n\n// General toggle styles\n.accordion-toggle {\n  cursor: pointer;\n}\n\n// Inner needs the styles because you can't animate properly with any styles on the element\n.accordion-inner {\n  padding: 9px 15px;\n  border-top: 1px solid #e5e5e5;\n}\n"
  },
  {
    "path": "lib/bootstrap2/alerts.less",
    "content": "//\n// Alerts\n// --------------------------------------------------\n\n\n// Base styles\n// -------------------------\n\n.alert {\n  padding: 8px 35px 8px 14px;\n  margin-bottom: @baseLineHeight;\n  text-shadow: 0 1px 0 rgba(255,255,255,.5);\n  background-color: @warningBackground;\n  border: 1px solid @warningBorder;\n  .border-radius(@baseBorderRadius);\n}\n.alert,\n.alert h4 {\n  // Specified for the h4 to prevent conflicts of changing @headingsColor\n  color: @warningText;\n}\n.alert h4 {\n  margin: 0;\n}\n\n// Adjust close link position\n.alert .close {\n  position: relative;\n  top: -2px;\n  right: -21px;\n  line-height: @baseLineHeight;\n}\n\n\n// Alternate styles\n// -------------------------\n\n.alert-success {\n  background-color: @successBackground;\n  border-color: @successBorder;\n  color: @successText;\n}\n.alert-success h4 {\n  color: @successText;\n}\n.alert-danger,\n.alert-error {\n  background-color: @errorBackground;\n  border-color: @errorBorder;\n  color: @errorText;\n}\n.alert-danger h4,\n.alert-error h4 {\n  color: @errorText;\n}\n.alert-info {\n  background-color: @infoBackground;\n  border-color: @infoBorder;\n  color: @infoText;\n}\n.alert-info h4 {\n  color: @infoText;\n}\n\n\n// Block alerts\n// -------------------------\n\n.alert-block {\n  padding-top: 14px;\n  padding-bottom: 14px;\n}\n.alert-block > p,\n.alert-block > ul {\n  margin-bottom: 0;\n}\n.alert-block p + p {\n  margin-top: 5px;\n}\n"
  },
  {
    "path": "lib/bootstrap2/bootstrap.less",
    "content": "/*!\n * Bootstrap v2.3.2\n *\n * Copyright 2013 Twitter, Inc\n * Licensed under the Apache License v2.0\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Designed and built with all the love in the world by @mdo and @fat.\n */\n\n// Core variables and mixins\n@import \"variables.less\"; // Modify this for custom colors, font-sizes, etc\n@import \"mixins.less\";\n\n// CSS Reset\n@import \"reset.less\";\n\n// Grid system and page structure\n@import \"scaffolding.less\";\n@import \"grid.less\";\n@import \"layouts.less\";\n\n// Base CSS\n@import \"type.less\";\n@import \"code.less\";\n@import \"forms.less\";\n@import \"tables.less\";\n\n// Components: common\n@import \"sprites.less\";\n@import \"dropdowns.less\";\n@import \"wells.less\";\n@import \"component-animations.less\";\n@import \"close.less\";\n\n// Components: Buttons & Alerts\n@import \"buttons.less\";\n@import \"button-groups.less\";\n@import \"alerts.less\"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less\n\n// Components: Nav\n@import \"navs.less\";\n@import \"navbar.less\";\n@import \"breadcrumbs.less\";\n@import \"pagination.less\";\n@import \"pager.less\";\n\n// Components: Popovers\n@import \"modals.less\";\n@import \"tooltip.less\";\n@import \"popovers.less\";\n\n// Components: Misc\n@import \"thumbnails.less\";\n@import \"media.less\";\n@import \"labels-badges.less\";\n@import \"progress-bars.less\";\n@import \"accordion.less\";\n@import \"carousel.less\";\n@import \"hero-unit.less\";\n\n// Utility classes\n@import \"utilities.less\"; // Has to be last to override when necessary\n"
  },
  {
    "path": "lib/bootstrap2/breadcrumbs.less",
    "content": "//\n// Breadcrumbs\n// --------------------------------------------------\n\n\n.breadcrumb {\n  padding: 8px 15px;\n  margin: 0 0 @baseLineHeight;\n  list-style: none;\n  background-color: #f5f5f5;\n  .border-radius(@baseBorderRadius);\n  > li {\n    display: inline-block;\n    .ie7-inline-block();\n    text-shadow: 0 1px 0 @white;\n    > .divider {\n      padding: 0 5px;\n      color: #ccc;\n    }\n  }\n  > .active {\n    color: @grayLight;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap2/button-groups.less",
    "content": "//\n// Button groups\n// --------------------------------------------------\n\n\n// Make the div behave like a button\n.btn-group {\n  position: relative;\n  display: inline-block;\n  .ie7-inline-block();\n  font-size: 0; // remove as part 1 of font-size inline-block hack\n  vertical-align: middle; // match .btn alignment given font-size hack above\n  white-space: nowrap; // prevent buttons from wrapping when in tight spaces (e.g., the table on the tests page)\n  .ie7-restore-left-whitespace();\n}\n\n// Space out series of button groups\n.btn-group + .btn-group {\n  margin-left: 5px;\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n  font-size: 0; // Hack to remove whitespace that results from using inline-block\n  margin-top: @baseLineHeight / 2;\n  margin-bottom: @baseLineHeight / 2;\n  > .btn + .btn,\n  > .btn-group + .btn,\n  > .btn + .btn-group {\n    margin-left: 5px;\n  }\n}\n\n// Float them, remove border radius, then re-add to first and last elements\n.btn-group > .btn {\n  position: relative;\n  .border-radius(0);\n}\n.btn-group > .btn + .btn {\n  margin-left: -1px;\n}\n.btn-group > .btn,\n.btn-group > .dropdown-menu,\n.btn-group > .popover {\n  font-size: @baseFontSize; // redeclare as part 2 of font-size inline-block hack\n}\n\n// Reset fonts for other sizes\n.btn-group > .btn-mini {\n  font-size: @fontSizeMini;\n}\n.btn-group > .btn-small {\n  font-size: @fontSizeSmall;\n}\n.btn-group > .btn-large {\n  font-size: @fontSizeLarge;\n}\n\n// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match\n.btn-group > .btn:first-child {\n  margin-left: 0;\n  .border-top-left-radius(@baseBorderRadius);\n  .border-bottom-left-radius(@baseBorderRadius);\n}\n// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it\n.btn-group > .btn:last-child,\n.btn-group > .dropdown-toggle {\n  .border-top-right-radius(@baseBorderRadius);\n  .border-bottom-right-radius(@baseBorderRadius);\n}\n// Reset corners for large buttons\n.btn-group > .btn.large:first-child {\n  margin-left: 0;\n  .border-top-left-radius(@borderRadiusLarge);\n  .border-bottom-left-radius(@borderRadiusLarge);\n}\n.btn-group > .btn.large:last-child,\n.btn-group > .large.dropdown-toggle {\n  .border-top-right-radius(@borderRadiusLarge);\n  .border-bottom-right-radius(@borderRadiusLarge);\n}\n\n// On hover/focus/active, bring the proper btn to front\n.btn-group > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group > .btn:active,\n.btn-group > .btn.active {\n  z-index: 2;\n}\n\n// On active and open, don't show outline\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n  outline: 0;\n}\n\n\n\n// Split button dropdowns\n// ----------------------\n\n// Give the line between buttons some depth\n.btn-group > .btn + .dropdown-toggle {\n  padding-left: 8px;\n  padding-right: 8px;\n  .box-shadow(~\"inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)\");\n  *padding-top: 5px;\n  *padding-bottom: 5px;\n}\n.btn-group > .btn-mini + .dropdown-toggle {\n  padding-left: 5px;\n  padding-right: 5px;\n  *padding-top: 2px;\n  *padding-bottom: 2px;\n}\n.btn-group > .btn-small + .dropdown-toggle {\n  *padding-top: 5px;\n  *padding-bottom: 4px;\n}\n.btn-group > .btn-large + .dropdown-toggle {\n  padding-left: 12px;\n  padding-right: 12px;\n  *padding-top: 7px;\n  *padding-bottom: 7px;\n}\n\n.btn-group.open {\n\n  // The clickable button for toggling the menu\n  // Remove the gradient and set the same inset shadow as the :active state\n  .dropdown-toggle {\n    background-image: none;\n    .box-shadow(~\"inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)\");\n  }\n\n  // Keep the hover's background when dropdown is open\n  .btn.dropdown-toggle {\n    background-color: @btnBackgroundHighlight;\n  }\n  .btn-primary.dropdown-toggle {\n    background-color: @btnPrimaryBackgroundHighlight;\n  }\n  .btn-warning.dropdown-toggle {\n    background-color: @btnWarningBackgroundHighlight;\n  }\n  .btn-danger.dropdown-toggle {\n    background-color: @btnDangerBackgroundHighlight;\n  }\n  .btn-success.dropdown-toggle {\n    background-color: @btnSuccessBackgroundHighlight;\n  }\n  .btn-info.dropdown-toggle {\n    background-color: @btnInfoBackgroundHighlight;\n  }\n  .btn-inverse.dropdown-toggle {\n    background-color: @btnInverseBackgroundHighlight;\n  }\n}\n\n\n// Reposition the caret\n.btn .caret {\n  margin-top: 8px;\n  margin-left: 0;\n}\n// Carets in other button sizes\n.btn-large .caret {\n  margin-top: 6px;\n}\n.btn-large .caret {\n  border-left-width:  5px;\n  border-right-width: 5px;\n  border-top-width:   5px;\n}\n.btn-mini .caret,\n.btn-small .caret {\n  margin-top: 8px;\n}\n// Upside down carets for .dropup\n.dropup .btn-large .caret {\n  border-bottom-width: 5px;\n}\n\n\n\n// Account for other colors\n.btn-primary,\n.btn-warning,\n.btn-danger,\n.btn-info,\n.btn-success,\n.btn-inverse {\n  .caret {\n    border-top-color: @white;\n    border-bottom-color: @white;\n  }\n}\n\n\n\n// Vertical button groups\n// ----------------------\n\n.btn-group-vertical {\n  display: inline-block; // makes buttons only take up the width they need\n  .ie7-inline-block();\n}\n.btn-group-vertical > .btn {\n  display: block;\n  float: none;\n  max-width: 100%;\n  .border-radius(0);\n}\n.btn-group-vertical > .btn + .btn {\n  margin-left: 0;\n  margin-top: -1px;\n}\n.btn-group-vertical > .btn:first-child {\n  .border-radius(@baseBorderRadius @baseBorderRadius 0 0);\n}\n.btn-group-vertical > .btn:last-child {\n  .border-radius(0 0 @baseBorderRadius @baseBorderRadius);\n}\n.btn-group-vertical > .btn-large:first-child {\n  .border-radius(@borderRadiusLarge @borderRadiusLarge 0 0);\n}\n.btn-group-vertical > .btn-large:last-child {\n  .border-radius(0 0 @borderRadiusLarge @borderRadiusLarge);\n}\n"
  },
  {
    "path": "lib/bootstrap2/buttons.less",
    "content": "//\n// Buttons\n// --------------------------------------------------\n\n\n// Base styles\n// --------------------------------------------------\n\n// Core\n.btn {\n  display: inline-block;\n  .ie7-inline-block();\n  padding: 4px 12px;\n  margin-bottom: 0; // For input.btn\n  font-size: @baseFontSize;\n  line-height: @baseLineHeight;\n  text-align: center;\n  vertical-align: middle;\n  cursor: pointer;\n  .buttonBackground(@btnBackground, @btnBackgroundHighlight, @grayDark, 0 1px 1px rgba(255,255,255,.75));\n  border: 1px solid @btnBorder;\n  *border: 0; // Remove the border to prevent IE7's black border on input:focus\n  border-bottom-color: darken(@btnBorder, 10%);\n  .border-radius(@baseBorderRadius);\n  .ie7-restore-left-whitespace(); // Give IE7 some love\n  .box-shadow(~\"inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)\");\n\n  // Hover/focus state\n  &:hover,\n  &:focus {\n    color: @grayDark;\n    text-decoration: none;\n    background-position: 0 -15px;\n\n    // transition is only when going to hover/focus, otherwise the background\n    // behind the gradient (there for IE<=9 fallback) gets mismatched\n    .transition(background-position .1s linear);\n  }\n\n  // Focus state for keyboard and accessibility\n  &:focus {\n    .tab-focus();\n  }\n\n  // Active state\n  &.active,\n  &:active {\n    background-image: none;\n    outline: 0;\n    .box-shadow(~\"inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)\");\n  }\n\n  // Disabled state\n  &.disabled,\n  &[disabled] {\n    cursor: default;\n    background-image: none;\n    .opacity(65);\n    .box-shadow(none);\n  }\n\n}\n\n\n\n// Button Sizes\n// --------------------------------------------------\n\n// Large\n.btn-large {\n  padding: @paddingLarge;\n  font-size: @fontSizeLarge;\n  .border-radius(@borderRadiusLarge);\n}\n.btn-large [class^=\"icon-\"],\n.btn-large [class*=\" icon-\"] {\n  margin-top: 4px;\n}\n\n// Small\n.btn-small {\n  padding: @paddingSmall;\n  font-size: @fontSizeSmall;\n  .border-radius(@borderRadiusSmall);\n}\n.btn-small [class^=\"icon-\"],\n.btn-small [class*=\" icon-\"] {\n  margin-top: 0;\n}\n.btn-mini [class^=\"icon-\"],\n.btn-mini [class*=\" icon-\"] {\n  margin-top: -1px;\n}\n\n// Mini\n.btn-mini {\n  padding: @paddingMini;\n  font-size: @fontSizeMini;\n  .border-radius(@borderRadiusSmall);\n}\n\n\n// Block button\n// -------------------------\n\n.btn-block {\n  display: block;\n  width: 100%;\n  padding-left: 0;\n  padding-right: 0;\n  .box-sizing(border-box);\n}\n\n// Vertically space out multiple block buttons\n.btn-block + .btn-block {\n  margin-top: 5px;\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n  &.btn-block {\n    width: 100%;\n  }\n}\n\n\n\n// Alternate buttons\n// --------------------------------------------------\n\n// Provide *some* extra contrast for those who can get it\n.btn-primary.active,\n.btn-warning.active,\n.btn-danger.active,\n.btn-success.active,\n.btn-info.active,\n.btn-inverse.active {\n  color: rgba(255,255,255,.75);\n}\n\n// Set the backgrounds\n// -------------------------\n.btn-primary {\n  .buttonBackground(@btnPrimaryBackground, @btnPrimaryBackgroundHighlight);\n}\n// Warning appears are orange\n.btn-warning {\n  .buttonBackground(@btnWarningBackground, @btnWarningBackgroundHighlight);\n}\n// Danger and error appear as red\n.btn-danger {\n  .buttonBackground(@btnDangerBackground, @btnDangerBackgroundHighlight);\n}\n// Success appears as green\n.btn-success {\n  .buttonBackground(@btnSuccessBackground, @btnSuccessBackgroundHighlight);\n}\n// Info appears as a neutral blue\n.btn-info {\n  .buttonBackground(@btnInfoBackground, @btnInfoBackgroundHighlight);\n}\n// Inverse appears as dark gray\n.btn-inverse {\n  .buttonBackground(@btnInverseBackground, @btnInverseBackgroundHighlight);\n}\n\n\n// Cross-browser Jank\n// --------------------------------------------------\n\nbutton.btn,\ninput[type=\"submit\"].btn {\n\n  // Firefox 3.6 only I believe\n  &::-moz-focus-inner {\n    padding: 0;\n    border: 0;\n  }\n\n  // IE7 has some default padding on button controls\n  *padding-top: 3px;\n  *padding-bottom: 3px;\n\n  &.btn-large {\n    *padding-top: 7px;\n    *padding-bottom: 7px;\n  }\n  &.btn-small {\n    *padding-top: 3px;\n    *padding-bottom: 3px;\n  }\n  &.btn-mini {\n    *padding-top: 1px;\n    *padding-bottom: 1px;\n  }\n}\n\n\n// Link buttons\n// --------------------------------------------------\n\n// Make a button look and behave like a link\n.btn-link,\n.btn-link:active,\n.btn-link[disabled] {\n  background-color: transparent;\n  background-image: none;\n  .box-shadow(none);\n}\n.btn-link {\n  border-color: transparent;\n  cursor: pointer;\n  color: @linkColor;\n  .border-radius(0);\n}\n.btn-link:hover,\n.btn-link:focus {\n  color: @linkColorHover;\n  text-decoration: underline;\n  background-color: transparent;\n}\n.btn-link[disabled]:hover,\n.btn-link[disabled]:focus {\n  color: @grayDark;\n  text-decoration: none;\n}\n"
  },
  {
    "path": "lib/bootstrap2/carousel.less",
    "content": "//\n// Carousel\n// --------------------------------------------------\n\n\n.carousel {\n  position: relative;\n  margin-bottom: @baseLineHeight;\n  line-height: 1;\n}\n\n.carousel-inner {\n  overflow: hidden;\n  width: 100%;\n  position: relative;\n}\n\n.carousel-inner {\n\n  > .item {\n    display: none;\n    position: relative;\n    .transition(.6s ease-in-out left);\n\n    // Account for jankitude on images\n    > img,\n    > a > img {\n      display: block;\n      line-height: 1;\n    }\n  }\n\n  > .active,\n  > .next,\n  > .prev { display: block; }\n\n  > .active {\n    left: 0;\n  }\n\n  > .next,\n  > .prev {\n    position: absolute;\n    top: 0;\n    width: 100%;\n  }\n\n  > .next {\n    left: 100%;\n  }\n  > .prev {\n    left: -100%;\n  }\n  > .next.left,\n  > .prev.right {\n    left: 0;\n  }\n\n  > .active.left {\n    left: -100%;\n  }\n  > .active.right {\n    left: 100%;\n  }\n\n}\n\n// Left/right controls for nav\n// ---------------------------\n\n.carousel-control {\n  position: absolute;\n  top: 40%;\n  left: 15px;\n  width: 40px;\n  height: 40px;\n  margin-top: -20px;\n  font-size: 60px;\n  font-weight: 100;\n  line-height: 30px;\n  color: @white;\n  text-align: center;\n  background: @grayDarker;\n  border: 3px solid @white;\n  .border-radius(23px);\n  .opacity(50);\n\n  // we can't have this transition here\n  // because webkit cancels the carousel\n  // animation if you trip this while\n  // in the middle of another animation\n  // ;_;\n  // .transition(opacity .2s linear);\n\n  // Reposition the right one\n  &.right {\n    left: auto;\n    right: 15px;\n  }\n\n  // Hover/focus state\n  &:hover,\n  &:focus {\n    color: @white;\n    text-decoration: none;\n    .opacity(90);\n  }\n}\n\n// Carousel indicator pips\n// -----------------------------\n.carousel-indicators {\n  position: absolute;\n  top: 15px;\n  right: 15px;\n  z-index: 5;\n  margin: 0;\n  list-style: none;\n\n  li {\n    display: block;\n    float: left;\n    width: 10px;\n    height: 10px;\n    margin-left: 5px;\n    text-indent: -999px;\n    background-color: #ccc;\n    background-color: rgba(255,255,255,.25);\n    border-radius: 5px;\n  }\n  .active {\n    background-color: #fff;\n  }\n}\n\n// Caption for text below images\n// -----------------------------\n\n.carousel-caption {\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  padding: 15px;\n  background: @grayDark;\n  background: rgba(0,0,0,.75);\n}\n.carousel-caption h4,\n.carousel-caption p {\n  color: @white;\n  line-height: @baseLineHeight;\n}\n.carousel-caption h4 {\n  margin: 0 0 5px;\n}\n.carousel-caption p {\n  margin-bottom: 0;\n}\n"
  },
  {
    "path": "lib/bootstrap2/close.less",
    "content": "//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n  float: right;\n  font-size: 20px;\n  font-weight: bold;\n  line-height: @baseLineHeight;\n  color: @black;\n  text-shadow: 0 1px 0 rgba(255,255,255,1);\n  .opacity(20);\n  &:hover,\n  &:focus {\n    color: @black;\n    text-decoration: none;\n    cursor: pointer;\n    .opacity(40);\n  }\n}\n\n// Additional properties for button version\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\nbutton.close {\n  padding: 0;\n  cursor: pointer;\n  background: transparent;\n  border: 0;\n  -webkit-appearance: none;\n}"
  },
  {
    "path": "lib/bootstrap2/code.less",
    "content": "//\n// Code (inline and blocK)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\npre {\n  padding: 0 3px 2px;\n  #font > #family > .monospace;\n  font-size: @baseFontSize - 2;\n  color: @grayDark;\n  .border-radius(3px);\n}\n\n// Inline code\ncode {\n  padding: 2px 4px;\n  color: #d14;\n  background-color: #f7f7f9;\n  border: 1px solid #e1e1e8;\n  white-space: nowrap;\n}\n\n// Blocks of code\npre {\n  display: block;\n  padding: (@baseLineHeight - 1) / 2;\n  margin: 0 0 @baseLineHeight / 2;\n  font-size: @baseFontSize - 1; // 14px to 13px\n  line-height: @baseLineHeight;\n  word-break: break-all;\n  word-wrap: break-word;\n  white-space: pre;\n  white-space: pre-wrap;\n  background-color: #f5f5f5;\n  border: 1px solid #ccc; // fallback for IE7-8\n  border: 1px solid rgba(0,0,0,.15);\n  .border-radius(@baseBorderRadius);\n\n  // Make prettyprint styles more spaced out for readability\n  &.prettyprint {\n    margin-bottom: @baseLineHeight;\n  }\n\n  // Account for some code outputs that place code tags in pre tags\n  code {\n    padding: 0;\n    color: inherit;\n    white-space: pre;\n    white-space: pre-wrap;\n    background-color: transparent;\n    border: 0;\n  }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll;\n}"
  },
  {
    "path": "lib/bootstrap2/component-animations.less",
    "content": "//\n// Component animations\n// --------------------------------------------------\n\n\n.fade {\n  opacity: 0;\n  .transition(opacity .15s linear);\n  &.in {\n    opacity: 1;\n  }\n}\n\n.collapse {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  .transition(height .35s ease);\n  &.in {\n    height: auto;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap2/dropdowns.less",
    "content": "//\n// Dropdown menus\n// --------------------------------------------------\n\n\n// Use the .menu class on any <li> element within the topbar or ul.tabs and you'll get some superfancy dropdowns\n.dropup,\n.dropdown {\n  position: relative;\n}\n.dropdown-toggle {\n  // The caret makes the toggle a bit too tall in IE7\n  *margin-bottom: -3px;\n}\n.dropdown-toggle:active,\n.open .dropdown-toggle {\n  outline: 0;\n}\n\n// Dropdown arrow/caret\n// --------------------\n.caret {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  vertical-align: top;\n  border-top:   4px solid @black;\n  border-right: 4px solid transparent;\n  border-left:  4px solid transparent;\n  content: \"\";\n}\n\n// Place the caret\n.dropdown .caret {\n  margin-top: 8px;\n  margin-left: 2px;\n}\n\n// The dropdown menu (ul)\n// ----------------------\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: @zindexDropdown;\n  display: none; // none by default, but block on \"open\" of the menu\n  float: left;\n  min-width: 160px;\n  padding: 5px 0;\n  margin: 2px 0 0; // override default ul\n  list-style: none;\n  background-color: @dropdownBackground;\n  border: 1px solid #ccc; // Fallback for IE7-8\n  border: 1px solid @dropdownBorder;\n  *border-right-width: 2px;\n  *border-bottom-width: 2px;\n  .border-radius(6px);\n  .box-shadow(0 5px 10px rgba(0,0,0,.2));\n  -webkit-background-clip: padding-box;\n     -moz-background-clip: padding;\n          background-clip: padding-box;\n\n  // Aligns the dropdown menu to right\n  &.pull-right {\n    right: 0;\n    left: auto;\n  }\n\n  // Dividers (basically an hr) within the dropdown\n  .divider {\n    .nav-divider(@dropdownDividerTop, @dropdownDividerBottom);\n  }\n\n  // Links within the dropdown menu\n  > li > a {\n    display: block;\n    padding: 3px 20px;\n    clear: both;\n    font-weight: normal;\n    line-height: @baseLineHeight;\n    color: @dropdownLinkColor;\n    white-space: nowrap;\n  }\n}\n\n// Hover/Focus state\n// -----------\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus,\n.dropdown-submenu:hover > a,\n.dropdown-submenu:focus > a {\n  text-decoration: none;\n  color: @dropdownLinkColorHover;\n  #gradient > .vertical(@dropdownLinkBackgroundHover, darken(@dropdownLinkBackgroundHover, 5%));\n}\n\n// Active state\n// ------------\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n  color: @dropdownLinkColorActive;\n  text-decoration: none;\n  outline: 0;\n  #gradient > .vertical(@dropdownLinkBackgroundActive, darken(@dropdownLinkBackgroundActive, 5%));\n}\n\n// Disabled state\n// --------------\n// Gray out text and ensure the hover/focus state remains gray\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n  color: @grayLight;\n}\n// Nuke hover/focus effects\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n  text-decoration: none;\n  background-color: transparent;\n  background-image: none; // Remove CSS gradient\n  .reset-filter();\n  cursor: default;\n}\n\n// Open state for the dropdown\n// ---------------------------\n.open {\n  // IE7's z-index only goes to the nearest positioned ancestor, which would\n  // make the menu appear below buttons that appeared later on the page\n  *z-index: @zindexDropdown;\n\n  & > .dropdown-menu {\n    display: block;\n  }\n}\n\n// Backdrop to catch body clicks on mobile, etc.\n// ---------------------------\n.dropdown-backdrop {\n  position: fixed;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  top: 0;\n  z-index: @zindexDropdown - 10;\n}\n\n// Right aligned dropdowns\n// ---------------------------\n.pull-right > .dropdown-menu {\n  right: 0;\n  left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// ------------------------------------------------------\n// Just add .dropup after the standard .dropdown class and you're set, bro.\n// TODO: abstract this so that the navbar fixed styles are not placed here?\n.dropup,\n.navbar-fixed-bottom .dropdown {\n  // Reverse the caret\n  .caret {\n    border-top: 0;\n    border-bottom: 4px solid @black;\n    content: \"\";\n  }\n  // Different positioning for bottom up menu\n  .dropdown-menu {\n    top: auto;\n    bottom: 100%;\n    margin-bottom: 1px;\n  }\n}\n\n// Sub menus\n// ---------------------------\n.dropdown-submenu {\n  position: relative;\n}\n// Default dropdowns\n.dropdown-submenu > .dropdown-menu {\n  top: 0;\n  left: 100%;\n  margin-top: -6px;\n  margin-left: -1px;\n  .border-radius(0 6px 6px 6px);\n}\n.dropdown-submenu:hover > .dropdown-menu {\n  display: block;\n}\n\n// Dropups\n.dropup .dropdown-submenu > .dropdown-menu {\n  top: auto;\n  bottom: 0;\n  margin-top: 0;\n  margin-bottom: -2px;\n  .border-radius(5px 5px 5px 0);\n}\n\n// Caret to indicate there is a submenu\n.dropdown-submenu > a:after {\n  display: block;\n  content: \" \";\n  float: right;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n  border-width: 5px 0 5px 5px;\n  border-left-color: darken(@dropdownBackground, 20%);\n  margin-top: 5px;\n  margin-right: -10px;\n}\n.dropdown-submenu:hover > a:after {\n  border-left-color: @dropdownLinkColorHover;\n}\n\n// Left aligned submenus\n.dropdown-submenu.pull-left {\n  // Undo the float\n  // Yes, this is awkward since .pull-left adds a float, but it sticks to our conventions elsewhere.\n  float: none;\n\n  // Positioning the submenu\n  > .dropdown-menu {\n    left: -100%;\n    margin-left: 10px;\n    .border-radius(6px 0 6px 6px);\n  }\n}\n\n// Tweak nav headers\n// -----------------\n// Increase padding from 15px to 20px on sides\n.dropdown .dropdown-menu .nav-header {\n  padding-left: 20px;\n  padding-right: 20px;\n}\n\n// Typeahead\n// ---------\n.typeahead {\n  z-index: 1051;\n  margin-top: 2px; // give it some space to breathe\n  .border-radius(@baseBorderRadius);\n}\n"
  },
  {
    "path": "lib/bootstrap2/forms.less",
    "content": "//\n// Forms\n// --------------------------------------------------\n\n\n// GENERAL STYLES\n// --------------\n\n// Make all forms have space below them\nform {\n  margin: 0 0 @baseLineHeight;\n}\n\nfieldset {\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\n// Groups of fields with labels on top (legends)\nlegend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: @baseLineHeight;\n  font-size: @baseFontSize * 1.5;\n  line-height: @baseLineHeight * 2;\n  color: @grayDark;\n  border: 0;\n  border-bottom: 1px solid #e5e5e5;\n\n  // Small\n  small {\n    font-size: @baseLineHeight * .75;\n    color: @grayLight;\n  }\n}\n\n// Set font for forms\nlabel,\ninput,\nbutton,\nselect,\ntextarea {\n  #font > .shorthand(@baseFontSize,normal,@baseLineHeight); // Set size, weight, line-height here\n}\ninput,\nbutton,\nselect,\ntextarea {\n  font-family: @baseFontFamily; // And only set font-family here for those that need it (note the missing label element)\n}\n\n// Identify controls by their labels\nlabel {\n  display: block;\n  margin-bottom: 5px;\n}\n\n// Form controls\n// -------------------------\n\n// Shared size and type resets\nselect,\ntextarea,\ninput[type=\"text\"],\ninput[type=\"password\"],\ninput[type=\"datetime\"],\ninput[type=\"datetime-local\"],\ninput[type=\"date\"],\ninput[type=\"month\"],\ninput[type=\"time\"],\ninput[type=\"week\"],\ninput[type=\"number\"],\ninput[type=\"email\"],\ninput[type=\"url\"],\ninput[type=\"search\"],\ninput[type=\"tel\"],\ninput[type=\"color\"],\n.uneditable-input {\n  display: inline-block;\n  height: @baseLineHeight;\n  padding: 4px 6px;\n  margin-bottom: @baseLineHeight / 2;\n  font-size: @baseFontSize;\n  line-height: @baseLineHeight;\n  color: @gray;\n  .border-radius(@inputBorderRadius);\n  vertical-align: middle;\n}\n\n// Reset appearance properties for textual inputs and textarea\n// Declare width for legacy (can't be on input[type=*] selectors or it's too specific)\ninput,\ntextarea,\n.uneditable-input {\n  width: 206px; // plus 12px padding and 2px border\n}\n// Reset height since textareas have rows\ntextarea {\n  height: auto;\n}\n// Everything else\ntextarea,\ninput[type=\"text\"],\ninput[type=\"password\"],\ninput[type=\"datetime\"],\ninput[type=\"datetime-local\"],\ninput[type=\"date\"],\ninput[type=\"month\"],\ninput[type=\"time\"],\ninput[type=\"week\"],\ninput[type=\"number\"],\ninput[type=\"email\"],\ninput[type=\"url\"],\ninput[type=\"search\"],\ninput[type=\"tel\"],\ninput[type=\"color\"],\n.uneditable-input {\n  background-color: @inputBackground;\n  border: 1px solid @inputBorder;\n  .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));\n  .transition(~\"border linear .2s, box-shadow linear .2s\");\n\n  // Focus state\n  &:focus {\n    border-color: rgba(82,168,236,.8);\n    outline: 0;\n    outline: thin dotted \\9; /* IE6-9 */\n    .box-shadow(~\"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)\");\n  }\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  margin: 4px 0 0;\n  *margin-top: 0; /* IE7 */\n  margin-top: 1px \\9; /* IE8-9 */\n  line-height: normal;\n}\n\n// Reset width of input images, buttons, radios, checkboxes\ninput[type=\"file\"],\ninput[type=\"image\"],\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"],\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  width: auto; // Override of generic input selector\n}\n\n// Set the height of select and file controls to match text inputs\nselect,\ninput[type=\"file\"] {\n  height: @inputHeight; /* In IE7, the height of the select element cannot be changed by height, only font-size */\n  *margin-top: 4px; /* For IE7, add top margin to align select with labels */\n  line-height: @inputHeight;\n}\n\n// Make select elements obey height by applying a border\nselect {\n  width: 220px; // default input width + 10px of padding that doesn't get applied\n  border: 1px solid @inputBorder;\n  background-color: @inputBackground; // Chrome on Linux and Mobile Safari need background-color\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n  height: auto;\n}\n\n// Focus for select, file, radio, and checkbox\nselect:focus,\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n  .tab-focus();\n}\n\n\n// Uneditable inputs\n// -------------------------\n\n// Make uneditable inputs look inactive\n.uneditable-input,\n.uneditable-textarea {\n  color: @grayLight;\n  background-color: darken(@inputBackground, 1%);\n  border-color: @inputBorder;\n  .box-shadow(inset 0 1px 2px rgba(0,0,0,.025));\n  cursor: not-allowed;\n}\n\n// For text that needs to appear as an input but should not be an input\n.uneditable-input {\n  overflow: hidden; // prevent text from wrapping, but still cut it off like an input does\n  white-space: nowrap;\n}\n\n// Make uneditable textareas behave like a textarea\n.uneditable-textarea {\n  width: auto;\n  height: auto;\n}\n\n\n// Placeholder\n// -------------------------\n\n// Placeholder text gets special styles because when browsers invalidate entire lines if it doesn't understand a selector\ninput,\ntextarea {\n  .placeholder();\n}\n\n\n// CHECKBOXES & RADIOS\n// -------------------\n\n// Indent the labels to position radios/checkboxes as hanging\n.radio,\n.checkbox {\n  min-height: @baseLineHeight; // clear the floating input if there is no label text\n  padding-left: 20px;\n}\n.radio input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"] {\n  float: left;\n  margin-left: -20px;\n}\n\n// Move the options list down to align with labels\n.controls > .radio:first-child,\n.controls > .checkbox:first-child {\n  padding-top: 5px; // has to be padding because margin collaspes\n}\n\n// Radios and checkboxes on same line\n// TODO v3: Convert .inline to .control-inline\n.radio.inline,\n.checkbox.inline {\n  display: inline-block;\n  padding-top: 5px;\n  margin-bottom: 0;\n  vertical-align: middle;\n}\n.radio.inline + .radio.inline,\n.checkbox.inline + .checkbox.inline {\n  margin-left: 10px; // space out consecutive inline controls\n}\n\n\n\n// INPUT SIZES\n// -----------\n\n// General classes for quick sizes\n.input-mini       { width: 60px; }\n.input-small      { width: 90px; }\n.input-medium     { width: 150px; }\n.input-large      { width: 210px; }\n.input-xlarge     { width: 270px; }\n.input-xxlarge    { width: 530px; }\n\n// Grid style input sizes\ninput[class*=\"span\"],\nselect[class*=\"span\"],\ntextarea[class*=\"span\"],\n.uneditable-input[class*=\"span\"],\n// Redeclare since the fluid row class is more specific\n.row-fluid input[class*=\"span\"],\n.row-fluid select[class*=\"span\"],\n.row-fluid textarea[class*=\"span\"],\n.row-fluid .uneditable-input[class*=\"span\"] {\n  float: none;\n  margin-left: 0;\n}\n// Ensure input-prepend/append never wraps\n.input-append input[class*=\"span\"],\n.input-append .uneditable-input[class*=\"span\"],\n.input-prepend input[class*=\"span\"],\n.input-prepend .uneditable-input[class*=\"span\"],\n.row-fluid input[class*=\"span\"],\n.row-fluid select[class*=\"span\"],\n.row-fluid textarea[class*=\"span\"],\n.row-fluid .uneditable-input[class*=\"span\"],\n.row-fluid .input-prepend [class*=\"span\"],\n.row-fluid .input-append [class*=\"span\"] {\n  display: inline-block;\n}\n\n\n\n// GRID SIZING FOR INPUTS\n// ----------------------\n\n// Grid sizes\n#grid > .input(@gridColumnWidth, @gridGutterWidth);\n\n// Control row for multiple inputs per line\n.controls-row {\n  .clearfix(); // Clear the float from controls\n}\n\n// Float to collapse white-space for proper grid alignment\n.controls-row [class*=\"span\"],\n// Redeclare the fluid grid collapse since we undo the float for inputs\n.row-fluid .controls-row [class*=\"span\"] {\n  float: left;\n}\n// Explicity set top padding on all checkboxes/radios, not just first-child\n.controls-row .checkbox[class*=\"span\"],\n.controls-row .radio[class*=\"span\"] {\n  padding-top: 5px;\n}\n\n\n\n\n// DISABLED STATE\n// --------------\n\n// Disabled and read-only inputs\ninput[disabled],\nselect[disabled],\ntextarea[disabled],\ninput[readonly],\nselect[readonly],\ntextarea[readonly] {\n  cursor: not-allowed;\n  background-color: @inputDisabledBackground;\n}\n// Explicitly reset the colors here\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"][readonly],\ninput[type=\"checkbox\"][readonly] {\n  background-color: transparent;\n}\n\n\n\n\n// FORM FIELD FEEDBACK STATES\n// --------------------------\n\n// Warning\n.control-group.warning {\n  .formFieldState(@warningText, @warningText, @warningBackground);\n}\n// Error\n.control-group.error {\n  .formFieldState(@errorText, @errorText, @errorBackground);\n}\n// Success\n.control-group.success {\n  .formFieldState(@successText, @successText, @successBackground);\n}\n// Success\n.control-group.info {\n  .formFieldState(@infoText, @infoText, @infoBackground);\n}\n\n// HTML5 invalid states\n// Shares styles with the .control-group.error above\ninput:focus:invalid,\ntextarea:focus:invalid,\nselect:focus:invalid {\n  color: #b94a48;\n  border-color: #ee5f5b;\n  &:focus {\n    border-color: darken(#ee5f5b, 10%);\n    @shadow: 0 0 6px lighten(#ee5f5b, 20%);\n    .box-shadow(@shadow);\n  }\n}\n\n\n\n// FORM ACTIONS\n// ------------\n\n.form-actions {\n  padding: (@baseLineHeight - 1) 20px @baseLineHeight;\n  margin-top: @baseLineHeight;\n  margin-bottom: @baseLineHeight;\n  background-color: @formActionsBackground;\n  border-top: 1px solid #e5e5e5;\n  .clearfix(); // Adding clearfix to allow for .pull-right button containers\n}\n\n\n\n// HELP TEXT\n// ---------\n\n.help-block,\n.help-inline {\n  color: lighten(@textColor, 15%); // lighten the text some for contrast\n}\n\n.help-block {\n  display: block; // account for any element using help-block\n  margin-bottom: @baseLineHeight / 2;\n}\n\n.help-inline {\n  display: inline-block;\n  .ie7-inline-block();\n  vertical-align: middle;\n  padding-left: 5px;\n}\n\n\n\n// INPUT GROUPS\n// ------------\n\n// Allow us to put symbols and text within the input field for a cleaner look\n.input-append,\n.input-prepend {\n  display: inline-block;\n  margin-bottom: @baseLineHeight / 2;\n  vertical-align: middle;\n  font-size: 0; // white space collapse hack\n  white-space: nowrap; // Prevent span and input from separating\n\n  // Reset the white space collapse hack\n  input,\n  select,\n  .uneditable-input,\n  .dropdown-menu,\n  .popover {\n    font-size: @baseFontSize;\n  }\n\n  input,\n  select,\n  .uneditable-input {\n    position: relative; // placed here by default so that on :focus we can place the input above the .add-on for full border and box-shadow goodness\n    margin-bottom: 0; // prevent bottom margin from screwing up alignment in stacked forms\n    *margin-left: 0;\n    vertical-align: top;\n    .border-radius(0 @inputBorderRadius @inputBorderRadius 0);\n    // Make input on top when focused so blue border and shadow always show\n    &:focus {\n      z-index: 2;\n    }\n  }\n  .add-on {\n    display: inline-block;\n    width: auto;\n    height: @baseLineHeight;\n    min-width: 16px;\n    padding: 4px 5px;\n    font-size: @baseFontSize;\n    font-weight: normal;\n    line-height: @baseLineHeight;\n    text-align: center;\n    text-shadow: 0 1px 0 @white;\n    background-color: @grayLighter;\n    border: 1px solid #ccc;\n  }\n  .add-on,\n  .btn,\n  .btn-group > .dropdown-toggle {\n    vertical-align: top;\n    .border-radius(0);\n  }\n  .active {\n    background-color: lighten(@green, 30);\n    border-color: @green;\n  }\n}\n\n.input-prepend {\n  .add-on,\n  .btn {\n    margin-right: -1px;\n  }\n  .add-on:first-child,\n  .btn:first-child {\n    // FYI, `.btn:first-child` accounts for a button group that's prepended\n    .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);\n  }\n}\n\n.input-append {\n  input,\n  select,\n  .uneditable-input {\n    .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);\n    + .btn-group .btn:last-child {\n      .border-radius(0 @inputBorderRadius @inputBorderRadius 0);\n    }\n  }\n  .add-on,\n  .btn,\n  .btn-group {\n    margin-left: -1px;\n  }\n  .add-on:last-child,\n  .btn:last-child,\n  .btn-group:last-child > .dropdown-toggle {\n    .border-radius(0 @inputBorderRadius @inputBorderRadius 0);\n  }\n}\n\n// Remove all border-radius for inputs with both prepend and append\n.input-prepend.input-append {\n  input,\n  select,\n  .uneditable-input {\n    .border-radius(0);\n    + .btn-group .btn {\n      .border-radius(0 @inputBorderRadius @inputBorderRadius 0);\n    }\n  }\n  .add-on:first-child,\n  .btn:first-child {\n    margin-right: -1px;\n    .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);\n  }\n  .add-on:last-child,\n  .btn:last-child {\n    margin-left: -1px;\n    .border-radius(0 @inputBorderRadius @inputBorderRadius 0);\n  }\n  .btn-group:first-child {\n    margin-left: 0;\n  }\n}\n\n\n\n\n// SEARCH FORM\n// -----------\n\ninput.search-query {\n  padding-right: 14px;\n  padding-right: 4px \\9;\n  padding-left: 14px;\n  padding-left: 4px \\9; /* IE7-8 doesn't have border-radius, so don't indent the padding */\n  margin-bottom: 0; // Remove the default margin on all inputs\n  .border-radius(15px);\n}\n\n/* Allow for input prepend/append in search forms */\n.form-search .input-append .search-query,\n.form-search .input-prepend .search-query {\n  .border-radius(0); // Override due to specificity\n}\n.form-search .input-append .search-query {\n  .border-radius(14px 0 0 14px);\n}\n.form-search .input-append .btn {\n  .border-radius(0 14px 14px 0);\n}\n.form-search .input-prepend .search-query {\n  .border-radius(0 14px 14px 0);\n}\n.form-search .input-prepend .btn {\n  .border-radius(14px 0 0 14px);\n}\n\n\n\n\n// HORIZONTAL & VERTICAL FORMS\n// ---------------------------\n\n// Common properties\n// -----------------\n\n.form-search,\n.form-inline,\n.form-horizontal {\n  input,\n  textarea,\n  select,\n  .help-inline,\n  .uneditable-input,\n  .input-prepend,\n  .input-append {\n    display: inline-block;\n    .ie7-inline-block();\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  // Re-hide hidden elements due to specifity\n  .hide {\n    display: none;\n  }\n}\n.form-search label,\n.form-inline label,\n.form-search .btn-group,\n.form-inline .btn-group {\n  display: inline-block;\n}\n// Remove margin for input-prepend/-append\n.form-search .input-append,\n.form-inline .input-append,\n.form-search .input-prepend,\n.form-inline .input-prepend {\n  margin-bottom: 0;\n}\n// Inline checkbox/radio labels (remove padding on left)\n.form-search .radio,\n.form-search .checkbox,\n.form-inline .radio,\n.form-inline .checkbox {\n  padding-left: 0;\n  margin-bottom: 0;\n  vertical-align: middle;\n}\n// Remove float and margin, set to inline-block\n.form-search .radio input[type=\"radio\"],\n.form-search .checkbox input[type=\"checkbox\"],\n.form-inline .radio input[type=\"radio\"],\n.form-inline .checkbox input[type=\"checkbox\"] {\n  float: left;\n  margin-right: 3px;\n  margin-left: 0;\n}\n\n\n// Margin to space out fieldsets\n.control-group {\n  margin-bottom: @baseLineHeight / 2;\n}\n\n// Legend collapses margin, so next element is responsible for spacing\nlegend + .control-group {\n  margin-top: @baseLineHeight;\n  -webkit-margin-top-collapse: separate;\n}\n\n// Horizontal-specific styles\n// --------------------------\n\n.form-horizontal {\n  // Increase spacing between groups\n  .control-group {\n    margin-bottom: @baseLineHeight;\n    .clearfix();\n  }\n  // Float the labels left\n  .control-label {\n    float: left;\n    width: @horizontalComponentOffset - 20;\n    padding-top: 5px;\n    text-align: right;\n  }\n  // Move over all input controls and content\n  .controls {\n    // Super jank IE7 fix to ensure the inputs in .input-append and input-prepend\n    // don't inherit the margin of the parent, in this case .controls\n    *display: inline-block;\n    *padding-left: 20px;\n    margin-left: @horizontalComponentOffset;\n    *margin-left: 0;\n    &:first-child {\n      *padding-left: @horizontalComponentOffset;\n    }\n  }\n  // Remove bottom margin on block level help text since that's accounted for on .control-group\n  .help-block {\n    margin-bottom: 0;\n  }\n  // And apply it only to .help-block instances that follow a form control\n  input,\n  select,\n  textarea,\n  .uneditable-input,\n  .input-prepend,\n  .input-append {\n    + .help-block {\n      margin-top: @baseLineHeight / 2;\n    }\n  }\n  // Move over buttons in .form-actions to align with .controls\n  .form-actions {\n    padding-left: @horizontalComponentOffset;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap2/grid.less",
    "content": "//\n// Grid system\n// --------------------------------------------------\n\n\n// Fixed (940px)\n#grid > .core(@gridColumnWidth, @gridGutterWidth);\n\n// Fluid (940px)\n#grid > .fluid(@fluidGridColumnWidth, @fluidGridGutterWidth);\n\n// Reset utility classes due to specificity\n[class*=\"span\"].hide,\n.row-fluid [class*=\"span\"].hide {\n  display: none;\n}\n\n[class*=\"span\"].pull-right,\n.row-fluid [class*=\"span\"].pull-right {\n  float: right;\n}\n"
  },
  {
    "path": "lib/bootstrap2/hero-unit.less",
    "content": "//\n// Hero unit\n// --------------------------------------------------\n\n\n.hero-unit {\n  padding: 60px;\n  margin-bottom: 30px;\n  font-size: 18px;\n  font-weight: 200;\n  line-height: @baseLineHeight * 1.5;\n  color: @heroUnitLeadColor;\n  background-color: @heroUnitBackground;\n  .border-radius(6px);\n  h1 {\n    margin-bottom: 0;\n    font-size: 60px;\n    line-height: 1;\n    color: @heroUnitHeadingColor;\n    letter-spacing: -1px;\n  }\n  li {\n    line-height: @baseLineHeight * 1.5; // Reset since we specify in type.less\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap2/labels-badges.less",
    "content": "//\n// Labels and badges\n// --------------------------------------------------\n\n\n// Base classes\n.label,\n.badge {\n  display: inline-block;\n  padding: 2px 4px;\n  font-size: @baseFontSize * .846;\n  font-weight: bold;\n  line-height: 14px; // ensure proper line-height if floated\n  color: @white;\n  vertical-align: baseline;\n  white-space: nowrap;\n  text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n  background-color: @grayLight;\n}\n// Set unique padding and border-radii\n.label {\n  .border-radius(3px);\n}\n.badge {\n  padding-left: 9px;\n  padding-right: 9px;\n  .border-radius(9px);\n}\n\n// Empty labels/badges collapse\n.label,\n.badge {\n  &:empty {\n    display: none;\n  }\n}\n\n// Hover/focus state, but only for links\na {\n  &.label:hover,\n  &.label:focus,\n  &.badge:hover,\n  &.badge:focus {\n    color: @white;\n    text-decoration: none;\n    cursor: pointer;\n  }\n}\n\n// Colors\n// Only give background-color difference to links (and to simplify, we don't qualifty with `a` but [href] attribute)\n.label,\n.badge {\n  // Important (red)\n  &-important         { background-color: @errorText; }\n  &-important[href]   { background-color: darken(@errorText, 10%); }\n  // Warnings (orange)\n  &-warning           { background-color: @orange; }\n  &-warning[href]     { background-color: darken(@orange, 10%); }\n  // Success (green)\n  &-success           { background-color: @successText; }\n  &-success[href]     { background-color: darken(@successText, 10%); }\n  // Info (turquoise)\n  &-info              { background-color: @infoText; }\n  &-info[href]        { background-color: darken(@infoText, 10%); }\n  // Inverse (black)\n  &-inverse           { background-color: @grayDark; }\n  &-inverse[href]     { background-color: darken(@grayDark, 10%); }\n}\n\n// Quick fix for labels/badges in buttons\n.btn {\n  .label,\n  .badge {\n    position: relative;\n    top: -1px;\n  }\n}\n.btn-mini {\n  .label,\n  .badge {\n    top: 0;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap2/layouts.less",
    "content": "//\n// Layouts\n// --------------------------------------------------\n\n\n// Container (centered, fixed-width layouts)\n.container {\n  .container-fixed();\n}\n\n// Fluid layouts (left aligned, with sidebar, min- & max-width content)\n.container-fluid {\n  padding-right: @gridGutterWidth;\n  padding-left: @gridGutterWidth;\n  .clearfix();\n}"
  },
  {
    "path": "lib/bootstrap2/media.less",
    "content": "// Media objects\n// Source: http://stubbornella.org/content/?p=497\n// --------------------------------------------------\n\n\n// Common styles\n// -------------------------\n\n// Clear the floats\n.media,\n.media-body {\n  overflow: hidden;\n  *overflow: visible;\n  zoom: 1;\n}\n\n// Proper spacing between instances of .media\n.media,\n.media .media {\n  margin-top: 15px;\n}\n.media:first-child {\n  margin-top: 0;\n}\n\n// For images and videos, set to block\n.media-object {\n  display: block;\n}\n\n// Reset margins on headings for tighter default spacing\n.media-heading {\n  margin: 0 0 5px;\n}\n\n\n// Media image alignment\n// -------------------------\n\n.media > .pull-left {\n  margin-right: 10px;\n}\n.media > .pull-right {\n  margin-left: 10px;\n}\n\n\n// Media list variation\n// -------------------------\n\n// Undo default ul/ol styles\n.media-list {\n  margin-left: 0;\n  list-style: none;\n}\n"
  },
  {
    "path": "lib/bootstrap2/mixins.less",
    "content": "//\n// Mixins\n// --------------------------------------------------\n\n\n// UTILITY MIXINS\n// --------------------------------------------------\n\n// Clearfix\n// --------\n// For clearing floats like a boss h5bp.com/q\n.clearfix {\n  *zoom: 1;\n  &:before,\n  &:after {\n    display: table;\n    content: \"\";\n    // Fixes Opera/contenteditable bug:\n    // http://nicolasgallagher.com/micro-clearfix-hack/#comment-36952\n    line-height: 0;\n  }\n  &:after {\n    clear: both;\n  }\n}\n\n// Webkit-style focus\n// ------------------\n.tab-focus() {\n  // Default\n  outline: thin dotted #333;\n  // Webkit\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n\n// Center-align a block level element\n// ----------------------------------\n.center-block() {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n// IE7 inline-block\n// ----------------\n.ie7-inline-block() {\n  *display: inline; /* IE7 inline-block hack */\n  *zoom: 1;\n}\n\n// IE7 likes to collapse whitespace on either side of the inline-block elements.\n// Ems because we're attempting to match the width of a space character. Left\n// version is for form buttons, which typically come after other elements, and\n// right version is for icons, which come before. Applying both is ok, but it will\n// mean that space between those elements will be .6em (~2 space characters) in IE7,\n// instead of the 1 space in other browsers.\n.ie7-restore-left-whitespace() {\n  *margin-left: .3em;\n\n  &:first-child {\n    *margin-left: 0;\n  }\n}\n\n.ie7-restore-right-whitespace() {\n  *margin-right: .3em;\n}\n\n// Sizing shortcuts\n// -------------------------\n.size(@height, @width) {\n  width: @width;\n  height: @height;\n}\n.square(@size) {\n  .size(@size, @size);\n}\n\n// Placeholder text\n// -------------------------\n.placeholder(@color: @placeholderText) {\n  &:-moz-placeholder {\n    color: @color;\n  }\n  &:-ms-input-placeholder {\n    color: @color;\n  }\n  &::-webkit-input-placeholder {\n    color: @color;\n  }\n}\n\n// Text overflow\n// -------------------------\n// Requires inline-block or block for proper styling\n.text-overflow() {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n// CSS image replacement\n// -------------------------\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n.hide-text {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n\n// FONTS\n// --------------------------------------------------\n\n#font {\n  #family {\n    .serif() {\n      font-family: @serifFontFamily;\n    }\n    .sans-serif() {\n      font-family: @sansFontFamily;\n    }\n    .monospace() {\n      font-family: @monoFontFamily;\n    }\n  }\n  .shorthand(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {\n    font-size: @size;\n    font-weight: @weight;\n    line-height: @lineHeight;\n  }\n  .serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {\n    #font > #family > .serif;\n    #font > .shorthand(@size, @weight, @lineHeight);\n  }\n  .sans-serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {\n    #font > #family > .sans-serif;\n    #font > .shorthand(@size, @weight, @lineHeight);\n  }\n  .monospace(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {\n    #font > #family > .monospace;\n    #font > .shorthand(@size, @weight, @lineHeight);\n  }\n}\n\n\n// FORMS\n// --------------------------------------------------\n\n// Block level inputs\n.input-block-level {\n  display: block;\n  width: 100%;\n  min-height: @inputHeight; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n  .box-sizing(border-box); // Makes inputs behave like true block-level elements\n}\n\n\n\n// Mixin for form field states\n.formFieldState(@textColor: #555, @borderColor: #ccc, @backgroundColor: #f5f5f5) {\n  // Set the text color\n  .control-label,\n  .help-block,\n  .help-inline {\n    color: @textColor;\n  }\n  // Style inputs accordingly\n  .checkbox,\n  .radio,\n  input,\n  select,\n  textarea {\n    color: @textColor;\n  }\n  input,\n  select,\n  textarea {\n    border-color: @borderColor;\n    .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work\n    &:focus {\n      border-color: darken(@borderColor, 10%);\n      @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@borderColor, 20%);\n      .box-shadow(@shadow);\n    }\n  }\n  // Give a small background color for input-prepend/-append\n  .input-prepend .add-on,\n  .input-append .add-on {\n    color: @textColor;\n    background-color: @backgroundColor;\n    border-color: @textColor;\n  }\n}\n\n\n\n// CSS3 PROPERTIES\n// --------------------------------------------------\n\n// Border Radius\n.border-radius(@radius) {\n  -webkit-border-radius: @radius;\n     -moz-border-radius: @radius;\n          border-radius: @radius;\n}\n\n// Single Corner Border Radius\n.border-top-left-radius(@radius) {\n  -webkit-border-top-left-radius: @radius;\n      -moz-border-radius-topleft: @radius;\n          border-top-left-radius: @radius;\n}\n.border-top-right-radius(@radius) {\n  -webkit-border-top-right-radius: @radius;\n      -moz-border-radius-topright: @radius;\n          border-top-right-radius: @radius;\n}\n.border-bottom-right-radius(@radius) {\n  -webkit-border-bottom-right-radius: @radius;\n      -moz-border-radius-bottomright: @radius;\n          border-bottom-right-radius: @radius;\n}\n.border-bottom-left-radius(@radius) {\n  -webkit-border-bottom-left-radius: @radius;\n      -moz-border-radius-bottomleft: @radius;\n          border-bottom-left-radius: @radius;\n}\n\n// Single Side Border Radius\n.border-top-radius(@radius) {\n  .border-top-right-radius(@radius);\n  .border-top-left-radius(@radius);\n}\n.border-right-radius(@radius) {\n  .border-top-right-radius(@radius);\n  .border-bottom-right-radius(@radius);\n}\n.border-bottom-radius(@radius) {\n  .border-bottom-right-radius(@radius);\n  .border-bottom-left-radius(@radius);\n}\n.border-left-radius(@radius) {\n  .border-top-left-radius(@radius);\n  .border-bottom-left-radius(@radius);\n}\n\n// Drop shadows\n.box-shadow(@shadow) {\n  -webkit-box-shadow: @shadow;\n     -moz-box-shadow: @shadow;\n          box-shadow: @shadow;\n}\n\n// Transitions\n.transition(@transition) {\n  -webkit-transition: @transition;\n     -moz-transition: @transition;\n       -o-transition: @transition;\n          transition: @transition;\n}\n.transition-delay(@transition-delay) {\n  -webkit-transition-delay: @transition-delay;\n     -moz-transition-delay: @transition-delay;\n       -o-transition-delay: @transition-delay;\n          transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n  -webkit-transition-duration: @transition-duration;\n     -moz-transition-duration: @transition-duration;\n       -o-transition-duration: @transition-duration;\n          transition-duration: @transition-duration;\n}\n\n// Transformations\n.rotate(@degrees) {\n  -webkit-transform: rotate(@degrees);\n     -moz-transform: rotate(@degrees);\n      -ms-transform: rotate(@degrees);\n       -o-transform: rotate(@degrees);\n          transform: rotate(@degrees);\n}\n.scale(@ratio) {\n  -webkit-transform: scale(@ratio);\n     -moz-transform: scale(@ratio);\n      -ms-transform: scale(@ratio);\n       -o-transform: scale(@ratio);\n          transform: scale(@ratio);\n}\n.translate(@x, @y) {\n  -webkit-transform: translate(@x, @y);\n     -moz-transform: translate(@x, @y);\n      -ms-transform: translate(@x, @y);\n       -o-transform: translate(@x, @y);\n          transform: translate(@x, @y);\n}\n.skew(@x, @y) {\n  -webkit-transform: skew(@x, @y);\n     -moz-transform: skew(@x, @y);\n      -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885\n       -o-transform: skew(@x, @y);\n          transform: skew(@x, @y);\n  -webkit-backface-visibility: hidden; // See https://github.com/twbs/bootstrap/issues/5319\n}\n.translate3d(@x, @y, @z) {\n  -webkit-transform: translate3d(@x, @y, @z);\n     -moz-transform: translate3d(@x, @y, @z);\n       -o-transform: translate3d(@x, @y, @z);\n          transform: translate3d(@x, @y, @z);\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden\n// See git pull https://github.com/dannykeane/bootstrap.git backface-visibility for examples\n.backface-visibility(@visibility){\n\t-webkit-backface-visibility: @visibility;\n\t   -moz-backface-visibility: @visibility;\n\t        backface-visibility: @visibility;\n}\n\n// Background clipping\n// Heads up: FF 3.6 and under need \"padding\" instead of \"padding-box\"\n.background-clip(@clip) {\n  -webkit-background-clip: @clip;\n     -moz-background-clip: @clip;\n          background-clip: @clip;\n}\n\n// Background sizing\n.background-size(@size) {\n  -webkit-background-size: @size;\n     -moz-background-size: @size;\n       -o-background-size: @size;\n          background-size: @size;\n}\n\n\n// Box sizing\n.box-sizing(@boxmodel) {\n  -webkit-box-sizing: @boxmodel;\n     -moz-box-sizing: @boxmodel;\n          box-sizing: @boxmodel;\n}\n\n// User select\n// For selecting text on the page\n.user-select(@select) {\n  -webkit-user-select: @select;\n     -moz-user-select: @select;\n      -ms-user-select: @select;\n       -o-user-select: @select;\n          user-select: @select;\n}\n\n// Resize anything\n.resizable(@direction) {\n  resize: @direction; // Options: horizontal, vertical, both\n  overflow: auto; // Safari fix\n}\n\n// CSS3 Content Columns\n.content-columns(@columnCount, @columnGap: @gridGutterWidth) {\n  -webkit-column-count: @columnCount;\n     -moz-column-count: @columnCount;\n          column-count: @columnCount;\n  -webkit-column-gap: @columnGap;\n     -moz-column-gap: @columnGap;\n          column-gap: @columnGap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n  word-wrap: break-word;\n  -webkit-hyphens: @mode;\n     -moz-hyphens: @mode;\n      -ms-hyphens: @mode;\n       -o-hyphens: @mode;\n          hyphens: @mode;\n}\n\n// Opacity\n.opacity(@opacity) {\n  opacity: @opacity / 100;\n  filter: ~\"alpha(opacity=@{opacity})\";\n}\n\n\n\n// BACKGROUNDS\n// --------------------------------------------------\n\n// Add an alphatransparency value to any background or border color (via Elyse Holladay)\n#translucent {\n  .background(@color: @white, @alpha: 1) {\n    background-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);\n  }\n  .border(@color: @white, @alpha: 1) {\n    border-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);\n    .background-clip(padding-box);\n  }\n}\n\n// Gradient Bar Colors for buttons and alerts\n.gradientBar(@primaryColor, @secondaryColor, @textColor: #fff, @textShadow: 0 -1px 0 rgba(0,0,0,.25)) {\n  color: @textColor;\n  text-shadow: @textShadow;\n  #gradient > .vertical(@primaryColor, @secondaryColor);\n  border-color: @secondaryColor @secondaryColor darken(@secondaryColor, 15%);\n  border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) fadein(rgba(0,0,0,.1), 15%);\n}\n\n// Gradients\n#gradient {\n  .horizontal(@startColor: #555, @endColor: #333) {\n    background-color: @endColor;\n    background-image: -moz-linear-gradient(left, @startColor, @endColor); // FF 3.6+\n    background-image: -webkit-gradient(linear, 0 0, 100% 0, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+\n    background-image: -webkit-linear-gradient(left, @startColor, @endColor); // Safari 5.1+, Chrome 10+\n    background-image: -o-linear-gradient(left, @startColor, @endColor); // Opera 11.10\n    background-image: linear-gradient(to right, @startColor, @endColor); // Standard, IE10\n    background-repeat: repeat-x;\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@startColor),argb(@endColor))); // IE9 and down\n  }\n  .vertical(@startColor: #555, @endColor: #333) {\n    background-color: mix(@startColor, @endColor, 60%);\n    background-image: -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+\n    background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+\n    background-image: -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+\n    background-image: -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10\n    background-image: linear-gradient(to bottom, @startColor, @endColor); // Standard, IE10\n    background-repeat: repeat-x;\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@startColor),argb(@endColor))); // IE9 and down\n  }\n  .directional(@startColor: #555, @endColor: #333, @deg: 45deg) {\n    background-color: @endColor;\n    background-repeat: repeat-x;\n    background-image: -moz-linear-gradient(@deg, @startColor, @endColor); // FF 3.6+\n    background-image: -webkit-linear-gradient(@deg, @startColor, @endColor); // Safari 5.1+, Chrome 10+\n    background-image: -o-linear-gradient(@deg, @startColor, @endColor); // Opera 11.10\n    background-image: linear-gradient(@deg, @startColor, @endColor); // Standard, IE10\n  }\n  .horizontal-three-colors(@startColor: #00b3ee, @midColor: #7a43b6, @colorStop: 50%, @endColor: #c3325f) {\n    background-color: mix(@midColor, @endColor, 80%);\n    background-image: -webkit-gradient(left, linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor));\n    background-image: -webkit-linear-gradient(left, @startColor, @midColor @colorStop, @endColor);\n    background-image: -moz-linear-gradient(left, @startColor, @midColor @colorStop, @endColor);\n    background-image: -o-linear-gradient(left, @startColor, @midColor @colorStop, @endColor);\n    background-image: linear-gradient(to right, @startColor, @midColor @colorStop, @endColor);\n    background-repeat: no-repeat;\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@startColor),argb(@endColor))); // IE9 and down, gets no color-stop at all for proper fallback\n  }\n\n  .vertical-three-colors(@startColor: #00b3ee, @midColor: #7a43b6, @colorStop: 50%, @endColor: #c3325f) {\n    background-color: mix(@midColor, @endColor, 80%);\n    background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor));\n    background-image: -webkit-linear-gradient(@startColor, @midColor @colorStop, @endColor);\n    background-image: -moz-linear-gradient(top, @startColor, @midColor @colorStop, @endColor);\n    background-image: -o-linear-gradient(@startColor, @midColor @colorStop, @endColor);\n    background-image: linear-gradient(@startColor, @midColor @colorStop, @endColor);\n    background-repeat: no-repeat;\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@startColor),argb(@endColor))); // IE9 and down, gets no color-stop at all for proper fallback\n  }\n  .radial(@innerColor: #555, @outerColor: #333) {\n    background-color: @outerColor;\n    background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(@innerColor), to(@outerColor));\n    background-image: -webkit-radial-gradient(circle, @innerColor, @outerColor);\n    background-image: -moz-radial-gradient(circle, @innerColor, @outerColor);\n    background-image: -o-radial-gradient(circle, @innerColor, @outerColor);\n    background-repeat: no-repeat;\n  }\n  .striped(@color: #555, @angle: 45deg) {\n    background-color: @color;\n    background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,.15)), color-stop(.75, rgba(255,255,255,.15)), color-stop(.75, transparent), to(transparent));\n    background-image: -webkit-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);\n    background-image: -moz-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);\n    background-image: -o-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);\n    background-image: linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);\n  }\n}\n// Reset filters for IE\n.reset-filter() {\n  filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n\n\n\n// COMPONENT MIXINS\n// --------------------------------------------------\n\n// Horizontal dividers\n// -------------------------\n// Dividers (basically an hr) within dropdowns and nav lists\n.nav-divider(@top: #e5e5e5, @bottom: @white) {\n  // IE7 needs a set width since we gave a height. Restricting just\n  // to IE7 to keep the 1px left/right space in other browsers.\n  // It is unclear where IE is getting the extra space that we need\n  // to negative-margin away, but so it goes.\n  *width: 100%;\n  height: 1px;\n  margin: ((@baseLineHeight / 2) - 1) 1px; // 8px 1px\n  *margin: -5px 0 5px;\n  overflow: hidden;\n  background-color: @top;\n  border-bottom: 1px solid @bottom;\n}\n\n// Button backgrounds\n// ------------------\n.buttonBackground(@startColor, @endColor, @textColor: #fff, @textShadow: 0 -1px 0 rgba(0,0,0,.25)) {\n  // gradientBar will set the background to a pleasing blend of these, to support IE<=9\n  .gradientBar(@startColor, @endColor, @textColor, @textShadow);\n  *background-color: @endColor; /* Darken IE7 buttons by default so they stand out more given they won't have borders */\n  .reset-filter();\n\n  // in these cases the gradient won't cover the background, so we override\n  &:hover, &:focus, &:active, &.active, &.disabled, &[disabled] {\n    color: @textColor;\n    background-color: @endColor;\n    *background-color: darken(@endColor, 5%);\n  }\n\n  // IE 7 + 8 can't handle box-shadow to show active, so we darken a bit ourselves\n  &:active,\n  &.active {\n    background-color: darken(@endColor, 10%) e(\"\\9\");\n  }\n}\n\n// Navbar vertical align\n// -------------------------\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so write out `.navbarVerticalAlign(30px);` to calculate the appropriate top margin.\n.navbarVerticalAlign(@elementHeight) {\n  margin-top: (@navbarHeight - @elementHeight) / 2;\n}\n\n\n\n// Grid System\n// -----------\n\n// Centered container element\n.container-fixed() {\n  margin-right: auto;\n  margin-left: auto;\n  .clearfix();\n}\n\n// Table columns\n.tableColumns(@columnSpan: 1) {\n  float: none; // undo default grid column styles\n  width: ((@gridColumnWidth) * @columnSpan) + (@gridGutterWidth * (@columnSpan - 1)) - 16; // 16 is total padding on left and right of table cells\n  margin-left: 0; // undo default grid column styles\n}\n\n// Make a Grid\n// Use .makeRow and .makeColumn to assign semantic layouts grid system behavior\n.makeRow() {\n  margin-left: @gridGutterWidth * -1;\n  .clearfix();\n}\n.makeColumn(@columns: 1, @offset: 0) {\n  float: left;\n  margin-left: (@gridColumnWidth * @offset) + (@gridGutterWidth * (@offset - 1)) + (@gridGutterWidth * 2);\n  width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));\n}\n\n// The Grid\n#grid {\n\n  .core (@gridColumnWidth, @gridGutterWidth) {\n\n    .spanX (@index) when (@index > 0) {\n      .span@{index} { .span(@index); }\n      .spanX(@index - 1);\n    }\n    .spanX (0) {}\n\n    .offsetX (@index) when (@index > 0) {\n      .offset@{index} { .offset(@index); }\n      .offsetX(@index - 1);\n    }\n    .offsetX (0) {}\n\n    .offset (@columns) {\n      margin-left: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns + 1));\n    }\n\n    .span (@columns) {\n      width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));\n    }\n\n    .row {\n      margin-left: @gridGutterWidth * -1;\n      .clearfix();\n    }\n\n    [class*=\"span\"] {\n      float: left;\n      min-height: 1px; // prevent collapsing columns\n      margin-left: @gridGutterWidth;\n    }\n\n    // Set the container width, and override it for fixed navbars in media queries\n    .container,\n    .navbar-static-top .container,\n    .navbar-fixed-top .container,\n    .navbar-fixed-bottom .container { .span(@gridColumns); }\n\n    // generate .spanX and .offsetX\n    .spanX (@gridColumns);\n    .offsetX (@gridColumns);\n\n  }\n\n  .fluid (@fluidGridColumnWidth, @fluidGridGutterWidth) {\n\n    .spanX (@index) when (@index > 0) {\n      .span@{index} { .span(@index); }\n      .spanX(@index - 1);\n    }\n    .spanX (0) {}\n\n    .offsetX (@index) when (@index > 0) {\n      .offset@{index} { .offset(@index); }\n      .offset@{index}:first-child { .offsetFirstChild(@index); }\n      .offsetX(@index - 1);\n    }\n    .offsetX (0) {}\n\n    .offset (@columns) {\n      margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) + (@fluidGridGutterWidth*2);\n  \t  *margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%) + (@fluidGridGutterWidth*2) - (.5 / @gridRowWidth * 100 * 1%);\n    }\n\n    .offsetFirstChild (@columns) {\n      margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) + (@fluidGridGutterWidth);\n      *margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%) + @fluidGridGutterWidth - (.5 / @gridRowWidth * 100 * 1%);\n    }\n\n    .span (@columns) {\n      width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1));\n      *width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%);\n    }\n\n    .row-fluid {\n      width: 100%;\n      .clearfix();\n      [class*=\"span\"] {\n        .input-block-level();\n        float: left;\n        margin-left: @fluidGridGutterWidth;\n        *margin-left: @fluidGridGutterWidth - (.5 / @gridRowWidth * 100 * 1%);\n      }\n      [class*=\"span\"]:first-child {\n        margin-left: 0;\n      }\n\n      // Space grid-sized controls properly if multiple per line\n      .controls-row [class*=\"span\"] + [class*=\"span\"] {\n        margin-left: @fluidGridGutterWidth;\n      }\n\n      // generate .spanX and .offsetX\n      .spanX (@gridColumns);\n      .offsetX (@gridColumns);\n    }\n\n  }\n\n  .input(@gridColumnWidth, @gridGutterWidth) {\n\n    .spanX (@index) when (@index > 0) {\n      input.span@{index}, textarea.span@{index}, .uneditable-input.span@{index} { .span(@index); }\n      .spanX(@index - 1);\n    }\n    .spanX (0) {}\n\n    .span(@columns) {\n      width: ((@gridColumnWidth) * @columns) + (@gridGutterWidth * (@columns - 1)) - 14;\n    }\n\n    input,\n    textarea,\n    .uneditable-input {\n      margin-left: 0; // override margin-left from core grid system\n    }\n\n    // Space grid-sized controls properly if multiple per line\n    .controls-row [class*=\"span\"] + [class*=\"span\"] {\n      margin-left: @gridGutterWidth;\n    }\n\n    // generate .spanX\n    .spanX (@gridColumns);\n\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap2/modals.less",
    "content": "//\n// Modals\n// --------------------------------------------------\n\n// Background\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: @zindexModalBackdrop;\n  background-color: @black;\n  // Fade for backdrop\n  &.fade { opacity: 0; }\n}\n\n.modal-backdrop,\n.modal-backdrop.fade.in {\n  .opacity(80);\n}\n\n// Base modal\n.modal {\n  position: fixed;\n  top: 10%;\n  left: 50%;\n  z-index: @zindexModal;\n  width: 560px;\n  margin-left: -280px;\n  background-color: @white;\n  border: 1px solid #999;\n  border: 1px solid rgba(0,0,0,.3);\n  *border: 1px solid #999; /* IE6-7 */\n  .border-radius(6px);\n  .box-shadow(0 3px 7px rgba(0,0,0,0.3));\n  .background-clip(padding-box);\n  // Remove focus outline from opened modal\n  outline: none;\n\n  &.fade {\n    .transition(e('opacity .3s linear, top .3s ease-out'));\n    top: -25%;\n  }\n  &.fade.in { top: 10%; }\n}\n.modal-header {\n  padding: 9px 15px;\n  border-bottom: 1px solid #eee;\n  // Close icon\n  .close { margin-top: 2px; }\n  // Heading\n  h3 {\n    margin: 0;\n    line-height: 30px;\n  }\n}\n\n// Body (where all modal content resides)\n.modal-body {\n  position: relative;\n  overflow-y: auto;\n  max-height: 400px;\n  padding: 15px;\n}\n// Remove bottom margin if need be\n.modal-form {\n  margin-bottom: 0;\n}\n\n// Footer (for actions)\n.modal-footer {\n  padding: 14px 15px 15px;\n  margin-bottom: 0;\n  text-align: right; // right align buttons\n  background-color: #f5f5f5;\n  border-top: 1px solid #ddd;\n  .border-radius(0 0 6px 6px);\n  .box-shadow(inset 0 1px 0 @white);\n  .clearfix(); // clear it in case folks use .pull-* classes on buttons\n\n  // Properly space out buttons\n  .btn + .btn {\n    margin-left: 5px;\n    margin-bottom: 0; // account for input[type=\"submit\"] which gets the bottom margin like all other inputs\n  }\n  // but override that for button groups\n  .btn-group .btn + .btn {\n    margin-left: -1px;\n  }\n  // and override it for block buttons as well\n  .btn-block + .btn-block {\n    margin-left: 0;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap2/navbar.less",
    "content": "//\n// Navbars (Redux)\n// --------------------------------------------------\n\n\n// COMMON STYLES\n// -------------\n\n// Base class and wrapper\n.navbar {\n  overflow: visible;\n  margin-bottom: @baseLineHeight;\n\n  // Fix for IE7's bad z-indexing so dropdowns don't appear below content that follows the navbar\n  *position: relative;\n  *z-index: 2;\n}\n\n// Inner for background effects\n// Gradient is applied to its own element because overflow visible is not honored by IE when filter is present\n.navbar-inner {\n  min-height: @navbarHeight;\n  padding-left:  20px;\n  padding-right: 20px;\n  #gradient > .vertical(@navbarBackgroundHighlight, @navbarBackground);\n  border: 1px solid @navbarBorder;\n  .border-radius(@baseBorderRadius);\n  .box-shadow(0 1px 4px rgba(0,0,0,.065));\n\n  // Prevent floats from breaking the navbar\n  .clearfix();\n}\n\n// Set width to auto for default container\n// We then reset it for fixed navbars in the #gridSystem mixin\n.navbar .container {\n  width: auto;\n}\n\n// Override the default collapsed state\n.nav-collapse.collapse {\n  height: auto;\n  overflow: visible;\n}\n\n\n// Brand: website or project name\n// -------------------------\n.navbar .brand {\n  float: left;\n  display: block;\n  // Vertically center the text given @navbarHeight\n  padding: ((@navbarHeight - @baseLineHeight) / 2) 20px ((@navbarHeight - @baseLineHeight) / 2);\n  margin-left: -20px; // negative indent to left-align the text down the page\n  font-size: 20px;\n  font-weight: 200;\n  color: @navbarBrandColor;\n  text-shadow: 0 1px 0 @navbarBackgroundHighlight;\n  &:hover,\n  &:focus {\n    text-decoration: none;\n  }\n}\n\n// Plain text in topbar\n// -------------------------\n.navbar-text {\n  margin-bottom: 0;\n  line-height: @navbarHeight;\n  color: @navbarText;\n}\n\n// Janky solution for now to account for links outside the .nav\n// -------------------------\n.navbar-link {\n  color: @navbarLinkColor;\n  &:hover,\n  &:focus {\n    color: @navbarLinkColorHover;\n  }\n}\n\n// Dividers in navbar\n// -------------------------\n.navbar .divider-vertical {\n  height: @navbarHeight;\n  margin: 0 9px;\n  border-left: 1px solid @navbarBackground;\n  border-right: 1px solid @navbarBackgroundHighlight;\n}\n\n// Buttons in navbar\n// -------------------------\n.navbar .btn,\n.navbar .btn-group {\n  .navbarVerticalAlign(30px); // Vertically center in navbar\n}\n.navbar .btn-group .btn,\n.navbar .input-prepend .btn,\n.navbar .input-append .btn,\n.navbar .input-prepend .btn-group,\n.navbar .input-append .btn-group {\n  margin-top: 0; // then undo the margin here so we don't accidentally double it\n}\n\n// Navbar forms\n// -------------------------\n.navbar-form {\n  margin-bottom: 0; // remove default bottom margin\n  .clearfix();\n  input,\n  select,\n  .radio,\n  .checkbox {\n    .navbarVerticalAlign(30px); // Vertically center in navbar\n  }\n  input,\n  select,\n  .btn {\n    display: inline-block;\n    margin-bottom: 0;\n  }\n  input[type=\"image\"],\n  input[type=\"checkbox\"],\n  input[type=\"radio\"] {\n    margin-top: 3px;\n  }\n  .input-append,\n  .input-prepend {\n    margin-top: 5px;\n    white-space: nowrap; // preven two  items from separating within a .navbar-form that has .pull-left\n    input {\n      margin-top: 0; // remove the margin on top since it's on the parent\n    }\n  }\n}\n\n// Navbar search\n// -------------------------\n.navbar-search {\n  position: relative;\n  float: left;\n  .navbarVerticalAlign(30px); // Vertically center in navbar\n  margin-bottom: 0;\n  .search-query {\n    margin-bottom: 0;\n    padding: 4px 14px;\n    #font > .sans-serif(13px, normal, 1);\n    .border-radius(15px); // redeclare because of specificity of the type attribute\n  }\n}\n\n\n\n// Static navbar\n// -------------------------\n\n.navbar-static-top {\n  position: static;\n  margin-bottom: 0; // remove 18px margin for default navbar\n  .navbar-inner {\n    .border-radius(0);\n  }\n}\n\n\n\n// Fixed navbar\n// -------------------------\n\n// Shared (top/bottom) styles\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  position: fixed;\n  right: 0;\n  left: 0;\n  z-index: @zindexFixedNavbar;\n  margin-bottom: 0; // remove 18px margin for default navbar\n}\n.navbar-fixed-top .navbar-inner,\n.navbar-static-top .navbar-inner {\n  border-width: 0 0 1px;\n}\n.navbar-fixed-bottom .navbar-inner {\n  border-width: 1px 0 0;\n}\n.navbar-fixed-top .navbar-inner,\n.navbar-fixed-bottom .navbar-inner {\n  padding-left:  0;\n  padding-right: 0;\n  .border-radius(0);\n}\n\n// Reset container width\n// Required here as we reset the width earlier on and the grid mixins don't override early enough\n.navbar-static-top .container,\n.navbar-fixed-top .container,\n.navbar-fixed-bottom .container {\n  #grid > .core > .span(@gridColumns);\n}\n\n// Fixed to top\n.navbar-fixed-top {\n  top: 0;\n}\n.navbar-fixed-top,\n.navbar-static-top {\n  .navbar-inner {\n    .box-shadow(~\"0 1px 10px rgba(0,0,0,.1)\");\n  }\n}\n\n// Fixed to bottom\n.navbar-fixed-bottom {\n  bottom: 0;\n  .navbar-inner {\n    .box-shadow(~\"0 -1px 10px rgba(0,0,0,.1)\");\n  }\n}\n\n\n\n// NAVIGATION\n// ----------\n\n.navbar .nav {\n  position: relative;\n  left: 0;\n  display: block;\n  float: left;\n  margin: 0 10px 0 0;\n}\n.navbar .nav.pull-right {\n  float: right; // redeclare due to specificity\n  margin-right: 0; // remove margin on float right nav\n}\n.navbar .nav > li {\n  float: left;\n}\n\n// Links\n.navbar .nav > li > a {\n  float: none;\n  // Vertically center the text given @navbarHeight\n  padding: ((@navbarHeight - @baseLineHeight) / 2) 15px ((@navbarHeight - @baseLineHeight) / 2);\n  color: @navbarLinkColor;\n  text-decoration: none;\n  text-shadow: 0 1px 0 @navbarBackgroundHighlight;\n}\n.navbar .nav .dropdown-toggle .caret {\n  margin-top: 8px;\n}\n\n// Hover/focus\n.navbar .nav > li > a:focus,\n.navbar .nav > li > a:hover {\n  background-color: @navbarLinkBackgroundHover; // \"transparent\" is default to differentiate :hover/:focus from .active\n  color: @navbarLinkColorHover;\n  text-decoration: none;\n}\n\n// Active nav items\n.navbar .nav > .active > a,\n.navbar .nav > .active > a:hover,\n.navbar .nav > .active > a:focus {\n  color: @navbarLinkColorActive;\n  text-decoration: none;\n  background-color: @navbarLinkBackgroundActive;\n  .box-shadow(inset 0 3px 8px rgba(0,0,0,.125));\n}\n\n// Navbar button for toggling navbar items in responsive layouts\n// These definitions need to come after '.navbar .btn'\n.navbar .btn-navbar {\n  display: none;\n  float: right;\n  padding: 7px 10px;\n  margin-left: 5px;\n  margin-right: 5px;\n  .buttonBackground(darken(@navbarBackgroundHighlight, 5%), darken(@navbarBackground, 5%));\n  .box-shadow(~\"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075)\");\n}\n.navbar .btn-navbar .icon-bar {\n  display: block;\n  width: 18px;\n  height: 2px;\n  background-color: #f5f5f5;\n  .border-radius(1px);\n  .box-shadow(0 1px 0 rgba(0,0,0,.25));\n}\n.btn-navbar .icon-bar + .icon-bar {\n  margin-top: 3px;\n}\n\n\n\n// Dropdown menus\n// --------------\n\n// Menu position and menu carets\n.navbar .nav > li > .dropdown-menu {\n  &:before {\n    content: '';\n    display: inline-block;\n    border-left:   7px solid transparent;\n    border-right:  7px solid transparent;\n    border-bottom: 7px solid #ccc;\n    border-bottom-color: @dropdownBorder;\n    position: absolute;\n    top: -7px;\n    left: 9px;\n  }\n  &:after {\n    content: '';\n    display: inline-block;\n    border-left:   6px solid transparent;\n    border-right:  6px solid transparent;\n    border-bottom: 6px solid @dropdownBackground;\n    position: absolute;\n    top: -6px;\n    left: 10px;\n  }\n}\n// Menu position and menu caret support for dropups via extra dropup class\n.navbar-fixed-bottom .nav > li > .dropdown-menu {\n  &:before {\n    border-top: 7px solid #ccc;\n    border-top-color: @dropdownBorder;\n    border-bottom: 0;\n    bottom: -7px;\n    top: auto;\n  }\n  &:after {\n    border-top: 6px solid @dropdownBackground;\n    border-bottom: 0;\n    bottom: -6px;\n    top: auto;\n  }\n}\n\n// Caret should match text color on hover/focus\n.navbar .nav li.dropdown > a:hover .caret,\n.navbar .nav li.dropdown > a:focus .caret {\n  border-top-color: @navbarLinkColorHover;\n  border-bottom-color: @navbarLinkColorHover;\n}\n\n// Remove background color from open dropdown\n.navbar .nav li.dropdown.open > .dropdown-toggle,\n.navbar .nav li.dropdown.active > .dropdown-toggle,\n.navbar .nav li.dropdown.open.active > .dropdown-toggle {\n  background-color: @navbarLinkBackgroundActive;\n  color: @navbarLinkColorActive;\n}\n.navbar .nav li.dropdown > .dropdown-toggle .caret {\n  border-top-color: @navbarLinkColor;\n  border-bottom-color: @navbarLinkColor;\n}\n.navbar .nav li.dropdown.open > .dropdown-toggle .caret,\n.navbar .nav li.dropdown.active > .dropdown-toggle .caret,\n.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret {\n  border-top-color: @navbarLinkColorActive;\n  border-bottom-color: @navbarLinkColorActive;\n}\n\n// Right aligned menus need alt position\n.navbar .pull-right > li > .dropdown-menu,\n.navbar .nav > li > .dropdown-menu.pull-right {\n  left: auto;\n  right: 0;\n  &:before {\n    left: auto;\n    right: 12px;\n  }\n  &:after {\n    left: auto;\n    right: 13px;\n  }\n  .dropdown-menu {\n    left: auto;\n    right: 100%;\n    margin-left: 0;\n    margin-right: -1px;\n    .border-radius(6px 0 6px 6px);\n  }\n}\n\n\n// Inverted navbar\n// -------------------------\n\n.navbar-inverse {\n\n  .navbar-inner {\n    #gradient > .vertical(@navbarInverseBackgroundHighlight, @navbarInverseBackground);\n    border-color: @navbarInverseBorder;\n  }\n\n  .brand,\n  .nav > li > a {\n    color: @navbarInverseLinkColor;\n    text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n    &:hover,\n    &:focus {\n      color: @navbarInverseLinkColorHover;\n    }\n  }\n\n  .brand {\n    color: @navbarInverseBrandColor;\n  }\n\n  .navbar-text {\n    color: @navbarInverseText;\n  }\n\n  .nav > li > a:focus,\n  .nav > li > a:hover {\n    background-color: @navbarInverseLinkBackgroundHover;\n    color: @navbarInverseLinkColorHover;\n  }\n\n  .nav .active > a,\n  .nav .active > a:hover,\n  .nav .active > a:focus {\n    color: @navbarInverseLinkColorActive;\n    background-color: @navbarInverseLinkBackgroundActive;\n  }\n\n  // Inline text links\n  .navbar-link {\n    color: @navbarInverseLinkColor;\n    &:hover,\n    &:focus {\n      color: @navbarInverseLinkColorHover;\n    }\n  }\n\n  // Dividers in navbar\n  .divider-vertical {\n    border-left-color: @navbarInverseBackground;\n    border-right-color: @navbarInverseBackgroundHighlight;\n  }\n\n  // Dropdowns\n  .nav li.dropdown.open > .dropdown-toggle,\n  .nav li.dropdown.active > .dropdown-toggle,\n  .nav li.dropdown.open.active > .dropdown-toggle {\n    background-color: @navbarInverseLinkBackgroundActive;\n    color: @navbarInverseLinkColorActive;\n  }\n  .nav li.dropdown > a:hover .caret,\n  .nav li.dropdown > a:focus .caret {\n    border-top-color: @navbarInverseLinkColorActive;\n    border-bottom-color: @navbarInverseLinkColorActive;\n  }\n  .nav li.dropdown > .dropdown-toggle .caret {\n    border-top-color: @navbarInverseLinkColor;\n    border-bottom-color: @navbarInverseLinkColor;\n  }\n  .nav li.dropdown.open > .dropdown-toggle .caret,\n  .nav li.dropdown.active > .dropdown-toggle .caret,\n  .nav li.dropdown.open.active > .dropdown-toggle .caret {\n    border-top-color: @navbarInverseLinkColorActive;\n    border-bottom-color: @navbarInverseLinkColorActive;\n  }\n\n  // Navbar search\n  .navbar-search {\n    .search-query {\n      color: @white;\n      background-color: @navbarInverseSearchBackground;\n      border-color: @navbarInverseSearchBorder;\n      .box-shadow(~\"inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15)\");\n      .transition(none);\n      .placeholder(@navbarInverseSearchPlaceholderColor);\n\n      // Focus states (we use .focused since IE7-8 and down doesn't support :focus)\n      &:focus,\n      &.focused {\n        padding: 5px 15px;\n        color: @grayDark;\n        text-shadow: 0 1px 0 @white;\n        background-color: @navbarInverseSearchBackgroundFocus;\n        border: 0;\n        .box-shadow(0 0 3px rgba(0,0,0,.15));\n        outline: 0;\n      }\n    }\n  }\n\n  // Navbar collapse button\n  .btn-navbar {\n    .buttonBackground(darken(@navbarInverseBackgroundHighlight, 5%), darken(@navbarInverseBackground, 5%));\n  }\n\n}\n"
  },
  {
    "path": "lib/bootstrap2/navs.less",
    "content": "//\n// Navs\n// --------------------------------------------------\n\n\n// BASE CLASS\n// ----------\n\n.nav {\n  margin-left: 0;\n  margin-bottom: @baseLineHeight;\n  list-style: none;\n}\n\n// Make links block level\n.nav > li > a {\n  display: block;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n  text-decoration: none;\n  background-color: @grayLighter;\n}\n\n// Prevent IE8 from misplacing imgs\n// See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989\n.nav > li > a > img {\n  max-width: none;\n}\n\n// Redeclare pull classes because of specifity\n.nav > .pull-right {\n  float: right;\n}\n\n// Nav headers (for dropdowns and lists)\n.nav-header {\n  display: block;\n  padding: 3px 15px;\n  font-size: 11px;\n  font-weight: bold;\n  line-height: @baseLineHeight;\n  color: @grayLight;\n  text-shadow: 0 1px 0 rgba(255,255,255,.5);\n  text-transform: uppercase;\n}\n// Space them out when they follow another list item (link)\n.nav li + .nav-header {\n  margin-top: 9px;\n}\n\n\n\n// NAV LIST\n// --------\n\n.nav-list {\n  padding-left: 15px;\n  padding-right: 15px;\n  margin-bottom: 0;\n}\n.nav-list > li > a,\n.nav-list .nav-header {\n  margin-left:  -15px;\n  margin-right: -15px;\n  text-shadow: 0 1px 0 rgba(255,255,255,.5);\n}\n.nav-list > li > a {\n  padding: 3px 15px;\n}\n.nav-list > .active > a,\n.nav-list > .active > a:hover,\n.nav-list > .active > a:focus {\n  color: @white;\n  text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n  background-color: @linkColor;\n}\n.nav-list [class^=\"icon-\"],\n.nav-list [class*=\" icon-\"] {\n  margin-right: 2px;\n}\n// Dividers (basically an hr) within the dropdown\n.nav-list .divider {\n  .nav-divider();\n}\n\n\n\n// TABS AND PILLS\n// -------------\n\n// Common styles\n.nav-tabs,\n.nav-pills {\n  .clearfix();\n}\n.nav-tabs > li,\n.nav-pills > li {\n  float: left;\n}\n.nav-tabs > li > a,\n.nav-pills > li > a {\n  padding-right: 12px;\n  padding-left: 12px;\n  margin-right: 2px;\n  line-height: 14px; // keeps the overall height an even number\n}\n\n// TABS\n// ----\n\n// Give the tabs something to sit on\n.nav-tabs {\n  border-bottom: 1px solid #ddd;\n}\n// Make the list-items overlay the bottom border\n.nav-tabs > li {\n  margin-bottom: -1px;\n}\n// Actual tabs (as links)\n.nav-tabs > li > a {\n  padding-top: 8px;\n  padding-bottom: 8px;\n  line-height: @baseLineHeight;\n  border: 1px solid transparent;\n  .border-radius(4px 4px 0 0);\n  &:hover,\n  &:focus {\n    border-color: @grayLighter @grayLighter #ddd;\n  }\n}\n// Active state, and it's :hover/:focus to override normal :hover/:focus\n.nav-tabs > .active > a,\n.nav-tabs > .active > a:hover,\n.nav-tabs > .active > a:focus {\n  color: @gray;\n  background-color: @bodyBackground;\n  border: 1px solid #ddd;\n  border-bottom-color: transparent;\n  cursor: default;\n}\n\n\n// PILLS\n// -----\n\n// Links rendered as pills\n.nav-pills > li > a {\n  padding-top: 8px;\n  padding-bottom: 8px;\n  margin-top: 2px;\n  margin-bottom: 2px;\n  .border-radius(5px);\n}\n\n// Active state\n.nav-pills > .active > a,\n.nav-pills > .active > a:hover,\n.nav-pills > .active > a:focus {\n  color: @white;\n  background-color: @linkColor;\n}\n\n\n\n// STACKED NAV\n// -----------\n\n// Stacked tabs and pills\n.nav-stacked > li {\n  float: none;\n}\n.nav-stacked > li > a {\n  margin-right: 0; // no need for the gap between nav items\n}\n\n// Tabs\n.nav-tabs.nav-stacked {\n  border-bottom: 0;\n}\n.nav-tabs.nav-stacked > li > a {\n  border: 1px solid #ddd;\n  .border-radius(0);\n}\n.nav-tabs.nav-stacked > li:first-child > a {\n  .border-top-radius(4px);\n}\n.nav-tabs.nav-stacked > li:last-child > a {\n  .border-bottom-radius(4px);\n}\n.nav-tabs.nav-stacked > li > a:hover,\n.nav-tabs.nav-stacked > li > a:focus {\n  border-color: #ddd;\n  z-index: 2;\n}\n\n// Pills\n.nav-pills.nav-stacked > li > a {\n  margin-bottom: 3px;\n}\n.nav-pills.nav-stacked > li:last-child > a {\n  margin-bottom: 1px; // decrease margin to match sizing of stacked tabs\n}\n\n\n\n// DROPDOWNS\n// ---------\n\n.nav-tabs .dropdown-menu {\n  .border-radius(0 0 6px 6px); // remove the top rounded corners here since there is a hard edge above the menu\n}\n.nav-pills .dropdown-menu {\n  .border-radius(6px); // make rounded corners match the pills\n}\n\n// Default dropdown links\n// -------------------------\n// Make carets use linkColor to start\n.nav .dropdown-toggle .caret {\n  border-top-color: @linkColor;\n  border-bottom-color: @linkColor;\n  margin-top: 6px;\n}\n.nav .dropdown-toggle:hover .caret,\n.nav .dropdown-toggle:focus .caret {\n  border-top-color: @linkColorHover;\n  border-bottom-color: @linkColorHover;\n}\n/* move down carets for tabs */\n.nav-tabs .dropdown-toggle .caret {\n  margin-top: 8px;\n}\n\n// Active dropdown links\n// -------------------------\n.nav .active .dropdown-toggle .caret {\n  border-top-color: #fff;\n  border-bottom-color: #fff;\n}\n.nav-tabs .active .dropdown-toggle .caret {\n  border-top-color: @gray;\n  border-bottom-color: @gray;\n}\n\n// Active:hover/:focus dropdown links\n// -------------------------\n.nav > .dropdown.active > a:hover,\n.nav > .dropdown.active > a:focus {\n  cursor: pointer;\n}\n\n// Open dropdowns\n// -------------------------\n.nav-tabs .open .dropdown-toggle,\n.nav-pills .open .dropdown-toggle,\n.nav > li.dropdown.open.active > a:hover,\n.nav > li.dropdown.open.active > a:focus {\n  color: @white;\n  background-color: @grayLight;\n  border-color: @grayLight;\n}\n.nav li.dropdown.open .caret,\n.nav li.dropdown.open.active .caret,\n.nav li.dropdown.open a:hover .caret,\n.nav li.dropdown.open a:focus .caret {\n  border-top-color: @white;\n  border-bottom-color: @white;\n  .opacity(100);\n}\n\n// Dropdowns in stacked tabs\n.tabs-stacked .open > a:hover,\n.tabs-stacked .open > a:focus {\n  border-color: @grayLight;\n}\n\n\n\n// TABBABLE\n// --------\n\n\n// COMMON STYLES\n// -------------\n\n// Clear any floats\n.tabbable {\n  .clearfix();\n}\n.tab-content {\n  overflow: auto; // prevent content from running below tabs\n}\n\n// Remove border on bottom, left, right\n.tabs-below > .nav-tabs,\n.tabs-right > .nav-tabs,\n.tabs-left > .nav-tabs {\n  border-bottom: 0;\n}\n\n// Show/hide tabbable areas\n.tab-content > .tab-pane,\n.pill-content > .pill-pane {\n  display: none;\n}\n.tab-content > .active,\n.pill-content > .active {\n  display: block;\n}\n\n\n// BOTTOM\n// ------\n\n.tabs-below > .nav-tabs {\n  border-top: 1px solid #ddd;\n}\n.tabs-below > .nav-tabs > li {\n  margin-top: -1px;\n  margin-bottom: 0;\n}\n.tabs-below > .nav-tabs > li > a {\n  .border-radius(0 0 4px 4px);\n  &:hover,\n  &:focus {\n    border-bottom-color: transparent;\n    border-top-color: #ddd;\n  }\n}\n.tabs-below > .nav-tabs > .active > a,\n.tabs-below > .nav-tabs > .active > a:hover,\n.tabs-below > .nav-tabs > .active > a:focus {\n  border-color: transparent #ddd #ddd #ddd;\n}\n\n// LEFT & RIGHT\n// ------------\n\n// Common styles\n.tabs-left > .nav-tabs > li,\n.tabs-right > .nav-tabs > li {\n  float: none;\n}\n.tabs-left > .nav-tabs > li > a,\n.tabs-right > .nav-tabs > li > a {\n  min-width: 74px;\n  margin-right: 0;\n  margin-bottom: 3px;\n}\n\n// Tabs on the left\n.tabs-left > .nav-tabs {\n  float: left;\n  margin-right: 19px;\n  border-right: 1px solid #ddd;\n}\n.tabs-left > .nav-tabs > li > a {\n  margin-right: -1px;\n  .border-radius(4px 0 0 4px);\n}\n.tabs-left > .nav-tabs > li > a:hover,\n.tabs-left > .nav-tabs > li > a:focus {\n  border-color: @grayLighter #ddd @grayLighter @grayLighter;\n}\n.tabs-left > .nav-tabs .active > a,\n.tabs-left > .nav-tabs .active > a:hover,\n.tabs-left > .nav-tabs .active > a:focus {\n  border-color: #ddd transparent #ddd #ddd;\n  *border-right-color: @white;\n}\n\n// Tabs on the right\n.tabs-right > .nav-tabs {\n  float: right;\n  margin-left: 19px;\n  border-left: 1px solid #ddd;\n}\n.tabs-right > .nav-tabs > li > a {\n  margin-left: -1px;\n  .border-radius(0 4px 4px 0);\n}\n.tabs-right > .nav-tabs > li > a:hover,\n.tabs-right > .nav-tabs > li > a:focus {\n  border-color: @grayLighter @grayLighter @grayLighter #ddd;\n}\n.tabs-right > .nav-tabs .active > a,\n.tabs-right > .nav-tabs .active > a:hover,\n.tabs-right > .nav-tabs .active > a:focus {\n  border-color: #ddd #ddd #ddd transparent;\n  *border-left-color: @white;\n}\n\n\n\n// DISABLED STATES\n// ---------------\n\n// Gray out text\n.nav > .disabled > a {\n  color: @grayLight;\n}\n// Nuke hover/focus effects\n.nav > .disabled > a:hover,\n.nav > .disabled > a:focus {\n  text-decoration: none;\n  background-color: transparent;\n  cursor: default;\n}\n"
  },
  {
    "path": "lib/bootstrap2/pager.less",
    "content": "//\n// Pager pagination\n// --------------------------------------------------\n\n\n.pager {\n  margin: @baseLineHeight 0;\n  list-style: none;\n  text-align: center;\n  .clearfix();\n}\n.pager li {\n  display: inline;\n}\n.pager li > a,\n.pager li > span {\n  display: inline-block;\n  padding: 5px 14px;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  .border-radius(15px);\n}\n.pager li > a:hover,\n.pager li > a:focus {\n  text-decoration: none;\n  background-color: #f5f5f5;\n}\n.pager .next > a,\n.pager .next > span {\n  float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n  float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n  color: @grayLight;\n  background-color: #fff;\n  cursor: default;\n}"
  },
  {
    "path": "lib/bootstrap2/pagination.less",
    "content": "//\n// Pagination (multiple pages)\n// --------------------------------------------------\n\n// Space out pagination from surrounding content\n.pagination {\n  margin: @baseLineHeight 0;\n}\n\n.pagination ul {\n  // Allow for text-based alignment\n  display: inline-block;\n  .ie7-inline-block();\n  // Reset default ul styles\n  margin-left: 0;\n  margin-bottom: 0;\n  // Visuals\n  .border-radius(@baseBorderRadius);\n  .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n.pagination ul > li {\n  display: inline; // Remove list-style and block-level defaults\n}\n.pagination ul > li > a,\n.pagination ul > li > span {\n  float: left; // Collapse white-space\n  padding: 4px 12px;\n  line-height: @baseLineHeight;\n  text-decoration: none;\n  background-color: @paginationBackground;\n  border: 1px solid @paginationBorder;\n  border-left-width: 0;\n}\n.pagination ul > li > a:hover,\n.pagination ul > li > a:focus,\n.pagination ul > .active > a,\n.pagination ul > .active > span {\n  background-color: @paginationActiveBackground;\n}\n.pagination ul > .active > a,\n.pagination ul > .active > span {\n  color: @grayLight;\n  cursor: default;\n}\n.pagination ul > .disabled > span,\n.pagination ul > .disabled > a,\n.pagination ul > .disabled > a:hover,\n.pagination ul > .disabled > a:focus {\n  color: @grayLight;\n  background-color: transparent;\n  cursor: default;\n}\n.pagination ul > li:first-child > a,\n.pagination ul > li:first-child > span {\n  border-left-width: 1px;\n  .border-left-radius(@baseBorderRadius);\n}\n.pagination ul > li:last-child > a,\n.pagination ul > li:last-child > span {\n  .border-right-radius(@baseBorderRadius);\n}\n\n\n// Alignment\n// --------------------------------------------------\n\n.pagination-centered {\n  text-align: center;\n}\n.pagination-right {\n  text-align: right;\n}\n\n\n// Sizing\n// --------------------------------------------------\n\n// Large\n.pagination-large {\n  ul > li > a,\n  ul > li > span {\n    padding: @paddingLarge;\n    font-size: @fontSizeLarge;\n  }\n  ul > li:first-child > a,\n  ul > li:first-child > span {\n    .border-left-radius(@borderRadiusLarge);\n  }\n  ul > li:last-child > a,\n  ul > li:last-child > span {\n    .border-right-radius(@borderRadiusLarge);\n  }\n}\n\n// Small and mini\n.pagination-mini,\n.pagination-small {\n  ul > li:first-child > a,\n  ul > li:first-child > span {\n    .border-left-radius(@borderRadiusSmall);\n  }\n  ul > li:last-child > a,\n  ul > li:last-child > span {\n    .border-right-radius(@borderRadiusSmall);\n  }\n}\n\n// Small\n.pagination-small {\n  ul > li > a,\n  ul > li > span {\n    padding: @paddingSmall;\n    font-size: @fontSizeSmall;\n  }\n}\n// Mini\n.pagination-mini {\n  ul > li > a,\n  ul > li > span {\n    padding: @paddingMini;\n    font-size: @fontSizeMini;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap2/popovers.less",
    "content": "//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: @zindexPopover;\n  display: none;\n  max-width: 276px;\n  padding: 1px;\n  text-align: left; // Reset given new insertion method\n  background-color: @popoverBackground;\n  -webkit-background-clip: padding-box;\n     -moz-background-clip: padding;\n          background-clip: padding-box;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0,0,0,.2);\n  .border-radius(6px);\n  .box-shadow(0 5px 10px rgba(0,0,0,.2));\n\n  // Overrides for proper insertion\n  white-space: normal;\n\n  // Offset the popover to account for the popover arrow\n  &.top     { margin-top: -10px; }\n  &.right   { margin-left: 10px; }\n  &.bottom  { margin-top: 10px; }\n  &.left    { margin-left: -10px; }\n}\n\n.popover-title {\n  margin: 0; // reset heading margin\n  padding: 8px 14px;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 18px;\n  background-color: @popoverTitleBackground;\n  border-bottom: 1px solid darken(@popoverTitleBackground, 5%);\n  .border-radius(5px 5px 0 0);\n\n  &:empty {\n    display: none;\n  }\n}\n\n.popover-content {\n  padding: 9px 14px;\n}\n\n// Arrows\n//\n// .arrow is outer, .arrow:after is inner\n\n.popover .arrow,\n.popover .arrow:after {\n  position: absolute;\n  display: block;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n.popover .arrow {\n  border-width: @popoverArrowOuterWidth;\n}\n.popover .arrow:after {\n  border-width: @popoverArrowWidth;\n  content: \"\";\n}\n\n.popover {\n  &.top .arrow {\n    left: 50%;\n    margin-left: -@popoverArrowOuterWidth;\n    border-bottom-width: 0;\n    border-top-color: #999; // IE8 fallback\n    border-top-color: @popoverArrowOuterColor;\n    bottom: -@popoverArrowOuterWidth;\n    &:after {\n      bottom: 1px;\n      margin-left: -@popoverArrowWidth;\n      border-bottom-width: 0;\n      border-top-color: @popoverArrowColor;\n    }\n  }\n  &.right .arrow {\n    top: 50%;\n    left: -@popoverArrowOuterWidth;\n    margin-top: -@popoverArrowOuterWidth;\n    border-left-width: 0;\n    border-right-color: #999; // IE8 fallback\n    border-right-color: @popoverArrowOuterColor;\n    &:after {\n      left: 1px;\n      bottom: -@popoverArrowWidth;\n      border-left-width: 0;\n      border-right-color: @popoverArrowColor;\n    }\n  }\n  &.bottom .arrow {\n    left: 50%;\n    margin-left: -@popoverArrowOuterWidth;\n    border-top-width: 0;\n    border-bottom-color: #999; // IE8 fallback\n    border-bottom-color: @popoverArrowOuterColor;\n    top: -@popoverArrowOuterWidth;\n    &:after {\n      top: 1px;\n      margin-left: -@popoverArrowWidth;\n      border-top-width: 0;\n      border-bottom-color: @popoverArrowColor;\n    }\n  }\n\n  &.left .arrow {\n    top: 50%;\n    right: -@popoverArrowOuterWidth;\n    margin-top: -@popoverArrowOuterWidth;\n    border-right-width: 0;\n    border-left-color: #999; // IE8 fallback\n    border-left-color: @popoverArrowOuterColor;\n    &:after {\n      right: 1px;\n      border-right-width: 0;\n      border-left-color: @popoverArrowColor;\n      bottom: -@popoverArrowWidth;\n    }\n  }\n\n}\n"
  },
  {
    "path": "lib/bootstrap2/progress-bars.less",
    "content": "//\n// Progress bars\n// --------------------------------------------------\n\n\n// ANIMATIONS\n// ----------\n\n// Webkit\n@-webkit-keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n// Firefox\n@-moz-keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n// IE9\n@-ms-keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n// Opera\n@-o-keyframes progress-bar-stripes {\n  from  { background-position: 0 0; }\n  to    { background-position: 40px 0; }\n}\n\n// Spec\n@keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n\n\n// THE BARS\n// --------\n\n// Outer container\n.progress {\n  overflow: hidden;\n  height: @baseLineHeight;\n  margin-bottom: @baseLineHeight;\n  #gradient > .vertical(#f5f5f5, #f9f9f9);\n  .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));\n  .border-radius(@baseBorderRadius);\n}\n\n// Bar of progress\n.progress .bar {\n  width: 0%;\n  height: 100%;\n  color: @white;\n  float: left;\n  font-size: 12px;\n  text-align: center;\n  text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n  #gradient > .vertical(#149bdf, #0480be);\n  .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));\n  .box-sizing(border-box);\n  .transition(width .6s ease);\n}\n.progress .bar + .bar {\n  .box-shadow(~\"inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15)\");\n}\n\n// Striped bars\n.progress-striped .bar {\n  #gradient > .striped(#149bdf);\n  .background-size(40px 40px);\n}\n\n// Call animation for the active one\n.progress.active .bar {\n  -webkit-animation: progress-bar-stripes 2s linear infinite;\n     -moz-animation: progress-bar-stripes 2s linear infinite;\n      -ms-animation: progress-bar-stripes 2s linear infinite;\n       -o-animation: progress-bar-stripes 2s linear infinite;\n          animation: progress-bar-stripes 2s linear infinite;\n}\n\n\n\n// COLORS\n// ------\n\n// Danger (red)\n.progress-danger .bar, .progress .bar-danger {\n  #gradient > .vertical(#ee5f5b, #c43c35);\n}\n.progress-danger.progress-striped .bar, .progress-striped .bar-danger {\n  #gradient > .striped(#ee5f5b);\n}\n\n// Success (green)\n.progress-success .bar, .progress .bar-success {\n  #gradient > .vertical(#62c462, #57a957);\n}\n.progress-success.progress-striped .bar, .progress-striped .bar-success {\n  #gradient > .striped(#62c462);\n}\n\n// Info (teal)\n.progress-info .bar, .progress .bar-info {\n  #gradient > .vertical(#5bc0de, #339bb9);\n}\n.progress-info.progress-striped .bar, .progress-striped .bar-info {\n  #gradient > .striped(#5bc0de);\n}\n\n// Warning (orange)\n.progress-warning .bar, .progress .bar-warning {\n  #gradient > .vertical(lighten(@orange, 15%), @orange);\n}\n.progress-warning.progress-striped .bar, .progress-striped .bar-warning {\n  #gradient > .striped(lighten(@orange, 15%));\n}\n"
  },
  {
    "path": "lib/bootstrap2/reset.less",
    "content": "//\n// Reset CSS\n// Adapted from http://github.com/necolas/normalize.css\n// --------------------------------------------------\n\n\n// Display in IE6-9 and FF3\n// -------------------------\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nnav,\nsection {\n  display: block;\n}\n\n// Display block in IE6-9 and FF3\n// -------------------------\n\naudio,\ncanvas,\nvideo {\n  display: inline-block;\n  *display: inline;\n  *zoom: 1;\n}\n\n// Prevents modern browsers from displaying 'audio' without controls\n// -------------------------\n\naudio:not([controls]) {\n    display: none;\n}\n\n// Base settings\n// -------------------------\n\nhtml {\n  font-size: 100%;\n  -webkit-text-size-adjust: 100%;\n      -ms-text-size-adjust: 100%;\n}\n// Focus states\na:focus {\n  .tab-focus();\n}\n// Hover & Active\na:hover,\na:active {\n  outline: 0;\n}\n\n// Prevents sub and sup affecting line-height in all browsers\n// -------------------------\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\nsup {\n  top: -0.5em;\n}\nsub {\n  bottom: -0.25em;\n}\n\n// Img border in a's and image quality\n// -------------------------\n\nimg {\n  /* Responsive images (ensure images don't scale beyond their parents) */\n  max-width: 100%; /* Part 1: Set a maxium relative to the parent */\n  width: auto\\9; /* IE7-8 need help adjusting responsive images */\n  height: auto; /* Part 2: Scale the height according to the width, otherwise you get stretching */\n\n  vertical-align: middle;\n  border: 0;\n  -ms-interpolation-mode: bicubic;\n}\n\n// Prevent max-width from affecting Google Maps\n#map_canvas img,\n.google-maps img {\n  max-width: none;\n}\n\n// Forms\n// -------------------------\n\n// Font size in all browsers, margin changes, misc consistency\nbutton,\ninput,\nselect,\ntextarea {\n  margin: 0;\n  font-size: 100%;\n  vertical-align: middle;\n}\nbutton,\ninput {\n  *overflow: visible; // Inner spacing ie IE6/7\n  line-height: normal; // FF3/4 have !important on line-height in UA stylesheet\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner { // Inner padding and border oddities in FF3/4\n  padding: 0;\n  border: 0;\n}\nbutton,\nhtml input[type=\"button\"], // Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls.\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n    -webkit-appearance: button; // Corrects inability to style clickable `input` types in iOS.\n    cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others.\n}\nlabel,\nselect,\nbutton,\ninput[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"],\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n    cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others.\n}\ninput[type=\"search\"] { // Appearance in Safari/Chrome\n  .box-sizing(content-box);\n  -webkit-appearance: textfield;\n}\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-cancel-button {\n  -webkit-appearance: none; // Inner-padding issues in Chrome OSX, Safari 5\n}\ntextarea {\n  overflow: auto; // Remove vertical scrollbar in IE6-9\n  vertical-align: top; // Readability and alignment cross-browser\n}\n\n\n// Printing\n// -------------------------\n// Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css\n\n@media print {\n\n  * {\n    text-shadow: none !important;\n    color: #000 !important; // Black prints faster: h5bp.com/s\n    background: transparent !important;\n    box-shadow: none !important;\n  }\n\n  a,\n  a:visited {\n    text-decoration: underline;\n  }\n\n  a[href]:after {\n    content: \" (\" attr(href) \")\";\n  }\n\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\";\n  }\n\n  // Don't show links for images, or javascript/internal links\n  .ir a:after,\n  a[href^=\"javascript:\"]:after,\n  a[href^=\"#\"]:after {\n    content: \"\";\n  }\n\n  pre,\n  blockquote {\n    border: 1px solid #999;\n    page-break-inside: avoid;\n  }\n\n  thead {\n    display: table-header-group; // h5bp.com/t\n  }\n\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n\n  img {\n    max-width: 100% !important;\n  }\n\n  @page {\n    margin: 0.5cm;\n  }\n\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap2/responsive-1200px-min.less",
    "content": "//\n// Responsive: Large desktop and up\n// --------------------------------------------------\n\n\n@media (min-width: 1200px) {\n\n  // Fixed grid\n  #grid > .core(@gridColumnWidth1200, @gridGutterWidth1200);\n\n  // Fluid grid\n  #grid > .fluid(@fluidGridColumnWidth1200, @fluidGridGutterWidth1200);\n\n  // Input grid\n  #grid > .input(@gridColumnWidth1200, @gridGutterWidth1200);\n\n  // Thumbnails\n  .thumbnails {\n    margin-left: -@gridGutterWidth1200;\n  }\n  .thumbnails > li {\n    margin-left: @gridGutterWidth1200;\n  }\n  .row-fluid .thumbnails {\n    margin-left: 0;\n  }\n\n}\n"
  },
  {
    "path": "lib/bootstrap2/responsive-767px-max.less",
    "content": "//\n// Responsive: Landscape phone to desktop/tablet\n// --------------------------------------------------\n\n\n@media (max-width: 767px) {\n\n  // Padding to set content in a bit\n  body {\n    padding-left: 20px;\n    padding-right: 20px;\n  }\n  // Negative indent the now static \"fixed\" navbar\n  .navbar-fixed-top,\n  .navbar-fixed-bottom,\n  .navbar-static-top {\n    margin-left: -20px;\n    margin-right: -20px;\n  }\n  // Remove padding on container given explicit padding set on body\n  .container-fluid {\n    padding: 0;\n  }\n\n  // TYPOGRAPHY\n  // ----------\n  // Reset horizontal dl\n  .dl-horizontal {\n    dt {\n      float: none;\n      clear: none;\n      width: auto;\n      text-align: left;\n    }\n    dd {\n      margin-left: 0;\n    }\n  }\n\n  // GRID & CONTAINERS\n  // -----------------\n  // Remove width from containers\n  .container {\n    width: auto;\n  }\n  // Fluid rows\n  .row-fluid {\n    width: 100%;\n  }\n  // Undo negative margin on rows and thumbnails\n  .row,\n  .thumbnails {\n    margin-left: 0;\n  }\n  .thumbnails > li {\n    float: none;\n    margin-left: 0; // Reset the default margin for all li elements when no .span* classes are present\n  }\n  // Make all grid-sized elements block level again\n  [class*=\"span\"],\n  .uneditable-input[class*=\"span\"], // Makes uneditable inputs full-width when using grid sizing\n  .row-fluid [class*=\"span\"] {\n    float: none;\n    display: block;\n    width: 100%;\n    margin-left: 0;\n    .box-sizing(border-box);\n  }\n  .span12,\n  .row-fluid .span12 {\n    width: 100%;\n    .box-sizing(border-box);\n  }\n  .row-fluid [class*=\"offset\"]:first-child {\n    margin-left: 0;\n  }\n\n  // FORM FIELDS\n  // -----------\n  // Make span* classes full width\n  .input-large,\n  .input-xlarge,\n  .input-xxlarge,\n  input[class*=\"span\"],\n  select[class*=\"span\"],\n  textarea[class*=\"span\"],\n  .uneditable-input {\n    .input-block-level();\n  }\n  // But don't let it screw up prepend/append inputs\n  .input-prepend input,\n  .input-append input,\n  .input-prepend input[class*=\"span\"],\n  .input-append input[class*=\"span\"] {\n    display: inline-block; // redeclare so they don't wrap to new lines\n    width: auto;\n  }\n  .controls-row [class*=\"span\"] + [class*=\"span\"] {\n    margin-left: 0;\n  }\n\n  // Modals\n  .modal {\n    position: fixed;\n    top:   20px;\n    left:  20px;\n    right: 20px;\n    width: auto;\n    margin: 0;\n    &.fade  { top: -100px; }\n    &.fade.in { top: 20px; }\n  }\n\n}\n\n\n\n// UP TO LANDSCAPE PHONE\n// ---------------------\n\n@media (max-width: 480px) {\n\n  // Smooth out the collapsing/expanding nav\n  .nav-collapse {\n    -webkit-transform: translate3d(0, 0, 0); // activate the GPU\n  }\n\n  // Block level the page header small tag for readability\n  .page-header h1 small {\n    display: block;\n    line-height: @baseLineHeight;\n  }\n\n  // Update checkboxes for iOS\n  input[type=\"checkbox\"],\n  input[type=\"radio\"] {\n    border: 1px solid #ccc;\n  }\n\n  // Remove the horizontal form styles\n  .form-horizontal {\n    .control-label {\n      float: none;\n      width: auto;\n      padding-top: 0;\n      text-align: left;\n    }\n    // Move over all input controls and content\n    .controls {\n      margin-left: 0;\n    }\n    // Move the options list down to align with labels\n    .control-list {\n      padding-top: 0; // has to be padding because margin collaspes\n    }\n    // Move over buttons in .form-actions to align with .controls\n    .form-actions {\n      padding-left: 10px;\n      padding-right: 10px;\n    }\n  }\n\n  // Medias\n  // Reset float and spacing to stack\n  .media .pull-left,\n  .media .pull-right  {\n    float: none;\n    display: block;\n    margin-bottom: 10px;\n  }\n  // Remove side margins since we stack instead of indent\n  .media-object {\n    margin-right: 0;\n    margin-left: 0;\n  }\n\n  // Modals\n  .modal {\n    top:   10px;\n    left:  10px;\n    right: 10px;\n  }\n  .modal-header .close {\n    padding: 10px;\n    margin: -10px;\n  }\n\n  // Carousel\n  .carousel-caption {\n    position: static;\n  }\n\n}\n"
  },
  {
    "path": "lib/bootstrap2/responsive-768px-979px.less",
    "content": "//\n// Responsive: Tablet to desktop\n// --------------------------------------------------\n\n\n@media (min-width: 768px) and (max-width: 979px) {\n\n  // Fixed grid\n  #grid > .core(@gridColumnWidth768, @gridGutterWidth768);\n\n  // Fluid grid\n  #grid > .fluid(@fluidGridColumnWidth768, @fluidGridGutterWidth768);\n\n  // Input grid\n  #grid > .input(@gridColumnWidth768, @gridGutterWidth768);\n\n  // No need to reset .thumbnails here since it's the same @gridGutterWidth\n\n}\n"
  },
  {
    "path": "lib/bootstrap2/responsive-navbar.less",
    "content": "//\n// Responsive: Navbar\n// --------------------------------------------------\n\n\n// TABLETS AND BELOW\n// -----------------\n@media (max-width: @navbarCollapseWidth) {\n\n  // UNFIX THE TOPBAR\n  // ----------------\n  // Remove any padding from the body\n  body {\n    padding-top: 0;\n  }\n  // Unfix the navbars\n  .navbar-fixed-top,\n  .navbar-fixed-bottom {\n    position: static;\n  }\n  .navbar-fixed-top {\n    margin-bottom: @baseLineHeight;\n  }\n  .navbar-fixed-bottom {\n    margin-top: @baseLineHeight;\n  }\n  .navbar-fixed-top .navbar-inner,\n  .navbar-fixed-bottom .navbar-inner {\n    padding: 5px;\n  }\n  .navbar .container {\n    width: auto;\n    padding: 0;\n  }\n  // Account for brand name\n  .navbar .brand {\n    padding-left: 10px;\n    padding-right: 10px;\n    margin: 0 0 0 -5px;\n  }\n\n  // COLLAPSIBLE NAVBAR\n  // ------------------\n  // Nav collapse clears brand\n  .nav-collapse {\n    clear: both;\n  }\n  // Block-level the nav\n  .nav-collapse .nav {\n    float: none;\n    margin: 0 0 (@baseLineHeight / 2);\n  }\n  .nav-collapse .nav > li {\n    float: none;\n  }\n  .nav-collapse .nav > li > a {\n    margin-bottom: 2px;\n  }\n  .nav-collapse .nav > .divider-vertical {\n    display: none;\n  }\n  .nav-collapse .nav .nav-header {\n    color: @navbarText;\n    text-shadow: none;\n  }\n  // Nav and dropdown links in navbar\n  .nav-collapse .nav > li > a,\n  .nav-collapse .dropdown-menu a {\n    padding: 9px 15px;\n    font-weight: bold;\n    color: @navbarLinkColor;\n    .border-radius(3px);\n  }\n  // Buttons\n  .nav-collapse .btn {\n    padding: 4px 10px 4px;\n    font-weight: normal;\n    .border-radius(@baseBorderRadius);\n  }\n  .nav-collapse .dropdown-menu li + li a {\n    margin-bottom: 2px;\n  }\n  .nav-collapse .nav > li > a:hover,\n  .nav-collapse .nav > li > a:focus,\n  .nav-collapse .dropdown-menu a:hover,\n  .nav-collapse .dropdown-menu a:focus {\n    background-color: @navbarBackground;\n  }\n  .navbar-inverse .nav-collapse .nav > li > a,\n  .navbar-inverse .nav-collapse .dropdown-menu a {\n    color: @navbarInverseLinkColor;\n  }\n  .navbar-inverse .nav-collapse .nav > li > a:hover,\n  .navbar-inverse .nav-collapse .nav > li > a:focus,\n  .navbar-inverse .nav-collapse .dropdown-menu a:hover,\n  .navbar-inverse .nav-collapse .dropdown-menu a:focus {\n    background-color: @navbarInverseBackground;\n  }\n  // Buttons in the navbar\n  .nav-collapse.in .btn-group {\n    margin-top: 5px;\n    padding: 0;\n  }\n  // Dropdowns in the navbar\n  .nav-collapse .dropdown-menu {\n    position: static;\n    top: auto;\n    left: auto;\n    float: none;\n    display: none;\n    max-width: none;\n    margin: 0 15px;\n    padding: 0;\n    background-color: transparent;\n    border: none;\n    .border-radius(0);\n    .box-shadow(none);\n  }\n  .nav-collapse .open > .dropdown-menu { \n    display: block; \n  }\n\n  .nav-collapse .dropdown-menu:before,\n  .nav-collapse .dropdown-menu:after {\n    display: none;\n  }\n  .nav-collapse .dropdown-menu .divider {\n    display: none;\n  }\n  .nav-collapse .nav > li > .dropdown-menu {\n    &:before,\n    &:after {\n      display: none;\n    }\n  }\n  // Forms in navbar\n  .nav-collapse .navbar-form,\n  .nav-collapse .navbar-search {\n    float: none;\n    padding: (@baseLineHeight / 2) 15px;\n    margin: (@baseLineHeight / 2) 0;\n    border-top: 1px solid @navbarBackground;\n    border-bottom: 1px solid @navbarBackground;\n    .box-shadow(~\"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1)\");\n  }\n  .navbar-inverse .nav-collapse .navbar-form,\n  .navbar-inverse .nav-collapse .navbar-search {\n    border-top-color: @navbarInverseBackground;\n    border-bottom-color: @navbarInverseBackground;\n  }\n  // Pull right (secondary) nav content\n  .navbar .nav-collapse .nav.pull-right {\n    float: none;\n    margin-left: 0;\n  }\n  // Hide everything in the navbar save .brand and toggle button */\n  .nav-collapse,\n  .nav-collapse.collapse {\n    overflow: hidden;\n    height: 0;\n  }\n  // Navbar button\n  .navbar .btn-navbar {\n    display: block;\n  }\n\n  // STATIC NAVBAR\n  // -------------\n  .navbar-static .navbar-inner {\n    padding-left:  10px;\n    padding-right: 10px;\n  }\n\n\n}\n\n\n// DEFAULT DESKTOP\n// ---------------\n\n@media (min-width: @navbarCollapseDesktopWidth) {\n\n  // Required to make the collapsing navbar work on regular desktops\n  .nav-collapse.collapse {\n    height: auto !important;\n    overflow: visible !important;\n  }\n\n}\n"
  },
  {
    "path": "lib/bootstrap2/responsive-utilities.less",
    "content": "//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 Metro responsive\n// Required for Windows 8 Metro split-screen snapping with IE10\n// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/\n@-ms-viewport{\n  width: device-width;\n}\n\n// Hide from screenreaders and browsers\n// Credit: HTML5 Boilerplate\n.hidden {\n  display: none;\n  visibility: hidden;\n}\n\n// Visibility utilities\n\n// For desktops\n.visible-phone     { display: none !important; }\n.visible-tablet    { display: none !important; }\n.hidden-phone      { }\n.hidden-tablet     { }\n.hidden-desktop    { display: none !important; }\n.visible-desktop   { display: inherit !important; }\n\n// Tablets & small desktops only\n@media (min-width: 768px) and (max-width: 979px) {\n  // Hide everything else\n  .hidden-desktop    { display: inherit !important; }\n  .visible-desktop   { display: none !important ; }\n  // Show\n  .visible-tablet    { display: inherit !important; }\n  // Hide\n  .hidden-tablet     { display: none !important; }\n}\n\n// Phones only\n@media (max-width: 767px) {\n  // Hide everything else\n  .hidden-desktop    { display: inherit !important; }\n  .visible-desktop   { display: none !important; }\n  // Show\n  .visible-phone     { display: inherit !important; } // Use inherit to restore previous behavior\n  // Hide\n  .hidden-phone      { display: none !important; }\n}\n\n// Print utilities\n.visible-print    { display: none !important; }\n.hidden-print     { }\n\n@media print {\n  .visible-print  { display: inherit !important; }\n  .hidden-print   { display: none !important; }\n}\n"
  },
  {
    "path": "lib/bootstrap2/responsive.less",
    "content": "/*!\n * Bootstrap Responsive v2.3.2\n *\n * Copyright 2013 Twitter, Inc\n * Licensed under the Apache License v2.0\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Designed and built with all the love in the world by @mdo and @fat.\n */\n\n\n// Responsive.less\n// For phone and tablet devices\n// -------------------------------------------------------------\n\n\n// REPEAT VARIABLES & MIXINS\n// -------------------------\n// Required since we compile the responsive stuff separately\n\n@import \"variables.less\"; // Modify this for custom colors, font-sizes, etc\n@import \"mixins.less\";\n\n\n// RESPONSIVE CLASSES\n// ------------------\n\n@import \"responsive-utilities.less\";\n\n\n// MEDIA QUERIES\n// ------------------\n\n// Large desktops\n@import \"responsive-1200px-min.less\";\n\n// Tablets to regular desktops\n@import \"responsive-768px-979px.less\";\n\n// Phones to portrait tablets and narrow desktops\n@import \"responsive-767px-max.less\";\n\n\n// RESPONSIVE NAVBAR\n// ------------------\n\n// From 979px and below, show a button to toggle navbar contents\n@import \"responsive-navbar.less\";\n"
  },
  {
    "path": "lib/bootstrap2/scaffolding.less",
    "content": "//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Body reset\n// -------------------------\n\nbody {\n  margin: 0;\n  font-family: @baseFontFamily;\n  font-size: @baseFontSize;\n  line-height: @baseLineHeight;\n  color: @textColor;\n  background-color: @bodyBackground;\n}\n\n\n// Links\n// -------------------------\n\na {\n  color: @linkColor;\n  text-decoration: none;\n}\na:hover,\na:focus {\n  color: @linkColorHover;\n  text-decoration: underline;\n}\n\n\n// Images\n// -------------------------\n\n// Rounded corners\n.img-rounded {\n  .border-radius(6px);\n}\n\n// Add polaroid-esque trim\n.img-polaroid {\n  padding: 4px;\n  background-color: #fff;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0,0,0,.2);\n  .box-shadow(0 1px 3px rgba(0,0,0,.1));\n}\n\n// Perfect circle\n.img-circle {\n  .border-radius(500px); // crank the border-radius so it works with most reasonably sized images\n}\n"
  },
  {
    "path": "lib/bootstrap2/sprites.less",
    "content": "//\n// Sprites\n// --------------------------------------------------\n\n\n// ICONS\n// -----\n\n// All icons receive the styles of the <i> tag with a base class\n// of .i and are then given a unique class to add width, height,\n// and background-position. Your resulting HTML will look like\n// <i class=\"icon-inbox\"></i>.\n\n// For the white version of the icons, just add the .icon-white class:\n// <i class=\"icon-inbox icon-white\"></i>\n\n[class^=\"icon-\"],\n[class*=\" icon-\"] {\n  display: inline-block;\n  width: 14px;\n  height: 14px;\n  .ie7-restore-right-whitespace();\n  line-height: 14px;\n  vertical-align: text-top;\n  background-image: url(\"@{iconSpritePath}\");\n  background-position: 14px 14px;\n  background-repeat: no-repeat;\n  margin-top: 1px;\n}\n\n/* White icons with optional class, or on hover/focus/active states of certain elements */\n.icon-white,\n.nav-pills > .active > a > [class^=\"icon-\"],\n.nav-pills > .active > a > [class*=\" icon-\"],\n.nav-list > .active > a > [class^=\"icon-\"],\n.nav-list > .active > a > [class*=\" icon-\"],\n.navbar-inverse .nav > .active > a > [class^=\"icon-\"],\n.navbar-inverse .nav > .active > a > [class*=\" icon-\"],\n.dropdown-menu > li > a:hover > [class^=\"icon-\"],\n.dropdown-menu > li > a:focus > [class^=\"icon-\"],\n.dropdown-menu > li > a:hover > [class*=\" icon-\"],\n.dropdown-menu > li > a:focus > [class*=\" icon-\"],\n.dropdown-menu > .active > a > [class^=\"icon-\"],\n.dropdown-menu > .active > a > [class*=\" icon-\"],\n.dropdown-submenu:hover > a > [class^=\"icon-\"],\n.dropdown-submenu:focus > a > [class^=\"icon-\"],\n.dropdown-submenu:hover > a > [class*=\" icon-\"],\n.dropdown-submenu:focus > a > [class*=\" icon-\"] {\n  background-image: url(\"@{iconWhiteSpritePath}\");\n}\n\n.icon-glass              { background-position: 0      0; }\n.icon-music              { background-position: -24px  0; }\n.icon-search             { background-position: -48px  0; }\n.icon-envelope           { background-position: -72px  0; }\n.icon-heart              { background-position: -96px  0; }\n.icon-star               { background-position: -120px 0; }\n.icon-star-empty         { background-position: -144px 0; }\n.icon-user               { background-position: -168px 0; }\n.icon-film               { background-position: -192px 0; }\n.icon-th-large           { background-position: -216px 0; }\n.icon-th                 { background-position: -240px 0; }\n.icon-th-list            { background-position: -264px 0; }\n.icon-ok                 { background-position: -288px 0; }\n.icon-remove             { background-position: -312px 0; }\n.icon-zoom-in            { background-position: -336px 0; }\n.icon-zoom-out           { background-position: -360px 0; }\n.icon-off                { background-position: -384px 0; }\n.icon-signal             { background-position: -408px 0; }\n.icon-cog                { background-position: -432px 0; }\n.icon-trash              { background-position: -456px 0; }\n\n.icon-home               { background-position: 0      -24px; }\n.icon-file               { background-position: -24px  -24px; }\n.icon-time               { background-position: -48px  -24px; }\n.icon-road               { background-position: -72px  -24px; }\n.icon-download-alt       { background-position: -96px  -24px; }\n.icon-download           { background-position: -120px -24px; }\n.icon-upload             { background-position: -144px -24px; }\n.icon-inbox              { background-position: -168px -24px; }\n.icon-play-circle        { background-position: -192px -24px; }\n.icon-repeat             { background-position: -216px -24px; }\n.icon-refresh            { background-position: -240px -24px; }\n.icon-list-alt           { background-position: -264px -24px; }\n.icon-lock               { background-position: -287px -24px; } // 1px off\n.icon-flag               { background-position: -312px -24px; }\n.icon-headphones         { background-position: -336px -24px; }\n.icon-volume-off         { background-position: -360px -24px; }\n.icon-volume-down        { background-position: -384px -24px; }\n.icon-volume-up          { background-position: -408px -24px; }\n.icon-qrcode             { background-position: -432px -24px; }\n.icon-barcode            { background-position: -456px -24px; }\n\n.icon-tag                { background-position: 0      -48px; }\n.icon-tags               { background-position: -25px  -48px; } // 1px off\n.icon-book               { background-position: -48px  -48px; }\n.icon-bookmark           { background-position: -72px  -48px; }\n.icon-print              { background-position: -96px  -48px; }\n.icon-camera             { background-position: -120px -48px; }\n.icon-font               { background-position: -144px -48px; }\n.icon-bold               { background-position: -167px -48px; } // 1px off\n.icon-italic             { background-position: -192px -48px; }\n.icon-text-height        { background-position: -216px -48px; }\n.icon-text-width         { background-position: -240px -48px; }\n.icon-align-left         { background-position: -264px -48px; }\n.icon-align-center       { background-position: -288px -48px; }\n.icon-align-right        { background-position: -312px -48px; }\n.icon-align-justify      { background-position: -336px -48px; }\n.icon-list               { background-position: -360px -48px; }\n.icon-indent-left        { background-position: -384px -48px; }\n.icon-indent-right       { background-position: -408px -48px; }\n.icon-facetime-video     { background-position: -432px -48px; }\n.icon-picture            { background-position: -456px -48px; }\n\n.icon-pencil             { background-position: 0      -72px; }\n.icon-map-marker         { background-position: -24px  -72px; }\n.icon-adjust             { background-position: -48px  -72px; }\n.icon-tint               { background-position: -72px  -72px; }\n.icon-edit               { background-position: -96px  -72px; }\n.icon-share              { background-position: -120px -72px; }\n.icon-check              { background-position: -144px -72px; }\n.icon-move               { background-position: -168px -72px; }\n.icon-step-backward      { background-position: -192px -72px; }\n.icon-fast-backward      { background-position: -216px -72px; }\n.icon-backward           { background-position: -240px -72px; }\n.icon-play               { background-position: -264px -72px; }\n.icon-pause              { background-position: -288px -72px; }\n.icon-stop               { background-position: -312px -72px; }\n.icon-forward            { background-position: -336px -72px; }\n.icon-fast-forward       { background-position: -360px -72px; }\n.icon-step-forward       { background-position: -384px -72px; }\n.icon-eject              { background-position: -408px -72px; }\n.icon-chevron-left       { background-position: -432px -72px; }\n.icon-chevron-right      { background-position: -456px -72px; }\n\n.icon-plus-sign          { background-position: 0      -96px; }\n.icon-minus-sign         { background-position: -24px  -96px; }\n.icon-remove-sign        { background-position: -48px  -96px; }\n.icon-ok-sign            { background-position: -72px  -96px; }\n.icon-question-sign      { background-position: -96px  -96px; }\n.icon-info-sign          { background-position: -120px -96px; }\n.icon-screenshot         { background-position: -144px -96px; }\n.icon-remove-circle      { background-position: -168px -96px; }\n.icon-ok-circle          { background-position: -192px -96px; }\n.icon-ban-circle         { background-position: -216px -96px; }\n.icon-arrow-left         { background-position: -240px -96px; }\n.icon-arrow-right        { background-position: -264px -96px; }\n.icon-arrow-up           { background-position: -289px -96px; } // 1px off\n.icon-arrow-down         { background-position: -312px -96px; }\n.icon-share-alt          { background-position: -336px -96px; }\n.icon-resize-full        { background-position: -360px -96px; }\n.icon-resize-small       { background-position: -384px -96px; }\n.icon-plus               { background-position: -408px -96px; }\n.icon-minus              { background-position: -433px -96px; }\n.icon-asterisk           { background-position: -456px -96px; }\n\n.icon-exclamation-sign   { background-position: 0      -120px; }\n.icon-gift               { background-position: -24px  -120px; }\n.icon-leaf               { background-position: -48px  -120px; }\n.icon-fire               { background-position: -72px  -120px; }\n.icon-eye-open           { background-position: -96px  -120px; }\n.icon-eye-close          { background-position: -120px -120px; }\n.icon-warning-sign       { background-position: -144px -120px; }\n.icon-plane              { background-position: -168px -120px; }\n.icon-calendar           { background-position: -192px -120px; }\n.icon-random             { background-position: -216px -120px; width: 16px; }\n.icon-comment            { background-position: -240px -120px; }\n.icon-magnet             { background-position: -264px -120px; }\n.icon-chevron-up         { background-position: -288px -120px; }\n.icon-chevron-down       { background-position: -313px -119px; } // 1px, 1px off\n.icon-retweet            { background-position: -336px -120px; }\n.icon-shopping-cart      { background-position: -360px -120px; }\n.icon-folder-close       { background-position: -384px -120px; width: 16px; }\n.icon-folder-open        { background-position: -408px -120px; width: 16px; }\n.icon-resize-vertical    { background-position: -432px -119px; } // 1px, 1px off\n.icon-resize-horizontal  { background-position: -456px -118px; } // 1px, 2px off\n\n.icon-hdd                     { background-position: 0      -144px; }\n.icon-bullhorn                { background-position: -24px  -144px; }\n.icon-bell                    { background-position: -48px  -144px; }\n.icon-certificate             { background-position: -72px  -144px; }\n.icon-thumbs-up               { background-position: -96px  -144px; }\n.icon-thumbs-down             { background-position: -120px -144px; }\n.icon-hand-right              { background-position: -144px -144px; }\n.icon-hand-left               { background-position: -168px -144px; }\n.icon-hand-up                 { background-position: -192px -144px; }\n.icon-hand-down               { background-position: -216px -144px; }\n.icon-circle-arrow-right      { background-position: -240px -144px; }\n.icon-circle-arrow-left       { background-position: -264px -144px; }\n.icon-circle-arrow-up         { background-position: -288px -144px; }\n.icon-circle-arrow-down       { background-position: -312px -144px; }\n.icon-globe                   { background-position: -336px -144px; }\n.icon-wrench                  { background-position: -360px -144px; }\n.icon-tasks                   { background-position: -384px -144px; }\n.icon-filter                  { background-position: -408px -144px; }\n.icon-briefcase               { background-position: -432px -144px; }\n.icon-fullscreen              { background-position: -456px -144px; }\n"
  },
  {
    "path": "lib/bootstrap2/tables.less",
    "content": "//\n// Tables\n// --------------------------------------------------\n\n\n// BASE TABLES\n// -----------------\n\ntable {\n  max-width: 100%;\n  background-color: @tableBackground;\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\n// BASELINE STYLES\n// ---------------\n\n.table {\n  width: 100%;\n  margin-bottom: @baseLineHeight;\n  // Cells\n  th,\n  td {\n    padding: 8px;\n    line-height: @baseLineHeight;\n    text-align: left;\n    vertical-align: top;\n    border-top: 1px solid @tableBorder;\n  }\n  th {\n    font-weight: bold;\n  }\n  // Bottom align for column headings\n  thead th {\n    vertical-align: bottom;\n  }\n  // Remove top border from thead by default\n  caption + thead tr:first-child th,\n  caption + thead tr:first-child td,\n  colgroup + thead tr:first-child th,\n  colgroup + thead tr:first-child td,\n  thead:first-child tr:first-child th,\n  thead:first-child tr:first-child td {\n    border-top: 0;\n  }\n  // Account for multiple tbody instances\n  tbody + tbody {\n    border-top: 2px solid @tableBorder;\n  }\n\n  // Nesting\n  .table {\n    background-color: @bodyBackground;\n  }\n}\n\n\n\n// CONDENSED TABLE W/ HALF PADDING\n// -------------------------------\n\n.table-condensed {\n  th,\n  td {\n    padding: 4px 5px;\n  }\n}\n\n\n// BORDERED VERSION\n// ----------------\n\n.table-bordered {\n  border: 1px solid @tableBorder;\n  border-collapse: separate; // Done so we can round those corners!\n  *border-collapse: collapse; // IE7 can't round corners anyway\n  border-left: 0;\n  .border-radius(@baseBorderRadius);\n  th,\n  td {\n    border-left: 1px solid @tableBorder;\n  }\n  // Prevent a double border\n  caption + thead tr:first-child th,\n  caption + tbody tr:first-child th,\n  caption + tbody tr:first-child td,\n  colgroup + thead tr:first-child th,\n  colgroup + tbody tr:first-child th,\n  colgroup + tbody tr:first-child td,\n  thead:first-child tr:first-child th,\n  tbody:first-child tr:first-child th,\n  tbody:first-child tr:first-child td {\n    border-top: 0;\n  }\n  // For first th/td in the first row in the first thead or tbody\n  thead:first-child tr:first-child > th:first-child,\n  tbody:first-child tr:first-child > td:first-child,\n  tbody:first-child tr:first-child > th:first-child {\n    .border-top-left-radius(@baseBorderRadius);\n  }\n  // For last th/td in the first row in the first thead or tbody\n  thead:first-child tr:first-child > th:last-child,\n  tbody:first-child tr:first-child > td:last-child,\n  tbody:first-child tr:first-child > th:last-child {\n    .border-top-right-radius(@baseBorderRadius);\n  }\n  // For first th/td (can be either) in the last row in the last thead, tbody, and tfoot\n  thead:last-child tr:last-child > th:first-child,\n  tbody:last-child tr:last-child > td:first-child,\n  tbody:last-child tr:last-child > th:first-child,\n  tfoot:last-child tr:last-child > td:first-child,\n  tfoot:last-child tr:last-child > th:first-child {\n    .border-bottom-left-radius(@baseBorderRadius);\n  }\n  // For last th/td (can be either) in the last row in the last thead, tbody, and tfoot\n  thead:last-child tr:last-child > th:last-child,\n  tbody:last-child tr:last-child > td:last-child,\n  tbody:last-child tr:last-child > th:last-child,\n  tfoot:last-child tr:last-child > td:last-child,\n  tfoot:last-child tr:last-child > th:last-child {\n    .border-bottom-right-radius(@baseBorderRadius);\n  }\n\n  // Clear border-radius for first and last td in the last row in the last tbody for table with tfoot\n  tfoot + tbody:last-child tr:last-child td:first-child {\n    .border-bottom-left-radius(0);\n  }\n  tfoot + tbody:last-child tr:last-child td:last-child {\n    .border-bottom-right-radius(0);\n  }\n\n  // Special fixes to round the left border on the first td/th\n  caption + thead tr:first-child th:first-child,\n  caption + tbody tr:first-child td:first-child,\n  colgroup + thead tr:first-child th:first-child,\n  colgroup + tbody tr:first-child td:first-child {\n    .border-top-left-radius(@baseBorderRadius);\n  }\n  caption + thead tr:first-child th:last-child,\n  caption + tbody tr:first-child td:last-child,\n  colgroup + thead tr:first-child th:last-child,\n  colgroup + tbody tr:first-child td:last-child {\n    .border-top-right-radius(@baseBorderRadius);\n  }\n\n}\n\n\n\n\n// ZEBRA-STRIPING\n// --------------\n\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n.table-striped {\n  tbody {\n    > tr:nth-child(odd) > td,\n    > tr:nth-child(odd) > th {\n      background-color: @tableBackgroundAccent;\n    }\n  }\n}\n\n\n// HOVER EFFECT\n// ------------\n// Placed here since it has to come after the potential zebra striping\n.table-hover {\n  tbody {\n    tr:hover > td,\n    tr:hover > th {\n      background-color: @tableBackgroundHover;\n    }\n  }\n}\n\n\n// TABLE CELL SIZING\n// -----------------\n\n// Reset default grid behavior\ntable td[class*=\"span\"],\ntable th[class*=\"span\"],\n.row-fluid table td[class*=\"span\"],\n.row-fluid table th[class*=\"span\"] {\n  display: table-cell;\n  float: none; // undo default grid column styles\n  margin-left: 0; // undo default grid column styles\n}\n\n// Change the column widths to account for td/th padding\n.table td,\n.table th {\n  &.span1     { .tableColumns(1); }\n  &.span2     { .tableColumns(2); }\n  &.span3     { .tableColumns(3); }\n  &.span4     { .tableColumns(4); }\n  &.span5     { .tableColumns(5); }\n  &.span6     { .tableColumns(6); }\n  &.span7     { .tableColumns(7); }\n  &.span8     { .tableColumns(8); }\n  &.span9     { .tableColumns(9); }\n  &.span10    { .tableColumns(10); }\n  &.span11    { .tableColumns(11); }\n  &.span12    { .tableColumns(12); }\n}\n\n\n\n// TABLE BACKGROUNDS\n// -----------------\n// Exact selectors below required to override .table-striped\n\n.table tbody tr {\n  &.success > td {\n    background-color: @successBackground;\n  }\n  &.error > td {\n    background-color: @errorBackground;\n  }\n  &.warning > td {\n    background-color: @warningBackground;\n  }\n  &.info > td {\n    background-color: @infoBackground;\n  }\n}\n\n// Hover states for .table-hover\n.table-hover tbody tr {\n  &.success:hover > td {\n    background-color: darken(@successBackground, 5%);\n  }\n  &.error:hover > td {\n    background-color: darken(@errorBackground, 5%);\n  }\n  &.warning:hover > td {\n    background-color: darken(@warningBackground, 5%);\n  }\n  &.info:hover > td {\n    background-color: darken(@infoBackground, 5%);\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap2/tests/buttons.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Buttons &middot; Bootstrap</title>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta name=\"description\" content=\"\">\n    <meta name=\"author\" content=\"\">\n\n    <!-- Le styles -->\n    <link href=\"../../docs/assets/css/bootstrap.css\" rel=\"stylesheet\">\n    <style>\n      body {\n        padding-top: 30px;\n        padding-bottom: 30px;\n      }\n    </style>\n    <link href=\"../../docs/assets/css/bootstrap-responsive.css\" rel=\"stylesheet\">\n\n    <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->\n    <!--[if lt IE 9]>\n      <script src=\"http://html5shim.googlecode.com/svn/trunk/html5.js\"></script>\n    <![endif]-->\n\n    <!-- Le fav and touch icons -->\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"144x144\" href=\"../../docs/assets/ico/apple-touch-icon-144-precomposed.png\">\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"114x114\" href=\"../../docs/assets/ico/apple-touch-icon-114-precomposed.png\">\n      <link rel=\"apple-touch-icon-precomposed\" sizes=\"72x72\" href=\"../../docs/assets/ico/apple-touch-icon-72-precomposed.png\">\n                    <link rel=\"apple-touch-icon-precomposed\" href=\"../../docs/assets/ico/apple-touch-icon-57-precomposed.png\">\n                                   <link rel=\"shortcut icon\" href=\"../../docs/assets/ico/favicon.png\">\n  </head>\n\n  <body>\n\n    <div class=\"container\">\n\n      <h2>Dropups</h2>\n      <div class=\"btn-toolbar\">\n        <div class=\"btn-group dropup\">\n          <button class=\"btn\">Dropup</button>\n          <button class=\"btn dropdown-toggle\" data-toggle=\"dropdown\"><span class=\"caret\"></span></button>\n          <ul class=\"dropdown-menu\">\n            <li><a href=\"#\">Action</a></li>\n            <li><a href=\"#\">Another action</a></li>\n            <li><a href=\"#\">Something else here</a></li>\n            <li class=\"divider\"></li>\n            <li><a href=\"#\">Separated link</a></li>\n          </ul>\n        </div><!-- /btn-group -->\n        <div class=\"btn-group dropup\">\n          <button class=\"btn btn-primary\">Dropup</button>\n          <button class=\"btn btn-primary dropdown-toggle\" data-toggle=\"dropdown\"><span class=\"caret\"></span></button>\n          <ul class=\"dropdown-menu\">\n            <li><a href=\"#\">Action</a></li>\n            <li><a href=\"#\">Another action</a></li>\n            <li><a href=\"#\">Something else here</a></li>\n            <li class=\"divider\"></li>\n            <li><a href=\"#\">Separated link</a></li>\n          </ul>\n        </div><!-- /btn-group -->\n        <div class=\"btn-group dropup\">\n          <button class=\"btn btn-danger\">Dropup</button>\n          <button class=\"btn btn-danger dropdown-toggle\" data-toggle=\"dropdown\"><span class=\"caret\"></span></button>\n          <ul class=\"dropdown-menu\">\n            <li><a href=\"#\">Action</a></li>\n            <li><a href=\"#\">Another action</a></li>\n            <li><a href=\"#\">Something else here</a></li>\n            <li class=\"divider\"></li>\n            <li><a href=\"#\">Separated link</a></li>\n          </ul>\n        </div><!-- /btn-group -->\n        <div class=\"btn-group dropup\">\n          <button class=\"btn btn-warning\">Dropup</button>\n          <button class=\"btn btn-warning dropdown-toggle\" data-toggle=\"dropdown\"><span class=\"caret\"></span></button>\n          <ul class=\"dropdown-menu\">\n            <li><a href=\"#\">Action</a></li>\n            <li><a href=\"#\">Another action</a></li>\n            <li><a href=\"#\">Something else here</a></li>\n            <li class=\"divider\"></li>\n            <li><a href=\"#\">Separated link</a></li>\n          </ul>\n        </div><!-- /btn-group -->\n        <div class=\"btn-group dropup\">\n          <button class=\"btn btn-success\">Dropup</button>\n          <button class=\"btn btn-success dropdown-toggle\" data-toggle=\"dropdown\"><span class=\"caret\"></span></button>\n          <ul class=\"dropdown-menu\">\n            <li><a href=\"#\">Action</a></li>\n            <li><a href=\"#\">Another action</a></li>\n            <li><a href=\"#\">Something else here</a></li>\n            <li class=\"divider\"></li>\n            <li><a href=\"#\">Separated link</a></li>\n          </ul>\n        </div><!-- /btn-group -->\n        <div class=\"btn-group dropup\">\n          <button class=\"btn btn-info\">Dropup</button>\n          <button class=\"btn btn-info dropdown-toggle\" data-toggle=\"dropdown\"><span class=\"caret\"></span></button>\n          <ul class=\"dropdown-menu\">\n            <li><a href=\"#\">Action</a></li>\n            <li><a href=\"#\">Another action</a></li>\n            <li><a href=\"#\">Something else here</a></li>\n            <li class=\"divider\"></li>\n            <li><a href=\"#\">Separated link</a></li>\n          </ul>\n        </div><!-- /btn-group -->\n        <div class=\"btn-group dropup\">\n          <button class=\"btn btn-inverse\">Dropup</button>\n          <button class=\"btn btn-inverse dropdown-toggle\" data-toggle=\"dropdown\"><span class=\"caret\"></span></button>\n          <ul class=\"dropdown-menu\">\n            <li><a href=\"#\">Action</a></li>\n            <li><a href=\"#\">Another action</a></li>\n            <li><a href=\"#\">Something else here</a></li>\n            <li class=\"divider\"></li>\n            <li><a href=\"#\">Separated link</a></li>\n          </ul>\n        </div><!-- /btn-group -->\n      </div><!-- /btn-toolbar -->\n\n\n    </div> <!-- /container -->\n\n    <!-- Le javascript\n    ================================================== -->\n    <!-- Placed at the end of the document so the pages load faster -->\n    <script src=\"../../docs/assets/js/jquery.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-transition.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-alert.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-modal.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-dropdown.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-scrollspy.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-tab.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-tooltip.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-popover.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-button.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-collapse.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-carousel.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-typeahead.js\"></script>\n\n  </body>\n</html>\n"
  },
  {
    "path": "lib/bootstrap2/tests/css-tests.css",
    "content": "/*!\n * Bootstrap CSS Tests\n */\n\n\n/* Remove background image */\nbody {\n  background-image: none;\n}\n\n/* Space out subhead */\n.subhead {\n  margin-bottom: 36px;\n}\n/*h4 {\n  margin-bottom: 5px;\n}\n*/\n\n.type-test {\n  margin-bottom: 20px;\n  padding: 0 20px 20px;\n  background: url(../../docs/assets/img/grid-baseline-20px.png);\n}\n.type-test h1,\n.type-test h2,\n.type-test h3,\n.type-test h4,\n.type-test h5,\n.type-test h6 {\n  background-color: rgba(255,0,0,.2);\n}\n\n\n/* colgroup tests */\n.col1 {\n  background-color: rgba(255,0,0,.1);\n}\n.col2 {\n  background-color: rgba(0,255,0,.1);\n}\n.col3 {\n  background-color: rgba(0,0,255,.1);\n}\n\n\n/* Fluid row inputs */\n#rowInputs .row > [class*=span],\n#fluidRowInputs .row-fluid > [class*=span] {\n  background-color: rgba(255,0,0,.1);\n}\n\n\n/* Fluid grid */\n.fluid-grid {\n  margin-bottom: 45px;\n}\n.fluid-grid .row {\n  height: 40px;\n  padding-top: 10px;\n  margin-top: 10px;\n  color: #ddd;\n  text-align: center;\n}\n.fluid-grid .span1 {\n  background-color: #999;\n}\n\n\n/* Gradients */\n\n[class^=\"gradient-\"] {\n  width: 100%;\n  height: 400px;\n  margin: 20px 0;\n  -webkit-border-radius: 5px;\n     -moz-border-radius: 5px;\n          border-radius: 5px;\n}\n\n.gradient-horizontal {\n  background-color: #333333;\n  background-image: -moz-linear-gradient(left, #555555, #333333);\n  background-image: -webkit-gradient(linear, 0 0, 100% 0, from(#555555), to(#333333));\n  background-image: -webkit-linear-gradient(left, #555555, #333333);\n  background-image: -o-linear-gradient(left, #555555, #333333);\n  background-image: linear-gradient(to right, #555555, #333333);\n  background-repeat: repeat-x;\n  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff555555', endColorstr='#ff333333', GradientType=1);\n}\n\n.gradient-vertical {\n  background-color: #474747;\n  background-image: -moz-linear-gradient(top, #555555, #333333);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#333333));\n  background-image: -webkit-linear-gradient(top, #555555, #333333);\n  background-image: -o-linear-gradient(top, #555555, #333333);\n  background-image: linear-gradient(to bottom, #555555, #333333);\n  background-repeat: repeat-x;\n  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff555555', endColorstr='#ff333333', GradientType=0);\n}\n\n.gradient-directional {\n  background-color: #333333;\n  background-image: -moz-linear-gradient(45deg, #555555, #333333);\n  background-image: -webkit-linear-gradient(45deg, #555555, #333333);\n  background-image: -o-linear-gradient(45deg, #555555, #333333);\n  background-image: linear-gradient(45deg, #555555, #333333);\n  background-repeat: repeat-x;\n}\n\n.gradient-vertical-three {\n  background-color: #8940a5;\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#00b3ee), color-stop(50%, #7a43b6), to(#c3325f));\n  background-image: -webkit-linear-gradient(#00b3ee, #7a43b6 50%, #c3325f);\n  background-image: -moz-linear-gradient(top, #00b3ee, #7a43b6 50%, #c3325f);\n  background-image: -o-linear-gradient(#00b3ee, #7a43b6 50%, #c3325f);\n  background-image: linear-gradient(#00b3ee, #7a43b6 50%, #c3325f);\n  background-repeat: no-repeat;\n  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff00b3ee', endColorstr='#ffc3325f', GradientType=0);\n}\n\n.gradient-radial {\n  background-color: #333333;\n  background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(#555555), to(#333333));\n  background-image: -webkit-radial-gradient(circle, #555555, #333333);\n  background-image: -moz-radial-gradient(circle, #555555, #333333);\n  background-image: -o-radial-gradient(circle, #555555, #333333);\n  background-repeat: no-repeat;\n}\n\n.gradient-striped {\n  background-color: #555555;\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n\n.gradient-horizontal-three {\n  background-color: #00b3ee;\n  background-image: -webkit-gradient(left, linear, 0 0, 0 100%, from(#00b3ee), color-stop(50%, #7a43b6), to(#c3325f));\n  background-image: -webkit-linear-gradient(left, #00b3ee, #7a43b6 50%, #c3325f);\n  background-image: -moz-linear-gradient(left, #00b3ee, #7a43b6 50%, #c3325f);\n  background-image: -o-linear-gradient(left, #00b3ee, #7a43b6 50%, #c3325f);\n  background-image: linear-gradient(to right, #00b3ee, #7a43b6 50%, #c3325f);\n  background-repeat: no-repeat;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00b3ee', endColorstr='#c3325f', GradientType=0);\n}\n"
  },
  {
    "path": "lib/bootstrap2/tests/css-tests.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <title>CSS Tests · Twitter Bootstrap</title>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta name=\"description\" content=\"\">\n    <meta name=\"author\" content=\"\">\n\n    <!-- Le styles -->\n    <link href=\"../../docs/assets/css/bootstrap.css\" rel=\"stylesheet\">\n    <link href=\"../../docs/assets/css/bootstrap-responsive.css\" rel=\"stylesheet\">\n    <link href=\"../../docs/assets/css/docs.css\" rel=\"stylesheet\">\n    <link href=\"../../docs/assets/js/google-code-prettify/prettify.css\" rel=\"stylesheet\">\n\n    <!-- CSS just for the tests page -->\n    <link href=\"css-tests.css\" rel=\"stylesheet\">\n\n    <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->\n    <!--[if lt IE 9]>\n      <script src=\"http://html5shim.googlecode.com/svn/trunk/html5.js\"></script>\n    <![endif]-->\n\n    <!-- Le fav and touch icons -->\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"144x144\" href=\"../../docs/assets/ico/apple-touch-icon-144-precomposed.png\">\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"114x114\" href=\"../../docs/assets/ico/apple-touch-icon-114-precomposed.png\">\n      <link rel=\"apple-touch-icon-precomposed\" sizes=\"72x72\" href=\"../../docs/assets/ico/apple-touch-icon-72-precomposed.png\">\n                    <link rel=\"apple-touch-icon-precomposed\" href=\"../../docs/assets/ico/apple-touch-icon-57-precomposed.png\">\n                                   <link rel=\"shortcut icon\" href=\"../../docs/assets/ico/favicon.png\">\n  </head>\n\n  <body>\n\n\n  <!-- Navbar\n    ================================================== -->\n    <div class=\"navbar navbar-inverse navbar-fixed-top\">\n      <div class=\"navbar-inner\">\n        <div class=\"container\">\n          <a class=\"brand\" href=\"../../docs/index.html\">Bootstrap</a>\n        </div>\n      </div>\n    </div>\n\n\n<!-- Masthead\n================================================== -->\n<header class=\"jumbotron subhead\" id=\"overview\">\n  <div class=\"container\">\n    <h1>CSS Tests</h1>\n    <p class=\"lead\">One stop shop for quick debugging and edge-case tests of CSS.</p>\n  </div>\n</header>\n\n\n<div class=\"bs-docs-canvas\">\n\n  <div class=\"container\">\n\n\n\n<!-- Typography\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Typography</h1>\n</div>\n\n<div class=\"row\">\n  <div class=\"span6\">\n    <div class=\"type-test\">\n      <h1>h1. Heading 1</h1>\n      <h2>h2. Heading 2</h2>\n      <h3>h3. Heading 3</h3>\n      <h4>h4. Heading 4</h4>\n      <h5>h5. Heading 5</h5>\n      <h6>h6. Heading 6</h6>\n      <p>Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n    </div>\n  </div>\n  <div class=\"span6\">\n    <div class=\"type-test\">\n      <h1>h1. Heading 1</h1>\n      <p>Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n      <h2>h2. Heading 2</h2>\n      <p>Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n      <h3>h3. Heading 3</h3>\n      <p>Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n      <h4>h4. Heading 4</h4>\n      <p>Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n      <h5>h5. Heading 5</h5>\n      <p>Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n      <h6>h6. Heading 6</h6>\n      <p>Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n    </div>\n  </div>\n</div>\n\n\n\n<!-- Responsive images\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Responsive images</h1>\n</div>\n\n<div class=\"row\">\n  <div class=\"span4\">\n    <img data-src=\"holder.js/600x600\" height=\"200\">\n  </div>\n  <div class=\"span4\">\n    <img data-src=\"holder.js/600x600\">\n  </div>\n  <div class=\"span4\">\n    <img data-src=\"holder.js/600x600\">\n  </div>\n</div>\n\n<br>\n\n<div class=\"row\">\n  <div class=\"span4\">\n    <img data-src=\"holder.js/600x900\" style=\"width: 200px;\">\n  </div>\n  <div class=\"span4\">\n    <img data-src=\"holder.js/200x300\">\n  </div>\n  <div class=\"span4\">\n    <img data-src=\"holder.js/600x600\">\n  </div>\n</div>\n\n<br><br>\n\n\n\n\n<!-- Fluid grid\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Fluid grids</h1>\n</div>\n\n<div class=\"fluid-grid\">\n  <div class=\"row\">\n    <div class=\"span12\">12\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n  </div>\n  <div class=\"row\">\n    <div class=\"span11\">11\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n    <div class=\"span1\">1\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n  </div>\n  <div class=\"row\">\n    <div class=\"span10\">10\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n    <div class=\"span2\">2\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n  </div>\n  <div class=\"row\">\n    <div class=\"span9\">9\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n    <div class=\"span3\">3\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n  </div>\n  <div class=\"row\">\n    <div class=\"span8\">8\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n    <div class=\"span4\">4\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n  </div>\n  <div class=\"row\">\n    <div class=\"span7\">7\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n    <div class=\"span5\">5\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n  </div>\n  <div class=\"row\">\n    <div class=\"span6\">6\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n    <div class=\"span6\">6\n      <div class=\"row-fluid\">\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n        <div class=\"span1\">1</div>\n      </div>\n    </div>\n  </div>\n</div> <!-- fluid grids -->\n\n\n\n<!-- Tables\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Tables</h1>\n</div>\n\n<div class=\"row\">\n  <div class=\"span6\">\n    <h4>Bordered without thead</h4>\n    <table class=\"table table-bordered\">\n      <tbody>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n      </tbody>\n    </table>\n    <h4>Bordered without thead, with caption</h4>\n    <table class=\"table table-bordered\">\n      <caption>Table caption</caption>\n      <tbody>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n      </tbody>\n    </table>\n    <h4>Bordered without thead, with colgroup</h4>\n    <table class=\"table table-bordered\">\n      <colgroup>\n        <col class=\"col1\">\n        <col class=\"col2\">\n        <col class=\"col3\">\n      </colgroup>\n      <tbody>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n      </tbody>\n      <tfoot>\n        <tr>\n          <td>3</td>\n          <td>6</td>\n          <td>9</td>\n        </tr>\n      </tfoot>\n    </table>\n    <h4>Bordered with thead, with colgroup</h4>\n    <table class=\"table table-bordered\">\n      <colgroup>\n        <col class=\"col1\">\n        <col class=\"col2\">\n        <col class=\"col3\">\n      </colgroup>\n      <thead>\n        <tr>\n          <th>A</th>\n          <th>B</th>\n          <th>C</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n      </tbody>\n      <tfoot>\n        <tr>\n          <td>3</td>\n          <td>6</td>\n          <td>9</td>\n        </tr>\n      </tfoot>\n    </table>\n  </div><!--/span-->\n  <div class=\"span6\">\n    <h4>Bordered with thead and caption</h4>\n    <table class=\"table table-bordered\">\n      <caption>Table caption</caption>\n      <thead>\n        <tr>\n          <th>1</th>\n          <th>2</th>\n          <th>3</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td>2</td>\n          <td>3</td>\n        </tr>\n      </tbody>\n      <tfoot>\n        <tr>\n          <td>3</td>\n          <td>6</td>\n          <td>9</td>\n        </tr>\n      </tfoot>\n    </table>\n    <h4>Bordered with rowspan and colspan</h4>\n    <table class=\"table table-bordered\">\n      <thead>\n        <tr>\n          <th>1</th>\n          <th>2</th>\n          <th>3</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td colspan=\"2\">1 and 2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td rowspan=\"2\">2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td rowspan=\"2\">1</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td colspan=\"2\">2 and 3</td>\n        </tr>\n      </tbody>\n    </table>\n  </div><!--/span-->\n</div><!--/row-->\n\n\n<h4>Grid sizing</h4>\n<div class=\"row\">\n  <div class=\"span12\">\n    <table class=\"table table-bordered\">\n      <thead>\n        <tr>\n          <th class=\"span3\">1</th>\n          <th class=\"span4\">2</th>\n          <th>3</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td colspan=\"2\">1 and 2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td rowspan=\"2\">2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td rowspan=\"2\">1</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td colspan=\"2\">2 and 3</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n</div><!--/row-->\n\n<h4>Nesting and striping</h4>\n<table class=\"table table-bordered table-striped\">\n  <thead>\n    <tr>\n      <th>Test</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td>\n        <table class=\"table table-bordered table-striped\">\n          <thead>\n            <tr>\n              <th>Test</th>\n              <th>Test</th>\n            </tr>\n          </thead>\n          <tbody>\n            <tr>\n              <td>\n                test\n              </td>\n              <td>\n                test\n              </td>\n            </tr>\n            <tr>\n              <td>\n                test\n              </td>\n              <td>\n                test\n              </td>\n            </tr>\n            <tr>\n              <td>\n                test\n              </td>\n              <td>\n                test\n              </td>\n            </tr>\n          </tbody>\n        </table>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<h4>Fluid grid sizing</h4>\n<div class=\"row-fluid\">\n  <div class=\"span12\">\n    <table class=\"table table-bordered\">\n      <thead>\n        <tr>\n          <th class=\"span3\">1</th>\n          <th class=\"span4\">2</th>\n          <th>3</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td colspan=\"2\">1 and 2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td>1</td>\n          <td rowspan=\"2\">2</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td rowspan=\"2\">1</td>\n          <td>3</td>\n        </tr>\n        <tr>\n          <td colspan=\"2\">2 and 3</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n</div><!--/row-->\n\n\n\n<!-- Forms\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Forms</h1>\n</div>\n\n<h4>Buttons and button groups</h4>\n<form class=\"form-inline\">\n  <button class=\"btn btn-success\">Save</button>\n  <button class=\"btn btn-info\">Add new</button>\n  <div class=\"btn-group\">\n    <a class=\"btn dropdown-toggle\" data-toggle=\"dropdown\" href=\"#\">\n      <i class=\"icon-user\"></i> User\n      <span class=\"caret\"></span>\n    </a>\n    <ul class=\"dropdown-menu\">\n      <li><a href=\"#\">Profile</a></li>\n      <li class=\"divider\"></li>\n      <li><a href=\"#\">Sign Out</a></li>\n    </ul>\n  </div>\n</form>\n\n<h4>Horizontal form errors</h4>\n<form class=\"form-horizontal\">\n  <div class=\"control-group error\">\n    <label class=\"control-label\" for=\"inputError\">Radio with error</label>\n    <div class=\"controls\">\n      <label class=\"radio\">\n        <input type=\"radio\" id=\"inputError\"> Oh hai\n      </label>\n      <span class=\"help-inline\">Please correct the error</span>\n    </div>\n  </div>\n</form>\n\n<div class=\"row\">\n  <div class=\"span4\">\n    <h4>Prepend and append on inputs</h4>\n    <form>\n      <div class=\"controls\">\n        <div class=\"input-prepend\">\n          <span class=\"add-on\">@</span>\n          <input class=\"span2\" id=\"prependedInput\" size=\"16\" type=\"text\">\n        </div>\n      </div>\n      <div class=\"controls\">\n        <div class=\"input-append\">\n          <input class=\"span2\" id=\"prependedInput\" size=\"16\" type=\"text\">\n          <span class=\"add-on\">@</span>\n        </div>\n      </div>\n      <div class=\"controls\">\n        <div class=\"input-prepend input-append\">\n          <span class=\"add-on\">$</span>\n          <input class=\"span2\" id=\"prependedInput\" size=\"16\" type=\"text\">\n          <span class=\"add-on\">.00</span>\n        </div>\n      </div>\n    </form>\n  </div><!--/span-->\n  <div class=\"span4\">\n    <h4>Prepend and append with uneditable</h4>\n    <form>\n      <div class=\"input-prepend\">\n        <span class=\"add-on\">$</span>\n        <span class=\"span2 uneditable-input\">Some value here</span>\n      </div>\n      <div class=\"input-append\">\n        <span class=\"span2 uneditable-input\">Some value here</span>\n        <span class=\"add-on\">.00</span>\n      </div>\n      <div class=\"input-prepend input-append\">\n        <span class=\"add-on\">$</span>\n        <span class=\"span2 uneditable-input\">Some value here</span>\n        <span class=\"add-on\">.00</span>\n      </div>\n    </form>\n  </div><!--/span-->\n  <div class=\"span4\">\n    <h4>Prepend with type=\"submit\"</h4>\n    <form class=\"form-search\">\n      <div class=\"input-append\">\n        <input type=\"text\" class=\"span2 search-query\" value=\"\" name=\"q\">\n        <input type=\"submit\" value=\"Search\" class=\"btn\">\n      </div>\n    </form>\n    <div class=\"input-append\">\n      <input type=\"text\" class=\"span2\" value=\"\" name=\"\">\n      <input type=\"submit\" value=\"Button\" class=\"btn\">\n    </div>\n    <div class=\"input-append\">\n      <input type=\"text\" size=\"16\" id=\"appendedInputButtons\" class=\"span2\">\n      <input type=\"submit\" value=\"Search\" class=\"btn\">\n      <button type=\"button\" class=\"btn\">Options</button>\n    </div>\n  </div><!--/span-->\n</div><!--/row-->\n\n<h4>Fluid prepended and appended inputs</h4>\n<div class=\"row-fluid\">\n  <div class=\"span6\">\n    <form>\n      <div class=\"controls\">\n        <div class=\"input-prepend\">\n          <span class=\"add-on\">@</span><input class=\"span2\" id=\"prependedInput\" size=\"16\" type=\"text\">\n        </div>\n      </div>\n      <div class=\"controls\">\n        <div class=\"input-append\">\n          <input class=\"span2\" id=\"prependedInput\" size=\"16\" type=\"text\"><span class=\"add-on\">@</span>\n        </div>\n      </div>\n      <div class=\"controls\">\n        <div class=\"input-prepend input-append\">\n          <span class=\"add-on\">$</span><input class=\"span2\" id=\"prependedInput\" size=\"16\" type=\"text\"><span class=\"add-on\">.00</span>\n        </div>\n      </div>\n    </form>\n  </div>\n</div>\n\n<h4>Fixed row with inputs</h4>\n<p>Inputs should not extend past the light red background, set on their parent, a <code>.span*</code> column.</p>\n\n<div class=\"rowInputs\">\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span1\" placeholder=\"span1\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span2\" placeholder=\"span2\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span3\" placeholder=\"span3\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span4\" placeholder=\"span4\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span5\" placeholder=\"span5\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span6\" placeholder=\"span6\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span7\" placeholder=\"span7\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span8\" placeholder=\"span8\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span9\" placeholder=\"span9\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span10\" placeholder=\"span10\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span11\" placeholder=\"span11\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span12\" placeholder=\"span12\">\n    </div><!--/span-->\n  </div><!--/row-->\n</div>\n<br>\n\n<h4>Fluid row with inputs</h4>\n<p>Inputs should not extend past the light red background, set on their parent, a <code>.span*</code> column.</p>\n<div id=\"fluidRowInputs\">\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span1\" placeholder=\"span1\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span2\" placeholder=\"span2\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span3\" placeholder=\"span3\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span4\" placeholder=\"span4\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span5\" placeholder=\"span5\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span6\" placeholder=\"span6\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span7\" placeholder=\"span7\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span8\" placeholder=\"span8\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span9\" placeholder=\"span9\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span10\" placeholder=\"span10\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span11\" placeholder=\"span11\">\n    </div><!--/span-->\n  </div><!--/row-->\n  <div class=\"row-fluid\">\n    <div class=\"span12\">\n      <input type=\"text\" class=\"span12\" placeholder=\"span12\">\n    </div><!--/span-->\n  </div><!--/row-->\n</div>\n\n<br>\n\n<h4>Inline form in fluid row</h4>\n\n<div class=\"row-fluid\">\n  <div class=\"span12\">\n    <form class=\"form-inline\">\n      <input type=\"text\" class=\"span3\" placeholder=\"Email\">\n      <input type=\"password\" class=\"span3\" placeholder=\"Password\">\n      <label class=\"checkbox\">\n        <input type=\"checkbox\"> Remember me\n      </label>\n      <button type=\"submit\" class=\"btn\">Sign in</button>\n    </form>\n  </div>\n</div>\n\n\n<br>\n\n\n<h4>Fluid textarea at .span12</h4>\n<div class=\"row-fluid\">\n  <div class=\"span12\">\n    <textarea class=\"span12\"></textarea>\n  </div>\n</div>\n\n\n<br>\n\n\n<h4>Selects</h4>\n<form>\n  <select class=\"span4\">\n    <option>Option</option>\n  </select>\n</form>\n\n\n<br>\n\n\n\n\n<!-- Dropdowns\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Dropdowns</h1>\n</div>\n\n<h4>Dropdown link with hash URL</h4>\n<ul class=\"nav nav-pills\">\n  <li class=\"active\"><a href=\"#\">Link</a></li>\n  <li><a href=\"#\">Example link</a></li>\n  <li class=\"dropdown\">\n    <a class=\"dropdown-toggle\" data-toggle=\"dropdown\" href=\"#\">\n      Dropdown <span class=\"caret\"></span>\n    </a>\n    <ul class=\"dropdown-menu\">\n      <li><a href=\"#\">Action</a></li>\n      <li><a href=\"#\">Another action</a></li>\n      <li><a href=\"#\">Something else here</a></li>\n      <li class=\"divider\"></li>\n      <li><a href=\"#\">Separated link</a></li>\n    </ul>\n  </li>\n</ul>\n\n<h4>Dropdown link with custom URL and data-target</h4>\n<ul class=\"nav nav-pills\">\n  <li class=\"active\"><a href=\"#\">Link</a></li>\n  <li><a href=\"#\">Example link</a></li>\n  <li class=\"dropdown\">\n    <a class=\"dropdown-toggle\" data-toggle=\"dropdown\" data-target=\"#\" href=\"path/to/page.html\">\n      Dropdown <span class=\"caret\"></span>\n    </a>\n    <ul class=\"dropdown-menu\">\n      <li><a href=\"#\">Action</a></li>\n      <li><a href=\"#\">Another action</a></li>\n      <li><a href=\"#\">Something else here</a></li>\n      <li class=\"divider\"></li>\n      <li><a href=\"#\">Separated link</a></li>\n    </ul>\n  </li>\n</ul>\n\n<h4>Dropdown on a button</h4>\n<div style=\"position: relative;\">\n  <button class=\"btn\" type=\"button\" data-toggle=\"dropdown\">Dropdown <span class=\"caret\"></span></button>\n  <ul class=\"dropdown-menu\">\n    <li><a href=\"#\">Action</a></li>\n    <li><a href=\"#\">Another action</a></li>\n    <li><a href=\"#\">Something else here</a></li>\n    <li class=\"divider\"></li>\n    <li><a href=\"#\">Separated link</a></li>\n  </ul>\n</div>\n\n<br>\n\n\n<!-- Thumbnails\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Thumbnails</h1>\n</div>\n\n<h4>Default thumbnails (no grid sizing)</h4>\n<ul class=\"thumbnails\">\n  <li class=\"thumbnail\">\n    <img data-src=\"holder.js/260x180\" alt=\"\">\n  </li>\n  <li class=\"thumbnail\">\n    <img data-src=\"holder.js/260x180\" alt=\"\">\n  </li>\n  <li class=\"thumbnail\">\n    <img data-src=\"holder.js/260x180\" alt=\"\">\n  </li>\n  <li class=\"thumbnail\">\n    <img data-src=\"holder.js/260x180\" alt=\"\">\n  </li>\n</ul>\n\n<!-- NOT CURRENTLY SUPPORTED\n<h4>Offset thumbnails</h4>\n<ul class=\"thumbnails\">\n  <li class=\"span3 offset3\">\n    <a href=\"#\" class=\"thumbnail\">\n      <img data-src=\"holder.js/260x180\" alt=\"\">\n    </a>\n  </li>\n  <li class=\"span3\">\n    <a href=\"#\" class=\"thumbnail\">\n      <img data-src=\"holder.js/260x180\" alt=\"\">\n    </a>\n  </li>\n  <li class=\"span3\">\n    <a href=\"#\" class=\"thumbnail\">\n      <img data-src=\"holder.js/260x180\" alt=\"\">\n    </a>\n  </li>\n</ul>\n-->\n\n<h4>Standard grid sizing</h4>\n<ul class=\"thumbnails\">\n  <li class=\"span3\">\n    <a href=\"#\" class=\"thumbnail\">\n      <img data-src=\"holder.js/260x180\" alt=\"\">\n    </a>\n  </li>\n  <li class=\"span3 offset3\">\n    <a href=\"#\" class=\"thumbnail\">\n      <img data-src=\"holder.js/260x180\" alt=\"\">\n    </a>\n  </li>\n  <li class=\"span3\">\n    <a href=\"#\" class=\"thumbnail\">\n      <img data-src=\"holder.js/260x180\" alt=\"\">\n    </a>\n  </li>\n</ul>\n\n<h4>Fluid thumbnails</h4>\n<div class=\"row-fluid\">\n  <div class=\"span8\">\n    <ul class=\"thumbnails\">\n      <li class=\"span4\">\n        <a href=\"#\" class=\"thumbnail\">\n          <img data-src=\"holder.js/260x180\" alt=\"\">\n        </a>\n      </li>\n      <li class=\"span4\">\n        <a href=\"#\" class=\"thumbnail\">\n          <img data-src=\"holder.js/260x180\" alt=\"\">\n        </a>\n      </li>\n      <li class=\"span4\">\n        <a href=\"#\" class=\"thumbnail\">\n          <img data-src=\"holder.js/260x180\" alt=\"\">\n        </a>\n      </li>\n    </ul>\n  </div>\n</div>\n\n\n\n<!-- Tabs\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Tabs</h1>\n</div>\n\n<div class=\"tabbable tabs-left\" style=\"margin-bottom: 18px;\">\n  <ul class=\"nav nav-tabs\">\n    <li class=\"active\"><a href=\"#tab1\" data-toggle=\"tab\">Section 1</a></li>\n    <li><a href=\"#tab2\" data-toggle=\"tab\">Section 2</a></li>\n    <li><a href=\"#tab3\" data-toggle=\"tab\">Section 3</a></li>\n  </ul>\n  <div class=\"tab-content\" style=\"padding-bottom: 9px; border-bottom: 1px solid #ddd;\">\n    <div class=\"tab-pane active\" id=\"tab1\">\n      <p>I'm in Section 1.</p>\n\n      <div class=\"tabbable\" style=\"background: #f5f5f5; padding: 20px;\">\n        <ul class=\"nav nav-tabs\">\n          <li class=\"active\"><a href=\"#tab1-1\" data-toggle=\"tab\">1.1</a></li>\n          <li><a href=\"#tab1-2\" data-toggle=\"tab\">1.2</a></li>\n          <li><a href=\"#tab1-3\" data-toggle=\"tab\">1.3</a></li>\n        </ul>\n        <div class=\"tab-content\" style=\"padding-bottom: 9px; border-bottom: 1px solid #ddd;\">\n          <div class=\"tab-pane active\" id=\"tab1-1\">\n            <p>I'm in Section 1.1.</p>\n          </div>\n          <div class=\"tab-pane\" id=\"tab1-2\">\n            <p>I'm in Section 1.2.</p>\n          </div>\n          <div class=\"tab-pane\" id=\"tab1-3\">\n            <p>I'm in Section 1.3.</p>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"tab-pane\" id=\"tab2\">\n      <p>Howdy, I'm in Section 2.</p>\n    </div>\n    <div class=\"tab-pane\" id=\"tab3\">\n      <p>What up girl, this is Section 3.</p>\n    </div>\n  </div>\n</div> <!-- /tabbable -->\n\n<br>\n\n\n<!-- Labels\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Labels</h1>\n</div>\n\n<div class=\"row\">\n  <div class=\"span4\">\n    <h4>Inline label</h4>\n    <p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Maecenas sed diam <span class=\"label label-warning\">Label name</span> eget risus varius blandit sit amet non magna. Fusce <code>.class-name</code> dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>\n  </div><!--/span-->\n  <div class=\"span4\">\n    <form class=\"form-horizontal\">\n      <label>Example label</label>\n      <input type=\"text\" placeholder=\"Input\"> <span class=\"help-inline\"><span class=\"label\">Hey!</span> Read this.</span>\n    </form>\n  </div><!--/span-->\n  <div class=\"span4\">\n    <button class=\"btn\">Action <span class=\"badge\">2</span></button>\n    <button class=\"btn\">Action <span class=\"label\">2</span></button>\n  </div><!--/span-->\n</div><!--/row-->\n\n<br>\n\n\n<!-- Button groups\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Buttons</h1>\n</div>\n\n<table class=\"table table-bordered\">\n  <tbody>\n    <tr>\n      <td>\n        Maecenas faucibus mollis interdum. Nulla vitae elit libero, a pharetra augue. Donec ullamcorper nulla non metus auctor fringilla. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.\n      </td>\n      <td>\n        <div class=\"btn-group\">\n          <button class=\"btn\">1</button>\n          <button class=\"btn\">2</button>\n          <button class=\"btn\">3</button>\n          <button class=\"btn\">4</button>\n        </div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<h4>Mini buttons: text and icon</h4>\n<div class=\"btn-group\">\n  <button class=\"btn btn-mini\">Button text</button>\n  <button class=\"btn btn-mini\"><i class=\"icon-cog\"></i></button>\n</div>\n\n<br>\n\n\n\n<!-- Responsive utility classes\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Responsive utility classes</h1>\n</div>\n\n<h4>Visible on...</h4>\n<ul class=\"responsive-utilities-test visible-on\">\n  <li>Phone<span class=\"visible-phone\">✔ Phone</span></li>\n  <li>Tablet<span class=\"visible-tablet\">✔ Tablet</span></li>\n  <li>Desktop<span class=\"visible-desktop\">✔ Desktop</span></li>\n</ul>\n<ul class=\"responsive-utilities-test visible-on\">\n  <li>Phone + Tablet<span class=\"visible-phone visible-tablet\">✔ Phone + Tablet</span></li>\n  <li>Tablet + Desktop<span class=\"visible-tablet visible-desktop\">✔ Tablet + Desktop</span></li>\n  <li>All<span class=\"visible-phone visible-tablet visible-desktop\">✔ All</span></li>\n</ul>\n\n<h4>Hidden on...</h4>\n<ul class=\"responsive-utilities-test hidden-on\">\n  <li>Phone<span class=\"hidden-phone\">✔ Phone</span></li>\n  <li>Tablet<span class=\"hidden-tablet\">✔ Tablet</span></li>\n  <li>Desktop<span class=\"hidden-desktop\">✔ Desktop</span></li>\n</ul>\n<ul class=\"responsive-utilities-test hidden-on\">\n  <li>Phone + Tablet<span class=\"hidden-phone hidden-tablet\">✔ Phone + Tablet</span></li>\n  <li>Tablet + Desktop<span class=\"hidden-tablet hidden-desktop\">✔ Tablet + Desktop</span></li>\n  <li>All<span class=\"hidden-phone hidden-tablet hidden-desktop\">✔ All</span></li>\n</ul>\n\n\n\n<!-- Gradients\n================================================== -->\n\n<div class=\"page-header\">\n  <h1>Gradients</h1>\n</div>\n\n<h4>Horizontal</h4>\n<div class=\"gradient-horizontal\"></div>\n\n<h4>Vertical</h4>\n<div class=\"gradient-vertical\"></div>\n\n<h4>Directional</h4>\n<div class=\"gradient-directional\"></div>\n\n<h4>Three colors</h4>\n<div class=\"gradient-vertical-three\"></div>\n\n<h4>Radial</h4>\n<div class=\"gradient-radial\"></div>\n\n<h4>Striped</h4>\n<div class=\"gradient-striped\"></div>\n\n<h4>Horizontal three colors</h4>\n<div class=\"gradient-horizontal-three\"></div>\n\n\n\n<div class=\"page-header\">\n  <h1>Alerts</h1>\n</div>\n\n<h4>Alert default</h4>\n<div class=\"alert\">\n  <button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>\n  <strong>Alert!</strong> Best check yourself, you're not looking too good.\n</div>\n<div class=\"alert alert-block\">\n  <button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>\n  <p><strong>Alert!</strong> Best check yourself, you're not looking too good.</p>\n</div>\n\n<h4>Success</h4>\n<div class=\"alert alert-success\">\n  <button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>\n  <strong>Success!</strong> Best check yourself, you're not looking too good.\n</div>\n<div class=\"alert alert-block alert-success\">\n  <button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>\n  <p><strong>Success!</strong> Best check yourself, you're not looking too good.</p>\n</div>\n\n<h4>Info</h4>\n<div class=\"alert alert-info\">\n  <button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>\n  <strong>Info!</strong> Best check yourself, you're not looking too good.\n</div>\n<div class=\"alert alert-block alert-info\">\n  <button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>\n  <p><strong>Info!</strong> Best check yourself, you're not looking too good.</p>\n</div>\n\n<h4>Warning</h4>\n<div class=\"alert \">\n  <button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>\n  <strong>Warning!</strong> Best check yourself, you're not looking too good.\n</div>\n<div class=\"alert alert-block alert-warning\">\n  <button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>\n  <p><strong>Warning!</strong> Best check yourself, you're not looking too good.</p>\n</div>\n\n<h4>Error</h4>\n<div class=\"alert alert-error\">\n  <button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>\n  <strong>Error!</strong> Best check yourself, you're not looking too good.\n</div>\n<div class=\"alert alert-block alert-error\">\n  <button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>\n  <p><strong>Error!</strong> Best check yourself, you're not looking too good.</p>\n</div>\n\n\n    </div><!-- /container -->\n\n\n\n    <!-- Footer\n    ================================================== -->\n    <footer class=\"footer\">\n      <div class=\"container\">\n        <p class=\"pull-right\"><a href=\"#\">Back to top</a></p>\n        <p>Designed and built with all the love in the world <a href=\"http://twitter.com/twitter\" target=\"_blank\">@twitter</a> by <a href=\"http://twitter.com/mdo\" target=\"_blank\">@mdo</a> and <a href=\"http://twitter.com/fat\" target=\"_blank\">@fat</a>.</p>\n        <p>Code licensed under the <a href=\"http://www.apache.org/licenses/LICENSE-2.0\" target=\"_blank\">Apache License v2.0</a>. Documentation licensed under <a href=\"http://creativecommons.org/licenses/by/3.0/\">CC BY 3.0</a>.</p>\n        <p>Icons from <a href=\"http://glyphicons.com\">Glyphicons Free</a>, licensed under <a href=\"http://creativecommons.org/licenses/by/3.0/\">CC BY 3.0</a>.</p>\n        <ul class=\"footer-links\">\n          <li><a href=\"http://blog.getbootstrap.com\">Read the blog</a></li>\n          <li><a href=\"https://github.com/twbs/bootstrap/issues?state=open\">Submit issues</a></li>\n          <li><a href=\"https://github.com/twbs/bootstrap/wiki\">Roadmap and changelog</a></li>\n        </ul>\n      </div>\n    </footer>\n\n</div>\n\n\n    <!-- Le javascript\n    ================================================== -->\n    <!-- Placed at the end of the document so the pages load faster -->\n    <script type=\"text/javascript\" src=\"http://platform.twitter.com/widgets.js\"></script>\n    <script src=\"../../docs/assets/js/jquery.js\"></script>\n    <script src=\"../../docs/assets/js/google-code-prettify/prettify.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-transition.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-alert.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-modal.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-dropdown.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-scrollspy.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-tab.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-tooltip.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-popover.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-button.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-collapse.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-carousel.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-typeahead.js\"></script>\n    <script src=\"../../docs/assets/js/application.js\"></script>\n\n\n  </body>\n</html>\n"
  },
  {
    "path": "lib/bootstrap2/tests/forms-responsive.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Bootstrap, from Twitter</title>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta name=\"description\" content=\"\">\n    <meta name=\"author\" content=\"\">\n\n    <!-- Le styles -->\n    <link href=\"../../docs/assets/css/bootstrap.css\" rel=\"stylesheet\">\n    <link href=\"../../docs/assets/css/bootstrap-responsive.css\" rel=\"stylesheet\">\n    <style>\n      body {\n        padding-top: 30px;\n        padding-bottom: 30px;\n      }\n    </style>\n\n    <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->\n    <!--[if lt IE 9]>\n      <script src=\"http://html5shim.googlecode.com/svn/trunk/html5.js\"></script>\n    <![endif]-->\n\n    <!-- Le fav and touch icons -->\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"144x144\" href=\"../../docs/assets/ico/apple-touch-icon-144-precomposed.png\">\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"114x114\" href=\"../../docs/assets/ico/apple-touch-icon-114-precomposed.png\">\n      <link rel=\"apple-touch-icon-precomposed\" sizes=\"72x72\" href=\"../../docs/assets/ico/apple-touch-icon-72-precomposed.png\">\n                    <link rel=\"apple-touch-icon-precomposed\" href=\"../../docs/assets/ico/apple-touch-icon-57-precomposed.png\">\n                                   <link rel=\"shortcut icon\" href=\"../../docs/assets/ico/favicon.png\">\n  </head>\n\n  <body>\n\n    <form class=\"container\">\n\n      <div class=\"page-header\">\n        <h1>Fixed grid</h1>\n      </div>\n\n      <h3>Vertical alignment</h3>\n      <input type=\"text\" class=\"span2\" placeholder=\"span2\">\n      <select class=\"span2\"><option>span2</option></select>\n      <span class=\"uneditable-input span2\">span1</span>\n\n      <h3>Width across elements</h3>\n      <div>\n        <input type=\"text\" class=\"span2\" placeholder=\"span2\">\n      </div>\n      <div>\n        <select class=\"span2\"><option>span2</option></select>\n      </div>\n      <div>\n        <span class=\"uneditable-input span2\">span2</span>\n      </div>\n\n\n      <div class=\"page-header\">\n        <h1>Fluid grid</h1>\n      </div>\n\n      <div class=\"row-fluid\">\n        <input type=\"text\" class=\"span2\" placeholder=\"span2\">\n        <select class=\"span2\"><option>span2</option></select>\n        <span class=\"uneditable-input span2\">span1</span>\n      </div>\n\n    </form> <!-- /container -->\n\n  </body>\n</html>\n"
  },
  {
    "path": "lib/bootstrap2/tests/forms.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Bootstrap, from Twitter</title>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta name=\"description\" content=\"\">\n    <meta name=\"author\" content=\"\">\n\n    <!-- Le styles -->\n    <link href=\"../../docs/assets/css/bootstrap.css\" rel=\"stylesheet\">\n    <link href=\"../../docs/assets/css/bootstrap-responsive.css\" rel=\"stylesheet\">\n    <style>\n      body {\n        padding-top: 30px;\n        padding-bottom: 30px;\n      }\n    </style>\n\n    <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->\n    <!--[if lt IE 9]>\n      <script src=\"http://html5shim.googlecode.com/svn/trunk/html5.js\"></script>\n    <![endif]-->\n\n    <!-- Le fav and touch icons -->\n    <link rel=\"shortcut icon\" href=\"../../docs/assets/ico/favicon.ico\">\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"144x144\" href=\"../../docs/assets/ico/apple-touch-icon-144-precomposed.png\">\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"114x114\" href=\"../../docs/assets/ico/apple-touch-icon-114-precomposed.png\">\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"72x72\" href=\"../../docs/assets/ico/apple-touch-icon-72-precomposed.png\">\n    <link rel=\"apple-touch-icon-precomposed\" href=\"../../docs/assets/ico/apple-touch-icon-57-precomposed.png\">\n  </head>\n\n  <body>\n\n    <form class=\"container\">\n\n      <div class=\"page-header\">\n        <h1>Form controls</h1>\n      </div>\n\n      <div class=\"row\">\n        <div class=\"span4\">\n\n          <label>Select</label>\n          <select>\n            <option>Select</option>\n            <option>Option 2</option>\n            <option>Option 3</option>\n          </select>\n\n          <hr>\n\n          <label>textarea</label>\n          <textarea>Textarea</textarea>\n\n          <hr>\n\n          <label>text</label>\n          <input type=\"text\" value=\"Text input\">\n\n          <hr>\n\n          <label>password</label>\n          <input type=\"password\" value=\"Password input\">\n\n          <hr>\n\n          <label>checkbox</label>\n          <input type=\"checkbox\" value=\"\">\n\n          <hr>\n\n          <label>radio</label>\n          <input type=\"radio\" value=\"\">\n\n          <hr>\n\n          <label>button</label>\n          <input type=\"button\" value=\"Button\">\n\n          <hr>\n\n          <label>submit</label>\n          <input type=\"submit\" value=\"Submit\">\n\n          <hr>\n\n          <label>reset</label>\n          <input type=\"reset\" value=\"Reset\">\n\n        </div><!-- /span4 -->\n        <div class=\"span4\">\n\n          <label>file</label>\n          <input type=\"file\" value=\"\">\n\n          <hr>\n\n          <label>hidden</label>\n          <input type=\"hidden\" value=\"hidden\">\n\n          <hr>\n\n          <label>image</label>\n          <input type=\"image\" value=\"\">\n\n          <hr>\n\n          <label>datetime</label>\n          <input type=\"datetime\" value=\"\">\n\n          <hr>\n\n          <label>datetime-local</label>\n          <input type=\"datetime-local\" value=\"\">\n\n          <hr>\n\n          <label>date</label>\n          <input type=\"date\" value=\"\">\n\n          <hr>\n\n          <label>month</label>\n          <input type=\"month\" value=\"\">\n\n          <hr>\n\n          <label>time</label>\n          <input type=\"time\" value=\"\">\n\n          <hr>\n\n          <label>week</label>\n          <input type=\"week\" value=\"\">\n\n        </div><!-- /span4 -->\n        <div class=\"span4\">\n\n          <label>number</label>\n          <input type=\"number\" value=\"\">\n\n          <hr>\n\n          <label>range</label>\n          <input type=\"range\" value=\"\">\n\n          <hr>\n\n          <label>email</label>\n          <input type=\"email\" value=\"\">\n\n          <hr>\n\n          <label>url</label>\n          <input type=\"url\" value=\"\">\n\n          <hr>\n\n          <label>search</label>\n          <input type=\"search\" value=\"\">\n\n          <hr>\n\n          <label>tel</label>\n          <input type=\"tel\" value=\"\">\n\n          <hr>\n\n          <label>color</label>\n          <input type=\"color\" value=\"\">\n\n        </div><!-- /span4 -->\n      </div><!-- /row -->\n\n    </form> <!-- /container -->\n\n  </body>\n</html>\n"
  },
  {
    "path": "lib/bootstrap2/tests/navbar-fixed-top.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Bootstrap, from Twitter</title>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta name=\"description\" content=\"\">\n    <meta name=\"author\" content=\"\">\n\n    <!-- Le styles -->\n    <link href=\"../../docs/assets/css/bootstrap.css\" rel=\"stylesheet\">\n    <style>\n      body {\n        padding-top: 60px;\n        padding-bottom: 30px;\n      }\n    </style>\n    <link href=\"../../docs/assets/css/bootstrap-responsive.css\" rel=\"stylesheet\">\n\n    <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->\n    <!--[if lt IE 9]>\n      <script src=\"http://html5shim.googlecode.com/svn/trunk/html5.js\"></script>\n    <![endif]-->\n\n    <!-- Le fav and touch icons -->\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"144x144\" href=\"../../docs/assets/ico/apple-touch-icon-144-precomposed.png\">\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"114x114\" href=\"../../docs/assets/ico/apple-touch-icon-114-precomposed.png\">\n      <link rel=\"apple-touch-icon-precomposed\" sizes=\"72x72\" href=\"../../docs/assets/ico/apple-touch-icon-72-precomposed.png\">\n                    <link rel=\"apple-touch-icon-precomposed\" href=\"../../docs/assets/ico/apple-touch-icon-57-precomposed.png\">\n                                   <link rel=\"shortcut icon\" href=\"../../docs/assets/ico/favicon.png\">\n  </head>\n\n  <body>\n\n    <!-- Fixed navbar -->\n    <div class=\"navbar navbar-fixed-top\">\n      <div class=\"navbar-inner\">\n        <div class=\"container\">\n          <a class=\"btn btn-navbar\" data-toggle=\"collapse\" data-target=\".nav-collapse\">\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n          </a>\n          <a class=\"brand\" href=\"#\">Project name</a>\n          <div class=\"nav-collapse collapse\">\n            <ul class=\"nav\">\n              <li class=\"active\"><a href=\"#\">Home</a></li>\n              <li><a href=\"#about\">About</a></li>\n              <li><a href=\"#contact\">Contact</a></li>\n              <li class=\"dropdown\">\n                <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">Dropdown <b class=\"caret\"></b></a>\n                <ul class=\"dropdown-menu\">\n                  <li><a href=\"#\">Action</a></li>\n                  <li><a href=\"#\">Another action</a></li>\n                  <li><a href=\"#\">Something else here</a></li>\n                  <li class=\"divider\"></li>\n                  <li class=\"nav-header\">Nav header</li>\n                  <li><a href=\"#\">Separated link</a></li>\n                  <li><a href=\"#\">One more separated link</a></li>\n                </ul>\n              </li>\n            </ul>\n            <ul class=\"nav pull-right\">\n              <li><a href=\"./navbar.html\">Default</a></li>\n              <li><a href=\"./navbar-static-top.html\">Static top</a></li>\n              <li class=\"active\"><a href=\"./navbar-fixed-top.html\">Fixed top</a></li>\n            </ul>\n          </div><!--/.nav-collapse -->\n        </div>\n      </div>\n    </div>\n\n    <div class=\"container\">\n\n      <!-- Main hero unit for a primary marketing message or call to action -->\n      <div class=\"hero-unit\">\n        <h1>Navbar example</h1>\n        <p>This example is a quick exercise to illustrate how the default, static navbar and fixed to top navbar work. It includes the responsive CSS and HTML, so it also adapts to your viewport and device.</p>\n        <p>\n          <a class=\"btn btn-large btn-primary\" href=\"../components.html#navbar\">View navbar docs &raquo;</a>\n        </p>\n      </div>\n\n    </div> <!-- /container -->\n\n    <!-- Le javascript\n    ================================================== -->\n    <!-- Placed at the end of the document so the pages load faster -->\n    <script src=\"../../docs/assets/js/jquery.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-transition.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-alert.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-modal.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-dropdown.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-scrollspy.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-tab.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-tooltip.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-popover.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-button.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-collapse.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-carousel.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-typeahead.js\"></script>\n\n  </body>\n</html>\n"
  },
  {
    "path": "lib/bootstrap2/tests/navbar-static-top.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Bootstrap, from Twitter</title>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta name=\"description\" content=\"\">\n    <meta name=\"author\" content=\"\">\n\n    <!-- Le styles -->\n    <link href=\"../../docs/assets/css/bootstrap.css\" rel=\"stylesheet\">\n    <style>\n      body {\n        padding-bottom: 30px;\n      }\n      .hero-unit {\n        margin-top: 20px;\n      }\n    </style>\n    <link href=\"../../docs/assets/css/bootstrap-responsive.css\" rel=\"stylesheet\">\n\n    <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->\n    <!--[if lt IE 9]>\n      <script src=\"http://html5shim.googlecode.com/svn/trunk/html5.js\"></script>\n    <![endif]-->\n\n    <!-- Le fav and touch icons -->\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"144x144\" href=\"../../docs/assets/ico/apple-touch-icon-144-precomposed.png\">\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"114x114\" href=\"../../docs/assets/ico/apple-touch-icon-114-precomposed.png\">\n      <link rel=\"apple-touch-icon-precomposed\" sizes=\"72x72\" href=\"../../docs/assets/ico/apple-touch-icon-72-precomposed.png\">\n                    <link rel=\"apple-touch-icon-precomposed\" href=\"../../docs/assets/ico/apple-touch-icon-57-precomposed.png\">\n                                   <link rel=\"shortcut icon\" href=\"../../docs/assets/ico/favicon.png\">\n  </head>\n\n  <body>\n\n    <!-- Static navbar -->\n    <div class=\"navbar navbar-static-top\">\n      <div class=\"navbar-inner\">\n        <div class=\"container\">\n          <a class=\"btn btn-navbar\" data-toggle=\"collapse\" data-target=\".nav-collapse\">\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n          </a>\n          <a class=\"brand\" href=\"#\">Project name</a>\n          <div class=\"nav-collapse collapse\">\n            <ul class=\"nav\">\n              <li class=\"active\"><a href=\"#\">Home</a></li>\n              <li><a href=\"#about\">About</a></li>\n              <li><a href=\"#contact\">Contact</a></li>\n              <li class=\"dropdown\">\n                <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">Dropdown <b class=\"caret\"></b></a>\n                <ul class=\"dropdown-menu\">\n                  <li><a href=\"#\">Action</a></li>\n                  <li><a href=\"#\">Another action</a></li>\n                  <li><a href=\"#\">Something else here</a></li>\n                  <li class=\"divider\"></li>\n                  <li class=\"nav-header\">Nav header</li>\n                  <li><a href=\"#\">Separated link</a></li>\n                  <li><a href=\"#\">One more separated link</a></li>\n                </ul>\n              </li>\n            </ul>\n          <ul class=\"nav pull-right\">\n            <li><a href=\"./navbar.html\">Default</a></li>\n            <li class=\"active\"><a href=\"./navbar-static-top.html\">Static top</a></li>\n            <li><a href=\"./navbar-fixed-top.html\">Fixed top</a></li>\n          </ul>\n          </div><!--/.nav-collapse -->\n        </div>\n      </div>\n    </div>\n\n\n    <div class=\"container\">\n\n      <!-- Main hero unit for a primary marketing message or call to action -->\n      <div class=\"hero-unit\">\n        <h1>Navbar example</h1>\n        <p>This example is a quick exercise to illustrate how the default, static navbar and fixed to top navbar work. It includes the responsive CSS and HTML, so it also adapts to your viewport and device.</p>\n        <p>\n          <a class=\"btn btn-large btn-primary\" href=\"../components.html#navbar\">View navbar docs &raquo;</a>\n        </p>\n      </div>\n\n    </div> <!-- /container -->\n\n    <!-- Le javascript\n    ================================================== -->\n    <!-- Placed at the end of the document so the pages load faster -->\n    <script src=\"../../docs/assets/js/jquery.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-transition.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-alert.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-modal.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-dropdown.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-scrollspy.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-tab.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-tooltip.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-popover.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-button.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-collapse.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-carousel.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-typeahead.js\"></script>\n\n  </body>\n</html>\n"
  },
  {
    "path": "lib/bootstrap2/tests/navbar.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Bootstrap, from Twitter</title>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta name=\"description\" content=\"\">\n    <meta name=\"author\" content=\"\">\n\n    <!-- Le styles -->\n    <link href=\"../../docs/assets/css/bootstrap.css\" rel=\"stylesheet\">\n    <style>\n      body {\n        padding-top: 0;\n        padding-bottom: 30px;\n      }\n      .navbar {\n        margin-top: 20px;\n      }\n    </style>\n    <link href=\"../../docs/assets/css/bootstrap-responsive.css\" rel=\"stylesheet\">\n\n    <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->\n    <!--[if lt IE 9]>\n      <script src=\"http://html5shim.googlecode.com/svn/trunk/html5.js\"></script>\n    <![endif]-->\n\n    <!-- Le fav and touch icons -->\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"144x144\" href=\"../../docs/assets/ico/apple-touch-icon-144-precomposed.png\">\n    <link rel=\"apple-touch-icon-precomposed\" sizes=\"114x114\" href=\"../../docs/assets/ico/apple-touch-icon-114-precomposed.png\">\n      <link rel=\"apple-touch-icon-precomposed\" sizes=\"72x72\" href=\"../../docs/assets/ico/apple-touch-icon-72-precomposed.png\">\n                    <link rel=\"apple-touch-icon-precomposed\" href=\"../../docs/assets/ico/apple-touch-icon-57-precomposed.png\">\n                                   <link rel=\"shortcut icon\" href=\"../../docs/assets/ico/favicon.png\">\n  </head>\n\n  <body>\n\n    <div class=\"container\">\n\n      <!-- Static navbar -->\n      <div class=\"navbar\">\n        <div class=\"navbar-inner\">\n          <div class=\"container\">\n            <a class=\"btn btn-navbar\" data-toggle=\"collapse\" data-target=\".nav-collapse\">\n              <span class=\"icon-bar\"></span>\n              <span class=\"icon-bar\"></span>\n              <span class=\"icon-bar\"></span>\n            </a>\n            <a class=\"brand\" href=\"#\">Project name</a>\n            <div class=\"nav-collapse collapse\">\n              <ul class=\"nav\">\n                <li class=\"active\"><a href=\"#\">Home</a></li>\n                <li><a href=\"#about\">About</a></li>\n                <li><a href=\"#contact\">Contact</a></li>\n                <li class=\"dropdown\">\n                  <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">Dropdown <b class=\"caret\"></b></a>\n                  <ul class=\"dropdown-menu\">\n                    <li><a href=\"#\">Action</a></li>\n                    <li><a href=\"#\">Another action</a></li>\n                    <li><a href=\"#\">Something else here</a></li>\n                    <li class=\"divider\"></li>\n                    <li class=\"nav-header\">Nav header</li>\n                    <li><a href=\"#\">Separated link</a></li>\n                    <li><a href=\"#\">One more separated link</a></li>\n                  </ul>\n                </li>\n              </ul>\n              <ul class=\"nav pull-right\">\n                <li class=\"active\"><a href=\"./navbar.html\">Default</a></li>\n                <li><a href=\"./navbar-static-top.html\">Static top</a></li>\n                <li><a href=\"./navbar-fixed-top.html\">Fixed top</a></li>\n              </ul>\n            </div><!--/.nav-collapse -->\n          </div>\n        </div>\n      </div>\n\n      <!-- Main hero unit for a primary marketing message or call to action -->\n      <div class=\"hero-unit\">\n        <h1>Navbar example</h1>\n        <p>This example is a quick exercise to illustrate how the default, static navbar and fixed to top navbar work. It includes the responsive CSS and HTML, so it also adapts to your viewport and device.</p>\n        <p>\n          <a class=\"btn btn-large btn-primary\" href=\"../components.html#navbar\">View navbar docs &raquo;</a>\n        </p>\n      </div>\n\n    </div> <!-- /container -->\n\n    <!-- Le javascript\n    ================================================== -->\n    <!-- Placed at the end of the document so the pages load faster -->\n    <script src=\"../../docs/assets/js/jquery.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-transition.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-alert.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-modal.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-dropdown.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-scrollspy.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-tab.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-tooltip.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-popover.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-button.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-collapse.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-carousel.js\"></script>\n    <script src=\"../../docs/assets/js/bootstrap-typeahead.js\"></script>\n\n  </body>\n</html>\n"
  },
  {
    "path": "lib/bootstrap2/thumbnails.less",
    "content": "//\n// Thumbnails\n// --------------------------------------------------\n\n\n// Note: `.thumbnails` and `.thumbnails > li` are overriden in responsive files\n\n// Make wrapper ul behave like the grid\n.thumbnails {\n  margin-left: -@gridGutterWidth;\n  list-style: none;\n  .clearfix();\n}\n// Fluid rows have no left margin\n.row-fluid .thumbnails {\n  margin-left: 0;\n}\n\n// Float li to make thumbnails appear in a row\n.thumbnails > li {\n  float: left; // Explicity set the float since we don't require .span* classes\n  margin-bottom: @baseLineHeight;\n  margin-left: @gridGutterWidth;\n}\n\n// The actual thumbnail (can be `a` or `div`)\n.thumbnail {\n  display: block;\n  padding: 4px;\n  line-height: @baseLineHeight;\n  border: 1px solid #ddd;\n  .border-radius(@baseBorderRadius);\n  .box-shadow(0 1px 3px rgba(0,0,0,.055));\n  .transition(all .2s ease-in-out);\n}\n// Add a hover/focus state for linked versions only\na.thumbnail:hover,\na.thumbnail:focus {\n  border-color: @linkColor;\n  .box-shadow(0 1px 4px rgba(0,105,214,.25));\n}\n\n// Images and captions\n.thumbnail > img {\n  display: block;\n  max-width: 100%;\n  margin-left: auto;\n  margin-right: auto;\n}\n.thumbnail .caption {\n  padding: 9px;\n  color: @gray;\n}\n"
  },
  {
    "path": "lib/bootstrap2/tooltip.less",
    "content": "//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n  position: absolute;\n  z-index: @zindexTooltip;\n  display: block;\n  visibility: visible;\n  font-size: 11px;\n  line-height: 1.4;\n  .opacity(0);\n  &.in     { .opacity(80); }\n  &.top    { margin-top:  -3px; padding: 5px 0; }\n  &.right  { margin-left:  3px; padding: 0 5px; }\n  &.bottom { margin-top:   3px; padding: 5px 0; }\n  &.left   { margin-left: -3px; padding: 0 5px; }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n  max-width: 200px;\n  padding: 8px;\n  color: @tooltipColor;\n  text-align: center;\n  text-decoration: none;\n  background-color: @tooltipBackground;\n  .border-radius(@baseBorderRadius);\n}\n\n// Arrows\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n.tooltip {\n  &.top .tooltip-arrow {\n    bottom: 0;\n    left: 50%;\n    margin-left: -@tooltipArrowWidth;\n    border-width: @tooltipArrowWidth @tooltipArrowWidth 0;\n    border-top-color: @tooltipArrowColor;\n  }\n  &.right .tooltip-arrow {\n    top: 50%;\n    left: 0;\n    margin-top: -@tooltipArrowWidth;\n    border-width: @tooltipArrowWidth @tooltipArrowWidth @tooltipArrowWidth 0;\n    border-right-color: @tooltipArrowColor;\n  }\n  &.left .tooltip-arrow {\n    top: 50%;\n    right: 0;\n    margin-top: -@tooltipArrowWidth;\n    border-width: @tooltipArrowWidth 0 @tooltipArrowWidth @tooltipArrowWidth;\n    border-left-color: @tooltipArrowColor;\n  }\n  &.bottom .tooltip-arrow {\n    top: 0;\n    left: 50%;\n    margin-left: -@tooltipArrowWidth;\n    border-width: 0 @tooltipArrowWidth @tooltipArrowWidth;\n    border-bottom-color: @tooltipArrowColor;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap2/type.less",
    "content": "//\n// Typography\n// --------------------------------------------------\n\n\n// Body text\n// -------------------------\n\np {\n  margin: 0 0 @baseLineHeight / 2;\n}\n.lead {\n  margin-bottom: @baseLineHeight;\n  font-size: @baseFontSize * 1.5;\n  font-weight: 200;\n  line-height: @baseLineHeight * 1.5;\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: 14px base font * 85% = about 12px\nsmall   { font-size: 85%; }\n\nstrong  { font-weight: bold; }\nem      { font-style: italic; }\ncite    { font-style: normal; }\n\n// Utility classes\n.muted               { color: @grayLight; }\na.muted:hover,\na.muted:focus        { color: darken(@grayLight, 10%); }\n\n.text-warning        { color: @warningText; }\na.text-warning:hover,\na.text-warning:focus { color: darken(@warningText, 10%); }\n\n.text-error          { color: @errorText; }\na.text-error:hover,\na.text-error:focus   { color: darken(@errorText, 10%); }\n\n.text-info           { color: @infoText; }\na.text-info:hover,\na.text-info:focus    { color: darken(@infoText, 10%); }\n\n.text-success        { color: @successText; }\na.text-success:hover,\na.text-success:focus { color: darken(@successText, 10%); }\n\n.text-left           { text-align: left; }\n.text-right          { text-align: right; }\n.text-center         { text-align: center; }\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6 {\n  margin: (@baseLineHeight / 2) 0;\n  font-family: @headingsFontFamily;\n  font-weight: @headingsFontWeight;\n  line-height: @baseLineHeight;\n  color: @headingsColor;\n  text-rendering: optimizelegibility; // Fix the character spacing for headings\n  small {\n    font-weight: normal;\n    line-height: 1;\n    color: @grayLight;\n  }\n}\n\nh1,\nh2,\nh3 { line-height: @baseLineHeight * 2; }\n\nh1 { font-size: @baseFontSize * 2.75; } // ~38px\nh2 { font-size: @baseFontSize * 2.25; } // ~32px\nh3 { font-size: @baseFontSize * 1.75; } // ~24px\nh4 { font-size: @baseFontSize * 1.25; } // ~18px\nh5 { font-size: @baseFontSize; }\nh6 { font-size: @baseFontSize * 0.85; } // ~12px\n\nh1 small { font-size: @baseFontSize * 1.75; } // ~24px\nh2 small { font-size: @baseFontSize * 1.25; } // ~18px\nh3 small { font-size: @baseFontSize; }\nh4 small { font-size: @baseFontSize; }\n\n\n// Page header\n// -------------------------\n\n.page-header {\n  padding-bottom: (@baseLineHeight / 2) - 1;\n  margin: @baseLineHeight 0 (@baseLineHeight * 1.5);\n  border-bottom: 1px solid @grayLighter;\n}\n\n\n\n// Lists\n// --------------------------------------------------\n\n// Unordered and Ordered lists\nul, ol {\n  padding: 0;\n  margin: 0 0 @baseLineHeight / 2 25px;\n}\nul ul,\nul ol,\nol ol,\nol ul {\n  margin-bottom: 0;\n}\nli {\n  line-height: @baseLineHeight;\n}\n\n// Remove default list styles\nul.unstyled,\nol.unstyled {\n  margin-left: 0;\n  list-style: none;\n}\n\n// Single-line list items\nul.inline,\nol.inline {\n  margin-left: 0;\n  list-style: none;\n  > li {\n    display: inline-block;\n    .ie7-inline-block();\n    padding-left: 5px;\n    padding-right: 5px;\n  }\n}\n\n// Description Lists\ndl {\n  margin-bottom: @baseLineHeight;\n}\ndt,\ndd {\n  line-height: @baseLineHeight;\n}\ndt {\n  font-weight: bold;\n}\ndd {\n  margin-left: @baseLineHeight / 2;\n}\n// Horizontal layout (like forms)\n.dl-horizontal {\n  .clearfix(); // Ensure dl clears floats if empty dd elements present\n  dt {\n    float: left;\n    width: @horizontalComponentOffset - 20;\n    clear: left;\n    text-align: right;\n    .text-overflow();\n  }\n  dd {\n    margin-left: @horizontalComponentOffset;\n  }\n}\n\n// MISC\n// ----\n\n// Horizontal rules\nhr {\n  margin: @baseLineHeight 0;\n  border: 0;\n  border-top: 1px solid @hrBorder;\n  border-bottom: 1px solid @white;\n}\n\n// Abbreviations and acronyms\nabbr[title],\n// Added data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[data-original-title] {\n  cursor: help;\n  border-bottom: 1px dotted @grayLight;\n}\nabbr.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\n\n// Blockquotes\nblockquote {\n  padding: 0 0 0 15px;\n  margin: 0 0 @baseLineHeight;\n  border-left: 5px solid @grayLighter;\n  p {\n    margin-bottom: 0;\n    font-size: @baseFontSize * 1.25;\n    font-weight: 300;\n    line-height: 1.25;\n  }\n  small {\n    display: block;\n    line-height: @baseLineHeight;\n    color: @grayLight;\n    &:before {\n      content: '\\2014 \\00A0';\n    }\n  }\n\n  // Float right with text-align: right\n  &.pull-right {\n    float: right;\n    padding-right: 15px;\n    padding-left: 0;\n    border-right: 5px solid @grayLighter;\n    border-left: 0;\n    p,\n    small {\n      text-align: right;\n    }\n    small {\n      &:before {\n        content: '';\n      }\n      &:after {\n        content: '\\00A0 \\2014';\n      }\n    }\n  }\n}\n\n// Quotes\nq:before,\nq:after,\nblockquote:before,\nblockquote:after {\n  content: \"\";\n}\n\n// Addresses\naddress {\n  display: block;\n  margin-bottom: @baseLineHeight;\n  font-style: normal;\n  line-height: @baseLineHeight;\n}\n"
  },
  {
    "path": "lib/bootstrap2/utilities.less",
    "content": "//\n// Utility classes\n// --------------------------------------------------\n\n\n// Quick floats\n.pull-right {\n  float: right;\n}\n.pull-left {\n  float: left;\n}\n\n// Toggling content\n.hide {\n  display: none;\n}\n.show {\n  display: block;\n}\n\n// Visibility\n.invisible {\n  visibility: hidden;\n}\n\n// For Affix plugin\n.affix {\n  position: fixed;\n}\n"
  },
  {
    "path": "lib/bootstrap2/variables.less",
    "content": "//\n// Variables\n// --------------------------------------------------\n\n\n// Global values\n// --------------------------------------------------\n\n\n// Grays\n// -------------------------\n@black:                 #000;\n@grayDarker:            #222;\n@grayDark:              #333;\n@gray:                  #555;\n@grayLight:             #999;\n@grayLighter:           #eee;\n@white:                 #fff;\n\n\n// Accent colors\n// -------------------------\n@blue:                  #049cdb;\n@blueDark:              #0064cd;\n@green:                 #46a546;\n@red:                   #9d261d;\n@yellow:                #ffc40d;\n@orange:                #f89406;\n@pink:                  #c3325f;\n@purple:                #7a43b6;\n\n\n// Scaffolding\n// -------------------------\n@bodyBackground:        @white;\n@textColor:             @grayDark;\n\n\n// Links\n// -------------------------\n@linkColor:             #08c;\n@linkColorHover:        darken(@linkColor, 15%);\n\n\n// Typography\n// -------------------------\n@sansFontFamily:        \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n@serifFontFamily:       Georgia, \"Times New Roman\", Times, serif;\n@monoFontFamily:        Monaco, Menlo, Consolas, \"Courier New\", monospace;\n\n@baseFontSize:          14px;\n@baseFontFamily:        @sansFontFamily;\n@baseLineHeight:        20px;\n@altFontFamily:         @serifFontFamily;\n\n@headingsFontFamily:    inherit; // empty to use BS default, @baseFontFamily\n@headingsFontWeight:    bold;    // instead of browser default, bold\n@headingsColor:         inherit; // empty to use BS default, @textColor\n\n\n// Component sizing\n// -------------------------\n// Based on 14px font-size and 20px line-height\n\n@fontSizeLarge:         @baseFontSize * 1.25; // ~18px\n@fontSizeSmall:         @baseFontSize * 0.85; // ~12px\n@fontSizeMini:          @baseFontSize * 0.75; // ~11px\n\n@paddingLarge:          11px 19px; // 44px\n@paddingSmall:          2px 10px;  // 26px\n@paddingMini:           0 6px;   // 22px\n\n@baseBorderRadius:      4px;\n@borderRadiusLarge:     6px;\n@borderRadiusSmall:     3px;\n\n\n// Tables\n// -------------------------\n@tableBackground:                   transparent; // overall background-color\n@tableBackgroundAccent:             #f9f9f9; // for striping\n@tableBackgroundHover:              #f5f5f5; // for hover\n@tableBorder:                       #ddd; // table and cell border\n\n// Buttons\n// -------------------------\n@btnBackground:                     @white;\n@btnBackgroundHighlight:            darken(@white, 10%);\n@btnBorder:                         #ccc;\n\n@btnPrimaryBackground:              @linkColor;\n@btnPrimaryBackgroundHighlight:     spin(@btnPrimaryBackground, 20%);\n\n@btnInfoBackground:                 #5bc0de;\n@btnInfoBackgroundHighlight:        #2f96b4;\n\n@btnSuccessBackground:              #62c462;\n@btnSuccessBackgroundHighlight:     #51a351;\n\n@btnWarningBackground:              lighten(@orange, 15%);\n@btnWarningBackgroundHighlight:     @orange;\n\n@btnDangerBackground:               #ee5f5b;\n@btnDangerBackgroundHighlight:      #bd362f;\n\n@btnInverseBackground:              #444;\n@btnInverseBackgroundHighlight:     @grayDarker;\n\n\n// Forms\n// -------------------------\n@inputBackground:               @white;\n@inputBorder:                   #ccc;\n@inputBorderRadius:             @baseBorderRadius;\n@inputDisabledBackground:       @grayLighter;\n@formActionsBackground:         #f5f5f5;\n@inputHeight:                   @baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border\n\n\n// Dropdowns\n// -------------------------\n@dropdownBackground:            @white;\n@dropdownBorder:                rgba(0,0,0,.2);\n@dropdownDividerTop:            #e5e5e5;\n@dropdownDividerBottom:         @white;\n\n@dropdownLinkColor:             @grayDark;\n@dropdownLinkColorHover:        @white;\n@dropdownLinkColorActive:       @white;\n\n@dropdownLinkBackgroundActive:  @linkColor;\n@dropdownLinkBackgroundHover:   @dropdownLinkBackgroundActive;\n\n\n\n// COMPONENT VARIABLES\n// --------------------------------------------------\n\n\n// Z-index master list\n// -------------------------\n// Used for a bird's eye view of components dependent on the z-axis\n// Try to avoid customizing these :)\n@zindexDropdown:          1000;\n@zindexPopover:           1010;\n@zindexTooltip:           1030;\n@zindexFixedNavbar:       1030;\n@zindexModalBackdrop:     1040;\n@zindexModal:             1050;\n\n\n// Sprite icons path\n// -------------------------\n@iconSpritePath:          \"../img/glyphicons-halflings.png\";\n@iconWhiteSpritePath:     \"../img/glyphicons-halflings-white.png\";\n\n\n// Input placeholder text color\n// -------------------------\n@placeholderText:         @grayLight;\n\n\n// Hr border color\n// -------------------------\n@hrBorder:                @grayLighter;\n\n\n// Horizontal forms & lists\n// -------------------------\n@horizontalComponentOffset:       180px;\n\n\n// Wells\n// -------------------------\n@wellBackground:                  #f5f5f5;\n\n\n// Navbar\n// -------------------------\n@navbarCollapseWidth:             979px;\n@navbarCollapseDesktopWidth:      @navbarCollapseWidth + 1;\n\n@navbarHeight:                    40px;\n@navbarBackgroundHighlight:       #ffffff;\n@navbarBackground:                darken(@navbarBackgroundHighlight, 5%);\n@navbarBorder:                    darken(@navbarBackground, 12%);\n\n@navbarText:                      #777;\n@navbarLinkColor:                 #777;\n@navbarLinkColorHover:            @grayDark;\n@navbarLinkColorActive:           @gray;\n@navbarLinkBackgroundHover:       transparent;\n@navbarLinkBackgroundActive:      darken(@navbarBackground, 5%);\n\n@navbarBrandColor:                @navbarLinkColor;\n\n// Inverted navbar\n@navbarInverseBackground:                #111111;\n@navbarInverseBackgroundHighlight:       #222222;\n@navbarInverseBorder:                    #252525;\n\n@navbarInverseText:                      @grayLight;\n@navbarInverseLinkColor:                 @grayLight;\n@navbarInverseLinkColorHover:            @white;\n@navbarInverseLinkColorActive:           @navbarInverseLinkColorHover;\n@navbarInverseLinkBackgroundHover:       transparent;\n@navbarInverseLinkBackgroundActive:      @navbarInverseBackground;\n\n@navbarInverseSearchBackground:          lighten(@navbarInverseBackground, 25%);\n@navbarInverseSearchBackgroundFocus:     @white;\n@navbarInverseSearchBorder:              @navbarInverseBackground;\n@navbarInverseSearchPlaceholderColor:    #ccc;\n\n@navbarInverseBrandColor:                @navbarInverseLinkColor;\n\n\n// Pagination\n// -------------------------\n@paginationBackground:                #fff;\n@paginationBorder:                    #ddd;\n@paginationActiveBackground:          #f5f5f5;\n\n\n// Hero unit\n// -------------------------\n@heroUnitBackground:              @grayLighter;\n@heroUnitHeadingColor:            inherit;\n@heroUnitLeadColor:               inherit;\n\n\n// Form states and alerts\n// -------------------------\n@warningText:             #c09853;\n@warningBackground:       #fcf8e3;\n@warningBorder:           darken(spin(@warningBackground, -10), 3%);\n\n@errorText:               #b94a48;\n@errorBackground:         #f2dede;\n@errorBorder:             darken(spin(@errorBackground, -10), 3%);\n\n@successText:             #468847;\n@successBackground:       #dff0d8;\n@successBorder:           darken(spin(@successBackground, -10), 5%);\n\n@infoText:                #3a87ad;\n@infoBackground:          #d9edf7;\n@infoBorder:              darken(spin(@infoBackground, -10), 7%);\n\n\n// Tooltips and popovers\n// -------------------------\n@tooltipColor:            #fff;\n@tooltipBackground:       #000;\n@tooltipArrowWidth:       5px;\n@tooltipArrowColor:       @tooltipBackground;\n\n@popoverBackground:       #fff;\n@popoverArrowWidth:       10px;\n@popoverArrowColor:       #fff;\n@popoverTitleBackground:  darken(@popoverBackground, 3%);\n\n// Special enhancement for popovers\n@popoverArrowOuterWidth:  @popoverArrowWidth + 1;\n@popoverArrowOuterColor:  rgba(0,0,0,.25);\n\n\n\n// GRID\n// --------------------------------------------------\n\n\n// Default 940px grid\n// -------------------------\n@gridColumns:             12;\n@gridColumnWidth:         60px;\n@gridGutterWidth:         20px;\n@gridRowWidth:            (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1));\n\n// 1200px min\n@gridColumnWidth1200:     70px;\n@gridGutterWidth1200:     30px;\n@gridRowWidth1200:        (@gridColumns * @gridColumnWidth1200) + (@gridGutterWidth1200 * (@gridColumns - 1));\n\n// 768px-979px\n@gridColumnWidth768:      42px;\n@gridGutterWidth768:      20px;\n@gridRowWidth768:         (@gridColumns * @gridColumnWidth768) + (@gridGutterWidth768 * (@gridColumns - 1));\n\n\n// Fluid grid\n// -------------------------\n@fluidGridColumnWidth:    percentage(@gridColumnWidth/@gridRowWidth);\n@fluidGridGutterWidth:    percentage(@gridGutterWidth/@gridRowWidth);\n\n// 1200px min\n@fluidGridColumnWidth1200:     percentage(@gridColumnWidth1200/@gridRowWidth1200);\n@fluidGridGutterWidth1200:     percentage(@gridGutterWidth1200/@gridRowWidth1200);\n\n// 768px-979px\n@fluidGridColumnWidth768:      percentage(@gridColumnWidth768/@gridRowWidth768);\n@fluidGridGutterWidth768:      percentage(@gridGutterWidth768/@gridRowWidth768);\n"
  },
  {
    "path": "lib/bootstrap2/wells.less",
    "content": "//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n  min-height: 20px;\n  padding: 19px;\n  margin-bottom: 20px;\n  background-color: @wellBackground;\n  border: 1px solid darken(@wellBackground, 7%);\n  .border-radius(@baseBorderRadius);\n  .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));\n  blockquote {\n    border-color: #ddd;\n    border-color: rgba(0,0,0,.15);\n  }\n}\n\n// Sizes\n.well-large {\n  padding: 24px;\n  .border-radius(@borderRadiusLarge);\n}\n.well-small {\n  padding: 9px;\n  .border-radius(@borderRadiusSmall);\n}\n"
  },
  {
    "path": "lib/bootstrap3/alerts.less",
    "content": "//\n// Alerts\n// --------------------------------------------------\n\n\n// Base styles\n// -------------------------\n\n.alert {\n  padding: @alert-padding;\n  margin-bottom: @line-height-computed;\n  border: 1px solid transparent;\n  border-radius: @alert-border-radius;\n\n  // Headings for larger alerts\n  h4 {\n    margin-top: 0;\n    color: inherit; // Specified for the h4 to prevent conflicts of changing @headings-color\n  }\n\n  // Provide class for links that match alerts\n  .alert-link {\n    font-weight: @alert-link-font-weight;\n  }\n\n  // Improve alignment and spacing of inner content\n  > p,\n  > ul {\n    margin-bottom: 0;\n  }\n\n  > p + p {\n    margin-top: 5px;\n  }\n}\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n// The misspelled .alert-dismissable was deprecated in 3.2.0.\n.alert-dismissable,\n.alert-dismissible {\n  padding-right: (@alert-padding + 20);\n\n  // Adjust close link position\n  .close {\n    position: relative;\n    top: -2px;\n    right: -21px;\n    color: inherit;\n  }\n}\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n.alert-success {\n  .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);\n}\n\n.alert-info {\n  .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);\n}\n\n.alert-warning {\n  .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);\n}\n\n.alert-danger {\n  .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);\n}\n"
  },
  {
    "path": "lib/bootstrap3/badges.less",
    "content": "//\n// Badges\n// --------------------------------------------------\n\n\n// Base class\n.badge {\n  display: inline-block;\n  min-width: 10px;\n  padding: 3px 7px;\n  font-size: @font-size-small;\n  font-weight: @badge-font-weight;\n  line-height: @badge-line-height;\n  color: @badge-color;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: middle;\n  background-color: @badge-bg;\n  border-radius: @badge-border-radius;\n\n  // Empty badges collapse automatically (not available in IE8)\n  &:empty {\n    display: none;\n  }\n\n  // Quick fix for badges in buttons\n  .btn & {\n    position: relative;\n    top: -1px;\n  }\n\n  .btn-xs &,\n  .btn-group-xs > .btn & {\n    top: 0;\n    padding: 1px 5px;\n  }\n\n  // Hover state, but only for links\n  a& {\n    &:hover,\n    &:focus {\n      color: @badge-link-hover-color;\n      text-decoration: none;\n      cursor: pointer;\n    }\n  }\n\n  // Account for badges in navs\n  .list-group-item.active > &,\n  .nav-pills > .active > a > & {\n    color: @badge-active-color;\n    background-color: @badge-active-bg;\n  }\n\n  .list-group-item > & {\n    float: right;\n  }\n\n  .list-group-item > & + & {\n    margin-right: 5px;\n  }\n\n  .nav-pills > li > a > & {\n    margin-left: 3px;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/bootstrap.less",
    "content": "/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n// Core variables and mixins\n@import \"variables.less\";\n@import \"mixins.less\";\n\n// Reset and dependencies\n@import \"normalize.less\";\n@import \"print.less\";\n@import \"glyphicons.less\";\n\n// Core CSS\n@import \"scaffolding.less\";\n@import \"type.less\";\n@import \"code.less\";\n@import \"grid.less\";\n@import \"tables.less\";\n@import \"forms.less\";\n@import \"buttons.less\";\n\n// Components\n@import \"component-animations.less\";\n@import \"dropdowns.less\";\n@import \"button-groups.less\";\n@import \"input-groups.less\";\n@import \"navs.less\";\n@import \"navbar.less\";\n@import \"breadcrumbs.less\";\n@import \"pagination.less\";\n@import \"pager.less\";\n@import \"labels.less\";\n@import \"badges.less\";\n@import \"jumbotron.less\";\n@import \"thumbnails.less\";\n@import \"alerts.less\";\n@import \"progress-bars.less\";\n@import \"media.less\";\n@import \"list-group.less\";\n@import \"panels.less\";\n@import \"responsive-embed.less\";\n@import \"wells.less\";\n@import \"close.less\";\n\n// Components w/ JavaScript\n@import \"modals.less\";\n@import \"tooltip.less\";\n@import \"popovers.less\";\n@import \"carousel.less\";\n\n// Utility classes\n@import \"utilities.less\";\n@import \"responsive-utilities.less\";\n"
  },
  {
    "path": "lib/bootstrap3/breadcrumbs.less",
    "content": "//\n// Breadcrumbs\n// --------------------------------------------------\n\n\n.breadcrumb {\n  padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;\n  margin-bottom: @line-height-computed;\n  list-style: none;\n  background-color: @breadcrumb-bg;\n  border-radius: @border-radius-base;\n\n  > li {\n    display: inline-block;\n\n    + li:before {\n      padding: 0 5px;\n      color: @breadcrumb-color;\n      content: \"@{breadcrumb-separator}\\00a0\"; // Unicode space added since inline-block means non-collapsing white-space\n    }\n  }\n\n  > .active {\n    color: @breadcrumb-active-color;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/button-groups.less",
    "content": "// stylelint-disable selector-no-qualifying-type */\n\n//\n// Button groups\n// --------------------------------------------------\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle; // match .btn alignment given font-size hack above\n  > .btn {\n    position: relative;\n    float: left;\n    // Bring the \"active\" button to the front\n    &:hover,\n    &:focus,\n    &:active,\n    &.active {\n      z-index: 2;\n    }\n  }\n}\n\n// Prevent double borders when buttons are next to each other\n.btn-group {\n  .btn + .btn,\n  .btn + .btn-group,\n  .btn-group + .btn,\n  .btn-group + .btn-group {\n    margin-left: -1px;\n  }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n  margin-left: -5px; // Offset the first child's margin\n  &:extend(.clearfix all);\n\n  .btn,\n  .btn-group,\n  .input-group {\n    float: left;\n  }\n  > .btn,\n  > .btn-group,\n  > .input-group {\n    margin-left: 5px;\n  }\n}\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n  border-radius: 0;\n}\n\n// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match\n.btn-group > .btn:first-child {\n  margin-left: 0;\n  &:not(:last-child):not(.dropdown-toggle) {\n    .border-right-radius(0);\n  }\n}\n// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n  .border-left-radius(0);\n}\n\n// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)\n.btn-group > .btn-group {\n  float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) {\n  > .btn:last-child,\n  > .dropdown-toggle {\n    .border-right-radius(0);\n  }\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  .border-left-radius(0);\n}\n\n// On active and open, don't show outline\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n  outline: 0;\n}\n\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-xs > .btn { &:extend(.btn-xs); }\n.btn-group-sm > .btn { &:extend(.btn-sm); }\n.btn-group-lg > .btn { &:extend(.btn-lg); }\n\n\n// Split button dropdowns\n// ----------------------\n\n// Give the line between buttons some depth\n.btn-group > .btn + .dropdown-toggle {\n  padding-right: 8px;\n  padding-left: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n  padding-right: 12px;\n  padding-left: 12px;\n}\n\n// The clickable button for toggling the menu\n// Remove the gradient and set the same inset shadow as the :active state\n.btn-group.open .dropdown-toggle {\n  .box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125));\n\n  // Show no shadow for `.btn-link` since it has no other button styles.\n  &.btn-link {\n    .box-shadow(none);\n  }\n}\n\n\n// Reposition the caret\n.btn .caret {\n  margin-left: 0;\n}\n// Carets in other button sizes\n.btn-lg .caret {\n  border-width: @caret-width-large @caret-width-large 0;\n  border-bottom-width: 0;\n}\n// Upside down carets for .dropup\n.dropup .btn-lg .caret {\n  border-width: 0 @caret-width-large @caret-width-large;\n}\n\n\n// Vertical button groups\n// ----------------------\n\n.btn-group-vertical {\n  > .btn,\n  > .btn-group,\n  > .btn-group > .btn {\n    display: block;\n    float: none;\n    width: 100%;\n    max-width: 100%;\n  }\n\n  // Clear floats so dropdown menus can be properly placed\n  > .btn-group {\n    &:extend(.clearfix all);\n    > .btn {\n      float: none;\n    }\n  }\n\n  > .btn + .btn,\n  > .btn + .btn-group,\n  > .btn-group + .btn,\n  > .btn-group + .btn-group {\n    margin-top: -1px;\n    margin-left: 0;\n  }\n}\n\n.btn-group-vertical > .btn {\n  &:not(:first-child):not(:last-child) {\n    border-radius: 0;\n  }\n  &:first-child:not(:last-child) {\n    .border-top-radius(@btn-border-radius-base);\n    .border-bottom-radius(0);\n  }\n  &:last-child:not(:first-child) {\n    .border-top-radius(0);\n    .border-bottom-radius(@btn-border-radius-base);\n  }\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) {\n  > .btn:last-child,\n  > .dropdown-toggle {\n    .border-bottom-radius(0);\n  }\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  .border-top-radius(0);\n}\n\n\n// Justified button groups\n// ----------------------\n\n.btn-group-justified {\n  display: table;\n  width: 100%;\n  table-layout: fixed;\n  border-collapse: separate;\n  > .btn,\n  > .btn-group {\n    display: table-cell;\n    float: none;\n    width: 1%;\n  }\n  > .btn-group .btn {\n    width: 100%;\n  }\n\n  > .btn-group .dropdown-menu {\n    left: auto;\n  }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n[data-toggle=\"buttons\"] {\n  > .btn,\n  > .btn-group > .btn {\n    input[type=\"radio\"],\n    input[type=\"checkbox\"] {\n      position: absolute;\n      clip: rect(0, 0, 0, 0);\n      pointer-events: none;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/buttons.less",
    "content": "// stylelint-disable selector-no-qualifying-type\n\n//\n// Buttons\n// --------------------------------------------------\n\n\n// Base styles\n// --------------------------------------------------\n\n.btn {\n  display: inline-block;\n  margin-bottom: 0; // For input.btn\n  font-weight: @btn-font-weight;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: middle;\n  touch-action: manipulation;\n  cursor: pointer;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid transparent;\n  .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base);\n  .user-select(none);\n\n  &,\n  &:active,\n  &.active {\n    &:focus,\n    &.focus {\n      .tab-focus();\n    }\n  }\n\n  &:hover,\n  &:focus,\n  &.focus {\n    color: @btn-default-color;\n    text-decoration: none;\n  }\n\n  &:active,\n  &.active {\n    background-image: none;\n    outline: 0;\n    .box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125));\n  }\n\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    cursor: @cursor-disabled;\n    .opacity(.65);\n    .box-shadow(none);\n  }\n\n  a& {\n    &.disabled,\n    fieldset[disabled] & {\n      pointer-events: none; // Future-proof disabling of clicks on `<a>` elements\n    }\n  }\n}\n\n\n// Alternate buttons\n// --------------------------------------------------\n\n.btn-default {\n  .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);\n}\n.btn-primary {\n  .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);\n}\n// Success appears as green\n.btn-success {\n  .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);\n}\n// Info appears as blue-green\n.btn-info {\n  .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);\n}\n// Warning appears as orange\n.btn-warning {\n  .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);\n}\n// Danger and error appear as red\n.btn-danger {\n  .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);\n}\n\n\n// Link buttons\n// -------------------------\n\n// Make a button look and behave like a link\n.btn-link {\n  font-weight: 400;\n  color: @link-color;\n  border-radius: 0;\n\n  &,\n  &:active,\n  &.active,\n  &[disabled],\n  fieldset[disabled] & {\n    background-color: transparent;\n    .box-shadow(none);\n  }\n  &,\n  &:hover,\n  &:focus,\n  &:active {\n    border-color: transparent;\n  }\n  &:hover,\n  &:focus {\n    color: @link-hover-color;\n    text-decoration: @link-hover-decoration;\n    background-color: transparent;\n  }\n  &[disabled],\n  fieldset[disabled] & {\n    &:hover,\n    &:focus {\n      color: @btn-link-disabled-color;\n      text-decoration: none;\n    }\n  }\n}\n\n\n// Button Sizes\n// --------------------------------------------------\n\n.btn-lg {\n  // line-height: ensure even-numbered height of button next to large input\n  .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @btn-border-radius-large);\n}\n.btn-sm {\n  // line-height: ensure proper height of button next to small input\n  .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n.btn-xs {\n  .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n\n\n// Block button\n// --------------------------------------------------\n\n.btn-block {\n  display: block;\n  width: 100%;\n}\n\n// Vertically space out multiple block buttons\n.btn-block + .btn-block {\n  margin-top: 5px;\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n  &.btn-block {\n    width: 100%;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/carousel.less",
    "content": "// stylelint-disable media-feature-name-no-unknown\n\n//\n// Carousel\n// --------------------------------------------------\n\n\n// Wrapper for the slide container and indicators\n.carousel {\n  position: relative;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n\n  > .item {\n    position: relative;\n    display: none;\n    .transition(.6s ease-in-out left);\n\n    // Account for jankitude on images\n    > img,\n    > a > img {\n      &:extend(.img-responsive);\n      line-height: 1;\n    }\n\n    // WebKit CSS3 transforms for supported devices\n    @media all and (transform-3d), (-webkit-transform-3d) {\n      .transition-transform(~\"0.6s ease-in-out\");\n      .backface-visibility(~\"hidden\");\n      .perspective(1000px);\n\n      &.next,\n      &.active.right {\n        .translate3d(100%, 0, 0);\n        left: 0;\n      }\n      &.prev,\n      &.active.left {\n        .translate3d(-100%, 0, 0);\n        left: 0;\n      }\n      &.next.left,\n      &.prev.right,\n      &.active {\n        .translate3d(0, 0, 0);\n        left: 0;\n      }\n    }\n  }\n\n  > .active,\n  > .next,\n  > .prev {\n    display: block;\n  }\n\n  > .active {\n    left: 0;\n  }\n\n  > .next,\n  > .prev {\n    position: absolute;\n    top: 0;\n    width: 100%;\n  }\n\n  > .next {\n    left: 100%;\n  }\n  > .prev {\n    left: -100%;\n  }\n  > .next.left,\n  > .prev.right {\n    left: 0;\n  }\n\n  > .active.left {\n    left: -100%;\n  }\n  > .active.right {\n    left: 100%;\n  }\n\n}\n\n// Left/right controls for nav\n// ---------------------------\n\n.carousel-control {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  width: @carousel-control-width;\n  font-size: @carousel-control-font-size;\n  color: @carousel-control-color;\n  text-align: center;\n  text-shadow: @carousel-text-shadow;\n  background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug\n  .opacity(@carousel-control-opacity);\n  // We can't have this transition here because WebKit cancels the carousel\n  // animation if you trip this while in the middle of another animation.\n\n  // Set gradients for backgrounds\n  &.left {\n    #gradient > .horizontal(@start-color: rgba(0, 0, 0, .5); @end-color: rgba(0, 0, 0, .0001));\n  }\n  &.right {\n    right: 0;\n    left: auto;\n    #gradient > .horizontal(@start-color: rgba(0, 0, 0, .0001); @end-color: rgba(0, 0, 0, .5));\n  }\n\n  // Hover/focus state\n  &:hover,\n  &:focus {\n    color: @carousel-control-color;\n    text-decoration: none;\n    outline: 0;\n    .opacity(.9);\n  }\n\n  // Toggles\n  .icon-prev,\n  .icon-next,\n  .glyphicon-chevron-left,\n  .glyphicon-chevron-right {\n    position: absolute;\n    top: 50%;\n    z-index: 5;\n    display: inline-block;\n    margin-top: -10px;\n  }\n  .icon-prev,\n  .glyphicon-chevron-left {\n    left: 50%;\n    margin-left: -10px;\n  }\n  .icon-next,\n  .glyphicon-chevron-right {\n    right: 50%;\n    margin-right: -10px;\n  }\n  .icon-prev,\n  .icon-next {\n    width: 20px;\n    height: 20px;\n    font-family: serif;\n    line-height: 1;\n  }\n\n  .icon-prev {\n    &:before {\n      content: \"\\2039\";// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)\n    }\n  }\n  .icon-next {\n    &:before {\n      content: \"\\203a\";// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)\n    }\n  }\n}\n\n// Optional indicator pips\n//\n// Add an unordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n  position: absolute;\n  bottom: 10px;\n  left: 50%;\n  z-index: 15;\n  width: 60%;\n  padding-left: 0;\n  margin-left: -30%;\n  text-align: center;\n  list-style: none;\n\n  li {\n    display: inline-block;\n    width: 10px;\n    height: 10px;\n    margin: 1px;\n    text-indent: -999px;\n    cursor: pointer;\n    // IE8-9 hack for event handling\n    //\n    // Internet Explorer 8-9 does not support clicks on elements without a set\n    // `background-color`. We cannot use `filter` since that's not viewed as a\n    // background color by the browser. Thus, a hack is needed.\n    // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer\n    //\n    // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we\n    // set alpha transparency for the best results possible.\n    background-color: #000 \\9; // IE8\n    background-color: rgba(0, 0, 0, 0); // IE9\n\n    border: 1px solid @carousel-indicator-border-color;\n    border-radius: 10px;\n  }\n\n  .active {\n    width: 12px;\n    height: 12px;\n    margin: 0;\n    background-color: @carousel-indicator-active-bg;\n  }\n}\n\n// Optional captions\n// -----------------------------\n// Hidden by default for smaller viewports\n.carousel-caption {\n  position: absolute;\n  right: 15%;\n  bottom: 20px;\n  left: 15%;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: @carousel-caption-color;\n  text-align: center;\n  text-shadow: @carousel-text-shadow;\n\n  & .btn {\n    text-shadow: none; // No shadow for button elements in carousel-caption\n  }\n}\n\n\n// Scale up controls for tablets and up\n@media screen and (min-width: @screen-sm-min) {\n\n  // Scale up the controls a smidge\n  .carousel-control {\n    .glyphicon-chevron-left,\n    .glyphicon-chevron-right,\n    .icon-prev,\n    .icon-next {\n      width: (@carousel-control-font-size * 1.5);\n      height: (@carousel-control-font-size * 1.5);\n      margin-top: (@carousel-control-font-size / -2);\n      font-size: (@carousel-control-font-size * 1.5);\n    }\n    .glyphicon-chevron-left,\n    .icon-prev {\n      margin-left: (@carousel-control-font-size / -2);\n    }\n    .glyphicon-chevron-right,\n    .icon-next {\n      margin-right: (@carousel-control-font-size / -2);\n    }\n  }\n\n  // Show and left align the captions\n  .carousel-caption {\n    right: 20%;\n    left: 20%;\n    padding-bottom: 30px;\n  }\n\n  // Move up the indicators\n  .carousel-indicators {\n    bottom: 20px;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/close.less",
    "content": "// stylelint-disable property-no-vendor-prefix\n\n//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n  float: right;\n  font-size: (@font-size-base * 1.5);\n  font-weight: @close-font-weight;\n  line-height: 1;\n  color: @close-color;\n  text-shadow: @close-text-shadow;\n  .opacity(.2);\n\n  &:hover,\n  &:focus {\n    color: @close-color;\n    text-decoration: none;\n    cursor: pointer;\n    .opacity(.5);\n  }\n\n  // Additional properties for button version\n  // iOS requires the button element instead of an anchor tag.\n  // If you want the anchor version, it requires `href=\"#\"`.\n  // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n  button& {\n    padding: 0;\n    cursor: pointer;\n    background: transparent;\n    border: 0;\n    -webkit-appearance: none;\n    appearance: none;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/code.less",
    "content": "//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n  font-family: @font-family-monospace;\n}\n\n// Inline code\ncode {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: @code-color;\n  background-color: @code-bg;\n  border-radius: @border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: @kbd-color;\n  background-color: @kbd-bg;\n  border-radius: @border-radius-small;\n  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);\n\n  kbd {\n    padding: 0;\n    font-size: 100%;\n    font-weight: 700;\n    box-shadow: none;\n  }\n}\n\n// Blocks of code\npre {\n  display: block;\n  padding: ((@line-height-computed - 1) / 2);\n  margin: 0 0 (@line-height-computed / 2);\n  font-size: (@font-size-base - 1); // 14px to 13px\n  line-height: @line-height-base;\n  color: @pre-color;\n  word-break: break-all;\n  word-wrap: break-word;\n  background-color: @pre-bg;\n  border: 1px solid @pre-border-color;\n  border-radius: @border-radius-base;\n\n  // Account for some code outputs that place code tags in pre tags\n  code {\n    padding: 0;\n    font-size: inherit;\n    color: inherit;\n    white-space: pre-wrap;\n    background-color: transparent;\n    border-radius: 0;\n  }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n  max-height: @pre-scrollable-max-height;\n  overflow-y: scroll;\n}\n"
  },
  {
    "path": "lib/bootstrap3/component-animations.less",
    "content": "// stylelint-disable selector-no-qualifying-type\n\n//\n// Component animations\n// --------------------------------------------------\n\n// Heads up!\n//\n// We don't use the `.opacity()` mixin here since it causes a bug with text\n// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.\n\n.fade {\n  opacity: 0;\n  .transition(opacity .15s linear);\n\n  &.in {\n    opacity: 1;\n  }\n}\n\n.collapse {\n  display: none;\n\n  &.in      { display: block; }\n  tr&.in    { display: table-row; }\n  tbody&.in { display: table-row-group; }\n}\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  .transition-property(~\"height, visibility\");\n  .transition-duration(.35s);\n  .transition-timing-function(ease);\n}\n"
  },
  {
    "path": "lib/bootstrap3/dropdowns.less",
    "content": "//\n// Dropdown menus\n// --------------------------------------------------\n\n\n// Dropdown arrow/caret\n.caret {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 2px;\n  vertical-align: middle;\n  border-top: @caret-width-base dashed;\n  border-top: @caret-width-base solid ~\"\\9\"; // IE8\n  border-right: @caret-width-base solid transparent;\n  border-left: @caret-width-base solid transparent;\n}\n\n// The dropdown wrapper (div)\n.dropup,\n.dropdown {\n  position: relative;\n}\n\n// Prevent the focus on the dropdown toggle when closing dropdowns\n.dropdown-toggle:focus {\n  outline: 0;\n}\n\n// The dropdown menu (ul)\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: @zindex-dropdown;\n  display: none; // none by default, but block on \"open\" of the menu\n  float: left;\n  min-width: 160px;\n  padding: 5px 0;\n  margin: 2px 0 0; // override default ul\n  font-size: @font-size-base;\n  text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n  list-style: none;\n  background-color: @dropdown-bg;\n  background-clip: padding-box;\n  border: 1px solid @dropdown-fallback-border; // IE8 fallback\n  border: 1px solid @dropdown-border;\n  border-radius: @border-radius-base;\n  .box-shadow(0 6px 12px rgba(0, 0, 0, .175));\n\n  // Aligns the dropdown menu to right\n  //\n  // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`\n  &.pull-right {\n    right: 0;\n    left: auto;\n  }\n\n  // Dividers (basically an hr) within the dropdown\n  .divider {\n    .nav-divider(@dropdown-divider-bg);\n  }\n\n  // Links within the dropdown menu\n  > li > a {\n    display: block;\n    padding: 3px 20px;\n    clear: both;\n    font-weight: 400;\n    line-height: @line-height-base;\n    color: @dropdown-link-color;\n    white-space: nowrap; // prevent links from randomly breaking onto new lines\n\n    &:hover,\n    &:focus {\n      color: @dropdown-link-hover-color;\n      text-decoration: none;\n      background-color: @dropdown-link-hover-bg;\n    }\n  }\n}\n\n// Active state\n.dropdown-menu > .active > a {\n  &,\n  &:hover,\n  &:focus {\n    color: @dropdown-link-active-color;\n    text-decoration: none;\n    background-color: @dropdown-link-active-bg;\n    outline: 0;\n  }\n}\n\n// Disabled state\n//\n// Gray out text and ensure the hover/focus state remains gray\n\n.dropdown-menu > .disabled > a {\n  &,\n  &:hover,\n  &:focus {\n    color: @dropdown-link-disabled-color;\n  }\n\n  // Nuke hover/focus effects\n  &:hover,\n  &:focus {\n    text-decoration: none;\n    cursor: @cursor-disabled;\n    background-color: transparent;\n    background-image: none; // Remove CSS gradient\n    .reset-filter();\n  }\n}\n\n// Open state for the dropdown\n.open {\n  // Show the menu\n  > .dropdown-menu {\n    display: block;\n  }\n\n  // Remove the outline when :focus is triggered\n  > a {\n    outline: 0;\n  }\n}\n\n// Menu positioning\n//\n// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown\n// menu with the parent.\n.dropdown-menu-right {\n  right: 0;\n  left: auto; // Reset the default from `.dropdown-menu`\n}\n// With v3, we enabled auto-flipping if you have a dropdown within a right\n// aligned nav component. To enable the undoing of that, we provide an override\n// to restore the default dropdown menu alignment.\n//\n// This is only for left-aligning a dropdown menu within a `.navbar-right` or\n// `.pull-right` nav component.\n.dropdown-menu-left {\n  right: auto;\n  left: 0;\n}\n\n// Dropdown section headers\n.dropdown-header {\n  display: block;\n  padding: 3px 20px;\n  font-size: @font-size-small;\n  line-height: @line-height-base;\n  color: @dropdown-header-color;\n  white-space: nowrap; // as with > li > a\n}\n\n// Backdrop to catch body clicks on mobile, etc.\n.dropdown-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: (@zindex-dropdown - 10);\n}\n\n// Right aligned dropdowns\n.pull-right > .dropdown-menu {\n  right: 0;\n  left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n//\n// Just add .dropup after the standard .dropdown class and you're set, bro.\n// TODO: abstract this so that the navbar fixed styles are not placed here?\n\n.dropup,\n.navbar-fixed-bottom .dropdown {\n  // Reverse the caret\n  .caret {\n    content: \"\";\n    border-top: 0;\n    border-bottom: @caret-width-base dashed;\n    border-bottom: @caret-width-base solid ~\"\\9\"; // IE8\n  }\n  // Different positioning for bottom up menu\n  .dropdown-menu {\n    top: auto;\n    bottom: 100%;\n    margin-bottom: 2px;\n  }\n}\n\n\n// Component alignment\n//\n// Reiterate per navbar.less and the modified component alignment there.\n\n@media (min-width: @grid-float-breakpoint) {\n  .navbar-right {\n    .dropdown-menu {\n      .dropdown-menu-right();\n    }\n    // Necessary for overrides of the default right aligned menu.\n    // Will remove come v4 in all likelihood.\n    .dropdown-menu-left {\n      .dropdown-menu-left();\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/forms.less",
    "content": "// stylelint-disable selector-no-qualifying-type, property-no-vendor-prefix, media-feature-name-no-vendor-prefix\n\n//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n  // Chrome and Firefox set a `min-width: min-content;` on fieldsets,\n  // so we reset that to ensure it behaves more like a standard block element.\n  // See https://github.com/twbs/bootstrap/issues/12359.\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: @line-height-computed;\n  font-size: (@font-size-base * 1.5);\n  line-height: inherit;\n  color: @legend-color;\n  border: 0;\n  border-bottom: 1px solid @legend-border-color;\n}\n\nlabel {\n  display: inline-block;\n  max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)\n  margin-bottom: 5px;\n  font-weight: 700;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\ninput[type=\"search\"] {\n  // Override content-box in Normalize (* isn't specific enough)\n  .box-sizing(border-box);\n\n  // Search inputs in iOS\n  //\n  // This overrides the extra rounded corners on search inputs in iOS so that our\n  // `.form-control` class can properly style them. Note that this cannot simply\n  // be added to `.form-control` as it's not specific enough. For details, see\n  // https://github.com/twbs/bootstrap/issues/11586.\n  -webkit-appearance: none;\n  appearance: none;\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  margin: 4px 0 0;\n  margin-top: 1px \\9; // IE8-9\n  line-height: normal;\n\n  // Apply same disabled cursor tweak as for inputs\n  // Some special care is needed because <label>s don't inherit their parent's `cursor`.\n  //\n  // Note: Neither radios nor checkboxes can be readonly.\n  &[disabled],\n  &.disabled,\n  fieldset[disabled] & {\n    cursor: @cursor-disabled;\n  }\n}\n\ninput[type=\"file\"] {\n  display: block;\n}\n\n// Make range inputs behave like textual form controls\ninput[type=\"range\"] {\n  display: block;\n  width: 100%;\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n  height: auto;\n}\n\n// Focus for file, radio, and checkbox\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n  .tab-focus();\n}\n\n// Adjust output element\noutput {\n  display: block;\n  padding-top: (@padding-base-vertical + 1);\n  font-size: @font-size-base;\n  line-height: @line-height-base;\n  color: @input-color;\n}\n\n\n// Common form controls\n//\n// Shared size and type resets for form controls. Apply `.form-control` to any\n// of the following form controls:\n//\n// select\n// textarea\n// input[type=\"text\"]\n// input[type=\"password\"]\n// input[type=\"datetime\"]\n// input[type=\"datetime-local\"]\n// input[type=\"date\"]\n// input[type=\"month\"]\n// input[type=\"time\"]\n// input[type=\"week\"]\n// input[type=\"number\"]\n// input[type=\"email\"]\n// input[type=\"url\"]\n// input[type=\"search\"]\n// input[type=\"tel\"]\n// input[type=\"color\"]\n\n.form-control {\n  display: block;\n  width: 100%;\n  height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n  padding: @padding-base-vertical @padding-base-horizontal;\n  font-size: @font-size-base;\n  line-height: @line-height-base;\n  color: @input-color;\n  background-color: @input-bg;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid @input-border;\n  border-radius: @input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.\n  .box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075));\n  .transition(~\"border-color ease-in-out .15s, box-shadow ease-in-out .15s\");\n\n  // Customize the `:focus` state to imitate native WebKit styles.\n  .form-control-focus();\n\n  // Placeholder\n  .placeholder();\n\n  // Unstyle the caret on `<select>`s in IE10+.\n  &::-ms-expand {\n    background-color: transparent;\n    border: 0;\n  }\n\n  // Disabled and read-only inputs\n  //\n  // HTML5 says that controls under a fieldset > legend:first-child won't be\n  // disabled if the fieldset is disabled. Due to implementation difficulty, we\n  // don't honor that edge case; we style them as disabled anyway.\n  &[disabled],\n  &[readonly],\n  fieldset[disabled] & {\n    background-color: @input-bg-disabled;\n    opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655\n  }\n\n  &[disabled],\n  fieldset[disabled] & {\n    cursor: @cursor-disabled;\n  }\n\n  // Reset height for `textarea`s\n  textarea& {\n    height: auto;\n  }\n}\n\n\n// Special styles for iOS temporal inputs\n//\n// In Mobile Safari, setting `display: block` on temporal inputs causes the\n// text within the input to become vertically misaligned. As a workaround, we\n// set a pixel line-height that matches the given height of the input, but only\n// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848\n//\n// Note that as of 9.3, iOS doesn't support `week`.\n\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n  input[type=\"date\"],\n  input[type=\"time\"],\n  input[type=\"datetime-local\"],\n  input[type=\"month\"] {\n    &.form-control {\n      line-height: @input-height-base;\n    }\n\n    &.input-sm,\n    .input-group-sm & {\n      line-height: @input-height-small;\n    }\n\n    &.input-lg,\n    .input-group-lg & {\n      line-height: @input-height-large;\n    }\n  }\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n  margin-bottom: @form-group-margin-bottom;\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.radio,\n.checkbox {\n  position: relative;\n  display: block;\n  margin-top: 10px;\n  margin-bottom: 10px;\n\n  // These are used on elements with <label> descendants\n  &.disabled,\n  fieldset[disabled] & {\n    label {\n      cursor: @cursor-disabled;\n    }\n  }\n\n  label {\n    min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text\n    padding-left: 20px;\n    margin-bottom: 0;\n    font-weight: 400;\n    cursor: pointer;\n  }\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n  position: absolute;\n  margin-top: 4px \\9;\n  margin-left: -20px;\n}\n\n.radio + .radio,\n.checkbox + .checkbox {\n  margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing\n}\n\n// Radios and checkboxes on same line\n.radio-inline,\n.checkbox-inline {\n  position: relative;\n  display: inline-block;\n  padding-left: 20px;\n  margin-bottom: 0;\n  font-weight: 400;\n  vertical-align: middle;\n  cursor: pointer;\n\n  // These are used directly on <label>s\n  &.disabled,\n  fieldset[disabled] & {\n    cursor: @cursor-disabled;\n  }\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n  margin-top: 0;\n  margin-left: 10px; // space out consecutive inline controls\n}\n\n\n// Static form control text\n//\n// Apply class to a `p` element to make any string of text align with labels in\n// a horizontal form layout.\n\n.form-control-static {\n  min-height: (@line-height-computed + @font-size-base);\n  // Size it appropriately next to real form controls\n  padding-top: (@padding-base-vertical + 1);\n  padding-bottom: (@padding-base-vertical + 1);\n  // Remove default margin from `p`\n  margin-bottom: 0;\n\n  &.input-lg,\n  &.input-sm {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// The `.form-group-* form-control` variations are sadly duplicated to avoid the\n// issue documented in https://github.com/twbs/bootstrap/issues/15074.\n\n.input-sm {\n  .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @input-border-radius-small);\n}\n.form-group-sm {\n  .form-control {\n    height: @input-height-small;\n    padding: @padding-small-vertical @padding-small-horizontal;\n    font-size: @font-size-small;\n    line-height: @line-height-small;\n    border-radius: @input-border-radius-small;\n  }\n  select.form-control {\n    height: @input-height-small;\n    line-height: @input-height-small;\n  }\n  textarea.form-control,\n  select[multiple].form-control {\n    height: auto;\n  }\n  .form-control-static {\n    height: @input-height-small;\n    min-height: (@line-height-computed + @font-size-small);\n    padding: (@padding-small-vertical + 1) @padding-small-horizontal;\n    font-size: @font-size-small;\n    line-height: @line-height-small;\n  }\n}\n\n.input-lg {\n  .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @input-border-radius-large);\n}\n.form-group-lg {\n  .form-control {\n    height: @input-height-large;\n    padding: @padding-large-vertical @padding-large-horizontal;\n    font-size: @font-size-large;\n    line-height: @line-height-large;\n    border-radius: @input-border-radius-large;\n  }\n  select.form-control {\n    height: @input-height-large;\n    line-height: @input-height-large;\n  }\n  textarea.form-control,\n  select[multiple].form-control {\n    height: auto;\n  }\n  .form-control-static {\n    height: @input-height-large;\n    min-height: (@line-height-computed + @font-size-large);\n    padding: (@padding-large-vertical + 1) @padding-large-horizontal;\n    font-size: @font-size-large;\n    line-height: @line-height-large;\n  }\n}\n\n\n// Form control feedback states\n//\n// Apply contextual and semantic states to individual form controls.\n\n.has-feedback {\n  // Enable absolute positioning\n  position: relative;\n\n  // Ensure icons don't overlap text\n  .form-control {\n    padding-right: (@input-height-base * 1.25);\n  }\n}\n// Feedback icon (requires .glyphicon classes)\n.form-control-feedback {\n  position: absolute;\n  top: 0;\n  right: 0;\n  z-index: 2; // Ensure icon is above input groups\n  display: block;\n  width: @input-height-base;\n  height: @input-height-base;\n  line-height: @input-height-base;\n  text-align: center;\n  pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n  width: @input-height-large;\n  height: @input-height-large;\n  line-height: @input-height-large;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n  width: @input-height-small;\n  height: @input-height-small;\n  line-height: @input-height-small;\n}\n\n// Feedback states\n.has-success {\n  .form-control-validation(@state-success-text; @state-success-text; @state-success-bg);\n}\n.has-warning {\n  .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);\n}\n.has-error {\n  .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);\n}\n\n// Reposition feedback icon if input has visible label above\n.has-feedback label {\n\n  & ~ .form-control-feedback {\n    top: (@line-height-computed + 5); // Height of the `label` and its margin\n  }\n  &.sr-only ~ .form-control-feedback {\n    top: 0;\n  }\n}\n\n\n// Help text\n//\n// Apply to any element you wish to create light text for placement immediately\n// below a form control. Use for general help, formatting, or instructional text.\n\n.help-block {\n  display: block; // account for any element using help-block\n  margin-top: 5px;\n  margin-bottom: 10px;\n  color: lighten(@text-color, 25%); // lighten the text some for contrast\n}\n\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n//\n// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.\n\n.form-inline {\n\n  // Kick in the inline\n  @media (min-width: @screen-sm-min) {\n    // Inline-block all the things for \"inline\"\n    .form-group {\n      display: inline-block;\n      margin-bottom: 0;\n      vertical-align: middle;\n    }\n\n    // In navbar-form, allow folks to *not* use `.form-group`\n    .form-control {\n      display: inline-block;\n      width: auto; // Prevent labels from stacking above inputs in `.form-group`\n      vertical-align: middle;\n    }\n\n    // Make static controls behave like regular ones\n    .form-control-static {\n      display: inline-block;\n    }\n\n    .input-group {\n      display: inline-table;\n      vertical-align: middle;\n\n      .input-group-addon,\n      .input-group-btn,\n      .form-control {\n        width: auto;\n      }\n    }\n\n    // Input groups need that 100% width though\n    .input-group > .form-control {\n      width: 100%;\n    }\n\n    .control-label {\n      margin-bottom: 0;\n      vertical-align: middle;\n    }\n\n    // Remove default margin on radios/checkboxes that were used for stacking, and\n    // then undo the floating of radios and checkboxes to match.\n    .radio,\n    .checkbox {\n      display: inline-block;\n      margin-top: 0;\n      margin-bottom: 0;\n      vertical-align: middle;\n\n      label {\n        padding-left: 0;\n      }\n    }\n    .radio input[type=\"radio\"],\n    .checkbox input[type=\"checkbox\"] {\n      position: relative;\n      margin-left: 0;\n    }\n\n    // Re-override the feedback icon.\n    .has-feedback .form-control-feedback {\n      top: 0;\n    }\n  }\n}\n\n\n// Horizontal forms\n//\n// Horizontal forms are built on grid classes and allow you to create forms with\n// labels on the left and inputs on the right.\n\n.form-horizontal {\n\n  // Consistent vertical alignment of radios and checkboxes\n  //\n  // Labels also get some reset styles, but that is scoped to a media query below.\n  .radio,\n  .checkbox,\n  .radio-inline,\n  .checkbox-inline {\n    padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n    margin-top: 0;\n    margin-bottom: 0;\n  }\n  // Account for padding we're adding to ensure the alignment and of help text\n  // and other content below items\n  .radio,\n  .checkbox {\n    min-height: (@line-height-computed + (@padding-base-vertical + 1));\n  }\n\n  // Make form groups behave like rows\n  .form-group {\n    .make-row();\n  }\n\n  // Reset spacing and right align labels, but scope to media queries so that\n  // labels on narrow viewports stack the same as a default form example.\n  @media (min-width: @screen-sm-min) {\n    .control-label {\n      padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n      margin-bottom: 0;\n      text-align: right;\n    }\n  }\n\n  // Validation states\n  //\n  // Reposition the icon because it's now within a grid column and columns have\n  // `position: relative;` on them. Also accounts for the grid gutter padding.\n  .has-feedback .form-control-feedback {\n    right: floor((@grid-gutter-width / 2));\n  }\n\n  // Form group sizes\n  //\n  // Quick utility class for applying `.input-lg` and `.input-sm` styles to the\n  // inputs and labels within a `.form-group`.\n  .form-group-lg {\n    @media (min-width: @screen-sm-min) {\n      .control-label {\n        padding-top: (@padding-large-vertical + 1);\n        font-size: @font-size-large;\n      }\n    }\n  }\n  .form-group-sm {\n    @media (min-width: @screen-sm-min) {\n      .control-label {\n        padding-top: (@padding-small-vertical + 1);\n        font-size: @font-size-small;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/glyphicons.less",
    "content": "// stylelint-disable value-list-comma-newline-after, value-list-comma-space-after, indentation, declaration-colon-newline-after, font-family-no-missing-generic-family-keyword\n\n//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// <a href=\"#\"><span class=\"glyphicon glyphicon-star\"></span> Star</a>\n\n// Import the fonts\n@font-face {\n  font-family: \"Glyphicons Halflings\";\n  src: url(\"@{icon-font-path}@{icon-font-name}.eot\");\n  src: url(\"@{icon-font-path}@{icon-font-name}.eot?#iefix\") format(\"embedded-opentype\"),\n       url(\"@{icon-font-path}@{icon-font-name}.woff2\") format(\"woff2\"),\n       url(\"@{icon-font-path}@{icon-font-name}.woff\") format(\"woff\"),\n       url(\"@{icon-font-path}@{icon-font-name}.ttf\") format(\"truetype\"),\n       url(\"@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}\") format(\"svg\");\n}\n\n// Catchall baseclass\n.glyphicon {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  font-family: \"Glyphicons Halflings\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk               { &:before { content: \"\\002a\"; } }\n.glyphicon-plus                   { &:before { content: \"\\002b\"; } }\n.glyphicon-euro,\n.glyphicon-eur                    { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus                  { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud                  { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope               { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil                 { &:before { content: \"\\270f\"; } }\n.glyphicon-glass                  { &:before { content: \"\\e001\"; } }\n.glyphicon-music                  { &:before { content: \"\\e002\"; } }\n.glyphicon-search                 { &:before { content: \"\\e003\"; } }\n.glyphicon-heart                  { &:before { content: \"\\e005\"; } }\n.glyphicon-star                   { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty             { &:before { content: \"\\e007\"; } }\n.glyphicon-user                   { &:before { content: \"\\e008\"; } }\n.glyphicon-film                   { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large               { &:before { content: \"\\e010\"; } }\n.glyphicon-th                     { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list                { &:before { content: \"\\e012\"; } }\n.glyphicon-ok                     { &:before { content: \"\\e013\"; } }\n.glyphicon-remove                 { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in                { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out               { &:before { content: \"\\e016\"; } }\n.glyphicon-off                    { &:before { content: \"\\e017\"; } }\n.glyphicon-signal                 { &:before { content: \"\\e018\"; } }\n.glyphicon-cog                    { &:before { content: \"\\e019\"; } }\n.glyphicon-trash                  { &:before { content: \"\\e020\"; } }\n.glyphicon-home                   { &:before { content: \"\\e021\"; } }\n.glyphicon-file                   { &:before { content: \"\\e022\"; } }\n.glyphicon-time                   { &:before { content: \"\\e023\"; } }\n.glyphicon-road                   { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt           { &:before { content: \"\\e025\"; } }\n.glyphicon-download               { &:before { content: \"\\e026\"; } }\n.glyphicon-upload                 { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox                  { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle            { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat                 { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh                { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt               { &:before { content: \"\\e032\"; } }\n.glyphicon-lock                   { &:before { content: \"\\e033\"; } }\n.glyphicon-flag                   { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones             { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off             { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down            { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up              { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode                 { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode                { &:before { content: \"\\e040\"; } }\n.glyphicon-tag                    { &:before { content: \"\\e041\"; } }\n.glyphicon-tags                   { &:before { content: \"\\e042\"; } }\n.glyphicon-book                   { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark               { &:before { content: \"\\e044\"; } }\n.glyphicon-print                  { &:before { content: \"\\e045\"; } }\n.glyphicon-camera                 { &:before { content: \"\\e046\"; } }\n.glyphicon-font                   { &:before { content: \"\\e047\"; } }\n.glyphicon-bold                   { &:before { content: \"\\e048\"; } }\n.glyphicon-italic                 { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height            { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width             { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left             { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center           { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right            { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify          { &:before { content: \"\\e055\"; } }\n.glyphicon-list                   { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left            { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right           { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video         { &:before { content: \"\\e059\"; } }\n.glyphicon-picture                { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker             { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust                 { &:before { content: \"\\e063\"; } }\n.glyphicon-tint                   { &:before { content: \"\\e064\"; } }\n.glyphicon-edit                   { &:before { content: \"\\e065\"; } }\n.glyphicon-share                  { &:before { content: \"\\e066\"; } }\n.glyphicon-check                  { &:before { content: \"\\e067\"; } }\n.glyphicon-move                   { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward          { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward          { &:before { content: \"\\e070\"; } }\n.glyphicon-backward               { &:before { content: \"\\e071\"; } }\n.glyphicon-play                   { &:before { content: \"\\e072\"; } }\n.glyphicon-pause                  { &:before { content: \"\\e073\"; } }\n.glyphicon-stop                   { &:before { content: \"\\e074\"; } }\n.glyphicon-forward                { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward           { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward           { &:before { content: \"\\e077\"; } }\n.glyphicon-eject                  { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left           { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right          { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign              { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign             { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign            { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign                { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign          { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign              { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot             { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle          { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle              { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle             { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left             { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right            { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up               { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down             { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt              { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full            { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small           { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign       { &:before { content: \"\\e101\"; } }\n.glyphicon-gift                   { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf                   { &:before { content: \"\\e103\"; } }\n.glyphicon-fire                   { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open               { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close              { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign           { &:before { content: \"\\e107\"; } }\n.glyphicon-plane                  { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar               { &:before { content: \"\\e109\"; } }\n.glyphicon-random                 { &:before { content: \"\\e110\"; } }\n.glyphicon-comment                { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet                 { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up             { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down           { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet                { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart          { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close           { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open            { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical        { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal      { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd                    { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn               { &:before { content: \"\\e122\"; } }\n.glyphicon-bell                   { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate            { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up              { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down            { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right             { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left              { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up                { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down              { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right     { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left      { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up        { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down      { &:before { content: \"\\e134\"; } }\n.glyphicon-globe                  { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench                 { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks                  { &:before { content: \"\\e137\"; } }\n.glyphicon-filter                 { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase              { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen             { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard              { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip              { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty            { &:before { content: \"\\e143\"; } }\n.glyphicon-link                   { &:before { content: \"\\e144\"; } }\n.glyphicon-phone                  { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin                { &:before { content: \"\\e146\"; } }\n.glyphicon-usd                    { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp                    { &:before { content: \"\\e149\"; } }\n.glyphicon-sort                   { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet       { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt   { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order          { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt      { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes     { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked              { &:before { content: \"\\e157\"; } }\n.glyphicon-expand                 { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down          { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up            { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in                 { &:before { content: \"\\e161\"; } }\n.glyphicon-flash                  { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out                { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window             { &:before { content: \"\\e164\"; } }\n.glyphicon-record                 { &:before { content: \"\\e165\"; } }\n.glyphicon-save                   { &:before { content: \"\\e166\"; } }\n.glyphicon-open                   { &:before { content: \"\\e167\"; } }\n.glyphicon-saved                  { &:before { content: \"\\e168\"; } }\n.glyphicon-import                 { &:before { content: \"\\e169\"; } }\n.glyphicon-export                 { &:before { content: \"\\e170\"; } }\n.glyphicon-send                   { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk            { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved           { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove          { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save            { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open            { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card            { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer               { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery                { &:before { content: \"\\e179\"; } }\n.glyphicon-header                 { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed             { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone               { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt              { &:before { content: \"\\e183\"; } }\n.glyphicon-tower                  { &:before { content: \"\\e184\"; } }\n.glyphicon-stats                  { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video               { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video               { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles              { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo           { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby            { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1              { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1              { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1              { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark         { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark      { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download         { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload           { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer           { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous         { &:before { content: \"\\e200\"; } }\n.glyphicon-cd                     { &:before { content: \"\\e201\"; } }\n.glyphicon-save-file              { &:before { content: \"\\e202\"; } }\n.glyphicon-open-file              { &:before { content: \"\\e203\"; } }\n.glyphicon-level-up               { &:before { content: \"\\e204\"; } }\n.glyphicon-copy                   { &:before { content: \"\\e205\"; } }\n.glyphicon-paste                  { &:before { content: \"\\e206\"; } }\n// The following 2 Glyphicons are omitted for the time being because\n// they currently use Unicode codepoints that are outside the\n// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle\n// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.\n// Notably, the bug affects some older versions of the Android Browser.\n// More info: https://github.com/twbs/bootstrap/issues/10106\n// .glyphicon-door                   { &:before { content: \"\\1f6aa\"; } }\n// .glyphicon-key                    { &:before { content: \"\\1f511\"; } }\n.glyphicon-alert                  { &:before { content: \"\\e209\"; } }\n.glyphicon-equalizer              { &:before { content: \"\\e210\"; } }\n.glyphicon-king                   { &:before { content: \"\\e211\"; } }\n.glyphicon-queen                  { &:before { content: \"\\e212\"; } }\n.glyphicon-pawn                   { &:before { content: \"\\e213\"; } }\n.glyphicon-bishop                 { &:before { content: \"\\e214\"; } }\n.glyphicon-knight                 { &:before { content: \"\\e215\"; } }\n.glyphicon-baby-formula           { &:before { content: \"\\e216\"; } }\n.glyphicon-tent                   { &:before { content: \"\\26fa\"; } }\n.glyphicon-blackboard             { &:before { content: \"\\e218\"; } }\n.glyphicon-bed                    { &:before { content: \"\\e219\"; } }\n.glyphicon-apple                  { &:before { content: \"\\f8ff\"; } }\n.glyphicon-erase                  { &:before { content: \"\\e221\"; } }\n.glyphicon-hourglass              { &:before { content: \"\\231b\"; } }\n.glyphicon-lamp                   { &:before { content: \"\\e223\"; } }\n.glyphicon-duplicate              { &:before { content: \"\\e224\"; } }\n.glyphicon-piggy-bank             { &:before { content: \"\\e225\"; } }\n.glyphicon-scissors               { &:before { content: \"\\e226\"; } }\n.glyphicon-bitcoin                { &:before { content: \"\\e227\"; } }\n.glyphicon-btc                    { &:before { content: \"\\e227\"; } }\n.glyphicon-xbt                    { &:before { content: \"\\e227\"; } }\n.glyphicon-yen                    { &:before { content: \"\\00a5\"; } }\n.glyphicon-jpy                    { &:before { content: \"\\00a5\"; } }\n.glyphicon-ruble                  { &:before { content: \"\\20bd\"; } }\n.glyphicon-rub                    { &:before { content: \"\\20bd\"; } }\n.glyphicon-scale                  { &:before { content: \"\\e230\"; } }\n.glyphicon-ice-lolly              { &:before { content: \"\\e231\"; } }\n.glyphicon-ice-lolly-tasted       { &:before { content: \"\\e232\"; } }\n.glyphicon-education              { &:before { content: \"\\e233\"; } }\n.glyphicon-option-horizontal      { &:before { content: \"\\e234\"; } }\n.glyphicon-option-vertical        { &:before { content: \"\\e235\"; } }\n.glyphicon-menu-hamburger         { &:before { content: \"\\e236\"; } }\n.glyphicon-modal-window           { &:before { content: \"\\e237\"; } }\n.glyphicon-oil                    { &:before { content: \"\\e238\"; } }\n.glyphicon-grain                  { &:before { content: \"\\e239\"; } }\n.glyphicon-sunglasses             { &:before { content: \"\\e240\"; } }\n.glyphicon-text-size              { &:before { content: \"\\e241\"; } }\n.glyphicon-text-color             { &:before { content: \"\\e242\"; } }\n.glyphicon-text-background        { &:before { content: \"\\e243\"; } }\n.glyphicon-object-align-top       { &:before { content: \"\\e244\"; } }\n.glyphicon-object-align-bottom    { &:before { content: \"\\e245\"; } }\n.glyphicon-object-align-horizontal{ &:before { content: \"\\e246\"; } }\n.glyphicon-object-align-left      { &:before { content: \"\\e247\"; } }\n.glyphicon-object-align-vertical  { &:before { content: \"\\e248\"; } }\n.glyphicon-object-align-right     { &:before { content: \"\\e249\"; } }\n.glyphicon-triangle-right         { &:before { content: \"\\e250\"; } }\n.glyphicon-triangle-left          { &:before { content: \"\\e251\"; } }\n.glyphicon-triangle-bottom        { &:before { content: \"\\e252\"; } }\n.glyphicon-triangle-top           { &:before { content: \"\\e253\"; } }\n.glyphicon-console                { &:before { content: \"\\e254\"; } }\n.glyphicon-superscript            { &:before { content: \"\\e255\"; } }\n.glyphicon-subscript              { &:before { content: \"\\e256\"; } }\n.glyphicon-menu-left              { &:before { content: \"\\e257\"; } }\n.glyphicon-menu-right             { &:before { content: \"\\e258\"; } }\n.glyphicon-menu-down              { &:before { content: \"\\e259\"; } }\n.glyphicon-menu-up                { &:before { content: \"\\e260\"; } }\n"
  },
  {
    "path": "lib/bootstrap3/grid.less",
    "content": "//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n  .container-fixed();\n\n  @media (min-width: @screen-sm-min) {\n    width: @container-sm;\n  }\n  @media (min-width: @screen-md-min) {\n    width: @container-md;\n  }\n  @media (min-width: @screen-lg-min) {\n    width: @container-lg;\n  }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n  .container-fixed();\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n  .make-row();\n}\n\n.row-no-gutters {\n  margin-right: 0;\n  margin-left: 0;\n\n  [class*=\"col-\"] {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n.make-grid-columns();\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n  .make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n  .make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n  .make-grid(lg);\n}\n"
  },
  {
    "path": "lib/bootstrap3/input-groups.less",
    "content": "// stylelint-disable selector-no-qualifying-type\n\n//\n// Input groups\n// --------------------------------------------------\n\n// Base styles\n// -------------------------\n.input-group {\n  position: relative; // For dropdowns\n  display: table;\n  border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table\n\n  // Undo padding and float of grid classes\n  &[class*=\"col-\"] {\n    float: none;\n    padding-right: 0;\n    padding-left: 0;\n  }\n\n  .form-control {\n    // Ensure that the input is always above the *appended* addon button for\n    // proper border colors.\n    position: relative;\n    z-index: 2;\n\n    // IE9 fubars the placeholder attribute in text inputs and the arrows on\n    // select elements in input groups. To fix it, we float the input. Details:\n    // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855\n    float: left;\n\n    width: 100%;\n    margin-bottom: 0;\n\n    &:focus {\n      z-index: 3;\n    }\n  }\n}\n\n// Sizing options\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n  .input-lg();\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n  .input-sm();\n}\n\n\n// Display as table-cell\n// -------------------------\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n  display: table-cell;\n\n  &:not(:first-child):not(:last-child) {\n    border-radius: 0;\n  }\n}\n// Addon and addon wrapper for buttons\n.input-group-addon,\n.input-group-btn {\n  width: 1%;\n  white-space: nowrap;\n  vertical-align: middle; // Match the inputs\n}\n\n// Text input groups\n// -------------------------\n.input-group-addon {\n  padding: @padding-base-vertical @padding-base-horizontal;\n  font-size: @font-size-base;\n  font-weight: 400;\n  line-height: 1;\n  color: @input-color;\n  text-align: center;\n  background-color: @input-group-addon-bg;\n  border: 1px solid @input-group-addon-border-color;\n  border-radius: @input-border-radius;\n\n  // Sizing\n  &.input-sm {\n    padding: @padding-small-vertical @padding-small-horizontal;\n    font-size: @font-size-small;\n    border-radius: @input-border-radius-small;\n  }\n  &.input-lg {\n    padding: @padding-large-vertical @padding-large-horizontal;\n    font-size: @font-size-large;\n    border-radius: @input-border-radius-large;\n  }\n\n  // Nuke default margins from checkboxes and radios to vertically center within.\n  input[type=\"radio\"],\n  input[type=\"checkbox\"] {\n    margin-top: 0;\n  }\n}\n\n// Reset rounded corners\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n  .border-right-radius(0);\n}\n.input-group-addon:first-child {\n  border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n  .border-left-radius(0);\n}\n.input-group-addon:last-child {\n  border-left: 0;\n}\n\n// Button input groups\n// -------------------------\n.input-group-btn {\n  position: relative;\n  // Jankily prevent input button groups from wrapping with `white-space` and\n  // `font-size` in combination with `inline-block` on buttons.\n  font-size: 0;\n  white-space: nowrap;\n\n  // Negative margin for spacing, position for bringing hovered/focused/actived\n  // element above the siblings.\n  > .btn {\n    position: relative;\n    + .btn {\n      margin-left: -1px;\n    }\n    // Bring the \"active\" button to the front\n    &:hover,\n    &:focus,\n    &:active {\n      z-index: 2;\n    }\n  }\n\n  // Negative margin to only have a 1px border between the two\n  &:first-child {\n    > .btn,\n    > .btn-group {\n      margin-right: -1px;\n    }\n  }\n  &:last-child {\n    > .btn,\n    > .btn-group {\n      z-index: 2;\n      margin-left: -1px;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/jumbotron.less",
    "content": "//\n// Jumbotron\n// --------------------------------------------------\n\n\n.jumbotron {\n  padding-top: @jumbotron-padding;\n  padding-bottom: @jumbotron-padding;\n  margin-bottom: @jumbotron-padding;\n  color: @jumbotron-color;\n  background-color: @jumbotron-bg;\n\n  h1,\n  .h1 {\n    color: @jumbotron-heading-color;\n  }\n\n  p {\n    margin-bottom: (@jumbotron-padding / 2);\n    font-size: @jumbotron-font-size;\n    font-weight: 200;\n  }\n\n  > hr {\n    border-top-color: darken(@jumbotron-bg, 10%);\n  }\n\n  .container &,\n  .container-fluid & {\n    padding-right: (@grid-gutter-width / 2);\n    padding-left: (@grid-gutter-width / 2);\n    border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container\n  }\n\n  .container {\n    max-width: 100%;\n  }\n\n  @media screen and (min-width: @screen-sm-min) {\n    padding-top: (@jumbotron-padding * 1.6);\n    padding-bottom: (@jumbotron-padding * 1.6);\n\n    .container &,\n    .container-fluid & {\n      padding-right: (@jumbotron-padding * 2);\n      padding-left: (@jumbotron-padding * 2);\n    }\n\n    h1,\n    .h1 {\n      font-size: @jumbotron-heading-font-size;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/labels.less",
    "content": "//\n// Labels\n// --------------------------------------------------\n\n.label {\n  display: inline;\n  padding: .2em .6em .3em;\n  font-size: 75%;\n  font-weight: 700;\n  line-height: 1;\n  color: @label-color;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: .25em;\n\n  // Add hover effects, but only for links\n  a& {\n    &:hover,\n    &:focus {\n      color: @label-link-hover-color;\n      text-decoration: none;\n      cursor: pointer;\n    }\n  }\n\n  // Empty labels collapse automatically (not available in IE8)\n  &:empty {\n    display: none;\n  }\n\n  // Quick fix for labels in buttons\n  .btn & {\n    position: relative;\n    top: -1px;\n  }\n}\n\n// Colors\n// Contextual variations (linked labels get darker on :hover)\n\n.label-default {\n  .label-variant(@label-default-bg);\n}\n\n.label-primary {\n  .label-variant(@label-primary-bg);\n}\n\n.label-success {\n  .label-variant(@label-success-bg);\n}\n\n.label-info {\n  .label-variant(@label-info-bg);\n}\n\n.label-warning {\n  .label-variant(@label-warning-bg);\n}\n\n.label-danger {\n  .label-variant(@label-danger-bg);\n}\n"
  },
  {
    "path": "lib/bootstrap3/list-group.less",
    "content": "// stylelint-disable selector-no-qualifying-type\n\n//\n// List groups\n// --------------------------------------------------\n\n\n// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n  // No need to set list-style: none; since .list-group-item is block level\n  padding-left: 0; // reset padding because ul and ol\n  margin-bottom: 20px;\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n  // Place the border on the list items and negative margin up for better styling\n  margin-bottom: -1px;\n  background-color: @list-group-bg;\n  border: 1px solid @list-group-border;\n\n  // Round the first and last items\n  &:first-child {\n    .border-top-radius(@list-group-border-radius);\n  }\n  &:last-child {\n    margin-bottom: 0;\n    .border-bottom-radius(@list-group-border-radius);\n  }\n\n  // Disabled state\n  &.disabled,\n  &.disabled:hover,\n  &.disabled:focus {\n    color: @list-group-disabled-color;\n    cursor: @cursor-disabled;\n    background-color: @list-group-disabled-bg;\n\n    // Force color to inherit for custom content\n    .list-group-item-heading {\n      color: inherit;\n    }\n    .list-group-item-text {\n      color: @list-group-disabled-text-color;\n    }\n  }\n\n  // Active class on item itself, not parent\n  &.active,\n  &.active:hover,\n  &.active:focus {\n    z-index: 2; // Place active items above their siblings for proper border styling\n    color: @list-group-active-color;\n    background-color: @list-group-active-bg;\n    border-color: @list-group-active-border;\n\n    // Force color to inherit for custom content\n    .list-group-item-heading,\n    .list-group-item-heading > small,\n    .list-group-item-heading > .small {\n      color: inherit;\n    }\n    .list-group-item-text {\n      color: @list-group-active-text-color;\n    }\n  }\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive items.\n// Includes an extra `.active` modifier class for showing selected items.\n\na.list-group-item,\nbutton.list-group-item {\n  color: @list-group-link-color;\n\n  .list-group-item-heading {\n    color: @list-group-link-heading-color;\n  }\n\n  // Hover state\n  &:hover,\n  &:focus {\n    color: @list-group-link-hover-color;\n    text-decoration: none;\n    background-color: @list-group-hover-bg;\n  }\n}\n\nbutton.list-group-item {\n  width: 100%;\n  text-align: left;\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n.list-group-item-variant(success; @state-success-bg; @state-success-text);\n.list-group-item-variant(info; @state-info-bg; @state-info-text);\n.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);\n.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);\n\n\n// Custom content options\n//\n// Extra classes for creating well-formatted content within `.list-group-item`s.\n\n.list-group-item-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n.list-group-item-text {\n  margin-bottom: 0;\n  line-height: 1.3;\n}\n"
  },
  {
    "path": "lib/bootstrap3/media.less",
    "content": ".media {\n  // Proper spacing between instances of .media\n  margin-top: 15px;\n\n  &:first-child {\n    margin-top: 0;\n  }\n}\n\n.media,\n.media-body {\n  overflow: hidden;\n  zoom: 1;\n}\n\n.media-body {\n  width: 10000px;\n}\n\n.media-object {\n  display: block;\n\n  // Fix collapse in webkit from max-width: 100% and display: table-cell.\n  &.img-thumbnail {\n    max-width: none;\n  }\n}\n\n.media-right,\n.media > .pull-right {\n  padding-left: 10px;\n}\n\n.media-left,\n.media > .pull-left {\n  padding-right: 10px;\n}\n\n.media-left,\n.media-right,\n.media-body {\n  display: table-cell;\n  vertical-align: top;\n}\n\n.media-middle {\n  vertical-align: middle;\n}\n\n.media-bottom {\n  vertical-align: bottom;\n}\n\n// Reset margins on headings for tighter default spacing\n.media-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n\n// Media list variation\n//\n// Undo default ul/ol styles\n.media-list {\n  padding-left: 0;\n  list-style: none;\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/alerts.less",
    "content": "// Alerts\n\n.alert-variant(@background; @border; @text-color) {\n  color: @text-color;\n  background-color: @background;\n  border-color: @border;\n\n  hr {\n    border-top-color: darken(@border, 5%);\n  }\n\n  .alert-link {\n    color: darken(@text-color, 10%);\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/background-variant.less",
    "content": "// Contextual backgrounds\n\n.bg-variant(@color) {\n  background-color: @color;\n  a&:hover,\n  a&:focus {\n    background-color: darken(@color, 10%);\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/border-radius.less",
    "content": "// Single side border-radius\n\n.border-top-radius(@radius) {\n  border-top-left-radius: @radius;\n  border-top-right-radius: @radius;\n}\n.border-right-radius(@radius) {\n  border-top-right-radius: @radius;\n  border-bottom-right-radius: @radius;\n}\n.border-bottom-radius(@radius) {\n  border-bottom-right-radius: @radius;\n  border-bottom-left-radius: @radius;\n}\n.border-left-radius(@radius) {\n  border-top-left-radius: @radius;\n  border-bottom-left-radius: @radius;\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/buttons.less",
    "content": "// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n.button-variant(@color; @background; @border) {\n  color: @color;\n  background-color: @background;\n  border-color: @border;\n\n  &:focus,\n  &.focus {\n    color: @color;\n    background-color: darken(@background, 10%);\n    border-color: darken(@border, 25%);\n  }\n  &:hover {\n    color: @color;\n    background-color: darken(@background, 10%);\n    border-color: darken(@border, 12%);\n  }\n  &:active,\n  &.active,\n  .open > .dropdown-toggle& {\n    color: @color;\n    background-color: darken(@background, 10%);\n    background-image: none;\n    border-color: darken(@border, 12%);\n\n    &:hover,\n    &:focus,\n    &.focus {\n      color: @color;\n      background-color: darken(@background, 17%);\n      border-color: darken(@border, 25%);\n    }\n  }\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    &:hover,\n    &:focus,\n    &.focus {\n      background-color: @background;\n      border-color: @border;\n    }\n  }\n\n  .badge {\n    color: @background;\n    background-color: @color;\n  }\n}\n\n// Button sizes\n.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n  padding: @padding-vertical @padding-horizontal;\n  font-size: @font-size;\n  line-height: @line-height;\n  border-radius: @border-radius;\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/center-block.less",
    "content": "// Center-align a block level element\n\n.center-block() {\n  display: block;\n  margin-right: auto;\n  margin-left: auto;\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/clearfix.less",
    "content": "// Clearfix\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n//    contenteditable attribute is included anywhere else in the document.\n//    Otherwise it causes space to appear at the top and bottom of elements\n//    that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n//    `:before` to contain the top-margins of child elements.\n//\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n\n.clearfix() {\n  &:before,\n  &:after {\n    display: table; // 2\n    content: \" \"; // 1\n  }\n  &:after {\n    clear: both;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/forms.less",
    "content": "// Form validation states\n//\n// Used in forms.less to generate the form validation CSS for warnings, errors,\n// and successes.\n\n.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {\n  // Color the label and help text\n  .help-block,\n  .control-label,\n  .radio,\n  .checkbox,\n  .radio-inline,\n  .checkbox-inline,\n  &.radio label,\n  &.checkbox label,\n  &.radio-inline label,\n  &.checkbox-inline label  {\n    color: @text-color;\n  }\n  // Set the border and box shadow on specific inputs to match\n  .form-control {\n    border-color: @border-color;\n    .box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075)); // Redeclare so transitions work\n    &:focus {\n      border-color: darken(@border-color, 10%);\n      @shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px lighten(@border-color, 20%);\n      .box-shadow(@shadow);\n    }\n  }\n  // Set validation states also for addons\n  .input-group-addon {\n    color: @text-color;\n    background-color: @background-color;\n    border-color: @border-color;\n  }\n  // Optional feedback icon\n  .form-control-feedback {\n    color: @text-color;\n  }\n}\n\n\n// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `@input-border-focus` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n.form-control-focus(@color: @input-border-focus) {\n  @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);\n  &:focus {\n    border-color: @color;\n    outline: 0;\n    .box-shadow(~\"inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px @{color-rgba}\");\n  }\n}\n\n// Form control sizing\n//\n// Relative text size, padding, and border-radii changes for form controls. For\n// horizontal sizing, wrap controls in the predefined grid classes. `<select>`\n// element gets special love because it's special, and that's a fact!\n.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n  height: @input-height;\n  padding: @padding-vertical @padding-horizontal;\n  font-size: @font-size;\n  line-height: @line-height;\n  border-radius: @border-radius;\n\n  select& {\n    height: @input-height;\n    line-height: @input-height;\n  }\n\n  textarea&,\n  select[multiple]& {\n    height: auto;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/gradients.less",
    "content": "// stylelint-disable value-no-vendor-prefix, selector-max-id\n\n#gradient {\n\n  // Horizontal gradient, from left to right\n  //\n  // Creates two color stops, start and end, by specifying a color and position for each color stop.\n  // Color stops are not available in IE9 and below.\n  .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n    background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n    background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n    background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\", argb(@start-color), argb(@end-color))); // IE9 and down\n    background-repeat: repeat-x;\n  }\n\n  // Vertical gradient, from top to bottom\n  //\n  // Creates two color stops, start and end, by specifying a color and position for each color stop.\n  // Color stops are not available in IE9 and below.\n  .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n    background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent);  // Safari 5.1-6, Chrome 10+\n    background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent);  // Opera 12\n    background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\", argb(@start-color), argb(@end-color))); // IE9 and down\n    background-repeat: repeat-x;\n  }\n\n  .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n    background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n    background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n    background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n    background-repeat: repeat-x;\n  }\n  .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n    background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n    background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n    background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\", argb(@start-color), argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n    background-repeat: no-repeat;\n  }\n  .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n    background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n    background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n    background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\", argb(@start-color), argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n    background-repeat: no-repeat;\n  }\n  .radial(@inner-color: #555; @outer-color: #333) {\n    background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n    background-image: radial-gradient(circle, @inner-color, @outer-color);\n    background-repeat: no-repeat;\n  }\n  .striped(@color: rgba(255, 255, 255, .15); @angle: 45deg) {\n    background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n    background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n    background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/grid-framework.less",
    "content": "// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n  // Common styles for all sizes of grid columns, widths 1-12\n  .col(@index) { // initial\n    @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n    .col((@index + 1), @item);\n  }\n  .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n    @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n    .col((@index + 1), ~\"@{list}, @{item}\");\n  }\n  .col(@index, @list) when (@index > @grid-columns) { // terminal\n    @{list} {\n      position: relative;\n      // Prevent columns from collapsing when empty\n      min-height: 1px;\n      // Inner gutter via padding\n      padding-right: floor((@grid-gutter-width / 2));\n      padding-left: ceil((@grid-gutter-width / 2));\n    }\n  }\n  .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n  .col(@index) { // initial\n    @item: ~\".col-@{class}-@{index}\";\n    .col((@index + 1), @item);\n  }\n  .col(@index, @list) when (@index =< @grid-columns) { // general\n    @item: ~\".col-@{class}-@{index}\";\n    .col((@index + 1), ~\"@{list}, @{item}\");\n  }\n  .col(@index, @list) when (@index > @grid-columns) { // terminal\n    @{list} {\n      float: left;\n    }\n  }\n  .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n  .col-@{class}-@{index} {\n    width: percentage((@index / @grid-columns));\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {\n  .col-@{class}-push-@{index} {\n    left: percentage((@index / @grid-columns));\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {\n  .col-@{class}-push-0 {\n    left: auto;\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {\n  .col-@{class}-pull-@{index} {\n    right: percentage((@index / @grid-columns));\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {\n  .col-@{class}-pull-0 {\n    right: auto;\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n  .col-@{class}-offset-@{index} {\n    margin-left: percentage((@index / @grid-columns));\n  }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n  .calc-grid-column(@index, @class, @type);\n  // next iteration\n  .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n  .float-grid-columns(@class);\n  .loop-grid-columns(@grid-columns, @class, width);\n  .loop-grid-columns(@grid-columns, @class, pull);\n  .loop-grid-columns(@grid-columns, @class, push);\n  .loop-grid-columns(@grid-columns, @class, offset);\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/grid.less",
    "content": "// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n// Centered container element\n.container-fixed(@gutter: @grid-gutter-width) {\n  padding-right: ceil((@gutter / 2));\n  padding-left: floor((@gutter / 2));\n  margin-right: auto;\n  margin-left: auto;\n  &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n  margin-right: floor((@gutter / -2));\n  margin-left: ceil((@gutter / -2));\n  &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n  position: relative;\n  float: left;\n  width: percentage((@columns / @grid-columns));\n  min-height: 1px;\n  padding-right: (@gutter / 2);\n  padding-left: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n  margin-left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-push(@columns) {\n  left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-pull(@columns) {\n  right: percentage((@columns / @grid-columns));\n}\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-right: (@gutter / 2);\n  padding-left: (@gutter / 2);\n\n  @media (min-width: @screen-sm-min) {\n    float: left;\n    width: percentage((@columns / @grid-columns));\n  }\n}\n.make-sm-column-offset(@columns) {\n  @media (min-width: @screen-sm-min) {\n    margin-left: percentage((@columns / @grid-columns));\n  }\n}\n.make-sm-column-push(@columns) {\n  @media (min-width: @screen-sm-min) {\n    left: percentage((@columns / @grid-columns));\n  }\n}\n.make-sm-column-pull(@columns) {\n  @media (min-width: @screen-sm-min) {\n    right: percentage((@columns / @grid-columns));\n  }\n}\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-right: (@gutter / 2);\n  padding-left: (@gutter / 2);\n\n  @media (min-width: @screen-md-min) {\n    float: left;\n    width: percentage((@columns / @grid-columns));\n  }\n}\n.make-md-column-offset(@columns) {\n  @media (min-width: @screen-md-min) {\n    margin-left: percentage((@columns / @grid-columns));\n  }\n}\n.make-md-column-push(@columns) {\n  @media (min-width: @screen-md-min) {\n    left: percentage((@columns / @grid-columns));\n  }\n}\n.make-md-column-pull(@columns) {\n  @media (min-width: @screen-md-min) {\n    right: percentage((@columns / @grid-columns));\n  }\n}\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-right: (@gutter / 2);\n  padding-left: (@gutter / 2);\n\n  @media (min-width: @screen-lg-min) {\n    float: left;\n    width: percentage((@columns / @grid-columns));\n  }\n}\n.make-lg-column-offset(@columns) {\n  @media (min-width: @screen-lg-min) {\n    margin-left: percentage((@columns / @grid-columns));\n  }\n}\n.make-lg-column-push(@columns) {\n  @media (min-width: @screen-lg-min) {\n    left: percentage((@columns / @grid-columns));\n  }\n}\n.make-lg-column-pull(@columns) {\n  @media (min-width: @screen-lg-min) {\n    right: percentage((@columns / @grid-columns));\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/hide-text.less",
    "content": "// stylelint-disable font-family-name-quotes, font-family-no-missing-generic-family-keyword\n\n// CSS image replacement\n//\n// Heads up! v3 launched with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (has been removed in v4)\n.hide-text() {\n  font: ~\"0/0\" a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n// New mixin to use as of v3.0.1\n.text-hide() {\n  .hide-text();\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/image.less",
    "content": "// stylelint-disable media-feature-name-no-vendor-prefix, media-feature-parentheses-space-inside, media-feature-name-no-unknown, indentation, at-rule-name-space-after\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n.img-responsive(@display: block) {\n  display: @display;\n  max-width: 100%; // Part 1: Set a maximum relative to the parent\n  height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size. Note that the\n// spelling of `min--moz-device-pixel-ratio` is intentional.\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n  background-image: url(\"@{file-1x}\");\n\n  @media\n  only screen and (-webkit-min-device-pixel-ratio: 2),\n  only screen and ( min--moz-device-pixel-ratio: 2),\n  only screen and ( -o-min-device-pixel-ratio: 2/1),\n  only screen and ( min-device-pixel-ratio: 2),\n  only screen and ( min-resolution: 192dpi),\n  only screen and ( min-resolution: 2dppx) {\n    background-image: url(\"@{file-2x}\");\n    background-size: @width-1x @height-1x;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/labels.less",
    "content": "// Labels\n\n.label-variant(@color) {\n  background-color: @color;\n\n  &[href] {\n    &:hover,\n    &:focus {\n      background-color: darken(@color, 10%);\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/list-group.less",
    "content": "// List Groups\n\n.list-group-item-variant(@state; @background; @color) {\n  .list-group-item-@{state} {\n    color: @color;\n    background-color: @background;\n\n    a&,\n    button& {\n      color: @color;\n\n      .list-group-item-heading {\n        color: inherit;\n      }\n\n      &:hover,\n      &:focus {\n        color: @color;\n        background-color: darken(@background, 5%);\n      }\n      &.active,\n      &.active:hover,\n      &.active:focus {\n        color: #fff;\n        background-color: @color;\n        border-color: @color;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/nav-divider.less",
    "content": "// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n.nav-divider(@color: #e5e5e5) {\n  height: 1px;\n  margin: ((@line-height-computed / 2) - 1) 0;\n  overflow: hidden;\n  background-color: @color;\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/nav-vertical-align.less",
    "content": "// Navbar vertical align\n//\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.\n\n.navbar-vertical-align(@element-height) {\n  margin-top: ((@navbar-height - @element-height) / 2);\n  margin-bottom: ((@navbar-height - @element-height) / 2);\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/opacity.less",
    "content": "// Opacity\n\n.opacity(@opacity) {\n  @opacity-ie: (@opacity * 100);  // IE8 filter\n  filter: ~\"alpha(opacity=@{opacity-ie})\";\n  opacity: @opacity;\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/pagination.less",
    "content": "// Pagination\n\n.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n  > li {\n    > a,\n    > span {\n      padding: @padding-vertical @padding-horizontal;\n      font-size: @font-size;\n      line-height: @line-height;\n    }\n    &:first-child {\n      > a,\n      > span {\n        .border-left-radius(@border-radius);\n      }\n    }\n    &:last-child {\n      > a,\n      > span {\n        .border-right-radius(@border-radius);\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/panels.less",
    "content": "// Panels\n\n.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {\n  border-color: @border;\n\n  & > .panel-heading {\n    color: @heading-text-color;\n    background-color: @heading-bg-color;\n    border-color: @heading-border;\n\n    + .panel-collapse > .panel-body {\n      border-top-color: @border;\n    }\n    .badge {\n      color: @heading-bg-color;\n      background-color: @heading-text-color;\n    }\n  }\n  & > .panel-footer {\n    + .panel-collapse > .panel-body {\n      border-bottom-color: @border;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/progress-bar.less",
    "content": "// Progress bars\n\n.progress-bar-variant(@color) {\n  background-color: @color;\n\n  // Deprecated parent class requirement as of v3.2.0\n  .progress-striped & {\n    #gradient > .striped();\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/reset-filter.less",
    "content": "// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n  filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/reset-text.less",
    "content": ".reset-text() {\n  font-family: @font-family-base;\n  // We deliberately do NOT reset font-size.\n  font-style: normal;\n  font-weight: 400;\n  line-height: @line-height-base;\n  line-break: auto;\n  text-align: left; // Fallback for where `start` is not supported\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  word-wrap: normal;\n  white-space: normal;\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/resize.less",
    "content": "// Resize anything\n\n.resizable(@direction) {\n  overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`\n  resize: @direction; // Options: horizontal, vertical, both\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/responsive-visibility.less",
    "content": "// stylelint-disable declaration-no-important\n\n.responsive-visibility() {\n  display: block !important;\n  table&  { display: table !important; }\n  tr&     { display: table-row !important; }\n  th&,\n  td&     { display: table-cell !important; }\n}\n\n.responsive-invisibility() {\n  display: none !important;\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/size.less",
    "content": "// Sizing shortcuts\n\n.size(@width; @height) {\n  width: @width;\n  height: @height;\n}\n\n.square(@size) {\n  .size(@size; @size);\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/tab-focus.less",
    "content": "// WebKit-style focus\n\n.tab-focus() {\n  // WebKit-specific. Other browsers will keep their default outline style.\n  // (Initially tried to also force default via `outline: initial`,\n  // but that seems to erroneously remove the outline in Firefox altogether.)\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/table-row.less",
    "content": "// Tables\n\n.table-row-variant(@state; @background) {\n  // Exact selectors below required to override `.table-striped` and prevent\n  // inheritance to nested tables.\n  .table > thead > tr,\n  .table > tbody > tr,\n  .table > tfoot > tr {\n    > td.@{state},\n    > th.@{state},\n    &.@{state} > td,\n    &.@{state} > th {\n      background-color: @background;\n    }\n  }\n\n  // Hover states for `.table-hover`\n  // Note: this is not available for cells or rows within `thead` or `tfoot`.\n  .table-hover > tbody > tr {\n    > td.@{state}:hover,\n    > th.@{state}:hover,\n    &.@{state}:hover > td,\n    &:hover > .@{state},\n    &.@{state}:hover > th {\n      background-color: darken(@background, 5%);\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/text-emphasis.less",
    "content": "// Typography\n\n.text-emphasis-variant(@color) {\n  color: @color;\n  a&:hover,\n  a&:focus {\n    color: darken(@color, 10%);\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/text-overflow.less",
    "content": "// Text overflow\n// Requires inline-block or block for proper styling\n\n.text-overflow() {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins/vendor-prefixes.less",
    "content": "// stylelint-disable indentation, property-no-vendor-prefix, selector-no-vendor-prefix\n\n// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n  -webkit-animation: @animation;\n       -o-animation: @animation;\n          animation: @animation;\n}\n.animation-name(@name) {\n  -webkit-animation-name: @name;\n          animation-name: @name;\n}\n.animation-duration(@duration) {\n  -webkit-animation-duration: @duration;\n          animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n  -webkit-animation-timing-function: @timing-function;\n          animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n  -webkit-animation-delay: @delay;\n          animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n  -webkit-animation-iteration-count: @iteration-count;\n          animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n  -webkit-animation-direction: @direction;\n          animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n  -webkit-animation-fill-mode: @fill-mode;\n          animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n  -webkit-backface-visibility: @visibility;\n     -moz-backface-visibility: @visibility;\n          backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n  -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n          box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n  -webkit-box-sizing: @boxmodel;\n     -moz-box-sizing: @boxmodel;\n          box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n  -webkit-column-count: @column-count;\n     -moz-column-count: @column-count;\n          column-count: @column-count;\n  -webkit-column-gap: @column-gap;\n     -moz-column-gap: @column-gap;\n          column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n  -webkit-hyphens: @mode;\n     -moz-hyphens: @mode;\n      -ms-hyphens: @mode; // IE10+\n       -o-hyphens: @mode;\n          hyphens: @mode;\n  word-wrap: break-word;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n  // Firefox\n  &::-moz-placeholder {\n    color: @color;\n    opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n  }\n  &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n  &::-webkit-input-placeholder  { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n  -webkit-transform: scale(@ratio);\n      -ms-transform: scale(@ratio); // IE9 only\n       -o-transform: scale(@ratio);\n          transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n  -webkit-transform: scale(@ratioX, @ratioY);\n      -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n       -o-transform: scale(@ratioX, @ratioY);\n          transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n  -webkit-transform: scaleX(@ratio);\n      -ms-transform: scaleX(@ratio); // IE9 only\n       -o-transform: scaleX(@ratio);\n          transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n  -webkit-transform: scaleY(@ratio);\n      -ms-transform: scaleY(@ratio); // IE9 only\n       -o-transform: scaleY(@ratio);\n          transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n  -webkit-transform: skewX(@x) skewY(@y);\n      -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n       -o-transform: skewX(@x) skewY(@y);\n          transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n  -webkit-transform: translate(@x, @y);\n      -ms-transform: translate(@x, @y); // IE9 only\n       -o-transform: translate(@x, @y);\n          transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n  -webkit-transform: translate3d(@x, @y, @z);\n          transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n  -webkit-transform: rotate(@degrees);\n      -ms-transform: rotate(@degrees); // IE9 only\n       -o-transform: rotate(@degrees);\n          transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n  -webkit-transform: rotateX(@degrees);\n      -ms-transform: rotateX(@degrees); // IE9 only\n       -o-transform: rotateX(@degrees);\n          transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n  -webkit-transform: rotateY(@degrees);\n      -ms-transform: rotateY(@degrees); // IE9 only\n       -o-transform: rotateY(@degrees);\n          transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n  -webkit-perspective: @perspective;\n     -moz-perspective: @perspective;\n          perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n  -webkit-perspective-origin: @perspective;\n     -moz-perspective-origin: @perspective;\n          perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n  -webkit-transform-origin: @origin;\n     -moz-transform-origin: @origin;\n      -ms-transform-origin: @origin; // IE9 only\n          transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n  -webkit-transition: @transition;\n       -o-transition: @transition;\n          transition: @transition;\n}\n.transition-property(@transition-property) {\n  -webkit-transition-property: @transition-property;\n          transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n  -webkit-transition-delay: @transition-delay;\n          transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n  -webkit-transition-duration: @transition-duration;\n          transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n  -webkit-transition-timing-function: @timing-function;\n          transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n  -webkit-transition: -webkit-transform @transition;\n     -moz-transition: -moz-transform @transition;\n       -o-transition: -o-transform @transition;\n          transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n  -webkit-user-select: @select;\n     -moz-user-select: @select;\n      -ms-user-select: @select; // IE10+\n          user-select: @select;\n}\n"
  },
  {
    "path": "lib/bootstrap3/mixins.less",
    "content": "// Mixins\n// --------------------------------------------------\n\n// Utilities\n@import \"mixins/hide-text.less\";\n@import \"mixins/opacity.less\";\n@import \"mixins/image.less\";\n@import \"mixins/labels.less\";\n@import \"mixins/reset-filter.less\";\n@import \"mixins/resize.less\";\n@import \"mixins/responsive-visibility.less\";\n@import \"mixins/size.less\";\n@import \"mixins/tab-focus.less\";\n@import \"mixins/reset-text.less\";\n@import \"mixins/text-emphasis.less\";\n@import \"mixins/text-overflow.less\";\n@import \"mixins/vendor-prefixes.less\";\n\n// Components\n@import \"mixins/alerts.less\";\n@import \"mixins/buttons.less\";\n@import \"mixins/panels.less\";\n@import \"mixins/pagination.less\";\n@import \"mixins/list-group.less\";\n@import \"mixins/nav-divider.less\";\n@import \"mixins/forms.less\";\n@import \"mixins/progress-bar.less\";\n@import \"mixins/table-row.less\";\n\n// Skins\n@import \"mixins/background-variant.less\";\n@import \"mixins/border-radius.less\";\n@import \"mixins/gradients.less\";\n\n// Layout\n@import \"mixins/clearfix.less\";\n@import \"mixins/center-block.less\";\n@import \"mixins/nav-vertical-align.less\";\n@import \"mixins/grid-framework.less\";\n@import \"mixins/grid.less\";\n"
  },
  {
    "path": "lib/bootstrap3/modals.less",
    "content": "//\n// Modals\n// --------------------------------------------------\n\n// .modal-open      - body class for killing the scroll\n// .modal           - container to scroll within\n// .modal-dialog    - positioning shell for the actual modal\n// .modal-content   - actual modal w/ bg and corners and shit\n\n// Kill the scroll on the body\n.modal-open {\n  overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: @zindex-modal;\n  display: none;\n  overflow: hidden;\n  -webkit-overflow-scrolling: touch;\n\n  // Prevent Chrome on Windows from adding a focus outline. For details, see\n  // https://github.com/twbs/bootstrap/pull/10951.\n  outline: 0;\n\n  // When fading in the modal, animate it to slide down\n  &.fade .modal-dialog {\n    .translate(0, -25%);\n    .transition-transform(~\"0.3s ease-out\");\n  }\n  &.in .modal-dialog { .translate(0, 0); }\n}\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 10px;\n}\n\n// Actual modal\n.modal-content {\n  position: relative;\n  background-color: @modal-content-bg;\n  background-clip: padding-box;\n  border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)\n  border: 1px solid @modal-content-border-color;\n  border-radius: @border-radius-large;\n  .box-shadow(0 3px 9px rgba(0, 0, 0, .5));\n  // Remove focus outline from opened modal\n  outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: @zindex-modal-background;\n  background-color: @modal-backdrop-bg;\n  // Fade for backdrop\n  &.fade { .opacity(0); }\n  &.in { .opacity(@modal-backdrop-opacity); }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n  padding: @modal-title-padding;\n  border-bottom: 1px solid @modal-header-border-color;\n  &:extend(.clearfix all);\n}\n// Close icon\n.modal-header .close {\n  margin-top: -2px;\n}\n\n// Title text within header\n.modal-title {\n  margin: 0;\n  line-height: @modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n  position: relative;\n  padding: @modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n  padding: @modal-inner-padding;\n  text-align: right; // right align buttons\n  border-top: 1px solid @modal-footer-border-color;\n  &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons\n\n  // Properly space out buttons\n  .btn + .btn {\n    margin-bottom: 0; // account for input[type=\"submit\"] which gets the bottom margin like all other inputs\n    margin-left: 5px;\n  }\n  // but override that for button groups\n  .btn-group .btn + .btn {\n    margin-left: -1px;\n  }\n  // and override it for block buttons as well\n  .btn-block + .btn-block {\n    margin-left: 0;\n  }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n// Scale up the modal\n@media (min-width: @screen-sm-min) {\n  // Automatically set modal's width for larger viewports\n  .modal-dialog {\n    width: @modal-md;\n    margin: 30px auto;\n  }\n  .modal-content {\n    .box-shadow(0 5px 15px rgba(0, 0, 0, .5));\n  }\n\n  // Modal sizes\n  .modal-sm { width: @modal-sm; }\n}\n\n@media (min-width: @screen-md-min) {\n  .modal-lg { width: @modal-lg; }\n}\n"
  },
  {
    "path": "lib/bootstrap3/navbar.less",
    "content": "// stylelint-disable selector-max-type, selector-max-compound-selectors, selector-max-combinators, selector-max-class, declaration-no-important, selector-no-qualifying-type\n\n//\n// Navbars\n// --------------------------------------------------\n\n\n// Wrapper and base class\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n  position: relative;\n  min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)\n  margin-bottom: @navbar-margin-bottom;\n  border: 1px solid transparent;\n\n  // Prevent floats from breaking the navbar\n  &:extend(.clearfix all);\n\n  @media (min-width: @grid-float-breakpoint) {\n    border-radius: @navbar-border-radius;\n  }\n}\n\n\n// Navbar heading\n//\n// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy\n// styling of responsive aspects.\n\n.navbar-header {\n  &:extend(.clearfix all);\n\n  @media (min-width: @grid-float-breakpoint) {\n    float: left;\n  }\n}\n\n\n// Navbar collapse (body)\n//\n// Group your navbar content into this for easy collapsing and expanding across\n// various device sizes. By default, this content is collapsed when <768px, but\n// will expand past that for a horizontal display.\n//\n// To start (on mobile devices) the navbar links, forms, and buttons are stacked\n// vertically and include a `max-height` to overflow in case you have too much\n// content for the user's viewport.\n\n.navbar-collapse {\n  padding-right: @navbar-padding-horizontal;\n  padding-left: @navbar-padding-horizontal;\n  overflow-x: visible;\n  border-top: 1px solid transparent;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);\n  &:extend(.clearfix all);\n  -webkit-overflow-scrolling: touch;\n\n  &.in {\n    overflow-y: auto;\n  }\n\n  @media (min-width: @grid-float-breakpoint) {\n    width: auto;\n    border-top: 0;\n    box-shadow: none;\n\n    &.collapse {\n      display: block !important;\n      height: auto !important;\n      padding-bottom: 0; // Override default setting\n      overflow: visible !important;\n    }\n\n    &.in {\n      overflow-y: visible;\n    }\n\n    // Undo the collapse side padding for navbars with containers to ensure\n    // alignment of right-aligned contents.\n    .navbar-fixed-top &,\n    .navbar-static-top &,\n    .navbar-fixed-bottom & {\n      padding-right: 0;\n      padding-left: 0;\n    }\n  }\n}\n\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  .navbar-collapse {\n    max-height: @navbar-collapse-max-height;\n\n    @media (max-device-width: @screen-xs-min) and (orientation: landscape) {\n      max-height: 200px;\n    }\n  }\n\n  // Fix the top/bottom navbars when screen real estate supports it\n  position: fixed;\n  right: 0;\n  left: 0;\n  z-index: @zindex-navbar-fixed;\n\n  // Undo the rounded corners\n  @media (min-width: @grid-float-breakpoint) {\n    border-radius: 0;\n  }\n}\n\n.navbar-fixed-top {\n  top: 0;\n  border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n  bottom: 0;\n  margin-bottom: 0; // override .navbar defaults\n  border-width: 1px 0 0;\n}\n\n\n// Both navbar header and collapse\n//\n// When a container is present, change the behavior of the header and collapse.\n\n.container,\n.container-fluid {\n  > .navbar-header,\n  > .navbar-collapse {\n    margin-right: -@navbar-padding-horizontal;\n    margin-left: -@navbar-padding-horizontal;\n\n    @media (min-width: @grid-float-breakpoint) {\n      margin-right: 0;\n      margin-left: 0;\n    }\n  }\n}\n\n\n//\n// Navbar alignment options\n//\n// Display the navbar across the entirety of the page or fixed it to the top or\n// bottom of the page.\n\n// Static top (unfixed, but 100% wide) navbar\n.navbar-static-top {\n  z-index: @zindex-navbar;\n  border-width: 0 0 1px;\n\n  @media (min-width: @grid-float-breakpoint) {\n    border-radius: 0;\n  }\n}\n\n\n// Brand/project name\n\n.navbar-brand {\n  float: left;\n  height: @navbar-height;\n  padding: @navbar-padding-vertical @navbar-padding-horizontal;\n  font-size: @font-size-large;\n  line-height: @line-height-computed;\n\n  &:hover,\n  &:focus {\n    text-decoration: none;\n  }\n\n  > img {\n    display: block;\n  }\n\n  @media (min-width: @grid-float-breakpoint) {\n    .navbar > .container &,\n    .navbar > .container-fluid & {\n      margin-left: -@navbar-padding-horizontal;\n    }\n  }\n}\n\n\n// Navbar toggle\n//\n// Custom button for toggling the `.navbar-collapse`, powered by the collapse\n// JavaScript plugin.\n\n.navbar-toggle {\n  position: relative;\n  float: right;\n  padding: 9px 10px;\n  margin-right: @navbar-padding-horizontal;\n  .navbar-vertical-align(34px);\n  background-color: transparent;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid transparent;\n  border-radius: @border-radius-base;\n\n  // We remove the `outline` here, but later compensate by attaching `:hover`\n  // styles to `:focus`.\n  &:focus {\n    outline: 0;\n  }\n\n  // Bars\n  .icon-bar {\n    display: block;\n    width: 22px;\n    height: 2px;\n    border-radius: 1px;\n  }\n  .icon-bar + .icon-bar {\n    margin-top: 4px;\n  }\n\n  @media (min-width: @grid-float-breakpoint) {\n    display: none;\n  }\n}\n\n\n// Navbar nav links\n//\n// Builds on top of the `.nav` components with its own modifier class to make\n// the nav the full height of the horizontal nav (above 768px).\n\n.navbar-nav {\n  margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;\n\n  > li > a {\n    padding-top: 10px;\n    padding-bottom: 10px;\n    line-height: @line-height-computed;\n  }\n\n  @media (max-width: @grid-float-breakpoint-max) {\n    // Dropdowns get custom display when collapsed\n    .open .dropdown-menu {\n      position: static;\n      float: none;\n      width: auto;\n      margin-top: 0;\n      background-color: transparent;\n      border: 0;\n      box-shadow: none;\n      > li > a,\n      .dropdown-header {\n        padding: 5px 15px 5px 25px;\n      }\n      > li > a {\n        line-height: @line-height-computed;\n        &:hover,\n        &:focus {\n          background-image: none;\n        }\n      }\n    }\n  }\n\n  // Uncollapse the nav\n  @media (min-width: @grid-float-breakpoint) {\n    float: left;\n    margin: 0;\n\n    > li {\n      float: left;\n      > a {\n        padding-top: @navbar-padding-vertical;\n        padding-bottom: @navbar-padding-vertical;\n      }\n    }\n  }\n}\n\n\n// Navbar form\n//\n// Extension of the `.form-inline` with some extra flavor for optimum display in\n// our navbars.\n\n.navbar-form {\n  padding: 10px @navbar-padding-horizontal;\n  margin-right: -@navbar-padding-horizontal;\n  margin-left: -@navbar-padding-horizontal;\n  border-top: 1px solid transparent;\n  border-bottom: 1px solid transparent;\n  @shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);\n  .box-shadow(@shadow);\n\n  // Mixin behavior for optimum display\n  .form-inline();\n\n  .form-group {\n    @media (max-width: @grid-float-breakpoint-max) {\n      margin-bottom: 5px;\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  // Vertically center in expanded, horizontal navbar\n  .navbar-vertical-align(@input-height-base);\n\n  // Undo 100% width for pull classes\n  @media (min-width: @grid-float-breakpoint) {\n    width: auto;\n    padding-top: 0;\n    padding-bottom: 0;\n    margin-right: 0;\n    margin-left: 0;\n    border: 0;\n    .box-shadow(none);\n  }\n}\n\n\n// Dropdown menus\n\n// Menu position and menu carets\n.navbar-nav > li > .dropdown-menu {\n  margin-top: 0;\n  .border-top-radius(0);\n}\n// Menu position and menu caret support for dropups via extra dropup class\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n  margin-bottom: 0;\n  .border-top-radius(@navbar-border-radius);\n  .border-bottom-radius(0);\n}\n\n\n// Buttons in navbars\n//\n// Vertically center a button within a navbar (when *not* in a form).\n\n.navbar-btn {\n  .navbar-vertical-align(@input-height-base);\n\n  &.btn-sm {\n    .navbar-vertical-align(@input-height-small);\n  }\n  &.btn-xs {\n    .navbar-vertical-align(22);\n  }\n}\n\n\n// Text in navbars\n//\n// Add a class to make any element properly align itself vertically within the navbars.\n\n.navbar-text {\n  .navbar-vertical-align(@line-height-computed);\n\n  @media (min-width: @grid-float-breakpoint) {\n    float: left;\n    margin-right: @navbar-padding-horizontal;\n    margin-left: @navbar-padding-horizontal;\n  }\n}\n\n\n// Component alignment\n//\n// Repurpose the pull utilities as their own navbar utilities to avoid specificity\n// issues with parents and chaining. Only do this when the navbar is uncollapsed\n// though so that navbar contents properly stack and align in mobile.\n//\n// Declared after the navbar components to ensure more specificity on the margins.\n\n@media (min-width: @grid-float-breakpoint) {\n  .navbar-left  { .pull-left(); }\n  .navbar-right {\n    .pull-right();\n    margin-right: -@navbar-padding-horizontal;\n\n    ~ .navbar-right {\n      margin-right: 0;\n    }\n  }\n}\n\n\n// Alternate navbars\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n  background-color: @navbar-default-bg;\n  border-color: @navbar-default-border;\n\n  .navbar-brand {\n    color: @navbar-default-brand-color;\n    &:hover,\n    &:focus {\n      color: @navbar-default-brand-hover-color;\n      background-color: @navbar-default-brand-hover-bg;\n    }\n  }\n\n  .navbar-text {\n    color: @navbar-default-color;\n  }\n\n  .navbar-nav {\n    > li > a {\n      color: @navbar-default-link-color;\n\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-hover-color;\n        background-color: @navbar-default-link-hover-bg;\n      }\n    }\n    > .active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-active-color;\n        background-color: @navbar-default-link-active-bg;\n      }\n    }\n    > .disabled > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-disabled-color;\n        background-color: @navbar-default-link-disabled-bg;\n      }\n    }\n\n    // Dropdown menu items\n    // Remove background color from open dropdown\n    > .open > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-active-color;\n        background-color: @navbar-default-link-active-bg;\n      }\n    }\n\n    @media (max-width: @grid-float-breakpoint-max) {\n      // Dropdowns get custom display when collapsed\n      .open .dropdown-menu {\n        > li > a {\n          color: @navbar-default-link-color;\n          &:hover,\n          &:focus {\n            color: @navbar-default-link-hover-color;\n            background-color: @navbar-default-link-hover-bg;\n          }\n        }\n        > .active > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-default-link-active-color;\n            background-color: @navbar-default-link-active-bg;\n          }\n        }\n        > .disabled > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-default-link-disabled-color;\n            background-color: @navbar-default-link-disabled-bg;\n          }\n        }\n      }\n    }\n  }\n\n  .navbar-toggle {\n    border-color: @navbar-default-toggle-border-color;\n    &:hover,\n    &:focus {\n      background-color: @navbar-default-toggle-hover-bg;\n    }\n    .icon-bar {\n      background-color: @navbar-default-toggle-icon-bar-bg;\n    }\n  }\n\n  .navbar-collapse,\n  .navbar-form {\n    border-color: @navbar-default-border;\n  }\n\n\n  // Links in navbars\n  //\n  // Add a class to ensure links outside the navbar nav are colored correctly.\n\n  .navbar-link {\n    color: @navbar-default-link-color;\n    &:hover {\n      color: @navbar-default-link-hover-color;\n    }\n  }\n\n  .btn-link {\n    color: @navbar-default-link-color;\n    &:hover,\n    &:focus {\n      color: @navbar-default-link-hover-color;\n    }\n    &[disabled],\n    fieldset[disabled] & {\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-disabled-color;\n      }\n    }\n  }\n}\n\n// Inverse navbar\n\n.navbar-inverse {\n  background-color: @navbar-inverse-bg;\n  border-color: @navbar-inverse-border;\n\n  .navbar-brand {\n    color: @navbar-inverse-brand-color;\n    &:hover,\n    &:focus {\n      color: @navbar-inverse-brand-hover-color;\n      background-color: @navbar-inverse-brand-hover-bg;\n    }\n  }\n\n  .navbar-text {\n    color: @navbar-inverse-color;\n  }\n\n  .navbar-nav {\n    > li > a {\n      color: @navbar-inverse-link-color;\n\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-hover-color;\n        background-color: @navbar-inverse-link-hover-bg;\n      }\n    }\n    > .active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-active-color;\n        background-color: @navbar-inverse-link-active-bg;\n      }\n    }\n    > .disabled > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-disabled-color;\n        background-color: @navbar-inverse-link-disabled-bg;\n      }\n    }\n\n    // Dropdowns\n    > .open > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-active-color;\n        background-color: @navbar-inverse-link-active-bg;\n      }\n    }\n\n    @media (max-width: @grid-float-breakpoint-max) {\n      // Dropdowns get custom display\n      .open .dropdown-menu {\n        > .dropdown-header {\n          border-color: @navbar-inverse-border;\n        }\n        .divider {\n          background-color: @navbar-inverse-border;\n        }\n        > li > a {\n          color: @navbar-inverse-link-color;\n          &:hover,\n          &:focus {\n            color: @navbar-inverse-link-hover-color;\n            background-color: @navbar-inverse-link-hover-bg;\n          }\n        }\n        > .active > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-inverse-link-active-color;\n            background-color: @navbar-inverse-link-active-bg;\n          }\n        }\n        > .disabled > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-inverse-link-disabled-color;\n            background-color: @navbar-inverse-link-disabled-bg;\n          }\n        }\n      }\n    }\n  }\n\n  // Darken the responsive nav toggle\n  .navbar-toggle {\n    border-color: @navbar-inverse-toggle-border-color;\n    &:hover,\n    &:focus {\n      background-color: @navbar-inverse-toggle-hover-bg;\n    }\n    .icon-bar {\n      background-color: @navbar-inverse-toggle-icon-bar-bg;\n    }\n  }\n\n  .navbar-collapse,\n  .navbar-form {\n    border-color: darken(@navbar-inverse-bg, 7%);\n  }\n\n  .navbar-link {\n    color: @navbar-inverse-link-color;\n    &:hover {\n      color: @navbar-inverse-link-hover-color;\n    }\n  }\n\n  .btn-link {\n    color: @navbar-inverse-link-color;\n    &:hover,\n    &:focus {\n      color: @navbar-inverse-link-hover-color;\n    }\n    &[disabled],\n    fieldset[disabled] & {\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-disabled-color;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/navs.less",
    "content": "// stylelint-disable selector-no-qualifying-type, selector-max-type\n\n//\n// Navs\n// --------------------------------------------------\n\n\n// Base class\n// --------------------------------------------------\n\n.nav {\n  padding-left: 0; // Override default ul/ol\n  margin-bottom: 0;\n  list-style: none;\n  &:extend(.clearfix all);\n\n  > li {\n    position: relative;\n    display: block;\n\n    > a {\n      position: relative;\n      display: block;\n      padding: @nav-link-padding;\n      &:hover,\n      &:focus {\n        text-decoration: none;\n        background-color: @nav-link-hover-bg;\n      }\n    }\n\n    // Disabled state sets text to gray and nukes hover/tab effects\n    &.disabled > a {\n      color: @nav-disabled-link-color;\n\n      &:hover,\n      &:focus {\n        color: @nav-disabled-link-hover-color;\n        text-decoration: none;\n        cursor: @cursor-disabled;\n        background-color: transparent;\n      }\n    }\n  }\n\n  // Open dropdowns\n  .open > a {\n    &,\n    &:hover,\n    &:focus {\n      background-color: @nav-link-hover-bg;\n      border-color: @link-color;\n    }\n  }\n\n  // Nav dividers (deprecated with v3.0.1)\n  //\n  // This should have been removed in v3 with the dropping of `.nav-list`, but\n  // we missed it. We don't currently support this anywhere, but in the interest\n  // of maintaining backward compatibility in case you use it, it's deprecated.\n  .nav-divider {\n    .nav-divider();\n  }\n\n  // Prevent IE8 from misplacing imgs\n  //\n  // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989\n  > li > a > img {\n    max-width: none;\n  }\n}\n\n\n// Tabs\n// -------------------------\n\n// Give the tabs something to sit on\n.nav-tabs {\n  border-bottom: 1px solid @nav-tabs-border-color;\n  > li {\n    float: left;\n    // Make the list-items overlay the bottom border\n    margin-bottom: -1px;\n\n    // Actual tabs (as links)\n    > a {\n      margin-right: 2px;\n      line-height: @line-height-base;\n      border: 1px solid transparent;\n      border-radius: @border-radius-base @border-radius-base 0 0;\n      &:hover {\n        border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color;\n      }\n    }\n\n    // Active state, and its :hover to override normal :hover\n    &.active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @nav-tabs-active-link-hover-color;\n        cursor: default;\n        background-color: @nav-tabs-active-link-hover-bg;\n        border: 1px solid @nav-tabs-active-link-hover-border-color;\n        border-bottom-color: transparent;\n      }\n    }\n  }\n  // pulling this in mainly for less shorthand\n  &.nav-justified {\n    .nav-justified();\n    .nav-tabs-justified();\n  }\n}\n\n\n// Pills\n// -------------------------\n.nav-pills {\n  > li {\n    float: left;\n\n    // Links rendered as pills\n    > a {\n      border-radius: @nav-pills-border-radius;\n    }\n    + li {\n      margin-left: 2px;\n    }\n\n    // Active state\n    &.active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @nav-pills-active-link-hover-color;\n        background-color: @nav-pills-active-link-hover-bg;\n      }\n    }\n  }\n}\n\n\n// Stacked pills\n.nav-stacked {\n  > li {\n    float: none;\n    + li {\n      margin-top: 2px;\n      margin-left: 0; // no need for this gap between nav items\n    }\n  }\n}\n\n\n// Nav variations\n// --------------------------------------------------\n\n// Justified nav links\n// -------------------------\n\n.nav-justified {\n  width: 100%;\n\n  > li {\n    float: none;\n    > a {\n      margin-bottom: 5px;\n      text-align: center;\n    }\n  }\n\n  > .dropdown .dropdown-menu {\n    top: auto;\n    left: auto;\n  }\n\n  @media (min-width: @screen-sm-min) {\n    > li {\n      display: table-cell;\n      width: 1%;\n      > a {\n        margin-bottom: 0;\n      }\n    }\n  }\n}\n\n// Move borders to anchors instead of bottom of list\n//\n// Mixin for adding on top the shared `.nav-justified` styles for our tabs\n.nav-tabs-justified {\n  border-bottom: 0;\n\n  > li > a {\n    // Override margin from .nav-tabs\n    margin-right: 0;\n    border-radius: @border-radius-base;\n  }\n\n  > .active > a,\n  > .active > a:hover,\n  > .active > a:focus {\n    border: 1px solid @nav-tabs-justified-link-border-color;\n  }\n\n  @media (min-width: @screen-sm-min) {\n    > li > a {\n      border-bottom: 1px solid @nav-tabs-justified-link-border-color;\n      border-radius: @border-radius-base @border-radius-base 0 0;\n    }\n    > .active > a,\n    > .active > a:hover,\n    > .active > a:focus {\n      border-bottom-color: @nav-tabs-justified-active-link-border-color;\n    }\n  }\n}\n\n\n// Tabbable tabs\n// -------------------------\n\n// Hide tabbable panes to start, show them when `.active`\n.tab-content {\n  > .tab-pane {\n    display: none;\n  }\n  > .active {\n    display: block;\n  }\n}\n\n\n// Dropdowns\n// -------------------------\n\n// Specific dropdowns\n.nav-tabs .dropdown-menu {\n  // make dropdown border overlap tab border\n  margin-top: -1px;\n  // Remove the top rounded corners here since there is a hard edge above the menu\n  .border-top-radius(0);\n}\n"
  },
  {
    "path": "lib/bootstrap3/normalize.less",
    "content": "// stylelint-disable\n\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS and IE text size adjust after device orientation change,\n//    without disabling user zoom.\n//\n\nhtml {\n  font-family: sans-serif; // 1\n  -ms-text-size-adjust: 100%; // 2\n  -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n  margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined for any HTML5 element in IE 8/9.\n// Correct `block` display not defined for `details` or `summary` in IE 10/11\n// and Firefox.\n// Correct `block` display not defined for `main` in IE 11.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n  display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n  display: inline-block; // 1\n  vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n  display: none;\n  height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9/10.\n// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n  display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n  background-color: transparent;\n}\n\n//\n// Improve readability of focused elements when they are also in an\n// active/hover state.\n//\n\na:active,\na:hover {\n  outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// 1. Remove the bottom border in Chrome 57- and Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n//\n\nabbr[title] {\n  border-bottom: none; // 1\n  text-decoration: underline; // 2\n  text-decoration: underline dotted; // 2\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n//\n\nb,\nstrong {\n  font-weight: bold;\n}\n\n//\n// Address styling not present in Safari and Chrome.\n//\n\ndfn {\n  font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari, and Chrome.\n//\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n  background: #ff0;\n  color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n  font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\n\nsup {\n  top: -0.5em;\n}\n\nsub {\n  bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9/10.\n//\n\nimg {\n  border: 0;\n}\n\n//\n// Correct overflow not hidden in IE 9/10/11.\n//\n\nsvg:not(:root) {\n  overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari.\n//\n\nfigure {\n  margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n  overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n//    Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  color: inherit; // 1\n  font: inherit; // 2\n  margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10/11.\n//\n\nbutton {\n  overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n  text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n//    and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n//    `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  -webkit-appearance: button; // 2\n  cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n  cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  border: 0;\n  padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n  line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n  box-sizing: border-box; // 1\n  padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n//\n\ninput[type=\"search\"] {\n  -webkit-appearance: textfield; // 1\n  box-sizing: content-box; //2\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n  border: 1px solid #c0c0c0;\n  margin: 0 2px;\n  padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9/10/11.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n  border: 0; // 1\n  padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9/10/11.\n//\n\ntextarea {\n  overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n  font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\ntd,\nth {\n  padding: 0;\n}\n"
  },
  {
    "path": "lib/bootstrap3/pager.less",
    "content": "//\n// Pager pagination\n// --------------------------------------------------\n\n\n.pager {\n  padding-left: 0;\n  margin: @line-height-computed 0;\n  text-align: center;\n  list-style: none;\n  &:extend(.clearfix all);\n  li {\n    display: inline;\n    > a,\n    > span {\n      display: inline-block;\n      padding: 5px 14px;\n      background-color: @pager-bg;\n      border: 1px solid @pager-border;\n      border-radius: @pager-border-radius;\n    }\n\n    > a:hover,\n    > a:focus {\n      text-decoration: none;\n      background-color: @pager-hover-bg;\n    }\n  }\n\n  .next {\n    > a,\n    > span {\n      float: right;\n    }\n  }\n\n  .previous {\n    > a,\n    > span {\n      float: left;\n    }\n  }\n\n  .disabled {\n    > a,\n    > a:hover,\n    > a:focus,\n    > span {\n      color: @pager-disabled-color;\n      cursor: @cursor-disabled;\n      background-color: @pager-bg;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/pagination.less",
    "content": "//\n// Pagination (multiple pages)\n// --------------------------------------------------\n.pagination {\n  display: inline-block;\n  padding-left: 0;\n  margin: @line-height-computed 0;\n  border-radius: @border-radius-base;\n\n  > li {\n    display: inline; // Remove list-style and block-level defaults\n    > a,\n    > span {\n      position: relative;\n      float: left; // Collapse white-space\n      padding: @padding-base-vertical @padding-base-horizontal;\n      margin-left: -1px;\n      line-height: @line-height-base;\n      color: @pagination-color;\n      text-decoration: none;\n      background-color: @pagination-bg;\n      border: 1px solid @pagination-border;\n\n      &:hover,\n      &:focus {\n        z-index: 2;\n        color: @pagination-hover-color;\n        background-color: @pagination-hover-bg;\n        border-color: @pagination-hover-border;\n      }\n    }\n    &:first-child {\n      > a,\n      > span {\n        margin-left: 0;\n        .border-left-radius(@border-radius-base);\n      }\n    }\n    &:last-child {\n      > a,\n      > span {\n        .border-right-radius(@border-radius-base);\n      }\n    }\n  }\n\n  > .active > a,\n  > .active > span {\n    &,\n    &:hover,\n    &:focus {\n      z-index: 3;\n      color: @pagination-active-color;\n      cursor: default;\n      background-color: @pagination-active-bg;\n      border-color: @pagination-active-border;\n    }\n  }\n\n  > .disabled {\n    > span,\n    > span:hover,\n    > span:focus,\n    > a,\n    > a:hover,\n    > a:focus {\n      color: @pagination-disabled-color;\n      cursor: @cursor-disabled;\n      background-color: @pagination-disabled-bg;\n      border-color: @pagination-disabled-border;\n    }\n  }\n}\n\n// Sizing\n// --------------------------------------------------\n\n// Large\n.pagination-lg {\n  .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);\n}\n\n// Small\n.pagination-sm {\n  .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n}\n"
  },
  {
    "path": "lib/bootstrap3/panels.less",
    "content": "// stylelint-disable selector-max-type, selector-max-compound-selectors, selector-max-combinators, no-duplicate-selectors\n\n//\n// Panels\n// --------------------------------------------------\n\n\n// Base class\n.panel {\n  margin-bottom: @line-height-computed;\n  background-color: @panel-bg;\n  border: 1px solid transparent;\n  border-radius: @panel-border-radius;\n  .box-shadow(0 1px 1px rgba(0, 0, 0, .05));\n}\n\n// Panel contents\n.panel-body {\n  padding: @panel-body-padding;\n  &:extend(.clearfix all);\n}\n\n// Optional heading\n.panel-heading {\n  padding: @panel-heading-padding;\n  border-bottom: 1px solid transparent;\n  .border-top-radius((@panel-border-radius - 1));\n\n  > .dropdown .dropdown-toggle {\n    color: inherit;\n  }\n}\n\n// Within heading, strip any `h*` tag of its default margins for spacing.\n.panel-title {\n  margin-top: 0;\n  margin-bottom: 0;\n  font-size: ceil((@font-size-base * 1.125));\n  color: inherit;\n\n  > a,\n  > small,\n  > .small,\n  > small > a,\n  > .small > a {\n    color: inherit;\n  }\n}\n\n// Optional footer (stays gray in every modifier class)\n.panel-footer {\n  padding: @panel-footer-padding;\n  background-color: @panel-footer-bg;\n  border-top: 1px solid @panel-inner-border;\n  .border-bottom-radius((@panel-border-radius - 1));\n}\n\n\n// List groups in panels\n//\n// By default, space out list group content from panel headings to account for\n// any kind of custom content between the two.\n\n.panel {\n  > .list-group,\n  > .panel-collapse > .list-group {\n    margin-bottom: 0;\n\n    .list-group-item {\n      border-width: 1px 0;\n      border-radius: 0;\n    }\n\n    // Add border top radius for first one\n    &:first-child {\n      .list-group-item:first-child {\n        border-top: 0;\n        .border-top-radius((@panel-border-radius - 1));\n      }\n    }\n\n    // Add border bottom radius for last one\n    &:last-child {\n      .list-group-item:last-child {\n        border-bottom: 0;\n        .border-bottom-radius((@panel-border-radius - 1));\n      }\n    }\n  }\n  > .panel-heading + .panel-collapse > .list-group {\n    .list-group-item:first-child {\n      .border-top-radius(0);\n    }\n  }\n}\n// Collapse space between when there's no additional content.\n.panel-heading + .list-group {\n  .list-group-item:first-child {\n    border-top-width: 0;\n  }\n}\n.list-group + .panel-footer {\n  border-top-width: 0;\n}\n\n// Tables in panels\n//\n// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and\n// watch it go full width.\n\n.panel {\n  > .table,\n  > .table-responsive > .table,\n  > .panel-collapse > .table {\n    margin-bottom: 0;\n\n    caption {\n      padding-right: @panel-body-padding;\n      padding-left: @panel-body-padding;\n    }\n  }\n  // Add border top radius for first one\n  > .table:first-child,\n  > .table-responsive:first-child > .table:first-child {\n    .border-top-radius((@panel-border-radius - 1));\n\n    > thead:first-child,\n    > tbody:first-child {\n      > tr:first-child {\n        border-top-left-radius: (@panel-border-radius - 1);\n        border-top-right-radius: (@panel-border-radius - 1);\n\n        td:first-child,\n        th:first-child {\n          border-top-left-radius: (@panel-border-radius - 1);\n        }\n        td:last-child,\n        th:last-child {\n          border-top-right-radius: (@panel-border-radius - 1);\n        }\n      }\n    }\n  }\n  // Add border bottom radius for last one\n  > .table:last-child,\n  > .table-responsive:last-child > .table:last-child {\n    .border-bottom-radius((@panel-border-radius - 1));\n\n    > tbody:last-child,\n    > tfoot:last-child {\n      > tr:last-child {\n        border-bottom-right-radius: (@panel-border-radius - 1);\n        border-bottom-left-radius: (@panel-border-radius - 1);\n\n        td:first-child,\n        th:first-child {\n          border-bottom-left-radius: (@panel-border-radius - 1);\n        }\n        td:last-child,\n        th:last-child {\n          border-bottom-right-radius: (@panel-border-radius - 1);\n        }\n      }\n    }\n  }\n  > .panel-body + .table,\n  > .panel-body + .table-responsive,\n  > .table + .panel-body,\n  > .table-responsive + .panel-body {\n    border-top: 1px solid @table-border-color;\n  }\n  > .table > tbody:first-child > tr:first-child th,\n  > .table > tbody:first-child > tr:first-child td {\n    border-top: 0;\n  }\n  > .table-bordered,\n  > .table-responsive > .table-bordered {\n    border: 0;\n    > thead,\n    > tbody,\n    > tfoot {\n      > tr {\n        > th:first-child,\n        > td:first-child {\n          border-left: 0;\n        }\n        > th:last-child,\n        > td:last-child {\n          border-right: 0;\n        }\n      }\n    }\n    > thead,\n    > tbody {\n      > tr:first-child {\n        > td,\n        > th {\n          border-bottom: 0;\n        }\n      }\n    }\n    > tbody,\n    > tfoot {\n      > tr:last-child {\n        > td,\n        > th {\n          border-bottom: 0;\n        }\n      }\n    }\n  }\n  > .table-responsive {\n    margin-bottom: 0;\n    border: 0;\n  }\n}\n\n\n// Collapsible panels (aka, accordion)\n//\n// Wrap a series of panels in `.panel-group` to turn them into an accordion with\n// the help of our collapse JavaScript plugin.\n\n.panel-group {\n  margin-bottom: @line-height-computed;\n\n  // Tighten up margin so it's only between panels\n  .panel {\n    margin-bottom: 0;\n    border-radius: @panel-border-radius;\n\n    + .panel {\n      margin-top: 5px;\n    }\n  }\n\n  .panel-heading {\n    border-bottom: 0;\n\n    + .panel-collapse > .panel-body,\n    + .panel-collapse > .list-group {\n      border-top: 1px solid @panel-inner-border;\n    }\n  }\n\n  .panel-footer {\n    border-top: 0;\n    + .panel-collapse .panel-body {\n      border-bottom: 1px solid @panel-inner-border;\n    }\n  }\n}\n\n\n// Contextual variations\n.panel-default {\n  .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);\n}\n.panel-primary {\n  .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);\n}\n.panel-success {\n  .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);\n}\n.panel-info {\n  .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);\n}\n.panel-warning {\n  .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);\n}\n.panel-danger {\n  .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);\n}\n"
  },
  {
    "path": "lib/bootstrap3/popovers.less",
    "content": "//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: @zindex-popover;\n  display: none;\n  max-width: @popover-max-width;\n  padding: 1px;\n  // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  .reset-text();\n  font-size: @font-size-base;\n  background-color: @popover-bg;\n  background-clip: padding-box;\n  border: 1px solid @popover-fallback-border-color;\n  border: 1px solid @popover-border-color;\n  border-radius: @border-radius-large;\n  .box-shadow(0 5px 10px rgba(0, 0, 0, .2));\n\n  // Offset the popover to account for the popover arrow\n  &.top { margin-top: -@popover-arrow-width; }\n  &.right { margin-left: @popover-arrow-width; }\n  &.bottom { margin-top: @popover-arrow-width; }\n  &.left { margin-left: -@popover-arrow-width; }\n\n  // Arrows\n  // .arrow is outer, .arrow:after is inner\n  > .arrow {\n    border-width: @popover-arrow-outer-width;\n\n    &,\n    &:after {\n      position: absolute;\n      display: block;\n      width: 0;\n      height: 0;\n      border-color: transparent;\n      border-style: solid;\n    }\n\n    &:after {\n      content: \"\";\n      border-width: @popover-arrow-width;\n    }\n  }\n\n  &.top > .arrow {\n    bottom: -@popover-arrow-outer-width;\n    left: 50%;\n    margin-left: -@popover-arrow-outer-width;\n    border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-top-color: @popover-arrow-outer-color;\n    border-bottom-width: 0;\n    &:after {\n      bottom: 1px;\n      margin-left: -@popover-arrow-width;\n      content: \" \";\n      border-top-color: @popover-arrow-color;\n      border-bottom-width: 0;\n    }\n  }\n  &.right > .arrow {\n    top: 50%;\n    left: -@popover-arrow-outer-width;\n    margin-top: -@popover-arrow-outer-width;\n    border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-right-color: @popover-arrow-outer-color;\n    border-left-width: 0;\n    &:after {\n      bottom: -@popover-arrow-width;\n      left: 1px;\n      content: \" \";\n      border-right-color: @popover-arrow-color;\n      border-left-width: 0;\n    }\n  }\n  &.bottom > .arrow {\n    top: -@popover-arrow-outer-width;\n    left: 50%;\n    margin-left: -@popover-arrow-outer-width;\n    border-top-width: 0;\n    border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-bottom-color: @popover-arrow-outer-color;\n    &:after {\n      top: 1px;\n      margin-left: -@popover-arrow-width;\n      content: \" \";\n      border-top-width: 0;\n      border-bottom-color: @popover-arrow-color;\n    }\n  }\n\n  &.left > .arrow {\n    top: 50%;\n    right: -@popover-arrow-outer-width;\n    margin-top: -@popover-arrow-outer-width;\n    border-right-width: 0;\n    border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-left-color: @popover-arrow-outer-color;\n    &:after {\n      right: 1px;\n      bottom: -@popover-arrow-width;\n      content: \" \";\n      border-right-width: 0;\n      border-left-color: @popover-arrow-color;\n    }\n  }\n}\n\n.popover-title {\n  padding: 8px 14px;\n  margin: 0; // reset heading margin\n  font-size: @font-size-base;\n  background-color: @popover-title-bg;\n  border-bottom: 1px solid darken(@popover-title-bg, 5%);\n  border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;\n}\n\n.popover-content {\n  padding: 9px 14px;\n}\n"
  },
  {
    "path": "lib/bootstrap3/print.less",
    "content": "// stylelint-disable declaration-no-important, selector-no-qualifying-type\n\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request: h5bp.com/r\n// ==========================================================================\n\n@media print {\n  *,\n  *:before,\n  *:after {\n    color: #000 !important; // Black prints faster: h5bp.com/s\n    text-shadow: none !important;\n    background: transparent !important;\n    box-shadow: none !important;\n  }\n\n  a,\n  a:visited {\n    text-decoration: underline;\n  }\n\n  a[href]:after {\n    content: \" (\" attr(href) \")\";\n  }\n\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\";\n  }\n\n  // Don't show links that are fragment identifiers,\n  // or use the `javascript:` pseudo protocol\n  a[href^=\"#\"]:after,\n  a[href^=\"javascript:\"]:after {\n    content: \"\";\n  }\n\n  pre,\n  blockquote {\n    border: 1px solid #999;\n    page-break-inside: avoid;\n  }\n\n  thead {\n    display: table-header-group; // h5bp.com/t\n  }\n\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n\n  img {\n    max-width: 100% !important;\n  }\n\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n\n  // Bootstrap specific changes start\n\n  // Bootstrap components\n  .navbar {\n    display: none;\n  }\n  .btn,\n  .dropup > .btn {\n    > .caret {\n      border-top-color: #000 !important;\n    }\n  }\n  .label {\n    border: 1px solid #000;\n  }\n\n  .table {\n    border-collapse: collapse !important;\n\n    td,\n    th {\n      background-color: #fff !important;\n    }\n  }\n  .table-bordered {\n    th,\n    td {\n      border: 1px solid #ddd !important;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/progress-bars.less",
    "content": "// stylelint-disable at-rule-no-vendor-prefix\n\n//\n// Progress bars\n// --------------------------------------------------\n\n\n// Bar animations\n// -------------------------\n\n// WebKit\n@-webkit-keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n// Spec and IE10+\n@keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n\n// Bar itself\n// -------------------------\n\n// Outer container\n.progress {\n  height: @line-height-computed;\n  margin-bottom: @line-height-computed;\n  overflow: hidden;\n  background-color: @progress-bg;\n  border-radius: @progress-border-radius;\n  .box-shadow(inset 0 1px 2px rgba(0, 0, 0, .1));\n}\n\n// Bar of progress\n.progress-bar {\n  float: left;\n  width: 0%;\n  height: 100%;\n  font-size: @font-size-small;\n  line-height: @line-height-computed;\n  color: @progress-bar-color;\n  text-align: center;\n  background-color: @progress-bar-bg;\n  .box-shadow(inset 0 -1px 0 rgba(0, 0, 0, .15));\n  .transition(width .6s ease);\n}\n\n// Striped bars\n//\n// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar-striped` class, which you just add to an existing\n// `.progress-bar`.\n.progress-striped .progress-bar,\n.progress-bar-striped {\n  #gradient > .striped();\n  background-size: 40px 40px;\n}\n\n// Call animation for the active one\n//\n// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar.active` approach.\n.progress.active .progress-bar,\n.progress-bar.active {\n  .animation(progress-bar-stripes 2s linear infinite);\n}\n\n\n// Variations\n// -------------------------\n\n.progress-bar-success {\n  .progress-bar-variant(@progress-bar-success-bg);\n}\n\n.progress-bar-info {\n  .progress-bar-variant(@progress-bar-info-bg);\n}\n\n.progress-bar-warning {\n  .progress-bar-variant(@progress-bar-warning-bg);\n}\n\n.progress-bar-danger {\n  .progress-bar-variant(@progress-bar-danger-bg);\n}\n"
  },
  {
    "path": "lib/bootstrap3/responsive-embed.less",
    "content": "// Embeds responsive\n//\n// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  height: 0;\n  padding: 0;\n  overflow: hidden;\n\n  .embed-responsive-item,\n  iframe,\n  embed,\n  object,\n  video {\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    border: 0;\n  }\n}\n\n// Modifier class for 16:9 aspect ratio\n.embed-responsive-16by9 {\n  padding-bottom: 56.25%;\n}\n\n// Modifier class for 4:3 aspect ratio\n.embed-responsive-4by3 {\n  padding-bottom: 75%;\n}\n"
  },
  {
    "path": "lib/bootstrap3/responsive-utilities.less",
    "content": "// stylelint-disable declaration-no-important, at-rule-no-vendor-prefix\n\n//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 in Windows (Phone) 8\n//\n// Support for responsive views via media queries is kind of borked in IE10, for\n// Surface/desktop in split view and for Windows Phone 8. This particular fix\n// must be accompanied by a snippet of JavaScript to sniff the user agent and\n// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at\n// our Getting Started page for more information on this bug.\n//\n// For more information, see the following:\n//\n// Issue: https://github.com/twbs/bootstrap/issues/10497\n// Docs: https://getbootstrap.com/docs/3.4/getting-started/#support-ie10-width\n// Source: https://timkadlec.com/2013/01/windows-phone-8-and-device-width/\n// Source: https://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/\n\n@-ms-viewport {\n  width: device-width;\n}\n\n\n// Visibility utilities\n// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n  .responsive-invisibility();\n}\n\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n  display: none !important;\n}\n\n.visible-xs {\n  @media (max-width: @screen-xs-max) {\n    .responsive-visibility();\n  }\n}\n.visible-xs-block {\n  @media (max-width: @screen-xs-max) {\n    display: block !important;\n  }\n}\n.visible-xs-inline {\n  @media (max-width: @screen-xs-max) {\n    display: inline !important;\n  }\n}\n.visible-xs-inline-block {\n  @media (max-width: @screen-xs-max) {\n    display: inline-block !important;\n  }\n}\n\n.visible-sm {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    .responsive-visibility();\n  }\n}\n.visible-sm-block {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    display: block !important;\n  }\n}\n.visible-sm-inline {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    display: inline !important;\n  }\n}\n.visible-sm-inline-block {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    display: inline-block !important;\n  }\n}\n\n.visible-md {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    .responsive-visibility();\n  }\n}\n.visible-md-block {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    display: block !important;\n  }\n}\n.visible-md-inline {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    display: inline !important;\n  }\n}\n.visible-md-inline-block {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    display: inline-block !important;\n  }\n}\n\n.visible-lg {\n  @media (min-width: @screen-lg-min) {\n    .responsive-visibility();\n  }\n}\n.visible-lg-block {\n  @media (min-width: @screen-lg-min) {\n    display: block !important;\n  }\n}\n.visible-lg-inline {\n  @media (min-width: @screen-lg-min) {\n    display: inline !important;\n  }\n}\n.visible-lg-inline-block {\n  @media (min-width: @screen-lg-min) {\n    display: inline-block !important;\n  }\n}\n\n.hidden-xs {\n  @media (max-width: @screen-xs-max) {\n    .responsive-invisibility();\n  }\n}\n.hidden-sm {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    .responsive-invisibility();\n  }\n}\n.hidden-md {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    .responsive-invisibility();\n  }\n}\n.hidden-lg {\n  @media (min-width: @screen-lg-min) {\n    .responsive-invisibility();\n  }\n}\n\n\n// Print utilities\n//\n// Media queries are placed on the inside to be mixin-friendly.\n\n// Note: Deprecated .visible-print as of v3.2.0\n.visible-print {\n  .responsive-invisibility();\n\n  @media print {\n    .responsive-visibility();\n  }\n}\n.visible-print-block {\n  display: none !important;\n\n  @media print {\n    display: block !important;\n  }\n}\n.visible-print-inline {\n  display: none !important;\n\n  @media print {\n    display: inline !important;\n  }\n}\n.visible-print-inline-block {\n  display: none !important;\n\n  @media print {\n    display: inline-block !important;\n  }\n}\n\n.hidden-print {\n  @media print {\n    .responsive-invisibility();\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/scaffolding.less",
    "content": "//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// https://getbootstrap.com/docs/3.4/getting-started/#third-box-sizing\n* {\n  .box-sizing(border-box);\n}\n*:before,\n*:after {\n  .box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n  font-size: 10px;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\nbody {\n  font-family: @font-family-base;\n  font-size: @font-size-base;\n  line-height: @line-height-base;\n  color: @text-color;\n  background-color: @body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\n\n// Links\n\na {\n  color: @link-color;\n  text-decoration: none;\n\n  &:hover,\n  &:focus {\n    color: @link-hover-color;\n    text-decoration: @link-hover-decoration;\n  }\n\n  &:focus {\n    .tab-focus();\n  }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n  margin: 0;\n}\n\n\n// Images\n\nimg {\n  vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n  .img-responsive();\n}\n\n// Rounded corners\n.img-rounded {\n  border-radius: @border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n  padding: @thumbnail-padding;\n  line-height: @line-height-base;\n  background-color: @thumbnail-bg;\n  border: 1px solid @thumbnail-border;\n  border-radius: @thumbnail-border-radius;\n  .transition(all .2s ease-in-out);\n\n  // Keep them at most 100% wide\n  .img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n  border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n  margin-top: @line-height-computed;\n  margin-bottom: @line-height-computed;\n  border: 0;\n  border-top: 1px solid @hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: https://a11yproject.com/posts/how-to-hide-content\n\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable {\n  &:active,\n  &:focus {\n    position: static;\n    width: auto;\n    height: auto;\n    margin: 0;\n    overflow: visible;\n    clip: auto;\n  }\n}\n\n\n// iOS \"clickable elements\" fix for role=\"button\"\n//\n// Fixes \"clickability\" issue (and more generally, the firing of events such as focus as well)\n// for traditionally non-focusable elements with role=\"button\"\n// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n[role=\"button\"] {\n  cursor: pointer;\n}\n"
  },
  {
    "path": "lib/bootstrap3/tables.less",
    "content": "// stylelint-disable selector-max-type, selector-max-compound-selectors, selector-no-qualifying-type\n\n//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n  background-color: @table-bg;\n\n  // Table cell sizing\n  //\n  // Reset default table behavior\n\n  col[class*=\"col-\"] {\n    position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n    display: table-column;\n    float: none;\n  }\n\n  td,\n  th {\n    &[class*=\"col-\"] {\n      position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n      display: table-cell;\n      float: none;\n    }\n  }\n}\n\ncaption {\n  padding-top: @table-cell-padding;\n  padding-bottom: @table-cell-padding;\n  color: @text-muted;\n  text-align: left;\n}\n\nth {\n  text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: @line-height-computed;\n  // Cells\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        padding: @table-cell-padding;\n        line-height: @line-height-base;\n        vertical-align: top;\n        border-top: 1px solid @table-border-color;\n      }\n    }\n  }\n  // Bottom align for column headings\n  > thead > tr > th {\n    vertical-align: bottom;\n    border-bottom: 2px solid @table-border-color;\n  }\n  // Remove top border from thead by default\n  > caption + thead,\n  > colgroup + thead,\n  > thead:first-child {\n    > tr:first-child {\n      > th,\n      > td {\n        border-top: 0;\n      }\n    }\n  }\n  // Account for multiple tbody instances\n  > tbody + tbody {\n    border-top: 2px solid @table-border-color;\n  }\n\n  // Nesting\n  .table {\n    background-color: @body-bg;\n  }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        padding: @table-condensed-cell-padding;\n      }\n    }\n  }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n  border: 1px solid @table-border-color;\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        border: 1px solid @table-border-color;\n      }\n    }\n  }\n  > thead > tr {\n    > th,\n    > td {\n      border-bottom-width: 2px;\n    }\n  }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n  > tbody > tr:nth-of-type(odd) {\n    background-color: @table-bg-accent;\n  }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n  > tbody > tr:hover {\n    background-color: @table-bg-hover;\n  }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n.table-row-variant(active; @table-bg-active);\n.table-row-variant(success; @state-success-bg);\n.table-row-variant(info; @state-info-bg);\n.table-row-variant(warning; @state-warning-bg);\n.table-row-variant(danger; @state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n.table-responsive {\n  min-height: .01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)\n  overflow-x: auto;\n\n  @media screen and (max-width: @screen-xs-max) {\n    width: 100%;\n    margin-bottom: (@line-height-computed * .75);\n    overflow-y: hidden;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n    border: 1px solid @table-border-color;\n\n    // Tighten up spacing\n    > .table {\n      margin-bottom: 0;\n\n      // Ensure the content doesn't wrap\n      > thead,\n      > tbody,\n      > tfoot {\n        > tr {\n          > th,\n          > td {\n            white-space: nowrap;\n          }\n        }\n      }\n    }\n\n    // Special overrides for the bordered tables\n    > .table-bordered {\n      border: 0;\n\n      // Nuke the appropriate borders so that the parent can handle them\n      > thead,\n      > tbody,\n      > tfoot {\n        > tr {\n          > th:first-child,\n          > td:first-child {\n            border-left: 0;\n          }\n          > th:last-child,\n          > td:last-child {\n            border-right: 0;\n          }\n        }\n      }\n\n      // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n      // chances are there will be only one `tr` in a `thead` and that would\n      // remove the border altogether.\n      > tbody,\n      > tfoot {\n        > tr:last-child {\n          > th,\n          > td {\n            border-bottom: 0;\n          }\n        }\n      }\n\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/theme.less",
    "content": "// stylelint-disable selector-no-qualifying-type, selector-max-compound-selectors\n\n/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);\n  @shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);\n  .box-shadow(@shadow);\n\n  // Reset the shadow\n  &:active,\n  &.active {\n    .box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125));\n  }\n\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    .box-shadow(none);\n  }\n\n  .badge {\n    text-shadow: none;\n  }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n  #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n  .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n  background-repeat: repeat-x;\n  border-color: darken(@btn-color, 14%);\n\n  &:hover,\n  &:focus  {\n    background-color: darken(@btn-color, 12%);\n    background-position: 0 -15px;\n  }\n\n  &:active,\n  &.active {\n    background-color: darken(@btn-color, 12%);\n    border-color: darken(@btn-color, 14%);\n  }\n\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    &,\n    &:hover,\n    &:focus,\n    &.focus,\n    &:active,\n    &.active {\n      background-color: darken(@btn-color, 12%);\n      background-image: none;\n    }\n  }\n}\n\n// Common styles\n.btn {\n  // Remove the gradient for the pressed/active state\n  &:active,\n  &.active {\n    background-image: none;\n  }\n}\n\n// Apply the mixin to the buttons\n.btn-default {\n  .btn-styles(@btn-default-bg);\n  text-shadow: 0 1px 0 #fff;\n  border-color: #ccc;\n}\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info    { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger  { .btn-styles(@btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n  .box-shadow(0 1px 2px rgba(0, 0, 0, .075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n  #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n  background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n  #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n  background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n  #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n  .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n  border-radius: @navbar-border-radius;\n  @shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);\n  .box-shadow(@shadow);\n\n  .navbar-nav > .open > a,\n  .navbar-nav > .active > a {\n    #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));\n    .box-shadow(inset 0 3px 9px rgba(0, 0, 0, .075));\n  }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n  text-shadow: 0 1px 0 rgba(255, 255, 255, .25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n  #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n  .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n  border-radius: @navbar-border-radius;\n  .navbar-nav > .open > a,\n  .navbar-nav > .active > a {\n    #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));\n    .box-shadow(inset 0 3px 9px rgba(0, 0, 0, .25));\n  }\n\n  .navbar-brand,\n  .navbar-nav > li > a {\n    text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);\n  }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: @grid-float-breakpoint-max) {\n  .navbar .navbar-nav .open .dropdown-menu > .active > a {\n    &,\n    &:hover,\n    &:focus {\n      color: #fff;\n      #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n    }\n  }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n  text-shadow: 0 1px 0 rgba(255, 255, 255, .2);\n  @shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);\n  .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n  #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n  border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success    { .alert-styles(@alert-success-bg); }\n.alert-info       { .alert-styles(@alert-info-bg); }\n.alert-warning    { .alert-styles(@alert-warning-bg); }\n.alert-danger     { .alert-styles(@alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n  #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n  #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar            { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success    { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info       { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning    { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger     { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n  #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n  border-radius: @border-radius-base;\n  .box-shadow(0 1px 2px rgba(0, 0, 0, .075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n  text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n  #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n  border-color: darken(@list-group-active-border, 7.5%);\n\n  .badge {\n    text-shadow: none;\n  }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n  .box-shadow(0 1px 2px rgba(0, 0, 0, .05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n  #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading   { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading   { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading   { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading      { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading   { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading    { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n  #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n  border-color: darken(@well-bg, 10%);\n  @shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);\n  .box-shadow(@shadow);\n}\n"
  },
  {
    "path": "lib/bootstrap3/thumbnails.less",
    "content": "// stylelint-disable selector-no-qualifying-type\n\n//\n// Thumbnails\n// --------------------------------------------------\n\n\n// Mixin and adjust the regular image class\n.thumbnail {\n  display: block;\n  padding: @thumbnail-padding;\n  margin-bottom: @line-height-computed;\n  line-height: @line-height-base;\n  background-color: @thumbnail-bg;\n  border: 1px solid @thumbnail-border;\n  border-radius: @thumbnail-border-radius;\n  .transition(border .2s ease-in-out);\n\n  > img,\n  a > img {\n    &:extend(.img-responsive);\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  // Add a hover state for linked versions only\n  a&:hover,\n  a&:focus,\n  a&.active {\n    border-color: @link-color;\n  }\n\n  // Image captions\n  .caption {\n    padding: @thumbnail-caption-padding;\n    color: @thumbnail-caption-color;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap3/tooltip.less",
    "content": "//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n  position: absolute;\n  z-index: @zindex-tooltip;\n  display: block;\n  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  .reset-text();\n  font-size: @font-size-small;\n\n  .opacity(0);\n\n  &.in { .opacity(@tooltip-opacity); }\n  &.top {\n    padding: @tooltip-arrow-width 0;\n    margin-top: -3px;\n  }\n  &.right {\n    padding: 0 @tooltip-arrow-width;\n    margin-left: 3px;\n  }\n  &.bottom {\n    padding: @tooltip-arrow-width 0;\n    margin-top: 3px;\n  }\n  &.left {\n    padding: 0 @tooltip-arrow-width;\n    margin-left: -3px;\n  }\n\n  // Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1\n  &.top .tooltip-arrow {\n    bottom: 0;\n    left: 50%;\n    margin-left: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-top-color: @tooltip-arrow-color;\n  }\n  &.top-left .tooltip-arrow {\n    right: @tooltip-arrow-width;\n    bottom: 0;\n    margin-bottom: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-top-color: @tooltip-arrow-color;\n  }\n  &.top-right .tooltip-arrow {\n    bottom: 0;\n    left: @tooltip-arrow-width;\n    margin-bottom: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-top-color: @tooltip-arrow-color;\n  }\n  &.right .tooltip-arrow {\n    top: 50%;\n    left: 0;\n    margin-top: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-right-color: @tooltip-arrow-color;\n  }\n  &.left .tooltip-arrow {\n    top: 50%;\n    right: 0;\n    margin-top: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-left-color: @tooltip-arrow-color;\n  }\n  &.bottom .tooltip-arrow {\n    top: 0;\n    left: 50%;\n    margin-left: -@tooltip-arrow-width;\n    border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-bottom-color: @tooltip-arrow-color;\n  }\n  &.bottom-left .tooltip-arrow {\n    top: 0;\n    right: @tooltip-arrow-width;\n    margin-top: -@tooltip-arrow-width;\n    border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-bottom-color: @tooltip-arrow-color;\n  }\n  &.bottom-right .tooltip-arrow {\n    top: 0;\n    left: @tooltip-arrow-width;\n    margin-top: -@tooltip-arrow-width;\n    border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-bottom-color: @tooltip-arrow-color;\n  }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n  max-width: @tooltip-max-width;\n  padding: 3px 8px;\n  color: @tooltip-color;\n  text-align: center;\n  background-color: @tooltip-bg;\n  border-radius: @border-radius-base;\n}\n\n// Arrows\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n"
  },
  {
    "path": "lib/bootstrap3/type.less",
    "content": "// stylelint-disable selector-list-comma-newline-after, selector-no-qualifying-type\n\n//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  font-family: @headings-font-family;\n  font-weight: @headings-font-weight;\n  line-height: @headings-line-height;\n  color: @headings-color;\n\n  small,\n  .small {\n    font-weight: 400;\n    line-height: 1;\n    color: @headings-small-color;\n  }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n  margin-top: @line-height-computed;\n  margin-bottom: (@line-height-computed / 2);\n\n  small,\n  .small {\n    font-size: 65%;\n  }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  margin-top: (@line-height-computed / 2);\n  margin-bottom: (@line-height-computed / 2);\n\n  small,\n  .small {\n    font-size: 75%;\n  }\n}\n\nh1, .h1 { font-size: @font-size-h1; }\nh2, .h2 { font-size: @font-size-h2; }\nh3, .h3 { font-size: @font-size-h3; }\nh4, .h4 { font-size: @font-size-h4; }\nh5, .h5 { font-size: @font-size-h5; }\nh6, .h6 { font-size: @font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n  margin: 0 0 (@line-height-computed / 2);\n}\n\n.lead {\n  margin-bottom: @line-height-computed;\n  font-size: floor((@font-size-base * 1.15));\n  font-weight: 300;\n  line-height: 1.4;\n\n  @media (min-width: @screen-sm-min) {\n    font-size: (@font-size-base * 1.5);\n  }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: (12px small font / 14px base font) * 100% = about 85%\nsmall,\n.small {\n  font-size: floor((100% * @font-size-small / @font-size-base));\n}\n\nmark,\n.mark {\n  padding: .2em;\n  background-color: @state-warning-bg;\n}\n\n// Alignment\n.text-left           { text-align: left; }\n.text-right          { text-align: right; }\n.text-center         { text-align: center; }\n.text-justify        { text-align: justify; }\n.text-nowrap         { white-space: nowrap; }\n\n// Transformation\n.text-lowercase      { text-transform: lowercase; }\n.text-uppercase      { text-transform: uppercase; }\n.text-capitalize     { text-transform: capitalize; }\n\n// Contextual colors\n.text-muted {\n  color: @text-muted;\n}\n.text-primary {\n  .text-emphasis-variant(@brand-primary);\n}\n.text-success {\n  .text-emphasis-variant(@state-success-text);\n}\n.text-info {\n  .text-emphasis-variant(@state-info-text);\n}\n.text-warning {\n  .text-emphasis-variant(@state-warning-text);\n}\n.text-danger {\n  .text-emphasis-variant(@state-danger-text);\n}\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n  // Given the contrast here, this is the only class to have its color inverted\n  // automatically.\n  color: #fff;\n  .bg-variant(@brand-primary);\n}\n.bg-success {\n  .bg-variant(@state-success-bg);\n}\n.bg-info {\n  .bg-variant(@state-info-bg);\n}\n.bg-warning {\n  .bg-variant(@state-warning-bg);\n}\n.bg-danger {\n  .bg-variant(@state-danger-bg);\n}\n\n\n// Page header\n// -------------------------\n\n.page-header {\n  padding-bottom: ((@line-height-computed / 2) - 1);\n  margin: (@line-height-computed * 2) 0 @line-height-computed;\n  border-bottom: 1px solid @page-header-border-color;\n}\n\n\n// Lists\n// -------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n  margin-top: 0;\n  margin-bottom: (@line-height-computed / 2);\n  ul,\n  ol {\n    margin-bottom: 0;\n  }\n}\n\n// List options\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n  .list-unstyled();\n  margin-left: -5px;\n\n  > li {\n    display: inline-block;\n    padding-right: 5px;\n    padding-left: 5px;\n  }\n}\n\n// Description Lists\ndl {\n  margin-top: 0; // Remove browser default\n  margin-bottom: @line-height-computed;\n}\ndt,\ndd {\n  line-height: @line-height-base;\n}\ndt {\n  font-weight: 700;\n}\ndd {\n  margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n.dl-horizontal {\n  dd {\n    &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present\n  }\n\n  @media (min-width: @dl-horizontal-breakpoint) {\n    dt {\n      float: left;\n      width: (@dl-horizontal-offset - 20);\n      clear: left;\n      text-align: right;\n      .text-overflow();\n    }\n    dd {\n      margin-left: @dl-horizontal-offset;\n    }\n  }\n}\n\n\n// Misc\n// -------------------------\n\n// Abbreviations and acronyms\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[title],\nabbr[data-original-title] {\n  cursor: help;\n}\n\n.initialism {\n  font-size: 90%;\n  .text-uppercase();\n}\n\n// Blockquotes\nblockquote {\n  padding: (@line-height-computed / 2) @line-height-computed;\n  margin: 0 0 @line-height-computed;\n  font-size: @blockquote-font-size;\n  border-left: 5px solid @blockquote-border-color;\n\n  p,\n  ul,\n  ol {\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Note: Deprecated small and .small as of v3.1.0\n  // Context: https://github.com/twbs/bootstrap/issues/11660\n  footer,\n  small,\n  .small {\n    display: block;\n    font-size: 80%; // back to default font-size\n    line-height: @line-height-base;\n    color: @blockquote-small-color;\n\n    &:before {\n      content: \"\\2014 \\00A0\"; // em dash, nbsp\n    }\n  }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n  padding-right: 15px;\n  padding-left: 0;\n  text-align: right;\n  border-right: 5px solid @blockquote-border-color;\n  border-left: 0;\n\n  // Account for citation\n  footer,\n  small,\n  .small {\n    &:before { content: \"\"; }\n    &:after {\n      content: \"\\00A0 \\2014\"; // nbsp, em dash\n    }\n  }\n}\n\n// Addresses\naddress {\n  margin-bottom: @line-height-computed;\n  font-style: normal;\n  line-height: @line-height-base;\n}\n"
  },
  {
    "path": "lib/bootstrap3/utilities.less",
    "content": "// stylelint-disable declaration-no-important\n\n//\n// Utility classes\n// --------------------------------------------------\n\n\n// Floats\n// -------------------------\n\n.clearfix {\n  .clearfix();\n}\n.center-block {\n  .center-block();\n}\n.pull-right {\n  float: right !important;\n}\n.pull-left {\n  float: left !important;\n}\n\n\n// Toggling content\n// -------------------------\n\n// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1\n.hide {\n  display: none !important;\n}\n.show {\n  display: block !important;\n}\n.invisible {\n  visibility: hidden;\n}\n.text-hide {\n  .text-hide();\n}\n\n\n// Hide from screenreaders and browsers\n//\n// Credit: HTML5 Boilerplate\n\n.hidden {\n  display: none !important;\n}\n\n\n// For Affix plugin\n// -------------------------\n\n.affix {\n  position: fixed;\n}\n"
  },
  {
    "path": "lib/bootstrap3/variables.less",
    "content": "// stylelint-disable value-keyword-case\n\n//\n// Variables\n// --------------------------------------------------\n\n\n//== Colors\n//\n//## Gray and brand colors for use across Bootstrap.\n\n@gray-base:              #000;\n@gray-darker:            lighten(@gray-base, 13.5%); // #222\n@gray-dark:              lighten(@gray-base, 20%);   // #333\n@gray:                   lighten(@gray-base, 33.5%); // #555\n@gray-light:             lighten(@gray-base, 46.7%); // #777\n@gray-lighter:           lighten(@gray-base, 93.5%); // #eee\n\n@brand-primary:         darken(#428bca, 6.5%); // #337ab7\n@brand-success:         #5cb85c;\n@brand-info:            #5bc0de;\n@brand-warning:         #f0ad4e;\n@brand-danger:          #d9534f;\n\n\n//== Scaffolding\n//\n//## Settings for some of the most global styles.\n\n//** Background color for `<body>`.\n@body-bg:               #fff;\n//** Global text color on `<body>`.\n@text-color:            @gray-dark;\n\n//** Global textual link color.\n@link-color:            @brand-primary;\n//** Link hover color set via `darken()` function.\n@link-hover-color:      darken(@link-color, 15%);\n//** Link hover decoration.\n@link-hover-decoration: underline;\n\n\n//== Typography\n//\n//## Font, line-height, and color for body text, headings, and more.\n\n@font-family-sans-serif:  \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n@font-family-serif:       Georgia, \"Times New Roman\", Times, serif;\n//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.\n@font-family-monospace:   Menlo, Monaco, Consolas, \"Courier New\", monospace;\n@font-family-base:        @font-family-sans-serif;\n\n@font-size-base:          14px;\n@font-size-large:         ceil((@font-size-base * 1.25)); // ~18px\n@font-size-small:         ceil((@font-size-base * .85)); // ~12px\n\n@font-size-h1:            floor((@font-size-base * 2.6)); // ~36px\n@font-size-h2:            floor((@font-size-base * 2.15)); // ~30px\n@font-size-h3:            ceil((@font-size-base * 1.7)); // ~24px\n@font-size-h4:            ceil((@font-size-base * 1.25)); // ~18px\n@font-size-h5:            @font-size-base;\n@font-size-h6:            ceil((@font-size-base * .85)); // ~12px\n\n//** Unit-less `line-height` for use in components like buttons.\n@line-height-base:        1.428571429; // 20/14\n//** Computed \"line-height\" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.\n@line-height-computed:    floor((@font-size-base * @line-height-base)); // ~20px\n\n//** By default, this inherits from the `<body>`.\n@headings-font-family:    inherit;\n@headings-font-weight:    500;\n@headings-line-height:    1.1;\n@headings-color:          inherit;\n\n\n//== Iconography\n//\n//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.\n\n//** Load fonts from this directory.\n@icon-font-path:          \"../fonts/\";\n//** File name for all font files.\n@icon-font-name:          \"glyphicons-halflings-regular\";\n//** Element ID within SVG icon file.\n@icon-font-svg-id:        \"glyphicons_halflingsregular\";\n\n\n//== Components\n//\n//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).\n\n@padding-base-vertical:     6px;\n@padding-base-horizontal:   12px;\n\n@padding-large-vertical:    10px;\n@padding-large-horizontal:  16px;\n\n@padding-small-vertical:    5px;\n@padding-small-horizontal:  10px;\n\n@padding-xs-vertical:       1px;\n@padding-xs-horizontal:     5px;\n\n@line-height-large:         1.3333333; // extra decimals for Win 8.1 Chrome\n@line-height-small:         1.5;\n\n@border-radius-base:        4px;\n@border-radius-large:       6px;\n@border-radius-small:       3px;\n\n//** Global color for active items (e.g., navs or dropdowns).\n@component-active-color:    #fff;\n//** Global background color for active items (e.g., navs or dropdowns).\n@component-active-bg:       @brand-primary;\n\n//** Width of the `border` for generating carets that indicate dropdowns.\n@caret-width-base:          4px;\n//** Carets increase slightly in size for larger components.\n@caret-width-large:         5px;\n\n\n//== Tables\n//\n//## Customizes the `.table` component with basic values, each used across all table variations.\n\n//** Padding for `<th>`s and `<td>`s.\n@table-cell-padding:            8px;\n//** Padding for cells in `.table-condensed`.\n@table-condensed-cell-padding:  5px;\n\n//** Default background color used for all tables.\n@table-bg:                      transparent;\n//** Background color used for `.table-striped`.\n@table-bg-accent:               #f9f9f9;\n//** Background color used for `.table-hover`.\n@table-bg-hover:                #f5f5f5;\n@table-bg-active:               @table-bg-hover;\n\n//** Border color for table and cell borders.\n@table-border-color:            #ddd;\n\n\n//== Buttons\n//\n//## For each of Bootstrap's buttons, define text, background and border color.\n\n@btn-font-weight:                normal;\n\n@btn-default-color:              #333;\n@btn-default-bg:                 #fff;\n@btn-default-border:             #ccc;\n\n@btn-primary-color:              #fff;\n@btn-primary-bg:                 @brand-primary;\n@btn-primary-border:             darken(@btn-primary-bg, 5%);\n\n@btn-success-color:              #fff;\n@btn-success-bg:                 @brand-success;\n@btn-success-border:             darken(@btn-success-bg, 5%);\n\n@btn-info-color:                 #fff;\n@btn-info-bg:                    @brand-info;\n@btn-info-border:                darken(@btn-info-bg, 5%);\n\n@btn-warning-color:              #fff;\n@btn-warning-bg:                 @brand-warning;\n@btn-warning-border:             darken(@btn-warning-bg, 5%);\n\n@btn-danger-color:               #fff;\n@btn-danger-bg:                  @brand-danger;\n@btn-danger-border:              darken(@btn-danger-bg, 5%);\n\n@btn-link-disabled-color:        @gray-light;\n\n// Allows for customizing button radius independently from global border radius\n@btn-border-radius-base:         @border-radius-base;\n@btn-border-radius-large:        @border-radius-large;\n@btn-border-radius-small:        @border-radius-small;\n\n\n//== Forms\n//\n//##\n\n//** `<input>` background color\n@input-bg:                       #fff;\n//** `<input disabled>` background color\n@input-bg-disabled:              @gray-lighter;\n\n//** Text color for `<input>`s\n@input-color:                    @gray;\n//** `<input>` border color\n@input-border:                   #ccc;\n\n// TODO: Rename `@input-border-radius` to `@input-border-radius-base` in v4\n//** Default `.form-control` border radius\n// This has no effect on `<select>`s in some browsers, due to the limited stylability of `<select>`s in CSS.\n@input-border-radius:            @border-radius-base;\n//** Large `.form-control` border radius\n@input-border-radius-large:      @border-radius-large;\n//** Small `.form-control` border radius\n@input-border-radius-small:      @border-radius-small;\n\n//** Border color for inputs on focus\n@input-border-focus:             #66afe9;\n\n//** Placeholder text color\n@input-color-placeholder:        #999;\n\n//** Default `.form-control` height\n@input-height-base:              (@line-height-computed + (@padding-base-vertical * 2) + 2);\n//** Large `.form-control` height\n@input-height-large:             (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2);\n//** Small `.form-control` height\n@input-height-small:             (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2);\n\n//** `.form-group` margin\n@form-group-margin-bottom:       15px;\n\n@legend-color:                   @gray-dark;\n@legend-border-color:            #e5e5e5;\n\n//** Background color for textual input addons\n@input-group-addon-bg:           @gray-lighter;\n//** Border color for textual input addons\n@input-group-addon-border-color: @input-border;\n\n//** Disabled cursor for form controls and buttons.\n@cursor-disabled:                not-allowed;\n\n\n//== Dropdowns\n//\n//## Dropdown menu container and contents.\n\n//** Background for the dropdown menu.\n@dropdown-bg:                    #fff;\n//** Dropdown menu `border-color`.\n@dropdown-border:                rgba(0, 0, 0, .15);\n//** Dropdown menu `border-color` **for IE8**.\n@dropdown-fallback-border:       #ccc;\n//** Divider color for between dropdown items.\n@dropdown-divider-bg:            #e5e5e5;\n\n//** Dropdown link text color.\n@dropdown-link-color:            @gray-dark;\n//** Hover color for dropdown links.\n@dropdown-link-hover-color:      darken(@gray-dark, 5%);\n//** Hover background for dropdown links.\n@dropdown-link-hover-bg:         #f5f5f5;\n\n//** Active dropdown menu item text color.\n@dropdown-link-active-color:     @component-active-color;\n//** Active dropdown menu item background color.\n@dropdown-link-active-bg:        @component-active-bg;\n\n//** Disabled dropdown menu item background color.\n@dropdown-link-disabled-color:   @gray-light;\n\n//** Text color for headers within dropdown menus.\n@dropdown-header-color:          @gray-light;\n\n//** Deprecated `@dropdown-caret-color` as of v3.1.0\n@dropdown-caret-color:           #000;\n\n\n//-- Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n//\n// Note: These variables are not generated into the Customizer.\n\n@zindex-navbar:            1000;\n@zindex-dropdown:          1000;\n@zindex-popover:           1060;\n@zindex-tooltip:           1070;\n@zindex-navbar-fixed:      1030;\n@zindex-modal-background:  1040;\n@zindex-modal:             1050;\n\n\n//== Media queries breakpoints\n//\n//## Define the breakpoints at which your layout will change, adapting to different screen sizes.\n\n// Extra small screen / phone\n//** Deprecated `@screen-xs` as of v3.0.1\n@screen-xs:                  480px;\n//** Deprecated `@screen-xs-min` as of v3.2.0\n@screen-xs-min:              @screen-xs;\n//** Deprecated `@screen-phone` as of v3.0.1\n@screen-phone:               @screen-xs-min;\n\n// Small screen / tablet\n//** Deprecated `@screen-sm` as of v3.0.1\n@screen-sm:                  768px;\n@screen-sm-min:              @screen-sm;\n//** Deprecated `@screen-tablet` as of v3.0.1\n@screen-tablet:              @screen-sm-min;\n\n// Medium screen / desktop\n//** Deprecated `@screen-md` as of v3.0.1\n@screen-md:                  992px;\n@screen-md-min:              @screen-md;\n//** Deprecated `@screen-desktop` as of v3.0.1\n@screen-desktop:             @screen-md-min;\n\n// Large screen / wide desktop\n//** Deprecated `@screen-lg` as of v3.0.1\n@screen-lg:                  1200px;\n@screen-lg-min:              @screen-lg;\n//** Deprecated `@screen-lg-desktop` as of v3.0.1\n@screen-lg-desktop:          @screen-lg-min;\n\n// So media queries don't overlap when required, provide a maximum\n@screen-xs-max:              (@screen-sm-min - 1);\n@screen-sm-max:              (@screen-md-min - 1);\n@screen-md-max:              (@screen-lg-min - 1);\n\n\n//== Grid system\n//\n//## Define your custom responsive grid.\n\n//** Number of columns in the grid.\n@grid-columns:              12;\n//** Padding between columns. Gets divided in half for the left and right.\n@grid-gutter-width:         30px;\n// Navbar collapse\n//** Point at which the navbar becomes uncollapsed.\n@grid-float-breakpoint:     @screen-sm-min;\n//** Point at which the navbar begins collapsing.\n@grid-float-breakpoint-max: (@grid-float-breakpoint - 1);\n\n\n//== Container sizes\n//\n//## Define the maximum width of `.container` for different screen sizes.\n\n// Small screen / tablet\n@container-tablet:             (720px + @grid-gutter-width);\n//** For `@screen-sm-min` and up.\n@container-sm:                 @container-tablet;\n\n// Medium screen / desktop\n@container-desktop:            (940px + @grid-gutter-width);\n//** For `@screen-md-min` and up.\n@container-md:                 @container-desktop;\n\n// Large screen / wide desktop\n@container-large-desktop:      (1140px + @grid-gutter-width);\n//** For `@screen-lg-min` and up.\n@container-lg:                 @container-large-desktop;\n\n\n//== Navbar\n//\n//##\n\n// Basics of a navbar\n@navbar-height:                    50px;\n@navbar-margin-bottom:             @line-height-computed;\n@navbar-border-radius:             @border-radius-base;\n@navbar-padding-horizontal:        floor((@grid-gutter-width / 2));\n@navbar-padding-vertical:          ((@navbar-height - @line-height-computed) / 2);\n@navbar-collapse-max-height:       340px;\n\n@navbar-default-color:             #777;\n@navbar-default-bg:                #f8f8f8;\n@navbar-default-border:            darken(@navbar-default-bg, 6.5%);\n\n// Navbar links\n@navbar-default-link-color:                #777;\n@navbar-default-link-hover-color:          #333;\n@navbar-default-link-hover-bg:             transparent;\n@navbar-default-link-active-color:         #555;\n@navbar-default-link-active-bg:            darken(@navbar-default-bg, 6.5%);\n@navbar-default-link-disabled-color:       #ccc;\n@navbar-default-link-disabled-bg:          transparent;\n\n// Navbar brand label\n@navbar-default-brand-color:               @navbar-default-link-color;\n@navbar-default-brand-hover-color:         darken(@navbar-default-brand-color, 10%);\n@navbar-default-brand-hover-bg:            transparent;\n\n// Navbar toggle\n@navbar-default-toggle-hover-bg:           #ddd;\n@navbar-default-toggle-icon-bar-bg:        #888;\n@navbar-default-toggle-border-color:       #ddd;\n\n\n//=== Inverted navbar\n// Reset inverted navbar basics\n@navbar-inverse-color:                      lighten(@gray-light, 15%);\n@navbar-inverse-bg:                         #222;\n@navbar-inverse-border:                     darken(@navbar-inverse-bg, 10%);\n\n// Inverted navbar links\n@navbar-inverse-link-color:                 lighten(@gray-light, 15%);\n@navbar-inverse-link-hover-color:           #fff;\n@navbar-inverse-link-hover-bg:              transparent;\n@navbar-inverse-link-active-color:          @navbar-inverse-link-hover-color;\n@navbar-inverse-link-active-bg:             darken(@navbar-inverse-bg, 10%);\n@navbar-inverse-link-disabled-color:        #444;\n@navbar-inverse-link-disabled-bg:           transparent;\n\n// Inverted navbar brand label\n@navbar-inverse-brand-color:                @navbar-inverse-link-color;\n@navbar-inverse-brand-hover-color:          #fff;\n@navbar-inverse-brand-hover-bg:             transparent;\n\n// Inverted navbar toggle\n@navbar-inverse-toggle-hover-bg:            #333;\n@navbar-inverse-toggle-icon-bar-bg:         #fff;\n@navbar-inverse-toggle-border-color:        #333;\n\n\n//== Navs\n//\n//##\n\n//=== Shared nav styles\n@nav-link-padding:                          10px 15px;\n@nav-link-hover-bg:                         @gray-lighter;\n\n@nav-disabled-link-color:                   @gray-light;\n@nav-disabled-link-hover-color:             @gray-light;\n\n//== Tabs\n@nav-tabs-border-color:                     #ddd;\n\n@nav-tabs-link-hover-border-color:          @gray-lighter;\n\n@nav-tabs-active-link-hover-bg:             @body-bg;\n@nav-tabs-active-link-hover-color:          @gray;\n@nav-tabs-active-link-hover-border-color:   #ddd;\n\n@nav-tabs-justified-link-border-color:            #ddd;\n@nav-tabs-justified-active-link-border-color:     @body-bg;\n\n//== Pills\n@nav-pills-border-radius:                   @border-radius-base;\n@nav-pills-active-link-hover-bg:            @component-active-bg;\n@nav-pills-active-link-hover-color:         @component-active-color;\n\n\n//== Pagination\n//\n//##\n\n@pagination-color:                     @link-color;\n@pagination-bg:                        #fff;\n@pagination-border:                    #ddd;\n\n@pagination-hover-color:               @link-hover-color;\n@pagination-hover-bg:                  @gray-lighter;\n@pagination-hover-border:              #ddd;\n\n@pagination-active-color:              #fff;\n@pagination-active-bg:                 @brand-primary;\n@pagination-active-border:             @brand-primary;\n\n@pagination-disabled-color:            @gray-light;\n@pagination-disabled-bg:               #fff;\n@pagination-disabled-border:           #ddd;\n\n\n//== Pager\n//\n//##\n\n@pager-bg:                             @pagination-bg;\n@pager-border:                         @pagination-border;\n@pager-border-radius:                  15px;\n\n@pager-hover-bg:                       @pagination-hover-bg;\n\n@pager-active-bg:                      @pagination-active-bg;\n@pager-active-color:                   @pagination-active-color;\n\n@pager-disabled-color:                 @pagination-disabled-color;\n\n\n//== Jumbotron\n//\n//##\n\n@jumbotron-padding:              30px;\n@jumbotron-color:                inherit;\n@jumbotron-bg:                   @gray-lighter;\n@jumbotron-heading-color:        inherit;\n@jumbotron-font-size:            ceil((@font-size-base * 1.5));\n@jumbotron-heading-font-size:    ceil((@font-size-base * 4.5));\n\n\n//== Form states and alerts\n//\n//## Define colors for form feedback states and, by default, alerts.\n\n@state-success-text:             #3c763d;\n@state-success-bg:               #dff0d8;\n@state-success-border:           darken(spin(@state-success-bg, -10), 5%);\n\n@state-info-text:                #31708f;\n@state-info-bg:                  #d9edf7;\n@state-info-border:              darken(spin(@state-info-bg, -10), 7%);\n\n@state-warning-text:             #8a6d3b;\n@state-warning-bg:               #fcf8e3;\n@state-warning-border:           darken(spin(@state-warning-bg, -10), 5%);\n\n@state-danger-text:              #a94442;\n@state-danger-bg:                #f2dede;\n@state-danger-border:            darken(spin(@state-danger-bg, -10), 5%);\n\n\n//== Tooltips\n//\n//##\n\n//** Tooltip max width\n@tooltip-max-width:           200px;\n//** Tooltip text color\n@tooltip-color:               #fff;\n//** Tooltip background color\n@tooltip-bg:                  #000;\n@tooltip-opacity:             .9;\n\n//** Tooltip arrow width\n@tooltip-arrow-width:         5px;\n//** Tooltip arrow color\n@tooltip-arrow-color:         @tooltip-bg;\n\n\n//== Popovers\n//\n//##\n\n//** Popover body background color\n@popover-bg:                          #fff;\n//** Popover maximum width\n@popover-max-width:                   276px;\n//** Popover border color\n@popover-border-color:                rgba(0, 0, 0, .2);\n//** Popover fallback border color\n@popover-fallback-border-color:       #ccc;\n\n//** Popover title background color\n@popover-title-bg:                    darken(@popover-bg, 3%);\n\n//** Popover arrow width\n@popover-arrow-width:                 10px;\n//** Popover arrow color\n@popover-arrow-color:                 @popover-bg;\n\n//** Popover outer arrow width\n@popover-arrow-outer-width:           (@popover-arrow-width + 1);\n//** Popover outer arrow color\n@popover-arrow-outer-color:           fadein(@popover-border-color, 5%);\n//** Popover outer arrow fallback color\n@popover-arrow-outer-fallback-color:  darken(@popover-fallback-border-color, 20%);\n\n\n//== Labels\n//\n//##\n\n//** Default label background color\n@label-default-bg:            @gray-light;\n//** Primary label background color\n@label-primary-bg:            @brand-primary;\n//** Success label background color\n@label-success-bg:            @brand-success;\n//** Info label background color\n@label-info-bg:               @brand-info;\n//** Warning label background color\n@label-warning-bg:            @brand-warning;\n//** Danger label background color\n@label-danger-bg:             @brand-danger;\n\n//** Default label text color\n@label-color:                 #fff;\n//** Default text color of a linked label\n@label-link-hover-color:      #fff;\n\n\n//== Modals\n//\n//##\n\n//** Padding applied to the modal body\n@modal-inner-padding:         15px;\n\n//** Padding applied to the modal title\n@modal-title-padding:         15px;\n//** Modal title line-height\n@modal-title-line-height:     @line-height-base;\n\n//** Background color of modal content area\n@modal-content-bg:                             #fff;\n//** Modal content border color\n@modal-content-border-color:                   rgba(0, 0, 0, .2);\n//** Modal content border color **for IE8**\n@modal-content-fallback-border-color:          #999;\n\n//** Modal backdrop background color\n@modal-backdrop-bg:           #000;\n//** Modal backdrop opacity\n@modal-backdrop-opacity:      .5;\n//** Modal header border color\n@modal-header-border-color:   #e5e5e5;\n//** Modal footer border color\n@modal-footer-border-color:   @modal-header-border-color;\n\n@modal-lg:                    900px;\n@modal-md:                    600px;\n@modal-sm:                    300px;\n\n\n//== Alerts\n//\n//## Define alert colors, border radius, and padding.\n\n@alert-padding:               15px;\n@alert-border-radius:         @border-radius-base;\n@alert-link-font-weight:      bold;\n\n@alert-success-bg:            @state-success-bg;\n@alert-success-text:          @state-success-text;\n@alert-success-border:        @state-success-border;\n\n@alert-info-bg:               @state-info-bg;\n@alert-info-text:             @state-info-text;\n@alert-info-border:           @state-info-border;\n\n@alert-warning-bg:            @state-warning-bg;\n@alert-warning-text:          @state-warning-text;\n@alert-warning-border:        @state-warning-border;\n\n@alert-danger-bg:             @state-danger-bg;\n@alert-danger-text:           @state-danger-text;\n@alert-danger-border:         @state-danger-border;\n\n\n//== Progress bars\n//\n//##\n\n//** Background color of the whole progress component\n@progress-bg:                 #f5f5f5;\n//** Progress bar text color\n@progress-bar-color:          #fff;\n//** Variable for setting rounded corners on progress bar.\n@progress-border-radius:      @border-radius-base;\n\n//** Default progress bar color\n@progress-bar-bg:             @brand-primary;\n//** Success progress bar color\n@progress-bar-success-bg:     @brand-success;\n//** Warning progress bar color\n@progress-bar-warning-bg:     @brand-warning;\n//** Danger progress bar color\n@progress-bar-danger-bg:      @brand-danger;\n//** Info progress bar color\n@progress-bar-info-bg:        @brand-info;\n\n\n//== List group\n//\n//##\n\n//** Background color on `.list-group-item`\n@list-group-bg:                 #fff;\n//** `.list-group-item` border color\n@list-group-border:             #ddd;\n//** List group border radius\n@list-group-border-radius:      @border-radius-base;\n\n//** Background color of single list items on hover\n@list-group-hover-bg:           #f5f5f5;\n//** Text color of active list items\n@list-group-active-color:       @component-active-color;\n//** Background color of active list items\n@list-group-active-bg:          @component-active-bg;\n//** Border color of active list elements\n@list-group-active-border:      @list-group-active-bg;\n//** Text color for content within active list items\n@list-group-active-text-color:  lighten(@list-group-active-bg, 40%);\n\n//** Text color of disabled list items\n@list-group-disabled-color:      @gray-light;\n//** Background color of disabled list items\n@list-group-disabled-bg:         @gray-lighter;\n//** Text color for content within disabled list items\n@list-group-disabled-text-color: @list-group-disabled-color;\n\n@list-group-link-color:         #555;\n@list-group-link-hover-color:   @list-group-link-color;\n@list-group-link-heading-color: #333;\n\n\n//== Panels\n//\n//##\n\n@panel-bg:                    #fff;\n@panel-body-padding:          15px;\n@panel-heading-padding:       10px 15px;\n@panel-footer-padding:        @panel-heading-padding;\n@panel-border-radius:         @border-radius-base;\n\n//** Border color for elements within panels\n@panel-inner-border:          #ddd;\n@panel-footer-bg:             #f5f5f5;\n\n@panel-default-text:          @gray-dark;\n@panel-default-border:        #ddd;\n@panel-default-heading-bg:    #f5f5f5;\n\n@panel-primary-text:          #fff;\n@panel-primary-border:        @brand-primary;\n@panel-primary-heading-bg:    @brand-primary;\n\n@panel-success-text:          @state-success-text;\n@panel-success-border:        @state-success-border;\n@panel-success-heading-bg:    @state-success-bg;\n\n@panel-info-text:             @state-info-text;\n@panel-info-border:           @state-info-border;\n@panel-info-heading-bg:       @state-info-bg;\n\n@panel-warning-text:          @state-warning-text;\n@panel-warning-border:        @state-warning-border;\n@panel-warning-heading-bg:    @state-warning-bg;\n\n@panel-danger-text:           @state-danger-text;\n@panel-danger-border:         @state-danger-border;\n@panel-danger-heading-bg:     @state-danger-bg;\n\n\n//== Thumbnails\n//\n//##\n\n//** Padding around the thumbnail image\n@thumbnail-padding:           4px;\n//** Thumbnail background color\n@thumbnail-bg:                @body-bg;\n//** Thumbnail border color\n@thumbnail-border:            #ddd;\n//** Thumbnail border radius\n@thumbnail-border-radius:     @border-radius-base;\n\n//** Custom text color for thumbnail captions\n@thumbnail-caption-color:     @text-color;\n//** Padding around the thumbnail caption\n@thumbnail-caption-padding:   9px;\n\n\n//== Wells\n//\n//##\n\n@well-bg:                     #f5f5f5;\n@well-border:                 darken(@well-bg, 7%);\n\n\n//== Badges\n//\n//##\n\n@badge-color:                 #fff;\n//** Linked badge text color on hover\n@badge-link-hover-color:      #fff;\n@badge-bg:                    @gray-light;\n\n//** Badge text color in active nav link\n@badge-active-color:          @link-color;\n//** Badge background color in active nav link\n@badge-active-bg:             #fff;\n\n@badge-font-weight:           bold;\n@badge-line-height:           1;\n@badge-border-radius:         10px;\n\n\n//== Breadcrumbs\n//\n//##\n\n@breadcrumb-padding-vertical:   8px;\n@breadcrumb-padding-horizontal: 15px;\n//** Breadcrumb background color\n@breadcrumb-bg:                 #f5f5f5;\n//** Breadcrumb text color\n@breadcrumb-color:              #ccc;\n//** Text color of current page in the breadcrumb\n@breadcrumb-active-color:       @gray-light;\n//** Textual separator for between breadcrumb elements\n@breadcrumb-separator:          \"/\";\n\n\n//== Carousel\n//\n//##\n\n@carousel-text-shadow:                        0 1px 2px rgba(0, 0, 0, .6);\n\n@carousel-control-color:                      #fff;\n@carousel-control-width:                      15%;\n@carousel-control-opacity:                    .5;\n@carousel-control-font-size:                  20px;\n\n@carousel-indicator-active-bg:                #fff;\n@carousel-indicator-border-color:             #fff;\n\n@carousel-caption-color:                      #fff;\n\n\n//== Close\n//\n//##\n\n@close-font-weight:           bold;\n@close-color:                 #000;\n@close-text-shadow:           0 1px 0 #fff;\n\n\n//== Code\n//\n//##\n\n@code-color:                  #c7254e;\n@code-bg:                     #f9f2f4;\n\n@kbd-color:                   #fff;\n@kbd-bg:                      #333;\n\n@pre-bg:                      #f5f5f5;\n@pre-color:                   @gray-dark;\n@pre-border-color:            #ccc;\n@pre-scrollable-max-height:   340px;\n\n\n//== Type\n//\n//##\n\n//** Horizontal offset for forms and lists.\n@component-offset-horizontal: 180px;\n//** Text muted color\n@text-muted:                  @gray-light;\n//** Abbreviations and acronyms border color\n@abbr-border-color:           @gray-light;\n//** Headings small color\n@headings-small-color:        @gray-light;\n//** Blockquote small color\n@blockquote-small-color:      @gray-light;\n//** Blockquote font size\n@blockquote-font-size:        (@font-size-base * 1.25);\n//** Blockquote border color\n@blockquote-border-color:     @gray-lighter;\n//** Page header border color\n@page-header-border-color:    @gray-lighter;\n//** Width of horizontal description list titles\n@dl-horizontal-offset:        @component-offset-horizontal;\n//** Point at which .dl-horizontal becomes horizontal\n@dl-horizontal-breakpoint:    @grid-float-breakpoint;\n//** Horizontal line color.\n@hr-border:                   @gray-lighter;\n"
  },
  {
    "path": "lib/bootstrap3/wells.less",
    "content": "//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n  min-height: 20px;\n  padding: 19px;\n  margin-bottom: 20px;\n  background-color: @well-bg;\n  border: 1px solid @well-border;\n  border-radius: @border-radius-base;\n  .box-shadow(inset 0 1px 1px rgba(0, 0, 0, .05));\n  blockquote {\n    border-color: #ddd;\n    border-color: rgba(0, 0, 0, .15);\n  }\n}\n\n// Sizes\n.well-lg {\n  padding: 24px;\n  border-radius: @border-radius-large;\n}\n.well-sm {\n  padding: 9px;\n  border-radius: @border-radius-small;\n}\n"
  },
  {
    "path": "lib/bootstrap4/_alert.scss",
    "content": "//\n// Base styles\n//\n\n.alert {\n  position: relative;\n  padding: $alert-padding-y $alert-padding-x;\n  margin-bottom: $alert-margin-bottom;\n  border: $alert-border-width solid transparent;\n  @include border-radius($alert-border-radius);\n}\n\n// Headings for larger alerts\n.alert-heading {\n  // Specified to prevent conflicts of changing $headings-color\n  color: inherit;\n}\n\n// Provide class for links that match alerts\n.alert-link {\n  font-weight: $alert-link-font-weight;\n}\n\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissible {\n  padding-right: $close-font-size + $alert-padding-x * 2;\n\n  // Adjust close link position\n  .close {\n    position: absolute;\n    top: 0;\n    right: 0;\n    z-index: 2;\n    padding: $alert-padding-y $alert-padding-x;\n    color: inherit;\n  }\n}\n\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n@each $color, $value in $theme-colors {\n  .alert-#{$color} {\n    @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/_badge.scss",
    "content": "// Base class\n//\n// Requires one of the contextual, color modifier classes for `color` and\n// `background-color`.\n\n.badge {\n  display: inline-block;\n  padding: $badge-padding-y $badge-padding-x;\n  @include font-size($badge-font-size);\n  font-weight: $badge-font-weight;\n  line-height: 1;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  @include border-radius($badge-border-radius);\n  @include transition($badge-transition);\n\n  @at-root a#{&} {\n    @include hover-focus() {\n      text-decoration: none;\n    }\n  }\n\n  // Empty badges collapse automatically\n  &:empty {\n    display: none;\n  }\n}\n\n// Quick fix for badges in buttons\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n\n// Pill badges\n//\n// Make them extra rounded with a modifier to replace v3's badges.\n\n.badge-pill {\n  padding-right: $badge-pill-padding-x;\n  padding-left: $badge-pill-padding-x;\n  @include border-radius($badge-pill-border-radius);\n}\n\n// Colors\n//\n// Contextual variations (linked badges get darker on :hover).\n\n@each $color, $value in $theme-colors {\n  .badge-#{$color} {\n    @include badge-variant($value);\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/_breadcrumb.scss",
    "content": ".breadcrumb {\n  display: flex;\n  flex-wrap: wrap;\n  padding: $breadcrumb-padding-y $breadcrumb-padding-x;\n  margin-bottom: $breadcrumb-margin-bottom;\n  @include font-size($breadcrumb-font-size);\n  list-style: none;\n  background-color: $breadcrumb-bg;\n  @include border-radius($breadcrumb-border-radius);\n}\n\n.breadcrumb-item {\n  // The separator between breadcrumbs (by default, a forward-slash: \"/\")\n  + .breadcrumb-item {\n    padding-left: $breadcrumb-item-padding;\n\n    &::before {\n      float: left; // Suppress inline spacings and underlining of the separator\n      padding-right: $breadcrumb-item-padding;\n      color: $breadcrumb-divider-color;\n      content: escape-svg($breadcrumb-divider);\n    }\n  }\n\n  // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built\n  // without `<ul>`s. The `::before` pseudo-element generates an element\n  // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.\n  //\n  // To trick IE into suppressing the underline, we give the pseudo-element an\n  // underline and then immediately remove it.\n  + .breadcrumb-item:hover::before {\n    text-decoration: underline;\n  }\n  // stylelint-disable-next-line no-duplicate-selectors\n  + .breadcrumb-item:hover::before {\n    text-decoration: none;\n  }\n\n  &.active {\n    color: $breadcrumb-active-color;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/_button-group.scss",
    "content": "// stylelint-disable selector-no-qualifying-type\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-flex;\n  vertical-align: middle; // match .btn alignment given font-size hack above\n\n  > .btn {\n    position: relative;\n    flex: 1 1 auto;\n\n    // Bring the hover, focused, and \"active\" buttons to the front to overlay\n    // the borders properly\n    @include hover() {\n      z-index: 1;\n    }\n    &:focus,\n    &:active,\n    &.active {\n      z-index: 1;\n    }\n  }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n\n  .input-group {\n    width: auto;\n  }\n}\n\n.btn-group {\n  // Prevent double borders when buttons are next to each other\n  > .btn:not(:first-child),\n  > .btn-group:not(:first-child) {\n    margin-left: -$btn-border-width;\n  }\n\n  // Reset rounded corners\n  > .btn:not(:last-child):not(.dropdown-toggle),\n  > .btn-group:not(:last-child) > .btn {\n    @include border-right-radius(0);\n  }\n\n  > .btn:not(:first-child),\n  > .btn-group:not(:first-child) > .btn {\n    @include border-left-radius(0);\n  }\n}\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n//\n// Split button dropdowns\n//\n\n.dropdown-toggle-split {\n  padding-right: $btn-padding-x * .75;\n  padding-left: $btn-padding-x * .75;\n\n  &::after,\n  .dropup &::after,\n  .dropright &::after {\n    margin-left: 0;\n  }\n\n  .dropleft &::before {\n    margin-right: 0;\n  }\n}\n\n.btn-sm + .dropdown-toggle-split {\n  padding-right: $btn-padding-x-sm * .75;\n  padding-left: $btn-padding-x-sm * .75;\n}\n\n.btn-lg + .dropdown-toggle-split {\n  padding-right: $btn-padding-x-lg * .75;\n  padding-left: $btn-padding-x-lg * .75;\n}\n\n\n// The clickable button for toggling the menu\n// Set the same inset shadow as the :active state\n.btn-group.show .dropdown-toggle {\n  @include box-shadow($btn-active-box-shadow);\n\n  // Show no shadow for `.btn-link` since it has no other button styles.\n  &.btn-link {\n    @include box-shadow(none);\n  }\n}\n\n\n//\n// Vertical button groups\n//\n\n.btn-group-vertical {\n  flex-direction: column;\n  align-items: flex-start;\n  justify-content: center;\n\n  > .btn,\n  > .btn-group {\n    width: 100%;\n  }\n\n  > .btn:not(:first-child),\n  > .btn-group:not(:first-child) {\n    margin-top: -$btn-border-width;\n  }\n\n  // Reset rounded corners\n  > .btn:not(:last-child):not(.dropdown-toggle),\n  > .btn-group:not(:last-child) > .btn {\n    @include border-bottom-radius(0);\n  }\n\n  > .btn:not(:first-child),\n  > .btn-group:not(:first-child) > .btn {\n    @include border-top-radius(0);\n  }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n.btn-group-toggle {\n  > .btn,\n  > .btn-group > .btn {\n    margin-bottom: 0; // Override default `<label>` value\n\n    input[type=\"radio\"],\n    input[type=\"checkbox\"] {\n      position: absolute;\n      clip: rect(0, 0, 0, 0);\n      pointer-events: none;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/_buttons.scss",
    "content": "// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.btn {\n  display: inline-block;\n  font-family: $btn-font-family;\n  font-weight: $btn-font-weight;\n  color: $body-color;\n  text-align: center;\n  text-decoration: if($link-decoration == none, null, none);\n  white-space: $btn-white-space;\n  vertical-align: middle;\n  user-select: none;\n  background-color: transparent;\n  border: $btn-border-width solid transparent;\n  @include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-line-height, $btn-border-radius);\n  @include transition($btn-transition);\n\n  @include hover() {\n    color: $body-color;\n    text-decoration: none;\n  }\n\n  &:focus,\n  &.focus {\n    outline: 0;\n    box-shadow: $btn-focus-box-shadow;\n  }\n\n  // Disabled comes first so active can properly restyle\n  &.disabled,\n  &:disabled {\n    opacity: $btn-disabled-opacity;\n    @include box-shadow(none);\n  }\n\n  &:not(:disabled):not(.disabled) {\n    cursor: if($enable-pointer-cursor-for-buttons, pointer, null);\n\n    &:active,\n    &.active {\n      @include box-shadow($btn-active-box-shadow);\n\n      &:focus {\n        @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);\n      }\n    }\n  }\n}\n\n// Future-proof disabling of clicks on `<a>` elements\na.btn.disabled,\nfieldset:disabled a.btn {\n  pointer-events: none;\n}\n\n\n//\n// Alternate buttons\n//\n\n@each $color, $value in $theme-colors {\n  .btn-#{$color} {\n    @include button-variant($value, $value);\n  }\n}\n\n@each $color, $value in $theme-colors {\n  .btn-outline-#{$color} {\n    @include button-outline-variant($value);\n  }\n}\n\n\n//\n// Link buttons\n//\n\n// Make a button look and behave like a link\n.btn-link {\n  font-weight: $font-weight-normal;\n  color: $link-color;\n  text-decoration: $link-decoration;\n\n  @include hover() {\n    color: $link-hover-color;\n    text-decoration: $link-hover-decoration;\n  }\n\n  &:focus,\n  &.focus {\n    text-decoration: $link-hover-decoration;\n  }\n\n  &:disabled,\n  &.disabled {\n    color: $btn-link-disabled-color;\n    pointer-events: none;\n  }\n\n  // No need for an active state here\n}\n\n\n//\n// Button Sizes\n//\n\n.btn-lg {\n  @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);\n}\n\n.btn-sm {\n  @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);\n}\n\n\n//\n// Block button\n//\n\n.btn-block {\n  display: block;\n  width: 100%;\n\n  // Vertically space out multiple block buttons\n  + .btn-block {\n    margin-top: $btn-block-spacing-y;\n  }\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n  &.btn-block {\n    width: 100%;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/_card.scss",
    "content": "//\n// Base styles\n//\n\n.card {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106\n  height: $card-height;\n  word-wrap: break-word;\n  background-color: $card-bg;\n  background-clip: border-box;\n  border: $card-border-width solid $card-border-color;\n  @include border-radius($card-border-radius);\n\n  > hr {\n    margin-right: 0;\n    margin-left: 0;\n  }\n\n  > .list-group {\n    border-top: inherit;\n    border-bottom: inherit;\n\n    &:first-child {\n      border-top-width: 0;\n      @include border-top-radius($card-inner-border-radius);\n    }\n\n    &:last-child  {\n      border-bottom-width: 0;\n      @include border-bottom-radius($card-inner-border-radius);\n    }\n  }\n\n  // Due to specificity of the above selector (`.card > .list-group`), we must\n  // use a child selector here to prevent double borders.\n  > .card-header + .list-group,\n  > .list-group + .card-footer {\n    border-top: 0;\n  }\n}\n\n.card-body {\n  // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n  // as much space as possible, ensuring footers are aligned to the bottom.\n  flex: 1 1 auto;\n  // Workaround for the image size bug in IE\n  // See: https://github.com/twbs/bootstrap/pull/28855\n  min-height: 1px;\n  padding: $card-spacer-x;\n  color: $card-color;\n}\n\n.card-title {\n  margin-bottom: $card-spacer-y;\n}\n\n.card-subtitle {\n  margin-top: -$card-spacer-y / 2;\n  margin-bottom: 0;\n}\n\n.card-text:last-child {\n  margin-bottom: 0;\n}\n\n.card-link {\n  @include hover() {\n    text-decoration: none;\n  }\n\n  + .card-link {\n    margin-left: $card-spacer-x;\n  }\n}\n\n//\n// Optional textual caps\n//\n\n.card-header {\n  padding: $card-spacer-y $card-spacer-x;\n  margin-bottom: 0; // Removes the default margin-bottom of <hN>\n  color: $card-cap-color;\n  background-color: $card-cap-bg;\n  border-bottom: $card-border-width solid $card-border-color;\n\n  &:first-child {\n    @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);\n  }\n}\n\n.card-footer {\n  padding: $card-spacer-y $card-spacer-x;\n  color: $card-cap-color;\n  background-color: $card-cap-bg;\n  border-top: $card-border-width solid $card-border-color;\n\n  &:last-child {\n    @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);\n  }\n}\n\n\n//\n// Header navs\n//\n\n.card-header-tabs {\n  margin-right: -$card-spacer-x / 2;\n  margin-bottom: -$card-spacer-y;\n  margin-left: -$card-spacer-x / 2;\n  border-bottom: 0;\n}\n\n.card-header-pills {\n  margin-right: -$card-spacer-x / 2;\n  margin-left: -$card-spacer-x / 2;\n}\n\n// Card image\n.card-img-overlay {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: $card-img-overlay-padding;\n  @include border-radius($card-inner-border-radius);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n  flex-shrink: 0; // For IE: https://github.com/twbs/bootstrap/issues/29396\n  width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n}\n\n.card-img,\n.card-img-top {\n  @include border-top-radius($card-inner-border-radius);\n}\n\n.card-img,\n.card-img-bottom {\n  @include border-bottom-radius($card-inner-border-radius);\n}\n\n\n// Card deck\n\n.card-deck {\n  .card {\n    margin-bottom: $card-deck-margin;\n  }\n\n  @include media-breakpoint-up(sm) {\n    display: flex;\n    flex-flow: row wrap;\n    margin-right: -$card-deck-margin;\n    margin-left: -$card-deck-margin;\n\n    .card {\n      // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n      flex: 1 0 0%;\n      margin-right: $card-deck-margin;\n      margin-bottom: 0; // Override the default\n      margin-left: $card-deck-margin;\n    }\n  }\n}\n\n\n//\n// Card groups\n//\n\n.card-group {\n  // The child selector allows nested `.card` within `.card-group`\n  // to display properly.\n  > .card {\n    margin-bottom: $card-group-margin;\n  }\n\n  @include media-breakpoint-up(sm) {\n    display: flex;\n    flex-flow: row wrap;\n    // The child selector allows nested `.card` within `.card-group`\n    // to display properly.\n    > .card {\n      // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n      flex: 1 0 0%;\n      margin-bottom: 0;\n\n      + .card {\n        margin-left: 0;\n        border-left: 0;\n      }\n\n      // Handle rounded corners\n      @if $enable-rounded {\n        &:not(:last-child) {\n          @include border-right-radius(0);\n\n          .card-img-top,\n          .card-header {\n            // stylelint-disable-next-line property-disallowed-list\n            border-top-right-radius: 0;\n          }\n          .card-img-bottom,\n          .card-footer {\n            // stylelint-disable-next-line property-disallowed-list\n            border-bottom-right-radius: 0;\n          }\n        }\n\n        &:not(:first-child) {\n          @include border-left-radius(0);\n\n          .card-img-top,\n          .card-header {\n            // stylelint-disable-next-line property-disallowed-list\n            border-top-left-radius: 0;\n          }\n          .card-img-bottom,\n          .card-footer {\n            // stylelint-disable-next-line property-disallowed-list\n            border-bottom-left-radius: 0;\n          }\n        }\n      }\n    }\n  }\n}\n\n\n//\n// Columns\n//\n\n.card-columns {\n  .card {\n    margin-bottom: $card-columns-margin;\n  }\n\n  @include media-breakpoint-up(sm) {\n    column-count: $card-columns-count;\n    column-gap: $card-columns-gap;\n    orphans: 1;\n    widows: 1;\n\n    .card {\n      display: inline-block; // Don't let them vertically span multiple columns\n      width: 100%; // Don't let their width change\n    }\n  }\n}\n\n\n//\n// Accordion\n//\n\n.accordion {\n  overflow-anchor: none;\n\n  > .card {\n    overflow: hidden;\n\n    &:not(:last-of-type) {\n      border-bottom: 0;\n      @include border-bottom-radius(0);\n    }\n\n    &:not(:first-of-type) {\n      @include border-top-radius(0);\n    }\n\n    > .card-header {\n      @include border-radius(0);\n      margin-bottom: -$card-border-width;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/_carousel.scss",
    "content": "// Notes on the classes:\n//\n// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)\n//    even when their scroll action started on a carousel, but for compatibility (with Firefox)\n//    we're preventing all actions instead\n// 2. The .carousel-item-left and .carousel-item-right is used to indicate where\n//    the active slide is heading.\n// 3. .active.carousel-item is the current slide.\n// 4. .active.carousel-item-left and .active.carousel-item-right is the current\n//    slide in its in-transition state. Only one of these occurs at a time.\n// 5. .carousel-item-next.carousel-item-left and .carousel-item-prev.carousel-item-right\n//    is the upcoming slide in transition.\n\n.carousel {\n  position: relative;\n}\n\n.carousel.pointer-event {\n  touch-action: pan-y;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n  @include clearfix();\n}\n\n.carousel-item {\n  position: relative;\n  display: none;\n  float: left;\n  width: 100%;\n  margin-right: -100%;\n  backface-visibility: hidden;\n  @include transition($carousel-transition);\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n  display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n  transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n  transform: translateX(-100%);\n}\n\n\n//\n// Alternate transitions\n//\n\n.carousel-fade {\n  .carousel-item {\n    opacity: 0;\n    transition-property: opacity;\n    transform: none;\n  }\n\n  .carousel-item.active,\n  .carousel-item-next.carousel-item-left,\n  .carousel-item-prev.carousel-item-right {\n    z-index: 1;\n    opacity: 1;\n  }\n\n  .active.carousel-item-left,\n  .active.carousel-item-right {\n    z-index: 0;\n    opacity: 0;\n    @include transition(opacity 0s $carousel-transition-duration);\n  }\n}\n\n\n//\n// Left/right controls for nav\n//\n\n.carousel-control-prev,\n.carousel-control-next {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  z-index: 1;\n  // Use flex for alignment (1-3)\n  display: flex; // 1. allow flex styles\n  align-items: center; // 2. vertically center contents\n  justify-content: center; // 3. horizontally center contents\n  width: $carousel-control-width;\n  color: $carousel-control-color;\n  text-align: center;\n  opacity: $carousel-control-opacity;\n  @include transition($carousel-control-transition);\n\n  // Hover/focus state\n  @include hover-focus() {\n    color: $carousel-control-color;\n    text-decoration: none;\n    outline: 0;\n    opacity: $carousel-control-hover-opacity;\n  }\n}\n.carousel-control-prev {\n  left: 0;\n  @if $enable-gradients {\n    background-image: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));\n  }\n}\n.carousel-control-next {\n  right: 0;\n  @if $enable-gradients {\n    background-image: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));\n  }\n}\n\n// Icons for within\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n  display: inline-block;\n  width: $carousel-control-icon-width;\n  height: $carousel-control-icon-width;\n  background: 50% / 100% 100% no-repeat;\n}\n.carousel-control-prev-icon {\n  background-image: escape-svg($carousel-control-prev-icon-bg);\n}\n.carousel-control-next-icon {\n  background-image: escape-svg($carousel-control-next-icon-bg);\n}\n\n\n// Optional indicator pips\n//\n// Add an ordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 15;\n  display: flex;\n  justify-content: center;\n  padding-left: 0; // override <ol> default\n  // Use the .carousel-control's width as margin so we don't overlay those\n  margin-right: $carousel-control-width;\n  margin-left: $carousel-control-width;\n  list-style: none;\n\n  li {\n    box-sizing: content-box;\n    flex: 0 1 auto;\n    width: $carousel-indicator-width;\n    height: $carousel-indicator-height;\n    margin-right: $carousel-indicator-spacer;\n    margin-left: $carousel-indicator-spacer;\n    text-indent: -999px;\n    cursor: pointer;\n    background-color: $carousel-indicator-active-bg;\n    background-clip: padding-box;\n    // Use transparent borders to increase the hit area by 10px on top and bottom.\n    border-top: $carousel-indicator-hit-area-height solid transparent;\n    border-bottom: $carousel-indicator-hit-area-height solid transparent;\n    opacity: .5;\n    @include transition($carousel-indicator-transition);\n  }\n\n  .active {\n    opacity: 1;\n  }\n}\n\n\n// Optional captions\n//\n//\n\n.carousel-caption {\n  position: absolute;\n  right: (100% - $carousel-caption-width) / 2;\n  bottom: 20px;\n  left: (100% - $carousel-caption-width) / 2;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: $carousel-caption-color;\n  text-align: center;\n}\n"
  },
  {
    "path": "lib/bootstrap4/_close.scss",
    "content": ".close {\n  float: right;\n  @include font-size($close-font-size);\n  font-weight: $close-font-weight;\n  line-height: 1;\n  color: $close-color;\n  text-shadow: $close-text-shadow;\n  opacity: .5;\n\n  // Override <a>'s hover style\n  @include hover() {\n    color: $close-color;\n    text-decoration: none;\n  }\n\n  &:not(:disabled):not(.disabled) {\n    @include hover-focus() {\n      opacity: .75;\n    }\n  }\n}\n\n// Additional properties for button version\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n// stylelint-disable-next-line selector-no-qualifying-type\nbutton.close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n}\n\n// Future-proof disabling of clicks on `<a>` elements\n\n// stylelint-disable-next-line selector-no-qualifying-type\na.close.disabled {\n  pointer-events: none;\n}\n"
  },
  {
    "path": "lib/bootstrap4/_code.scss",
    "content": "// Inline code\ncode {\n  @include font-size($code-font-size);\n  color: $code-color;\n  word-wrap: break-word;\n\n  // Streamline the style when inside anchors to avoid broken underline and more\n  a > & {\n    color: inherit;\n  }\n}\n\n// User input typically entered via keyboard\nkbd {\n  padding: $kbd-padding-y $kbd-padding-x;\n  @include font-size($kbd-font-size);\n  color: $kbd-color;\n  background-color: $kbd-bg;\n  @include border-radius($border-radius-sm);\n  @include box-shadow($kbd-box-shadow);\n\n  kbd {\n    padding: 0;\n    @include font-size(100%);\n    font-weight: $nested-kbd-font-weight;\n    @include box-shadow(none);\n  }\n}\n\n// Blocks of code\npre {\n  display: block;\n  @include font-size($code-font-size);\n  color: $pre-color;\n\n  // Account for some code outputs that place code tags in pre tags\n  code {\n    @include font-size(inherit);\n    color: inherit;\n    word-break: normal;\n  }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n  max-height: $pre-scrollable-max-height;\n  overflow-y: scroll;\n}\n"
  },
  {
    "path": "lib/bootstrap4/_custom-forms.scss",
    "content": "// Embedded icons from Open Iconic.\n// Released under MIT and copyright 2014 Waybury.\n// https://useiconic.com/open\n\n\n// Checkboxes and radios\n//\n// Base class takes care of all the key behavioral aspects.\n\n.custom-control {\n  position: relative;\n  z-index: 1;\n  display: block;\n  min-height: $font-size-base * $line-height-base;\n  padding-left: $custom-control-gutter + $custom-control-indicator-size;\n  color-adjust: exact; // Keep themed appearance for print\n}\n\n.custom-control-inline {\n  display: inline-flex;\n  margin-right: $custom-control-spacer-x;\n}\n\n.custom-control-input {\n  position: absolute;\n  left: 0;\n  z-index: -1; // Put the input behind the label so it doesn't overlay text\n  width: $custom-control-indicator-size;\n  height: ($font-size-base * $line-height-base + $custom-control-indicator-size) / 2;\n  opacity: 0;\n\n  &:checked ~ .custom-control-label::before {\n    color: $custom-control-indicator-checked-color;\n    border-color: $custom-control-indicator-checked-border-color;\n    @include gradient-bg($custom-control-indicator-checked-bg);\n    @include box-shadow($custom-control-indicator-checked-box-shadow);\n  }\n\n  &:focus ~ .custom-control-label::before {\n    // the mixin is not used here to make sure there is feedback\n    @if $enable-shadows {\n      box-shadow: $input-box-shadow, $custom-control-indicator-focus-box-shadow;\n    } @else {\n      box-shadow: $custom-control-indicator-focus-box-shadow;\n    }\n  }\n\n  &:focus:not(:checked) ~ .custom-control-label::before {\n    border-color: $custom-control-indicator-focus-border-color;\n  }\n\n  &:not(:disabled):active ~ .custom-control-label::before {\n    color: $custom-control-indicator-active-color;\n    background-color: $custom-control-indicator-active-bg;\n    border-color: $custom-control-indicator-active-border-color;\n    @include box-shadow($custom-control-indicator-active-box-shadow);\n  }\n\n  // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247\n  &[disabled],\n  &:disabled {\n    ~ .custom-control-label {\n      color: $custom-control-label-disabled-color;\n\n      &::before {\n        background-color: $custom-control-indicator-disabled-bg;\n      }\n    }\n  }\n}\n\n// Custom control indicators\n//\n// Build the custom controls out of pseudo-elements.\n\n.custom-control-label {\n  position: relative;\n  margin-bottom: 0;\n  color: $custom-control-label-color;\n  vertical-align: top;\n  cursor: $custom-control-cursor;\n\n  // Background-color and (when enabled) gradient\n  &::before {\n    position: absolute;\n    top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;\n    left: -($custom-control-gutter + $custom-control-indicator-size);\n    display: block;\n    width: $custom-control-indicator-size;\n    height: $custom-control-indicator-size;\n    pointer-events: none;\n    content: \"\";\n    background-color: $custom-control-indicator-bg;\n    border: $custom-control-indicator-border-color solid $custom-control-indicator-border-width;\n    @include box-shadow($custom-control-indicator-box-shadow);\n  }\n\n  // Foreground (icon)\n  &::after {\n    position: absolute;\n    top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;\n    left: -($custom-control-gutter + $custom-control-indicator-size);\n    display: block;\n    width: $custom-control-indicator-size;\n    height: $custom-control-indicator-size;\n    content: \"\";\n    background: 50% / #{$custom-control-indicator-bg-size} no-repeat;\n  }\n}\n\n\n// Checkboxes\n//\n// Tweak just a few things for checkboxes.\n\n.custom-checkbox {\n  .custom-control-label::before {\n    @include border-radius($custom-checkbox-indicator-border-radius);\n  }\n\n  .custom-control-input:checked ~ .custom-control-label {\n    &::after {\n      background-image: escape-svg($custom-checkbox-indicator-icon-checked);\n    }\n  }\n\n  .custom-control-input:indeterminate ~ .custom-control-label {\n    &::before {\n      border-color: $custom-checkbox-indicator-indeterminate-border-color;\n      @include gradient-bg($custom-checkbox-indicator-indeterminate-bg);\n      @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);\n    }\n    &::after {\n      background-image: escape-svg($custom-checkbox-indicator-icon-indeterminate);\n    }\n  }\n\n  .custom-control-input:disabled {\n    &:checked ~ .custom-control-label::before {\n      @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n    }\n    &:indeterminate ~ .custom-control-label::before {\n      @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n    }\n  }\n}\n\n// Radios\n//\n// Tweak just a few things for radios.\n\n.custom-radio {\n  .custom-control-label::before {\n    // stylelint-disable-next-line property-disallowed-list\n    border-radius: $custom-radio-indicator-border-radius;\n  }\n\n  .custom-control-input:checked ~ .custom-control-label {\n    &::after {\n      background-image: escape-svg($custom-radio-indicator-icon-checked);\n    }\n  }\n\n  .custom-control-input:disabled {\n    &:checked ~ .custom-control-label::before {\n      @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n    }\n  }\n}\n\n\n// switches\n//\n// Tweak a few things for switches\n\n.custom-switch {\n  padding-left: $custom-switch-width + $custom-control-gutter;\n\n  .custom-control-label {\n    &::before {\n      left: -($custom-switch-width + $custom-control-gutter);\n      width: $custom-switch-width;\n      pointer-events: all;\n      // stylelint-disable-next-line property-disallowed-list\n      border-radius: $custom-switch-indicator-border-radius;\n    }\n\n    &::after {\n      top: add(($font-size-base * $line-height-base - $custom-control-indicator-size) / 2, $custom-control-indicator-border-width * 2);\n      left: add(-($custom-switch-width + $custom-control-gutter), $custom-control-indicator-border-width * 2);\n      width: $custom-switch-indicator-size;\n      height: $custom-switch-indicator-size;\n      background-color: $custom-control-indicator-border-color;\n      // stylelint-disable-next-line property-disallowed-list\n      border-radius: $custom-switch-indicator-border-radius;\n      @include transition(transform .15s ease-in-out, $custom-forms-transition);\n    }\n  }\n\n  .custom-control-input:checked ~ .custom-control-label {\n    &::after {\n      background-color: $custom-control-indicator-bg;\n      transform: translateX($custom-switch-width - $custom-control-indicator-size);\n    }\n  }\n\n  .custom-control-input:disabled {\n    &:checked ~ .custom-control-label::before {\n      @include gradient-bg($custom-control-indicator-checked-disabled-bg);\n    }\n  }\n}\n\n\n// Select\n//\n// Replaces the browser default select with a custom one, mostly pulled from\n// https://primer.github.io/.\n//\n\n.custom-select {\n  display: inline-block;\n  width: 100%;\n  height: $custom-select-height;\n  padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;\n  font-family: $custom-select-font-family;\n  @include font-size($custom-select-font-size);\n  font-weight: $custom-select-font-weight;\n  line-height: $custom-select-line-height;\n  color: $custom-select-color;\n  vertical-align: middle;\n  background: $custom-select-bg $custom-select-background;\n  border: $custom-select-border-width solid $custom-select-border-color;\n  @include border-radius($custom-select-border-radius, 0);\n  @include box-shadow($custom-select-box-shadow);\n  appearance: none;\n\n  &:focus {\n    border-color: $custom-select-focus-border-color;\n    outline: 0;\n    @if $enable-shadows {\n      @include box-shadow($custom-select-box-shadow, $custom-select-focus-box-shadow);\n    } @else {\n      // Avoid using mixin so we can pass custom focus shadow properly\n      box-shadow: $custom-select-focus-box-shadow;\n    }\n\n    &::-ms-value {\n      // For visual consistency with other platforms/browsers,\n      // suppress the default white text on blue background highlight given to\n      // the selected option text when the (still closed) <select> receives focus\n      // in IE and (under certain conditions) Edge.\n      // See https://github.com/twbs/bootstrap/issues/19398.\n      color: $input-color;\n      background-color: $input-bg;\n    }\n  }\n\n  &[multiple],\n  &[size]:not([size=\"1\"]) {\n    height: auto;\n    padding-right: $custom-select-padding-x;\n    background-image: none;\n  }\n\n  &:disabled {\n    color: $custom-select-disabled-color;\n    background-color: $custom-select-disabled-bg;\n  }\n\n  // Hides the default caret in IE11\n  &::-ms-expand {\n    display: none;\n  }\n\n  // Remove outline from select box in FF\n  &:-moz-focusring {\n    color: transparent;\n    text-shadow: 0 0 0 $custom-select-color;\n  }\n}\n\n.custom-select-sm {\n  height: $custom-select-height-sm;\n  padding-top: $custom-select-padding-y-sm;\n  padding-bottom: $custom-select-padding-y-sm;\n  padding-left: $custom-select-padding-x-sm;\n  @include font-size($custom-select-font-size-sm);\n}\n\n.custom-select-lg {\n  height: $custom-select-height-lg;\n  padding-top: $custom-select-padding-y-lg;\n  padding-bottom: $custom-select-padding-y-lg;\n  padding-left: $custom-select-padding-x-lg;\n  @include font-size($custom-select-font-size-lg);\n}\n\n\n// File\n//\n// Custom file input.\n\n.custom-file {\n  position: relative;\n  display: inline-block;\n  width: 100%;\n  height: $custom-file-height;\n  margin-bottom: 0;\n}\n\n.custom-file-input {\n  position: relative;\n  z-index: 2;\n  width: 100%;\n  height: $custom-file-height;\n  margin: 0;\n  overflow: hidden;\n  opacity: 0;\n\n  &:focus ~ .custom-file-label {\n    border-color: $custom-file-focus-border-color;\n    box-shadow: $custom-file-focus-box-shadow;\n  }\n\n  // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247\n  &[disabled] ~ .custom-file-label,\n  &:disabled ~ .custom-file-label {\n    background-color: $custom-file-disabled-bg;\n  }\n\n  @each $lang, $value in $custom-file-text {\n    &:lang(#{$lang}) ~ .custom-file-label::after {\n      content: $value;\n    }\n  }\n\n  ~ .custom-file-label[data-browse]::after {\n    content: attr(data-browse);\n  }\n}\n\n.custom-file-label {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1;\n  height: $custom-file-height;\n  padding: $custom-file-padding-y $custom-file-padding-x;\n  overflow: hidden;\n  font-family: $custom-file-font-family;\n  font-weight: $custom-file-font-weight;\n  line-height: $custom-file-line-height;\n  color: $custom-file-color;\n  background-color: $custom-file-bg;\n  border: $custom-file-border-width solid $custom-file-border-color;\n  @include border-radius($custom-file-border-radius);\n  @include box-shadow($custom-file-box-shadow);\n\n  &::after {\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    z-index: 3;\n    display: block;\n    height: $custom-file-height-inner;\n    padding: $custom-file-padding-y $custom-file-padding-x;\n    line-height: $custom-file-line-height;\n    color: $custom-file-button-color;\n    content: \"Browse\";\n    @include gradient-bg($custom-file-button-bg);\n    border-left: inherit;\n    @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);\n  }\n}\n\n// Range\n//\n// Style range inputs the same across browsers. Vendor-specific rules for pseudo\n// elements cannot be mixed. As such, there are no shared styles for focus or\n// active states on prefixed selectors.\n\n.custom-range {\n  width: 100%;\n  height: add($custom-range-thumb-height, $custom-range-thumb-focus-box-shadow-width * 2);\n  padding: 0; // Need to reset padding\n  background-color: transparent;\n  appearance: none;\n\n  &:focus {\n    outline: 0;\n\n    // Pseudo-elements must be split across multiple rulesets to have an effect.\n    // No box-shadow() mixin for focus accessibility.\n    &::-webkit-slider-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n    &::-moz-range-thumb     { box-shadow: $custom-range-thumb-focus-box-shadow; }\n    &::-ms-thumb            { box-shadow: $custom-range-thumb-focus-box-shadow; }\n  }\n\n  &::-moz-focus-outer {\n    border: 0;\n  }\n\n  &::-webkit-slider-thumb {\n    width: $custom-range-thumb-width;\n    height: $custom-range-thumb-height;\n    margin-top: ($custom-range-track-height - $custom-range-thumb-height) / 2; // Webkit specific\n    @include gradient-bg($custom-range-thumb-bg);\n    border: $custom-range-thumb-border;\n    @include border-radius($custom-range-thumb-border-radius);\n    @include box-shadow($custom-range-thumb-box-shadow);\n    @include transition($custom-forms-transition);\n    appearance: none;\n\n    &:active {\n      @include gradient-bg($custom-range-thumb-active-bg);\n    }\n  }\n\n  &::-webkit-slider-runnable-track {\n    width: $custom-range-track-width;\n    height: $custom-range-track-height;\n    color: transparent; // Why?\n    cursor: $custom-range-track-cursor;\n    background-color: $custom-range-track-bg;\n    border-color: transparent;\n    @include border-radius($custom-range-track-border-radius);\n    @include box-shadow($custom-range-track-box-shadow);\n  }\n\n  &::-moz-range-thumb {\n    width: $custom-range-thumb-width;\n    height: $custom-range-thumb-height;\n    @include gradient-bg($custom-range-thumb-bg);\n    border: $custom-range-thumb-border;\n    @include border-radius($custom-range-thumb-border-radius);\n    @include box-shadow($custom-range-thumb-box-shadow);\n    @include transition($custom-forms-transition);\n    appearance: none;\n\n    &:active {\n      @include gradient-bg($custom-range-thumb-active-bg);\n    }\n  }\n\n  &::-moz-range-track {\n    width: $custom-range-track-width;\n    height: $custom-range-track-height;\n    color: transparent;\n    cursor: $custom-range-track-cursor;\n    background-color: $custom-range-track-bg;\n    border-color: transparent; // Firefox specific?\n    @include border-radius($custom-range-track-border-radius);\n    @include box-shadow($custom-range-track-box-shadow);\n  }\n\n  &::-ms-thumb {\n    width: $custom-range-thumb-width;\n    height: $custom-range-thumb-height;\n    margin-top: 0; // Edge specific\n    margin-right: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\n    margin-left: $custom-range-thumb-focus-box-shadow-width;  // Workaround that overflowed box-shadow is hidden.\n    @include gradient-bg($custom-range-thumb-bg);\n    border: $custom-range-thumb-border;\n    @include border-radius($custom-range-thumb-border-radius);\n    @include box-shadow($custom-range-thumb-box-shadow);\n    @include transition($custom-forms-transition);\n    appearance: none;\n\n    &:active {\n      @include gradient-bg($custom-range-thumb-active-bg);\n    }\n  }\n\n  &::-ms-track {\n    width: $custom-range-track-width;\n    height: $custom-range-track-height;\n    color: transparent;\n    cursor: $custom-range-track-cursor;\n    background-color: transparent;\n    border-color: transparent;\n    border-width: $custom-range-thumb-height / 2;\n    @include box-shadow($custom-range-track-box-shadow);\n  }\n\n  &::-ms-fill-lower {\n    background-color: $custom-range-track-bg;\n    @include border-radius($custom-range-track-border-radius);\n  }\n\n  &::-ms-fill-upper {\n    margin-right: 15px; // arbitrary?\n    background-color: $custom-range-track-bg;\n    @include border-radius($custom-range-track-border-radius);\n  }\n\n  &:disabled {\n    &::-webkit-slider-thumb {\n      background-color: $custom-range-thumb-disabled-bg;\n    }\n\n    &::-webkit-slider-runnable-track {\n      cursor: default;\n    }\n\n    &::-moz-range-thumb {\n      background-color: $custom-range-thumb-disabled-bg;\n    }\n\n    &::-moz-range-track {\n      cursor: default;\n    }\n\n    &::-ms-thumb {\n      background-color: $custom-range-thumb-disabled-bg;\n    }\n  }\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n  @include transition($custom-forms-transition);\n}\n"
  },
  {
    "path": "lib/bootstrap4/_dropdown.scss",
    "content": "// The dropdown wrapper (`<div>`)\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n  position: relative;\n}\n\n.dropdown-toggle {\n  white-space: nowrap;\n\n  // Generate the caret automatically\n  @include caret();\n}\n\n// The dropdown menu\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: $zindex-dropdown;\n  display: none; // none by default, but block on \"open\" of the menu\n  float: left;\n  min-width: $dropdown-min-width;\n  padding: $dropdown-padding-y $dropdown-padding-x;\n  margin: $dropdown-spacer 0 0; // override default ul\n  @include font-size($dropdown-font-size);\n  color: $dropdown-color;\n  text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n  list-style: none;\n  background-color: $dropdown-bg;\n  background-clip: padding-box;\n  border: $dropdown-border-width solid $dropdown-border-color;\n  @include border-radius($dropdown-border-radius);\n  @include box-shadow($dropdown-box-shadow);\n}\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .dropdown-menu#{$infix}-left {\n      right: auto;\n      left: 0;\n    }\n\n    .dropdown-menu#{$infix}-right {\n      right: 0;\n      left: auto;\n    }\n  }\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// Just add .dropup after the standard .dropdown class and you're set.\n.dropup {\n  .dropdown-menu {\n    top: auto;\n    bottom: 100%;\n    margin-top: 0;\n    margin-bottom: $dropdown-spacer;\n  }\n\n  .dropdown-toggle {\n    @include caret(up);\n  }\n}\n\n.dropright {\n  .dropdown-menu {\n    top: 0;\n    right: auto;\n    left: 100%;\n    margin-top: 0;\n    margin-left: $dropdown-spacer;\n  }\n\n  .dropdown-toggle {\n    @include caret(right);\n    &::after {\n      vertical-align: 0;\n    }\n  }\n}\n\n.dropleft {\n  .dropdown-menu {\n    top: 0;\n    right: 100%;\n    left: auto;\n    margin-top: 0;\n    margin-right: $dropdown-spacer;\n  }\n\n  .dropdown-toggle {\n    @include caret(left);\n    &::before {\n      vertical-align: 0;\n    }\n  }\n}\n\n// When Popper is enabled, reset the basic dropdown position\n// stylelint-disable-next-line no-duplicate-selectors\n.dropdown-menu {\n  &[x-placement^=\"top\"],\n  &[x-placement^=\"right\"],\n  &[x-placement^=\"bottom\"],\n  &[x-placement^=\"left\"] {\n    right: auto;\n    bottom: auto;\n  }\n}\n\n// Dividers (basically an `<hr>`) within the dropdown\n.dropdown-divider {\n  @include nav-divider($dropdown-divider-bg, $dropdown-divider-margin-y, true);\n}\n\n// Links, buttons, and more within the dropdown menu\n//\n// `<button>`-specific styles are denoted with `// For <button>s`\n.dropdown-item {\n  display: block;\n  width: 100%; // For `<button>`s\n  padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n  clear: both;\n  font-weight: $font-weight-normal;\n  color: $dropdown-link-color;\n  text-align: inherit; // For `<button>`s\n  text-decoration: if($link-decoration == none, null, none);\n  white-space: nowrap; // prevent links from randomly breaking onto new lines\n  background-color: transparent; // For `<button>`s\n  border: 0; // For `<button>`s\n\n  // Prevent dropdown overflow if there's no padding\n  // See https://github.com/twbs/bootstrap/pull/27703\n  @if $dropdown-padding-y == 0 {\n    &:first-child {\n      @include border-top-radius($dropdown-inner-border-radius);\n    }\n\n    &:last-child {\n      @include border-bottom-radius($dropdown-inner-border-radius);\n    }\n  }\n\n  @include hover-focus() {\n    color: $dropdown-link-hover-color;\n    text-decoration: none;\n    @include gradient-bg($dropdown-link-hover-bg);\n  }\n\n  &.active,\n  &:active {\n    color: $dropdown-link-active-color;\n    text-decoration: none;\n    @include gradient-bg($dropdown-link-active-bg);\n  }\n\n  &.disabled,\n  &:disabled {\n    color: $dropdown-link-disabled-color;\n    pointer-events: none;\n    background-color: transparent;\n    // Remove CSS gradients if they're enabled\n    @if $enable-gradients {\n      background-image: none;\n    }\n  }\n}\n\n.dropdown-menu.show {\n  display: block;\n}\n\n// Dropdown section headers\n.dropdown-header {\n  display: block;\n  padding: $dropdown-header-padding;\n  margin-bottom: 0; // for use with heading elements\n  @include font-size($font-size-sm);\n  color: $dropdown-header-color;\n  white-space: nowrap; // as with > li > a\n}\n\n// Dropdown text\n.dropdown-item-text {\n  display: block;\n  padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n  color: $dropdown-link-color;\n}\n"
  },
  {
    "path": "lib/bootstrap4/_forms.scss",
    "content": "// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n  display: block;\n  width: 100%;\n  height: $input-height;\n  padding: $input-padding-y $input-padding-x;\n  font-family: $input-font-family;\n  @include font-size($input-font-size);\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n  background-color: $input-bg;\n  background-clip: padding-box;\n  border: $input-border-width solid $input-border-color;\n\n  // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.\n  @include border-radius($input-border-radius, 0);\n\n  @include box-shadow($input-box-shadow);\n  @include transition($input-transition);\n\n  // Unstyle the caret on `<select>`s in IE10+.\n  &::-ms-expand {\n    background-color: transparent;\n    border: 0;\n  }\n\n  // Remove select outline from select box in FF\n  &:-moz-focusring {\n    color: transparent;\n    text-shadow: 0 0 0 $input-color;\n  }\n\n  // Customize the `:focus` state to imitate native WebKit styles.\n  @include form-control-focus($ignore-warning: true);\n\n  // Placeholder\n  &::placeholder {\n    color: $input-placeholder-color;\n    // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n    opacity: 1;\n  }\n\n  // Disabled and read-only inputs\n  //\n  // HTML5 says that controls under a fieldset > legend:first-child won't be\n  // disabled if the fieldset is disabled. Due to implementation difficulty, we\n  // don't honor that edge case; we style them as disabled anyway.\n  &:disabled,\n  &[readonly] {\n    background-color: $input-disabled-bg;\n    // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n    opacity: 1;\n  }\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n  &.form-control {\n    appearance: none; // Fix appearance for date inputs in Safari\n  }\n}\n\nselect.form-control {\n  &:focus::-ms-value {\n    // Suppress the nested default white text on blue background highlight given to\n    // the selected option text when the (still closed) <select> receives focus\n    // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n    // match the appearance of the native widget.\n    // See https://github.com/twbs/bootstrap/issues/19398.\n    color: $input-color;\n    background-color: $input-bg;\n  }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n  display: block;\n  width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n  padding-top: add($input-padding-y, $input-border-width);\n  padding-bottom: add($input-padding-y, $input-border-width);\n  margin-bottom: 0; // Override the `<label>/<legend>` default\n  @include font-size(inherit); // Override the `<legend>` default\n  line-height: $input-line-height;\n}\n\n.col-form-label-lg {\n  padding-top: add($input-padding-y-lg, $input-border-width);\n  padding-bottom: add($input-padding-y-lg, $input-border-width);\n  @include font-size($input-font-size-lg);\n  line-height: $input-line-height-lg;\n}\n\n.col-form-label-sm {\n  padding-top: add($input-padding-y-sm, $input-border-width);\n  padding-bottom: add($input-padding-y-sm, $input-border-width);\n  @include font-size($input-font-size-sm);\n  line-height: $input-line-height-sm;\n}\n\n\n// Readonly controls as plain text\n//\n// Apply class to a readonly input to make it appear like regular plain\n// text (without any border, background color, focus indicator)\n\n.form-control-plaintext {\n  display: block;\n  width: 100%;\n  padding: $input-padding-y 0;\n  margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n  @include font-size($input-font-size);\n  line-height: $input-line-height;\n  color: $input-plaintext-color;\n  background-color: transparent;\n  border: solid transparent;\n  border-width: $input-border-width 0;\n\n  &.form-control-sm,\n  &.form-control-lg {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// Repeated in `_input_group.scss` to avoid Sass extend issues.\n\n.form-control-sm {\n  height: $input-height-sm;\n  padding: $input-padding-y-sm $input-padding-x-sm;\n  @include font-size($input-font-size-sm);\n  line-height: $input-line-height-sm;\n  @include border-radius($input-border-radius-sm);\n}\n\n.form-control-lg {\n  height: $input-height-lg;\n  padding: $input-padding-y-lg $input-padding-x-lg;\n  @include font-size($input-font-size-lg);\n  line-height: $input-line-height-lg;\n  @include border-radius($input-border-radius-lg);\n}\n\n// stylelint-disable-next-line no-duplicate-selectors\nselect.form-control {\n  &[size],\n  &[multiple] {\n    height: auto;\n  }\n}\n\ntextarea.form-control {\n  height: auto;\n}\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n  margin-bottom: $form-group-margin-bottom;\n}\n\n.form-text {\n  display: block;\n  margin-top: $form-text-margin-top;\n}\n\n\n// Form grid\n//\n// Special replacement for our grid system's `.row` for tighter form layouts.\n\n.form-row {\n  display: flex;\n  flex-wrap: wrap;\n  margin-right: -$form-grid-gutter-width / 2;\n  margin-left: -$form-grid-gutter-width / 2;\n\n  > .col,\n  > [class*=\"col-\"] {\n    padding-right: $form-grid-gutter-width / 2;\n    padding-left: $form-grid-gutter-width / 2;\n  }\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.form-check {\n  position: relative;\n  display: block;\n  padding-left: $form-check-input-gutter;\n}\n\n.form-check-input {\n  position: absolute;\n  margin-top: $form-check-input-margin-y;\n  margin-left: -$form-check-input-gutter;\n\n  // Use [disabled] and :disabled for workaround https://github.com/twbs/bootstrap/issues/28247\n  &[disabled] ~ .form-check-label,\n  &:disabled ~ .form-check-label {\n    color: $text-muted;\n  }\n}\n\n.form-check-label {\n  margin-bottom: 0; // Override default `<label>` bottom margin\n}\n\n.form-check-inline {\n  display: inline-flex;\n  align-items: center;\n  padding-left: 0; // Override base .form-check\n  margin-right: $form-check-inline-margin-x;\n\n  // Undo .form-check-input defaults and add some `margin-right`.\n  .form-check-input {\n    position: static;\n    margin-top: 0;\n    margin-right: $form-check-inline-input-margin-x;\n    margin-left: 0;\n  }\n}\n\n\n// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid. Works\n// primarily for client-side validation via scoped `:invalid` and `:valid`\n// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for\n// server side validation.\n\n@each $state, $data in $form-validation-states {\n  @include form-validation-state($state, map-get($data, color), map-get($data, icon));\n}\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n\n.form-inline {\n  display: flex;\n  flex-flow: row wrap;\n  align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)\n\n  // Because we use flex, the initial sizing of checkboxes is collapsed and\n  // doesn't occupy the full-width (which is what we want for xs grid tier),\n  // so we force that here.\n  .form-check {\n    width: 100%;\n  }\n\n  // Kick in the inline\n  @include media-breakpoint-up(sm) {\n    label {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      margin-bottom: 0;\n    }\n\n    // Inline-block all the things for \"inline\"\n    .form-group {\n      display: flex;\n      flex: 0 0 auto;\n      flex-flow: row wrap;\n      align-items: center;\n      margin-bottom: 0;\n    }\n\n    // Allow folks to *not* use `.form-group`\n    .form-control {\n      display: inline-block;\n      width: auto; // Prevent labels from stacking above inputs in `.form-group`\n      vertical-align: middle;\n    }\n\n    // Make static controls behave like regular ones\n    .form-control-plaintext {\n      display: inline-block;\n    }\n\n    .input-group,\n    .custom-select {\n      width: auto;\n    }\n\n    // Remove default margin on radios/checkboxes that were used for stacking, and\n    // then undo the floating of radios and checkboxes to match.\n    .form-check {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: auto;\n      padding-left: 0;\n    }\n    .form-check-input {\n      position: relative;\n      flex-shrink: 0;\n      margin-top: 0;\n      margin-right: $form-check-input-margin-x;\n      margin-left: 0;\n    }\n\n    .custom-control {\n      align-items: center;\n      justify-content: center;\n    }\n    .custom-control-label {\n      margin-bottom: 0;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/_functions.scss",
    "content": "// Bootstrap functions\n//\n// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n  $prev-key: null;\n  $prev-num: null;\n  @each $key, $num in $map {\n    @if $prev-num == null or unit($num) == \"%\" or unit($prev-num) == \"%\" {\n      // Do nothing\n    } @else if not comparable($prev-num, $num) {\n      @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n    } @else if $prev-num >= $num {\n      @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n    }\n    $prev-key: $key;\n    $prev-num: $num;\n  }\n}\n\n// Starts at zero\n// Used to ensure the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map, $map-name: \"$grid-breakpoints\") {\n  @if length($map) > 0 {\n    $values: map-values($map);\n    $first-value: nth($values, 1);\n    @if $first-value != 0 {\n      @warn \"First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.\";\n    }\n  }\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Hugo Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n  $index: str-index($string, $search);\n\n  @if $index {\n    @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n  }\n\n  @return $string;\n}\n\n// See https://codepen.io/kevinweber/pen/dXWoRw\n//\n// Requires the use of quotes around data URIs.\n\n@function escape-svg($string) {\n  @if str-index($string, \"data:image/svg+xml\") {\n    @each $char, $encoded in $escaped-characters {\n      // Do not escape the url brackets\n      @if str-index($string, \"url(\") == 1 {\n        $string: url(\"#{str-replace(str-slice($string, 6, -3), $char, $encoded)}\");\n      } @else {\n        $string: str-replace($string, $char, $encoded);\n      }\n    }\n  }\n\n  @return $string;\n}\n\n// Color contrast\n@function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {\n  $r: red($color);\n  $g: green($color);\n  $b: blue($color);\n\n  $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;\n\n  @if ($yiq >= $yiq-contrasted-threshold) {\n    @return $dark;\n  } @else {\n    @return $light;\n  }\n}\n\n// Retrieve color Sass maps\n@function color($key: \"blue\") {\n  @return map-get($colors, $key);\n}\n\n@function theme-color($key: \"primary\") {\n  @return map-get($theme-colors, $key);\n}\n\n@function gray($key: \"100\") {\n  @return map-get($grays, $key);\n}\n\n// Request a theme color level\n@function theme-color-level($color-name: \"primary\", $level: 0) {\n  $color: theme-color($color-name);\n  $color-base: if($level > 0, $black, $white);\n  $level: abs($level);\n\n  @return mix($color-base, $color, $level * $theme-color-interval);\n}\n\n// Return valid calc\n@function add($value1, $value2, $return-calc: true) {\n  @if $value1 == null {\n    @return $value2;\n  }\n\n  @if $value2 == null {\n    @return $value1;\n  }\n\n  @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n    @return $value1 + $value2;\n  }\n\n  @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(\" + \") + $value2);\n}\n\n@function subtract($value1, $value2, $return-calc: true) {\n  @if $value1 == null and $value2 == null {\n    @return null;\n  }\n\n  @if $value1 == null {\n    @return -$value2;\n  }\n\n  @if $value2 == null {\n    @return $value1;\n  }\n\n  @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n    @return $value1 - $value2;\n  }\n\n  @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(\" - \") + $value2);\n}\n"
  },
  {
    "path": "lib/bootstrap4/_grid.scss",
    "content": "// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n  // Single container class with breakpoint max-widths\n  .container,\n  // 100% wide container at all breakpoints\n  .container-fluid {\n    @include make-container();\n  }\n\n  // Responsive containers that are 100% wide until a breakpoint\n  @each $breakpoint, $container-max-width in $container-max-widths {\n    .container-#{$breakpoint} {\n      @extend .container-fluid;\n    }\n\n    @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n      %responsive-container-#{$breakpoint} {\n        max-width: $container-max-width;\n      }\n\n      // Extend each breakpoint which is smaller or equal to the current breakpoint\n      $extend-breakpoint: true;\n\n      @each $name, $width in $grid-breakpoints {\n        @if ($extend-breakpoint) {\n          .container#{breakpoint-infix($name, $grid-breakpoints)} {\n            @extend %responsive-container-#{$breakpoint};\n          }\n\n          // Once the current breakpoint is reached, stop extending\n          @if ($breakpoint == $name) {\n            $extend-breakpoint: false;\n          }\n        }\n      }\n    }\n  }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n  .row {\n    @include make-row();\n  }\n\n  // Remove the negative margin from default .row, then the horizontal padding\n  // from all immediate children columns (to prevent runaway style inheritance).\n  .no-gutters {\n    margin-right: 0;\n    margin-left: 0;\n\n    > .col,\n    > [class*=\"col-\"] {\n      padding-right: 0;\n      padding-left: 0;\n    }\n  }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n  @include make-grid-columns();\n}\n"
  },
  {
    "path": "lib/bootstrap4/_images.scss",
    "content": "// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n  @include img-fluid();\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n  padding: $thumbnail-padding;\n  background-color: $thumbnail-bg;\n  border: $thumbnail-border-width solid $thumbnail-border-color;\n  @include border-radius($thumbnail-border-radius);\n  @include box-shadow($thumbnail-box-shadow);\n\n  // Keep them at most 100% wide\n  @include img-fluid();\n}\n\n//\n// Figures\n//\n\n.figure {\n  // Ensures the caption's text aligns with the image.\n  display: inline-block;\n}\n\n.figure-img {\n  margin-bottom: calc($spacer /2);\n  line-height: 1;\n}\n\n.figure-caption {\n  @include font-size($figure-caption-font-size);\n  color: $figure-caption-color;\n}\n"
  },
  {
    "path": "lib/bootstrap4/_input-group.scss",
    "content": "// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.input-group {\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; // For form validation feedback\n  align-items: stretch;\n  width: 100%;\n\n  > .form-control,\n  > .form-control-plaintext,\n  > .custom-select,\n  > .custom-file {\n    position: relative; // For focus state's z-index\n    flex: 1 1 auto;\n    width: 1%;\n    min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size\n    margin-bottom: 0;\n\n    + .form-control,\n    + .custom-select,\n    + .custom-file {\n      margin-left: -$input-border-width;\n    }\n  }\n\n  // Bring the \"active\" form control to the top of surrounding elements\n  > .form-control:focus,\n  > .custom-select:focus,\n  > .custom-file .custom-file-input:focus ~ .custom-file-label {\n    z-index: 3;\n  }\n\n  // Bring the custom file input above the label\n  > .custom-file .custom-file-input:focus {\n    z-index: 4;\n  }\n\n  > .form-control,\n  > .custom-select {\n    &:not(:first-child) { @include border-left-radius(0); }\n  }\n\n  // Custom file inputs have more complex markup, thus requiring different\n  // border-radius overrides.\n  > .custom-file {\n    display: flex;\n    align-items: center;\n\n    &:not(:last-child) .custom-file-label,\n    &:not(:first-child) .custom-file-label { @include border-left-radius(0); }\n  }\n\n  &:not(.has-validation) {\n    > .form-control:not(:last-child),\n    > .custom-select:not(:last-child),\n    > .custom-file:not(:last-child) .custom-file-label::after {\n      @include border-right-radius(0);\n    }\n  }\n\n  &.has-validation {\n    > .form-control:nth-last-child(n + 3),\n    > .custom-select:nth-last-child(n + 3),\n    > .custom-file:nth-last-child(n + 3) .custom-file-label::after {\n      @include border-right-radius(0);\n    }\n  }\n}\n\n\n// Prepend and append\n//\n// While it requires one extra layer of HTML for each, dedicated prepend and\n// append elements allow us to 1) be less clever, 2) simplify our selectors, and\n// 3) support HTML5 form validation.\n\n.input-group-prepend,\n.input-group-append {\n  display: flex;\n\n  // Ensure buttons are always above inputs for more visually pleasing borders.\n  // This isn't needed for `.input-group-text` since it shares the same border-color\n  // as our inputs.\n  .btn {\n    position: relative;\n    z-index: 2;\n\n    &:focus {\n      z-index: 3;\n    }\n  }\n\n  .btn + .btn,\n  .btn + .input-group-text,\n  .input-group-text + .input-group-text,\n  .input-group-text + .btn {\n    margin-left: -$input-border-width;\n  }\n}\n\n.input-group-prepend { margin-right: -$input-border-width; }\n.input-group-append { margin-left: -$input-border-width; }\n\n\n// Textual addons\n//\n// Serves as a catch-all element for any text or radio/checkbox input you wish\n// to prepend or append to an input.\n\n.input-group-text {\n  display: flex;\n  align-items: center;\n  padding: $input-padding-y $input-padding-x;\n  margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom\n  @include font-size($input-font-size); // Match inputs\n  font-weight: $font-weight-normal;\n  line-height: $input-line-height;\n  color: $input-group-addon-color;\n  text-align: center;\n  white-space: nowrap;\n  background-color: $input-group-addon-bg;\n  border: $input-border-width solid $input-group-addon-border-color;\n  @include border-radius($input-border-radius);\n\n  // Nuke default margins from checkboxes and radios to vertically center within.\n  input[type=\"radio\"],\n  input[type=\"checkbox\"] {\n    margin-top: 0;\n  }\n}\n\n\n// Sizing\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n  height: $input-height-lg;\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n  padding: $input-padding-y-lg $input-padding-x-lg;\n  @include font-size($input-font-size-lg);\n  line-height: $input-line-height-lg;\n  @include border-radius($input-border-radius-lg);\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n  height: $input-height-sm;\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n  padding: $input-padding-y-sm $input-padding-x-sm;\n  @include font-size($input-font-size-sm);\n  line-height: $input-line-height-sm;\n  @include border-radius($input-border-radius-sm);\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n  padding-right: $custom-select-padding-x + $custom-select-indicator-padding;\n}\n\n\n// Prepend and append rounded corners\n//\n// These rulesets must come after the sizing ones to properly override sm and lg\n// border-radius values when extending. They're more specific than we'd like\n// with the `.input-group >` part, but without it, we cannot override the sizing.\n\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n  @include border-right-radius(0);\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n  @include border-left-radius(0);\n}\n"
  },
  {
    "path": "lib/bootstrap4/_jumbotron.scss",
    "content": ".jumbotron {\n  padding: $jumbotron-padding ($jumbotron-padding / 2);\n  margin-bottom: $jumbotron-padding;\n  color: $jumbotron-color;\n  background-color: $jumbotron-bg;\n  @include border-radius($border-radius-lg);\n\n  @include media-breakpoint-up(sm) {\n    padding: ($jumbotron-padding * 2) $jumbotron-padding;\n  }\n}\n\n.jumbotron-fluid {\n  padding-right: 0;\n  padding-left: 0;\n  @include border-radius(0);\n}\n"
  },
  {
    "path": "lib/bootstrap4/_list-group.scss",
    "content": "// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n  display: flex;\n  flex-direction: column;\n\n  // No need to set list-style: none; since .list-group-item is block level\n  padding-left: 0; // reset padding because ul and ol\n  margin-bottom: 0;\n  @include border-radius($list-group-border-radius);\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive\n// list items. Includes an extra `.active` modifier class for selected items.\n\n.list-group-item-action {\n  width: 100%; // For `<button>`s (anchors become 100% by default though)\n  color: $list-group-action-color;\n  text-align: inherit; // For `<button>`s (anchors inherit)\n\n  // Hover state\n  @include hover-focus() {\n    z-index: 1; // Place hover/focus items above their siblings for proper border styling\n    color: $list-group-action-hover-color;\n    text-decoration: none;\n    background-color: $list-group-hover-bg;\n  }\n\n  &:active {\n    color: $list-group-action-active-color;\n    background-color: $list-group-action-active-bg;\n  }\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: $list-group-item-padding-y $list-group-item-padding-x;\n  color: $list-group-color;\n  text-decoration: if($link-decoration == none, null, none);\n  background-color: $list-group-bg;\n  border: $list-group-border-width solid $list-group-border-color;\n\n  &:first-child {\n    @include border-top-radius(inherit);\n  }\n\n  &:last-child {\n    @include border-bottom-radius(inherit);\n  }\n\n  &.disabled,\n  &:disabled {\n    color: $list-group-disabled-color;\n    pointer-events: none;\n    background-color: $list-group-disabled-bg;\n  }\n\n  // Include both here for `<a>`s and `<button>`s\n  &.active {\n    z-index: 2; // Place active items above their siblings for proper border styling\n    color: $list-group-active-color;\n    background-color: $list-group-active-bg;\n    border-color: $list-group-active-border-color;\n  }\n\n  & + & {\n    border-top-width: 0;\n\n    &.active {\n      margin-top: -$list-group-border-width;\n      border-top-width: $list-group-border-width;\n    }\n  }\n}\n\n\n// Horizontal\n//\n// Change the layout of list group items from vertical (default) to horizontal.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .list-group-horizontal#{$infix} {\n      flex-direction: row;\n\n      > .list-group-item {\n        &:first-child {\n          @include border-bottom-left-radius($list-group-border-radius);\n          @include border-top-right-radius(0);\n        }\n\n        &:last-child {\n          @include border-top-right-radius($list-group-border-radius);\n          @include border-bottom-left-radius(0);\n        }\n\n        &.active {\n          margin-top: 0;\n        }\n\n        + .list-group-item {\n          border-top-width: $list-group-border-width;\n          border-left-width: 0;\n\n          &.active {\n            margin-left: -$list-group-border-width;\n            border-left-width: $list-group-border-width;\n          }\n        }\n      }\n    }\n  }\n}\n\n\n// Flush list items\n//\n// Remove borders and border-radius to keep list group items edge-to-edge. Most\n// useful within other components (e.g., cards).\n\n.list-group-flush {\n  @include border-radius(0);\n\n  > .list-group-item {\n    border-width: 0 0 $list-group-border-width;\n\n    &:last-child {\n      border-bottom-width: 0;\n    }\n  }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n@each $color, $value in $theme-colors {\n  @include list-group-item-variant($color, theme-color-level($color, -9), theme-color-level($color, 6));\n}\n"
  },
  {
    "path": "lib/bootstrap4/_media.scss",
    "content": ".media {\n  display: flex;\n  align-items: flex-start;\n}\n\n.media-body {\n  flex: 1;\n}\n"
  },
  {
    "path": "lib/bootstrap4/_mixins.scss",
    "content": "// Toggles\n//\n// Used in conjunction with global variables to enable certain theme features.\n\n// Vendor\n@import \"vendor/rfs\";\n\n// Deprecate\n@import \"mixins/deprecate\";\n\n// Utilities\n@import \"mixins/breakpoints\";\n@import \"mixins/hover\";\n@import \"mixins/image\";\n@import \"mixins/badge\";\n@import \"mixins/resize\";\n@import \"mixins/screen-reader\";\n@import \"mixins/size\";\n@import \"mixins/reset-text\";\n@import \"mixins/text-emphasis\";\n@import \"mixins/text-hide\";\n@import \"mixins/text-truncate\";\n@import \"mixins/visibility\";\n\n// Components\n@import \"mixins/alert\";\n@import \"mixins/buttons\";\n@import \"mixins/caret\";\n@import \"mixins/pagination\";\n@import \"mixins/lists\";\n@import \"mixins/list-group\";\n@import \"mixins/nav-divider\";\n@import \"mixins/forms\";\n@import \"mixins/table-row\";\n\n// Skins\n@import \"mixins/background-variant\";\n@import \"mixins/border-radius\";\n@import \"mixins/box-shadow\";\n@import \"mixins/gradients\";\n@import \"mixins/transition\";\n\n// Layout\n@import \"mixins/clearfix\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n@import \"mixins/float\";\n"
  },
  {
    "path": "lib/bootstrap4/_modal.scss",
    "content": "// .modal-open      - body class for killing the scroll\n// .modal           - container to scroll within\n// .modal-dialog    - positioning shell for the actual modal\n// .modal-content   - actual modal w/ bg and corners and stuff\n\n\n.modal-open {\n  // Kill the scroll on the body\n  overflow: hidden;\n\n  .modal {\n    overflow-x: hidden;\n    overflow-y: auto;\n  }\n}\n\n// Container that the modal scrolls within\n.modal {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: $zindex-modal;\n  display: none;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n  // Prevent Chrome on Windows from adding a focus outline. For details, see\n  // https://github.com/twbs/bootstrap/pull/10951.\n  outline: 0;\n  // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a\n  // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\n  // See also https://github.com/twbs/bootstrap/issues/17695\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: $modal-dialog-margin;\n  // allow clicks to pass through for custom click handling to close modal\n  pointer-events: none;\n\n  // When fading in the modal, animate it to slide down\n  .modal.fade & {\n    @include transition($modal-transition);\n    transform: $modal-fade-transform;\n  }\n  .modal.show & {\n    transform: $modal-show-transform;\n  }\n\n  // When trying to close, animate focus to scale\n  .modal.modal-static & {\n    transform: $modal-scale-transform;\n  }\n}\n\n.modal-dialog-scrollable {\n  display: flex; // IE10/11\n  max-height: subtract(100%, $modal-dialog-margin * 2);\n\n  .modal-content {\n    max-height: subtract(100vh, $modal-dialog-margin * 2); // IE10/11\n    overflow: hidden;\n  }\n\n  .modal-header,\n  .modal-footer {\n    flex-shrink: 0;\n  }\n\n  .modal-body {\n    overflow-y: auto;\n  }\n}\n\n.modal-dialog-centered {\n  display: flex;\n  align-items: center;\n  min-height: subtract(100%, $modal-dialog-margin * 2);\n\n  // Ensure `modal-dialog-centered` extends the full height of the view (IE10/11)\n  &::before {\n    display: block; // IE10\n    height: subtract(100vh, $modal-dialog-margin * 2);\n    height: min-content; // Reset height to 0 except on IE\n    content: \"\";\n  }\n\n  // Ensure `.modal-body` shows scrollbar (IE10/11)\n  &.modal-dialog-scrollable {\n    flex-direction: column;\n    justify-content: center;\n    height: 100%;\n\n    .modal-content {\n      max-height: none;\n    }\n\n    &::before {\n      content: none;\n    }\n  }\n}\n\n// Actual modal\n.modal-content {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`\n  // counteract the pointer-events: none; in the .modal-dialog\n  color: $modal-content-color;\n  pointer-events: auto;\n  background-color: $modal-content-bg;\n  background-clip: padding-box;\n  border: $modal-content-border-width solid $modal-content-border-color;\n  @include border-radius($modal-content-border-radius);\n  @include box-shadow($modal-content-box-shadow-xs);\n  // Remove focus outline from opened modal\n  outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: $zindex-modal-backdrop;\n  width: 100vw;\n  height: 100vh;\n  background-color: $modal-backdrop-bg;\n\n  // Fade for backdrop\n  &.fade { opacity: 0; }\n  &.show { opacity: $modal-backdrop-opacity; }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n  display: flex;\n  align-items: flex-start; // so the close btn always stays on the upper right corner\n  justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends\n  padding: $modal-header-padding;\n  border-bottom: $modal-header-border-width solid $modal-header-border-color;\n  @include border-top-radius($modal-content-inner-border-radius);\n\n  .close {\n    padding: $modal-header-padding;\n    // auto on the left force icon to the right even when there is no .modal-title\n    margin: (-$modal-header-padding-y) (-$modal-header-padding-x) (-$modal-header-padding-y) auto;\n  }\n}\n\n// Title text within header\n.modal-title {\n  margin-bottom: 0;\n  line-height: $modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n  position: relative;\n  // Enable `flex-grow: 1` so that the body take up as much space as possible\n  // when there should be a fixed height on `.modal-dialog`.\n  flex: 1 1 auto;\n  padding: $modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center; // vertically center\n  justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items\n  padding: $modal-inner-padding - $modal-footer-margin-between / 2;\n  border-top: $modal-footer-border-width solid $modal-footer-border-color;\n  @include border-bottom-radius($modal-content-inner-border-radius);\n\n  // Place margin between footer elements\n  // This solution is far from ideal because of the universal selector usage,\n  // but is needed to fix https://github.com/twbs/bootstrap/issues/24800\n  > * {\n    margin: $modal-footer-margin-between / 2;\n  }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n// Scale up the modal\n@include media-breakpoint-up(sm) {\n  // Automatically set modal's width for larger viewports\n  .modal-dialog {\n    max-width: $modal-md;\n    margin: $modal-dialog-margin-y-sm-up auto;\n  }\n\n  .modal-dialog-scrollable {\n    max-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);\n\n    .modal-content {\n      max-height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);\n    }\n  }\n\n  .modal-dialog-centered {\n    min-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);\n\n    &::before {\n      height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);\n      height: min-content;\n    }\n  }\n\n  .modal-content {\n    @include box-shadow($modal-content-box-shadow-sm-up);\n  }\n\n  .modal-sm { max-width: $modal-sm; }\n}\n\n@include media-breakpoint-up(lg) {\n  .modal-lg,\n  .modal-xl {\n    max-width: $modal-lg;\n  }\n}\n\n@include media-breakpoint-up(xl) {\n  .modal-xl { max-width: $modal-xl; }\n}\n"
  },
  {
    "path": "lib/bootstrap4/_nav.scss",
    "content": "// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s, `<ul>`s or `<ol>`s.\n\n.nav {\n  display: flex;\n  flex-wrap: wrap;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.nav-link {\n  display: block;\n  padding: $nav-link-padding-y $nav-link-padding-x;\n  text-decoration: if($link-decoration == none, null, none);\n\n  @include hover-focus() {\n    text-decoration: none;\n  }\n\n  // Disabled state lightens text\n  &.disabled {\n    color: $nav-link-disabled-color;\n    pointer-events: none;\n    cursor: default;\n  }\n}\n\n//\n// Tabs\n//\n\n.nav-tabs {\n  border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;\n\n  .nav-link {\n    margin-bottom: -$nav-tabs-border-width;\n    border: $nav-tabs-border-width solid transparent;\n    @include border-top-radius($nav-tabs-border-radius);\n\n    @include hover-focus() {\n      border-color: $nav-tabs-link-hover-border-color;\n    }\n\n    &.disabled {\n      color: $nav-link-disabled-color;\n      background-color: transparent;\n      border-color: transparent;\n    }\n  }\n\n  .nav-link.active,\n  .nav-item.show .nav-link {\n    color: $nav-tabs-link-active-color;\n    background-color: $nav-tabs-link-active-bg;\n    border-color: $nav-tabs-link-active-border-color;\n  }\n\n  .dropdown-menu {\n    // Make dropdown border overlap tab border\n    margin-top: -$nav-tabs-border-width;\n    // Remove the top rounded corners here since there is a hard edge above the menu\n    @include border-top-radius(0);\n  }\n}\n\n\n//\n// Pills\n//\n\n.nav-pills {\n  .nav-link {\n    @include border-radius($nav-pills-border-radius);\n  }\n\n  .nav-link.active,\n  .show > .nav-link {\n    color: $nav-pills-link-active-color;\n    background-color: $nav-pills-link-active-bg;\n  }\n}\n\n\n//\n// Justified variants\n//\n\n.nav-fill {\n  > .nav-link,\n  .nav-item {\n    flex: 1 1 auto;\n    text-align: center;\n  }\n}\n\n.nav-justified {\n  > .nav-link,\n  .nav-item {\n    flex-basis: 0;\n    flex-grow: 1;\n    text-align: center;\n  }\n}\n\n\n// Tabbable tabs\n//\n// Hide tabbable panes to start, show them when `.active`\n\n.tab-content {\n  > .tab-pane {\n    display: none;\n  }\n  > .active {\n    display: block;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/_navbar.scss",
    "content": "// Contents\n//\n// Navbar\n// Navbar brand\n// Navbar nav\n// Navbar text\n// Navbar divider\n// Responsive navbar\n// Navbar position\n// Navbar themes\n\n\n// Navbar\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; // allow us to do the line break for collapsing content\n  align-items: center;\n  justify-content: space-between; // space out brand from logo\n  padding: $navbar-padding-y $navbar-padding-x;\n\n  // Because flex properties aren't inherited, we need to redeclare these first\n  // few properties so that content nested within behave properly.\n  %container-flex-properties {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: center;\n    justify-content: space-between;\n  }\n\n  .container,\n  .container-fluid {\n    @extend %container-flex-properties;\n  }\n\n  @each $breakpoint, $container-max-width in $container-max-widths {\n    > .container#{breakpoint-infix($breakpoint, $container-max-widths)} {\n      @extend %container-flex-properties;\n    }\n  }\n}\n\n\n// Navbar brand\n//\n// Used for brand, project, or site names.\n\n.navbar-brand {\n  display: inline-block;\n  padding-top: $navbar-brand-padding-y;\n  padding-bottom: $navbar-brand-padding-y;\n  margin-right: $navbar-padding-x;\n  @include font-size($navbar-brand-font-size);\n  line-height: inherit;\n  white-space: nowrap;\n\n  @include hover-focus() {\n    text-decoration: none;\n  }\n}\n\n\n// Navbar nav\n//\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\n\n.navbar-nav {\n  display: flex;\n  flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n\n  .nav-link {\n    padding-right: 0;\n    padding-left: 0;\n  }\n\n  .dropdown-menu {\n    position: static;\n    float: none;\n  }\n}\n\n\n// Navbar text\n//\n//\n\n.navbar-text {\n  display: inline-block;\n  padding-top: $nav-link-padding-y;\n  padding-bottom: $nav-link-padding-y;\n}\n\n\n// Responsive navbar\n//\n// Custom styles for responsive collapsing and toggling of navbar contents.\n// Powered by the collapse Bootstrap JavaScript plugin.\n\n// When collapsed, prevent the toggleable navbar contents from appearing in\n// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`\n// on the `.navbar` parent.\n.navbar-collapse {\n  flex-basis: 100%;\n  flex-grow: 1;\n  // For always expanded or extra full navbars, ensure content aligns itself\n  // properly vertically. Can be easily overridden with flex utilities.\n  align-items: center;\n}\n\n// Button for toggling the navbar when in its collapsed state\n.navbar-toggler {\n  padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;\n  @include font-size($navbar-toggler-font-size);\n  line-height: 1;\n  background-color: transparent; // remove default button style\n  border: $border-width solid transparent; // remove default button style\n  @include border-radius($navbar-toggler-border-radius);\n\n  @include hover-focus() {\n    text-decoration: none;\n  }\n}\n\n// Keep as a separate element so folks can easily override it with another icon\n// or image file as needed.\n.navbar-toggler-icon {\n  display: inline-block;\n  width: 1.5em;\n  height: 1.5em;\n  vertical-align: middle;\n  content: \"\";\n  background: 50% / 100% 100% no-repeat;\n}\n\n.navbar-nav-scroll {\n  max-height: $navbar-nav-scroll-max-height;\n  overflow-y: auto;\n}\n\n// Generate series of `.navbar-expand-*` responsive classes for configuring\n// where your navbar collapses.\n.navbar-expand {\n  @each $breakpoint in map-keys($grid-breakpoints) {\n    $next: breakpoint-next($breakpoint, $grid-breakpoints);\n    $infix: breakpoint-infix($next, $grid-breakpoints);\n\n    &#{$infix} {\n      @include media-breakpoint-down($breakpoint) {\n        %container-navbar-expand-#{$breakpoint} {\n          padding-right: 0;\n          padding-left: 0;\n        }\n\n        > .container,\n        > .container-fluid {\n          @extend %container-navbar-expand-#{$breakpoint};\n        }\n\n        @each $size, $container-max-width in $container-max-widths {\n          > .container#{breakpoint-infix($size, $container-max-widths)} {\n            @extend %container-navbar-expand-#{$breakpoint};\n          }\n        }\n      }\n\n      @include media-breakpoint-up($next) {\n        flex-flow: row nowrap;\n        justify-content: flex-start;\n\n        .navbar-nav {\n          flex-direction: row;\n\n          .dropdown-menu {\n            position: absolute;\n          }\n\n          .nav-link {\n            padding-right: $navbar-nav-link-padding-x;\n            padding-left: $navbar-nav-link-padding-x;\n          }\n        }\n\n        // For nesting containers, have to redeclare for alignment purposes\n        %container-nesting-#{$breakpoint} {\n          flex-wrap: nowrap;\n        }\n\n        > .container,\n        > .container-fluid {\n          @extend %container-nesting-#{$breakpoint};\n        }\n\n        @each $size, $container-max-width in $container-max-widths {\n          > .container#{breakpoint-infix($size, $container-max-widths)} {\n            @extend %container-nesting-#{$breakpoint};\n          }\n        }\n\n        .navbar-nav-scroll {\n          overflow: visible;\n        }\n\n        .navbar-collapse {\n          display: flex !important; // stylelint-disable-line declaration-no-important\n\n          // Changes flex-bases to auto because of an IE10 bug\n          flex-basis: auto;\n        }\n\n        .navbar-toggler {\n          display: none;\n        }\n      }\n    }\n  }\n}\n\n\n// Navbar themes\n//\n// Styles for switching between navbars with light or dark background.\n\n// Dark links against a light background\n.navbar-light {\n  .navbar-brand {\n    color: $navbar-light-brand-color;\n\n    @include hover-focus() {\n      color: $navbar-light-brand-hover-color;\n    }\n  }\n\n  .navbar-nav {\n    .nav-link {\n      color: $navbar-light-color;\n\n      @include hover-focus() {\n        color: $navbar-light-hover-color;\n      }\n\n      &.disabled {\n        color: $navbar-light-disabled-color;\n      }\n    }\n\n    .show > .nav-link,\n    .active > .nav-link,\n    .nav-link.show,\n    .nav-link.active {\n      color: $navbar-light-active-color;\n    }\n  }\n\n  .navbar-toggler {\n    color: $navbar-light-color;\n    border-color: $navbar-light-toggler-border-color;\n  }\n\n  .navbar-toggler-icon {\n    background-image: escape-svg($navbar-light-toggler-icon-bg);\n  }\n\n  .navbar-text {\n    color: $navbar-light-color;\n    a {\n      color: $navbar-light-active-color;\n\n      @include hover-focus() {\n        color: $navbar-light-active-color;\n      }\n    }\n  }\n}\n\n// White links against a dark background\n.navbar-dark {\n  .navbar-brand {\n    color: $navbar-dark-brand-color;\n\n    @include hover-focus() {\n      color: $navbar-dark-brand-hover-color;\n    }\n  }\n\n  .navbar-nav {\n    .nav-link {\n      color: $navbar-dark-color;\n\n      @include hover-focus() {\n        color: $navbar-dark-hover-color;\n      }\n\n      &.disabled {\n        color: $navbar-dark-disabled-color;\n      }\n    }\n\n    .show > .nav-link,\n    .active > .nav-link,\n    .nav-link.show,\n    .nav-link.active {\n      color: $navbar-dark-active-color;\n    }\n  }\n\n  .navbar-toggler {\n    color: $navbar-dark-color;\n    border-color: $navbar-dark-toggler-border-color;\n  }\n\n  .navbar-toggler-icon {\n    background-image: escape-svg($navbar-dark-toggler-icon-bg);\n  }\n\n  .navbar-text {\n    color: $navbar-dark-color;\n    a {\n      color: $navbar-dark-active-color;\n\n      @include hover-focus() {\n        color: $navbar-dark-active-color;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/_pagination.scss",
    "content": ".pagination {\n  display: flex;\n  @include list-unstyled();\n  @include border-radius();\n}\n\n.page-link {\n  position: relative;\n  display: block;\n  padding: $pagination-padding-y $pagination-padding-x;\n  margin-left: -$pagination-border-width;\n  line-height: $pagination-line-height;\n  color: $pagination-color;\n  text-decoration: if($link-decoration == none, null, none);\n  background-color: $pagination-bg;\n  border: $pagination-border-width solid $pagination-border-color;\n\n  &:hover {\n    z-index: 2;\n    color: $pagination-hover-color;\n    text-decoration: none;\n    background-color: $pagination-hover-bg;\n    border-color: $pagination-hover-border-color;\n  }\n\n  &:focus {\n    z-index: 3;\n    outline: $pagination-focus-outline;\n    box-shadow: $pagination-focus-box-shadow;\n  }\n}\n\n.page-item {\n  &:first-child {\n    .page-link {\n      margin-left: 0;\n      @include border-left-radius($border-radius);\n    }\n  }\n  &:last-child {\n    .page-link {\n      @include border-right-radius($border-radius);\n    }\n  }\n\n  &.active .page-link {\n    z-index: 3;\n    color: $pagination-active-color;\n    background-color: $pagination-active-bg;\n    border-color: $pagination-active-border-color;\n  }\n\n  &.disabled .page-link {\n    color: $pagination-disabled-color;\n    pointer-events: none;\n    // Opinionated: remove the \"hand\" cursor set previously for .page-link\n    cursor: auto;\n    background-color: $pagination-disabled-bg;\n    border-color: $pagination-disabled-border-color;\n  }\n}\n\n\n//\n// Sizing\n//\n\n.pagination-lg {\n  @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $pagination-border-radius-lg);\n}\n\n.pagination-sm {\n  @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $pagination-border-radius-sm);\n}\n"
  },
  {
    "path": "lib/bootstrap4/_popover.scss",
    "content": ".popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: $zindex-popover;\n  display: block;\n  max-width: $popover-max-width;\n  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  @include reset-text();\n  @include font-size($popover-font-size);\n  // Allow breaking very long words so they don't overflow the popover's bounds\n  word-wrap: break-word;\n  background-color: $popover-bg;\n  background-clip: padding-box;\n  border: $popover-border-width solid $popover-border-color;\n  @include border-radius($popover-border-radius);\n  @include box-shadow($popover-box-shadow);\n\n  .arrow {\n    position: absolute;\n    display: block;\n    width: $popover-arrow-width;\n    height: $popover-arrow-height;\n    margin: 0 $popover-border-radius;\n\n    &::before,\n    &::after {\n      position: absolute;\n      display: block;\n      content: \"\";\n      border-color: transparent;\n      border-style: solid;\n    }\n  }\n}\n\n.bs-popover-top {\n  margin-bottom: $popover-arrow-height;\n\n  > .arrow {\n    bottom: subtract(-$popover-arrow-height, $popover-border-width);\n\n    &::before {\n      bottom: 0;\n      border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n      border-top-color: $popover-arrow-outer-color;\n    }\n\n    &::after {\n      bottom: $popover-border-width;\n      border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n      border-top-color: $popover-arrow-color;\n    }\n  }\n}\n\n.bs-popover-right {\n  margin-left: $popover-arrow-height;\n\n  > .arrow {\n    left: subtract(-$popover-arrow-height, $popover-border-width);\n    width: $popover-arrow-height;\n    height: $popover-arrow-width;\n    margin: $popover-border-radius 0; // make sure the arrow does not touch the popover's rounded corners\n\n    &::before {\n      left: 0;\n      border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n      border-right-color: $popover-arrow-outer-color;\n    }\n\n    &::after {\n      left: $popover-border-width;\n      border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n      border-right-color: $popover-arrow-color;\n    }\n  }\n}\n\n.bs-popover-bottom {\n  margin-top: $popover-arrow-height;\n\n  > .arrow {\n    top: subtract(-$popover-arrow-height, $popover-border-width);\n\n    &::before {\n      top: 0;\n      border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n      border-bottom-color: $popover-arrow-outer-color;\n    }\n\n    &::after {\n      top: $popover-border-width;\n      border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n      border-bottom-color: $popover-arrow-color;\n    }\n  }\n\n  // This will remove the popover-header's border just below the arrow\n  .popover-header::before {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    display: block;\n    width: $popover-arrow-width;\n    margin-left: -$popover-arrow-width / 2;\n    content: \"\";\n    border-bottom: $popover-border-width solid $popover-header-bg;\n  }\n}\n\n.bs-popover-left {\n  margin-right: $popover-arrow-height;\n\n  > .arrow {\n    right: subtract(-$popover-arrow-height, $popover-border-width);\n    width: $popover-arrow-height;\n    height: $popover-arrow-width;\n    margin: $popover-border-radius 0; // make sure the arrow does not touch the popover's rounded corners\n\n    &::before {\n      right: 0;\n      border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n      border-left-color: $popover-arrow-outer-color;\n    }\n\n    &::after {\n      right: $popover-border-width;\n      border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n      border-left-color: $popover-arrow-color;\n    }\n  }\n}\n\n.bs-popover-auto {\n  &[x-placement^=\"top\"] {\n    @extend .bs-popover-top;\n  }\n  &[x-placement^=\"right\"] {\n    @extend .bs-popover-right;\n  }\n  &[x-placement^=\"bottom\"] {\n    @extend .bs-popover-bottom;\n  }\n  &[x-placement^=\"left\"] {\n    @extend .bs-popover-left;\n  }\n}\n\n\n// Offset the popover to account for the popover arrow\n.popover-header {\n  padding: $popover-header-padding-y $popover-header-padding-x;\n  margin-bottom: 0; // Reset the default from Reboot\n  @include font-size($font-size-base);\n  color: $popover-header-color;\n  background-color: $popover-header-bg;\n  border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);\n  @include border-top-radius($popover-inner-border-radius);\n\n  &:empty {\n    display: none;\n  }\n}\n\n.popover-body {\n  padding: $popover-body-padding-y $popover-body-padding-x;\n  color: $popover-body-color;\n}\n"
  },
  {
    "path": "lib/bootstrap4/_print.scss",
    "content": "// stylelint-disable declaration-no-important, selector-no-qualifying-type\n\n// Source: https://github.com/h5bp/main.css/blob/master/src/_print.css\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request:\n// https://www.phpied.com/delay-loading-your-print-css/\n// ==========================================================================\n\n@if $enable-print-styles {\n  @media print {\n    *,\n    *::before,\n    *::after {\n      // Bootstrap specific; comment out `color` and `background`\n      //color: $black !important; // Black prints faster\n      text-shadow: none !important;\n      //background: transparent !important;\n      box-shadow: none !important;\n    }\n\n    a {\n      &:not(.btn) {\n        text-decoration: underline;\n      }\n    }\n\n    // Bootstrap specific; comment the following selector out\n    //a[href]::after {\n    //  content: \" (\" attr(href) \")\";\n    //}\n\n    abbr[title]::after {\n      content: \" (\" attr(title) \")\";\n    }\n\n    // Bootstrap specific; comment the following selector out\n    //\n    // Don't show links that are fragment identifiers,\n    // or use the `javascript:` pseudo protocol\n    //\n\n    //a[href^=\"#\"]::after,\n    //a[href^=\"javascript:\"]::after {\n    // content: \"\";\n    //}\n\n    pre {\n      white-space: pre-wrap !important;\n    }\n    pre,\n    blockquote {\n      border: $border-width solid $gray-500; // Bootstrap custom code; using `$border-width` instead of 1px\n      page-break-inside: avoid;\n    }\n\n    //\n    // Printing Tables:\n    // https://web.archive.org/web/20180815150934/http://css-discuss.incutio.com/wiki/Printing_Tables\n    //\n\n    thead {\n      display: table-header-group;\n    }\n\n    tr,\n    img {\n      page-break-inside: avoid;\n    }\n\n    p,\n    h2,\n    h3 {\n      orphans: 3;\n      widows: 3;\n    }\n\n    h2,\n    h3 {\n      page-break-after: avoid;\n    }\n\n    // Bootstrap specific changes start\n\n    // Specify a size and min-width to make printing closer across browsers.\n    // We don't set margin here because it breaks `size` in Chrome. We also\n    // don't use `!important` on `size` as it breaks in Chrome.\n    @page {\n      size: $print-page-size;\n    }\n    body {\n      min-width: $print-body-min-width !important;\n    }\n    .container {\n      min-width: $print-body-min-width !important;\n    }\n\n    // Bootstrap components\n    .navbar {\n      display: none;\n    }\n    .badge {\n      border: $border-width solid $black;\n    }\n\n    .table {\n      border-collapse: collapse !important;\n\n      td,\n      th {\n        background-color: $white !important;\n      }\n    }\n\n    .table-bordered {\n      th,\n      td {\n        border: 1px solid $gray-300 !important;\n      }\n    }\n\n    .table-dark {\n      color: inherit;\n\n      th,\n      td,\n      thead th,\n      tbody + tbody {\n        border-color: $table-border-color;\n      }\n    }\n\n    .table .thead-dark th {\n      color: inherit;\n      border-color: $table-border-color;\n    }\n\n    // Bootstrap specific changes end\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/_progress.scss",
    "content": "// Disable animation if transitions are disabled\n@if $enable-transitions {\n  @keyframes progress-bar-stripes {\n    from { background-position: $progress-height 0; }\n    to { background-position: 0 0; }\n  }\n}\n\n.progress {\n  display: flex;\n  height: $progress-height;\n  overflow: hidden; // force rounded corners by cropping it\n  line-height: 0;\n  @include font-size($progress-font-size);\n  background-color: $progress-bg;\n  @include border-radius($progress-border-radius);\n  @include box-shadow($progress-box-shadow);\n}\n\n.progress-bar {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  overflow: hidden;\n  color: $progress-bar-color;\n  text-align: center;\n  white-space: nowrap;\n  background-color: $progress-bar-bg;\n  @include transition($progress-bar-transition);\n}\n\n.progress-bar-striped {\n  @include gradient-striped();\n  background-size: $progress-height $progress-height;\n}\n\n@if $enable-transitions {\n  .progress-bar-animated {\n    animation: $progress-bar-animation-timing progress-bar-stripes;\n\n    @if $enable-prefers-reduced-motion-media-query {\n      @media (prefers-reduced-motion: reduce) {\n        animation: none;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/_reboot.scss",
    "content": "// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box; // 1\n}\n\nhtml {\n  font-family: sans-serif; // 2\n  line-height: 1.15; // 3\n  -webkit-text-size-adjust: 100%; // 4\n  -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n//    the `inherit` value on things like `<th>` elements.\n\nbody {\n  margin: 0; // 1\n  font-family: $font-family-base;\n  @include font-size($font-size-base);\n  font-weight: $font-weight-base;\n  line-height: $line-height-base;\n  color: $body-color;\n  text-align: left; // 3\n  background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n  outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n  box-sizing: content-box; // 1\n  height: 0; // 1\n  overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n  margin-top: 0;\n  margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n  text-decoration: underline; // 2\n  text-decoration: underline dotted; // 2\n  cursor: help; // 3\n  border-bottom: 0; // 4\n  text-decoration-skip-ink: none; // 5\n}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: $dt-font-weight;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0; // Undo browser default\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\nb,\nstrong {\n  font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n  @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n  position: relative;\n  @include font-size(75%);\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n  color: $link-color;\n  text-decoration: $link-decoration;\n  background-color: transparent; // Remove the gray background on active links in IE 10.\n\n  @include hover() {\n    color: $link-hover-color;\n    text-decoration: $link-hover-decoration;\n  }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n  color: inherit;\n  text-decoration: none;\n\n  @include hover() {\n    color: inherit;\n    text-decoration: none;\n  }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: $font-family-monospace;\n  @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n  // Remove browser default top margin\n  margin-top: 0;\n  // Reset browser default of `1em` to use `rem`s\n  margin-bottom: 1rem;\n  // Don't allow content to break outside\n  overflow: auto;\n  // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,\n  // making it impossible to interact with the content\n  -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n  // Apply a consistent margin strategy (matches our type styles).\n  margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n  vertical-align: middle;\n  border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n  // Workaround for the SVG overflow bug in IE10/11 is still required.\n  // See https://github.com/twbs/bootstrap/issues/26878\n  overflow: hidden;\n  vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n  border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n  padding-top: $table-cell-padding;\n  padding-bottom: $table-cell-padding;\n  color: $table-caption-color;\n  text-align: left;\n  caption-side: bottom;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `<td>` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n  font-weight: $table-th-font-weight; // 1\n  text-align: inherit; // 2\n  text-align: -webkit-match-parent; // 3\n}\n\n\n//\n// Forms\n//\n\nlabel {\n  // Allow labels to use `margin` for spacing.\n  display: inline-block;\n  margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n  // stylelint-disable-next-line property-disallowed-list\n  border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n  outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0; // Remove the margin in Firefox and Safari\n  font-family: inherit;\n  @include font-size(inherit);\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n  text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Set the cursor for non-`<button>` buttons\n//\n// Details at https://github.com/twbs/bootstrap/pull/30562\n[role=\"button\"] {\n  cursor: pointer;\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n  word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n//    controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n  button,\n  [type=\"button\"],\n  [type=\"reset\"],\n  [type=\"submit\"] {\n    &:not(:disabled) {\n      cursor: pointer;\n    }\n  }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n  padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ntextarea {\n  overflow: auto; // Remove the default vertical scrollbar in IE.\n  // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n  resize: vertical;\n}\n\nfieldset {\n  // Browsers set a default `min-width: min-content;` on fieldsets,\n  // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n  // So we reset that to ensure fieldsets behave more like a standard block element.\n  // See https://github.com/twbs/bootstrap/issues/12359\n  // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n  min-width: 0;\n  // Reset the default outline behavior of fieldsets so they don't affect page layout.\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%; // 1\n  padding: 0;\n  margin-bottom: .5rem;\n  @include font-size(1.5rem);\n  line-height: inherit;\n  color: inherit; // 2\n  white-space: normal; // 1\n}\n\nprogress {\n  vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  // This overrides the extra rounded corners on search inputs in iOS so that our\n  // `.form-control` class can properly style them. Note that this cannot simply\n  // be added to `.form-control` as it's not specific enough. For details, see\n  // https://github.com/twbs/bootstrap/issues/11586.\n  outline-offset: -2px; // 2. Correct the outline style in Safari.\n  -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n  font: inherit; // 2\n  -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item; // Add the correct display in all browsers\n  cursor: pointer;\n}\n\ntemplate {\n  display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n  display: none !important;\n}\n"
  },
  {
    "path": "lib/bootstrap4/_root.scss",
    "content": ":root {\n  // Custom variable values only support SassScript inside `#{}`.\n  @each $color, $value in $colors {\n    --#{$color}: #{$value};\n  }\n\n  @each $color, $value in $theme-colors {\n    --#{$color}: #{$value};\n  }\n\n  @each $bp, $value in $grid-breakpoints {\n    --breakpoint-#{$bp}: #{$value};\n  }\n\n  // Use `inspect` for lists so that quoted items keep the quotes.\n  // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n  --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n  --font-family-monospace: #{inspect($font-family-monospace)};\n}\n"
  },
  {
    "path": "lib/bootstrap4/_spinners.scss",
    "content": "//\n// Rotating border\n//\n\n@keyframes spinner-border {\n  to { transform: rotate(360deg); }\n}\n\n.spinner-border {\n  display: inline-block;\n  width: $spinner-width;\n  height: $spinner-height;\n  vertical-align: text-bottom;\n  border: $spinner-border-width solid currentColor;\n  border-right-color: transparent;\n  // stylelint-disable-next-line property-disallowed-list\n  border-radius: 50%;\n  animation: .75s linear infinite spinner-border;\n}\n\n.spinner-border-sm {\n  width: $spinner-width-sm;\n  height: $spinner-height-sm;\n  border-width: $spinner-border-width-sm;\n}\n\n//\n// Growing circle\n//\n\n@keyframes spinner-grow {\n  0% {\n    transform: scale(0);\n  }\n  50% {\n    opacity: 1;\n    transform: none;\n  }\n}\n\n.spinner-grow {\n  display: inline-block;\n  width: $spinner-width;\n  height: $spinner-height;\n  vertical-align: text-bottom;\n  background-color: currentColor;\n  // stylelint-disable-next-line property-disallowed-list\n  border-radius: 50%;\n  opacity: 0;\n  animation: .75s linear infinite spinner-grow;\n}\n\n.spinner-grow-sm {\n  width: $spinner-width-sm;\n  height: $spinner-height-sm;\n}\n\n@if $enable-prefers-reduced-motion-media-query {\n  @media (prefers-reduced-motion: reduce) {\n    .spinner-border,\n    .spinner-grow {\n      animation-duration: 1.5s;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/_tables.scss",
    "content": "//\n// Basic Bootstrap table\n//\n\n.table {\n  width: 100%;\n  margin-bottom: $spacer;\n  color: $table-color;\n  background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n  th,\n  td {\n    padding: $table-cell-padding;\n    vertical-align: top;\n    border-top: $table-border-width solid $table-border-color;\n  }\n\n  thead th {\n    vertical-align: bottom;\n    border-bottom: (2 * $table-border-width) solid $table-border-color;\n  }\n\n  tbody + tbody {\n    border-top: (2 * $table-border-width) solid $table-border-color;\n  }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n  th,\n  td {\n    padding: $table-cell-padding-sm;\n  }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n\n.table-bordered {\n  border: $table-border-width solid $table-border-color;\n\n  th,\n  td {\n    border: $table-border-width solid $table-border-color;\n  }\n\n  thead {\n    th,\n    td {\n      border-bottom-width: 2 * $table-border-width;\n    }\n  }\n}\n\n.table-borderless {\n  th,\n  td,\n  thead th,\n  tbody + tbody {\n    border: 0;\n  }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n  tbody tr:nth-of-type(#{$table-striped-order}) {\n    background-color: $table-accent-bg;\n  }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n  tbody tr {\n    @include hover() {\n      color: $table-hover-color;\n      background-color: $table-hover-bg;\n    }\n  }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n  @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n  .thead-dark {\n    th {\n      color: $table-dark-color;\n      background-color: $table-dark-bg;\n      border-color: $table-dark-border-color;\n    }\n  }\n\n  .thead-light {\n    th {\n      color: $table-head-color;\n      background-color: $table-head-bg;\n      border-color: $table-border-color;\n    }\n  }\n}\n\n.table-dark {\n  color: $table-dark-color;\n  background-color: $table-dark-bg;\n\n  th,\n  td,\n  thead th {\n    border-color: $table-dark-border-color;\n  }\n\n  &.table-bordered {\n    border: 0;\n  }\n\n  &.table-striped {\n    tbody tr:nth-of-type(#{$table-striped-order}) {\n      background-color: $table-dark-accent-bg;\n    }\n  }\n\n  &.table-hover {\n    tbody tr {\n      @include hover() {\n        color: $table-dark-hover-color;\n        background-color: $table-dark-hover-bg;\n      }\n    }\n  }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n  @each $breakpoint in map-keys($grid-breakpoints) {\n    $next: breakpoint-next($breakpoint, $grid-breakpoints);\n    $infix: breakpoint-infix($next, $grid-breakpoints);\n\n    &#{$infix} {\n      @include media-breakpoint-down($breakpoint) {\n        display: block;\n        width: 100%;\n        overflow-x: auto;\n        -webkit-overflow-scrolling: touch;\n\n        // Prevent double border on horizontal scroll due to use of `display: block;`\n        > .table-bordered {\n          border: 0;\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/_toasts.scss",
    "content": ".toast {\n  // Prevents from shrinking in IE11, when in a flex container\n  // See https://github.com/twbs/bootstrap/issues/28341\n  flex-basis: $toast-max-width;\n  max-width: $toast-max-width;\n  @include font-size($toast-font-size);\n  color: $toast-color;\n  background-color: $toast-background-color;\n  background-clip: padding-box;\n  border: $toast-border-width solid $toast-border-color;\n  box-shadow: $toast-box-shadow;\n  opacity: 0;\n  @include border-radius($toast-border-radius);\n\n  &:not(:last-child) {\n    margin-bottom: $toast-padding-x;\n  }\n\n  &.showing {\n    opacity: 1;\n  }\n\n  &.show {\n    display: block;\n    opacity: 1;\n  }\n\n  &.hide {\n    display: none;\n  }\n}\n\n.toast-header {\n  display: flex;\n  align-items: center;\n  padding: $toast-padding-y $toast-padding-x;\n  color: $toast-header-color;\n  background-color: $toast-header-background-color;\n  background-clip: padding-box;\n  border-bottom: $toast-border-width solid $toast-header-border-color;\n  @include border-top-radius(subtract($toast-border-radius, $toast-border-width));\n}\n\n.toast-body {\n  padding: $toast-padding-x; // apply to both vertical and horizontal\n}\n"
  },
  {
    "path": "lib/bootstrap4/_tooltip.scss",
    "content": "// Base class\n.tooltip {\n  position: absolute;\n  z-index: $zindex-tooltip;\n  display: block;\n  margin: $tooltip-margin;\n  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  @include reset-text();\n  @include font-size($tooltip-font-size);\n  // Allow breaking very long words so they don't overflow the tooltip's bounds\n  word-wrap: break-word;\n  opacity: 0;\n\n  &.show { opacity: $tooltip-opacity; }\n\n  .arrow {\n    position: absolute;\n    display: block;\n    width: $tooltip-arrow-width;\n    height: $tooltip-arrow-height;\n\n    &::before {\n      position: absolute;\n      content: \"\";\n      border-color: transparent;\n      border-style: solid;\n    }\n  }\n}\n\n.bs-tooltip-top {\n  padding: $tooltip-arrow-height 0;\n\n  .arrow {\n    bottom: 0;\n\n    &::before {\n      top: 0;\n      border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n      border-top-color: $tooltip-arrow-color;\n    }\n  }\n}\n\n.bs-tooltip-right {\n  padding: 0 $tooltip-arrow-height;\n\n  .arrow {\n    left: 0;\n    width: $tooltip-arrow-height;\n    height: $tooltip-arrow-width;\n\n    &::before {\n      right: 0;\n      border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n      border-right-color: $tooltip-arrow-color;\n    }\n  }\n}\n\n.bs-tooltip-bottom {\n  padding: $tooltip-arrow-height 0;\n\n  .arrow {\n    top: 0;\n\n    &::before {\n      bottom: 0;\n      border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n      border-bottom-color: $tooltip-arrow-color;\n    }\n  }\n}\n\n.bs-tooltip-left {\n  padding: 0 $tooltip-arrow-height;\n\n  .arrow {\n    right: 0;\n    width: $tooltip-arrow-height;\n    height: $tooltip-arrow-width;\n\n    &::before {\n      left: 0;\n      border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n      border-left-color: $tooltip-arrow-color;\n    }\n  }\n}\n\n.bs-tooltip-auto {\n  &[x-placement^=\"top\"] {\n    @extend .bs-tooltip-top;\n  }\n  &[x-placement^=\"right\"] {\n    @extend .bs-tooltip-right;\n  }\n  &[x-placement^=\"bottom\"] {\n    @extend .bs-tooltip-bottom;\n  }\n  &[x-placement^=\"left\"] {\n    @extend .bs-tooltip-left;\n  }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n  max-width: $tooltip-max-width;\n  padding: $tooltip-padding-y $tooltip-padding-x;\n  color: $tooltip-color;\n  text-align: center;\n  background-color: $tooltip-bg;\n  @include border-radius($tooltip-border-radius);\n}\n"
  },
  {
    "path": "lib/bootstrap4/_transitions.scss",
    "content": ".fade {\n  @include transition($transition-fade);\n\n  &:not(.show) {\n    opacity: 0;\n  }\n}\n\n.collapse {\n  &:not(.show) {\n    display: none;\n  }\n}\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  @include transition($transition-collapse);\n}\n"
  },
  {
    "path": "lib/bootstrap4/_type.scss",
    "content": "// stylelint-disable selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  margin-bottom: $headings-margin-bottom;\n  font-family: $headings-font-family;\n  font-weight: $headings-font-weight;\n  line-height: $headings-line-height;\n  color: $headings-color;\n}\n\nh1, .h1 { @include font-size($h1-font-size); }\nh2, .h2 { @include font-size($h2-font-size); }\nh3, .h3 { @include font-size($h3-font-size); }\nh4, .h4 { @include font-size($h4-font-size); }\nh5, .h5 { @include font-size($h5-font-size); }\nh6, .h6 { @include font-size($h6-font-size); }\n\n.lead {\n  @include font-size($lead-font-size);\n  font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n  @include font-size($display1-size);\n  font-weight: $display1-weight;\n  line-height: $display-line-height;\n}\n.display-2 {\n  @include font-size($display2-size);\n  font-weight: $display2-weight;\n  line-height: $display-line-height;\n}\n.display-3 {\n  @include font-size($display3-size);\n  font-weight: $display3-weight;\n  line-height: $display-line-height;\n}\n.display-4 {\n  @include font-size($display4-size);\n  font-weight: $display4-weight;\n  line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n  margin-top: $hr-margin-y;\n  margin-bottom: $hr-margin-y;\n  border: 0;\n  border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n  @include font-size($small-font-size);\n  font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n  padding: $mark-padding;\n  background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n  @include list-unstyled();\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n  @include list-unstyled();\n}\n.list-inline-item {\n  display: inline-block;\n\n  &:not(:last-child) {\n    margin-right: $list-inline-padding;\n  }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n  @include font-size(90%);\n  text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n  margin-bottom: $spacer;\n  @include font-size($blockquote-font-size);\n}\n\n.blockquote-footer {\n  display: block;\n  @include font-size($blockquote-small-font-size);\n  color: $blockquote-small-color;\n\n  &::before {\n    content: \"\\2014\\00A0\"; // em dash, nbsp\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/_utilities.scss",
    "content": "@import \"utilities/align\";\n@import \"utilities/background\";\n@import \"utilities/borders\";\n@import \"utilities/clearfix\";\n@import \"utilities/display\";\n@import \"utilities/embed\";\n@import \"utilities/flex\";\n@import \"utilities/float\";\n@import \"utilities/interactions\";\n@import \"utilities/overflow\";\n@import \"utilities/position\";\n@import \"utilities/screenreaders\";\n@import \"utilities/shadows\";\n@import \"utilities/sizing\";\n@import \"utilities/spacing\";\n@import \"utilities/stretched-link\";\n@import \"utilities/text\";\n@import \"utilities/visibility\";\n"
  },
  {
    "path": "lib/bootstrap4/_variables.scss",
    "content": "// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white:    #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black:    #000 !default;\n\n$grays: () !default;\n$grays: map-merge(\n  (\n    \"100\": $gray-100,\n    \"200\": $gray-200,\n    \"300\": $gray-300,\n    \"400\": $gray-400,\n    \"500\": $gray-500,\n    \"600\": $gray-600,\n    \"700\": $gray-700,\n    \"800\": $gray-800,\n    \"900\": $gray-900\n  ),\n  $grays\n);\n\n$blue:    #007bff !default;\n$indigo:  #6610f2 !default;\n$purple:  #6f42c1 !default;\n$pink:    #e83e8c !default;\n$red:     #dc3545 !default;\n$orange:  #fd7e14 !default;\n$yellow:  #ffc107 !default;\n$green:   #28a745 !default;\n$teal:    #20c997 !default;\n$cyan:    #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge(\n  (\n    \"blue\":       $blue,\n    \"indigo\":     $indigo,\n    \"purple\":     $purple,\n    \"pink\":       $pink,\n    \"red\":        $red,\n    \"orange\":     $orange,\n    \"yellow\":     $yellow,\n    \"green\":      $green,\n    \"teal\":       $teal,\n    \"cyan\":       $cyan,\n    \"white\":      $white,\n    \"gray\":       $gray-600,\n    \"gray-dark\":  $gray-800\n  ),\n  $colors\n);\n\n$primary:       $blue !default;\n$secondary:     $gray-600 !default;\n$success:       $green !default;\n$info:          $cyan !default;\n$warning:       $yellow !default;\n$danger:        $red !default;\n$light:         $gray-100 !default;\n$dark:          $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge(\n  (\n    \"primary\":    $primary,\n    \"secondary\":  $secondary,\n    \"success\":    $success,\n    \"info\":       $info,\n    \"warning\":    $warning,\n    \"danger\":     $danger,\n    \"light\":      $light,\n    \"dark\":       $dark\n  ),\n  $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval:      8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold:  150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark:             $gray-900 !default;\n$yiq-text-light:            $white !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n  (\"<\", \"%3c\"),\n  (\">\", \"%3e\"),\n  (\"#\", \"%23\"),\n  (\"(\", \"%28\"),\n  (\")\", \"%29\"),\n) !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret:                                true !default;\n$enable-rounded:                              true !default;\n$enable-shadows:                              false !default;\n$enable-gradients:                            false !default;\n$enable-transitions:                          true !default;\n$enable-prefers-reduced-motion-media-query:   true !default;\n$enable-hover-media-query:                    false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes:                         true !default;\n$enable-pointer-cursor-for-buttons:           true !default;\n$enable-print-styles:                         true !default;\n$enable-responsive-font-sizes:                false !default;\n$enable-validation-icons:                     true !default;\n$enable-deprecation-messages:                 true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge(\n  (\n    0: 0,\n    1: ($spacer * .25),\n    2: ($spacer * .5),\n    3: $spacer,\n    4: ($spacer * 1.5),\n    5: ($spacer * 3)\n  ),\n  $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge(\n  (\n    25: 25%,\n    50: 50%,\n    75: 75%,\n    100: 100%,\n    auto: auto\n  ),\n  $sizes\n);\n\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg:                   $white !default;\n$body-color:                $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color:                              theme-color(\"primary\") !default;\n$link-decoration:                         none !default;\n$link-hover-color:                        darken($link-color, 15%) !default;\n$link-hover-decoration:                   underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom:   1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n  xs: 0,\n  sm: 576px,\n  md: 768px,\n  lg: 992px,\n  xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n  sm: 540px,\n  md: 720px,\n  lg: 960px,\n  xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns:                12 !default;\n$grid-gutter-width:           30px !default;\n$grid-row-columns:            6 !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg:              1.5 !default;\n$line-height-sm:              1.5 !default;\n\n$border-width:                1px !default;\n$border-color:                $gray-300 !default;\n\n$border-radius:               .25rem !default;\n$border-radius-lg:            .3rem !default;\n$border-radius-sm:            .2rem !default;\n\n$rounded-pill:                50rem !default;\n\n$box-shadow-sm:               0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow:                  0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg:               0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color:      $white !default;\n$component-active-bg:         theme-color(\"primary\") !default;\n\n$caret-width:                 .3em !default;\n$caret-vertical-align:        $caret-width * .85 !default;\n$caret-spacing:               $caret-width * .85 !default;\n\n$transition-base:             all .2s ease-in-out !default;\n$transition-fade:             opacity .15s linear !default;\n$transition-collapse:         height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n$embed-responsive-aspect-ratios: join(\n  (\n    (21 9),\n    (16 9),\n    (4 3),\n    (1 1),\n  ),\n  $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif:      -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace:       SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base:            $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base:              1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg:                $font-size-base * 1.25 !default;\n$font-size-sm:                $font-size-base * .875 !default;\n\n$font-weight-lighter:         lighter !default;\n$font-weight-light:           300 !default;\n$font-weight-normal:          400 !default;\n$font-weight-bold:            700 !default;\n$font-weight-bolder:          bolder !default;\n\n$font-weight-base:            $font-weight-normal !default;\n$line-height-base:            1.5 !default;\n\n$h1-font-size:                $font-size-base * 2.5 !default;\n$h2-font-size:                $font-size-base * 2 !default;\n$h3-font-size:                $font-size-base * 1.75 !default;\n$h4-font-size:                $font-size-base * 1.5 !default;\n$h5-font-size:                $font-size-base * 1.25 !default;\n$h6-font-size:                $font-size-base !default;\n\n$headings-margin-bottom:      calc($spacer /2) !default;\n$headings-font-family:        null !default;\n$headings-font-weight:        500 !default;\n$headings-line-height:        1.2 !default;\n$headings-color:              null !default;\n\n$display1-size:               6rem !default;\n$display2-size:               5.5rem !default;\n$display3-size:               4.5rem !default;\n$display4-size:               3.5rem !default;\n\n$display1-weight:             300 !default;\n$display2-weight:             300 !default;\n$display3-weight:             300 !default;\n$display4-weight:             300 !default;\n$display-line-height:         $headings-line-height !default;\n\n$lead-font-size:              $font-size-base * 1.25 !default;\n$lead-font-weight:            300 !default;\n\n$small-font-size:             80% !default;\n\n$text-muted:                  $gray-600 !default;\n\n$blockquote-small-color:      $gray-600 !default;\n$blockquote-small-font-size:  $small-font-size !default;\n$blockquote-font-size:        $font-size-base * 1.25 !default;\n\n$hr-border-color:             rgba($black, .1) !default;\n$hr-border-width:             $border-width !default;\n\n$mark-padding:                .2em !default;\n\n$dt-font-weight:              $font-weight-bold !default;\n\n$kbd-box-shadow:              inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight:      $font-weight-bold !default;\n\n$list-inline-padding:         .5rem !default;\n\n$mark-bg:                     #fcf8e3 !default;\n\n$hr-margin-y:                 $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding:          .75rem !default;\n$table-cell-padding-sm:       .3rem !default;\n\n$table-color:                 $body-color !default;\n$table-bg:                    null !default;\n$table-accent-bg:             rgba($black, .05) !default;\n$table-hover-color:           $table-color !default;\n$table-hover-bg:              rgba($black, .075) !default;\n$table-active-bg:             $table-hover-bg !default;\n\n$table-border-width:          $border-width !default;\n$table-border-color:          $border-color !default;\n\n$table-head-bg:               $gray-200 !default;\n$table-head-color:            $gray-700 !default;\n$table-th-font-weight:        null !default;\n\n$table-dark-color:            $white !default;\n$table-dark-bg:               $gray-800 !default;\n$table-dark-accent-bg:        rgba($white, .05) !default;\n$table-dark-hover-color:      $table-dark-color !default;\n$table-dark-hover-bg:         rgba($white, .075) !default;\n$table-dark-border-color:     lighten($table-dark-bg, 7.5%) !default;\n\n$table-striped-order:         odd !default;\n\n$table-caption-color:         $text-muted !default;\n\n$table-bg-level:              -9 !default;\n$table-border-level:          -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y:         .375rem !default;\n$input-btn-padding-x:         .75rem !default;\n$input-btn-font-family:       null !default;\n$input-btn-font-size:         $font-size-base !default;\n$input-btn-line-height:       $line-height-base !default;\n\n$input-btn-focus-width:       .2rem !default;\n$input-btn-focus-color:       rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow:  0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm:      .25rem !default;\n$input-btn-padding-x-sm:      .5rem !default;\n$input-btn-font-size-sm:      $font-size-sm !default;\n$input-btn-line-height-sm:    $line-height-sm !default;\n\n$input-btn-padding-y-lg:      .5rem !default;\n$input-btn-padding-x-lg:      1rem !default;\n$input-btn-font-size-lg:      $font-size-lg !default;\n$input-btn-line-height-lg:    $line-height-lg !default;\n\n$input-btn-border-width:      $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y:               $input-btn-padding-y !default;\n$btn-padding-x:               $input-btn-padding-x !default;\n$btn-font-family:             $input-btn-font-family !default;\n$btn-font-size:               $input-btn-font-size !default;\n$btn-line-height:             $input-btn-line-height !default;\n$btn-white-space:             null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm:            $input-btn-padding-y-sm !default;\n$btn-padding-x-sm:            $input-btn-padding-x-sm !default;\n$btn-font-size-sm:            $input-btn-font-size-sm !default;\n$btn-line-height-sm:          $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg:            $input-btn-padding-y-lg !default;\n$btn-padding-x-lg:            $input-btn-padding-x-lg !default;\n$btn-font-size-lg:            $input-btn-font-size-lg !default;\n$btn-line-height-lg:          $input-btn-line-height-lg !default;\n\n$btn-border-width:            $input-btn-border-width !default;\n\n$btn-font-weight:             $font-weight-normal !default;\n$btn-box-shadow:              inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width:             $input-btn-focus-width !default;\n$btn-focus-box-shadow:        $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity:        .65 !default;\n$btn-active-box-shadow:       inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color:     $gray-600 !default;\n\n$btn-block-spacing-y:         .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius:           $border-radius !default;\n$btn-border-radius-lg:        $border-radius-lg !default;\n$btn-border-radius-sm:        $border-radius-sm !default;\n\n$btn-transition:              color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom:                   .5rem !default;\n\n$input-padding-y:                       $input-btn-padding-y !default;\n$input-padding-x:                       $input-btn-padding-x !default;\n$input-font-family:                     $input-btn-font-family !default;\n$input-font-size:                       $input-btn-font-size !default;\n$input-font-weight:                     $font-weight-base !default;\n$input-line-height:                     $input-btn-line-height !default;\n\n$input-padding-y-sm:                    $input-btn-padding-y-sm !default;\n$input-padding-x-sm:                    $input-btn-padding-x-sm !default;\n$input-font-size-sm:                    $input-btn-font-size-sm !default;\n$input-line-height-sm:                  $input-btn-line-height-sm !default;\n\n$input-padding-y-lg:                    $input-btn-padding-y-lg !default;\n$input-padding-x-lg:                    $input-btn-padding-x-lg !default;\n$input-font-size-lg:                    $input-btn-font-size-lg !default;\n$input-line-height-lg:                  $input-btn-line-height-lg !default;\n\n$input-bg:                              $white !default;\n$input-disabled-bg:                     $gray-200 !default;\n\n$input-color:                           $gray-700 !default;\n$input-border-color:                    $gray-400 !default;\n$input-border-width:                    $input-btn-border-width !default;\n$input-box-shadow:                      inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius:                   $border-radius !default;\n$input-border-radius-lg:                $border-radius-lg !default;\n$input-border-radius-sm:                $border-radius-sm !default;\n\n$input-focus-bg:                        $input-bg !default;\n$input-focus-border-color:              lighten($component-active-bg, 25%) !default;\n$input-focus-color:                     $input-color !default;\n$input-focus-width:                     $input-btn-focus-width !default;\n$input-focus-box-shadow:                $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color:               $gray-600 !default;\n$input-plaintext-color:                 $body-color !default;\n\n$input-height-border:                   $input-border-width * 2 !default;\n\n$input-height-inner:                    add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half:               add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter:            add($input-line-height * .25em, calc($input-padding-y / 2)) !default;\n\n$input-height:                          add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm:                       add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg:                       add($input-line-height-lg * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition:                      border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top:                  .25rem !default;\n\n$form-check-input-gutter:               1.25rem !default;\n$form-check-input-margin-y:             .3rem !default;\n$form-check-input-margin-x:             .25rem !default;\n\n$form-check-inline-margin-x:            .75rem !default;\n$form-check-inline-input-margin-x:      .3125rem !default;\n\n$form-grid-gutter-width:                10px !default;\n$form-group-margin-bottom:              1rem !default;\n\n$input-group-addon-color:               $input-color !default;\n$input-group-addon-bg:                  $gray-200 !default;\n$input-group-addon-border-color:        $input-border-color !default;\n\n$custom-forms-transition:               background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter:                 .5rem !default;\n$custom-control-spacer-x:               1rem !default;\n$custom-control-cursor:                 null !default;\n\n$custom-control-indicator-size:         1rem !default;\n$custom-control-indicator-bg:           $input-bg !default;\n\n$custom-control-indicator-bg-size:      50% 50% !default;\n$custom-control-indicator-box-shadow:   $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-label-color:            null !default;\n\n$custom-control-indicator-disabled-bg:          $input-disabled-bg !default;\n$custom-control-label-disabled-color:           $gray-600 !default;\n\n$custom-control-indicator-checked-color:        $component-active-color !default;\n$custom-control-indicator-checked-bg:           $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg:  rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow:   null !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow:     $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color:   $input-focus-border-color !default;\n\n$custom-control-indicator-active-color:         $component-active-color !default;\n$custom-control-indicator-active-bg:            lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow:    null !default;\n$custom-control-indicator-active-border-color:  $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius:       $border-radius !default;\n$custom-checkbox-indicator-icon-checked:        url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg:           $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color:        $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate:         url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'><path stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/></svg>\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow:   null !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius:          50% !default;\n$custom-radio-indicator-icon-checked:           url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'><circle r='3' fill='#{$custom-control-indicator-checked-color}'/></svg>\") !default;\n\n$custom-switch-width:                           $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius:         calc($custom-control-indicator-size / 2) !default;\n$custom-switch-indicator-size:                  subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;\n\n$custom-select-padding-y:           $input-padding-y !default;\n$custom-select-padding-x:           $input-padding-x !default;\n$custom-select-font-family:         $input-font-family !default;\n$custom-select-font-size:           $input-font-size !default;\n$custom-select-height:              $input-height !default;\n$custom-select-indicator-padding:   1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight:         $input-font-weight !default;\n$custom-select-line-height:         $input-line-height !default;\n$custom-select-color:               $input-color !default;\n$custom-select-disabled-color:      $gray-600 !default;\n$custom-select-bg:                  $input-bg !default;\n$custom-select-disabled-bg:         $gray-200 !default;\n$custom-select-bg-size:             8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color:     $gray-800 !default;\n$custom-select-indicator:           url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'><path fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/></svg>\") !default;\n$custom-select-background:          escape-svg($custom-select-indicator) right $custom-select-padding-x center / $custom-select-bg-size no-repeat !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-position:      center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size:          $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width:        $input-border-width !default;\n$custom-select-border-color:        $input-border-color !default;\n$custom-select-border-radius:       $border-radius !default;\n$custom-select-box-shadow:          inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color:  $input-focus-border-color !default;\n$custom-select-focus-width:         $input-focus-width !default;\n$custom-select-focus-box-shadow:    0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm:        $input-padding-y-sm !default;\n$custom-select-padding-x-sm:        $input-padding-x-sm !default;\n$custom-select-font-size-sm:        $input-font-size-sm !default;\n$custom-select-height-sm:           $input-height-sm !default;\n\n$custom-select-padding-y-lg:        $input-padding-y-lg !default;\n$custom-select-padding-x-lg:        $input-padding-x-lg !default;\n$custom-select-font-size-lg:        $input-font-size-lg !default;\n$custom-select-height-lg:           $input-height-lg !default;\n\n$custom-range-track-width:          100% !default;\n$custom-range-track-height:         .5rem !default;\n$custom-range-track-cursor:         pointer !default;\n$custom-range-track-bg:             $gray-300 !default;\n$custom-range-track-border-radius:  1rem !default;\n$custom-range-track-box-shadow:     inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width:                   1rem !default;\n$custom-range-thumb-height:                  $custom-range-thumb-width !default;\n$custom-range-thumb-bg:                      $component-active-bg !default;\n$custom-range-thumb-border:                  0 !default;\n$custom-range-thumb-border-radius:           1rem !default;\n$custom-range-thumb-box-shadow:              0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow:        0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width:  $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg:               lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg:             $gray-500 !default;\n\n$custom-file-height:                $input-height !default;\n$custom-file-height-inner:          $input-height-inner !default;\n$custom-file-focus-border-color:    $input-focus-border-color !default;\n$custom-file-focus-box-shadow:      $input-focus-box-shadow !default;\n$custom-file-disabled-bg:           $input-disabled-bg !default;\n\n$custom-file-padding-y:             $input-padding-y !default;\n$custom-file-padding-x:             $input-padding-x !default;\n$custom-file-line-height:           $input-line-height !default;\n$custom-file-font-family:           $input-font-family !default;\n$custom-file-font-weight:           $input-font-weight !default;\n$custom-file-color:                 $input-color !default;\n$custom-file-bg:                    $input-bg !default;\n$custom-file-border-width:          $input-border-width !default;\n$custom-file-border-color:          $input-border-color !default;\n$custom-file-border-radius:         $input-border-radius !default;\n$custom-file-box-shadow:            $input-box-shadow !default;\n$custom-file-button-color:          $custom-file-color !default;\n$custom-file-button-bg:             $input-group-addon-bg !default;\n$custom-file-text: (\n  en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top:          $form-text-margin-top !default;\n$form-feedback-font-size:           $small-font-size !default;\n$form-feedback-valid-color:         theme-color(\"success\") !default;\n$form-feedback-invalid-color:       theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color:    $form-feedback-valid-color !default;\n$form-feedback-icon-valid:          url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/></svg>\") !default;\n$form-feedback-icon-invalid-color:  $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid:        url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}' viewBox='0 0 12 12'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>\") !default;\n\n$form-validation-states: () !default;\n$form-validation-states: map-merge(\n  (\n    \"valid\": (\n      \"color\": $form-feedback-valid-color,\n      \"icon\": $form-feedback-icon-valid\n    ),\n    \"invalid\": (\n      \"color\": $form-feedback-invalid-color,\n      \"icon\": $form-feedback-icon-invalid\n    ),\n  ),\n  $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown:                   1000 !default;\n$zindex-sticky:                     1020 !default;\n$zindex-fixed:                      1030 !default;\n$zindex-modal-backdrop:             1040 !default;\n$zindex-modal:                      1050 !default;\n$zindex-popover:                    1060 !default;\n$zindex-tooltip:                    1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y:                .5rem !default;\n$nav-link-padding-x:                1rem !default;\n$nav-link-disabled-color:           $gray-600 !default;\n\n$nav-tabs-border-color:             $gray-300 !default;\n$nav-tabs-border-width:             $border-width !default;\n$nav-tabs-border-radius:            $border-radius !default;\n$nav-tabs-link-hover-border-color:  $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color:        $gray-700 !default;\n$nav-tabs-link-active-bg:           $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius:           $border-radius !default;\n$nav-pills-link-active-color:       $component-active-color !default;\n$nav-pills-link-active-bg:          $component-active-bg !default;\n\n$nav-divider-color:                 $gray-200 !default;\n$nav-divider-margin-y:              calc($spacer /2) !default;\n\n\n// Navbar\n\n$navbar-padding-y:                  calc($spacer /2) !default;\n$navbar-padding-x:                  $spacer !default;\n\n$navbar-nav-link-padding-x:         .5rem !default;\n\n$navbar-brand-font-size:            $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height:                   $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height:               $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y:            calc(($nav-link-height - $navbar-brand-height)) !default;\n\n$navbar-toggler-padding-y:          .25rem !default;\n$navbar-toggler-padding-x:          .75rem !default;\n$navbar-toggler-font-size:          $font-size-lg !default;\n$navbar-toggler-border-radius:      $btn-border-radius !default;\n\n$navbar-nav-scroll-max-height:      75vh !default;\n\n$navbar-dark-color:                 rgba($white, .5) !default;\n$navbar-dark-hover-color:           rgba($white, .75) !default;\n$navbar-dark-active-color:          $white !default;\n$navbar-dark-disabled-color:        rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg:       url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-dark-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-dark-toggler-border-color:  rgba($white, .1) !default;\n\n$navbar-light-color:                rgba($black, .5) !default;\n$navbar-light-hover-color:          rgba($black, .7) !default;\n$navbar-light-active-color:         rgba($black, .9) !default;\n$navbar-light-disabled-color:       rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg:      url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color:                $navbar-light-active-color !default;\n$navbar-light-brand-hover-color:          $navbar-light-active-color !default;\n$navbar-dark-brand-color:                 $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color:           $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width:                10rem !default;\n$dropdown-padding-x:                0 !default;\n$dropdown-padding-y:                .5rem !default;\n$dropdown-spacer:                   .125rem !default;\n$dropdown-font-size:                $font-size-base !default;\n$dropdown-color:                    $body-color !default;\n$dropdown-bg:                       $white !default;\n$dropdown-border-color:             rgba($black, .15) !default;\n$dropdown-border-radius:            $border-radius !default;\n$dropdown-border-width:             $border-width !default;\n$dropdown-inner-border-radius:      subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg:               $gray-200 !default;\n$dropdown-divider-margin-y:         $nav-divider-margin-y !default;\n$dropdown-box-shadow:               0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color:               $gray-900 !default;\n$dropdown-link-hover-color:         darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg:            $gray-200 !default;\n\n$dropdown-link-active-color:        $component-active-color !default;\n$dropdown-link-active-bg:           $component-active-bg !default;\n\n$dropdown-link-disabled-color:      $gray-500 !default;\n\n$dropdown-item-padding-y:           .25rem !default;\n$dropdown-item-padding-x:           1.5rem !default;\n\n$dropdown-header-color:             $gray-600 !default;\n$dropdown-header-padding:           $dropdown-padding-y $dropdown-item-padding-x !default;\n\n\n// Pagination\n\n$pagination-padding-y:              .5rem !default;\n$pagination-padding-x:              .75rem !default;\n$pagination-padding-y-sm:           .25rem !default;\n$pagination-padding-x-sm:           .5rem !default;\n$pagination-padding-y-lg:           .75rem !default;\n$pagination-padding-x-lg:           1.5rem !default;\n$pagination-line-height:            1.25 !default;\n\n$pagination-color:                  $link-color !default;\n$pagination-bg:                     $white !default;\n$pagination-border-width:           $border-width !default;\n$pagination-border-color:           $gray-300 !default;\n\n$pagination-focus-box-shadow:       $input-btn-focus-box-shadow !default;\n$pagination-focus-outline:          0 !default;\n\n$pagination-hover-color:            $link-hover-color !default;\n$pagination-hover-bg:               $gray-200 !default;\n$pagination-hover-border-color:     $gray-300 !default;\n\n$pagination-active-color:           $component-active-color !default;\n$pagination-active-bg:              $component-active-bg !default;\n$pagination-active-border-color:    $pagination-active-bg !default;\n\n$pagination-disabled-color:         $gray-600 !default;\n$pagination-disabled-bg:            $white !default;\n$pagination-disabled-border-color:  $gray-300 !default;\n\n$pagination-border-radius-sm:       $border-radius-sm !default;\n$pagination-border-radius-lg:       $border-radius-lg !default;\n\n// Jumbotron\n\n$jumbotron-padding:                 2rem !default;\n$jumbotron-color:                   null !default;\n$jumbotron-bg:                      $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y:                     .75rem !default;\n$card-spacer-x:                     1.25rem !default;\n$card-border-width:                 $border-width !default;\n$card-border-radius:                $border-radius !default;\n$card-border-color:                 rgba($black, .125) !default;\n$card-inner-border-radius:          subtract($card-border-radius, $card-border-width) !default;\n$card-cap-bg:                       rgba($black, .03) !default;\n$card-cap-color:                    null !default;\n$card-height:                       null !default;\n$card-color:                        null !default;\n$card-bg:                           $white !default;\n\n$card-img-overlay-padding:          1.25rem !default;\n\n$card-group-margin:                 calc($grid-gutter-width / 2) !default;\n$card-deck-margin:                  $card-group-margin !default;\n\n$card-columns-count:                3 !default;\n$card-columns-gap:                  1.25rem !default;\n$card-columns-margin:               $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size:                 $font-size-sm !default;\n$tooltip-max-width:                 200px !default;\n$tooltip-color:                     $white !default;\n$tooltip-bg:                        $black !default;\n$tooltip-border-radius:             $border-radius !default;\n$tooltip-opacity:                   .9 !default;\n$tooltip-padding-y:                 .25rem !default;\n$tooltip-padding-x:                 .5rem !default;\n$tooltip-margin:                    0 !default;\n\n$tooltip-arrow-width:               .8rem !default;\n$tooltip-arrow-height:              .4rem !default;\n$tooltip-arrow-color:               $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y:     $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x:     $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size:     $tooltip-font-size !default;\n$form-feedback-tooltip-line-height:   $line-height-base !default;\n$form-feedback-tooltip-opacity:       $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size:                 $font-size-sm !default;\n$popover-bg:                        $white !default;\n$popover-max-width:                 276px !default;\n$popover-border-width:              $border-width !default;\n$popover-border-color:              rgba($black, .2) !default;\n$popover-border-radius:             $border-radius-lg !default;\n$popover-inner-border-radius:       subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow:                0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg:                 darken($popover-bg, 3%) !default;\n$popover-header-color:              $headings-color !default;\n$popover-header-padding-y:          .5rem !default;\n$popover-header-padding-x:          .75rem !default;\n\n$popover-body-color:                $body-color !default;\n$popover-body-padding-y:            $popover-header-padding-y !default;\n$popover-body-padding-x:            $popover-header-padding-x !default;\n\n$popover-arrow-width:               1rem !default;\n$popover-arrow-height:              .5rem !default;\n$popover-arrow-color:               $popover-bg !default;\n\n$popover-arrow-outer-color:         fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width:                   350px !default;\n$toast-padding-x:                   .75rem !default;\n$toast-padding-y:                   .25rem !default;\n$toast-font-size:                   .875rem !default;\n$toast-color:                       null !default;\n$toast-background-color:            rgba($white, .85) !default;\n$toast-border-width:                1px !default;\n$toast-border-color:                rgba(0, 0, 0, .1) !default;\n$toast-border-radius:               .25rem !default;\n$toast-box-shadow:                  0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color:                $gray-600 !default;\n$toast-header-background-color:     rgba($white, .85) !default;\n$toast-header-border-color:         rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size:                   75% !default;\n$badge-font-weight:                 $font-weight-bold !default;\n$badge-padding-y:                   .25em !default;\n$badge-padding-x:                   .4em !default;\n$badge-border-radius:               $border-radius !default;\n\n$badge-transition:                  $btn-transition !default;\n$badge-focus-width:                 $input-btn-focus-width !default;\n\n$badge-pill-padding-x:              .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius:          10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding:               1rem !default;\n\n// Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding\n$modal-footer-margin-between:       .5rem !default;\n\n$modal-dialog-margin:               .5rem !default;\n$modal-dialog-margin-y-sm-up:       1.75rem !default;\n\n$modal-title-line-height:           $line-height-base !default;\n\n$modal-content-color:               null !default;\n$modal-content-bg:                  $white !default;\n$modal-content-border-color:        rgba($black, .2) !default;\n$modal-content-border-width:        $border-width !default;\n$modal-content-border-radius:       $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs:       0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up:    0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg:                 $black !default;\n$modal-backdrop-opacity:            .5 !default;\n$modal-header-border-color:         $border-color !default;\n$modal-footer-border-color:         $modal-header-border-color !default;\n$modal-header-border-width:         $modal-content-border-width !default;\n$modal-footer-border-width:         $modal-header-border-width !default;\n$modal-header-padding-y:            1rem !default;\n$modal-header-padding-x:            1rem !default;\n$modal-header-padding:              $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl:                          1140px !default;\n$modal-lg:                          800px !default;\n$modal-md:                          500px !default;\n$modal-sm:                          300px !default;\n\n$modal-fade-transform:              translate(0, -50px) !default;\n$modal-show-transform:              none !default;\n$modal-transition:                  transform .3s ease-out !default;\n$modal-scale-transform:             scale(1.02) !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y:                   .75rem !default;\n$alert-padding-x:                   1.25rem !default;\n$alert-margin-bottom:               1rem !default;\n$alert-border-radius:               $border-radius !default;\n$alert-link-font-weight:            $font-weight-bold !default;\n$alert-border-width:                $border-width !default;\n\n$alert-bg-level:                    -10 !default;\n$alert-border-level:                -9 !default;\n$alert-color-level:                 6 !default;\n\n\n// Progress bars\n\n$progress-height:                   1rem !default;\n$progress-font-size:                $font-size-base * .75 !default;\n$progress-bg:                       $gray-200 !default;\n$progress-border-radius:            $border-radius !default;\n$progress-box-shadow:               inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color:                $white !default;\n$progress-bar-bg:                   theme-color(\"primary\") !default;\n$progress-bar-animation-timing:     1s linear infinite !default;\n$progress-bar-transition:           width .6s ease !default;\n\n\n// List group\n\n$list-group-color:                  null !default;\n$list-group-bg:                     $white !default;\n$list-group-border-color:           rgba($black, .125) !default;\n$list-group-border-width:           $border-width !default;\n$list-group-border-radius:          $border-radius !default;\n\n$list-group-item-padding-y:         .75rem !default;\n$list-group-item-padding-x:         1.25rem !default;\n\n$list-group-hover-bg:               $gray-100 !default;\n$list-group-active-color:           $component-active-color !default;\n$list-group-active-bg:              $component-active-bg !default;\n$list-group-active-border-color:    $list-group-active-bg !default;\n\n$list-group-disabled-color:         $gray-600 !default;\n$list-group-disabled-bg:            $list-group-bg !default;\n\n$list-group-action-color:           $gray-700 !default;\n$list-group-action-hover-color:     $list-group-action-color !default;\n\n$list-group-action-active-color:    $body-color !default;\n$list-group-action-active-bg:       $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding:                 .25rem !default;\n$thumbnail-bg:                      $body-bg !default;\n$thumbnail-border-width:            $border-width !default;\n$thumbnail-border-color:            $gray-300 !default;\n$thumbnail-border-radius:           $border-radius !default;\n$thumbnail-box-shadow:              0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size:          90% !default;\n$figure-caption-color:              $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-font-size:              null !default;\n\n$breadcrumb-padding-y:              .75rem !default;\n$breadcrumb-padding-x:              1rem !default;\n$breadcrumb-item-padding:           .5rem !default;\n\n$breadcrumb-margin-bottom:          1rem !default;\n\n$breadcrumb-bg:                     $gray-200 !default;\n$breadcrumb-divider-color:          $gray-600 !default;\n$breadcrumb-active-color:           $gray-600 !default;\n$breadcrumb-divider:                quote(\"/\") !default;\n\n$breadcrumb-border-radius:          $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color:             $white !default;\n$carousel-control-width:             15% !default;\n$carousel-control-opacity:           .5 !default;\n$carousel-control-hover-opacity:     .9 !default;\n$carousel-control-transition:        opacity .15s ease !default;\n\n$carousel-indicator-width:           30px !default;\n$carousel-indicator-height:          3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer:          3px !default;\n$carousel-indicator-active-bg:       $white !default;\n$carousel-indicator-transition:      opacity .6s ease !default;\n\n$carousel-caption-width:             70% !default;\n$carousel-caption-color:             $white !default;\n\n$carousel-control-icon-width:        20px !default;\n\n$carousel-control-prev-icon-bg:      url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/></svg>\") !default;\n$carousel-control-next-icon-bg:      url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/></svg>\") !default;\n\n$carousel-transition-duration:       .6s !default;\n$carousel-transition:                transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width:         2rem !default;\n$spinner-height:        $spinner-width !default;\n$spinner-border-width:  .25em !default;\n\n$spinner-width-sm:        1rem !default;\n$spinner-height-sm:       $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size:                   $font-size-base * 1.5 !default;\n$close-font-weight:                 $font-weight-bold !default;\n$close-color:                       $black !default;\n$close-text-shadow:                 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size:                    87.5% !default;\n$code-color:                        $pink !default;\n\n$kbd-padding-y:                     .2rem !default;\n$kbd-padding-x:                     .4rem !default;\n$kbd-font-size:                     $code-font-size !default;\n$kbd-color:                         $white !default;\n$kbd-bg:                            $gray-900 !default;\n\n$pre-color:                         $gray-900 !default;\n$pre-scrollable-max-height:         340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n$user-selects: all, auto, none !default;\n\n\n// Printing\n\n$print-page-size:                   a3 !default;\n$print-body-min-width:              map-get($grid-breakpoints, \"lg\") !default;\n"
  },
  {
    "path": "lib/bootstrap4/bootstrap-grid.scss",
    "content": "/*!\n * Bootstrap Grid v4.6.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\nhtml {\n  box-sizing: border-box;\n  -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/deprecate\";\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n@import \"utilities/spacing\";\n"
  },
  {
    "path": "lib/bootstrap4/bootstrap-reboot.scss",
    "content": "/*!\n * Bootstrap Reboot v4.6.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"reboot\";\n"
  },
  {
    "path": "lib/bootstrap4/bootstrap.scss",
    "content": "/*!\n * Bootstrap v4.6.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"utilities\";\n@import \"print\";\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_alert.scss",
    "content": "@mixin alert-variant($background, $border, $color) {\n  color: $color;\n  @include gradient-bg($background);\n  border-color: $border;\n\n  hr {\n    border-top-color: darken($border, 5%);\n  }\n\n  .alert-link {\n    color: darken($color, 10%);\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_background-variant.scss",
    "content": "// stylelint-disable declaration-no-important\n\n// Contextual backgrounds\n\n@mixin bg-variant($parent, $color, $ignore-warning: false) {\n  #{$parent} {\n    background-color: $color !important;\n  }\n  a#{$parent},\n  button#{$parent} {\n    @include hover-focus() {\n      background-color: darken($color, 10%) !important;\n    }\n  }\n  @include deprecate(\"The `bg-variant` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n\n@mixin bg-gradient-variant($parent, $color, $ignore-warning: false) {\n  #{$parent} {\n    background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;\n  }\n  @include deprecate(\"The `bg-gradient-variant` mixin\", \"v4.5.0\", \"v5\", $ignore-warning);\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_badge.scss",
    "content": "@mixin badge-variant($bg) {\n  color: color-yiq($bg);\n  background-color: $bg;\n\n  @at-root a#{&} {\n    @include hover-focus() {\n      color: color-yiq($bg);\n      background-color: darken($bg, 10%);\n    }\n\n    &:focus,\n    &.focus {\n      outline: 0;\n      box-shadow: 0 0 0 $badge-focus-width rgba($bg, .5);\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_border-radius.scss",
    "content": "// stylelint-disable property-disallowed-list\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n  $return: ();\n  @each $value in $radius {\n    @if type-of($value) == number {\n      $return: append($return, max($value, 0));\n    } @else {\n      $return: append($return, $value);\n    }\n  }\n  @return $return;\n}\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n  @if $enable-rounded {\n    border-radius: valid-radius($radius);\n  }\n  @else if $fallback-border-radius != false {\n    border-radius: $fallback-border-radius;\n  }\n}\n\n@mixin border-top-radius($radius) {\n  @if $enable-rounded {\n    border-top-left-radius: valid-radius($radius);\n    border-top-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-right-radius($radius) {\n  @if $enable-rounded {\n    border-top-right-radius: valid-radius($radius);\n    border-bottom-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-bottom-radius($radius) {\n  @if $enable-rounded {\n    border-bottom-right-radius: valid-radius($radius);\n    border-bottom-left-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-left-radius($radius) {\n  @if $enable-rounded {\n    border-top-left-radius: valid-radius($radius);\n    border-bottom-left-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-top-left-radius($radius) {\n  @if $enable-rounded {\n    border-top-left-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-top-right-radius($radius) {\n  @if $enable-rounded {\n    border-top-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-bottom-right-radius($radius) {\n  @if $enable-rounded {\n    border-bottom-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-bottom-left-radius($radius) {\n  @if $enable-rounded {\n    border-bottom-left-radius: valid-radius($radius);\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_box-shadow.scss",
    "content": "@mixin box-shadow($shadow...) {\n  @if $enable-shadows {\n    $result: ();\n\n    @if (length($shadow) == 1) {\n      // We can pass `@include box-shadow(none);`\n      $result: $shadow;\n    } @else {\n      // Filter to avoid invalid properties for example `box-shadow: none, 1px 1px black;`\n      @for $i from 1 through length($shadow) {\n        @if nth($shadow, $i) != \"none\" {\n          $result: append($result, nth($shadow, $i), \"comma\");\n        }\n      }\n    }\n    @if (length($result) > 0) {\n      box-shadow: $result;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_breakpoints.scss",
    "content": "// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n//    (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n//    >> breakpoint-next(sm)\n//    md\n//    >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    md\n//    >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n//    md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n  $n: index($breakpoint-names, $name);\n  @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n//    >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n  $min: map-get($breakpoints, $name);\n  @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n//    >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n  $next: breakpoint-next($name, $breakpoints);\n  @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n//    >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    \"\"  (Returns a blank string)\n//    >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n  @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  @if $min {\n    @media (min-width: $min) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n  $max: breakpoint-max($name, $breakpoints);\n  @if $max {\n    @media (max-width: $max) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($lower, $breakpoints);\n  $max: breakpoint-max($upper, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($lower, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($upper, $breakpoints) {\n      @content;\n    }\n  }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  $max: breakpoint-max($name, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($name, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($name, $breakpoints) {\n      @content;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_buttons.scss",
    "content": "// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {\n  color: color-yiq($background);\n  @include gradient-bg($background);\n  border-color: $border;\n  @include box-shadow($btn-box-shadow);\n\n  @include hover() {\n    color: color-yiq($hover-background);\n    @include gradient-bg($hover-background);\n    border-color: $hover-border;\n  }\n\n  &:focus,\n  &.focus {\n    color: color-yiq($hover-background);\n    @include gradient-bg($hover-background);\n    border-color: $hover-border;\n    @if $enable-shadows {\n      @include box-shadow($btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5));\n    } @else {\n      // Avoid using mixin so we can pass custom focus shadow properly\n      box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n    }\n  }\n\n  // Disabled comes first so active can properly restyle\n  &.disabled,\n  &:disabled {\n    color: color-yiq($background);\n    background-color: $background;\n    border-color: $border;\n    // Remove CSS gradients if they're enabled\n    @if $enable-gradients {\n      background-image: none;\n    }\n  }\n\n  &:not(:disabled):not(.disabled):active,\n  &:not(:disabled):not(.disabled).active,\n  .show > &.dropdown-toggle {\n    color: color-yiq($active-background);\n    background-color: $active-background;\n    @if $enable-gradients {\n      background-image: none; // Remove the gradient for the pressed/active state\n    }\n    border-color: $active-border;\n\n    &:focus {\n      @if $enable-shadows and $btn-active-box-shadow != none {\n        @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5));\n      } @else {\n        // Avoid using mixin so we can pass custom focus shadow properly\n        box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n      }\n    }\n  }\n}\n\n@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {\n  color: $color;\n  border-color: $color;\n\n  @include hover() {\n    color: $color-hover;\n    background-color: $active-background;\n    border-color: $active-border;\n  }\n\n  &:focus,\n  &.focus {\n    box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n  }\n\n  &.disabled,\n  &:disabled {\n    color: $color;\n    background-color: transparent;\n  }\n\n  &:not(:disabled):not(.disabled):active,\n  &:not(:disabled):not(.disabled).active,\n  .show > &.dropdown-toggle {\n    color: color-yiq($active-background);\n    background-color: $active-background;\n    border-color: $active-border;\n\n    &:focus {\n      @if $enable-shadows and $btn-active-box-shadow != none {\n        @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5));\n      } @else {\n        // Avoid using mixin so we can pass custom focus shadow properly\n        box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n      }\n    }\n  }\n}\n\n// Button sizes\n@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n  padding: $padding-y $padding-x;\n  @include font-size($font-size);\n  line-height: $line-height;\n  // Manually declare to provide an override to the browser default\n  @include border-radius($border-radius, 0);\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_caret.scss",
    "content": "@mixin caret-down() {\n  border-top: $caret-width solid;\n  border-right: $caret-width solid transparent;\n  border-bottom: 0;\n  border-left: $caret-width solid transparent;\n}\n\n@mixin caret-up() {\n  border-top: 0;\n  border-right: $caret-width solid transparent;\n  border-bottom: $caret-width solid;\n  border-left: $caret-width solid transparent;\n}\n\n@mixin caret-right() {\n  border-top: $caret-width solid transparent;\n  border-right: 0;\n  border-bottom: $caret-width solid transparent;\n  border-left: $caret-width solid;\n}\n\n@mixin caret-left() {\n  border-top: $caret-width solid transparent;\n  border-right: $caret-width solid;\n  border-bottom: $caret-width solid transparent;\n}\n\n@mixin caret($direction: down) {\n  @if $enable-caret {\n    &::after {\n      display: inline-block;\n      margin-left: $caret-spacing;\n      vertical-align: $caret-vertical-align;\n      content: \"\";\n      @if $direction == down {\n        @include caret-down();\n      } @else if $direction == up {\n        @include caret-up();\n      } @else if $direction == right {\n        @include caret-right();\n      }\n    }\n\n    @if $direction == left {\n      &::after {\n        display: none;\n      }\n\n      &::before {\n        display: inline-block;\n        margin-right: $caret-spacing;\n        vertical-align: $caret-vertical-align;\n        content: \"\";\n        @include caret-left();\n      }\n    }\n\n    &:empty::after {\n      margin-left: 0;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_clearfix.scss",
    "content": "@mixin clearfix() {\n  &::after {\n    display: block;\n    clear: both;\n    content: \"\";\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_deprecate.scss",
    "content": "// Deprecate mixin\n//\n// This mixin can be used to deprecate mixins or functions.\n// `$enable-deprecation-messages` is a global variable, `$ignore-warning` is a variable that can be passed to\n// some deprecated mixins to suppress the warning (for example if the mixin is still be used in the current version of Bootstrap)\n@mixin deprecate($name, $deprecate-version, $remove-version, $ignore-warning: false) {\n  @if ($enable-deprecation-messages != false and $ignore-warning != true) {\n    @warn \"#{$name} has been deprecated as of #{$deprecate-version}. It will be removed entirely in #{$remove-version}.\";\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_float.scss",
    "content": "// stylelint-disable declaration-no-important\n\n@mixin float-left() {\n  float: left !important;\n  @include deprecate(\"The `float-left` mixin\", \"v4.3.0\", \"v5\");\n}\n@mixin float-right() {\n  float: right !important;\n  @include deprecate(\"The `float-right` mixin\", \"v4.3.0\", \"v5\");\n}\n@mixin float-none() {\n  float: none !important;\n  @include deprecate(\"The `float-none` mixin\", \"v4.3.0\", \"v5\");\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_forms.scss",
    "content": "// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `$input-focus-border-color` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n@mixin form-control-focus($ignore-warning: false) {\n  &:focus {\n    color: $input-focus-color;\n    background-color: $input-focus-bg;\n    border-color: $input-focus-border-color;\n    outline: 0;\n    @if $enable-shadows {\n      @include box-shadow($input-box-shadow, $input-focus-box-shadow);\n    } @else {\n      // Avoid using mixin so we can pass custom focus shadow properly\n      box-shadow: $input-focus-box-shadow;\n    }\n  }\n  @include deprecate(\"The `form-control-focus()` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n\n// This mixin uses an `if()` technique to be compatible with Dart Sass\n// See https://github.com/sass/sass/issues/1873#issuecomment-152293725 for more details\n@mixin form-validation-state-selector($state) {\n  @if ($state == \"valid\" or $state == \"invalid\") {\n    .was-validated #{if(&, \"&\", \"\")}:#{$state},\n    #{if(&, \"&\", \"\")}.is-#{$state} {\n      @content;\n    }\n  } @else {\n    #{if(&, \"&\", \"\")}.is-#{$state} {\n      @content;\n    }\n  }\n}\n\n@mixin form-validation-state($state, $color, $icon) {\n  .#{$state}-feedback {\n    display: none;\n    width: 100%;\n    margin-top: $form-feedback-margin-top;\n    @include font-size($form-feedback-font-size);\n    color: $color;\n  }\n\n  .#{$state}-tooltip {\n    position: absolute;\n    top: 100%;\n    left: 0;\n    z-index: 5;\n    display: none;\n    max-width: 100%; // Contain to parent when possible\n    padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;\n    margin-top: .1rem;\n    @include font-size($form-feedback-tooltip-font-size);\n    line-height: $form-feedback-tooltip-line-height;\n    color: color-yiq($color);\n    background-color: rgba($color, $form-feedback-tooltip-opacity);\n    @include border-radius($form-feedback-tooltip-border-radius);\n\n    // See https://github.com/twbs/bootstrap/pull/31557\n    // Align tooltip to form elements\n    .form-row > .col > &,\n    .form-row > [class*=\"col-\"] > & {\n      left: $form-grid-gutter-width / 2;\n    }\n  }\n\n  @include form-validation-state-selector($state) {\n    ~ .#{$state}-feedback,\n    ~ .#{$state}-tooltip {\n      display: block;\n    }\n  }\n\n  .form-control {\n    @include form-validation-state-selector($state) {\n      border-color: $color;\n\n      @if $enable-validation-icons {\n        padding-right: $input-height-inner;\n        background-image: escape-svg($icon);\n        background-repeat: no-repeat;\n        background-position: right $input-height-inner-quarter center;\n        background-size: $input-height-inner-half $input-height-inner-half;\n      }\n\n      &:focus {\n        border-color: $color;\n        box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n      }\n    }\n  }\n\n  // stylelint-disable-next-line selector-no-qualifying-type\n  textarea.form-control {\n    @include form-validation-state-selector($state) {\n      @if $enable-validation-icons {\n        padding-right: $input-height-inner;\n        background-position: top $input-height-inner-quarter right $input-height-inner-quarter;\n      }\n    }\n  }\n\n  .custom-select {\n    @include form-validation-state-selector($state) {\n      border-color: $color;\n\n      @if $enable-validation-icons {\n        padding-right: $custom-select-feedback-icon-padding-right;\n        background: $custom-select-background, $custom-select-bg escape-svg($icon) $custom-select-feedback-icon-position / $custom-select-feedback-icon-size no-repeat;\n      }\n\n      &:focus {\n        border-color: $color;\n        box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n      }\n    }\n  }\n\n  .form-check-input {\n    @include form-validation-state-selector($state) {\n      ~ .form-check-label {\n        color: $color;\n      }\n\n      ~ .#{$state}-feedback,\n      ~ .#{$state}-tooltip {\n        display: block;\n      }\n    }\n  }\n\n  .custom-control-input {\n    @include form-validation-state-selector($state) {\n      ~ .custom-control-label {\n        color: $color;\n\n        &::before {\n          border-color: $color;\n        }\n      }\n\n      &:checked {\n        ~ .custom-control-label::before {\n          border-color: lighten($color, 10%);\n          @include gradient-bg(lighten($color, 10%));\n        }\n      }\n\n      &:focus {\n        ~ .custom-control-label::before {\n          box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n        }\n\n        &:not(:checked) ~ .custom-control-label::before {\n          border-color: $color;\n        }\n      }\n    }\n  }\n\n  // custom file\n  .custom-file-input {\n    @include form-validation-state-selector($state) {\n      ~ .custom-file-label {\n        border-color: $color;\n      }\n\n      &:focus {\n        ~ .custom-file-label {\n          border-color: $color;\n          box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_gradients.scss",
    "content": "// Gradients\n\n@mixin gradient-bg($color) {\n  @if $enable-gradients {\n    background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;\n  } @else {\n    background-color: $color;\n  }\n}\n\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n  background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n  background-repeat: repeat-x;\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n  background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n  background-repeat: repeat-x;\n}\n\n@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {\n  background-image: linear-gradient($deg, $start-color, $end-color);\n  background-repeat: repeat-x;\n}\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n  background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n  background-repeat: no-repeat;\n}\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n  background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n  background-repeat: no-repeat;\n}\n@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {\n  background-image: radial-gradient(circle, $inner-color, $outer-color);\n  background-repeat: no-repeat;\n}\n@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {\n  background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_grid-framework.scss",
    "content": "// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n  // Common properties for all breakpoints\n  %grid-column {\n    position: relative;\n    width: 100%;\n    padding-right: $gutter / 2;\n    padding-left: $gutter / 2;\n  }\n\n  @each $breakpoint in map-keys($breakpoints) {\n    $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n    @if $columns > 0 {\n      // Allow columns to stretch full width below their breakpoints\n      @for $i from 1 through $columns {\n        .col#{$infix}-#{$i} {\n          @extend %grid-column;\n        }\n      }\n    }\n\n    .col#{$infix},\n    .col#{$infix}-auto {\n      @extend %grid-column;\n    }\n\n    @include media-breakpoint-up($breakpoint, $breakpoints) {\n      // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n      .col#{$infix} {\n        flex-basis: 0;\n        flex-grow: 1;\n        max-width: 100%;\n      }\n\n      @if $grid-row-columns > 0 {\n        @for $i from 1 through $grid-row-columns {\n          .row-cols#{$infix}-#{$i} {\n            @include row-cols($i);\n          }\n        }\n      }\n\n      .col#{$infix}-auto {\n        @include make-col-auto();\n      }\n\n      @if $columns > 0 {\n        @for $i from 1 through $columns {\n          .col#{$infix}-#{$i} {\n            @include make-col($i, $columns);\n          }\n        }\n      }\n\n      .order#{$infix}-first { order: -1; }\n\n      .order#{$infix}-last { order: $columns + 1; }\n\n      @for $i from 0 through $columns {\n        .order#{$infix}-#{$i} { order: $i; }\n      }\n\n      @if $columns > 0 {\n        // `$columns - 1` because offsetting by the width of an entire row isn't possible\n        @for $i from 0 through ($columns - 1) {\n          @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n            .offset#{$infix}-#{$i} {\n              @include make-col-offset($i, $columns);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_grid.scss",
    "content": "/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n  width: 100%;\n  padding-right: $gutter / 2;\n  padding-left: $gutter / 2;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n  display: flex;\n  flex-wrap: wrap;\n  margin-right: -$gutter / 2;\n  margin-left: -$gutter / 2;\n}\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n  @each $breakpoint, $container-max-width in $max-widths {\n    @include media-breakpoint-up($breakpoint, $breakpoints) {\n      max-width: $container-max-width;\n    }\n  }\n  @include deprecate(\"The `make-container-max-widths` mixin\", \"v4.5.2\", \"v5\");\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n  position: relative;\n  // Prevent columns from becoming too narrow when at smaller grid tiers by\n  // always setting `width: 100%;`. This works because we use `flex` values\n  // later on to override this initial width.\n  width: 100%;\n  padding-right: $gutter / 2;\n  padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n  flex: 0 0 percentage($size / $columns);\n  // Add a `max-width` to ensure content within each column does not blow out\n  // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n  // do not appear to require this.\n  max-width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n  flex: 0 0 auto;\n  width: auto;\n  max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n  $num: $size / $columns;\n  margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n  > * {\n    flex: 0 0 100% / $count;\n    max-width: 100% / $count;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_hover.scss",
    "content": "// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover() {\n  &:hover { @content; }\n}\n\n@mixin hover-focus() {\n  &:hover,\n  &:focus {\n    @content;\n  }\n}\n\n@mixin plain-hover-focus() {\n  &,\n  &:hover,\n  &:focus {\n    @content;\n  }\n}\n\n@mixin hover-focus-active() {\n  &:hover,\n  &:focus,\n  &:active {\n    @content;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_image.scss",
    "content": "// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid() {\n  // Part 1: Set a maximum relative to the parent\n  max-width: 100%;\n  // Part 2: Override the height to auto, otherwise images will be stretched\n  // when setting a width and height attribute on the img element.\n  height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n  background-image: url($file-1x);\n\n  // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n  // but doesn't convert dppx=>dpi.\n  // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n  // Compatibility info: https://caniuse.com/css-media-resolution\n  @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n    only screen and (min-resolution: 2dppx) { // Standardized\n    background-image: url($file-2x);\n    background-size: $width-1x $height-1x;\n  }\n  @include deprecate(\"`img-retina()`\", \"v4.3.0\", \"v5\");\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_list-group.scss",
    "content": "// List Groups\n\n@mixin list-group-item-variant($state, $background, $color) {\n  .list-group-item-#{$state} {\n    color: $color;\n    background-color: $background;\n\n    &.list-group-item-action {\n      @include hover-focus() {\n        color: $color;\n        background-color: darken($background, 5%);\n      }\n\n      &.active {\n        color: $white;\n        background-color: $color;\n        border-color: $color;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_lists.scss",
    "content": "// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled() {\n  padding-left: 0;\n  list-style: none;\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_nav-divider.scss",
    "content": "// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n@mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y, $ignore-warning: false) {\n  height: 0;\n  margin: $margin-y 0;\n  overflow: hidden;\n  border-top: 1px solid $color;\n  @include deprecate(\"The `nav-divider()` mixin\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_pagination.scss",
    "content": "// Pagination\n\n@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n  .page-link {\n    padding: $padding-y $padding-x;\n    @include font-size($font-size);\n    line-height: $line-height;\n  }\n\n  .page-item {\n    &:first-child {\n      .page-link {\n        @include border-left-radius($border-radius);\n      }\n    }\n    &:last-child {\n      .page-link {\n        @include border-right-radius($border-radius);\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_reset-text.scss",
    "content": "@mixin reset-text() {\n  font-family: $font-family-base;\n  // We deliberately do NOT reset font-size or word-wrap.\n  font-style: normal;\n  font-weight: $font-weight-normal;\n  line-height: $line-height-base;\n  text-align: left; // Fallback for where `start` is not supported\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_resize.scss",
    "content": "// Resize anything\n\n@mixin resizable($direction) {\n  overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`\n  resize: $direction; // Options: horizontal, vertical, both\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_screen-reader.scss",
    "content": "// Only display content to screen readers\n//\n// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\n// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin sr-only() {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px; // Fix for https://github.com/twbs/bootstrap/issues/25686\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap;\n  border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n@mixin sr-only-focusable() {\n  &:active,\n  &:focus {\n    position: static;\n    width: auto;\n    height: auto;\n    overflow: visible;\n    clip: auto;\n    white-space: normal;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_size.scss",
    "content": "// Sizing shortcuts\n\n@mixin size($width, $height: $width) {\n  width: $width;\n  height: $height;\n  @include deprecate(\"`size()`\", \"v4.3.0\", \"v5\");\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_table-row.scss",
    "content": "// Tables\n\n@mixin table-row-variant($state, $background, $border: null) {\n  // Exact selectors below required to override `.table-striped` and prevent\n  // inheritance to nested tables.\n  .table-#{$state} {\n    &,\n    > th,\n    > td {\n      background-color: $background;\n    }\n\n    @if $border != null {\n      th,\n      td,\n      thead th,\n      tbody + tbody {\n        border-color: $border;\n      }\n    }\n  }\n\n  // Hover states for `.table-hover`\n  // Note: this is not available for cells or rows within `thead` or `tfoot`.\n  .table-hover {\n    $hover-background: darken($background, 5%);\n\n    .table-#{$state} {\n      @include hover() {\n        background-color: $hover-background;\n\n        > td,\n        > th {\n          background-color: $hover-background;\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_text-emphasis.scss",
    "content": "// stylelint-disable declaration-no-important\n\n// Typography\n\n@mixin text-emphasis-variant($parent, $color, $ignore-warning: false) {\n  #{$parent} {\n    color: $color !important;\n  }\n  @if $emphasized-link-hover-darken-percentage != 0 {\n    a#{$parent} {\n      @include hover-focus() {\n        color: darken($color, $emphasized-link-hover-darken-percentage) !important;\n      }\n    }\n  }\n  @include deprecate(\"`text-emphasis-variant()`\", \"v4.4.0\", \"v5\", $ignore-warning);\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_text-hide.scss",
    "content": "// CSS image replacement\n@mixin text-hide($ignore-warning: false) {\n  // stylelint-disable-next-line font-family-no-missing-generic-family-keyword\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n\n  @include deprecate(\"`text-hide()`\", \"v4.1.0\", \"v5\", $ignore-warning);\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_text-truncate.scss",
    "content": "// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_transition.scss",
    "content": "// stylelint-disable property-disallowed-list\n@mixin transition($transition...) {\n  @if length($transition) == 0 {\n    $transition: $transition-base;\n  }\n\n  @if length($transition) > 1 {\n    @each $value in $transition {\n      @if $value == null or $value == none {\n        @warn \"The keyword 'none' or 'null' must be used as a single argument.\";\n      }\n    }\n  }\n\n  @if $enable-transitions {\n    @if nth($transition, 1) != null {\n      transition: $transition;\n    }\n\n    @if $enable-prefers-reduced-motion-media-query and nth($transition, 1) != null and nth($transition, 1) != none {\n      @media (prefers-reduced-motion: reduce) {\n        transition: none;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/mixins/_visibility.scss",
    "content": "// stylelint-disable declaration-no-important\n\n// Visibility\n\n@mixin invisible($visibility) {\n  visibility: $visibility !important;\n  @include deprecate(\"`invisible()`\", \"v4.3.0\", \"v5\");\n}\n"
  },
  {
    "path": "lib/bootstrap4/utilities/_align.scss",
    "content": "// stylelint-disable declaration-no-important\n\n.align-baseline    { vertical-align: baseline !important; } // Browser default\n.align-top         { vertical-align: top !important; }\n.align-middle      { vertical-align: middle !important; }\n.align-bottom      { vertical-align: bottom !important; }\n.align-text-bottom { vertical-align: text-bottom !important; }\n.align-text-top    { vertical-align: text-top !important; }\n"
  },
  {
    "path": "lib/bootstrap4/utilities/_background.scss",
    "content": "// stylelint-disable declaration-no-important\n\n@each $color, $value in $theme-colors {\n  @include bg-variant(\".bg-#{$color}\", $value, true);\n}\n\n@if $enable-gradients {\n  @each $color, $value in $theme-colors {\n    @include bg-gradient-variant(\".bg-gradient-#{$color}\", $value, true);\n  }\n}\n\n.bg-white {\n  background-color: $white !important;\n}\n\n.bg-transparent {\n  background-color: transparent !important;\n}\n"
  },
  {
    "path": "lib/bootstrap4/utilities/_borders.scss",
    "content": "// stylelint-disable property-disallowed-list, declaration-no-important\n\n//\n// Border\n//\n\n.border         { border: $border-width solid $border-color !important; }\n.border-top     { border-top: $border-width solid $border-color !important; }\n.border-right   { border-right: $border-width solid $border-color !important; }\n.border-bottom  { border-bottom: $border-width solid $border-color !important; }\n.border-left    { border-left: $border-width solid $border-color !important; }\n\n.border-0        { border: 0 !important; }\n.border-top-0    { border-top: 0 !important; }\n.border-right-0  { border-right: 0 !important; }\n.border-bottom-0 { border-bottom: 0 !important; }\n.border-left-0   { border-left: 0 !important; }\n\n@each $color, $value in $theme-colors {\n  .border-#{$color} {\n    border-color: $value !important;\n  }\n}\n\n.border-white {\n  border-color: $white !important;\n}\n\n//\n// Border-radius\n//\n\n.rounded-sm {\n  border-radius: $border-radius-sm !important;\n}\n\n.rounded {\n  border-radius: $border-radius !important;\n}\n\n.rounded-top {\n  border-top-left-radius: $border-radius !important;\n  border-top-right-radius: $border-radius !important;\n}\n\n.rounded-right {\n  border-top-right-radius: $border-radius !important;\n  border-bottom-right-radius: $border-radius !important;\n}\n\n.rounded-bottom {\n  border-bottom-right-radius: $border-radius !important;\n  border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-left {\n  border-top-left-radius: $border-radius !important;\n  border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-lg {\n  border-radius: $border-radius-lg !important;\n}\n\n.rounded-circle {\n  border-radius: 50% !important;\n}\n\n.rounded-pill {\n  border-radius: $rounded-pill !important;\n}\n\n.rounded-0 {\n  border-radius: 0 !important;\n}\n"
  },
  {
    "path": "lib/bootstrap4/utilities/_clearfix.scss",
    "content": ".clearfix {\n  @include clearfix();\n}\n"
  },
  {
    "path": "lib/bootstrap4/utilities/_display.scss",
    "content": "// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    @each $value in $displays {\n      .d#{$infix}-#{$value} { display: $value !important; }\n    }\n  }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n  @each $value in $displays {\n    .d-print-#{$value} { display: $value !important; }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/utilities/_embed.scss",
    "content": "// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  width: 100%;\n  padding: 0;\n  overflow: hidden;\n\n  &::before {\n    display: block;\n    content: \"\";\n  }\n\n  .embed-responsive-item,\n  iframe,\n  embed,\n  object,\n  video {\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    border: 0;\n  }\n}\n\n@each $embed-responsive-aspect-ratio in $embed-responsive-aspect-ratios {\n  $embed-responsive-aspect-ratio-x: nth($embed-responsive-aspect-ratio, 1);\n  $embed-responsive-aspect-ratio-y: nth($embed-responsive-aspect-ratio, 2);\n\n  .embed-responsive-#{$embed-responsive-aspect-ratio-x}by#{$embed-responsive-aspect-ratio-y} {\n    &::before {\n      padding-top: percentage($embed-responsive-aspect-ratio-y / $embed-responsive-aspect-ratio-x);\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/utilities/_flex.scss",
    "content": "// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .flex#{$infix}-row            { flex-direction: row !important; }\n    .flex#{$infix}-column         { flex-direction: column !important; }\n    .flex#{$infix}-row-reverse    { flex-direction: row-reverse !important; }\n    .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n    .flex#{$infix}-wrap         { flex-wrap: wrap !important; }\n    .flex#{$infix}-nowrap       { flex-wrap: nowrap !important; }\n    .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n    .flex#{$infix}-fill         { flex: 1 1 auto !important; }\n    .flex#{$infix}-grow-0       { flex-grow: 0 !important; }\n    .flex#{$infix}-grow-1       { flex-grow: 1 !important; }\n    .flex#{$infix}-shrink-0     { flex-shrink: 0 !important; }\n    .flex#{$infix}-shrink-1     { flex-shrink: 1 !important; }\n\n    .justify-content#{$infix}-start   { justify-content: flex-start !important; }\n    .justify-content#{$infix}-end     { justify-content: flex-end !important; }\n    .justify-content#{$infix}-center  { justify-content: center !important; }\n    .justify-content#{$infix}-between { justify-content: space-between !important; }\n    .justify-content#{$infix}-around  { justify-content: space-around !important; }\n\n    .align-items#{$infix}-start    { align-items: flex-start !important; }\n    .align-items#{$infix}-end      { align-items: flex-end !important; }\n    .align-items#{$infix}-center   { align-items: center !important; }\n    .align-items#{$infix}-baseline { align-items: baseline !important; }\n    .align-items#{$infix}-stretch  { align-items: stretch !important; }\n\n    .align-content#{$infix}-start   { align-content: flex-start !important; }\n    .align-content#{$infix}-end     { align-content: flex-end !important; }\n    .align-content#{$infix}-center  { align-content: center !important; }\n    .align-content#{$infix}-between { align-content: space-between !important; }\n    .align-content#{$infix}-around  { align-content: space-around !important; }\n    .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n    .align-self#{$infix}-auto     { align-self: auto !important; }\n    .align-self#{$infix}-start    { align-self: flex-start !important; }\n    .align-self#{$infix}-end      { align-self: flex-end !important; }\n    .align-self#{$infix}-center   { align-self: center !important; }\n    .align-self#{$infix}-baseline { align-self: baseline !important; }\n    .align-self#{$infix}-stretch  { align-self: stretch !important; }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/utilities/_float.scss",
    "content": "// stylelint-disable declaration-no-important\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .float#{$infix}-left  { float: left !important; }\n    .float#{$infix}-right { float: right !important; }\n    .float#{$infix}-none  { float: none !important; }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/utilities/_interactions.scss",
    "content": "// stylelint-disable declaration-no-important\n\n@each $value in $user-selects {\n  .user-select-#{$value} { user-select: $value !important; }\n}\n"
  },
  {
    "path": "lib/bootstrap4/utilities/_overflow.scss",
    "content": "// stylelint-disable declaration-no-important\n\n@each $value in $overflows {\n  .overflow-#{$value} { overflow: $value !important; }\n}\n"
  },
  {
    "path": "lib/bootstrap4/utilities/_position.scss",
    "content": "// stylelint-disable declaration-no-important\n\n// Common values\n@each $position in $positions {\n  .position-#{$position} { position: $position !important; }\n}\n\n// Shorthand\n\n.fixed-top {\n  position: fixed;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: $zindex-fixed;\n}\n\n.fixed-bottom {\n  position: fixed;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $zindex-fixed;\n}\n\n.sticky-top {\n  @supports (position: sticky) {\n    position: sticky;\n    top: 0;\n    z-index: $zindex-sticky;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/utilities/_screenreaders.scss",
    "content": "//\n// Screenreaders\n//\n\n.sr-only {\n  @include sr-only();\n}\n\n.sr-only-focusable {\n  @include sr-only-focusable();\n}\n"
  },
  {
    "path": "lib/bootstrap4/utilities/_shadows.scss",
    "content": "// stylelint-disable declaration-no-important\n\n.shadow-sm { box-shadow: $box-shadow-sm !important; }\n.shadow { box-shadow: $box-shadow !important; }\n.shadow-lg { box-shadow: $box-shadow-lg !important; }\n.shadow-none { box-shadow: none !important; }\n"
  },
  {
    "path": "lib/bootstrap4/utilities/_sizing.scss",
    "content": "// stylelint-disable declaration-no-important\n\n// Width and height\n\n@each $prop, $abbrev in (width: w, height: h) {\n  @each $size, $length in $sizes {\n    .#{$abbrev}-#{$size} { #{$prop}: $length !important; }\n  }\n}\n\n.mw-100 { max-width: 100% !important; }\n.mh-100 { max-height: 100% !important; }\n\n// Viewport additional helpers\n\n.min-vw-100 { min-width: 100vw !important; }\n.min-vh-100 { min-height: 100vh !important; }\n\n.vw-100 { width: 100vw !important; }\n.vh-100 { height: 100vh !important; }\n"
  },
  {
    "path": "lib/bootstrap4/utilities/_spacing.scss",
    "content": "// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    @each $prop, $abbrev in (margin: m, padding: p) {\n      @each $size, $length in $spacers {\n        .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n        .#{$abbrev}t#{$infix}-#{$size},\n        .#{$abbrev}y#{$infix}-#{$size} {\n          #{$prop}-top: $length !important;\n        }\n        .#{$abbrev}r#{$infix}-#{$size},\n        .#{$abbrev}x#{$infix}-#{$size} {\n          #{$prop}-right: $length !important;\n        }\n        .#{$abbrev}b#{$infix}-#{$size},\n        .#{$abbrev}y#{$infix}-#{$size} {\n          #{$prop}-bottom: $length !important;\n        }\n        .#{$abbrev}l#{$infix}-#{$size},\n        .#{$abbrev}x#{$infix}-#{$size} {\n          #{$prop}-left: $length !important;\n        }\n      }\n    }\n\n    // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n    @each $size, $length in $spacers {\n      @if $size != 0 {\n        .m#{$infix}-n#{$size} { margin: -$length !important; }\n        .mt#{$infix}-n#{$size},\n        .my#{$infix}-n#{$size} {\n          margin-top: -$length !important;\n        }\n        .mr#{$infix}-n#{$size},\n        .mx#{$infix}-n#{$size} {\n          margin-right: -$length !important;\n        }\n        .mb#{$infix}-n#{$size},\n        .my#{$infix}-n#{$size} {\n          margin-bottom: -$length !important;\n        }\n        .ml#{$infix}-n#{$size},\n        .mx#{$infix}-n#{$size} {\n          margin-left: -$length !important;\n        }\n      }\n    }\n\n    // Some special margin utils\n    .m#{$infix}-auto { margin: auto !important; }\n    .mt#{$infix}-auto,\n    .my#{$infix}-auto {\n      margin-top: auto !important;\n    }\n    .mr#{$infix}-auto,\n    .mx#{$infix}-auto {\n      margin-right: auto !important;\n    }\n    .mb#{$infix}-auto,\n    .my#{$infix}-auto {\n      margin-bottom: auto !important;\n    }\n    .ml#{$infix}-auto,\n    .mx#{$infix}-auto {\n      margin-left: auto !important;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/utilities/_stretched-link.scss",
    "content": "//\n// Stretched link\n//\n\n.stretched-link {\n  &::after {\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    z-index: 1;\n    // Just in case `pointer-events: none` is set on a parent\n    pointer-events: auto;\n    content: \"\";\n    // IE10 bugfix, see https://stackoverflow.com/questions/16947967/ie10-hover-pseudo-class-doesnt-work-without-background-color\n    background-color: rgba(0, 0, 0, 0);\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap4/utilities/_text.scss",
    "content": "// stylelint-disable declaration-no-important\n\n//\n// Text\n//\n\n.text-monospace { font-family: $font-family-monospace !important; }\n\n// Alignment\n\n.text-justify  { text-align: justify !important; }\n.text-wrap     { white-space: normal !important; }\n.text-nowrap   { white-space: nowrap !important; }\n.text-truncate { @include text-truncate(); }\n\n// Responsive alignment\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .text#{$infix}-left   { text-align: left !important; }\n    .text#{$infix}-right  { text-align: right !important; }\n    .text#{$infix}-center { text-align: center !important; }\n  }\n}\n\n// Transformation\n\n.text-lowercase  { text-transform: lowercase !important; }\n.text-uppercase  { text-transform: uppercase !important; }\n.text-capitalize { text-transform: capitalize !important; }\n\n// Weight and italics\n\n.font-weight-light   { font-weight: $font-weight-light !important; }\n.font-weight-lighter { font-weight: $font-weight-lighter !important; }\n.font-weight-normal  { font-weight: $font-weight-normal !important; }\n.font-weight-bold    { font-weight: $font-weight-bold !important; }\n.font-weight-bolder  { font-weight: $font-weight-bolder !important; }\n.font-italic         { font-style: italic !important; }\n\n// Contextual colors\n\n.text-white { color: $white !important; }\n\n@each $color, $value in $theme-colors {\n  @include text-emphasis-variant(\".text-#{$color}\", $value, true);\n}\n\n.text-body { color: $body-color !important; }\n.text-muted { color: $text-muted !important; }\n\n.text-black-50 { color: rgba($black, .5) !important; }\n.text-white-50 { color: rgba($white, .5) !important; }\n\n// Misc\n\n.text-hide {\n  @include text-hide($ignore-warning: true);\n}\n\n.text-decoration-none { text-decoration: none !important; }\n\n.text-break {\n  word-break: break-word !important; // Deprecated, but avoids issues with flex containers\n  word-wrap: break-word !important; // Used instead of `overflow-wrap` for IE & Edge Legacy\n}\n\n// Reset\n\n.text-reset { color: inherit !important; }\n"
  },
  {
    "path": "lib/bootstrap4/utilities/_visibility.scss",
    "content": "// stylelint-disable declaration-no-important\n\n//\n// Visibility utilities\n//\n\n.visible {\n  visibility: visible !important;\n}\n\n.invisible {\n  visibility: hidden !important;\n}\n"
  },
  {
    "path": "lib/bootstrap4/vendor/_rfs.scss",
    "content": "// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n  @error \"`#{$rfs-factor}` is not a valid  $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n  $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n  $rfs-base-font-size: calc($rfs-base-font-size / ($rfs-base-font-size * 0 + calc(1px / $rfs-rem-value)));\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n  $rfs-breakpoint: calc($rfs-breakpoint / ($rfs-breakpoint * 0 + 1px));\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n  $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + calc(1 / $rfs-rem-value));\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n  // Cache $fs unit\n  $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n  // Add !important suffix if needed\n  $rfs-suffix: if($important, \" !important\", \"\");\n\n  // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n  @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n    font-size: #{$fs}#{$rfs-suffix};\n  }\n  @else {\n    // Variables for storing static and fluid rescaling\n    $rfs-static: null;\n    $rfs-fluid: null;\n\n    // Remove px-unit from $fs for calculations\n    @if $fs-unit == \"px\" {\n      $fs: $fs / ($fs * 0 + 1);\n    }\n    @else if $fs-unit == \"rem\" {\n      $fs: $fs / ($fs * 0 + calc(1 / $rfs-rem-value));\n    }\n\n    // Set default font-size\n    @if $rfs-font-size-unit == rem {\n      $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n    }\n    @else if $rfs-font-size-unit == px {\n      $rfs-static: #{$fs}px#{$rfs-suffix};\n    }\n    @else {\n      @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n    }\n\n    // Only add media query if font-size is bigger as the minimum font-size\n    // If $rfs-factor == 1, no rescaling will take place\n    @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n      $min-width: null;\n      $variable-unit: null;\n\n      // Calculate minimum font-size for given font-size\n      $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n      // Calculate difference between given font-size and minimum font-size for given font-size\n      $fs-diff: $fs - $fs-min;\n\n      // Base font-size formatting\n      // No need to check if the unit is valid, because we did that before\n      $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n      // If two-dimensional, use smallest of screen width and height\n      $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n      // Calculate the variable width between 0 and $rfs-breakpoint\n      $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n      // Set the calculated font-size.\n      $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n    }\n\n    // Rendering\n    @if $rfs-fluid == null {\n      // Only render static font-size if no fluid font-size is available\n      font-size: $rfs-static;\n    }\n    @else {\n      $mq-value: null;\n\n      // RFS breakpoint formatting\n      @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n        $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n      }\n      @else if $rfs-breakpoint-unit == px {\n        $mq-value: #{$rfs-breakpoint}px;\n      }\n      @else {\n        @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n      }\n\n      @if $rfs-class == \"disable\" {\n        // Adding an extra class increases specificity,\n        // which prevents the media query to override the font size\n        &,\n        .disable-responsive-font-size &,\n        &.disable-responsive-font-size {\n          font-size: $rfs-static;\n        }\n      }\n      @else {\n        font-size: $rfs-static;\n      }\n\n      @if $rfs-two-dimensional {\n        @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n          @if $rfs-class == \"enable\" {\n            .enable-responsive-font-size &,\n            &.enable-responsive-font-size {\n              font-size: $rfs-fluid;\n            }\n          }\n          @else {\n            font-size: $rfs-fluid;\n          }\n\n          @if $rfs-safari-iframe-resize-bug-fix {\n            // stylelint-disable-next-line length-zero-no-unit\n            min-width: 0vw;\n          }\n        }\n      }\n      @else {\n        @media (max-width: #{$mq-value}) {\n          @if $rfs-class == \"enable\" {\n            .enable-responsive-font-size &,\n            &.enable-responsive-font-size {\n              font-size: $rfs-fluid;\n            }\n          }\n          @else {\n            font-size: $rfs-fluid;\n          }\n\n          @if $rfs-safari-iframe-resize-bug-fix {\n            // stylelint-disable-next-line length-zero-no-unit\n            min-width: 0vw;\n          }\n        }\n      }\n    }\n  }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n  @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n  @include rfs($fs, $important);\n}\n"
  },
  {
    "path": "lib/bootstrap5/_accordion.scss",
    "content": "//\n// Base styles\n//\n\n.accordion {\n  // scss-docs-start accordion-css-vars\n  --#{$prefix}accordion-color: #{$accordion-color};\n  --#{$prefix}accordion-bg: #{$accordion-bg};\n  --#{$prefix}accordion-transition: #{$accordion-transition};\n  --#{$prefix}accordion-border-color: #{$accordion-border-color};\n  --#{$prefix}accordion-border-width: #{$accordion-border-width};\n  --#{$prefix}accordion-border-radius: #{$accordion-border-radius};\n  --#{$prefix}accordion-inner-border-radius: #{$accordion-inner-border-radius};\n  --#{$prefix}accordion-btn-padding-x: #{$accordion-button-padding-x};\n  --#{$prefix}accordion-btn-padding-y: #{$accordion-button-padding-y};\n  --#{$prefix}accordion-btn-color: #{$accordion-button-color};\n  --#{$prefix}accordion-btn-bg: #{$accordion-button-bg};\n  --#{$prefix}accordion-btn-icon: #{escape-svg($accordion-button-icon)};\n  --#{$prefix}accordion-btn-icon-width: #{$accordion-icon-width};\n  --#{$prefix}accordion-btn-icon-transform: #{$accordion-icon-transform};\n  --#{$prefix}accordion-btn-icon-transition: #{$accordion-icon-transition};\n  --#{$prefix}accordion-btn-active-icon: #{escape-svg($accordion-button-active-icon)};\n  --#{$prefix}accordion-btn-focus-border-color: #{$accordion-button-focus-border-color};\n  --#{$prefix}accordion-btn-focus-box-shadow: #{$accordion-button-focus-box-shadow};\n  --#{$prefix}accordion-body-padding-x: #{$accordion-body-padding-x};\n  --#{$prefix}accordion-body-padding-y: #{$accordion-body-padding-y};\n  --#{$prefix}accordion-active-color: #{$accordion-button-active-color};\n  --#{$prefix}accordion-active-bg: #{$accordion-button-active-bg};\n  // scss-docs-end accordion-css-vars\n}\n\n.accordion-button {\n  position: relative;\n  display: flex;\n  align-items: center;\n  width: 100%;\n  padding: var(--#{$prefix}accordion-btn-padding-y) var(--#{$prefix}accordion-btn-padding-x);\n  @include font-size($font-size-base);\n  color: var(--#{$prefix}accordion-btn-color);\n  text-align: left; // Reset button style\n  background-color: var(--#{$prefix}accordion-btn-bg);\n  border: 0;\n  @include border-radius(0);\n  overflow-anchor: none;\n  @include transition(var(--#{$prefix}accordion-transition));\n\n  &:not(.collapsed) {\n    color: var(--#{$prefix}accordion-active-color);\n    background-color: var(--#{$prefix}accordion-active-bg);\n    box-shadow: inset 0 calc(-1 * var(--#{$prefix}accordion-border-width)) 0 var(--#{$prefix}accordion-border-color); // stylelint-disable-line function-disallowed-list\n\n    &::after {\n      background-image: var(--#{$prefix}accordion-btn-active-icon);\n      transform: var(--#{$prefix}accordion-btn-icon-transform);\n    }\n  }\n\n  // Accordion icon\n  &::after {\n    flex-shrink: 0;\n    width: var(--#{$prefix}accordion-btn-icon-width);\n    height: var(--#{$prefix}accordion-btn-icon-width);\n    margin-left: auto;\n    content: \"\";\n    background-image: var(--#{$prefix}accordion-btn-icon);\n    background-repeat: no-repeat;\n    background-size: var(--#{$prefix}accordion-btn-icon-width);\n    @include transition(var(--#{$prefix}accordion-btn-icon-transition));\n  }\n\n  &:hover {\n    z-index: 2;\n  }\n\n  &:focus {\n    z-index: 3;\n    border-color: var(--#{$prefix}accordion-btn-focus-border-color);\n    outline: 0;\n    box-shadow: var(--#{$prefix}accordion-btn-focus-box-shadow);\n  }\n}\n\n.accordion-header {\n  margin-bottom: 0;\n}\n\n.accordion-item {\n  color: var(--#{$prefix}accordion-color);\n  background-color: var(--#{$prefix}accordion-bg);\n  border: var(--#{$prefix}accordion-border-width) solid var(--#{$prefix}accordion-border-color);\n\n  &:first-of-type {\n    @include border-top-radius(var(--#{$prefix}accordion-border-radius));\n\n    .accordion-button {\n      @include border-top-radius(var(--#{$prefix}accordion-inner-border-radius));\n    }\n  }\n\n  &:not(:first-of-type) {\n    border-top: 0;\n  }\n\n  // Only set a border-radius on the last item if the accordion is collapsed\n  &:last-of-type {\n    @include border-bottom-radius(var(--#{$prefix}accordion-border-radius));\n\n    .accordion-button {\n      &.collapsed {\n        @include border-bottom-radius(var(--#{$prefix}accordion-inner-border-radius));\n      }\n    }\n\n    .accordion-collapse {\n      @include border-bottom-radius(var(--#{$prefix}accordion-border-radius));\n    }\n  }\n}\n\n.accordion-body {\n  padding: var(--#{$prefix}accordion-body-padding-y) var(--#{$prefix}accordion-body-padding-x);\n}\n\n\n// Flush accordion items\n//\n// Remove borders and border-radius to keep accordion items edge-to-edge.\n\n.accordion-flush {\n  .accordion-collapse {\n    border-width: 0;\n  }\n\n  .accordion-item {\n    border-right: 0;\n    border-left: 0;\n    @include border-radius(0);\n\n    &:first-child { border-top: 0; }\n    &:last-child { border-bottom: 0; }\n\n    .accordion-button {\n      &,\n      &.collapsed {\n        @include border-radius(0);\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/_alert.scss",
    "content": "//\n// Base styles\n//\n\n.alert {\n  // scss-docs-start alert-css-vars\n  --#{$prefix}alert-bg: transparent;\n  --#{$prefix}alert-padding-x: #{$alert-padding-x};\n  --#{$prefix}alert-padding-y: #{$alert-padding-y};\n  --#{$prefix}alert-margin-bottom: #{$alert-margin-bottom};\n  --#{$prefix}alert-color: inherit;\n  --#{$prefix}alert-border-color: transparent;\n  --#{$prefix}alert-border: #{$alert-border-width} solid var(--#{$prefix}alert-border-color);\n  --#{$prefix}alert-border-radius: #{$alert-border-radius};\n  // scss-docs-end alert-css-vars\n\n  position: relative;\n  padding: var(--#{$prefix}alert-padding-y) var(--#{$prefix}alert-padding-x);\n  margin-bottom: var(--#{$prefix}alert-margin-bottom);\n  color: var(--#{$prefix}alert-color);\n  background-color: var(--#{$prefix}alert-bg);\n  border: var(--#{$prefix}alert-border);\n  @include border-radius(var(--#{$prefix}alert-border-radius));\n}\n\n// Headings for larger alerts\n.alert-heading {\n  // Specified to prevent conflicts of changing $headings-color\n  color: inherit;\n}\n\n// Provide class for links that match alerts\n.alert-link {\n  font-weight: $alert-link-font-weight;\n}\n\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissible {\n  padding-right: $alert-dismissible-padding-r;\n\n  // Adjust close link position\n  .btn-close {\n    position: absolute;\n    top: 0;\n    right: 0;\n    z-index: $stretched-link-z-index + 1;\n    padding: $alert-padding-y * 1.25 $alert-padding-x;\n  }\n}\n\n\n// scss-docs-start alert-modifiers\n// Generate contextual modifier classes for colorizing the alert.\n\n@each $state, $value in $theme-colors {\n  $alert-background: shift-color($value, $alert-bg-scale);\n  $alert-border: shift-color($value, $alert-border-scale);\n  $alert-color: shift-color($value, $alert-color-scale);\n\n  @if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) {\n    $alert-color: mix($value, color-contrast($alert-background), abs($alert-color-scale));\n  }\n  .alert-#{$state} {\n    @include alert-variant($alert-background, $alert-border, $alert-color);\n  }\n}\n// scss-docs-end alert-modifiers\n"
  },
  {
    "path": "lib/bootstrap5/_badge.scss",
    "content": "// Base class\n//\n// Requires one of the contextual, color modifier classes for `color` and\n// `background-color`.\n\n.badge {\n  // scss-docs-start badge-css-vars\n  --#{$prefix}badge-padding-x: #{$badge-padding-x};\n  --#{$prefix}badge-padding-y: #{$badge-padding-y};\n  @include rfs($badge-font-size, --#{$prefix}badge-font-size);\n  --#{$prefix}badge-font-weight: #{$badge-font-weight};\n  --#{$prefix}badge-color: #{$badge-color};\n  --#{$prefix}badge-border-radius: #{$badge-border-radius};\n  // scss-docs-end badge-css-vars\n\n  display: inline-block;\n  padding: var(--#{$prefix}badge-padding-y) var(--#{$prefix}badge-padding-x);\n  @include font-size(var(--#{$prefix}badge-font-size));\n  font-weight: var(--#{$prefix}badge-font-weight);\n  line-height: 1;\n  color: var(--#{$prefix}badge-color);\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  @include border-radius(var(--#{$prefix}badge-border-radius));\n  @include gradient-bg();\n\n  // Empty badges collapse automatically\n  &:empty {\n    display: none;\n  }\n}\n\n// Quick fix for badges in buttons\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n"
  },
  {
    "path": "lib/bootstrap5/_breadcrumb.scss",
    "content": ".breadcrumb {\n  // scss-docs-start breadcrumb-css-vars\n  --#{$prefix}breadcrumb-padding-x: #{$breadcrumb-padding-x};\n  --#{$prefix}breadcrumb-padding-y: #{$breadcrumb-padding-y};\n  --#{$prefix}breadcrumb-margin-bottom: #{$breadcrumb-margin-bottom};\n  @include rfs($breadcrumb-font-size, --#{$prefix}breadcrumb-font-size);\n  --#{$prefix}breadcrumb-bg: #{$breadcrumb-bg};\n  --#{$prefix}breadcrumb-border-radius: #{$breadcrumb-border-radius};\n  --#{$prefix}breadcrumb-divider-color: #{$breadcrumb-divider-color};\n  --#{$prefix}breadcrumb-item-padding-x: #{$breadcrumb-item-padding-x};\n  --#{$prefix}breadcrumb-item-active-color: #{$breadcrumb-active-color};\n  // scss-docs-end breadcrumb-css-vars\n\n  display: flex;\n  flex-wrap: wrap;\n  padding: var(--#{$prefix}breadcrumb-padding-y) var(--#{$prefix}breadcrumb-padding-x);\n  margin-bottom: var(--#{$prefix}breadcrumb-margin-bottom);\n  @include font-size(var(--#{$prefix}breadcrumb-font-size));\n  list-style: none;\n  background-color: var(--#{$prefix}breadcrumb-bg);\n  @include border-radius(var(--#{$prefix}breadcrumb-border-radius));\n}\n\n.breadcrumb-item {\n  // The separator between breadcrumbs (by default, a forward-slash: \"/\")\n  + .breadcrumb-item {\n    padding-left: var(--#{$prefix}breadcrumb-item-padding-x);\n\n    &::before {\n      float: left; // Suppress inline spacings and underlining of the separator\n      padding-right: var(--#{$prefix}breadcrumb-item-padding-x);\n      color: var(--#{$prefix}breadcrumb-divider-color);\n      content: var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)) #{\"/* rtl:\"} var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider-flipped)) #{\"*/\"};\n    }\n  }\n\n  &.active {\n    color: var(--#{$prefix}breadcrumb-item-active-color);\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/_button-group.scss",
    "content": "// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-flex;\n  vertical-align: middle; // match .btn alignment given font-size hack above\n\n  > .btn {\n    position: relative;\n    flex: 1 1 auto;\n  }\n\n  // Bring the hover, focused, and \"active\" buttons to the front to overlay\n  // the borders properly\n  > .btn-check:checked + .btn,\n  > .btn-check:focus + .btn,\n  > .btn:hover,\n  > .btn:focus,\n  > .btn:active,\n  > .btn.active {\n    z-index: 1;\n  }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n\n  .input-group {\n    width: auto;\n  }\n}\n\n.btn-group {\n  @include border-radius($btn-border-radius);\n\n  // Prevent double borders when buttons are next to each other\n  > :not(.btn-check:first-child) + .btn,\n  > .btn-group:not(:first-child) {\n    margin-left: -$btn-border-width;\n  }\n\n  // Reset rounded corners\n  > .btn:not(:last-child):not(.dropdown-toggle),\n  > .btn.dropdown-toggle-split:first-child,\n  > .btn-group:not(:last-child) > .btn {\n    @include border-end-radius(0);\n  }\n\n  // The left radius should be 0 if the button is:\n  // - the \"third or more\" child\n  // - the second child and the previous element isn't `.btn-check` (making it the first child visually)\n  // - part of a btn-group which isn't the first child\n  > .btn:nth-child(n + 3),\n  > :not(.btn-check) + .btn,\n  > .btn-group:not(:first-child) > .btn {\n    @include border-start-radius(0);\n  }\n}\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n//\n// Split button dropdowns\n//\n\n.dropdown-toggle-split {\n  padding-right: $btn-padding-x * .75;\n  padding-left: $btn-padding-x * .75;\n\n  &::after,\n  .dropup &::after,\n  .dropend &::after {\n    margin-left: 0;\n  }\n\n  .dropstart &::before {\n    margin-right: 0;\n  }\n}\n\n.btn-sm + .dropdown-toggle-split {\n  padding-right: $btn-padding-x-sm * .75;\n  padding-left: $btn-padding-x-sm * .75;\n}\n\n.btn-lg + .dropdown-toggle-split {\n  padding-right: $btn-padding-x-lg * .75;\n  padding-left: $btn-padding-x-lg * .75;\n}\n\n\n// The clickable button for toggling the menu\n// Set the same inset shadow as the :active state\n.btn-group.show .dropdown-toggle {\n  @include box-shadow($btn-active-box-shadow);\n\n  // Show no shadow for `.btn-link` since it has no other button styles.\n  &.btn-link {\n    @include box-shadow(none);\n  }\n}\n\n\n//\n// Vertical button groups\n//\n\n.btn-group-vertical {\n  flex-direction: column;\n  align-items: flex-start;\n  justify-content: center;\n\n  > .btn,\n  > .btn-group {\n    width: 100%;\n  }\n\n  > .btn:not(:first-child),\n  > .btn-group:not(:first-child) {\n    margin-top: -$btn-border-width;\n  }\n\n  // Reset rounded corners\n  > .btn:not(:last-child):not(.dropdown-toggle),\n  > .btn-group:not(:last-child) > .btn {\n    @include border-bottom-radius(0);\n  }\n\n  > .btn ~ .btn,\n  > .btn-group:not(:first-child) > .btn {\n    @include border-top-radius(0);\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/_buttons.scss",
    "content": "//\n// Base styles\n//\n\n.btn {\n  // scss-docs-start btn-css-vars\n  --#{$prefix}btn-padding-x: #{$btn-padding-x};\n  --#{$prefix}btn-padding-y: #{$btn-padding-y};\n  --#{$prefix}btn-font-family: #{$btn-font-family};\n  @include rfs($btn-font-size, --#{$prefix}btn-font-size);\n  --#{$prefix}btn-font-weight: #{$btn-font-weight};\n  --#{$prefix}btn-line-height: #{$btn-line-height};\n  --#{$prefix}btn-color: #{$body-color};\n  --#{$prefix}btn-bg: transparent;\n  --#{$prefix}btn-border-width: #{$btn-border-width};\n  --#{$prefix}btn-border-color: transparent;\n  --#{$prefix}btn-border-radius: #{$btn-border-radius};\n  --#{$prefix}btn-hover-border-color: transparent;\n  --#{$prefix}btn-box-shadow: #{$btn-box-shadow};\n  --#{$prefix}btn-disabled-opacity: #{$btn-disabled-opacity};\n  --#{$prefix}btn-focus-box-shadow: 0 0 0 #{$btn-focus-width} rgba(var(--#{$prefix}btn-focus-shadow-rgb), .5);\n  // scss-docs-end btn-css-vars\n\n  display: inline-block;\n  padding: var(--#{$prefix}btn-padding-y) var(--#{$prefix}btn-padding-x);\n  font-family: var(--#{$prefix}btn-font-family);\n  @include font-size(var(--#{$prefix}btn-font-size));\n  font-weight: var(--#{$prefix}btn-font-weight);\n  line-height: var(--#{$prefix}btn-line-height);\n  color: var(--#{$prefix}btn-color);\n  text-align: center;\n  text-decoration: if($link-decoration == none, null, none);\n  white-space: $btn-white-space;\n  vertical-align: middle;\n  cursor: if($enable-button-pointers, pointer, null);\n  user-select: none;\n  border: var(--#{$prefix}btn-border-width) solid var(--#{$prefix}btn-border-color);\n  @include border-radius(var(--#{$prefix}btn-border-radius));\n  @include gradient-bg(var(--#{$prefix}btn-bg));\n  @include box-shadow(var(--#{$prefix}btn-box-shadow));\n  @include transition($btn-transition);\n\n  &:hover {\n    color: var(--#{$prefix}btn-hover-color);\n    text-decoration: if($link-hover-decoration == underline, none, null);\n    background-color: var(--#{$prefix}btn-hover-bg);\n    border-color: var(--#{$prefix}btn-hover-border-color);\n  }\n\n  .btn-check + &:hover {\n    // override for the checkbox/radio buttons\n    color: var(--#{$prefix}btn-color);\n    background-color: var(--#{$prefix}btn-bg);\n    border-color: var(--#{$prefix}btn-border-color);\n  }\n\n  &:focus-visible {\n    color: var(--#{$prefix}btn-hover-color);\n    @include gradient-bg(var(--#{$prefix}btn-hover-bg));\n    border-color: var(--#{$prefix}btn-hover-border-color);\n    outline: 0;\n    // Avoid using mixin so we can pass custom focus shadow properly\n    @if $enable-shadows {\n      box-shadow: var(--#{$prefix}btn-box-shadow), var(--#{$prefix}btn-focus-box-shadow);\n    } @else {\n      box-shadow: var(--#{$prefix}btn-focus-box-shadow);\n    }\n  }\n\n  .btn-check:focus-visible + & {\n    border-color: var(--#{$prefix}btn-hover-border-color);\n    outline: 0;\n    // Avoid using mixin so we can pass custom focus shadow properly\n    @if $enable-shadows {\n      box-shadow: var(--#{$prefix}btn-box-shadow), var(--#{$prefix}btn-focus-box-shadow);\n    } @else {\n      box-shadow: var(--#{$prefix}btn-focus-box-shadow);\n    }\n  }\n\n  .btn-check:checked + &,\n  :not(.btn-check) + &:active,\n  &:first-child:active,\n  &.active,\n  &.show {\n    color: var(--#{$prefix}btn-active-color);\n    background-color: var(--#{$prefix}btn-active-bg);\n    // Remove CSS gradients if they're enabled\n    background-image: if($enable-gradients, none, null);\n    border-color: var(--#{$prefix}btn-active-border-color);\n    @include box-shadow(var(--#{$prefix}btn-active-shadow));\n\n    &:focus-visible {\n      // Avoid using mixin so we can pass custom focus shadow properly\n      @if $enable-shadows {\n        box-shadow: var(--#{$prefix}btn-active-shadow), var(--#{$prefix}btn-focus-box-shadow);\n      } @else {\n        box-shadow: var(--#{$prefix}btn-focus-box-shadow);\n      }\n    }\n  }\n\n  &:disabled,\n  &.disabled,\n  fieldset:disabled & {\n    color: var(--#{$prefix}btn-disabled-color);\n    pointer-events: none;\n    background-color: var(--#{$prefix}btn-disabled-bg);\n    background-image: if($enable-gradients, none, null);\n    border-color: var(--#{$prefix}btn-disabled-border-color);\n    opacity: var(--#{$prefix}btn-disabled-opacity);\n    @include box-shadow(none);\n  }\n}\n\n\n//\n// Alternate buttons\n//\n\n// scss-docs-start btn-variant-loops\n@each $color, $value in $theme-colors {\n  .btn-#{$color} {\n    @if $color == \"light\" {\n      @include button-variant(\n        $value,\n        $value,\n        $hover-background: shade-color($value, $btn-hover-bg-shade-amount),\n        $hover-border: shade-color($value, $btn-hover-border-shade-amount),\n        $active-background: shade-color($value, $btn-active-bg-shade-amount),\n        $active-border: shade-color($value, $btn-active-border-shade-amount)\n      );\n    } @else if $color == \"dark\" {\n      @include button-variant(\n        $value,\n        $value,\n        $hover-background: tint-color($value, $btn-hover-bg-tint-amount),\n        $hover-border: tint-color($value, $btn-hover-border-tint-amount),\n        $active-background: tint-color($value, $btn-active-bg-tint-amount),\n        $active-border: tint-color($value, $btn-active-border-tint-amount)\n      );\n    } @else {\n      @include button-variant($value, $value);\n    }\n  }\n}\n\n@each $color, $value in $theme-colors {\n  .btn-outline-#{$color} {\n    @include button-outline-variant($value);\n  }\n}\n// scss-docs-end btn-variant-loops\n\n\n//\n// Link buttons\n//\n\n// Make a button look and behave like a link\n.btn-link {\n  --#{$prefix}btn-font-weight: #{$font-weight-normal};\n  --#{$prefix}btn-color: #{$btn-link-color};\n  --#{$prefix}btn-bg: transparent;\n  --#{$prefix}btn-border-color: transparent;\n  --#{$prefix}btn-hover-color: #{$btn-link-hover-color};\n  --#{$prefix}btn-hover-border-color: transparent;\n  --#{$prefix}btn-active-color: #{$btn-link-hover-color};\n  --#{$prefix}btn-active-border-color: transparent;\n  --#{$prefix}btn-disabled-color: #{$btn-link-disabled-color};\n  --#{$prefix}btn-disabled-border-color: transparent;\n  --#{$prefix}btn-box-shadow: none;\n  --#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix(color-contrast($primary), $primary, 15%))};\n\n  text-decoration: $link-decoration;\n  @if $enable-gradients {\n    background-image: none;\n  }\n\n  &:hover,\n  &:focus-visible {\n    text-decoration: $link-hover-decoration;\n  }\n\n  &:focus-visible {\n    color: var(--#{$prefix}btn-color);\n  }\n\n  &:hover {\n    color: var(--#{$prefix}btn-hover-color);\n  }\n\n  // No need for an active state here\n}\n\n\n//\n// Button Sizes\n//\n\n.btn-lg {\n  @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-border-radius-lg);\n}\n\n.btn-sm {\n  @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-border-radius-sm);\n}\n"
  },
  {
    "path": "lib/bootstrap5/_card.scss",
    "content": "//\n// Base styles\n//\n\n.card {\n  // scss-docs-start card-css-vars\n  --#{$prefix}card-spacer-y: #{$card-spacer-y};\n  --#{$prefix}card-spacer-x: #{$card-spacer-x};\n  --#{$prefix}card-title-spacer-y: #{$card-title-spacer-y};\n  --#{$prefix}card-border-width: #{$card-border-width};\n  --#{$prefix}card-border-color: #{$card-border-color};\n  --#{$prefix}card-border-radius: #{$card-border-radius};\n  --#{$prefix}card-box-shadow: #{$card-box-shadow};\n  --#{$prefix}card-inner-border-radius: #{$card-inner-border-radius};\n  --#{$prefix}card-cap-padding-y: #{$card-cap-padding-y};\n  --#{$prefix}card-cap-padding-x: #{$card-cap-padding-x};\n  --#{$prefix}card-cap-bg: #{$card-cap-bg};\n  --#{$prefix}card-cap-color: #{$card-cap-color};\n  --#{$prefix}card-height: #{$card-height};\n  --#{$prefix}card-color: #{$card-color};\n  --#{$prefix}card-bg: #{$card-bg};\n  --#{$prefix}card-img-overlay-padding: #{$card-img-overlay-padding};\n  --#{$prefix}card-group-margin: #{$card-group-margin};\n  // scss-docs-end card-css-vars\n\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106\n  height: var(--#{$prefix}card-height);\n  word-wrap: break-word;\n  background-color: var(--#{$prefix}card-bg);\n  background-clip: border-box;\n  border: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);\n  @include border-radius(var(--#{$prefix}card-border-radius));\n  @include box-shadow(var(--#{$prefix}card-box-shadow));\n\n  > hr {\n    margin-right: 0;\n    margin-left: 0;\n  }\n\n  > .list-group {\n    border-top: inherit;\n    border-bottom: inherit;\n\n    &:first-child {\n      border-top-width: 0;\n      @include border-top-radius(var(--#{$prefix}card-inner-border-radius));\n    }\n\n    &:last-child  {\n      border-bottom-width: 0;\n      @include border-bottom-radius(var(--#{$prefix}card-inner-border-radius));\n    }\n  }\n\n  // Due to specificity of the above selector (`.card > .list-group`), we must\n  // use a child selector here to prevent double borders.\n  > .card-header + .list-group,\n  > .list-group + .card-footer {\n    border-top: 0;\n  }\n}\n\n.card-body {\n  // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n  // as much space as possible, ensuring footers are aligned to the bottom.\n  flex: 1 1 auto;\n  padding: var(--#{$prefix}card-spacer-y) var(--#{$prefix}card-spacer-x);\n  color: var(--#{$prefix}card-color);\n}\n\n.card-title {\n  margin-bottom: var(--#{$prefix}card-title-spacer-y);\n}\n\n.card-subtitle {\n  margin-top: calc(-.5 * var(--#{$prefix}card-title-spacer-y)); // stylelint-disable-line function-disallowed-list\n  margin-bottom: 0;\n}\n\n.card-text:last-child {\n  margin-bottom: 0;\n}\n\n.card-link {\n  &:hover {\n    text-decoration: if($link-hover-decoration == underline, none, null);\n  }\n\n  + .card-link {\n    margin-left: var(--#{$prefix}card-spacer-x);\n  }\n}\n\n//\n// Optional textual caps\n//\n\n.card-header {\n  padding: var(--#{$prefix}card-cap-padding-y) var(--#{$prefix}card-cap-padding-x);\n  margin-bottom: 0; // Removes the default margin-bottom of <hN>\n  color: var(--#{$prefix}card-cap-color);\n  background-color: var(--#{$prefix}card-cap-bg);\n  border-bottom: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);\n\n  &:first-child {\n    @include border-radius(var(--#{$prefix}card-inner-border-radius) var(--#{$prefix}card-inner-border-radius) 0 0);\n  }\n}\n\n.card-footer {\n  padding: var(--#{$prefix}card-cap-padding-y) var(--#{$prefix}card-cap-padding-x);\n  color: var(--#{$prefix}card-cap-color);\n  background-color: var(--#{$prefix}card-cap-bg);\n  border-top: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);\n\n  &:last-child {\n    @include border-radius(0 0 var(--#{$prefix}card-inner-border-radius) var(--#{$prefix}card-inner-border-radius));\n  }\n}\n\n\n//\n// Header navs\n//\n\n.card-header-tabs {\n  margin-right: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list\n  margin-bottom: calc(-1 * var(--#{$prefix}card-cap-padding-y)); // stylelint-disable-line function-disallowed-list\n  margin-left: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list\n  border-bottom: 0;\n\n  .nav-link.active {\n    background-color: var(--#{$prefix}card-bg);\n    border-bottom-color: var(--#{$prefix}card-bg);\n  }\n}\n\n.card-header-pills {\n  margin-right: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list\n  margin-left: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list\n}\n\n// Card image\n.card-img-overlay {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: var(--#{$prefix}card-img-overlay-padding);\n  @include border-radius(var(--#{$prefix}card-inner-border-radius));\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n  width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n}\n\n.card-img,\n.card-img-top {\n  @include border-top-radius(var(--#{$prefix}card-inner-border-radius));\n}\n\n.card-img,\n.card-img-bottom {\n  @include border-bottom-radius(var(--#{$prefix}card-inner-border-radius));\n}\n\n\n//\n// Card groups\n//\n\n.card-group {\n  // The child selector allows nested `.card` within `.card-group`\n  // to display properly.\n  > .card {\n    margin-bottom: var(--#{$prefix}card-group-margin);\n  }\n\n  @include media-breakpoint-up(sm) {\n    display: flex;\n    flex-flow: row wrap;\n    // The child selector allows nested `.card` within `.card-group`\n    // to display properly.\n    > .card {\n      // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n      flex: 1 0 0%;\n      margin-bottom: 0;\n\n      + .card {\n        margin-left: 0;\n        border-left: 0;\n      }\n\n      // Handle rounded corners\n      @if $enable-rounded {\n        &:not(:last-child) {\n          @include border-end-radius(0);\n\n          .card-img-top,\n          .card-header {\n            // stylelint-disable-next-line property-disallowed-list\n            border-top-right-radius: 0;\n          }\n          .card-img-bottom,\n          .card-footer {\n            // stylelint-disable-next-line property-disallowed-list\n            border-bottom-right-radius: 0;\n          }\n        }\n\n        &:not(:first-child) {\n          @include border-start-radius(0);\n\n          .card-img-top,\n          .card-header {\n            // stylelint-disable-next-line property-disallowed-list\n            border-top-left-radius: 0;\n          }\n          .card-img-bottom,\n          .card-footer {\n            // stylelint-disable-next-line property-disallowed-list\n            border-bottom-left-radius: 0;\n          }\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/_carousel.scss",
    "content": "// Notes on the classes:\n//\n// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)\n//    even when their scroll action started on a carousel, but for compatibility (with Firefox)\n//    we're preventing all actions instead\n// 2. The .carousel-item-start and .carousel-item-end is used to indicate where\n//    the active slide is heading.\n// 3. .active.carousel-item is the current slide.\n// 4. .active.carousel-item-start and .active.carousel-item-end is the current\n//    slide in its in-transition state. Only one of these occurs at a time.\n// 5. .carousel-item-next.carousel-item-start and .carousel-item-prev.carousel-item-end\n//    is the upcoming slide in transition.\n\n.carousel {\n  position: relative;\n}\n\n.carousel.pointer-event {\n  touch-action: pan-y;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n  @include clearfix();\n}\n\n.carousel-item {\n  position: relative;\n  display: none;\n  float: left;\n  width: 100%;\n  margin-right: -100%;\n  backface-visibility: hidden;\n  @include transition($carousel-transition);\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n  display: block;\n}\n\n.carousel-item-next:not(.carousel-item-start),\n.active.carousel-item-end {\n  transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-end),\n.active.carousel-item-start {\n  transform: translateX(-100%);\n}\n\n\n//\n// Alternate transitions\n//\n\n.carousel-fade {\n  .carousel-item {\n    opacity: 0;\n    transition-property: opacity;\n    transform: none;\n  }\n\n  .carousel-item.active,\n  .carousel-item-next.carousel-item-start,\n  .carousel-item-prev.carousel-item-end {\n    z-index: 1;\n    opacity: 1;\n  }\n\n  .active.carousel-item-start,\n  .active.carousel-item-end {\n    z-index: 0;\n    opacity: 0;\n    @include transition(opacity 0s $carousel-transition-duration);\n  }\n}\n\n\n//\n// Left/right controls for nav\n//\n\n.carousel-control-prev,\n.carousel-control-next {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  z-index: 1;\n  // Use flex for alignment (1-3)\n  display: flex; // 1. allow flex styles\n  align-items: center; // 2. vertically center contents\n  justify-content: center; // 3. horizontally center contents\n  width: $carousel-control-width;\n  padding: 0;\n  color: $carousel-control-color;\n  text-align: center;\n  background: none;\n  border: 0;\n  opacity: $carousel-control-opacity;\n  @include transition($carousel-control-transition);\n\n  // Hover/focus state\n  &:hover,\n  &:focus {\n    color: $carousel-control-color;\n    text-decoration: none;\n    outline: 0;\n    opacity: $carousel-control-hover-opacity;\n  }\n}\n.carousel-control-prev {\n  left: 0;\n  background-image: if($enable-gradients, linear-gradient(90deg, rgba($black, .25), rgba($black, .001)), null);\n}\n.carousel-control-next {\n  right: 0;\n  background-image: if($enable-gradients, linear-gradient(270deg, rgba($black, .25), rgba($black, .001)), null);\n}\n\n// Icons for within\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n  display: inline-block;\n  width: $carousel-control-icon-width;\n  height: $carousel-control-icon-width;\n  background-repeat: no-repeat;\n  background-position: 50%;\n  background-size: 100% 100%;\n}\n\n/* rtl:options: {\n  \"autoRename\": true,\n  \"stringMap\":[ {\n    \"name\"    : \"prev-next\",\n    \"search\"  : \"prev\",\n    \"replace\" : \"next\"\n  } ]\n} */\n.carousel-control-prev-icon {\n  background-image: escape-svg($carousel-control-prev-icon-bg);\n}\n.carousel-control-next-icon {\n  background-image: escape-svg($carousel-control-next-icon-bg);\n}\n\n// Optional indicator pips/controls\n//\n// Add a container (such as a list) with the following class and add an item (ideally a focusable control,\n// like a button) with data-bs-target for each slide your carousel holds.\n\n.carousel-indicators {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 2;\n  display: flex;\n  justify-content: center;\n  padding: 0;\n  // Use the .carousel-control's width as margin so we don't overlay those\n  margin-right: $carousel-control-width;\n  margin-bottom: 1rem;\n  margin-left: $carousel-control-width;\n  list-style: none;\n\n  [data-bs-target] {\n    box-sizing: content-box;\n    flex: 0 1 auto;\n    width: $carousel-indicator-width;\n    height: $carousel-indicator-height;\n    padding: 0;\n    margin-right: $carousel-indicator-spacer;\n    margin-left: $carousel-indicator-spacer;\n    text-indent: -999px;\n    cursor: pointer;\n    background-color: $carousel-indicator-active-bg;\n    background-clip: padding-box;\n    border: 0;\n    // Use transparent borders to increase the hit area by 10px on top and bottom.\n    border-top: $carousel-indicator-hit-area-height solid transparent;\n    border-bottom: $carousel-indicator-hit-area-height solid transparent;\n    opacity: $carousel-indicator-opacity;\n    @include transition($carousel-indicator-transition);\n  }\n\n  .active {\n    opacity: $carousel-indicator-active-opacity;\n  }\n}\n\n\n// Optional captions\n//\n//\n\n.carousel-caption {\n  position: absolute;\n  right: (100% - $carousel-caption-width) * .5;\n  bottom: $carousel-caption-spacer;\n  left: (100% - $carousel-caption-width) * .5;\n  padding-top: $carousel-caption-padding-y;\n  padding-bottom: $carousel-caption-padding-y;\n  color: $carousel-caption-color;\n  text-align: center;\n}\n\n// Dark mode carousel\n\n.carousel-dark {\n  .carousel-control-prev-icon,\n  .carousel-control-next-icon {\n    filter: $carousel-dark-control-icon-filter;\n  }\n\n  .carousel-indicators [data-bs-target] {\n    background-color: $carousel-dark-indicator-active-bg;\n  }\n\n  .carousel-caption {\n    color: $carousel-dark-caption-color;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/_close.scss",
    "content": "// Transparent background and border properties included for button version.\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n.btn-close {\n  box-sizing: content-box;\n  width: $btn-close-width;\n  height: $btn-close-height;\n  padding: $btn-close-padding-y $btn-close-padding-x;\n  color: $btn-close-color;\n  background: transparent escape-svg($btn-close-bg) center / $btn-close-width auto no-repeat; // include transparent for button elements\n  border: 0; // for button elements\n  @include border-radius();\n  opacity: $btn-close-opacity;\n\n  // Override <a>'s hover style\n  &:hover {\n    color: $btn-close-color;\n    text-decoration: none;\n    opacity: $btn-close-hover-opacity;\n  }\n\n  &:focus {\n    outline: 0;\n    box-shadow: $btn-close-focus-shadow;\n    opacity: $btn-close-focus-opacity;\n  }\n\n  &:disabled,\n  &.disabled {\n    pointer-events: none;\n    user-select: none;\n    opacity: $btn-close-disabled-opacity;\n  }\n}\n\n.btn-close-white {\n  filter: $btn-close-white-filter;\n}\n"
  },
  {
    "path": "lib/bootstrap5/_containers.scss",
    "content": "// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-container-classes {\n  // Single container class with breakpoint max-widths\n  .container,\n  // 100% wide container at all breakpoints\n  .container-fluid {\n    @include make-container();\n  }\n\n  // Responsive containers that are 100% wide until a breakpoint\n  @each $breakpoint, $container-max-width in $container-max-widths {\n    .container-#{$breakpoint} {\n      @extend .container-fluid;\n    }\n\n    @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n      %responsive-container-#{$breakpoint} {\n        max-width: $container-max-width;\n      }\n\n      // Extend each breakpoint which is smaller or equal to the current breakpoint\n      $extend-breakpoint: true;\n\n      @each $name, $width in $grid-breakpoints {\n        @if ($extend-breakpoint) {\n          .container#{breakpoint-infix($name, $grid-breakpoints)} {\n            @extend %responsive-container-#{$breakpoint};\n          }\n\n          // Once the current breakpoint is reached, stop extending\n          @if ($breakpoint == $name) {\n            $extend-breakpoint: false;\n          }\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/_dropdown.scss",
    "content": "// The dropdown wrapper (`<div>`)\n.dropup,\n.dropend,\n.dropdown,\n.dropstart,\n.dropup-center,\n.dropdown-center {\n  position: relative;\n}\n\n.dropdown-toggle {\n  white-space: nowrap;\n\n  // Generate the caret automatically\n  @include caret();\n}\n\n// The dropdown menu\n.dropdown-menu {\n  // scss-docs-start dropdown-css-vars\n  --#{$prefix}dropdown-zindex: #{$zindex-dropdown};\n  --#{$prefix}dropdown-min-width: #{$dropdown-min-width};\n  --#{$prefix}dropdown-padding-x: #{$dropdown-padding-x};\n  --#{$prefix}dropdown-padding-y: #{$dropdown-padding-y};\n  --#{$prefix}dropdown-spacer: #{$dropdown-spacer};\n  @include rfs($dropdown-font-size, --#{$prefix}dropdown-font-size);\n  --#{$prefix}dropdown-color: #{$dropdown-color};\n  --#{$prefix}dropdown-bg: #{$dropdown-bg};\n  --#{$prefix}dropdown-border-color: #{$dropdown-border-color};\n  --#{$prefix}dropdown-border-radius: #{$dropdown-border-radius};\n  --#{$prefix}dropdown-border-width: #{$dropdown-border-width};\n  --#{$prefix}dropdown-inner-border-radius: #{$dropdown-inner-border-radius};\n  --#{$prefix}dropdown-divider-bg: #{$dropdown-divider-bg};\n  --#{$prefix}dropdown-divider-margin-y: #{$dropdown-divider-margin-y};\n  --#{$prefix}dropdown-box-shadow: #{$dropdown-box-shadow};\n  --#{$prefix}dropdown-link-color: #{$dropdown-link-color};\n  --#{$prefix}dropdown-link-hover-color: #{$dropdown-link-hover-color};\n  --#{$prefix}dropdown-link-hover-bg: #{$dropdown-link-hover-bg};\n  --#{$prefix}dropdown-link-active-color: #{$dropdown-link-active-color};\n  --#{$prefix}dropdown-link-active-bg: #{$dropdown-link-active-bg};\n  --#{$prefix}dropdown-link-disabled-color: #{$dropdown-link-disabled-color};\n  --#{$prefix}dropdown-item-padding-x: #{$dropdown-item-padding-x};\n  --#{$prefix}dropdown-item-padding-y: #{$dropdown-item-padding-y};\n  --#{$prefix}dropdown-header-color: #{$dropdown-header-color};\n  --#{$prefix}dropdown-header-padding-x: #{$dropdown-header-padding-x};\n  --#{$prefix}dropdown-header-padding-y: #{$dropdown-header-padding-y};\n  // scss-docs-end dropdown-css-vars\n\n  position: absolute;\n  z-index: var(--#{$prefix}dropdown-zindex);\n  display: none; // none by default, but block on \"open\" of the menu\n  min-width: var(--#{$prefix}dropdown-min-width);\n  padding: var(--#{$prefix}dropdown-padding-y) var(--#{$prefix}dropdown-padding-x);\n  margin: 0; // Override default margin of ul\n  @include font-size(var(--#{$prefix}dropdown-font-size));\n  color: var(--#{$prefix}dropdown-color);\n  text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n  list-style: none;\n  background-color: var(--#{$prefix}dropdown-bg);\n  background-clip: padding-box;\n  border: var(--#{$prefix}dropdown-border-width) solid var(--#{$prefix}dropdown-border-color);\n  @include border-radius(var(--#{$prefix}dropdown-border-radius));\n  @include box-shadow(var(--#{$prefix}dropdown-box-shadow));\n\n  &[data-bs-popper] {\n    top: 100%;\n    left: 0;\n    margin-top: var(--#{$prefix}dropdown-spacer);\n  }\n\n  @if $dropdown-padding-y == 0 {\n    > .dropdown-item:first-child,\n    > li:first-child .dropdown-item {\n      @include border-top-radius(var(--#{$prefix}dropdown-inner-border-radius));\n    }\n    > .dropdown-item:last-child,\n    > li:last-child .dropdown-item {\n      @include border-bottom-radius(var(--#{$prefix}dropdown-inner-border-radius));\n    }\n\n  }\n}\n\n// scss-docs-start responsive-breakpoints\n// We deliberately hardcode the `bs-` prefix because we check\n// this custom property in JS to determine Popper's positioning\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .dropdown-menu#{$infix}-start {\n      --bs-position: start;\n\n      &[data-bs-popper] {\n        right: auto;\n        left: 0;\n      }\n    }\n\n    .dropdown-menu#{$infix}-end {\n      --bs-position: end;\n\n      &[data-bs-popper] {\n        right: 0;\n        left: auto;\n      }\n    }\n  }\n}\n// scss-docs-end responsive-breakpoints\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// Just add .dropup after the standard .dropdown class and you're set.\n.dropup {\n  .dropdown-menu[data-bs-popper] {\n    top: auto;\n    bottom: 100%;\n    margin-top: 0;\n    margin-bottom: var(--#{$prefix}dropdown-spacer);\n  }\n\n  .dropdown-toggle {\n    @include caret(up);\n  }\n}\n\n.dropend {\n  .dropdown-menu[data-bs-popper] {\n    top: 0;\n    right: auto;\n    left: 100%;\n    margin-top: 0;\n    margin-left: var(--#{$prefix}dropdown-spacer);\n  }\n\n  .dropdown-toggle {\n    @include caret(end);\n    &::after {\n      vertical-align: 0;\n    }\n  }\n}\n\n.dropstart {\n  .dropdown-menu[data-bs-popper] {\n    top: 0;\n    right: 100%;\n    left: auto;\n    margin-top: 0;\n    margin-right: var(--#{$prefix}dropdown-spacer);\n  }\n\n  .dropdown-toggle {\n    @include caret(start);\n    &::before {\n      vertical-align: 0;\n    }\n  }\n}\n\n\n// Dividers (basically an `<hr>`) within the dropdown\n.dropdown-divider {\n  height: 0;\n  margin: var(--#{$prefix}dropdown-divider-margin-y) 0;\n  overflow: hidden;\n  border-top: 1px solid var(--#{$prefix}dropdown-divider-bg);\n  opacity: 1; // Revisit in v6 to de-dupe styles that conflict with <hr> element\n}\n\n// Links, buttons, and more within the dropdown menu\n//\n// `<button>`-specific styles are denoted with `// For <button>s`\n.dropdown-item {\n  display: block;\n  width: 100%; // For `<button>`s\n  padding: var(--#{$prefix}dropdown-item-padding-y) var(--#{$prefix}dropdown-item-padding-x);\n  clear: both;\n  font-weight: $font-weight-normal;\n  color: var(--#{$prefix}dropdown-link-color);\n  text-align: inherit; // For `<button>`s\n  text-decoration: if($link-decoration == none, null, none);\n  white-space: nowrap; // prevent links from randomly breaking onto new lines\n  background-color: transparent; // For `<button>`s\n  border: 0; // For `<button>`s\n\n  &:hover,\n  &:focus {\n    color: var(--#{$prefix}dropdown-link-hover-color);\n    text-decoration: if($link-hover-decoration == underline, none, null);\n    @include gradient-bg(var(--#{$prefix}dropdown-link-hover-bg));\n  }\n\n  &.active,\n  &:active {\n    color: var(--#{$prefix}dropdown-link-active-color);\n    text-decoration: none;\n    @include gradient-bg(var(--#{$prefix}dropdown-link-active-bg));\n  }\n\n  &.disabled,\n  &:disabled {\n    color: var(--#{$prefix}dropdown-link-disabled-color);\n    pointer-events: none;\n    background-color: transparent;\n    // Remove CSS gradients if they're enabled\n    background-image: if($enable-gradients, none, null);\n  }\n}\n\n.dropdown-menu.show {\n  display: block;\n}\n\n// Dropdown section headers\n.dropdown-header {\n  display: block;\n  padding: var(--#{$prefix}dropdown-header-padding-y) var(--#{$prefix}dropdown-header-padding-x);\n  margin-bottom: 0; // for use with heading elements\n  @include font-size($font-size-sm);\n  color: var(--#{$prefix}dropdown-header-color);\n  white-space: nowrap; // as with > li > a\n}\n\n// Dropdown text\n.dropdown-item-text {\n  display: block;\n  padding: var(--#{$prefix}dropdown-item-padding-y) var(--#{$prefix}dropdown-item-padding-x);\n  color: var(--#{$prefix}dropdown-link-color);\n}\n\n// Dark dropdowns\n.dropdown-menu-dark {\n  // scss-docs-start dropdown-dark-css-vars\n  --#{$prefix}dropdown-color: #{$dropdown-dark-color};\n  --#{$prefix}dropdown-bg: #{$dropdown-dark-bg};\n  --#{$prefix}dropdown-border-color: #{$dropdown-dark-border-color};\n  --#{$prefix}dropdown-box-shadow: #{$dropdown-dark-box-shadow};\n  --#{$prefix}dropdown-link-color: #{$dropdown-dark-link-color};\n  --#{$prefix}dropdown-link-hover-color: #{$dropdown-dark-link-hover-color};\n  --#{$prefix}dropdown-divider-bg: #{$dropdown-dark-divider-bg};\n  --#{$prefix}dropdown-link-hover-bg: #{$dropdown-dark-link-hover-bg};\n  --#{$prefix}dropdown-link-active-color: #{$dropdown-dark-link-active-color};\n  --#{$prefix}dropdown-link-active-bg: #{$dropdown-dark-link-active-bg};\n  --#{$prefix}dropdown-link-disabled-color: #{$dropdown-dark-link-disabled-color};\n  --#{$prefix}dropdown-header-color: #{$dropdown-dark-header-color};\n  // scss-docs-end dropdown-dark-css-vars\n}\n"
  },
  {
    "path": "lib/bootstrap5/_forms.scss",
    "content": "@import \"forms/labels\";\n@import \"forms/form-text\";\n@import \"forms/form-control\";\n@import \"forms/form-select\";\n@import \"forms/form-check\";\n@import \"forms/form-range\";\n@import \"forms/floating-labels\";\n@import \"forms/input-group\";\n@import \"forms/validation\";\n"
  },
  {
    "path": "lib/bootstrap5/_functions.scss",
    "content": "// Bootstrap functions\n//\n// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n  $prev-key: null;\n  $prev-num: null;\n  @each $key, $num in $map {\n    @if $prev-num == null or unit($num) == \"%\" or unit($prev-num) == \"%\" {\n      // Do nothing\n    } @else if not comparable($prev-num, $num) {\n      @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n    } @else if $prev-num >= $num {\n      @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n    }\n    $prev-key: $key;\n    $prev-num: $num;\n  }\n}\n\n// Starts at zero\n// Used to ensure the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map, $map-name: \"$grid-breakpoints\") {\n  @if length($map) > 0 {\n    $values: map-values($map);\n    $first-value: nth($values, 1);\n    @if $first-value != 0 {\n      @warn \"First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.\";\n    }\n  }\n}\n\n// Colors\n@function to-rgb($value) {\n  @return red($value), green($value), blue($value);\n}\n\n// stylelint-disable scss/dollar-variable-pattern\n@function rgba-css-var($identifier, $target) {\n  @if $identifier == \"body\" and $target == \"bg\" {\n    @return rgba(var(--#{$prefix}#{$identifier}-bg-rgb), var(--#{$prefix}#{$target}-opacity));\n  } @if $identifier == \"body\" and $target == \"text\" {\n    @return rgba(var(--#{$prefix}#{$identifier}-color-rgb), var(--#{$prefix}#{$target}-opacity));\n  } @else {\n    @return rgba(var(--#{$prefix}#{$identifier}-rgb), var(--#{$prefix}#{$target}-opacity));\n  }\n}\n\n@function map-loop($map, $func, $args...) {\n  $_map: ();\n\n  @each $key, $value in $map {\n    // allow to pass the $key and $value of the map as an function argument\n    $_args: ();\n    @each $arg in $args {\n      $_args: append($_args, if($arg == \"$key\", $key, if($arg == \"$value\", $value, $arg)));\n    }\n\n    $_map: map-merge($_map, ($key: call(get-function($func), $_args...)));\n  }\n\n  @return $_map;\n}\n// stylelint-enable scss/dollar-variable-pattern\n\n@function varify($list) {\n  $result: null;\n  @each $entry in $list {\n    $result: append($result, var(--#{$prefix}#{$entry}), space);\n  }\n  @return $result;\n}\n\n// Internal Bootstrap function to turn maps into its negative variant.\n// It prefixes the keys with `n` and makes the value negative.\n@function negativify-map($map) {\n  $result: ();\n  @each $key, $value in $map {\n    @if $key != 0 {\n      $result: map-merge($result, (\"n\" + $key: (-$value)));\n    }\n  }\n  @return $result;\n}\n\n// Get multiple keys from a sass map\n@function map-get-multiple($map, $values) {\n  $result: ();\n  @each $key, $value in $map {\n    @if (index($values, $key) != null) {\n      $result: map-merge($result, ($key: $value));\n    }\n  }\n  @return $result;\n}\n\n// Merge multiple maps\n@function map-merge-multiple($maps...) {\n  $merged-maps: ();\n\n  @each $map in $maps {\n    $merged-maps: map-merge($merged-maps, $map);\n  }\n  @return $merged-maps;\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Kitty Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n  $index: str-index($string, $search);\n\n  @if $index {\n    @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n  }\n\n  @return $string;\n}\n\n// See https://codepen.io/kevinweber/pen/dXWoRw\n//\n// Requires the use of quotes around data URIs.\n\n@function escape-svg($string) {\n  @if str-index($string, \"data:image/svg+xml\") {\n    @each $char, $encoded in $escaped-characters {\n      // Do not escape the url brackets\n      @if str-index($string, \"url(\") == 1 {\n        $string: url(\"#{str-replace(str-slice($string, 6, -3), $char, $encoded)}\");\n      } @else {\n        $string: str-replace($string, $char, $encoded);\n      }\n    }\n  }\n\n  @return $string;\n}\n\n// Color contrast\n// See https://github.com/twbs/bootstrap/pull/30168\n\n// A list of pre-calculated numbers of pow(divide((divide($value, 255) + .055), 1.055), 2.4). (from 0 to 255)\n// stylelint-disable-next-line scss/dollar-variable-default, scss/dollar-variable-pattern\n$_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003 .0033 .0037 .004 .0044 .0048 .0052 .0056 .006 .0065 .007 .0075 .008 .0086 .0091 .0097 .0103 .011 .0116 .0123 .013 .0137 .0144 .0152 .016 .0168 .0176 .0185 .0194 .0203 .0212 .0222 .0232 .0242 .0252 .0262 .0273 .0284 .0296 .0307 .0319 .0331 .0343 .0356 .0369 .0382 .0395 .0409 .0423 .0437 .0452 .0467 .0482 .0497 .0513 .0529 .0545 .0561 .0578 .0595 .0612 .063 .0648 .0666 .0685 .0704 .0723 .0742 .0762 .0782 .0802 .0823 .0844 .0865 .0887 .0908 .0931 .0953 .0976 .0999 .1022 .1046 .107 .1095 .1119 .1144 .117 .1195 .1221 .1248 .1274 .1301 .1329 .1356 .1384 .1413 .1441 .147 .15 .1529 .1559 .159 .162 .1651 .1683 .1714 .1746 .1779 .1812 .1845 .1878 .1912 .1946 .1981 .2016 .2051 .2086 .2122 .2159 .2195 .2232 .227 .2307 .2346 .2384 .2423 .2462 .2502 .2542 .2582 .2623 .2664 .2705 .2747 .2789 .2831 .2874 .2918 .2961 .3005 .305 .3095 .314 .3185 .3231 .3278 .3325 .3372 .3419 .3467 .3515 .3564 .3613 .3663 .3712 .3763 .3813 .3864 .3916 .3968 .402 .4072 .4125 .4179 .4233 .4287 .4342 .4397 .4452 .4508 .4564 .4621 .4678 .4735 .4793 .4851 .491 .4969 .5029 .5089 .5149 .521 .5271 .5333 .5395 .5457 .552 .5583 .5647 .5711 .5776 .5841 .5906 .5972 .6038 .6105 .6172 .624 .6308 .6376 .6445 .6514 .6584 .6654 .6724 .6795 .6867 .6939 .7011 .7084 .7157 .7231 .7305 .7379 .7454 .7529 .7605 .7682 .7758 .7835 .7913 .7991 .807 .8148 .8228 .8308 .8388 .8469 .855 .8632 .8714 .8796 .8879 .8963 .9047 .9131 .9216 .9301 .9387 .9473 .956 .9647 .9734 .9823 .9911 1;\n\n@function color-contrast($background, $color-contrast-dark: $color-contrast-dark, $color-contrast-light: $color-contrast-light, $min-contrast-ratio: $min-contrast-ratio) {\n  $foregrounds: $color-contrast-light, $color-contrast-dark, $white, $black;\n  $max-ratio: 0;\n  $max-ratio-color: null;\n\n  @each $color in $foregrounds {\n    $contrast-ratio: contrast-ratio($background, $color);\n    @if $contrast-ratio > $min-contrast-ratio {\n      @return $color;\n    } @else if $contrast-ratio > $max-ratio {\n      $max-ratio: $contrast-ratio;\n      $max-ratio-color: $color;\n    }\n  }\n\n  @warn \"Found no color leading to #{$min-contrast-ratio}:1 contrast ratio against #{$background}...\";\n\n  @return $max-ratio-color;\n}\n\n@function contrast-ratio($background, $foreground: $color-contrast-light) {\n  $l1: luminance($background);\n  $l2: luminance(opaque($background, $foreground));\n\n  @return if($l1 > $l2, divide($l1 + .05, $l2 + .05), divide($l2 + .05, $l1 + .05));\n}\n\n// Return WCAG2.1 relative luminance\n// See https://www.w3.org/TR/WCAG/#dfn-relative-luminance\n// See https://www.w3.org/TR/WCAG/#dfn-contrast-ratio\n@function luminance($color) {\n  $rgb: (\n    \"r\": red($color),\n    \"g\": green($color),\n    \"b\": blue($color)\n  );\n\n  @each $name, $value in $rgb {\n    $value: if(divide($value, 255) < .03928, divide(divide($value, 255), 12.92), nth($_luminance-list, $value + 1));\n    $rgb: map-merge($rgb, ($name: $value));\n  }\n\n  @return (map-get($rgb, \"r\") * .2126) + (map-get($rgb, \"g\") * .7152) + (map-get($rgb, \"b\") * .0722);\n}\n\n// Return opaque color\n// opaque(#fff, rgba(0, 0, 0, .5)) => #808080\n@function opaque($background, $foreground) {\n  @return mix(rgba($foreground, 1), $background, opacity($foreground) * 100%);\n}\n\n// scss-docs-start color-functions\n// Tint a color: mix a color with white\n@function tint-color($color, $weight) {\n  @return mix(white, $color, $weight);\n}\n\n// Shade a color: mix a color with black\n@function shade-color($color, $weight) {\n  @return mix(black, $color, $weight);\n}\n\n// Shade the color if the weight is positive, else tint it\n@function shift-color($color, $weight) {\n  @return if($weight > 0, shade-color($color, $weight), tint-color($color, -$weight));\n}\n// scss-docs-end color-functions\n\n// Return valid calc\n@function add($value1, $value2, $return-calc: true) {\n  @if $value1 == null {\n    @return $value2;\n  }\n\n  @if $value2 == null {\n    @return $value1;\n  }\n\n  @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n    @return $value1 + $value2;\n  }\n\n  @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(\" + \") + $value2);\n}\n\n@function subtract($value1, $value2, $return-calc: true) {\n  @if $value1 == null and $value2 == null {\n    @return null;\n  }\n\n  @if $value1 == null {\n    @return -$value2;\n  }\n\n  @if $value2 == null {\n    @return $value1;\n  }\n\n  @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n    @return $value1 - $value2;\n  }\n\n  @if type-of($value2) != number {\n    $value2: unquote(\"(\") + $value2 + unquote(\")\");\n  }\n\n  @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(\" - \") + $value2);\n}\n\n@function divide($dividend, $divisor, $precision: 10) {\n  $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n  $dividend: abs($dividend);\n  $divisor: abs($divisor);\n  @if $dividend == 0 {\n    @return 0;\n  }\n  @if $divisor == 0 {\n    @error \"Cannot divide by 0\";\n  }\n  $remainder: $dividend;\n  $result: 0;\n  $factor: 10;\n  @while ($remainder > 0 and $precision >= 0) {\n    $quotient: 0;\n    @while ($remainder >= $divisor) {\n      $remainder: $remainder - $divisor;\n      $quotient: $quotient + 1;\n    }\n    $result: $result * 10 + $quotient;\n    $factor: $factor * .1;\n    $remainder: $remainder * 10;\n    $precision: $precision - 1;\n    @if ($precision < 0 and $remainder >= $divisor * 5) {\n      $result: $result + 1;\n    }\n  }\n  $result: $result * $factor * $sign;\n  $dividend-unit: unit($dividend);\n  $divisor-unit: unit($divisor);\n  $unit-map: (\n    \"px\": 1px,\n    \"rem\": 1rem,\n    \"em\": 1em,\n    \"%\": 1%\n  );\n  @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n    $result: $result * map-get($unit-map, $dividend-unit);\n  }\n  @return $result;\n}\n"
  },
  {
    "path": "lib/bootstrap5/_grid.scss",
    "content": "// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n  .row {\n    @include make-row();\n\n    > * {\n      @include make-col-ready();\n    }\n  }\n}\n\n@if $enable-cssgrid {\n  .grid {\n    display: grid;\n    grid-template-rows: repeat(var(--#{$prefix}rows, 1), 1fr);\n    grid-template-columns: repeat(var(--#{$prefix}columns, #{$grid-columns}), 1fr);\n    gap: var(--#{$prefix}gap, #{$grid-gutter-width});\n\n    @include make-cssgrid();\n  }\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n  @include make-grid-columns();\n}\n"
  },
  {
    "path": "lib/bootstrap5/_helpers.scss",
    "content": "@import \"helpers/clearfix\";\n@import \"helpers/color-bg\";\n@import \"helpers/colored-links\";\n@import \"helpers/ratio\";\n@import \"helpers/position\";\n@import \"helpers/stacks\";\n@import \"helpers/visually-hidden\";\n@import \"helpers/stretched-link\";\n@import \"helpers/text-truncation\";\n@import \"helpers/vr\";\n"
  },
  {
    "path": "lib/bootstrap5/_images.scss",
    "content": "// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n  @include img-fluid();\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n  padding: $thumbnail-padding;\n  background-color: $thumbnail-bg;\n  border: $thumbnail-border-width solid $thumbnail-border-color;\n  @include border-radius($thumbnail-border-radius);\n  @include box-shadow($thumbnail-box-shadow);\n\n  // Keep them at most 100% wide\n  @include img-fluid();\n}\n\n//\n// Figures\n//\n\n.figure {\n  // Ensures the caption's text aligns with the image.\n  display: inline-block;\n}\n\n.figure-img {\n  margin-bottom: $spacer * .5;\n  line-height: 1;\n}\n\n.figure-caption {\n  @include font-size($figure-caption-font-size);\n  color: $figure-caption-color;\n}\n"
  },
  {
    "path": "lib/bootstrap5/_list-group.scss",
    "content": "// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n  // scss-docs-start list-group-css-vars\n  --#{$prefix}list-group-color: #{$list-group-color};\n  --#{$prefix}list-group-bg: #{$list-group-bg};\n  --#{$prefix}list-group-border-color: #{$list-group-border-color};\n  --#{$prefix}list-group-border-width: #{$list-group-border-width};\n  --#{$prefix}list-group-border-radius: #{$list-group-border-radius};\n  --#{$prefix}list-group-item-padding-x: #{$list-group-item-padding-x};\n  --#{$prefix}list-group-item-padding-y: #{$list-group-item-padding-y};\n  --#{$prefix}list-group-action-color: #{$list-group-action-color};\n  --#{$prefix}list-group-action-hover-color: #{$list-group-action-hover-color};\n  --#{$prefix}list-group-action-hover-bg: #{$list-group-hover-bg};\n  --#{$prefix}list-group-action-active-color: #{$list-group-action-active-color};\n  --#{$prefix}list-group-action-active-bg: #{$list-group-action-active-bg};\n  --#{$prefix}list-group-disabled-color: #{$list-group-disabled-color};\n  --#{$prefix}list-group-disabled-bg: #{$list-group-disabled-bg};\n  --#{$prefix}list-group-active-color: #{$list-group-active-color};\n  --#{$prefix}list-group-active-bg: #{$list-group-active-bg};\n  --#{$prefix}list-group-active-border-color: #{$list-group-active-border-color};\n  // scss-docs-end list-group-css-vars\n\n  display: flex;\n  flex-direction: column;\n\n  // No need to set list-style: none; since .list-group-item is block level\n  padding-left: 0; // reset padding because ul and ol\n  margin-bottom: 0;\n  @include border-radius(var(--#{$prefix}list-group-border-radius));\n}\n\n.list-group-numbered {\n  list-style-type: none;\n  counter-reset: section;\n\n  > .list-group-item::before {\n    // Increments only this instance of the section counter\n    content: counters(section, \".\") \". \";\n    counter-increment: section;\n  }\n}\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive\n// list items. Includes an extra `.active` modifier class for selected items.\n\n.list-group-item-action {\n  width: 100%; // For `<button>`s (anchors become 100% by default though)\n  color: var(--#{$prefix}list-group-action-color);\n  text-align: inherit; // For `<button>`s (anchors inherit)\n\n  // Hover state\n  &:hover,\n  &:focus {\n    z-index: 1; // Place hover/focus items above their siblings for proper border styling\n    color: var(--#{$prefix}list-group-action-hover-color);\n    text-decoration: none;\n    background-color: var(--#{$prefix}list-group-action-hover-bg);\n  }\n\n  &:active {\n    color: var(--#{$prefix}list-group-action-active-color);\n    background-color: var(--#{$prefix}list-group-action-active-bg);\n  }\n}\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: var(--#{$prefix}list-group-item-padding-y) var(--#{$prefix}list-group-item-padding-x);\n  color: var(--#{$prefix}list-group-color);\n  text-decoration: if($link-decoration == none, null, none);\n  background-color: var(--#{$prefix}list-group-bg);\n  border: var(--#{$prefix}list-group-border-width) solid var(--#{$prefix}list-group-border-color);\n\n  &:first-child {\n    @include border-top-radius(inherit);\n  }\n\n  &:last-child {\n    @include border-bottom-radius(inherit);\n  }\n\n  &.disabled,\n  &:disabled {\n    color: var(--#{$prefix}list-group-disabled-color);\n    pointer-events: none;\n    background-color: var(--#{$prefix}list-group-disabled-bg);\n  }\n\n  // Include both here for `<a>`s and `<button>`s\n  &.active {\n    z-index: 2; // Place active items above their siblings for proper border styling\n    color: var(--#{$prefix}list-group-active-color);\n    background-color: var(--#{$prefix}list-group-active-bg);\n    border-color: var(--#{$prefix}list-group-active-border-color);\n  }\n\n  // stylelint-disable-next-line scss/selector-no-redundant-nesting-selector\n  & + .list-group-item {\n    border-top-width: 0;\n\n    &.active {\n      margin-top: calc(-1 * var(--#{$prefix}list-group-border-width)); // stylelint-disable-line function-disallowed-list\n      border-top-width: var(--#{$prefix}list-group-border-width);\n    }\n  }\n}\n\n// Horizontal\n//\n// Change the layout of list group items from vertical (default) to horizontal.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .list-group-horizontal#{$infix} {\n      flex-direction: row;\n\n      > .list-group-item {\n        &:first-child:not(:last-child) {\n          @include border-bottom-start-radius(var(--#{$prefix}list-group-border-radius));\n          @include border-top-end-radius(0);\n        }\n\n        &:last-child:not(:first-child) {\n          @include border-top-end-radius(var(--#{$prefix}list-group-border-radius));\n          @include border-bottom-start-radius(0);\n        }\n\n        &.active {\n          margin-top: 0;\n        }\n\n        + .list-group-item {\n          border-top-width: var(--#{$prefix}list-group-border-width);\n          border-left-width: 0;\n\n          &.active {\n            margin-left: calc(-1 * var(--#{$prefix}list-group-border-width)); // stylelint-disable-line function-disallowed-list\n            border-left-width: var(--#{$prefix}list-group-border-width);\n          }\n        }\n      }\n    }\n  }\n}\n\n\n// Flush list items\n//\n// Remove borders and border-radius to keep list group items edge-to-edge. Most\n// useful within other components (e.g., cards).\n\n.list-group-flush {\n  @include border-radius(0);\n\n  > .list-group-item {\n    border-width: 0 0 var(--#{$prefix}list-group-border-width);\n\n    &:last-child {\n      border-bottom-width: 0;\n    }\n  }\n}\n\n\n// scss-docs-start list-group-modifiers\n// List group contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n@each $state, $value in $theme-colors {\n  $list-group-variant-bg: shift-color($value, $list-group-item-bg-scale);\n  $list-group-variant-color: shift-color($value, $list-group-item-color-scale);\n  @if (contrast-ratio($list-group-variant-bg, $list-group-variant-color) < $min-contrast-ratio) {\n    $list-group-variant-color: mix($value, color-contrast($list-group-variant-bg), abs($list-group-item-color-scale));\n  }\n\n  @include list-group-item-variant($state, $list-group-variant-bg, $list-group-variant-color);\n}\n// scss-docs-end list-group-modifiers\n"
  },
  {
    "path": "lib/bootstrap5/_maps.scss",
    "content": "// Re-assigned maps\n//\n// Placed here so that others can override the default Sass maps and see automatic updates to utilities and more.\n\n// scss-docs-start theme-colors-rgb\n$theme-colors-rgb: map-loop($theme-colors, to-rgb, \"$value\") !default;\n// scss-docs-end theme-colors-rgb\n\n// Utilities maps\n//\n// Extends the default `$theme-colors` maps to help create our utilities.\n\n// Come v6, we'll de-dupe these variables. Until then, for backward compatibility, we keep them to reassign.\n// scss-docs-start utilities-colors\n$utilities-colors: $theme-colors-rgb !default;\n// scss-docs-end utilities-colors\n\n// scss-docs-start utilities-text-colors\n$utilities-text: map-merge(\n  $utilities-colors,\n  (\n    \"black\": to-rgb($black),\n    \"white\": to-rgb($white),\n    \"body\": to-rgb($body-color)\n  )\n) !default;\n$utilities-text-colors: map-loop($utilities-text, rgba-css-var, \"$key\", \"text\") !default;\n// scss-docs-end utilities-text-colors\n\n// scss-docs-start utilities-bg-colors\n$utilities-bg: map-merge(\n  $utilities-colors,\n  (\n    \"black\": to-rgb($black),\n    \"white\": to-rgb($white),\n    \"body\": to-rgb($body-bg)\n  )\n) !default;\n$utilities-bg-colors: map-loop($utilities-bg, rgba-css-var, \"$key\", \"bg\") !default;\n// scss-docs-end utilities-bg-colors\n\n// scss-docs-start utilities-border-colors\n$utilities-border: map-merge(\n  $utilities-colors,\n  (\n    \"white\": to-rgb($white)\n  )\n) !default;\n$utilities-border-colors: map-loop($utilities-border, rgba-css-var, \"$key\", \"border\") !default;\n// scss-docs-end utilities-border-colors\n\n$negative-spacers: if($enable-negative-margins, negativify-map($spacers), null) !default;\n\n$gutters: $spacers !default;\n"
  },
  {
    "path": "lib/bootstrap5/_mixins.scss",
    "content": "// Toggles\n//\n// Used in conjunction with global variables to enable certain theme features.\n\n// Vendor\n@import \"vendor/rfs\";\n\n// Deprecate\n@import \"mixins/deprecate\";\n\n// Helpers\n@import \"mixins/breakpoints\";\n@import \"mixins/color-scheme\";\n@import \"mixins/image\";\n@import \"mixins/resize\";\n@import \"mixins/visually-hidden\";\n@import \"mixins/reset-text\";\n@import \"mixins/text-truncate\";\n\n// Utilities\n@import \"mixins/utilities\";\n\n// Components\n@import \"mixins/alert\";\n@import \"mixins/backdrop\";\n@import \"mixins/buttons\";\n@import \"mixins/caret\";\n@import \"mixins/pagination\";\n@import \"mixins/lists\";\n@import \"mixins/list-group\";\n@import \"mixins/forms\";\n@import \"mixins/table-variants\";\n\n// Skins\n@import \"mixins/border-radius\";\n@import \"mixins/box-shadow\";\n@import \"mixins/gradients\";\n@import \"mixins/transition\";\n\n// Layout\n@import \"mixins/clearfix\";\n@import \"mixins/container\";\n@import \"mixins/grid\";\n"
  },
  {
    "path": "lib/bootstrap5/_modal.scss",
    "content": "// stylelint-disable function-disallowed-list\n\n// .modal-open      - body class for killing the scroll\n// .modal           - container to scroll within\n// .modal-dialog    - positioning shell for the actual modal\n// .modal-content   - actual modal w/ bg and corners and stuff\n\n\n// Container that the modal scrolls within\n.modal {\n  // scss-docs-start modal-css-vars\n  --#{$prefix}modal-zindex: #{$zindex-modal};\n  --#{$prefix}modal-width: #{$modal-md};\n  --#{$prefix}modal-padding: #{$modal-inner-padding};\n  --#{$prefix}modal-margin: #{$modal-dialog-margin};\n  --#{$prefix}modal-color: #{$modal-content-color};\n  --#{$prefix}modal-bg: #{$modal-content-bg};\n  --#{$prefix}modal-border-color: #{$modal-content-border-color};\n  --#{$prefix}modal-border-width: #{$modal-content-border-width};\n  --#{$prefix}modal-border-radius: #{$modal-content-border-radius};\n  --#{$prefix}modal-box-shadow: #{$modal-content-box-shadow-xs};\n  --#{$prefix}modal-inner-border-radius: #{$modal-content-inner-border-radius};\n  --#{$prefix}modal-header-padding-x: #{$modal-header-padding-x};\n  --#{$prefix}modal-header-padding-y: #{$modal-header-padding-y};\n  --#{$prefix}modal-header-padding: #{$modal-header-padding}; // Todo in v6: Split this padding into x and y\n  --#{$prefix}modal-header-border-color: #{$modal-header-border-color};\n  --#{$prefix}modal-header-border-width: #{$modal-header-border-width};\n  --#{$prefix}modal-title-line-height: #{$modal-title-line-height};\n  --#{$prefix}modal-footer-gap: #{$modal-footer-margin-between};\n  --#{$prefix}modal-footer-bg: #{$modal-footer-bg};\n  --#{$prefix}modal-footer-border-color: #{$modal-footer-border-color};\n  --#{$prefix}modal-footer-border-width: #{$modal-footer-border-width};\n  // scss-docs-end modal-css-vars\n\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: var(--#{$prefix}modal-zindex);\n  display: none;\n  width: 100%;\n  height: 100%;\n  overflow-x: hidden;\n  overflow-y: auto;\n  // Prevent Chrome on Windows from adding a focus outline. For details, see\n  // https://github.com/twbs/bootstrap/pull/10951.\n  outline: 0;\n  // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a\n  // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\n  // See also https://github.com/twbs/bootstrap/issues/17695\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: var(--#{$prefix}modal-margin);\n  // allow clicks to pass through for custom click handling to close modal\n  pointer-events: none;\n\n  // When fading in the modal, animate it to slide down\n  .modal.fade & {\n    @include transition($modal-transition);\n    transform: $modal-fade-transform;\n  }\n  .modal.show & {\n    transform: $modal-show-transform;\n  }\n\n  // When trying to close, animate focus to scale\n  .modal.modal-static & {\n    transform: $modal-scale-transform;\n  }\n}\n\n.modal-dialog-scrollable {\n  height: calc(100% - var(--#{$prefix}modal-margin) * 2);\n\n  .modal-content {\n    max-height: 100%;\n    overflow: hidden;\n  }\n\n  .modal-body {\n    overflow-y: auto;\n  }\n}\n\n.modal-dialog-centered {\n  display: flex;\n  align-items: center;\n  min-height: calc(100% - var(--#{$prefix}modal-margin) * 2);\n}\n\n// Actual modal\n.modal-content {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`\n  // counteract the pointer-events: none; in the .modal-dialog\n  color: var(--#{$prefix}modal-color);\n  pointer-events: auto;\n  background-color: var(--#{$prefix}modal-bg);\n  background-clip: padding-box;\n  border: var(--#{$prefix}modal-border-width) solid var(--#{$prefix}modal-border-color);\n  @include border-radius(var(--#{$prefix}modal-border-radius));\n  @include box-shadow(var(--#{$prefix}modal-box-shadow));\n  // Remove focus outline from opened modal\n  outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n  // scss-docs-start modal-backdrop-css-vars\n  --#{$prefix}backdrop-zindex: #{$zindex-modal-backdrop};\n  --#{$prefix}backdrop-bg: #{$modal-backdrop-bg};\n  --#{$prefix}backdrop-opacity: #{$modal-backdrop-opacity};\n  // scss-docs-end modal-backdrop-css-vars\n\n  @include overlay-backdrop(var(--#{$prefix}backdrop-zindex), var(--#{$prefix}backdrop-bg), var(--#{$prefix}backdrop-opacity));\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n  display: flex;\n  flex-shrink: 0;\n  align-items: center;\n  justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends\n  padding: var(--#{$prefix}modal-header-padding);\n  border-bottom: var(--#{$prefix}modal-header-border-width) solid var(--#{$prefix}modal-header-border-color);\n  @include border-top-radius(var(--#{$prefix}modal-inner-border-radius));\n\n  .btn-close {\n    padding: calc(var(--#{$prefix}modal-header-padding-y) * .5) calc(var(--#{$prefix}modal-header-padding-x) * .5);\n    margin: calc(-.5 * var(--#{$prefix}modal-header-padding-y)) calc(-.5 * var(--#{$prefix}modal-header-padding-x)) calc(-.5 * var(--#{$prefix}modal-header-padding-y)) auto;\n  }\n}\n\n// Title text within header\n.modal-title {\n  margin-bottom: 0;\n  line-height: var(--#{$prefix}modal-title-line-height);\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n  position: relative;\n  // Enable `flex-grow: 1` so that the body take up as much space as possible\n  // when there should be a fixed height on `.modal-dialog`.\n  flex: 1 1 auto;\n  padding: var(--#{$prefix}modal-padding);\n}\n\n// Footer (for actions)\n.modal-footer {\n  display: flex;\n  flex-shrink: 0;\n  flex-wrap: wrap;\n  align-items: center; // vertically center\n  justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items\n  padding: calc(var(--#{$prefix}modal-padding) - var(--#{$prefix}modal-footer-gap) * .5);\n  background-color: var(--#{$prefix}modal-footer-bg);\n  border-top: var(--#{$prefix}modal-footer-border-width) solid var(--#{$prefix}modal-footer-border-color);\n  @include border-bottom-radius(var(--#{$prefix}modal-inner-border-radius));\n\n  // Place margin between footer elements\n  // This solution is far from ideal because of the universal selector usage,\n  // but is needed to fix https://github.com/twbs/bootstrap/issues/24800\n  > * {\n    margin: calc(var(--#{$prefix}modal-footer-gap) * .5); // Todo in v6: replace with gap on parent class\n  }\n}\n\n// Scale up the modal\n@include media-breakpoint-up(sm) {\n  .modal {\n    --#{$prefix}modal-margin: #{$modal-dialog-margin-y-sm-up};\n    --#{$prefix}modal-box-shadow: #{$modal-content-box-shadow-sm-up};\n  }\n\n  // Automatically set modal's width for larger viewports\n  .modal-dialog {\n    max-width: var(--#{$prefix}modal-width);\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  .modal-sm {\n    --#{$prefix}modal-width: #{$modal-sm};\n  }\n}\n\n@include media-breakpoint-up(lg) {\n  .modal-lg,\n  .modal-xl {\n    --#{$prefix}modal-width: #{$modal-lg};\n  }\n}\n\n@include media-breakpoint-up(xl) {\n  .modal-xl {\n    --#{$prefix}modal-width: #{$modal-xl};\n  }\n}\n\n// scss-docs-start modal-fullscreen-loop\n@each $breakpoint in map-keys($grid-breakpoints) {\n  $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n  $postfix: if($infix != \"\", $infix + \"-down\", \"\");\n\n  @include media-breakpoint-down($breakpoint) {\n    .modal-fullscreen#{$postfix} {\n      width: 100vw;\n      max-width: none;\n      height: 100%;\n      margin: 0;\n\n      .modal-content {\n        height: 100%;\n        border: 0;\n        @include border-radius(0);\n      }\n\n      .modal-header,\n      .modal-footer {\n        @include border-radius(0);\n      }\n\n      .modal-body {\n        overflow-y: auto;\n      }\n    }\n  }\n}\n// scss-docs-end modal-fullscreen-loop\n"
  },
  {
    "path": "lib/bootstrap5/_nav.scss",
    "content": "// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s, `<ul>`s or `<ol>`s.\n\n.nav {\n  // scss-docs-start nav-css-vars\n  --#{$prefix}nav-link-padding-x: #{$nav-link-padding-x};\n  --#{$prefix}nav-link-padding-y: #{$nav-link-padding-y};\n  @include rfs($nav-link-font-size, --#{$prefix}nav-link-font-size);\n  --#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};\n  --#{$prefix}nav-link-color: #{$nav-link-color};\n  --#{$prefix}nav-link-hover-color: #{$nav-link-hover-color};\n  --#{$prefix}nav-link-disabled-color: #{$nav-link-disabled-color};\n  // scss-docs-end nav-css-vars\n\n  display: flex;\n  flex-wrap: wrap;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.nav-link {\n  display: block;\n  padding: var(--#{$prefix}nav-link-padding-y) var(--#{$prefix}nav-link-padding-x);\n  @include font-size(var(--#{$prefix}nav-link-font-size));\n  font-weight: var(--#{$prefix}nav-link-font-weight);\n  color: var(--#{$prefix}nav-link-color);\n  text-decoration: if($link-decoration == none, null, none);\n  @include transition($nav-link-transition);\n\n  &:hover,\n  &:focus {\n    color: var(--#{$prefix}nav-link-hover-color);\n    text-decoration: if($link-hover-decoration == underline, none, null);\n  }\n\n  // Disabled state lightens text\n  &.disabled {\n    color: var(--#{$prefix}nav-link-disabled-color);\n    pointer-events: none;\n    cursor: default;\n  }\n}\n\n//\n// Tabs\n//\n\n.nav-tabs {\n  // scss-docs-start nav-tabs-css-vars\n  --#{$prefix}nav-tabs-border-width: #{$nav-tabs-border-width};\n  --#{$prefix}nav-tabs-border-color: #{$nav-tabs-border-color};\n  --#{$prefix}nav-tabs-border-radius: #{$nav-tabs-border-radius};\n  --#{$prefix}nav-tabs-link-hover-border-color: #{$nav-tabs-link-hover-border-color};\n  --#{$prefix}nav-tabs-link-active-color: #{$nav-tabs-link-active-color};\n  --#{$prefix}nav-tabs-link-active-bg: #{$nav-tabs-link-active-bg};\n  --#{$prefix}nav-tabs-link-active-border-color: #{$nav-tabs-link-active-border-color};\n  // scss-docs-end nav-tabs-css-vars\n\n  border-bottom: var(--#{$prefix}nav-tabs-border-width) solid var(--#{$prefix}nav-tabs-border-color);\n\n  .nav-link {\n    margin-bottom: calc(-1 * var(--#{$prefix}nav-tabs-border-width)); // stylelint-disable-line function-disallowed-list\n    background: none;\n    border: var(--#{$prefix}nav-tabs-border-width) solid transparent;\n    @include border-top-radius(var(--#{$prefix}nav-tabs-border-radius));\n\n    &:hover,\n    &:focus {\n      // Prevents active .nav-link tab overlapping focus outline of previous/next .nav-link\n      isolation: isolate;\n      border-color: var(--#{$prefix}nav-tabs-link-hover-border-color);\n    }\n\n    &.disabled,\n    &:disabled {\n      color: var(--#{$prefix}nav-link-disabled-color);\n      background-color: transparent;\n      border-color: transparent;\n    }\n  }\n\n  .nav-link.active,\n  .nav-item.show .nav-link {\n    color: var(--#{$prefix}nav-tabs-link-active-color);\n    background-color: var(--#{$prefix}nav-tabs-link-active-bg);\n    border-color: var(--#{$prefix}nav-tabs-link-active-border-color);\n  }\n\n  .dropdown-menu {\n    // Make dropdown border overlap tab border\n    margin-top: calc(-1 * var(--#{$prefix}nav-tabs-border-width)); // stylelint-disable-line function-disallowed-list\n    // Remove the top rounded corners here since there is a hard edge above the menu\n    @include border-top-radius(0);\n  }\n}\n\n\n//\n// Pills\n//\n\n.nav-pills {\n  // scss-docs-start nav-pills-css-vars\n  --#{$prefix}nav-pills-border-radius: #{$nav-pills-border-radius};\n  --#{$prefix}nav-pills-link-active-color: #{$nav-pills-link-active-color};\n  --#{$prefix}nav-pills-link-active-bg: #{$nav-pills-link-active-bg};\n  // scss-docs-end nav-pills-css-vars\n\n  .nav-link {\n    background: none;\n    border: 0;\n    @include border-radius(var(--#{$prefix}nav-pills-border-radius));\n\n    &:disabled {\n      color: var(--#{$prefix}nav-link-disabled-color);\n      background-color: transparent;\n      border-color: transparent;\n    }\n  }\n\n  .nav-link.active,\n  .show > .nav-link {\n    color: var(--#{$prefix}nav-pills-link-active-color);\n    @include gradient-bg(var(--#{$prefix}nav-pills-link-active-bg));\n  }\n}\n\n\n//\n// Justified variants\n//\n\n.nav-fill {\n  > .nav-link,\n  .nav-item {\n    flex: 1 1 auto;\n    text-align: center;\n  }\n}\n\n.nav-justified {\n  > .nav-link,\n  .nav-item {\n    flex-basis: 0;\n    flex-grow: 1;\n    text-align: center;\n  }\n}\n\n.nav-fill,\n.nav-justified {\n  .nav-item .nav-link {\n    width: 100%; // Make sure button will grow\n  }\n}\n\n\n// Tabbable tabs\n//\n// Hide tabbable panes to start, show them when `.active`\n\n.tab-content {\n  > .tab-pane {\n    display: none;\n  }\n  > .active {\n    display: block;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/_navbar.scss",
    "content": "// Navbar\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n  // scss-docs-start navbar-css-vars\n  --#{$prefix}navbar-padding-x: #{if($navbar-padding-x == null, 0, $navbar-padding-x)};\n  --#{$prefix}navbar-padding-y: #{$navbar-padding-y};\n  --#{$prefix}navbar-color: #{$navbar-light-color};\n  --#{$prefix}navbar-hover-color: #{$navbar-light-hover-color};\n  --#{$prefix}navbar-disabled-color: #{$navbar-light-disabled-color};\n  --#{$prefix}navbar-active-color: #{$navbar-light-active-color};\n  --#{$prefix}navbar-brand-padding-y: #{$navbar-brand-padding-y};\n  --#{$prefix}navbar-brand-margin-end: #{$navbar-brand-margin-end};\n  --#{$prefix}navbar-brand-font-size: #{$navbar-brand-font-size};\n  --#{$prefix}navbar-brand-color: #{$navbar-light-brand-color};\n  --#{$prefix}navbar-brand-hover-color: #{$navbar-light-brand-hover-color};\n  --#{$prefix}navbar-nav-link-padding-x: #{$navbar-nav-link-padding-x};\n  --#{$prefix}navbar-toggler-padding-y: #{$navbar-toggler-padding-y};\n  --#{$prefix}navbar-toggler-padding-x: #{$navbar-toggler-padding-x};\n  --#{$prefix}navbar-toggler-font-size: #{$navbar-toggler-font-size};\n  --#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-light-toggler-icon-bg)};\n  --#{$prefix}navbar-toggler-border-color: #{$navbar-light-toggler-border-color};\n  --#{$prefix}navbar-toggler-border-radius: #{$navbar-toggler-border-radius};\n  --#{$prefix}navbar-toggler-focus-width: #{$navbar-toggler-focus-width};\n  --#{$prefix}navbar-toggler-transition: #{$navbar-toggler-transition};\n  // scss-docs-end navbar-css-vars\n\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; // allow us to do the line break for collapsing content\n  align-items: center;\n  justify-content: space-between; // space out brand from logo\n  padding: var(--#{$prefix}navbar-padding-y) var(--#{$prefix}navbar-padding-x);\n  @include gradient-bg();\n\n  // Because flex properties aren't inherited, we need to redeclare these first\n  // few properties so that content nested within behave properly.\n  // The `flex-wrap` property is inherited to simplify the expanded navbars\n  %container-flex-properties {\n    display: flex;\n    flex-wrap: inherit;\n    align-items: center;\n    justify-content: space-between;\n  }\n\n  > .container,\n  > .container-fluid {\n    @extend %container-flex-properties;\n  }\n\n  @each $breakpoint, $container-max-width in $container-max-widths {\n    > .container#{breakpoint-infix($breakpoint, $container-max-widths)} {\n      @extend %container-flex-properties;\n    }\n  }\n}\n\n\n// Navbar brand\n//\n// Used for brand, project, or site names.\n\n.navbar-brand {\n  padding-top: var(--#{$prefix}navbar-brand-padding-y);\n  padding-bottom: var(--#{$prefix}navbar-brand-padding-y);\n  margin-right: var(--#{$prefix}navbar-brand-margin-end);\n  @include font-size(var(--#{$prefix}navbar-brand-font-size));\n  color: var(--#{$prefix}navbar-brand-color);\n  text-decoration: if($link-decoration == none, null, none);\n  white-space: nowrap;\n\n  &:hover,\n  &:focus {\n    color: var(--#{$prefix}navbar-brand-hover-color);\n    text-decoration: if($link-hover-decoration == underline, none, null);\n  }\n}\n\n\n// Navbar nav\n//\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\n\n.navbar-nav {\n  // scss-docs-start navbar-nav-css-vars\n  --#{$prefix}nav-link-padding-x: 0;\n  --#{$prefix}nav-link-padding-y: #{$nav-link-padding-y};\n  @include rfs($nav-link-font-size, --#{$prefix}nav-link-font-size);\n  --#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};\n  --#{$prefix}nav-link-color: var(--#{$prefix}navbar-color);\n  --#{$prefix}nav-link-hover-color: var(--#{$prefix}navbar-hover-color);\n  --#{$prefix}nav-link-disabled-color: var(--#{$prefix}navbar-disabled-color);\n  // scss-docs-end navbar-nav-css-vars\n\n  display: flex;\n  flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n\n  .show > .nav-link,\n  .nav-link.active {\n    color: var(--#{$prefix}navbar-active-color);\n  }\n\n  .dropdown-menu {\n    position: static;\n  }\n}\n\n\n// Navbar text\n//\n//\n\n.navbar-text {\n  padding-top: $nav-link-padding-y;\n  padding-bottom: $nav-link-padding-y;\n  color: var(--#{$prefix}navbar-color);\n\n  a,\n  a:hover,\n  a:focus  {\n    color: var(--#{$prefix}navbar-active-color);\n  }\n}\n\n\n// Responsive navbar\n//\n// Custom styles for responsive collapsing and toggling of navbar contents.\n// Powered by the collapse Bootstrap JavaScript plugin.\n\n// When collapsed, prevent the toggleable navbar contents from appearing in\n// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`\n// on the `.navbar` parent.\n.navbar-collapse {\n  flex-basis: 100%;\n  flex-grow: 1;\n  // For always expanded or extra full navbars, ensure content aligns itself\n  // properly vertically. Can be easily overridden with flex utilities.\n  align-items: center;\n}\n\n// Button for toggling the navbar when in its collapsed state\n.navbar-toggler {\n  padding: var(--#{$prefix}navbar-toggler-padding-y) var(--#{$prefix}navbar-toggler-padding-x);\n  @include font-size(var(--#{$prefix}navbar-toggler-font-size));\n  line-height: 1;\n  color: var(--#{$prefix}navbar-color);\n  background-color: transparent; // remove default button style\n  border: var(--#{$prefix}border-width) solid var(--#{$prefix}navbar-toggler-border-color); // remove default button style\n  @include border-radius(var(--#{$prefix}navbar-toggler-border-radius));\n  @include transition(var(--#{$prefix}navbar-toggler-transition));\n\n  &:hover {\n    text-decoration: none;\n  }\n\n  &:focus {\n    text-decoration: none;\n    outline: 0;\n    box-shadow: 0 0 0 var(--#{$prefix}navbar-toggler-focus-width);\n  }\n}\n\n// Keep as a separate element so folks can easily override it with another icon\n// or image file as needed.\n.navbar-toggler-icon {\n  display: inline-block;\n  width: 1.5em;\n  height: 1.5em;\n  vertical-align: middle;\n  background-image: var(--#{$prefix}navbar-toggler-icon-bg);\n  background-repeat: no-repeat;\n  background-position: center;\n  background-size: 100%;\n}\n\n.navbar-nav-scroll {\n  max-height: var(--#{$prefix}scroll-height, 75vh);\n  overflow-y: auto;\n}\n\n// scss-docs-start navbar-expand-loop\n// Generate series of `.navbar-expand-*` responsive classes for configuring\n// where your navbar collapses.\n.navbar-expand {\n  @each $breakpoint in map-keys($grid-breakpoints) {\n    $next: breakpoint-next($breakpoint, $grid-breakpoints);\n    $infix: breakpoint-infix($next, $grid-breakpoints);\n\n    // stylelint-disable-next-line scss/selector-no-union-class-name\n    &#{$infix} {\n      @include media-breakpoint-up($next) {\n        flex-wrap: nowrap;\n        justify-content: flex-start;\n\n        .navbar-nav {\n          flex-direction: row;\n\n          .dropdown-menu {\n            position: absolute;\n          }\n\n          .nav-link {\n            padding-right: var(--#{$prefix}navbar-nav-link-padding-x);\n            padding-left: var(--#{$prefix}navbar-nav-link-padding-x);\n          }\n        }\n\n        .navbar-nav-scroll {\n          overflow: visible;\n        }\n\n        .navbar-collapse {\n          display: flex !important; // stylelint-disable-line declaration-no-important\n          flex-basis: auto;\n        }\n\n        .navbar-toggler {\n          display: none;\n        }\n\n        .offcanvas {\n          // stylelint-disable declaration-no-important\n          position: static;\n          z-index: auto;\n          flex-grow: 1;\n          width: auto !important;\n          height: auto !important;\n          visibility: visible !important;\n          background-color: transparent !important;\n          border: 0 !important;\n          transform: none !important;\n          @include box-shadow(none);\n          @include transition(none);\n          // stylelint-enable declaration-no-important\n\n          .offcanvas-header {\n            display: none;\n          }\n\n          .offcanvas-body {\n            display: flex;\n            flex-grow: 0;\n            padding: 0;\n            overflow-y: visible;\n          }\n        }\n      }\n    }\n  }\n}\n// scss-docs-end navbar-expand-loop\n\n// Navbar themes\n//\n// Styles for switching between navbars with light or dark background.\n\n.navbar-light {\n  @include deprecate(\"`.navbar-light`\", \"v5.2.0\", \"v6.0.0\", true);\n}\n\n.navbar-dark {\n  // scss-docs-start navbar-dark-css-vars\n  --#{$prefix}navbar-color: #{$navbar-dark-color};\n  --#{$prefix}navbar-hover-color: #{$navbar-dark-hover-color};\n  --#{$prefix}navbar-disabled-color: #{$navbar-dark-disabled-color};\n  --#{$prefix}navbar-active-color: #{$navbar-dark-active-color};\n  --#{$prefix}navbar-brand-color: #{$navbar-dark-brand-color};\n  --#{$prefix}navbar-brand-hover-color: #{$navbar-dark-brand-hover-color};\n  --#{$prefix}navbar-toggler-border-color: #{$navbar-dark-toggler-border-color};\n  --#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-dark-toggler-icon-bg)};\n  // scss-docs-end navbar-dark-css-vars\n}\n"
  },
  {
    "path": "lib/bootstrap5/_offcanvas.scss",
    "content": "// stylelint-disable function-disallowed-list\n\n%offcanvas-css-vars {\n  // scss-docs-start offcanvas-css-vars\n  --#{$prefix}offcanvas-zindex: #{$zindex-offcanvas};\n  --#{$prefix}offcanvas-width: #{$offcanvas-horizontal-width};\n  --#{$prefix}offcanvas-height: #{$offcanvas-vertical-height};\n  --#{$prefix}offcanvas-padding-x: #{$offcanvas-padding-x};\n  --#{$prefix}offcanvas-padding-y: #{$offcanvas-padding-y};\n  --#{$prefix}offcanvas-color: #{$offcanvas-color};\n  --#{$prefix}offcanvas-bg: #{$offcanvas-bg-color};\n  --#{$prefix}offcanvas-border-width: #{$offcanvas-border-width};\n  --#{$prefix}offcanvas-border-color: #{$offcanvas-border-color};\n  --#{$prefix}offcanvas-box-shadow: #{$offcanvas-box-shadow};\n  // scss-docs-end offcanvas-css-vars\n}\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  $next: breakpoint-next($breakpoint, $grid-breakpoints);\n  $infix: breakpoint-infix($next, $grid-breakpoints);\n\n  .offcanvas#{$infix} {\n    @extend %offcanvas-css-vars;\n  }\n}\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  $next: breakpoint-next($breakpoint, $grid-breakpoints);\n  $infix: breakpoint-infix($next, $grid-breakpoints);\n\n  .offcanvas#{$infix} {\n    @include media-breakpoint-down($next) {\n      position: fixed;\n      bottom: 0;\n      z-index: var(--#{$prefix}offcanvas-zindex);\n      display: flex;\n      flex-direction: column;\n      max-width: 100%;\n      color: var(--#{$prefix}offcanvas-color);\n      visibility: hidden;\n      background-color: var(--#{$prefix}offcanvas-bg);\n      background-clip: padding-box;\n      outline: 0;\n      @include box-shadow(var(--#{$prefix}offcanvas-box-shadow));\n      @include transition(transform $offcanvas-transition-duration ease-in-out);\n\n      &.offcanvas-start {\n        top: 0;\n        left: 0;\n        width: var(--#{$prefix}offcanvas-width);\n        border-right: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);\n        transform: translateX(-100%);\n      }\n\n      &.offcanvas-end {\n        top: 0;\n        right: 0;\n        width: var(--#{$prefix}offcanvas-width);\n        border-left: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);\n        transform: translateX(100%);\n      }\n\n      &.offcanvas-top {\n        top: 0;\n        right: 0;\n        left: 0;\n        height: var(--#{$prefix}offcanvas-height);\n        max-height: 100%;\n        border-bottom: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);\n        transform: translateY(-100%);\n      }\n\n      &.offcanvas-bottom {\n        right: 0;\n        left: 0;\n        height: var(--#{$prefix}offcanvas-height);\n        max-height: 100%;\n        border-top: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);\n        transform: translateY(100%);\n      }\n\n      &.showing,\n      &.show:not(.hiding) {\n        transform: none;\n      }\n\n      &.showing,\n      &.hiding,\n      &.show {\n        visibility: visible;\n      }\n    }\n\n    @if not ($infix == \"\") {\n      @include media-breakpoint-up($next) {\n        --#{$prefix}offcanvas-height: auto;\n        --#{$prefix}offcanvas-border-width: 0;\n        background-color: transparent !important; // stylelint-disable-line declaration-no-important\n\n        .offcanvas-header {\n          display: none;\n        }\n\n        .offcanvas-body {\n          display: flex;\n          flex-grow: 0;\n          padding: 0;\n          overflow-y: visible;\n          // Reset `background-color` in case `.bg-*` classes are used in offcanvas\n          background-color: transparent !important; // stylelint-disable-line declaration-no-important\n        }\n      }\n    }\n  }\n}\n\n.offcanvas-backdrop {\n  @include overlay-backdrop($zindex-offcanvas-backdrop, $offcanvas-backdrop-bg, $offcanvas-backdrop-opacity);\n}\n\n.offcanvas-header {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  padding: var(--#{$prefix}offcanvas-padding-y) var(--#{$prefix}offcanvas-padding-x);\n\n  .btn-close {\n    padding: calc(var(--#{$prefix}offcanvas-padding-y) * .5) calc(var(--#{$prefix}offcanvas-padding-x) * .5);\n    margin-top: calc(-.5 * var(--#{$prefix}offcanvas-padding-y));\n    margin-right: calc(-.5 * var(--#{$prefix}offcanvas-padding-x));\n    margin-bottom: calc(-.5 * var(--#{$prefix}offcanvas-padding-y));\n  }\n}\n\n.offcanvas-title {\n  margin-bottom: 0;\n  line-height: $offcanvas-title-line-height;\n}\n\n.offcanvas-body {\n  flex-grow: 1;\n  padding: var(--#{$prefix}offcanvas-padding-y) var(--#{$prefix}offcanvas-padding-x);\n  overflow-y: auto;\n}\n"
  },
  {
    "path": "lib/bootstrap5/_pagination.scss",
    "content": ".pagination {\n  // scss-docs-start pagination-css-vars\n  --#{$prefix}pagination-padding-x: #{$pagination-padding-x};\n  --#{$prefix}pagination-padding-y: #{$pagination-padding-y};\n  @include rfs($pagination-font-size, --#{$prefix}pagination-font-size);\n  --#{$prefix}pagination-color: #{$pagination-color};\n  --#{$prefix}pagination-bg: #{$pagination-bg};\n  --#{$prefix}pagination-border-width: #{$pagination-border-width};\n  --#{$prefix}pagination-border-color: #{$pagination-border-color};\n  --#{$prefix}pagination-border-radius: #{$pagination-border-radius};\n  --#{$prefix}pagination-hover-color: #{$pagination-hover-color};\n  --#{$prefix}pagination-hover-bg: #{$pagination-hover-bg};\n  --#{$prefix}pagination-hover-border-color: #{$pagination-hover-border-color};\n  --#{$prefix}pagination-focus-color: #{$pagination-focus-color};\n  --#{$prefix}pagination-focus-bg: #{$pagination-focus-bg};\n  --#{$prefix}pagination-focus-box-shadow: #{$pagination-focus-box-shadow};\n  --#{$prefix}pagination-active-color: #{$pagination-active-color};\n  --#{$prefix}pagination-active-bg: #{$pagination-active-bg};\n  --#{$prefix}pagination-active-border-color: #{$pagination-active-border-color};\n  --#{$prefix}pagination-disabled-color: #{$pagination-disabled-color};\n  --#{$prefix}pagination-disabled-bg: #{$pagination-disabled-bg};\n  --#{$prefix}pagination-disabled-border-color: #{$pagination-disabled-border-color};\n  // scss-docs-end pagination-css-vars\n\n  display: flex;\n  @include list-unstyled();\n}\n\n.page-link {\n  position: relative;\n  display: block;\n  padding: var(--#{$prefix}pagination-padding-y) var(--#{$prefix}pagination-padding-x);\n  @include font-size(var(--#{$prefix}pagination-font-size));\n  color: var(--#{$prefix}pagination-color);\n  text-decoration: if($link-decoration == none, null, none);\n  background-color: var(--#{$prefix}pagination-bg);\n  border: var(--#{$prefix}pagination-border-width) solid var(--#{$prefix}pagination-border-color);\n  @include transition($pagination-transition);\n\n  &:hover {\n    z-index: 2;\n    color: var(--#{$prefix}pagination-hover-color);\n    text-decoration: if($link-hover-decoration == underline, none, null);\n    background-color: var(--#{$prefix}pagination-hover-bg);\n    border-color: var(--#{$prefix}pagination-hover-border-color);\n  }\n\n  &:focus {\n    z-index: 3;\n    color: var(--#{$prefix}pagination-focus-color);\n    background-color: var(--#{$prefix}pagination-focus-bg);\n    outline: $pagination-focus-outline;\n    box-shadow: var(--#{$prefix}pagination-focus-box-shadow);\n  }\n\n  &.active,\n  .active > & {\n    z-index: 3;\n    color: var(--#{$prefix}pagination-active-color);\n    @include gradient-bg(var(--#{$prefix}pagination-active-bg));\n    border-color: var(--#{$prefix}pagination-active-border-color);\n  }\n\n  &.disabled,\n  .disabled > & {\n    color: var(--#{$prefix}pagination-disabled-color);\n    pointer-events: none;\n    background-color: var(--#{$prefix}pagination-disabled-bg);\n    border-color: var(--#{$prefix}pagination-disabled-border-color);\n  }\n}\n\n.page-item {\n  &:not(:first-child) .page-link {\n    margin-left: $pagination-margin-start;\n  }\n\n  @if $pagination-margin-start == ($pagination-border-width * -1) {\n    &:first-child {\n      .page-link {\n        @include border-start-radius(var(--#{$prefix}pagination-border-radius));\n      }\n    }\n\n    &:last-child {\n      .page-link {\n        @include border-end-radius(var(--#{$prefix}pagination-border-radius));\n      }\n    }\n  } @else {\n    // Add border-radius to all pageLinks in case they have left margin\n    .page-link {\n      @include border-radius(var(--#{$prefix}pagination-border-radius));\n    }\n  }\n}\n\n\n//\n// Sizing\n//\n\n.pagination-lg {\n  @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $pagination-border-radius-lg);\n}\n\n.pagination-sm {\n  @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $pagination-border-radius-sm);\n}\n"
  },
  {
    "path": "lib/bootstrap5/_placeholders.scss",
    "content": ".placeholder {\n  display: inline-block;\n  min-height: 1em;\n  vertical-align: middle;\n  cursor: wait;\n  background-color: currentcolor;\n  opacity: $placeholder-opacity-max;\n\n  &.btn::before {\n    display: inline-block;\n    content: \"\";\n  }\n}\n\n// Sizing\n.placeholder-xs {\n  min-height: .6em;\n}\n\n.placeholder-sm {\n  min-height: .8em;\n}\n\n.placeholder-lg {\n  min-height: 1.2em;\n}\n\n// Animation\n.placeholder-glow {\n  .placeholder {\n    animation: placeholder-glow 2s ease-in-out infinite;\n  }\n}\n\n@keyframes placeholder-glow {\n  50% {\n    opacity: $placeholder-opacity-min;\n  }\n}\n\n.placeholder-wave {\n  mask-image: linear-gradient(130deg, $black 55%, rgba(0, 0, 0, (1 - $placeholder-opacity-min)) 75%, $black 95%);\n  mask-size: 200% 100%;\n  animation: placeholder-wave 2s linear infinite;\n}\n\n@keyframes placeholder-wave {\n  100% {\n    mask-position: -200% 0%;\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/_popover.scss",
    "content": ".popover {\n  // scss-docs-start popover-css-vars\n  --#{$prefix}popover-zindex: #{$zindex-popover};\n  --#{$prefix}popover-max-width: #{$popover-max-width};\n  @include rfs($popover-font-size, --#{$prefix}popover-font-size);\n  --#{$prefix}popover-bg: #{$popover-bg};\n  --#{$prefix}popover-border-width: #{$popover-border-width};\n  --#{$prefix}popover-border-color: #{$popover-border-color};\n  --#{$prefix}popover-border-radius: #{$popover-border-radius};\n  --#{$prefix}popover-inner-border-radius: #{$popover-inner-border-radius};\n  --#{$prefix}popover-box-shadow: #{$popover-box-shadow};\n  --#{$prefix}popover-header-padding-x: #{$popover-header-padding-x};\n  --#{$prefix}popover-header-padding-y: #{$popover-header-padding-y};\n  @include rfs($popover-header-font-size, --#{$prefix}popover-header-font-size);\n  --#{$prefix}popover-header-color: #{$popover-header-color};\n  --#{$prefix}popover-header-bg: #{$popover-header-bg};\n  --#{$prefix}popover-body-padding-x: #{$popover-body-padding-x};\n  --#{$prefix}popover-body-padding-y: #{$popover-body-padding-y};\n  --#{$prefix}popover-body-color: #{$popover-body-color};\n  --#{$prefix}popover-arrow-width: #{$popover-arrow-width};\n  --#{$prefix}popover-arrow-height: #{$popover-arrow-height};\n  --#{$prefix}popover-arrow-border: var(--#{$prefix}popover-border-color);\n  // scss-docs-end popover-css-vars\n\n  z-index: var(--#{$prefix}popover-zindex);\n  display: block;\n  max-width: var(--#{$prefix}popover-max-width);\n  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  @include reset-text();\n  @include font-size(var(--#{$prefix}popover-font-size));\n  // Allow breaking very long words so they don't overflow the popover's bounds\n  word-wrap: break-word;\n  background-color: var(--#{$prefix}popover-bg);\n  background-clip: padding-box;\n  border: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-border-color);\n  @include border-radius(var(--#{$prefix}popover-border-radius));\n  @include box-shadow(var(--#{$prefix}popover-box-shadow));\n\n  .popover-arrow {\n    display: block;\n    width: var(--#{$prefix}popover-arrow-width);\n    height: var(--#{$prefix}popover-arrow-height);\n\n    &::before,\n    &::after {\n      position: absolute;\n      display: block;\n      content: \"\";\n      border-color: transparent;\n      border-style: solid;\n      border-width: 0;\n    }\n  }\n}\n\n.bs-popover-top {\n  > .popover-arrow {\n    bottom: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list\n\n    &::before,\n    &::after {\n      border-width: var(--#{$prefix}popover-arrow-height) calc(var(--#{$prefix}popover-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list\n    }\n\n    &::before {\n      bottom: 0;\n      border-top-color: var(--#{$prefix}popover-arrow-border);\n    }\n\n    &::after {\n      bottom: var(--#{$prefix}popover-border-width);\n      border-top-color: var(--#{$prefix}popover-bg);\n    }\n  }\n}\n\n/* rtl:begin:ignore */\n.bs-popover-end {\n  > .popover-arrow {\n    left: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list\n    width: var(--#{$prefix}popover-arrow-height);\n    height: var(--#{$prefix}popover-arrow-width);\n\n    &::before,\n    &::after {\n      border-width: calc(var(--#{$prefix}popover-arrow-width) * .5) var(--#{$prefix}popover-arrow-height) calc(var(--#{$prefix}popover-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list\n    }\n\n    &::before {\n      left: 0;\n      border-right-color: var(--#{$prefix}popover-arrow-border);\n    }\n\n    &::after {\n      left: var(--#{$prefix}popover-border-width);\n      border-right-color: var(--#{$prefix}popover-bg);\n    }\n  }\n}\n\n/* rtl:end:ignore */\n\n.bs-popover-bottom {\n  > .popover-arrow {\n    top: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list\n\n    &::before,\n    &::after {\n      border-width: 0 calc(var(--#{$prefix}popover-arrow-width) * .5) var(--#{$prefix}popover-arrow-height); // stylelint-disable-line function-disallowed-list\n    }\n\n    &::before {\n      top: 0;\n      border-bottom-color: var(--#{$prefix}popover-arrow-border);\n    }\n\n    &::after {\n      top: var(--#{$prefix}popover-border-width);\n      border-bottom-color: var(--#{$prefix}popover-bg);\n    }\n  }\n\n  // This will remove the popover-header's border just below the arrow\n  .popover-header::before {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    display: block;\n    width: var(--#{$prefix}popover-arrow-width);\n    margin-left: calc(-.5 * var(--#{$prefix}popover-arrow-width)); // stylelint-disable-line function-disallowed-list\n    content: \"\";\n    border-bottom: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-header-bg);\n  }\n}\n\n/* rtl:begin:ignore */\n.bs-popover-start {\n  > .popover-arrow {\n    right: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list\n    width: var(--#{$prefix}popover-arrow-height);\n    height: var(--#{$prefix}popover-arrow-width);\n\n    &::before,\n    &::after {\n      border-width: calc(var(--#{$prefix}popover-arrow-width) * .5) 0 calc(var(--#{$prefix}popover-arrow-width) * .5) var(--#{$prefix}popover-arrow-height); // stylelint-disable-line function-disallowed-list\n    }\n\n    &::before {\n      right: 0;\n      border-left-color: var(--#{$prefix}popover-arrow-border);\n    }\n\n    &::after {\n      right: var(--#{$prefix}popover-border-width);\n      border-left-color: var(--#{$prefix}popover-bg);\n    }\n  }\n}\n\n/* rtl:end:ignore */\n\n.bs-popover-auto {\n  &[data-popper-placement^=\"top\"] {\n    @extend .bs-popover-top;\n  }\n  &[data-popper-placement^=\"right\"] {\n    @extend .bs-popover-end;\n  }\n  &[data-popper-placement^=\"bottom\"] {\n    @extend .bs-popover-bottom;\n  }\n  &[data-popper-placement^=\"left\"] {\n    @extend .bs-popover-start;\n  }\n}\n\n// Offset the popover to account for the popover arrow\n.popover-header {\n  padding: var(--#{$prefix}popover-header-padding-y) var(--#{$prefix}popover-header-padding-x);\n  margin-bottom: 0; // Reset the default from Reboot\n  @include font-size(var(--#{$prefix}popover-header-font-size));\n  color: var(--#{$prefix}popover-header-color);\n  background-color: var(--#{$prefix}popover-header-bg);\n  border-bottom: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-border-color);\n  @include border-top-radius(var(--#{$prefix}popover-inner-border-radius));\n\n  &:empty {\n    display: none;\n  }\n}\n\n.popover-body {\n  padding: var(--#{$prefix}popover-body-padding-y) var(--#{$prefix}popover-body-padding-x);\n  color: var(--#{$prefix}popover-body-color);\n}\n"
  },
  {
    "path": "lib/bootstrap5/_progress.scss",
    "content": "// Disable animation if transitions are disabled\n\n// scss-docs-start progress-keyframes\n@if $enable-transitions {\n  @keyframes progress-bar-stripes {\n    0% { background-position-x: $progress-height; }\n  }\n}\n// scss-docs-end progress-keyframes\n\n.progress {\n  // scss-docs-start progress-css-vars\n  --#{$prefix}progress-height: #{$progress-height};\n  @include rfs($progress-font-size, --#{$prefix}progress-font-size);\n  --#{$prefix}progress-bg: #{$progress-bg};\n  --#{$prefix}progress-border-radius: #{$progress-border-radius};\n  --#{$prefix}progress-box-shadow: #{$progress-box-shadow};\n  --#{$prefix}progress-bar-color: #{$progress-bar-color};\n  --#{$prefix}progress-bar-bg: #{$progress-bar-bg};\n  --#{$prefix}progress-bar-transition: #{$progress-bar-transition};\n  // scss-docs-end progress-css-vars\n\n  display: flex;\n  height: var(--#{$prefix}progress-height);\n  overflow: hidden; // force rounded corners by cropping it\n  @include font-size(var(--#{$prefix}progress-font-size));\n  background-color: var(--#{$prefix}progress-bg);\n  @include border-radius(var(--#{$prefix}progress-border-radius));\n  @include box-shadow(var(--#{$prefix}progress-box-shadow));\n}\n\n.progress-bar {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  overflow: hidden;\n  color: var(--#{$prefix}progress-bar-color);\n  text-align: center;\n  white-space: nowrap;\n  background-color: var(--#{$prefix}progress-bar-bg);\n  @include transition(var(--#{$prefix}progress-bar-transition));\n}\n\n.progress-bar-striped {\n  @include gradient-striped();\n  background-size: var(--#{$prefix}progress-height) var(--#{$prefix}progress-height);\n}\n\n@if $enable-transitions {\n  .progress-bar-animated {\n    animation: $progress-bar-animation-timing progress-bar-stripes;\n\n    @if $enable-reduced-motion {\n      @media (prefers-reduced-motion: reduce) {\n        animation: none;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/_reboot.scss",
    "content": "// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box;\n}\n\n\n// Root\n//\n// Ability to the value of the root font sizes, affecting the value of `rem`.\n// null by default, thus nothing is generated.\n\n:root {\n  @if $font-size-root != null {\n    @include font-size(var(--#{$prefix}root-font-size));\n  }\n\n  @if $enable-smooth-scroll {\n    @media (prefers-reduced-motion: no-preference) {\n      scroll-behavior: smooth;\n    }\n  }\n}\n\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Prevent adjustments of font size after orientation changes in iOS.\n// 4. Change the default tap highlight to be completely transparent in iOS.\n\n// scss-docs-start reboot-body-rules\nbody {\n  margin: 0; // 1\n  font-family: var(--#{$prefix}body-font-family);\n  @include font-size(var(--#{$prefix}body-font-size));\n  font-weight: var(--#{$prefix}body-font-weight);\n  line-height: var(--#{$prefix}body-line-height);\n  color: var(--#{$prefix}body-color);\n  text-align: var(--#{$prefix}body-text-align);\n  background-color: var(--#{$prefix}body-bg); // 2\n  -webkit-text-size-adjust: 100%; // 3\n  -webkit-tap-highlight-color: rgba($black, 0); // 4\n}\n// scss-docs-end reboot-body-rules\n\n\n// Content grouping\n//\n// 1. Reset Firefox's gray color\n\nhr {\n  margin: $hr-margin-y 0;\n  color: $hr-color; // 1\n  border: 0;\n  border-top: $hr-border-width solid $hr-border-color;\n  opacity: $hr-opacity;\n}\n\n\n// Typography\n//\n// 1. Remove top margins from headings\n//    By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n//    margin for easier control within type scales as it avoids margin collapsing.\n\n%heading {\n  margin-top: 0; // 1\n  margin-bottom: $headings-margin-bottom;\n  font-family: $headings-font-family;\n  font-style: $headings-font-style;\n  font-weight: $headings-font-weight;\n  line-height: $headings-line-height;\n  color: $headings-color;\n}\n\nh1 {\n  @extend %heading;\n  @include font-size($h1-font-size);\n}\n\nh2 {\n  @extend %heading;\n  @include font-size($h2-font-size);\n}\n\nh3 {\n  @extend %heading;\n  @include font-size($h3-font-size);\n}\n\nh4 {\n  @extend %heading;\n  @include font-size($h4-font-size);\n}\n\nh5 {\n  @extend %heading;\n  @include font-size($h5-font-size);\n}\n\nh6 {\n  @extend %heading;\n  @include font-size($h6-font-size);\n}\n\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\n\np {\n  margin-top: 0;\n  margin-bottom: $paragraph-margin-bottom;\n}\n\n\n// Abbreviations\n//\n// 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 2. Add explicit cursor to indicate changed behavior.\n// 3. Prevent the text-decoration to be skipped.\n\nabbr[title] {\n  text-decoration: underline dotted; // 1\n  cursor: help; // 2\n  text-decoration-skip-ink: none; // 3\n}\n\n\n// Address\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\n\n// Lists\n\nol,\nul {\n  padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: $dt-font-weight;\n}\n\n// 1. Undo browser default\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0; // 1\n}\n\n\n// Blockquote\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\n\n// Strong\n//\n// Add the correct font weight in Chrome, Edge, and Safari\n\nb,\nstrong {\n  font-weight: $font-weight-bolder;\n}\n\n\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n  @include font-size($small-font-size);\n}\n\n\n// Mark\n\nmark {\n  padding: $mark-padding;\n  background-color: var(--#{$prefix}highlight-bg);\n}\n\n\n// Sub and Sup\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n\nsub,\nsup {\n  position: relative;\n  @include font-size($sub-sup-font-size);\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n// Links\n\na {\n  color: var(--#{$prefix}link-color);\n  text-decoration: $link-decoration;\n\n  &:hover {\n    color: var(--#{$prefix}link-hover-color);\n    text-decoration: $link-hover-decoration;\n  }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n  &,\n  &:hover {\n    color: inherit;\n    text-decoration: none;\n  }\n}\n\n\n// Code\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: $font-family-code;\n  @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\n// 1. Remove browser default top margin\n// 2. Reset browser default of `1em` to use `rem`s\n// 3. Don't allow content to break outside\n\npre {\n  display: block;\n  margin-top: 0; // 1\n  margin-bottom: 1rem; // 2\n  overflow: auto; // 3\n  @include font-size($code-font-size);\n  color: $pre-color;\n\n  // Account for some code outputs that place code tags in pre tags\n  code {\n    @include font-size(inherit);\n    color: inherit;\n    word-break: normal;\n  }\n}\n\ncode {\n  @include font-size($code-font-size);\n  color: var(--#{$prefix}code-color);\n  word-wrap: break-word;\n\n  // Streamline the style when inside anchors to avoid broken underline and more\n  a > & {\n    color: inherit;\n  }\n}\n\nkbd {\n  padding: $kbd-padding-y $kbd-padding-x;\n  @include font-size($kbd-font-size);\n  color: $kbd-color;\n  background-color: $kbd-bg;\n  @include border-radius($border-radius-sm);\n\n  kbd {\n    padding: 0;\n    @include font-size(1em);\n    font-weight: $nested-kbd-font-weight;\n  }\n}\n\n\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n  margin: 0 0 1rem;\n}\n\n\n// Images and content\n\nimg,\nsvg {\n  vertical-align: middle;\n}\n\n\n// Tables\n//\n// Prevent double borders\n\ntable {\n  caption-side: bottom;\n  border-collapse: collapse;\n}\n\ncaption {\n  padding-top: $table-cell-padding-y;\n  padding-bottom: $table-cell-padding-y;\n  color: $table-caption-color;\n  text-align: left;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `<td>` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n  font-weight: $table-th-font-weight; // 1\n  text-align: inherit; // 2\n  text-align: -webkit-match-parent; // 3\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n  border-color: inherit;\n  border-style: solid;\n  border-width: 0;\n}\n\n\n// Forms\n//\n// 1. Allow labels to use `margin` for spacing.\n\nlabel {\n  display: inline-block; // 1\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n// See https://github.com/twbs/bootstrap/issues/24093\n\nbutton {\n  // stylelint-disable-next-line property-disallowed-list\n  border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n  outline: 0;\n}\n\n// 1. Remove the margin in Firefox and Safari\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0; // 1\n  font-family: inherit;\n  @include font-size(inherit);\n  line-height: inherit;\n}\n\n// Remove the inheritance of text transform in Firefox\nbutton,\nselect {\n  text-transform: none;\n}\n// Set the cursor for non-`<button>` buttons\n//\n// Details at https://github.com/twbs/bootstrap/pull/30562\n[role=\"button\"] {\n  cursor: pointer;\n}\n\nselect {\n  // Remove the inheritance of word-wrap in Safari.\n  // See https://github.com/twbs/bootstrap/issues/24990\n  word-wrap: normal;\n\n  // Undo the opacity change from Chrome\n  &:disabled {\n    opacity: 1;\n  }\n}\n\n// Remove the dropdown arrow only from text type inputs built with datalists in Chrome.\n// See https://stackoverflow.com/a/54997118\n\n[list]:not([type=\"date\"]):not([type=\"datetime-local\"]):not([type=\"month\"]):not([type=\"week\"]):not([type=\"time\"])::-webkit-calendar-picker-indicator {\n  display: none !important;\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n//    controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\n// 3. Opinionated: add \"hand\" cursor to non-disabled button elements.\n\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; // 2\n\n  @if $enable-button-pointers {\n    &:not(:disabled) {\n      cursor: pointer; // 3\n    }\n  }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\n\n::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\n// 1. Textareas should really only resize vertically so they don't break their (horizontal) containers.\n\ntextarea {\n  resize: vertical; // 1\n}\n\n// 1. Browsers set a default `min-width: min-content;` on fieldsets,\n//    unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n//    So we reset that to ensure fieldsets behave more like a standard block element.\n//    See https://github.com/twbs/bootstrap/issues/12359\n//    and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n// 2. Reset the default outline behavior of fieldsets so they don't affect page layout.\n\nfieldset {\n  min-width: 0; // 1\n  padding: 0; // 2\n  margin: 0; // 2\n  border: 0; // 2\n}\n\n// 1. By using `float: left`, the legend will behave like a block element.\n//    This way the border of a fieldset wraps around the legend if present.\n// 2. Fix wrapping bug.\n//    See https://github.com/twbs/bootstrap/issues/29712\n\nlegend {\n  float: left; // 1\n  width: 100%;\n  padding: 0;\n  margin-bottom: $legend-margin-bottom;\n  @include font-size($legend-font-size);\n  font-weight: $legend-font-weight;\n  line-height: inherit;\n\n  + * {\n    clear: left; // 2\n  }\n}\n\n// Fix height of inputs with a type of datetime-local, date, month, week, or time\n// See https://github.com/twbs/bootstrap/issues/18842\n\n::-webkit-datetime-edit-fields-wrapper,\n::-webkit-datetime-edit-text,\n::-webkit-datetime-edit-minute,\n::-webkit-datetime-edit-hour-field,\n::-webkit-datetime-edit-day-field,\n::-webkit-datetime-edit-month-field,\n::-webkit-datetime-edit-year-field {\n  padding: 0;\n}\n\n::-webkit-inner-spin-button {\n  height: auto;\n}\n\n// 1. Correct the outline style in Safari.\n// 2. This overrides the extra rounded corners on search inputs in iOS so that our\n//    `.form-control` class can properly style them. Note that this cannot simply\n//    be added to `.form-control` as it's not specific enough. For details, see\n//    https://github.com/twbs/bootstrap/issues/11586.\n\n[type=\"search\"] {\n  outline-offset: -2px; // 1\n  -webkit-appearance: textfield; // 2\n}\n\n// 1. A few input types should stay LTR\n// See https://rtlstyling.com/posts/rtl-styling#form-inputs\n// 2. RTL only output\n// See https://rtlcss.com/learn/usage-guide/control-directives/#raw\n\n/* rtl:raw:\n[type=\"tel\"],\n[type=\"url\"],\n[type=\"email\"],\n[type=\"number\"] {\n  direction: ltr;\n}\n*/\n\n// Remove the inner padding in Chrome and Safari on macOS.\n\n::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n// Remove padding around color pickers in webkit browsers\n\n::-webkit-color-swatch-wrapper {\n  padding: 0;\n}\n\n\n// 1. Inherit font family and line height for file input buttons\n// 2. Correct the inability to style clickable types in iOS and Safari.\n\n::file-selector-button {\n  font: inherit; // 1\n  -webkit-appearance: button; // 2\n}\n\n// Correct element displays\n\noutput {\n  display: inline-block;\n}\n\n// Remove border from iframe\n\niframe {\n  border: 0;\n}\n\n// Summary\n//\n// 1. Add the correct display in all browsers\n\nsummary {\n  display: list-item; // 1\n  cursor: pointer;\n}\n\n\n// Progress\n//\n// Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\nprogress {\n  vertical-align: baseline;\n}\n\n\n// Hidden attribute\n//\n// Always hide an element with the `hidden` HTML attribute.\n\n[hidden] {\n  display: none !important;\n}\n"
  },
  {
    "path": "lib/bootstrap5/_root.scss",
    "content": ":root {\n  // Note: Custom variable values only support SassScript inside `#{}`.\n\n  // Colors\n  //\n  // Generate palettes for full colors, grays, and theme colors.\n\n  @each $color, $value in $colors {\n    --#{$prefix}#{$color}: #{$value};\n  }\n\n  @each $color, $value in $grays {\n    --#{$prefix}gray-#{$color}: #{$value};\n  }\n\n  @each $color, $value in $theme-colors {\n    --#{$prefix}#{$color}: #{$value};\n  }\n\n  @each $color, $value in $theme-colors-rgb {\n    --#{$prefix}#{$color}-rgb: #{$value};\n  }\n\n  --#{$prefix}white-rgb: #{to-rgb($white)};\n  --#{$prefix}black-rgb: #{to-rgb($black)};\n  --#{$prefix}body-color-rgb: #{to-rgb($body-color)};\n  --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n  // Fonts\n\n  // Note: Use `inspect` for lists so that quoted items keep the quotes.\n  // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n  --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n  --#{$prefix}font-monospace: #{inspect($font-family-monospace)};\n  --#{$prefix}gradient: #{$gradient};\n\n  // Root and body\n  // scss-docs-start root-body-variables\n  @if $font-size-root != null {\n    --#{$prefix}root-font-size: #{$font-size-root};\n  }\n  --#{$prefix}body-font-family: #{$font-family-base};\n  @include rfs($font-size-base, --#{$prefix}body-font-size);\n  --#{$prefix}body-font-weight: #{$font-weight-base};\n  --#{$prefix}body-line-height: #{$line-height-base};\n  --#{$prefix}body-color: #{$body-color};\n  @if $body-text-align != null {\n    --#{$prefix}body-text-align: #{$body-text-align};\n  }\n  --#{$prefix}body-bg: #{$body-bg};\n  // scss-docs-end root-body-variables\n\n  // scss-docs-start root-border-var\n  --#{$prefix}border-width: #{$border-width};\n  --#{$prefix}border-style: #{$border-style};\n  --#{$prefix}border-color: #{$border-color};\n  --#{$prefix}border-color-translucent: #{$border-color-translucent};\n\n  --#{$prefix}border-radius: #{$border-radius};\n  --#{$prefix}border-radius-sm: #{$border-radius-sm};\n  --#{$prefix}border-radius-lg: #{$border-radius-lg};\n  --#{$prefix}border-radius-xl: #{$border-radius-xl};\n  --#{$prefix}border-radius-2xl: #{$border-radius-2xl};\n  --#{$prefix}border-radius-pill: #{$border-radius-pill};\n  // scss-docs-end root-border-var\n\n  --#{$prefix}link-color: #{$link-color};\n  --#{$prefix}link-hover-color: #{$link-hover-color};\n\n  --#{$prefix}code-color: #{$code-color};\n\n  --#{$prefix}highlight-bg: #{$mark-bg};\n}\n"
  },
  {
    "path": "lib/bootstrap5/_spinners.scss",
    "content": "//\n// Rotating border\n//\n\n.spinner-grow,\n.spinner-border {\n  display: inline-block;\n  width: var(--#{$prefix}spinner-width);\n  height: var(--#{$prefix}spinner-height);\n  vertical-align: var(--#{$prefix}spinner-vertical-align);\n  // stylelint-disable-next-line property-disallowed-list\n  border-radius: 50%;\n  animation: var(--#{$prefix}spinner-animation-speed) linear infinite var(--#{$prefix}spinner-animation-name);\n}\n\n// scss-docs-start spinner-border-keyframes\n@keyframes spinner-border {\n  to { transform: rotate(360deg) #{\"/* rtl:ignore */\"}; }\n}\n// scss-docs-end spinner-border-keyframes\n\n.spinner-border {\n  // scss-docs-start spinner-border-css-vars\n  --#{$prefix}spinner-width: #{$spinner-width};\n  --#{$prefix}spinner-height: #{$spinner-height};\n  --#{$prefix}spinner-vertical-align: #{$spinner-vertical-align};\n  --#{$prefix}spinner-border-width: #{$spinner-border-width};\n  --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed};\n  --#{$prefix}spinner-animation-name: spinner-border;\n  // scss-docs-end spinner-border-css-vars\n\n  border: var(--#{$prefix}spinner-border-width) solid currentcolor;\n  border-right-color: transparent;\n}\n\n.spinner-border-sm {\n  // scss-docs-start spinner-border-sm-css-vars\n  --#{$prefix}spinner-width: #{$spinner-width-sm};\n  --#{$prefix}spinner-height: #{$spinner-height-sm};\n  --#{$prefix}spinner-border-width: #{$spinner-border-width-sm};\n  // scss-docs-end spinner-border-sm-css-vars\n}\n\n//\n// Growing circle\n//\n\n// scss-docs-start spinner-grow-keyframes\n@keyframes spinner-grow {\n  0% {\n    transform: scale(0);\n  }\n  50% {\n    opacity: 1;\n    transform: none;\n  }\n}\n// scss-docs-end spinner-grow-keyframes\n\n.spinner-grow {\n  // scss-docs-start spinner-grow-css-vars\n  --#{$prefix}spinner-width: #{$spinner-width};\n  --#{$prefix}spinner-height: #{$spinner-height};\n  --#{$prefix}spinner-vertical-align: #{$spinner-vertical-align};\n  --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed};\n  --#{$prefix}spinner-animation-name: spinner-grow;\n  // scss-docs-end spinner-grow-css-vars\n\n  background-color: currentcolor;\n  opacity: 0;\n}\n\n.spinner-grow-sm {\n  --#{$prefix}spinner-width: #{$spinner-width-sm};\n  --#{$prefix}spinner-height: #{$spinner-height-sm};\n}\n\n@if $enable-reduced-motion {\n  @media (prefers-reduced-motion: reduce) {\n    .spinner-border,\n    .spinner-grow {\n      --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed * 2};\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/_tables.scss",
    "content": "//\n// Basic Bootstrap table\n//\n\n.table {\n  --#{$prefix}table-color: #{$table-color};\n  --#{$prefix}table-bg: #{$table-bg};\n  --#{$prefix}table-border-color: #{$table-border-color};\n  --#{$prefix}table-accent-bg: #{$table-accent-bg};\n  --#{$prefix}table-striped-color: #{$table-striped-color};\n  --#{$prefix}table-striped-bg: #{$table-striped-bg};\n  --#{$prefix}table-active-color: #{$table-active-color};\n  --#{$prefix}table-active-bg: #{$table-active-bg};\n  --#{$prefix}table-hover-color: #{$table-hover-color};\n  --#{$prefix}table-hover-bg: #{$table-hover-bg};\n\n  width: 100%;\n  margin-bottom: $spacer;\n  color: var(--#{$prefix}table-color);\n  vertical-align: $table-cell-vertical-align;\n  border-color: var(--#{$prefix}table-border-color);\n\n  // Target th & td\n  // We need the child combinator to prevent styles leaking to nested tables which doesn't have a `.table` class.\n  // We use the universal selectors here to simplify the selector (else we would need 6 different selectors).\n  // Another advantage is that this generates less code and makes the selector less specific making it easier to override.\n  // stylelint-disable-next-line selector-max-universal\n  > :not(caption) > * > * {\n    padding: $table-cell-padding-y $table-cell-padding-x;\n    background-color: var(--#{$prefix}table-bg);\n    border-bottom-width: $table-border-width;\n    box-shadow: inset 0 0 0 9999px var(--#{$prefix}table-accent-bg);\n  }\n\n  > tbody {\n    vertical-align: inherit;\n  }\n\n  > thead {\n    vertical-align: bottom;\n  }\n}\n\n.table-group-divider {\n  border-top: ($table-border-width * 2) solid $table-group-separator-color;\n}\n\n//\n// Change placement of captions with a class\n//\n\n.caption-top {\n  caption-side: top;\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n  // stylelint-disable-next-line selector-max-universal\n  > :not(caption) > * > * {\n    padding: $table-cell-padding-y-sm $table-cell-padding-x-sm;\n  }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n//\n// When borders are added on all sides of the cells, the corners can render odd when\n// these borders do not have the same color or if they are semi-transparent.\n// Therefor we add top and border bottoms to the `tr`s and left and right borders\n// to the `td`s or `th`s\n\n.table-bordered {\n  > :not(caption) > * {\n    border-width: $table-border-width 0;\n\n    // stylelint-disable-next-line selector-max-universal\n    > * {\n      border-width: 0 $table-border-width;\n    }\n  }\n}\n\n.table-borderless {\n  // stylelint-disable-next-line selector-max-universal\n  > :not(caption) > * > * {\n    border-bottom-width: 0;\n  }\n\n  > :not(:first-child) {\n    border-top-width: 0;\n  }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n// For rows\n.table-striped {\n  > tbody > tr:nth-of-type(#{$table-striped-order}) > * {\n    --#{$prefix}table-accent-bg: var(--#{$prefix}table-striped-bg);\n    color: var(--#{$prefix}table-striped-color);\n  }\n}\n\n// For columns\n.table-striped-columns {\n  > :not(caption) > tr > :nth-child(#{$table-striped-columns-order}) {\n    --#{$prefix}table-accent-bg: var(--#{$prefix}table-striped-bg);\n    color: var(--#{$prefix}table-striped-color);\n  }\n}\n\n// Active table\n//\n// The `.table-active` class can be added to highlight rows or cells\n\n.table-active {\n  --#{$prefix}table-accent-bg: var(--#{$prefix}table-active-bg);\n  color: var(--#{$prefix}table-active-color);\n}\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n  > tbody > tr:hover > * {\n    --#{$prefix}table-accent-bg: var(--#{$prefix}table-hover-bg);\n    color: var(--#{$prefix}table-hover-color);\n  }\n}\n\n\n// Table variants\n//\n// Table variants set the table cell backgrounds, border colors\n// and the colors of the striped, hovered & active tables\n\n@each $color, $value in $table-variants {\n  @include table-variant($color, $value);\n}\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n  @include media-breakpoint-down($breakpoint) {\n    .table-responsive#{$infix} {\n      overflow-x: auto;\n      -webkit-overflow-scrolling: touch;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/_toasts.scss",
    "content": ".toast {\n  // scss-docs-start toast-css-vars\n  --#{$prefix}toast-zindex: #{$zindex-toast};\n  --#{$prefix}toast-padding-x: #{$toast-padding-x};\n  --#{$prefix}toast-padding-y: #{$toast-padding-y};\n  --#{$prefix}toast-spacing: #{$toast-spacing};\n  --#{$prefix}toast-max-width: #{$toast-max-width};\n  @include rfs($toast-font-size, --#{$prefix}toast-font-size);\n  --#{$prefix}toast-color: #{$toast-color};\n  --#{$prefix}toast-bg: #{$toast-background-color};\n  --#{$prefix}toast-border-width: #{$toast-border-width};\n  --#{$prefix}toast-border-color: #{$toast-border-color};\n  --#{$prefix}toast-border-radius: #{$toast-border-radius};\n  --#{$prefix}toast-box-shadow: #{$toast-box-shadow};\n  --#{$prefix}toast-header-color: #{$toast-header-color};\n  --#{$prefix}toast-header-bg: #{$toast-header-background-color};\n  --#{$prefix}toast-header-border-color: #{$toast-header-border-color};\n  // scss-docs-end toast-css-vars\n\n  width: var(--#{$prefix}toast-max-width);\n  max-width: 100%;\n  @include font-size(var(--#{$prefix}toast-font-size));\n  color: var(--#{$prefix}toast-color);\n  pointer-events: auto;\n  background-color: var(--#{$prefix}toast-bg);\n  background-clip: padding-box;\n  border: var(--#{$prefix}toast-border-width) solid var(--#{$prefix}toast-border-color);\n  box-shadow: var(--#{$prefix}toast-box-shadow);\n  @include border-radius(var(--#{$prefix}toast-border-radius));\n\n  &.showing {\n    opacity: 0;\n  }\n\n  &:not(.show) {\n    display: none;\n  }\n}\n\n.toast-container {\n  --#{$prefix}toast-zindex: #{$zindex-toast};\n\n  position: absolute;\n  z-index: var(--#{$prefix}toast-zindex);\n  width: max-content;\n  max-width: 100%;\n  pointer-events: none;\n\n  > :not(:last-child) {\n    margin-bottom: var(--#{$prefix}toast-spacing);\n  }\n}\n\n.toast-header {\n  display: flex;\n  align-items: center;\n  padding: var(--#{$prefix}toast-padding-y) var(--#{$prefix}toast-padding-x);\n  color: var(--#{$prefix}toast-header-color);\n  background-color: var(--#{$prefix}toast-header-bg);\n  background-clip: padding-box;\n  border-bottom: var(--#{$prefix}toast-border-width) solid var(--#{$prefix}toast-header-border-color);\n  @include border-top-radius(calc(var(--#{$prefix}toast-border-radius) - var(--#{$prefix}toast-border-width)));\n\n  .btn-close {\n    margin-right: calc(-.5 * var(--#{$prefix}toast-padding-x)); // stylelint-disable-line function-disallowed-list\n    margin-left: var(--#{$prefix}toast-padding-x);\n  }\n}\n\n.toast-body {\n  padding: var(--#{$prefix}toast-padding-x);\n  word-wrap: break-word;\n}\n"
  },
  {
    "path": "lib/bootstrap5/_tooltip.scss",
    "content": "// Base class\n.tooltip {\n  // scss-docs-start tooltip-css-vars\n  --#{$prefix}tooltip-zindex: #{$zindex-tooltip};\n  --#{$prefix}tooltip-max-width: #{$tooltip-max-width};\n  --#{$prefix}tooltip-padding-x: #{$tooltip-padding-x};\n  --#{$prefix}tooltip-padding-y: #{$tooltip-padding-y};\n  --#{$prefix}tooltip-margin: #{$tooltip-margin};\n  @include rfs($tooltip-font-size, --#{$prefix}tooltip-font-size);\n  --#{$prefix}tooltip-color: #{$tooltip-color};\n  --#{$prefix}tooltip-bg: #{$tooltip-bg};\n  --#{$prefix}tooltip-border-radius: #{$tooltip-border-radius};\n  --#{$prefix}tooltip-opacity: #{$tooltip-opacity};\n  --#{$prefix}tooltip-arrow-width: #{$tooltip-arrow-width};\n  --#{$prefix}tooltip-arrow-height: #{$tooltip-arrow-height};\n  // scss-docs-end tooltip-css-vars\n\n  z-index: var(--#{$prefix}tooltip-zindex);\n  display: block;\n  padding: var(--#{$prefix}tooltip-arrow-height);\n  margin: var(--#{$prefix}tooltip-margin);\n  @include deprecate(\"`$tooltip-margin`\", \"v5\", \"v5.x\", true);\n  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  @include reset-text();\n  @include font-size(var(--#{$prefix}tooltip-font-size));\n  // Allow breaking very long words so they don't overflow the tooltip's bounds\n  word-wrap: break-word;\n  opacity: 0;\n\n  &.show { opacity: var(--#{$prefix}tooltip-opacity); }\n\n  .tooltip-arrow {\n    display: block;\n    width: var(--#{$prefix}tooltip-arrow-width);\n    height: var(--#{$prefix}tooltip-arrow-height);\n\n    &::before {\n      position: absolute;\n      content: \"\";\n      border-color: transparent;\n      border-style: solid;\n    }\n  }\n}\n\n.bs-tooltip-top .tooltip-arrow {\n  bottom: 0;\n\n  &::before {\n    top: -1px;\n    border-width: var(--#{$prefix}tooltip-arrow-height) calc(var(--#{$prefix}tooltip-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list\n    border-top-color: var(--#{$prefix}tooltip-bg);\n  }\n}\n\n/* rtl:begin:ignore */\n.bs-tooltip-end .tooltip-arrow {\n  left: 0;\n  width: var(--#{$prefix}tooltip-arrow-height);\n  height: var(--#{$prefix}tooltip-arrow-width);\n\n  &::before {\n    right: -1px;\n    border-width: calc(var(--#{$prefix}tooltip-arrow-width) * .5) var(--#{$prefix}tooltip-arrow-height) calc(var(--#{$prefix}tooltip-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list\n    border-right-color: var(--#{$prefix}tooltip-bg);\n  }\n}\n\n/* rtl:end:ignore */\n\n.bs-tooltip-bottom .tooltip-arrow {\n  top: 0;\n\n  &::before {\n    bottom: -1px;\n    border-width: 0 calc(var(--#{$prefix}tooltip-arrow-width) * .5) var(--#{$prefix}tooltip-arrow-height); // stylelint-disable-line function-disallowed-list\n    border-bottom-color: var(--#{$prefix}tooltip-bg);\n  }\n}\n\n/* rtl:begin:ignore */\n.bs-tooltip-start .tooltip-arrow {\n  right: 0;\n  width: var(--#{$prefix}tooltip-arrow-height);\n  height: var(--#{$prefix}tooltip-arrow-width);\n\n  &::before {\n    left: -1px;\n    border-width: calc(var(--#{$prefix}tooltip-arrow-width) * .5) 0 calc(var(--#{$prefix}tooltip-arrow-width) * .5) var(--#{$prefix}tooltip-arrow-height); // stylelint-disable-line function-disallowed-list\n    border-left-color: var(--#{$prefix}tooltip-bg);\n  }\n}\n\n/* rtl:end:ignore */\n\n.bs-tooltip-auto {\n  &[data-popper-placement^=\"top\"] {\n    @extend .bs-tooltip-top;\n  }\n  &[data-popper-placement^=\"right\"] {\n    @extend .bs-tooltip-end;\n  }\n  &[data-popper-placement^=\"bottom\"] {\n    @extend .bs-tooltip-bottom;\n  }\n  &[data-popper-placement^=\"left\"] {\n    @extend .bs-tooltip-start;\n  }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n  max-width: var(--#{$prefix}tooltip-max-width);\n  padding: var(--#{$prefix}tooltip-padding-y) var(--#{$prefix}tooltip-padding-x);\n  color: var(--#{$prefix}tooltip-color);\n  text-align: center;\n  background-color: var(--#{$prefix}tooltip-bg);\n  @include border-radius(var(--#{$prefix}tooltip-border-radius));\n}\n"
  },
  {
    "path": "lib/bootstrap5/_transitions.scss",
    "content": ".fade {\n  @include transition($transition-fade);\n\n  &:not(.show) {\n    opacity: 0;\n  }\n}\n\n// scss-docs-start collapse-classes\n.collapse {\n  &:not(.show) {\n    display: none;\n  }\n}\n\n.collapsing {\n  height: 0;\n  overflow: hidden;\n  @include transition($transition-collapse);\n\n  &.collapse-horizontal {\n    width: 0;\n    height: auto;\n    @include transition($transition-collapse-width);\n  }\n}\n// scss-docs-end collapse-classes\n"
  },
  {
    "path": "lib/bootstrap5/_type.scss",
    "content": "//\n// Headings\n//\n.h1 {\n  @extend h1;\n}\n\n.h2 {\n  @extend h2;\n}\n\n.h3 {\n  @extend h3;\n}\n\n.h4 {\n  @extend h4;\n}\n\n.h5 {\n  @extend h5;\n}\n\n.h6 {\n  @extend h6;\n}\n\n\n.lead {\n  @include font-size($lead-font-size);\n  font-weight: $lead-font-weight;\n}\n\n// Type display classes\n@each $display, $font-size in $display-font-sizes {\n  .display-#{$display} {\n    @include font-size($font-size);\n    font-family: $display-font-family;\n    font-style: $display-font-style;\n    font-weight: $display-font-weight;\n    line-height: $display-line-height;\n  }\n}\n\n//\n// Emphasis\n//\n.small {\n  @extend small;\n}\n\n.mark {\n  @extend mark;\n}\n\n//\n// Lists\n//\n\n.list-unstyled {\n  @include list-unstyled();\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n  @include list-unstyled();\n}\n.list-inline-item {\n  display: inline-block;\n\n  &:not(:last-child) {\n    margin-right: $list-inline-padding;\n  }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n  @include font-size($initialism-font-size);\n  text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n  margin-bottom: $blockquote-margin-y;\n  @include font-size($blockquote-font-size);\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n.blockquote-footer {\n  margin-top: -$blockquote-margin-y;\n  margin-bottom: $blockquote-margin-y;\n  @include font-size($blockquote-footer-font-size);\n  color: $blockquote-footer-color;\n\n  &::before {\n    content: \"\\2014\\00A0\"; // em dash, nbsp\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/_utilities.scss",
    "content": "// Utilities\n\n$utilities: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$utilities: map-merge(\n  (\n    // scss-docs-start utils-vertical-align\n    \"align\": (\n      property: vertical-align,\n      class: align,\n      values: baseline top middle bottom text-bottom text-top\n    ),\n    // scss-docs-end utils-vertical-align\n    // scss-docs-start utils-float\n    \"float\": (\n      responsive: true,\n      property: float,\n      values: (\n        start: left,\n        end: right,\n        none: none,\n      )\n    ),\n    // scss-docs-end utils-float\n    // Opacity utilities\n    // scss-docs-start utils-opacity\n    \"opacity\": (\n      property: opacity,\n      values: (\n        0: 0,\n        25: .25,\n        50: .5,\n        75: .75,\n        100: 1,\n      )\n    ),\n    // scss-docs-end utils-opacity\n    // scss-docs-start utils-overflow\n    \"overflow\": (\n      property: overflow,\n      values: auto hidden visible scroll,\n    ),\n    // scss-docs-end utils-overflow\n    // scss-docs-start utils-display\n    \"display\": (\n      responsive: true,\n      print: true,\n      property: display,\n      class: d,\n      values: inline inline-block block grid table table-row table-cell flex inline-flex none\n    ),\n    // scss-docs-end utils-display\n    // scss-docs-start utils-shadow\n    \"shadow\": (\n      property: box-shadow,\n      class: shadow,\n      values: (\n        null: $box-shadow,\n        sm: $box-shadow-sm,\n        lg: $box-shadow-lg,\n        none: none,\n      )\n    ),\n    // scss-docs-end utils-shadow\n    // scss-docs-start utils-position\n    \"position\": (\n      property: position,\n      values: static relative absolute fixed sticky\n    ),\n    \"top\": (\n      property: top,\n      values: $position-values\n    ),\n    \"bottom\": (\n      property: bottom,\n      values: $position-values\n    ),\n    \"start\": (\n      property: left,\n      class: start,\n      values: $position-values\n    ),\n    \"end\": (\n      property: right,\n      class: end,\n      values: $position-values\n    ),\n    \"translate-middle\": (\n      property: transform,\n      class: translate-middle,\n      values: (\n        null: translate(-50%, -50%),\n        x: translateX(-50%),\n        y: translateY(-50%),\n      )\n    ),\n    // scss-docs-end utils-position\n    // scss-docs-start utils-borders\n    \"border\": (\n      property: border,\n      values: (\n        null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),\n        0: 0,\n      )\n    ),\n    \"border-top\": (\n      property: border-top,\n      values: (\n        null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),\n        0: 0,\n      )\n    ),\n    \"border-end\": (\n      property: border-right,\n      class: border-end,\n      values: (\n        null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),\n        0: 0,\n      )\n    ),\n    \"border-bottom\": (\n      property: border-bottom,\n      values: (\n        null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),\n        0: 0,\n      )\n    ),\n    \"border-start\": (\n      property: border-left,\n      class: border-start,\n      values: (\n        null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),\n        0: 0,\n      )\n    ),\n    \"border-color\": (\n      property: border-color,\n      class: border,\n      local-vars: (\n        \"border-opacity\": 1\n      ),\n      values: $utilities-border-colors\n    ),\n    \"border-width\": (\n      css-var: true,\n      css-variable-name: border-width,\n      class: border,\n      values: $border-widths\n    ),\n    \"border-opacity\": (\n      css-var: true,\n      class: border-opacity,\n      values: (\n        10: .1,\n        25: .25,\n        50: .5,\n        75: .75,\n        100: 1\n      )\n    ),\n    // scss-docs-end utils-borders\n    // Sizing utilities\n    // scss-docs-start utils-sizing\n    \"width\": (\n      property: width,\n      class: w,\n      values: (\n        25: 25%,\n        50: 50%,\n        75: 75%,\n        100: 100%,\n        auto: auto\n      )\n    ),\n    \"max-width\": (\n      property: max-width,\n      class: mw,\n      values: (100: 100%)\n    ),\n    \"viewport-width\": (\n      property: width,\n      class: vw,\n      values: (100: 100vw)\n    ),\n    \"min-viewport-width\": (\n      property: min-width,\n      class: min-vw,\n      values: (100: 100vw)\n    ),\n    \"height\": (\n      property: height,\n      class: h,\n      values: (\n        25: 25%,\n        50: 50%,\n        75: 75%,\n        100: 100%,\n        auto: auto\n      )\n    ),\n    \"max-height\": (\n      property: max-height,\n      class: mh,\n      values: (100: 100%)\n    ),\n    \"viewport-height\": (\n      property: height,\n      class: vh,\n      values: (100: 100vh)\n    ),\n    \"min-viewport-height\": (\n      property: min-height,\n      class: min-vh,\n      values: (100: 100vh)\n    ),\n    // scss-docs-end utils-sizing\n    // Flex utilities\n    // scss-docs-start utils-flex\n    \"flex\": (\n      responsive: true,\n      property: flex,\n      values: (fill: 1 1 auto)\n    ),\n    \"flex-direction\": (\n      responsive: true,\n      property: flex-direction,\n      class: flex,\n      values: row column row-reverse column-reverse\n    ),\n    \"flex-grow\": (\n      responsive: true,\n      property: flex-grow,\n      class: flex,\n      values: (\n        grow-0: 0,\n        grow-1: 1,\n      )\n    ),\n    \"flex-shrink\": (\n      responsive: true,\n      property: flex-shrink,\n      class: flex,\n      values: (\n        shrink-0: 0,\n        shrink-1: 1,\n      )\n    ),\n    \"flex-wrap\": (\n      responsive: true,\n      property: flex-wrap,\n      class: flex,\n      values: wrap nowrap wrap-reverse\n    ),\n    \"justify-content\": (\n      responsive: true,\n      property: justify-content,\n      values: (\n        start: flex-start,\n        end: flex-end,\n        center: center,\n        between: space-between,\n        around: space-around,\n        evenly: space-evenly,\n      )\n    ),\n    \"align-items\": (\n      responsive: true,\n      property: align-items,\n      values: (\n        start: flex-start,\n        end: flex-end,\n        center: center,\n        baseline: baseline,\n        stretch: stretch,\n      )\n    ),\n    \"align-content\": (\n      responsive: true,\n      property: align-content,\n      values: (\n        start: flex-start,\n        end: flex-end,\n        center: center,\n        between: space-between,\n        around: space-around,\n        stretch: stretch,\n      )\n    ),\n    \"align-self\": (\n      responsive: true,\n      property: align-self,\n      values: (\n        auto: auto,\n        start: flex-start,\n        end: flex-end,\n        center: center,\n        baseline: baseline,\n        stretch: stretch,\n      )\n    ),\n    \"order\": (\n      responsive: true,\n      property: order,\n      values: (\n        first: -1,\n        0: 0,\n        1: 1,\n        2: 2,\n        3: 3,\n        4: 4,\n        5: 5,\n        last: 6,\n      ),\n    ),\n    // scss-docs-end utils-flex\n    // Margin utilities\n    // scss-docs-start utils-spacing\n    \"margin\": (\n      responsive: true,\n      property: margin,\n      class: m,\n      values: map-merge($spacers, (auto: auto))\n    ),\n    \"margin-x\": (\n      responsive: true,\n      property: margin-right margin-left,\n      class: mx,\n      values: map-merge($spacers, (auto: auto))\n    ),\n    \"margin-y\": (\n      responsive: true,\n      property: margin-top margin-bottom,\n      class: my,\n      values: map-merge($spacers, (auto: auto))\n    ),\n    \"margin-top\": (\n      responsive: true,\n      property: margin-top,\n      class: mt,\n      values: map-merge($spacers, (auto: auto))\n    ),\n    \"margin-end\": (\n      responsive: true,\n      property: margin-right,\n      class: me,\n      values: map-merge($spacers, (auto: auto))\n    ),\n    \"margin-bottom\": (\n      responsive: true,\n      property: margin-bottom,\n      class: mb,\n      values: map-merge($spacers, (auto: auto))\n    ),\n    \"margin-start\": (\n      responsive: true,\n      property: margin-left,\n      class: ms,\n      values: map-merge($spacers, (auto: auto))\n    ),\n    // Negative margin utilities\n    \"negative-margin\": (\n      responsive: true,\n      property: margin,\n      class: m,\n      values: $negative-spacers\n    ),\n    \"negative-margin-x\": (\n      responsive: true,\n      property: margin-right margin-left,\n      class: mx,\n      values: $negative-spacers\n    ),\n    \"negative-margin-y\": (\n      responsive: true,\n      property: margin-top margin-bottom,\n      class: my,\n      values: $negative-spacers\n    ),\n    \"negative-margin-top\": (\n      responsive: true,\n      property: margin-top,\n      class: mt,\n      values: $negative-spacers\n    ),\n    \"negative-margin-end\": (\n      responsive: true,\n      property: margin-right,\n      class: me,\n      values: $negative-spacers\n    ),\n    \"negative-margin-bottom\": (\n      responsive: true,\n      property: margin-bottom,\n      class: mb,\n      values: $negative-spacers\n    ),\n    \"negative-margin-start\": (\n      responsive: true,\n      property: margin-left,\n      class: ms,\n      values: $negative-spacers\n    ),\n    // Padding utilities\n    \"padding\": (\n      responsive: true,\n      property: padding,\n      class: p,\n      values: $spacers\n    ),\n    \"padding-x\": (\n      responsive: true,\n      property: padding-right padding-left,\n      class: px,\n      values: $spacers\n    ),\n    \"padding-y\": (\n      responsive: true,\n      property: padding-top padding-bottom,\n      class: py,\n      values: $spacers\n    ),\n    \"padding-top\": (\n      responsive: true,\n      property: padding-top,\n      class: pt,\n      values: $spacers\n    ),\n    \"padding-end\": (\n      responsive: true,\n      property: padding-right,\n      class: pe,\n      values: $spacers\n    ),\n    \"padding-bottom\": (\n      responsive: true,\n      property: padding-bottom,\n      class: pb,\n      values: $spacers\n    ),\n    \"padding-start\": (\n      responsive: true,\n      property: padding-left,\n      class: ps,\n      values: $spacers\n    ),\n    // Gap utility\n    \"gap\": (\n      responsive: true,\n      property: gap,\n      class: gap,\n      values: $spacers\n    ),\n    // scss-docs-end utils-spacing\n    // Text\n    // scss-docs-start utils-text\n    \"font-family\": (\n      property: font-family,\n      class: font,\n      values: (monospace: var(--#{$prefix}font-monospace))\n    ),\n    \"font-size\": (\n      rfs: true,\n      property: font-size,\n      class: fs,\n      values: $font-sizes\n    ),\n    \"font-style\": (\n      property: font-style,\n      class: fst,\n      values: italic normal\n    ),\n    \"font-weight\": (\n      property: font-weight,\n      class: fw,\n      values: (\n        light: $font-weight-light,\n        lighter: $font-weight-lighter,\n        normal: $font-weight-normal,\n        bold: $font-weight-bold,\n        semibold: $font-weight-semibold,\n        bolder: $font-weight-bolder\n      )\n    ),\n    \"line-height\": (\n      property: line-height,\n      class: lh,\n      values: (\n        1: 1,\n        sm: $line-height-sm,\n        base: $line-height-base,\n        lg: $line-height-lg,\n      )\n    ),\n    \"text-align\": (\n      responsive: true,\n      property: text-align,\n      class: text,\n      values: (\n        start: left,\n        end: right,\n        center: center,\n      )\n    ),\n    \"text-decoration\": (\n      property: text-decoration,\n      values: none underline line-through\n    ),\n    \"text-transform\": (\n      property: text-transform,\n      class: text,\n      values: lowercase uppercase capitalize\n    ),\n    \"white-space\": (\n      property: white-space,\n      class: text,\n      values: (\n        wrap: normal,\n        nowrap: nowrap,\n      )\n    ),\n    \"word-wrap\": (\n      property: word-wrap word-break,\n      class: text,\n      values: (break: break-word),\n      rtl: false\n    ),\n    // scss-docs-end utils-text\n    // scss-docs-start utils-color\n    \"color\": (\n      property: color,\n      class: text,\n      local-vars: (\n        \"text-opacity\": 1\n      ),\n      values: map-merge(\n        $utilities-text-colors,\n        (\n          \"muted\": $text-muted,\n          \"black-50\": rgba($black, .5), // deprecated\n          \"white-50\": rgba($white, .5), // deprecated\n          \"reset\": inherit,\n        )\n      )\n    ),\n    \"text-opacity\": (\n      css-var: true,\n      class: text-opacity,\n      values: (\n        25: .25,\n        50: .5,\n        75: .75,\n        100: 1\n      )\n    ),\n    // scss-docs-end utils-color\n    // scss-docs-start utils-bg-color\n    \"background-color\": (\n      property: background-color,\n      class: bg,\n      local-vars: (\n        \"bg-opacity\": 1\n      ),\n      values: map-merge(\n        $utilities-bg-colors,\n        (\n          \"transparent\": transparent\n        )\n      )\n    ),\n    \"bg-opacity\": (\n      css-var: true,\n      class: bg-opacity,\n      values: (\n        10: .1,\n        25: .25,\n        50: .5,\n        75: .75,\n        100: 1\n      )\n    ),\n    // scss-docs-end utils-bg-color\n    \"gradient\": (\n      property: background-image,\n      class: bg,\n      values: (gradient: var(--#{$prefix}gradient))\n    ),\n    // scss-docs-start utils-interaction\n    \"user-select\": (\n      property: user-select,\n      values: all auto none\n    ),\n    \"pointer-events\": (\n      property: pointer-events,\n      class: pe,\n      values: none auto,\n    ),\n    // scss-docs-end utils-interaction\n    // scss-docs-start utils-border-radius\n    \"rounded\": (\n      property: border-radius,\n      class: rounded,\n      values: (\n        null: var(--#{$prefix}border-radius),\n        0: 0,\n        1: var(--#{$prefix}border-radius-sm),\n        2: var(--#{$prefix}border-radius),\n        3: var(--#{$prefix}border-radius-lg),\n        4: var(--#{$prefix}border-radius-xl),\n        5: var(--#{$prefix}border-radius-2xl),\n        circle: 50%,\n        pill: var(--#{$prefix}border-radius-pill)\n      )\n    ),\n    \"rounded-top\": (\n      property: border-top-left-radius border-top-right-radius,\n      class: rounded-top,\n      values: (null: var(--#{$prefix}border-radius))\n    ),\n    \"rounded-end\": (\n      property: border-top-right-radius border-bottom-right-radius,\n      class: rounded-end,\n      values: (null: var(--#{$prefix}border-radius))\n    ),\n    \"rounded-bottom\": (\n      property: border-bottom-right-radius border-bottom-left-radius,\n      class: rounded-bottom,\n      values: (null: var(--#{$prefix}border-radius))\n    ),\n    \"rounded-start\": (\n      property: border-bottom-left-radius border-top-left-radius,\n      class: rounded-start,\n      values: (null: var(--#{$prefix}border-radius))\n    ),\n    // scss-docs-end utils-border-radius\n    // scss-docs-start utils-visibility\n    \"visibility\": (\n      property: visibility,\n      class: null,\n      values: (\n        visible: visible,\n        invisible: hidden,\n      )\n    )\n    // scss-docs-end utils-visibility\n  ),\n  $utilities\n);\n"
  },
  {
    "path": "lib/bootstrap5/_variables.scss",
    "content": "// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n// scss-docs-start gray-color-variables\n$white:    #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black:    #000 !default;\n// scss-docs-end gray-color-variables\n\n// fusv-disable\n// scss-docs-start gray-colors-map\n$grays: (\n  \"100\": $gray-100,\n  \"200\": $gray-200,\n  \"300\": $gray-300,\n  \"400\": $gray-400,\n  \"500\": $gray-500,\n  \"600\": $gray-600,\n  \"700\": $gray-700,\n  \"800\": $gray-800,\n  \"900\": $gray-900\n) !default;\n// scss-docs-end gray-colors-map\n// fusv-enable\n\n// scss-docs-start color-variables\n$blue:    #0d6efd !default;\n$indigo:  #6610f2 !default;\n$purple:  #6f42c1 !default;\n$pink:    #d63384 !default;\n$red:     #dc3545 !default;\n$orange:  #fd7e14 !default;\n$yellow:  #ffc107 !default;\n$green:   #198754 !default;\n$teal:    #20c997 !default;\n$cyan:    #0dcaf0 !default;\n// scss-docs-end color-variables\n\n// scss-docs-start colors-map\n$colors: (\n  \"blue\":       $blue,\n  \"indigo\":     $indigo,\n  \"purple\":     $purple,\n  \"pink\":       $pink,\n  \"red\":        $red,\n  \"orange\":     $orange,\n  \"yellow\":     $yellow,\n  \"green\":      $green,\n  \"teal\":       $teal,\n  \"cyan\":       $cyan,\n  \"black\":      $black,\n  \"white\":      $white,\n  \"gray\":       $gray-600,\n  \"gray-dark\":  $gray-800\n) !default;\n// scss-docs-end colors-map\n\n// The contrast ratio to reach against white, to determine if color changes from \"light\" to \"dark\". Acceptable values for WCAG 2.0 are 3, 4.5 and 7.\n// See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast\n$min-contrast-ratio:   4.5 !default;\n\n// Customize the light and dark text colors for use in our color contrast function.\n$color-contrast-dark:      $black !default;\n$color-contrast-light:     $white !default;\n\n// fusv-disable\n$blue-100: tint-color($blue, 80%) !default;\n$blue-200: tint-color($blue, 60%) !default;\n$blue-300: tint-color($blue, 40%) !default;\n$blue-400: tint-color($blue, 20%) !default;\n$blue-500: $blue !default;\n$blue-600: shade-color($blue, 20%) !default;\n$blue-700: shade-color($blue, 40%) !default;\n$blue-800: shade-color($blue, 60%) !default;\n$blue-900: shade-color($blue, 80%) !default;\n\n$indigo-100: tint-color($indigo, 80%) !default;\n$indigo-200: tint-color($indigo, 60%) !default;\n$indigo-300: tint-color($indigo, 40%) !default;\n$indigo-400: tint-color($indigo, 20%) !default;\n$indigo-500: $indigo !default;\n$indigo-600: shade-color($indigo, 20%) !default;\n$indigo-700: shade-color($indigo, 40%) !default;\n$indigo-800: shade-color($indigo, 60%) !default;\n$indigo-900: shade-color($indigo, 80%) !default;\n\n$purple-100: tint-color($purple, 80%) !default;\n$purple-200: tint-color($purple, 60%) !default;\n$purple-300: tint-color($purple, 40%) !default;\n$purple-400: tint-color($purple, 20%) !default;\n$purple-500: $purple !default;\n$purple-600: shade-color($purple, 20%) !default;\n$purple-700: shade-color($purple, 40%) !default;\n$purple-800: shade-color($purple, 60%) !default;\n$purple-900: shade-color($purple, 80%) !default;\n\n$pink-100: tint-color($pink, 80%) !default;\n$pink-200: tint-color($pink, 60%) !default;\n$pink-300: tint-color($pink, 40%) !default;\n$pink-400: tint-color($pink, 20%) !default;\n$pink-500: $pink !default;\n$pink-600: shade-color($pink, 20%) !default;\n$pink-700: shade-color($pink, 40%) !default;\n$pink-800: shade-color($pink, 60%) !default;\n$pink-900: shade-color($pink, 80%) !default;\n\n$red-100: tint-color($red, 80%) !default;\n$red-200: tint-color($red, 60%) !default;\n$red-300: tint-color($red, 40%) !default;\n$red-400: tint-color($red, 20%) !default;\n$red-500: $red !default;\n$red-600: shade-color($red, 20%) !default;\n$red-700: shade-color($red, 40%) !default;\n$red-800: shade-color($red, 60%) !default;\n$red-900: shade-color($red, 80%) !default;\n\n$orange-100: tint-color($orange, 80%) !default;\n$orange-200: tint-color($orange, 60%) !default;\n$orange-300: tint-color($orange, 40%) !default;\n$orange-400: tint-color($orange, 20%) !default;\n$orange-500: $orange !default;\n$orange-600: shade-color($orange, 20%) !default;\n$orange-700: shade-color($orange, 40%) !default;\n$orange-800: shade-color($orange, 60%) !default;\n$orange-900: shade-color($orange, 80%) !default;\n\n$yellow-100: tint-color($yellow, 80%) !default;\n$yellow-200: tint-color($yellow, 60%) !default;\n$yellow-300: tint-color($yellow, 40%) !default;\n$yellow-400: tint-color($yellow, 20%) !default;\n$yellow-500: $yellow !default;\n$yellow-600: shade-color($yellow, 20%) !default;\n$yellow-700: shade-color($yellow, 40%) !default;\n$yellow-800: shade-color($yellow, 60%) !default;\n$yellow-900: shade-color($yellow, 80%) !default;\n\n$green-100: tint-color($green, 80%) !default;\n$green-200: tint-color($green, 60%) !default;\n$green-300: tint-color($green, 40%) !default;\n$green-400: tint-color($green, 20%) !default;\n$green-500: $green !default;\n$green-600: shade-color($green, 20%) !default;\n$green-700: shade-color($green, 40%) !default;\n$green-800: shade-color($green, 60%) !default;\n$green-900: shade-color($green, 80%) !default;\n\n$teal-100: tint-color($teal, 80%) !default;\n$teal-200: tint-color($teal, 60%) !default;\n$teal-300: tint-color($teal, 40%) !default;\n$teal-400: tint-color($teal, 20%) !default;\n$teal-500: $teal !default;\n$teal-600: shade-color($teal, 20%) !default;\n$teal-700: shade-color($teal, 40%) !default;\n$teal-800: shade-color($teal, 60%) !default;\n$teal-900: shade-color($teal, 80%) !default;\n\n$cyan-100: tint-color($cyan, 80%) !default;\n$cyan-200: tint-color($cyan, 60%) !default;\n$cyan-300: tint-color($cyan, 40%) !default;\n$cyan-400: tint-color($cyan, 20%) !default;\n$cyan-500: $cyan !default;\n$cyan-600: shade-color($cyan, 20%) !default;\n$cyan-700: shade-color($cyan, 40%) !default;\n$cyan-800: shade-color($cyan, 60%) !default;\n$cyan-900: shade-color($cyan, 80%) !default;\n\n$blues: (\n  \"blue-100\": $blue-100,\n  \"blue-200\": $blue-200,\n  \"blue-300\": $blue-300,\n  \"blue-400\": $blue-400,\n  \"blue-500\": $blue-500,\n  \"blue-600\": $blue-600,\n  \"blue-700\": $blue-700,\n  \"blue-800\": $blue-800,\n  \"blue-900\": $blue-900\n) !default;\n\n$indigos: (\n  \"indigo-100\": $indigo-100,\n  \"indigo-200\": $indigo-200,\n  \"indigo-300\": $indigo-300,\n  \"indigo-400\": $indigo-400,\n  \"indigo-500\": $indigo-500,\n  \"indigo-600\": $indigo-600,\n  \"indigo-700\": $indigo-700,\n  \"indigo-800\": $indigo-800,\n  \"indigo-900\": $indigo-900\n) !default;\n\n$purples: (\n  \"purple-100\": $purple-100,\n  \"purple-200\": $purple-200,\n  \"purple-300\": $purple-300,\n  \"purple-400\": $purple-400,\n  \"purple-500\": $purple-500,\n  \"purple-600\": $purple-600,\n  \"purple-700\": $purple-700,\n  \"purple-800\": $purple-800,\n  \"purple-900\": $purple-900\n) !default;\n\n$pinks: (\n  \"pink-100\": $pink-100,\n  \"pink-200\": $pink-200,\n  \"pink-300\": $pink-300,\n  \"pink-400\": $pink-400,\n  \"pink-500\": $pink-500,\n  \"pink-600\": $pink-600,\n  \"pink-700\": $pink-700,\n  \"pink-800\": $pink-800,\n  \"pink-900\": $pink-900\n) !default;\n\n$reds: (\n  \"red-100\": $red-100,\n  \"red-200\": $red-200,\n  \"red-300\": $red-300,\n  \"red-400\": $red-400,\n  \"red-500\": $red-500,\n  \"red-600\": $red-600,\n  \"red-700\": $red-700,\n  \"red-800\": $red-800,\n  \"red-900\": $red-900\n) !default;\n\n$oranges: (\n  \"orange-100\": $orange-100,\n  \"orange-200\": $orange-200,\n  \"orange-300\": $orange-300,\n  \"orange-400\": $orange-400,\n  \"orange-500\": $orange-500,\n  \"orange-600\": $orange-600,\n  \"orange-700\": $orange-700,\n  \"orange-800\": $orange-800,\n  \"orange-900\": $orange-900\n) !default;\n\n$yellows: (\n  \"yellow-100\": $yellow-100,\n  \"yellow-200\": $yellow-200,\n  \"yellow-300\": $yellow-300,\n  \"yellow-400\": $yellow-400,\n  \"yellow-500\": $yellow-500,\n  \"yellow-600\": $yellow-600,\n  \"yellow-700\": $yellow-700,\n  \"yellow-800\": $yellow-800,\n  \"yellow-900\": $yellow-900\n) !default;\n\n$greens: (\n  \"green-100\": $green-100,\n  \"green-200\": $green-200,\n  \"green-300\": $green-300,\n  \"green-400\": $green-400,\n  \"green-500\": $green-500,\n  \"green-600\": $green-600,\n  \"green-700\": $green-700,\n  \"green-800\": $green-800,\n  \"green-900\": $green-900\n) !default;\n\n$teals: (\n  \"teal-100\": $teal-100,\n  \"teal-200\": $teal-200,\n  \"teal-300\": $teal-300,\n  \"teal-400\": $teal-400,\n  \"teal-500\": $teal-500,\n  \"teal-600\": $teal-600,\n  \"teal-700\": $teal-700,\n  \"teal-800\": $teal-800,\n  \"teal-900\": $teal-900\n) !default;\n\n$cyans: (\n  \"cyan-100\": $cyan-100,\n  \"cyan-200\": $cyan-200,\n  \"cyan-300\": $cyan-300,\n  \"cyan-400\": $cyan-400,\n  \"cyan-500\": $cyan-500,\n  \"cyan-600\": $cyan-600,\n  \"cyan-700\": $cyan-700,\n  \"cyan-800\": $cyan-800,\n  \"cyan-900\": $cyan-900\n) !default;\n// fusv-enable\n\n// scss-docs-start theme-color-variables\n$primary:       $blue !default;\n$secondary:     $gray-600 !default;\n$success:       $green !default;\n$info:          $cyan !default;\n$warning:       $yellow !default;\n$danger:        $red !default;\n$light:         $gray-100 !default;\n$dark:          $gray-900 !default;\n// scss-docs-end theme-color-variables\n\n// scss-docs-start theme-colors-map\n$theme-colors: (\n  \"primary\":    $primary,\n  \"secondary\":  $secondary,\n  \"success\":    $success,\n  \"info\":       $info,\n  \"warning\":    $warning,\n  \"danger\":     $danger,\n  \"light\":      $light,\n  \"dark\":       $dark\n) !default;\n// scss-docs-end theme-colors-map\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n  (\"<\", \"%3c\"),\n  (\">\", \"%3e\"),\n  (\"#\", \"%23\"),\n  (\"(\", \"%28\"),\n  (\")\", \"%29\"),\n) !default;\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret:                true !default;\n$enable-rounded:              true !default;\n$enable-shadows:              false !default;\n$enable-gradients:            false !default;\n$enable-transitions:          true !default;\n$enable-reduced-motion:       true !default;\n$enable-smooth-scroll:        true !default;\n$enable-grid-classes:         true !default;\n$enable-container-classes:    true !default;\n$enable-cssgrid:              false !default;\n$enable-button-pointers:      true !default;\n$enable-rfs:                  true !default;\n$enable-validation-icons:     true !default;\n$enable-negative-margins:     false !default;\n$enable-deprecation-messages: true !default;\n$enable-important-utilities:  true !default;\n\n// Prefix for :root CSS variables\n\n$variable-prefix:             bs- !default; // Deprecated in v5.2.0 for the shorter `$prefix`\n$prefix:                      $variable-prefix !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0)) !default;\n// scss-docs-end variable-gradient\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n  0: 0,\n  1: $spacer * .25,\n  2: $spacer * .5,\n  3: $spacer,\n  4: $spacer * 1.5,\n  5: $spacer * 3,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n  0: 0,\n  50: 50%,\n  100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg:                   $white !default;\n$body-color:                $gray-900 !default;\n$body-text-align:           null !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color:                              $primary !default;\n$link-decoration:                         underline !default;\n$link-shade-percentage:                   20% !default;\n$link-hover-color:                        shift-color($link-color, $link-shade-percentage) !default;\n$link-hover-decoration:                   null !default;\n\n$stretched-link-pseudo-element:           after !default;\n$stretched-link-z-index:                  1 !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom:   1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start grid-breakpoints\n$grid-breakpoints: (\n  xs: 0,\n  sm: 576px,\n  md: 768px,\n  lg: 992px,\n  xl: 1200px,\n  xxl: 1400px\n) !default;\n// scss-docs-end grid-breakpoints\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n  sm: 540px,\n  md: 720px,\n  lg: 960px,\n  xl: 1140px,\n  xxl: 1320px\n) !default;\n// scss-docs-end container-max-widths\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns:                12 !default;\n$grid-gutter-width:           1.5rem !default;\n$grid-row-columns:            6 !default;\n\n// Container padding\n\n$container-padding-x: $grid-gutter-width !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width:                1px !default;\n$border-widths: (\n  1: 1px,\n  2: 2px,\n  3: 3px,\n  4: 4px,\n  5: 5px\n) !default;\n\n$border-style:                solid !default;\n$border-color:                $gray-300 !default;\n$border-color-translucent:    rgba($black, .175) !default;\n// scss-docs-end border-variables\n\n// scss-docs-start border-radius-variables\n$border-radius:               .375rem !default;\n$border-radius-sm:            .25rem !default;\n$border-radius-lg:            .5rem !default;\n$border-radius-xl:            1rem !default;\n$border-radius-2xl:           2rem !default;\n$border-radius-pill:          50rem !default;\n// scss-docs-end border-radius-variables\n\n// scss-docs-start box-shadow-variables\n$box-shadow:                  0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-sm:               0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow-lg:               0 1rem 3rem rgba($black, .175) !default;\n$box-shadow-inset:            inset 0 1px 2px rgba($black, .075) !default;\n// scss-docs-end box-shadow-variables\n\n$component-active-color:      $white !default;\n$component-active-bg:         $primary !default;\n\n// scss-docs-start caret-variables\n$caret-width:                 .3em !default;\n$caret-vertical-align:        $caret-width * .85 !default;\n$caret-spacing:               $caret-width * .85 !default;\n// scss-docs-end caret-variables\n\n$transition-base:             all .2s ease-in-out !default;\n$transition-fade:             opacity .15s linear !default;\n// scss-docs-start collapse-transition\n$transition-collapse:         height .35s ease !default;\n$transition-collapse-width:   width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// stylelint-disable function-disallowed-list\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n  \"1x1\": 100%,\n  \"4x3\": calc(3 / 4 * 100%),\n  \"16x9\": calc(9 / 16 * 100%),\n  \"21x9\": calc(9 / 21 * 100%)\n) !default;\n// scss-docs-end aspect-ratios\n// stylelint-enable function-disallowed-list\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n// stylelint-disable value-keyword-case\n$font-family-sans-serif:      system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace:       SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n// stylelint-enable value-keyword-case\n$font-family-base:            var(--#{$prefix}font-sans-serif) !default;\n$font-family-code:            var(--#{$prefix}font-monospace) !default;\n\n// $font-size-root affects the value of `rem`, which is used for as well font sizes, paddings, and margins\n// $font-size-base affects the font size of the body text\n$font-size-root:              null !default;\n$font-size-base:              1rem !default; // Assumes the browser default, typically `16px`\n$font-size-sm:                $font-size-base * .875 !default;\n$font-size-lg:                $font-size-base * 1.25 !default;\n\n$font-weight-lighter:         lighter !default;\n$font-weight-light:           300 !default;\n$font-weight-normal:          400 !default;\n$font-weight-semibold:        600 !default;\n$font-weight-bold:            700 !default;\n$font-weight-bolder:          bolder !default;\n\n$font-weight-base:            $font-weight-normal !default;\n\n$line-height-base:            1.5 !default;\n$line-height-sm:              1.25 !default;\n$line-height-lg:              2 !default;\n\n$h1-font-size:                $font-size-base * 2.5 !default;\n$h2-font-size:                $font-size-base * 2 !default;\n$h3-font-size:                $font-size-base * 1.75 !default;\n$h4-font-size:                $font-size-base * 1.5 !default;\n$h5-font-size:                $font-size-base * 1.25 !default;\n$h6-font-size:                $font-size-base !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: (\n  1: $h1-font-size,\n  2: $h2-font-size,\n  3: $h3-font-size,\n  4: $h4-font-size,\n  5: $h5-font-size,\n  6: $h6-font-size\n) !default;\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom:      $spacer * .5 !default;\n$headings-font-family:        null !default;\n$headings-font-style:         null !default;\n$headings-font-weight:        500 !default;\n$headings-line-height:        1.2 !default;\n$headings-color:              null !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start display-headings\n$display-font-sizes: (\n  1: 5rem,\n  2: 4.5rem,\n  3: 4rem,\n  4: 3.5rem,\n  5: 3rem,\n  6: 2.5rem\n) !default;\n\n$display-font-family: null !default;\n$display-font-style:  null !default;\n$display-font-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n// scss-docs-end display-headings\n\n// scss-docs-start type-variables\n$lead-font-size:              $font-size-base * 1.25 !default;\n$lead-font-weight:            300 !default;\n\n$small-font-size:             .875em !default;\n\n$sub-sup-font-size:           .75em !default;\n\n$text-muted:                  $gray-600 !default;\n\n$initialism-font-size:        $small-font-size !default;\n\n$blockquote-margin-y:         $spacer !default;\n$blockquote-font-size:        $font-size-base * 1.25 !default;\n$blockquote-footer-color:     $gray-600 !default;\n$blockquote-footer-font-size: $small-font-size !default;\n\n$hr-margin-y:                 $spacer !default;\n$hr-color:                    inherit !default;\n\n// fusv-disable\n$hr-bg-color:                 null !default; // Deprecated in v5.2.0\n$hr-height:                   null !default; // Deprecated in v5.2.0\n// fusv-enable\n\n$hr-border-color:             null !default; // Allows for inherited colors\n$hr-border-width:             $border-width !default;\n$hr-opacity:                  .25 !default;\n\n$legend-margin-bottom:        .5rem !default;\n$legend-font-size:            1.5rem !default;\n$legend-font-weight:          null !default;\n\n$dt-font-weight:              $font-weight-bold !default;\n\n$list-inline-padding:         .5rem !default;\n\n$mark-padding:                .1875em !default;\n$mark-bg:                     $yellow-100 !default;\n// scss-docs-end type-variables\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n// scss-docs-start table-variables\n$table-cell-padding-y:        .5rem !default;\n$table-cell-padding-x:        .5rem !default;\n$table-cell-padding-y-sm:     .25rem !default;\n$table-cell-padding-x-sm:     .25rem !default;\n\n$table-cell-vertical-align:   top !default;\n\n$table-color:                 var(--#{$prefix}body-color) !default;\n$table-bg:                    transparent !default;\n$table-accent-bg:             transparent !default;\n\n$table-th-font-weight:        null !default;\n\n$table-striped-color:         $table-color !default;\n$table-striped-bg-factor:     .05 !default;\n$table-striped-bg:            rgba($black, $table-striped-bg-factor) !default;\n\n$table-active-color:          $table-color !default;\n$table-active-bg-factor:      .1 !default;\n$table-active-bg:             rgba($black, $table-active-bg-factor) !default;\n\n$table-hover-color:           $table-color !default;\n$table-hover-bg-factor:       .075 !default;\n$table-hover-bg:              rgba($black, $table-hover-bg-factor) !default;\n\n$table-border-factor:         .1 !default;\n$table-border-width:          $border-width !default;\n$table-border-color:          var(--#{$prefix}border-color) !default;\n\n$table-striped-order:         odd !default;\n$table-striped-columns-order: even !default;\n\n$table-group-separator-color: currentcolor !default;\n\n$table-caption-color:         $text-muted !default;\n\n$table-bg-scale:              -80% !default;\n// scss-docs-end table-variables\n\n// scss-docs-start table-loop\n$table-variants: (\n  \"primary\":    shift-color($primary, $table-bg-scale),\n  \"secondary\":  shift-color($secondary, $table-bg-scale),\n  \"success\":    shift-color($success, $table-bg-scale),\n  \"info\":       shift-color($info, $table-bg-scale),\n  \"warning\":    shift-color($warning, $table-bg-scale),\n  \"danger\":     shift-color($danger, $table-bg-scale),\n  \"light\":      $light,\n  \"dark\":       $dark,\n) !default;\n// scss-docs-end table-loop\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n// scss-docs-start input-btn-variables\n$input-btn-padding-y:         .375rem !default;\n$input-btn-padding-x:         .75rem !default;\n$input-btn-font-family:       null !default;\n$input-btn-font-size:         $font-size-base !default;\n$input-btn-line-height:       $line-height-base !default;\n\n$input-btn-focus-width:         .25rem !default;\n$input-btn-focus-color-opacity: .25 !default;\n$input-btn-focus-color:         rgba($component-active-bg, $input-btn-focus-color-opacity) !default;\n$input-btn-focus-blur:          0 !default;\n$input-btn-focus-box-shadow:    0 0 $input-btn-focus-blur $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm:      .25rem !default;\n$input-btn-padding-x-sm:      .5rem !default;\n$input-btn-font-size-sm:      $font-size-sm !default;\n\n$input-btn-padding-y-lg:      .5rem !default;\n$input-btn-padding-x-lg:      1rem !default;\n$input-btn-font-size-lg:      $font-size-lg !default;\n\n$input-btn-border-width:      $border-width !default;\n// scss-docs-end input-btn-variables\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n// scss-docs-start btn-variables\n$btn-padding-y:               $input-btn-padding-y !default;\n$btn-padding-x:               $input-btn-padding-x !default;\n$btn-font-family:             $input-btn-font-family !default;\n$btn-font-size:               $input-btn-font-size !default;\n$btn-line-height:             $input-btn-line-height !default;\n$btn-white-space:             null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm:            $input-btn-padding-y-sm !default;\n$btn-padding-x-sm:            $input-btn-padding-x-sm !default;\n$btn-font-size-sm:            $input-btn-font-size-sm !default;\n\n$btn-padding-y-lg:            $input-btn-padding-y-lg !default;\n$btn-padding-x-lg:            $input-btn-padding-x-lg !default;\n$btn-font-size-lg:            $input-btn-font-size-lg !default;\n\n$btn-border-width:            $input-btn-border-width !default;\n\n$btn-font-weight:             $font-weight-normal !default;\n$btn-box-shadow:              inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width:             $input-btn-focus-width !default;\n$btn-focus-box-shadow:        $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity:        .65 !default;\n$btn-active-box-shadow:       inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-color:              var(--#{$prefix}link-color) !default;\n$btn-link-hover-color:        var(--#{$prefix}link-hover-color) !default;\n$btn-link-disabled-color:     $gray-600 !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius:           $border-radius !default;\n$btn-border-radius-sm:        $border-radius-sm !default;\n$btn-border-radius-lg:        $border-radius-lg !default;\n\n$btn-transition:              color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$btn-hover-bg-shade-amount:       15% !default;\n$btn-hover-bg-tint-amount:        15% !default;\n$btn-hover-border-shade-amount:   20% !default;\n$btn-hover-border-tint-amount:    10% !default;\n$btn-active-bg-shade-amount:      20% !default;\n$btn-active-bg-tint-amount:       20% !default;\n$btn-active-border-shade-amount:  25% !default;\n$btn-active-border-tint-amount:   10% !default;\n// scss-docs-end btn-variables\n\n\n// Forms\n\n// scss-docs-start form-text-variables\n$form-text-margin-top:                  .25rem !default;\n$form-text-font-size:                   $small-font-size !default;\n$form-text-font-style:                  null !default;\n$form-text-font-weight:                 null !default;\n$form-text-color:                       $text-muted !default;\n// scss-docs-end form-text-variables\n\n// scss-docs-start form-label-variables\n$form-label-margin-bottom:              .5rem !default;\n$form-label-font-size:                  null !default;\n$form-label-font-style:                 null !default;\n$form-label-font-weight:                null !default;\n$form-label-color:                      null !default;\n// scss-docs-end form-label-variables\n\n// scss-docs-start form-input-variables\n$input-padding-y:                       $input-btn-padding-y !default;\n$input-padding-x:                       $input-btn-padding-x !default;\n$input-font-family:                     $input-btn-font-family !default;\n$input-font-size:                       $input-btn-font-size !default;\n$input-font-weight:                     $font-weight-base !default;\n$input-line-height:                     $input-btn-line-height !default;\n\n$input-padding-y-sm:                    $input-btn-padding-y-sm !default;\n$input-padding-x-sm:                    $input-btn-padding-x-sm !default;\n$input-font-size-sm:                    $input-btn-font-size-sm !default;\n\n$input-padding-y-lg:                    $input-btn-padding-y-lg !default;\n$input-padding-x-lg:                    $input-btn-padding-x-lg !default;\n$input-font-size-lg:                    $input-btn-font-size-lg !default;\n\n$input-bg:                              $body-bg !default;\n$input-disabled-color:                  null !default;\n$input-disabled-bg:                     $gray-200 !default;\n$input-disabled-border-color:           null !default;\n\n$input-color:                           $body-color !default;\n$input-border-color:                    $gray-400 !default;\n$input-border-width:                    $input-btn-border-width !default;\n$input-box-shadow:                      $box-shadow-inset !default;\n\n$input-border-radius:                   $border-radius !default;\n$input-border-radius-sm:                $border-radius-sm !default;\n$input-border-radius-lg:                $border-radius-lg !default;\n\n$input-focus-bg:                        $input-bg !default;\n$input-focus-border-color:              tint-color($component-active-bg, 50%) !default;\n$input-focus-color:                     $input-color !default;\n$input-focus-width:                     $input-btn-focus-width !default;\n$input-focus-box-shadow:                $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color:               $gray-600 !default;\n$input-plaintext-color:                 $body-color !default;\n\n$input-height-border:                   $input-border-width * 2 !default;\n\n$input-height-inner:                    add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half:               add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter:            add($input-line-height * .25em, $input-padding-y * .5) !default;\n\n$input-height:                          add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm:                       add($input-line-height * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg:                       add($input-line-height * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition:                      border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-color-width:                      3rem !default;\n// scss-docs-end form-input-variables\n\n// scss-docs-start form-check-variables\n$form-check-input-width:                  1em !default;\n$form-check-min-height:                   $font-size-base * $line-height-base !default;\n$form-check-padding-start:                $form-check-input-width + .5em !default;\n$form-check-margin-bottom:                .125rem !default;\n$form-check-label-color:                  null !default;\n$form-check-label-cursor:                 null !default;\n$form-check-transition:                   null !default;\n\n$form-check-input-active-filter:          brightness(90%) !default;\n\n$form-check-input-bg:                     $input-bg !default;\n$form-check-input-border:                 1px solid rgba($black, .25) !default;\n$form-check-input-border-radius:          .25em !default;\n$form-check-radio-border-radius:          50% !default;\n$form-check-input-focus-border:           $input-focus-border-color !default;\n$form-check-input-focus-box-shadow:       $input-btn-focus-box-shadow !default;\n\n$form-check-input-checked-color:          $component-active-color !default;\n$form-check-input-checked-bg-color:       $component-active-bg !default;\n$form-check-input-checked-border-color:   $form-check-input-checked-bg-color !default;\n$form-check-input-checked-bg-image:       url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$form-check-input-checked-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/></svg>\") !default;\n$form-check-radio-checked-bg-image:       url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='2' fill='#{$form-check-input-checked-color}'/></svg>\") !default;\n\n$form-check-input-indeterminate-color:          $component-active-color !default;\n$form-check-input-indeterminate-bg-color:       $component-active-bg !default;\n$form-check-input-indeterminate-border-color:   $form-check-input-indeterminate-bg-color !default;\n$form-check-input-indeterminate-bg-image:       url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$form-check-input-indeterminate-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/></svg>\") !default;\n\n$form-check-input-disabled-opacity:        .5 !default;\n$form-check-label-disabled-opacity:        $form-check-input-disabled-opacity !default;\n$form-check-btn-check-disabled-opacity:    $btn-disabled-opacity !default;\n\n$form-check-inline-margin-end:    1rem !default;\n// scss-docs-end form-check-variables\n\n// scss-docs-start form-switch-variables\n$form-switch-color:               rgba($black, .25) !default;\n$form-switch-width:               2em !default;\n$form-switch-padding-start:       $form-switch-width + .5em !default;\n$form-switch-bg-image:            url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-color}'/></svg>\") !default;\n$form-switch-border-radius:       $form-switch-width !default;\n$form-switch-transition:          background-position .15s ease-in-out !default;\n\n$form-switch-focus-color:         $input-focus-border-color !default;\n$form-switch-focus-bg-image:      url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-focus-color}'/></svg>\") !default;\n\n$form-switch-checked-color:       $component-active-color !default;\n$form-switch-checked-bg-image:    url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-checked-color}'/></svg>\") !default;\n$form-switch-checked-bg-position: right center !default;\n// scss-docs-end form-switch-variables\n\n// scss-docs-start input-group-variables\n$input-group-addon-padding-y:           $input-padding-y !default;\n$input-group-addon-padding-x:           $input-padding-x !default;\n$input-group-addon-font-weight:         $input-font-weight !default;\n$input-group-addon-color:               $input-color !default;\n$input-group-addon-bg:                  $gray-200 !default;\n$input-group-addon-border-color:        $input-border-color !default;\n// scss-docs-end input-group-variables\n\n// scss-docs-start form-select-variables\n$form-select-padding-y:             $input-padding-y !default;\n$form-select-padding-x:             $input-padding-x !default;\n$form-select-font-family:           $input-font-family !default;\n$form-select-font-size:             $input-font-size !default;\n$form-select-indicator-padding:     $form-select-padding-x * 3 !default; // Extra padding for background-image\n$form-select-font-weight:           $input-font-weight !default;\n$form-select-line-height:           $input-line-height !default;\n$form-select-color:                 $input-color !default;\n$form-select-bg:                    $input-bg !default;\n$form-select-disabled-color:        null !default;\n$form-select-disabled-bg:           $gray-200 !default;\n$form-select-disabled-border-color: $input-disabled-border-color !default;\n$form-select-bg-position:           right $form-select-padding-x center !default;\n$form-select-bg-size:               16px 12px !default; // In pixels because image dimensions\n$form-select-indicator-color:       $gray-800 !default;\n$form-select-indicator:             url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='#{$form-select-indicator-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/></svg>\") !default;\n\n$form-select-feedback-icon-padding-end: $form-select-padding-x * 2.5 + $form-select-indicator-padding !default;\n$form-select-feedback-icon-position:    center right $form-select-indicator-padding !default;\n$form-select-feedback-icon-size:        $input-height-inner-half $input-height-inner-half !default;\n\n$form-select-border-width:        $input-border-width !default;\n$form-select-border-color:        $input-border-color !default;\n$form-select-border-radius:       $input-border-radius !default;\n$form-select-box-shadow:          $box-shadow-inset !default;\n\n$form-select-focus-border-color:  $input-focus-border-color !default;\n$form-select-focus-width:         $input-focus-width !default;\n$form-select-focus-box-shadow:    0 0 0 $form-select-focus-width $input-btn-focus-color !default;\n\n$form-select-padding-y-sm:        $input-padding-y-sm !default;\n$form-select-padding-x-sm:        $input-padding-x-sm !default;\n$form-select-font-size-sm:        $input-font-size-sm !default;\n$form-select-border-radius-sm:    $input-border-radius-sm !default;\n\n$form-select-padding-y-lg:        $input-padding-y-lg !default;\n$form-select-padding-x-lg:        $input-padding-x-lg !default;\n$form-select-font-size-lg:        $input-font-size-lg !default;\n$form-select-border-radius-lg:    $input-border-radius-lg !default;\n\n$form-select-transition:          $input-transition !default;\n// scss-docs-end form-select-variables\n\n// scss-docs-start form-range-variables\n$form-range-track-width:          100% !default;\n$form-range-track-height:         .5rem !default;\n$form-range-track-cursor:         pointer !default;\n$form-range-track-bg:             $gray-300 !default;\n$form-range-track-border-radius:  1rem !default;\n$form-range-track-box-shadow:     $box-shadow-inset !default;\n\n$form-range-thumb-width:                   1rem !default;\n$form-range-thumb-height:                  $form-range-thumb-width !default;\n$form-range-thumb-bg:                      $component-active-bg !default;\n$form-range-thumb-border:                  0 !default;\n$form-range-thumb-border-radius:           1rem !default;\n$form-range-thumb-box-shadow:              0 .1rem .25rem rgba($black, .1) !default;\n$form-range-thumb-focus-box-shadow:        0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$form-range-thumb-focus-box-shadow-width:  $input-focus-width !default; // For focus box shadow issue in Edge\n$form-range-thumb-active-bg:               tint-color($component-active-bg, 70%) !default;\n$form-range-thumb-disabled-bg:             $gray-500 !default;\n$form-range-thumb-transition:              background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n// scss-docs-end form-range-variables\n\n// scss-docs-start form-file-variables\n$form-file-button-color:          $input-color !default;\n$form-file-button-bg:             $input-group-addon-bg !default;\n$form-file-button-hover-bg:       shade-color($form-file-button-bg, 5%) !default;\n// scss-docs-end form-file-variables\n\n// scss-docs-start form-floating-variables\n$form-floating-height:            add(3.5rem, $input-height-border) !default;\n$form-floating-line-height:       1.25 !default;\n$form-floating-padding-x:         $input-padding-x !default;\n$form-floating-padding-y:         1rem !default;\n$form-floating-input-padding-t:   1.625rem !default;\n$form-floating-input-padding-b:   .625rem !default;\n$form-floating-label-opacity:     .65 !default;\n$form-floating-label-transform:   scale(.85) translateY(-.5rem) translateX(.15rem) !default;\n$form-floating-transition:        opacity .1s ease-in-out, transform .1s ease-in-out !default;\n// scss-docs-end form-floating-variables\n\n// Form validation\n\n// scss-docs-start form-feedback-variables\n$form-feedback-margin-top:          $form-text-margin-top !default;\n$form-feedback-font-size:           $form-text-font-size !default;\n$form-feedback-font-style:          $form-text-font-style !default;\n$form-feedback-valid-color:         $success !default;\n$form-feedback-invalid-color:       $danger !default;\n\n$form-feedback-icon-valid-color:    $form-feedback-valid-color !default;\n$form-feedback-icon-valid:          url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/></svg>\") !default;\n$form-feedback-icon-invalid-color:  $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid:        url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>\") !default;\n// scss-docs-end form-feedback-variables\n\n// scss-docs-start form-validation-states\n$form-validation-states: (\n  \"valid\": (\n    \"color\": $form-feedback-valid-color,\n    \"icon\": $form-feedback-icon-valid\n  ),\n  \"invalid\": (\n    \"color\": $form-feedback-invalid-color,\n    \"icon\": $form-feedback-icon-invalid\n  )\n) !default;\n// scss-docs-end form-validation-states\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-dropdown:                   1000 !default;\n$zindex-sticky:                     1020 !default;\n$zindex-fixed:                      1030 !default;\n$zindex-offcanvas-backdrop:         1040 !default;\n$zindex-offcanvas:                  1045 !default;\n$zindex-modal-backdrop:             1050 !default;\n$zindex-modal:                      1055 !default;\n$zindex-popover:                    1070 !default;\n$zindex-tooltip:                    1080 !default;\n$zindex-toast:                      1090 !default;\n// scss-docs-end zindex-stack\n\n\n// Navs\n\n// scss-docs-start nav-variables\n$nav-link-padding-y:                .5rem !default;\n$nav-link-padding-x:                1rem !default;\n$nav-link-font-size:                null !default;\n$nav-link-font-weight:              null !default;\n$nav-link-color:                    var(--#{$prefix}link-color) !default;\n$nav-link-hover-color:              var(--#{$prefix}link-hover-color) !default;\n$nav-link-transition:               color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out !default;\n$nav-link-disabled-color:           $gray-600 !default;\n\n$nav-tabs-border-color:             $gray-300 !default;\n$nav-tabs-border-width:             $border-width !default;\n$nav-tabs-border-radius:            $border-radius !default;\n$nav-tabs-link-hover-border-color:  $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color:        $gray-700 !default;\n$nav-tabs-link-active-bg:           $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius:           $border-radius !default;\n$nav-pills-link-active-color:       $component-active-color !default;\n$nav-pills-link-active-bg:          $component-active-bg !default;\n// scss-docs-end nav-variables\n\n\n// Navbar\n\n// scss-docs-start navbar-variables\n$navbar-padding-y:                  $spacer * .5 !default;\n$navbar-padding-x:                  null !default;\n\n$navbar-nav-link-padding-x:         .5rem !default;\n\n$navbar-brand-font-size:            $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height:                   $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height:               $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y:            ($nav-link-height - $navbar-brand-height) * .5 !default;\n$navbar-brand-margin-end:           1rem !default;\n\n$navbar-toggler-padding-y:          .25rem !default;\n$navbar-toggler-padding-x:          .75rem !default;\n$navbar-toggler-font-size:          $font-size-lg !default;\n$navbar-toggler-border-radius:      $btn-border-radius !default;\n$navbar-toggler-focus-width:        $btn-focus-width !default;\n$navbar-toggler-transition:         box-shadow .15s ease-in-out !default;\n\n$navbar-light-color:                rgba($black, .55) !default;\n$navbar-light-hover-color:          rgba($black, .7) !default;\n$navbar-light-active-color:         rgba($black, .9) !default;\n$navbar-light-disabled-color:       rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg:      url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n$navbar-light-brand-color:          $navbar-light-active-color !default;\n$navbar-light-brand-hover-color:    $navbar-light-active-color !default;\n// scss-docs-end navbar-variables\n\n// scss-docs-start navbar-dark-variables\n$navbar-dark-color:                 rgba($white, .55) !default;\n$navbar-dark-hover-color:           rgba($white, .75) !default;\n$navbar-dark-active-color:          $white !default;\n$navbar-dark-disabled-color:        rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg:       url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='#{$navbar-dark-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-dark-toggler-border-color:  rgba($white, .1) !default;\n$navbar-dark-brand-color:           $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color:     $navbar-dark-active-color !default;\n// scss-docs-end navbar-dark-variables\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n// scss-docs-start dropdown-variables\n$dropdown-min-width:                10rem !default;\n$dropdown-padding-x:                0 !default;\n$dropdown-padding-y:                .5rem !default;\n$dropdown-spacer:                   .125rem !default;\n$dropdown-font-size:                $font-size-base !default;\n$dropdown-color:                    $body-color !default;\n$dropdown-bg:                       $white !default;\n$dropdown-border-color:             var(--#{$prefix}border-color-translucent) !default;\n$dropdown-border-radius:            $border-radius !default;\n$dropdown-border-width:             $border-width !default;\n$dropdown-inner-border-radius:      subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg:               $dropdown-border-color !default;\n$dropdown-divider-margin-y:         $spacer * .5 !default;\n$dropdown-box-shadow:               $box-shadow !default;\n\n$dropdown-link-color:               $gray-900 !default;\n$dropdown-link-hover-color:         shade-color($dropdown-link-color, 10%) !default;\n$dropdown-link-hover-bg:            $gray-200 !default;\n\n$dropdown-link-active-color:        $component-active-color !default;\n$dropdown-link-active-bg:           $component-active-bg !default;\n\n$dropdown-link-disabled-color:      $gray-500 !default;\n\n$dropdown-item-padding-y:           $spacer * .25 !default;\n$dropdown-item-padding-x:           $spacer !default;\n\n$dropdown-header-color:             $gray-600 !default;\n$dropdown-header-padding-x:         $dropdown-item-padding-x !default;\n$dropdown-header-padding-y:         $dropdown-padding-y !default;\n// fusv-disable\n$dropdown-header-padding:           $dropdown-header-padding-y $dropdown-header-padding-x !default; // Deprecated in v5.2.0\n// fusv-enable\n// scss-docs-end dropdown-variables\n\n// scss-docs-start dropdown-dark-variables\n$dropdown-dark-color:               $gray-300 !default;\n$dropdown-dark-bg:                  $gray-800 !default;\n$dropdown-dark-border-color:        $dropdown-border-color !default;\n$dropdown-dark-divider-bg:          $dropdown-divider-bg !default;\n$dropdown-dark-box-shadow:          null !default;\n$dropdown-dark-link-color:          $dropdown-dark-color !default;\n$dropdown-dark-link-hover-color:    $white !default;\n$dropdown-dark-link-hover-bg:       rgba($white, .15) !default;\n$dropdown-dark-link-active-color:   $dropdown-link-active-color !default;\n$dropdown-dark-link-active-bg:      $dropdown-link-active-bg !default;\n$dropdown-dark-link-disabled-color: $gray-500 !default;\n$dropdown-dark-header-color:        $gray-500 !default;\n// scss-docs-end dropdown-dark-variables\n\n\n// Pagination\n\n// scss-docs-start pagination-variables\n$pagination-padding-y:              .375rem !default;\n$pagination-padding-x:              .75rem !default;\n$pagination-padding-y-sm:           .25rem !default;\n$pagination-padding-x-sm:           .5rem !default;\n$pagination-padding-y-lg:           .75rem !default;\n$pagination-padding-x-lg:           1.5rem !default;\n\n$pagination-font-size:              $font-size-base !default;\n\n$pagination-color:                  var(--#{$prefix}link-color) !default;\n$pagination-bg:                     $white !default;\n$pagination-border-radius:          $border-radius !default;\n$pagination-border-width:           $border-width !default;\n$pagination-margin-start:           ($pagination-border-width * -1) !default;\n$pagination-border-color:           $gray-300 !default;\n\n$pagination-focus-color:            var(--#{$prefix}link-hover-color) !default;\n$pagination-focus-bg:               $gray-200 !default;\n$pagination-focus-box-shadow:       $input-btn-focus-box-shadow !default;\n$pagination-focus-outline:          0 !default;\n\n$pagination-hover-color:            var(--#{$prefix}link-hover-color) !default;\n$pagination-hover-bg:               $gray-200 !default;\n$pagination-hover-border-color:     $gray-300 !default;\n\n$pagination-active-color:           $component-active-color !default;\n$pagination-active-bg:              $component-active-bg !default;\n$pagination-active-border-color:    $pagination-active-bg !default;\n\n$pagination-disabled-color:         $gray-600 !default;\n$pagination-disabled-bg:            $white !default;\n$pagination-disabled-border-color:  $gray-300 !default;\n\n$pagination-transition:              color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$pagination-border-radius-sm:       $border-radius-sm !default;\n$pagination-border-radius-lg:       $border-radius-lg !default;\n// scss-docs-end pagination-variables\n\n\n// Placeholders\n\n// scss-docs-start placeholders\n$placeholder-opacity-max:           .5 !default;\n$placeholder-opacity-min:           .2 !default;\n// scss-docs-end placeholders\n\n// Cards\n\n// scss-docs-start card-variables\n$card-spacer-y:                     $spacer !default;\n$card-spacer-x:                     $spacer !default;\n$card-title-spacer-y:               $spacer * .5 !default;\n$card-border-width:                 $border-width !default;\n$card-border-color:                 var(--#{$prefix}border-color-translucent) !default;\n$card-border-radius:                $border-radius !default;\n$card-box-shadow:                   null !default;\n$card-inner-border-radius:          subtract($card-border-radius, $card-border-width) !default;\n$card-cap-padding-y:                $card-spacer-y * .5 !default;\n$card-cap-padding-x:                $card-spacer-x !default;\n$card-cap-bg:                       rgba($black, .03) !default;\n$card-cap-color:                    null !default;\n$card-height:                       null !default;\n$card-color:                        null !default;\n$card-bg:                           $white !default;\n$card-img-overlay-padding:          $spacer !default;\n$card-group-margin:                 $grid-gutter-width * .5 !default;\n// scss-docs-end card-variables\n\n// Accordion\n\n// scss-docs-start accordion-variables\n$accordion-padding-y:                     1rem !default;\n$accordion-padding-x:                     1.25rem !default;\n$accordion-color:                         $body-color !default; // Sass variable because of $accordion-button-icon\n$accordion-bg:                            $body-bg !default;\n$accordion-border-width:                  $border-width !default;\n$accordion-border-color:                  var(--#{$prefix}border-color) !default;\n$accordion-border-radius:                 $border-radius !default;\n$accordion-inner-border-radius:           subtract($accordion-border-radius, $accordion-border-width) !default;\n\n$accordion-body-padding-y:                $accordion-padding-y !default;\n$accordion-body-padding-x:                $accordion-padding-x !default;\n\n$accordion-button-padding-y:              $accordion-padding-y !default;\n$accordion-button-padding-x:              $accordion-padding-x !default;\n$accordion-button-color:                  $accordion-color !default;\n$accordion-button-bg:                     var(--#{$prefix}accordion-bg) !default;\n$accordion-transition:                    $btn-transition, border-radius .15s ease !default;\n$accordion-button-active-bg:              tint-color($component-active-bg, 90%) !default;\n$accordion-button-active-color:           shade-color($primary, 10%) !default;\n\n$accordion-button-focus-border-color:     $input-focus-border-color !default;\n$accordion-button-focus-box-shadow:       $btn-focus-box-shadow !default;\n\n$accordion-icon-width:                    1.25rem !default;\n$accordion-icon-color:                    $accordion-button-color !default;\n$accordion-icon-active-color:             $accordion-button-active-color !default;\n$accordion-icon-transition:               transform .2s ease-in-out !default;\n$accordion-icon-transform:                rotate(-180deg) !default;\n\n$accordion-button-icon:         url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-color}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>\") !default;\n$accordion-button-active-icon:  url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-active-color}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>\") !default;\n// scss-docs-end accordion-variables\n\n// Tooltips\n\n// scss-docs-start tooltip-variables\n$tooltip-font-size:                 $font-size-sm !default;\n$tooltip-max-width:                 200px !default;\n$tooltip-color:                     $white !default;\n$tooltip-bg:                        $black !default;\n$tooltip-border-radius:             $border-radius !default;\n$tooltip-opacity:                   .9 !default;\n$tooltip-padding-y:                 $spacer * .25 !default;\n$tooltip-padding-x:                 $spacer * .5 !default;\n$tooltip-margin:                    null !default; // TODO: remove this in v6\n\n$tooltip-arrow-width:               .8rem !default;\n$tooltip-arrow-height:              .4rem !default;\n// fusv-disable\n$tooltip-arrow-color:               null !default; // Deprecated in Bootstrap 5.2.0 for CSS variables\n// fusv-enable\n// scss-docs-end tooltip-variables\n\n// Form tooltips must come after regular tooltips\n// scss-docs-start tooltip-feedback-variables\n$form-feedback-tooltip-padding-y:     $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x:     $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size:     $tooltip-font-size !default;\n$form-feedback-tooltip-line-height:   null !default;\n$form-feedback-tooltip-opacity:       $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n// scss-docs-end tooltip-feedback-variables\n\n\n// Popovers\n\n// scss-docs-start popover-variables\n$popover-font-size:                 $font-size-sm !default;\n$popover-bg:                        $white !default;\n$popover-max-width:                 276px !default;\n$popover-border-width:              $border-width !default;\n$popover-border-color:              var(--#{$prefix}border-color-translucent) !default;\n$popover-border-radius:             $border-radius-lg !default;\n$popover-inner-border-radius:       subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow:                $box-shadow !default;\n\n$popover-header-font-size:          $font-size-base !default;\n$popover-header-bg:                 shade-color($popover-bg, 6%) !default;\n$popover-header-color:              $headings-color !default;\n$popover-header-padding-y:          .5rem !default;\n$popover-header-padding-x:          $spacer !default;\n\n$popover-body-color:                $body-color !default;\n$popover-body-padding-y:            $spacer !default;\n$popover-body-padding-x:            $spacer !default;\n\n$popover-arrow-width:               1rem !default;\n$popover-arrow-height:              .5rem !default;\n// scss-docs-end popover-variables\n\n// fusv-disable\n// Deprecated in Bootstrap 5.2.0 for CSS variables\n$popover-arrow-color:               $popover-bg !default;\n$popover-arrow-outer-color:         var(--#{$prefix}border-color-translucent) !default;\n// fusv-enable\n\n\n// Toasts\n\n// scss-docs-start toast-variables\n$toast-max-width:                   350px !default;\n$toast-padding-x:                   .75rem !default;\n$toast-padding-y:                   .5rem !default;\n$toast-font-size:                   .875rem !default;\n$toast-color:                       null !default;\n$toast-background-color:            rgba($white, .85) !default;\n$toast-border-width:                $border-width !default;\n$toast-border-color:                var(--#{$prefix}border-color-translucent) !default;\n$toast-border-radius:               $border-radius !default;\n$toast-box-shadow:                  $box-shadow !default;\n$toast-spacing:                     $container-padding-x !default;\n\n$toast-header-color:                $gray-600 !default;\n$toast-header-background-color:     rgba($white, .85) !default;\n$toast-header-border-color:         rgba($black, .05) !default;\n// scss-docs-end toast-variables\n\n\n// Badges\n\n// scss-docs-start badge-variables\n$badge-font-size:                   .75em !default;\n$badge-font-weight:                 $font-weight-bold !default;\n$badge-color:                       $white !default;\n$badge-padding-y:                   .35em !default;\n$badge-padding-x:                   .65em !default;\n$badge-border-radius:               $border-radius !default;\n// scss-docs-end badge-variables\n\n\n// Modals\n\n// scss-docs-start modal-variables\n$modal-inner-padding:               $spacer !default;\n\n$modal-footer-margin-between:       .5rem !default;\n\n$modal-dialog-margin:               .5rem !default;\n$modal-dialog-margin-y-sm-up:       1.75rem !default;\n\n$modal-title-line-height:           $line-height-base !default;\n\n$modal-content-color:               null !default;\n$modal-content-bg:                  $white !default;\n$modal-content-border-color:        var(--#{$prefix}border-color-translucent) !default;\n$modal-content-border-width:        $border-width !default;\n$modal-content-border-radius:       $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs:       $box-shadow-sm !default;\n$modal-content-box-shadow-sm-up:    $box-shadow !default;\n\n$modal-backdrop-bg:                 $black !default;\n$modal-backdrop-opacity:            .5 !default;\n\n$modal-header-border-color:         var(--#{$prefix}border-color) !default;\n$modal-header-border-width:         $modal-content-border-width !default;\n$modal-header-padding-y:            $modal-inner-padding !default;\n$modal-header-padding-x:            $modal-inner-padding !default;\n$modal-header-padding:              $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-footer-bg:                   null !default;\n$modal-footer-border-color:         $modal-header-border-color !default;\n$modal-footer-border-width:         $modal-header-border-width !default;\n\n$modal-sm:                          300px !default;\n$modal-md:                          500px !default;\n$modal-lg:                          800px !default;\n$modal-xl:                          1140px !default;\n\n$modal-fade-transform:              translate(0, -50px) !default;\n$modal-show-transform:              none !default;\n$modal-transition:                  transform .3s ease-out !default;\n$modal-scale-transform:             scale(1.02) !default;\n// scss-docs-end modal-variables\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n// scss-docs-start alert-variables\n$alert-padding-y:               $spacer !default;\n$alert-padding-x:               $spacer !default;\n$alert-margin-bottom:           1rem !default;\n$alert-border-radius:           $border-radius !default;\n$alert-link-font-weight:        $font-weight-bold !default;\n$alert-border-width:            $border-width !default;\n$alert-bg-scale:                -80% !default;\n$alert-border-scale:            -70% !default;\n$alert-color-scale:             40% !default;\n$alert-dismissible-padding-r:   $alert-padding-x * 3 !default; // 3x covers width of x plus default padding on either side\n// scss-docs-end alert-variables\n\n\n// Progress bars\n\n// scss-docs-start progress-variables\n$progress-height:                   1rem !default;\n$progress-font-size:                $font-size-base * .75 !default;\n$progress-bg:                       $gray-200 !default;\n$progress-border-radius:            $border-radius !default;\n$progress-box-shadow:               $box-shadow-inset !default;\n$progress-bar-color:                $white !default;\n$progress-bar-bg:                   $primary !default;\n$progress-bar-animation-timing:     1s linear infinite !default;\n$progress-bar-transition:           width .6s ease !default;\n// scss-docs-end progress-variables\n\n\n// List group\n\n// scss-docs-start list-group-variables\n$list-group-color:                  $gray-900 !default;\n$list-group-bg:                     $white !default;\n$list-group-border-color:           rgba($black, .125) !default;\n$list-group-border-width:           $border-width !default;\n$list-group-border-radius:          $border-radius !default;\n\n$list-group-item-padding-y:         $spacer * .5 !default;\n$list-group-item-padding-x:         $spacer !default;\n$list-group-item-bg-scale:          -80% !default;\n$list-group-item-color-scale:       40% !default;\n\n$list-group-hover-bg:               $gray-100 !default;\n$list-group-active-color:           $component-active-color !default;\n$list-group-active-bg:              $component-active-bg !default;\n$list-group-active-border-color:    $list-group-active-bg !default;\n\n$list-group-disabled-color:         $gray-600 !default;\n$list-group-disabled-bg:            $list-group-bg !default;\n\n$list-group-action-color:           $gray-700 !default;\n$list-group-action-hover-color:     $list-group-action-color !default;\n\n$list-group-action-active-color:    $body-color !default;\n$list-group-action-active-bg:       $gray-200 !default;\n// scss-docs-end list-group-variables\n\n\n// Image thumbnails\n\n// scss-docs-start thumbnail-variables\n$thumbnail-padding:                 .25rem !default;\n$thumbnail-bg:                      $body-bg !default;\n$thumbnail-border-width:            $border-width !default;\n$thumbnail-border-color:            var(--#{$prefix}border-color) !default;\n$thumbnail-border-radius:           $border-radius !default;\n$thumbnail-box-shadow:              $box-shadow-sm !default;\n// scss-docs-end thumbnail-variables\n\n\n// Figures\n\n// scss-docs-start figure-variables\n$figure-caption-font-size:          $small-font-size !default;\n$figure-caption-color:              $gray-600 !default;\n// scss-docs-end figure-variables\n\n\n// Breadcrumbs\n\n// scss-docs-start breadcrumb-variables\n$breadcrumb-font-size:              null !default;\n$breadcrumb-padding-y:              0 !default;\n$breadcrumb-padding-x:              0 !default;\n$breadcrumb-item-padding-x:         .5rem !default;\n$breadcrumb-margin-bottom:          1rem !default;\n$breadcrumb-bg:                     null !default;\n$breadcrumb-divider-color:          $gray-600 !default;\n$breadcrumb-active-color:           $gray-600 !default;\n$breadcrumb-divider:                quote(\"/\") !default;\n$breadcrumb-divider-flipped:        $breadcrumb-divider !default;\n$breadcrumb-border-radius:          null !default;\n// scss-docs-end breadcrumb-variables\n\n// Carousel\n\n// scss-docs-start carousel-variables\n$carousel-control-color:             $white !default;\n$carousel-control-width:             15% !default;\n$carousel-control-opacity:           .5 !default;\n$carousel-control-hover-opacity:     .9 !default;\n$carousel-control-transition:        opacity .15s ease !default;\n\n$carousel-indicator-width:           30px !default;\n$carousel-indicator-height:          3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer:          3px !default;\n$carousel-indicator-opacity:         .5 !default;\n$carousel-indicator-active-bg:       $white !default;\n$carousel-indicator-active-opacity:  1 !default;\n$carousel-indicator-transition:      opacity .6s ease !default;\n\n$carousel-caption-width:             70% !default;\n$carousel-caption-color:             $white !default;\n$carousel-caption-padding-y:         1.25rem !default;\n$carousel-caption-spacer:            1.25rem !default;\n\n$carousel-control-icon-width:        2rem !default;\n\n$carousel-control-prev-icon-bg:      url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/></svg>\") !default;\n$carousel-control-next-icon-bg:      url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/></svg>\") !default;\n\n$carousel-transition-duration:       .6s !default;\n$carousel-transition:                transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n// scss-docs-end carousel-variables\n\n// scss-docs-start carousel-dark-variables\n$carousel-dark-indicator-active-bg:  $black !default;\n$carousel-dark-caption-color:        $black !default;\n$carousel-dark-control-icon-filter:  invert(1) grayscale(100) !default;\n// scss-docs-end carousel-dark-variables\n\n\n// Spinners\n\n// scss-docs-start spinner-variables\n$spinner-width:           2rem !default;\n$spinner-height:          $spinner-width !default;\n$spinner-vertical-align:  -.125em !default;\n$spinner-border-width:    .25em !default;\n$spinner-animation-speed: .75s !default;\n\n$spinner-width-sm:        1rem !default;\n$spinner-height-sm:       $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n// scss-docs-end spinner-variables\n\n\n// Close\n\n// scss-docs-start close-variables\n$btn-close-width:            1em !default;\n$btn-close-height:           $btn-close-width !default;\n$btn-close-padding-x:        .25em !default;\n$btn-close-padding-y:        $btn-close-padding-x !default;\n$btn-close-color:            $black !default;\n$btn-close-bg:               url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>\") !default;\n$btn-close-focus-shadow:     $input-btn-focus-box-shadow !default;\n$btn-close-opacity:          .5 !default;\n$btn-close-hover-opacity:    .75 !default;\n$btn-close-focus-opacity:    1 !default;\n$btn-close-disabled-opacity: .25 !default;\n$btn-close-white-filter:     invert(1) grayscale(100%) brightness(200%) !default;\n// scss-docs-end close-variables\n\n\n// Offcanvas\n\n// scss-docs-start offcanvas-variables\n$offcanvas-padding-y:               $modal-inner-padding !default;\n$offcanvas-padding-x:               $modal-inner-padding !default;\n$offcanvas-horizontal-width:        400px !default;\n$offcanvas-vertical-height:         30vh !default;\n$offcanvas-transition-duration:     .3s !default;\n$offcanvas-border-color:            $modal-content-border-color !default;\n$offcanvas-border-width:            $modal-content-border-width !default;\n$offcanvas-title-line-height:       $modal-title-line-height !default;\n$offcanvas-bg-color:                $modal-content-bg !default;\n$offcanvas-color:                   $modal-content-color !default;\n$offcanvas-box-shadow:              $modal-content-box-shadow-xs !default;\n$offcanvas-backdrop-bg:             $modal-backdrop-bg !default;\n$offcanvas-backdrop-opacity:        $modal-backdrop-opacity !default;\n// scss-docs-end offcanvas-variables\n\n// Code\n\n$code-font-size:                    $small-font-size !default;\n$code-color:                        $pink !default;\n\n$kbd-padding-y:                     .1875rem !default;\n$kbd-padding-x:                     .375rem !default;\n$kbd-font-size:                     $code-font-size !default;\n$kbd-color:                         var(--#{$prefix}body-bg) !default;\n$kbd-bg:                            var(--#{$prefix}body-color) !default;\n$nested-kbd-font-weight:            null !default; // Deprecated in v5.2.0, removing in v6\n\n$pre-color:                         null !default;\n"
  },
  {
    "path": "lib/bootstrap5/bootstrap-grid.scss",
    "content": "@import \"mixins/banner\";\n@include bsBanner(Grid);\n\n$include-column-box-sizing: true !default;\n\n@import \"functions\";\n@import \"variables\";\n@import \"maps\";\n\n@import \"mixins/lists\";\n@import \"mixins/breakpoints\";\n@import \"mixins/container\";\n@import \"mixins/grid\";\n@import \"mixins/utilities\";\n\n@import \"vendor/rfs\";\n\n@import \"root\";\n\n@import \"containers\";\n@import \"grid\";\n\n@import \"utilities\";\n// Only use the utilities we need\n// stylelint-disable-next-line scss/dollar-variable-default\n$utilities: map-get-multiple(\n  $utilities,\n  (\n    \"display\",\n    \"order\",\n    \"flex\",\n    \"flex-direction\",\n    \"flex-grow\",\n    \"flex-shrink\",\n    \"flex-wrap\",\n    \"justify-content\",\n    \"align-items\",\n    \"align-content\",\n    \"align-self\",\n    \"margin\",\n    \"margin-x\",\n    \"margin-y\",\n    \"margin-top\",\n    \"margin-end\",\n    \"margin-bottom\",\n    \"margin-start\",\n    \"negative-margin\",\n    \"negative-margin-x\",\n    \"negative-margin-y\",\n    \"negative-margin-top\",\n    \"negative-margin-end\",\n    \"negative-margin-bottom\",\n    \"negative-margin-start\",\n    \"padding\",\n    \"padding-x\",\n    \"padding-y\",\n    \"padding-top\",\n    \"padding-end\",\n    \"padding-bottom\",\n    \"padding-start\",\n  )\n);\n\n@import \"utilities/api\";\n"
  },
  {
    "path": "lib/bootstrap5/bootstrap-reboot.scss",
    "content": "@import \"mixins/banner\";\n@include bsBanner(Reboot);\n\n@import \"functions\";\n@import \"variables\";\n@import \"maps\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n"
  },
  {
    "path": "lib/bootstrap5/bootstrap-utilities.scss",
    "content": "@import \"mixins/banner\";\n@include bsBanner(Utilities);\n\n// Configuration\n@import \"functions\";\n@import \"variables\";\n@import \"maps\";\n@import \"mixins\";\n@import \"utilities\";\n\n// Layout & components\n@import \"root\";\n\n// Helpers\n@import \"helpers\";\n\n// Utilities\n@import \"utilities/api\";\n"
  },
  {
    "path": "lib/bootstrap5/bootstrap.scss",
    "content": "@import \"mixins/banner\";\n@include bsBanner(\"\");\n\n\n// scss-docs-start import-stack\n// Configuration\n@import \"functions\";\n@import \"variables\";\n@import \"maps\";\n@import \"mixins\";\n@import \"utilities\";\n\n// Layout & components\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"containers\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"accordion\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"alert\";\n@import \"progress\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"offcanvas\";\n@import \"placeholders\";\n\n// Helpers\n@import \"helpers\";\n\n// Utilities\n@import \"utilities/api\";\n// scss-docs-end import-stack\n"
  },
  {
    "path": "lib/bootstrap5/forms/_floating-labels.scss",
    "content": ".form-floating {\n  position: relative;\n\n  > .form-control,\n  > .form-control-plaintext,\n  > .form-select {\n    height: $form-floating-height;\n    line-height: $form-floating-line-height;\n  }\n\n  > label {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%; // allow textareas\n    padding: $form-floating-padding-y $form-floating-padding-x;\n    overflow: hidden;\n    text-align: start;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n    pointer-events: none;\n    border: $input-border-width solid transparent; // Required for aligning label's text with the input as it affects inner box model\n    transform-origin: 0 0;\n    @include transition($form-floating-transition);\n  }\n\n  > .form-control,\n  > .form-control-plaintext {\n    padding: $form-floating-padding-y $form-floating-padding-x;\n\n    &::placeholder {\n      color: transparent;\n    }\n\n    &:focus,\n    &:not(:placeholder-shown) {\n      padding-top: $form-floating-input-padding-t;\n      padding-bottom: $form-floating-input-padding-b;\n    }\n    // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped\n    &:-webkit-autofill {\n      padding-top: $form-floating-input-padding-t;\n      padding-bottom: $form-floating-input-padding-b;\n    }\n  }\n\n  > .form-select {\n    padding-top: $form-floating-input-padding-t;\n    padding-bottom: $form-floating-input-padding-b;\n  }\n\n  > .form-control:focus,\n  > .form-control:not(:placeholder-shown),\n  > .form-control-plaintext,\n  > .form-select {\n    ~ label {\n      opacity: $form-floating-label-opacity;\n      transform: $form-floating-label-transform;\n    }\n  }\n  // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped\n  > .form-control:-webkit-autofill {\n    ~ label {\n      opacity: $form-floating-label-opacity;\n      transform: $form-floating-label-transform;\n    }\n  }\n\n  > .form-control-plaintext {\n    ~ label {\n      border-width: $input-border-width 0; // Required to properly position label text - as explained above\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/forms/_form-check.scss",
    "content": "//\n// Check/radio\n//\n\n.form-check {\n  display: block;\n  min-height: $form-check-min-height;\n  padding-left: $form-check-padding-start;\n  margin-bottom: $form-check-margin-bottom;\n\n  .form-check-input {\n    float: left;\n    margin-left: $form-check-padding-start * -1;\n  }\n}\n\n.form-check-reverse {\n  padding-right: $form-check-padding-start;\n  padding-left: 0;\n  text-align: right;\n\n  .form-check-input {\n    float: right;\n    margin-right: $form-check-padding-start * -1;\n    margin-left: 0;\n  }\n}\n\n.form-check-input {\n  width: $form-check-input-width;\n  height: $form-check-input-width;\n  margin-top: ($line-height-base - $form-check-input-width) * .5; // line-height minus check height\n  vertical-align: top;\n  background-color: $form-check-input-bg;\n  background-repeat: no-repeat;\n  background-position: center;\n  background-size: contain;\n  border: $form-check-input-border;\n  appearance: none;\n  print-color-adjust: exact; // Keep themed appearance for print\n  @include transition($form-check-transition);\n\n  &[type=\"checkbox\"] {\n    @include border-radius($form-check-input-border-radius);\n  }\n\n  &[type=\"radio\"] {\n    // stylelint-disable-next-line property-disallowed-list\n    border-radius: $form-check-radio-border-radius;\n  }\n\n  &:active {\n    filter: $form-check-input-active-filter;\n  }\n\n  &:focus {\n    border-color: $form-check-input-focus-border;\n    outline: 0;\n    box-shadow: $form-check-input-focus-box-shadow;\n  }\n\n  &:checked {\n    background-color: $form-check-input-checked-bg-color;\n    border-color: $form-check-input-checked-border-color;\n\n    &[type=\"checkbox\"] {\n      @if $enable-gradients {\n        background-image: escape-svg($form-check-input-checked-bg-image), var(--#{$prefix}gradient);\n      } @else {\n        background-image: escape-svg($form-check-input-checked-bg-image);\n      }\n    }\n\n    &[type=\"radio\"] {\n      @if $enable-gradients {\n        background-image: escape-svg($form-check-radio-checked-bg-image), var(--#{$prefix}gradient);\n      } @else {\n        background-image: escape-svg($form-check-radio-checked-bg-image);\n      }\n    }\n  }\n\n  &[type=\"checkbox\"]:indeterminate {\n    background-color: $form-check-input-indeterminate-bg-color;\n    border-color: $form-check-input-indeterminate-border-color;\n\n    @if $enable-gradients {\n      background-image: escape-svg($form-check-input-indeterminate-bg-image), var(--#{$prefix}gradient);\n    } @else {\n      background-image: escape-svg($form-check-input-indeterminate-bg-image);\n    }\n  }\n\n  &:disabled {\n    pointer-events: none;\n    filter: none;\n    opacity: $form-check-input-disabled-opacity;\n  }\n\n  // Use disabled attribute in addition of :disabled pseudo-class\n  // See: https://github.com/twbs/bootstrap/issues/28247\n  &[disabled],\n  &:disabled {\n    ~ .form-check-label {\n      cursor: default;\n      opacity: $form-check-label-disabled-opacity;\n    }\n  }\n}\n\n.form-check-label {\n  color: $form-check-label-color;\n  cursor: $form-check-label-cursor;\n}\n\n//\n// Switch\n//\n\n.form-switch {\n  padding-left: $form-switch-padding-start;\n\n  .form-check-input {\n    width: $form-switch-width;\n    margin-left: $form-switch-padding-start * -1;\n    background-image: escape-svg($form-switch-bg-image);\n    background-position: left center;\n    @include border-radius($form-switch-border-radius);\n    @include transition($form-switch-transition);\n\n    &:focus {\n      background-image: escape-svg($form-switch-focus-bg-image);\n    }\n\n    &:checked {\n      background-position: $form-switch-checked-bg-position;\n\n      @if $enable-gradients {\n        background-image: escape-svg($form-switch-checked-bg-image), var(--#{$prefix}gradient);\n      } @else {\n        background-image: escape-svg($form-switch-checked-bg-image);\n      }\n    }\n  }\n\n  &.form-check-reverse {\n    padding-right: $form-switch-padding-start;\n    padding-left: 0;\n\n    .form-check-input {\n      margin-right: $form-switch-padding-start * -1;\n      margin-left: 0;\n    }\n  }\n}\n\n.form-check-inline {\n  display: inline-block;\n  margin-right: $form-check-inline-margin-end;\n}\n\n.btn-check {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none;\n\n  &[disabled],\n  &:disabled {\n    + .btn {\n      pointer-events: none;\n      filter: none;\n      opacity: $form-check-btn-check-disabled-opacity;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/forms/_form-control.scss",
    "content": "//\n// General form controls (plus a few specific high-level interventions)\n//\n\n.form-control {\n  display: block;\n  width: 100%;\n  padding: $input-padding-y $input-padding-x;\n  font-family: $input-font-family;\n  @include font-size($input-font-size);\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n  background-color: $input-bg;\n  background-clip: padding-box;\n  border: $input-border-width solid $input-border-color;\n  appearance: none; // Fix appearance for date inputs in Safari\n\n  // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.\n  @include border-radius($input-border-radius, 0);\n\n  @include box-shadow($input-box-shadow);\n  @include transition($input-transition);\n\n  &[type=\"file\"] {\n    overflow: hidden; // prevent pseudo element button overlap\n\n    &:not(:disabled):not([readonly]) {\n      cursor: pointer;\n    }\n  }\n\n  // Customize the `:focus` state to imitate native WebKit styles.\n  &:focus {\n    color: $input-focus-color;\n    background-color: $input-focus-bg;\n    border-color: $input-focus-border-color;\n    outline: 0;\n    @if $enable-shadows {\n      @include box-shadow($input-box-shadow, $input-focus-box-shadow);\n    } @else {\n      // Avoid using mixin so we can pass custom focus shadow properly\n      box-shadow: $input-focus-box-shadow;\n    }\n  }\n\n  // Add some height to date inputs on iOS\n  // https://github.com/twbs/bootstrap/issues/23307\n  // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved\n  &::-webkit-date-and-time-value {\n    // Multiply line-height by 1em if it has no unit\n    height: if(unit($input-line-height) == \"\", $input-line-height * 1em, $input-line-height);\n  }\n\n  // Placeholder\n  &::placeholder {\n    color: $input-placeholder-color;\n    // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n    opacity: 1;\n  }\n\n  // Disabled inputs\n  //\n  // HTML5 says that controls under a fieldset > legend:first-child won't be\n  // disabled if the fieldset is disabled. Due to implementation difficulty, we\n  // don't honor that edge case; we style them as disabled anyway.\n  &:disabled {\n    color: $input-disabled-color;\n    background-color: $input-disabled-bg;\n    border-color: $input-disabled-border-color;\n    // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n    opacity: 1;\n  }\n\n  // File input buttons theming\n  &::file-selector-button {\n    padding: $input-padding-y $input-padding-x;\n    margin: (-$input-padding-y) (-$input-padding-x);\n    margin-inline-end: $input-padding-x;\n    color: $form-file-button-color;\n    @include gradient-bg($form-file-button-bg);\n    pointer-events: none;\n    border-color: inherit;\n    border-style: solid;\n    border-width: 0;\n    border-inline-end-width: $input-border-width;\n    border-radius: 0; // stylelint-disable-line property-disallowed-list\n    @include transition($btn-transition);\n  }\n\n  &:hover:not(:disabled):not([readonly])::file-selector-button {\n    background-color: $form-file-button-hover-bg;\n  }\n}\n\n// Readonly controls as plain text\n//\n// Apply class to a readonly input to make it appear like regular plain\n// text (without any border, background color, focus indicator)\n\n.form-control-plaintext {\n  display: block;\n  width: 100%;\n  padding: $input-padding-y 0;\n  margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n  line-height: $input-line-height;\n  color: $input-plaintext-color;\n  background-color: transparent;\n  border: solid transparent;\n  border-width: $input-border-width 0;\n\n  &:focus {\n    outline: 0;\n  }\n\n  &.form-control-sm,\n  &.form-control-lg {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// Repeated in `_input_group.scss` to avoid Sass extend issues.\n\n.form-control-sm {\n  min-height: $input-height-sm;\n  padding: $input-padding-y-sm $input-padding-x-sm;\n  @include font-size($input-font-size-sm);\n  @include border-radius($input-border-radius-sm);\n\n  &::file-selector-button {\n    padding: $input-padding-y-sm $input-padding-x-sm;\n    margin: (-$input-padding-y-sm) (-$input-padding-x-sm);\n    margin-inline-end: $input-padding-x-sm;\n  }\n}\n\n.form-control-lg {\n  min-height: $input-height-lg;\n  padding: $input-padding-y-lg $input-padding-x-lg;\n  @include font-size($input-font-size-lg);\n  @include border-radius($input-border-radius-lg);\n\n  &::file-selector-button {\n    padding: $input-padding-y-lg $input-padding-x-lg;\n    margin: (-$input-padding-y-lg) (-$input-padding-x-lg);\n    margin-inline-end: $input-padding-x-lg;\n  }\n}\n\n// Make sure textareas don't shrink too much when resized\n// https://github.com/twbs/bootstrap/pull/29124\n// stylelint-disable selector-no-qualifying-type\ntextarea {\n  &.form-control {\n    min-height: $input-height;\n  }\n\n  &.form-control-sm {\n    min-height: $input-height-sm;\n  }\n\n  &.form-control-lg {\n    min-height: $input-height-lg;\n  }\n}\n// stylelint-enable selector-no-qualifying-type\n\n.form-control-color {\n  width: $form-color-width;\n  height: $input-height;\n  padding: $input-padding-y;\n\n  &:not(:disabled):not([readonly]) {\n    cursor: pointer;\n  }\n\n  &::-moz-color-swatch {\n    border: 0 !important; // stylelint-disable-line declaration-no-important\n    @include border-radius($input-border-radius);\n  }\n\n  &::-webkit-color-swatch {\n    @include border-radius($input-border-radius);\n  }\n\n  &.form-control-sm { height: $input-height-sm; }\n  &.form-control-lg { height: $input-height-lg; }\n}\n"
  },
  {
    "path": "lib/bootstrap5/forms/_form-range.scss",
    "content": "// Range\n//\n// Style range inputs the same across browsers. Vendor-specific rules for pseudo\n// elements cannot be mixed. As such, there are no shared styles for focus or\n// active states on prefixed selectors.\n\n.form-range {\n  width: 100%;\n  height: add($form-range-thumb-height, $form-range-thumb-focus-box-shadow-width * 2);\n  padding: 0; // Need to reset padding\n  background-color: transparent;\n  appearance: none;\n\n  &:focus {\n    outline: 0;\n\n    // Pseudo-elements must be split across multiple rulesets to have an effect.\n    // No box-shadow() mixin for focus accessibility.\n    &::-webkit-slider-thumb { box-shadow: $form-range-thumb-focus-box-shadow; }\n    &::-moz-range-thumb     { box-shadow: $form-range-thumb-focus-box-shadow; }\n  }\n\n  &::-moz-focus-outer {\n    border: 0;\n  }\n\n  &::-webkit-slider-thumb {\n    width: $form-range-thumb-width;\n    height: $form-range-thumb-height;\n    margin-top: ($form-range-track-height - $form-range-thumb-height) * .5; // Webkit specific\n    @include gradient-bg($form-range-thumb-bg);\n    border: $form-range-thumb-border;\n    @include border-radius($form-range-thumb-border-radius);\n    @include box-shadow($form-range-thumb-box-shadow);\n    @include transition($form-range-thumb-transition);\n    appearance: none;\n\n    &:active {\n      @include gradient-bg($form-range-thumb-active-bg);\n    }\n  }\n\n  &::-webkit-slider-runnable-track {\n    width: $form-range-track-width;\n    height: $form-range-track-height;\n    color: transparent; // Why?\n    cursor: $form-range-track-cursor;\n    background-color: $form-range-track-bg;\n    border-color: transparent;\n    @include border-radius($form-range-track-border-radius);\n    @include box-shadow($form-range-track-box-shadow);\n  }\n\n  &::-moz-range-thumb {\n    width: $form-range-thumb-width;\n    height: $form-range-thumb-height;\n    @include gradient-bg($form-range-thumb-bg);\n    border: $form-range-thumb-border;\n    @include border-radius($form-range-thumb-border-radius);\n    @include box-shadow($form-range-thumb-box-shadow);\n    @include transition($form-range-thumb-transition);\n    appearance: none;\n\n    &:active {\n      @include gradient-bg($form-range-thumb-active-bg);\n    }\n  }\n\n  &::-moz-range-track {\n    width: $form-range-track-width;\n    height: $form-range-track-height;\n    color: transparent;\n    cursor: $form-range-track-cursor;\n    background-color: $form-range-track-bg;\n    border-color: transparent; // Firefox specific?\n    @include border-radius($form-range-track-border-radius);\n    @include box-shadow($form-range-track-box-shadow);\n  }\n\n  &:disabled {\n    pointer-events: none;\n\n    &::-webkit-slider-thumb {\n      background-color: $form-range-thumb-disabled-bg;\n    }\n\n    &::-moz-range-thumb {\n      background-color: $form-range-thumb-disabled-bg;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/forms/_form-select.scss",
    "content": "// Select\n//\n// Replaces the browser default select with a custom one, mostly pulled from\n// https://primer.github.io/.\n\n.form-select {\n  display: block;\n  width: 100%;\n  padding: $form-select-padding-y $form-select-indicator-padding $form-select-padding-y $form-select-padding-x;\n  -moz-padding-start: subtract($form-select-padding-x, 3px); // See https://github.com/twbs/bootstrap/issues/32636\n  font-family: $form-select-font-family;\n  @include font-size($form-select-font-size);\n  font-weight: $form-select-font-weight;\n  line-height: $form-select-line-height;\n  color: $form-select-color;\n  background-color: $form-select-bg;\n  background-image: escape-svg($form-select-indicator);\n  background-repeat: no-repeat;\n  background-position: $form-select-bg-position;\n  background-size: $form-select-bg-size;\n  border: $form-select-border-width solid $form-select-border-color;\n  @include border-radius($form-select-border-radius, 0);\n  @include box-shadow($form-select-box-shadow);\n  @include transition($form-select-transition);\n  appearance: none;\n\n  &:focus {\n    border-color: $form-select-focus-border-color;\n    outline: 0;\n    @if $enable-shadows {\n      @include box-shadow($form-select-box-shadow, $form-select-focus-box-shadow);\n    } @else {\n      // Avoid using mixin so we can pass custom focus shadow properly\n      box-shadow: $form-select-focus-box-shadow;\n    }\n  }\n\n  &[multiple],\n  &[size]:not([size=\"1\"]) {\n    padding-right: $form-select-padding-x;\n    background-image: none;\n  }\n\n  &:disabled {\n    color: $form-select-disabled-color;\n    background-color: $form-select-disabled-bg;\n    border-color: $form-select-disabled-border-color;\n  }\n\n  // Remove outline from select box in FF\n  &:-moz-focusring {\n    color: transparent;\n    text-shadow: 0 0 0 $form-select-color;\n  }\n}\n\n.form-select-sm {\n  padding-top: $form-select-padding-y-sm;\n  padding-bottom: $form-select-padding-y-sm;\n  padding-left: $form-select-padding-x-sm;\n  @include font-size($form-select-font-size-sm);\n  @include border-radius($form-select-border-radius-sm);\n}\n\n.form-select-lg {\n  padding-top: $form-select-padding-y-lg;\n  padding-bottom: $form-select-padding-y-lg;\n  padding-left: $form-select-padding-x-lg;\n  @include font-size($form-select-font-size-lg);\n  @include border-radius($form-select-border-radius-lg);\n}\n"
  },
  {
    "path": "lib/bootstrap5/forms/_form-text.scss",
    "content": "//\n// Form text\n//\n\n.form-text {\n  margin-top: $form-text-margin-top;\n  @include font-size($form-text-font-size);\n  font-style: $form-text-font-style;\n  font-weight: $form-text-font-weight;\n  color: $form-text-color;\n}\n"
  },
  {
    "path": "lib/bootstrap5/forms/_input-group.scss",
    "content": "//\n// Base styles\n//\n\n.input-group {\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; // For form validation feedback\n  align-items: stretch;\n  width: 100%;\n\n  > .form-control,\n  > .form-select,\n  > .form-floating {\n    position: relative; // For focus state's z-index\n    flex: 1 1 auto;\n    width: 1%;\n    min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size\n  }\n\n  // Bring the \"active\" form control to the top of surrounding elements\n  > .form-control:focus,\n  > .form-select:focus,\n  > .form-floating:focus-within {\n    z-index: 5;\n  }\n\n  // Ensure buttons are always above inputs for more visually pleasing borders.\n  // This isn't needed for `.input-group-text` since it shares the same border-color\n  // as our inputs.\n  .btn {\n    position: relative;\n    z-index: 2;\n\n    &:focus {\n      z-index: 5;\n    }\n  }\n}\n\n\n// Textual addons\n//\n// Serves as a catch-all element for any text or radio/checkbox input you wish\n// to prepend or append to an input.\n\n.input-group-text {\n  display: flex;\n  align-items: center;\n  padding: $input-group-addon-padding-y $input-group-addon-padding-x;\n  @include font-size($input-font-size); // Match inputs\n  font-weight: $input-group-addon-font-weight;\n  line-height: $input-line-height;\n  color: $input-group-addon-color;\n  text-align: center;\n  white-space: nowrap;\n  background-color: $input-group-addon-bg;\n  border: $input-border-width solid $input-group-addon-border-color;\n  @include border-radius($input-border-radius);\n}\n\n\n// Sizing\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .form-select,\n.input-group-lg > .input-group-text,\n.input-group-lg > .btn {\n  padding: $input-padding-y-lg $input-padding-x-lg;\n  @include font-size($input-font-size-lg);\n  @include border-radius($input-border-radius-lg);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .form-select,\n.input-group-sm > .input-group-text,\n.input-group-sm > .btn {\n  padding: $input-padding-y-sm $input-padding-x-sm;\n  @include font-size($input-font-size-sm);\n  @include border-radius($input-border-radius-sm);\n}\n\n.input-group-lg > .form-select,\n.input-group-sm > .form-select {\n  padding-right: $form-select-padding-x + $form-select-indicator-padding;\n}\n\n\n// Rounded corners\n//\n// These rulesets must come after the sizing ones to properly override sm and lg\n// border-radius values when extending. They're more specific than we'd like\n// with the `.input-group >` part, but without it, we cannot override the sizing.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.input-group {\n  &:not(.has-validation) {\n    > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),\n    > .dropdown-toggle:nth-last-child(n + 3),\n    > .form-floating:not(:last-child) > .form-control,\n    > .form-floating:not(:last-child) > .form-select {\n      @include border-end-radius(0);\n    }\n  }\n\n  &.has-validation {\n    > :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),\n    > .dropdown-toggle:nth-last-child(n + 4),\n    > .form-floating:nth-last-child(n + 3) > .form-control,\n    > .form-floating:nth-last-child(n + 3) > .form-select {\n      @include border-end-radius(0);\n    }\n  }\n\n  $validation-messages: \"\";\n  @each $state in map-keys($form-validation-states) {\n    $validation-messages: $validation-messages + \":not(.\" + unquote($state) + \"-tooltip)\" + \":not(.\" + unquote($state) + \"-feedback)\";\n  }\n\n  > :not(:first-child):not(.dropdown-menu)#{$validation-messages} {\n    margin-left: -$input-border-width;\n    @include border-start-radius(0);\n  }\n\n  > .form-floating:not(:first-child) > .form-control,\n  > .form-floating:not(:first-child) > .form-select {\n    @include border-start-radius(0);\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/forms/_labels.scss",
    "content": "//\n// Labels\n//\n\n.form-label {\n  margin-bottom: $form-label-margin-bottom;\n  @include font-size($form-label-font-size);\n  font-style: $form-label-font-style;\n  font-weight: $form-label-font-weight;\n  color: $form-label-color;\n}\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n  padding-top: add($input-padding-y, $input-border-width);\n  padding-bottom: add($input-padding-y, $input-border-width);\n  margin-bottom: 0; // Override the `<legend>` default\n  @include font-size(inherit); // Override the `<legend>` default\n  font-style: $form-label-font-style;\n  font-weight: $form-label-font-weight;\n  line-height: $input-line-height;\n  color: $form-label-color;\n}\n\n.col-form-label-lg {\n  padding-top: add($input-padding-y-lg, $input-border-width);\n  padding-bottom: add($input-padding-y-lg, $input-border-width);\n  @include font-size($input-font-size-lg);\n}\n\n.col-form-label-sm {\n  padding-top: add($input-padding-y-sm, $input-border-width);\n  padding-bottom: add($input-padding-y-sm, $input-border-width);\n  @include font-size($input-font-size-sm);\n}\n"
  },
  {
    "path": "lib/bootstrap5/forms/_validation.scss",
    "content": "// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid. Works\n// primarily for client-side validation via scoped `:invalid` and `:valid`\n// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for\n// server-side validation.\n\n// scss-docs-start form-validation-states-loop\n@each $state, $data in $form-validation-states {\n  @include form-validation-state($state, $data...);\n}\n// scss-docs-end form-validation-states-loop\n"
  },
  {
    "path": "lib/bootstrap5/helpers/_clearfix.scss",
    "content": ".clearfix {\n  @include clearfix();\n}\n"
  },
  {
    "path": "lib/bootstrap5/helpers/_color-bg.scss",
    "content": "// stylelint-disable function-name-case\n\n// All-caps `RGBA()` function used because of this Sass bug: https://github.com/sass/node-sass/issues/2251\n@each $color, $value in $theme-colors {\n  $color-rgb: to-rgb($value);\n  .text-bg-#{$color} {\n    color: color-contrast($value) if($enable-important-utilities, !important, null);\n    background-color: RGBA($color-rgb, var(--#{$prefix}bg-opacity, 1)) if($enable-important-utilities, !important, null);\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/helpers/_colored-links.scss",
    "content": "@each $color, $value in $theme-colors {\n  .link-#{$color} {\n    color: $value !important; // stylelint-disable-line declaration-no-important\n\n    @if $link-shade-percentage != 0 {\n      &:hover,\n      &:focus {\n        color: if(color-contrast($value) == $color-contrast-light, shade-color($value, $link-shade-percentage), tint-color($value, $link-shade-percentage)) !important; // stylelint-disable-line declaration-no-important\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/helpers/_position.scss",
    "content": "// Shorthand\n\n.fixed-top {\n  position: fixed;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: $zindex-fixed;\n}\n\n.fixed-bottom {\n  position: fixed;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $zindex-fixed;\n}\n\n// Responsive sticky top and bottom\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .sticky#{$infix}-top {\n      position: sticky;\n      top: 0;\n      z-index: $zindex-sticky;\n    }\n\n    .sticky#{$infix}-bottom {\n      position: sticky;\n      bottom: 0;\n      z-index: $zindex-sticky;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/helpers/_ratio.scss",
    "content": "// Credit: Nicolas Gallagher and SUIT CSS.\n\n.ratio {\n  position: relative;\n  width: 100%;\n\n  &::before {\n    display: block;\n    padding-top: var(--#{$prefix}aspect-ratio);\n    content: \"\";\n  }\n\n  > * {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n  }\n}\n\n@each $key, $ratio in $aspect-ratios {\n  .ratio-#{$key} {\n    --#{$prefix}aspect-ratio: #{$ratio};\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/helpers/_stacks.scss",
    "content": "// scss-docs-start stacks\n.hstack {\n  display: flex;\n  flex-direction: row;\n  align-items: center;\n  align-self: stretch;\n}\n\n.vstack {\n  display: flex;\n  flex: 1 1 auto;\n  flex-direction: column;\n  align-self: stretch;\n}\n// scss-docs-end stacks\n"
  },
  {
    "path": "lib/bootstrap5/helpers/_stretched-link.scss",
    "content": "//\n// Stretched link\n//\n\n.stretched-link {\n  &::#{$stretched-link-pseudo-element} {\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    z-index: $stretched-link-z-index;\n    content: \"\";\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/helpers/_text-truncation.scss",
    "content": "//\n// Text truncation\n//\n\n.text-truncate {\n  @include text-truncate();\n}\n"
  },
  {
    "path": "lib/bootstrap5/helpers/_visually-hidden.scss",
    "content": "//\n// Visually hidden\n//\n\n.visually-hidden,\n.visually-hidden-focusable:not(:focus):not(:focus-within) {\n  @include visually-hidden();\n}\n"
  },
  {
    "path": "lib/bootstrap5/helpers/_vr.scss",
    "content": ".vr {\n  display: inline-block;\n  align-self: stretch;\n  width: 1px;\n  min-height: 1em;\n  background-color: currentcolor;\n  opacity: $hr-opacity;\n}\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_alert.scss",
    "content": "// scss-docs-start alert-variant-mixin\n@mixin alert-variant($background, $border, $color) {\n  --#{$prefix}alert-color: #{$color};\n  --#{$prefix}alert-bg: #{$background};\n  --#{$prefix}alert-border-color: #{$border};\n\n  @if $enable-gradients {\n    background-image: var(--#{$prefix}gradient);\n  }\n\n  .alert-link {\n    color: shade-color($color, 20%);\n  }\n}\n// scss-docs-end alert-variant-mixin\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_backdrop.scss",
    "content": "// Shared between modals and offcanvases\n@mixin overlay-backdrop($zindex, $backdrop-bg, $backdrop-opacity) {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: $zindex;\n  width: 100vw;\n  height: 100vh;\n  background-color: $backdrop-bg;\n\n  // Fade for backdrop\n  &.fade { opacity: 0; }\n  &.show { opacity: $backdrop-opacity; }\n}\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_banner.scss",
    "content": "@mixin bsBanner($file) {\n  /*!\n   * Bootstrap #{$file} v5.2.3 (https://getbootstrap.com/)\n   * Copyright 2011-2022 The Bootstrap Authors\n   * Copyright 2011-2022 Twitter, Inc.\n   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n   */\n}\n\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_border-radius.scss",
    "content": "// stylelint-disable property-disallowed-list\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n  $return: ();\n  @each $value in $radius {\n    @if type-of($value) == number {\n      $return: append($return, max($value, 0));\n    } @else {\n      $return: append($return, $value);\n    }\n  }\n  @return $return;\n}\n\n// scss-docs-start border-radius-mixins\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n  @if $enable-rounded {\n    border-radius: valid-radius($radius);\n  }\n  @else if $fallback-border-radius != false {\n    border-radius: $fallback-border-radius;\n  }\n}\n\n@mixin border-top-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-top-left-radius: valid-radius($radius);\n    border-top-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-end-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-top-right-radius: valid-radius($radius);\n    border-bottom-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-bottom-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-bottom-right-radius: valid-radius($radius);\n    border-bottom-left-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-start-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-top-left-radius: valid-radius($radius);\n    border-bottom-left-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-top-start-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-top-left-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-top-end-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-top-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-bottom-end-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-bottom-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-bottom-start-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-bottom-left-radius: valid-radius($radius);\n  }\n}\n// scss-docs-end border-radius-mixins\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_box-shadow.scss",
    "content": "@mixin box-shadow($shadow...) {\n  @if $enable-shadows {\n    $result: ();\n\n    @each $value in $shadow {\n      @if $value != null {\n        $result: append($result, $value, \"comma\");\n      }\n      @if $value == none and length($shadow) > 1 {\n        @warn \"The keyword 'none' must be used as a single argument.\";\n      }\n    }\n\n    @if (length($result) > 0) {\n      box-shadow: $result;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_breakpoints.scss",
    "content": "// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n//    (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n//    >> breakpoint-next(sm)\n//    md\n//    >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n//    md\n//    >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl xxl))\n//    md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n  $n: index($breakpoint-names, $name);\n  @if not $n {\n    @error \"breakpoint `#{$name}` not found in `#{$breakpoints}`\";\n  }\n  @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n//    >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n//    576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n  $min: map-get($breakpoints, $name);\n  @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n//    >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n//    767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n  $max: map-get($breakpoints, $name);\n  @return if($max and $max > 0, $max - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n//    >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n//    \"\"  (Returns a blank string)\n//    >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n//    \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n  @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  @if $min {\n    @media (min-width: $min) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n  $max: breakpoint-max($name, $breakpoints);\n  @if $max {\n    @media (max-width: $max) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($lower, $breakpoints);\n  $max: breakpoint-max($upper, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($lower, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($upper, $breakpoints) {\n      @content;\n    }\n  }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n  $min:  breakpoint-min($name, $breakpoints);\n  $next: breakpoint-next($name, $breakpoints);\n  $max:  breakpoint-max($next, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($name, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($next, $breakpoints) {\n      @content;\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_buttons.scss",
    "content": "// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n// scss-docs-start btn-variant-mixin\n@mixin button-variant(\n  $background,\n  $border,\n  $color: color-contrast($background),\n  $hover-background: if($color == $color-contrast-light, shade-color($background, $btn-hover-bg-shade-amount), tint-color($background, $btn-hover-bg-tint-amount)),\n  $hover-border: if($color == $color-contrast-light, shade-color($border, $btn-hover-border-shade-amount), tint-color($border, $btn-hover-border-tint-amount)),\n  $hover-color: color-contrast($hover-background),\n  $active-background: if($color == $color-contrast-light, shade-color($background, $btn-active-bg-shade-amount), tint-color($background, $btn-active-bg-tint-amount)),\n  $active-border: if($color == $color-contrast-light, shade-color($border, $btn-active-border-shade-amount), tint-color($border, $btn-active-border-tint-amount)),\n  $active-color: color-contrast($active-background),\n  $disabled-background: $background,\n  $disabled-border: $border,\n  $disabled-color: color-contrast($disabled-background)\n) {\n  --#{$prefix}btn-color: #{$color};\n  --#{$prefix}btn-bg: #{$background};\n  --#{$prefix}btn-border-color: #{$border};\n  --#{$prefix}btn-hover-color: #{$hover-color};\n  --#{$prefix}btn-hover-bg: #{$hover-background};\n  --#{$prefix}btn-hover-border-color: #{$hover-border};\n  --#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix($color, $border, 15%))};\n  --#{$prefix}btn-active-color: #{$active-color};\n  --#{$prefix}btn-active-bg: #{$active-background};\n  --#{$prefix}btn-active-border-color: #{$active-border};\n  --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow};\n  --#{$prefix}btn-disabled-color: #{$disabled-color};\n  --#{$prefix}btn-disabled-bg: #{$disabled-background};\n  --#{$prefix}btn-disabled-border-color: #{$disabled-border};\n}\n// scss-docs-end btn-variant-mixin\n\n// scss-docs-start btn-outline-variant-mixin\n@mixin button-outline-variant(\n  $color,\n  $color-hover: color-contrast($color),\n  $active-background: $color,\n  $active-border: $color,\n  $active-color: color-contrast($active-background)\n) {\n  --#{$prefix}btn-color: #{$color};\n  --#{$prefix}btn-border-color: #{$color};\n  --#{$prefix}btn-hover-color: #{$color-hover};\n  --#{$prefix}btn-hover-bg: #{$active-background};\n  --#{$prefix}btn-hover-border-color: #{$active-border};\n  --#{$prefix}btn-focus-shadow-rgb: #{to-rgb($color)};\n  --#{$prefix}btn-active-color: #{$active-color};\n  --#{$prefix}btn-active-bg: #{$active-background};\n  --#{$prefix}btn-active-border-color: #{$active-border};\n  --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow};\n  --#{$prefix}btn-disabled-color: #{$color};\n  --#{$prefix}btn-disabled-bg: transparent;\n  --#{$prefix}btn-disabled-border-color: #{$color};\n  --#{$prefix}gradient: none;\n}\n// scss-docs-end btn-outline-variant-mixin\n\n// scss-docs-start btn-size-mixin\n@mixin button-size($padding-y, $padding-x, $font-size, $border-radius) {\n  --#{$prefix}btn-padding-y: #{$padding-y};\n  --#{$prefix}btn-padding-x: #{$padding-x};\n  @include rfs($font-size, --#{$prefix}btn-font-size);\n  --#{$prefix}btn-border-radius: #{$border-radius};\n}\n// scss-docs-end btn-size-mixin\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_caret.scss",
    "content": "// scss-docs-start caret-mixins\n@mixin caret-down {\n  border-top: $caret-width solid;\n  border-right: $caret-width solid transparent;\n  border-bottom: 0;\n  border-left: $caret-width solid transparent;\n}\n\n@mixin caret-up {\n  border-top: 0;\n  border-right: $caret-width solid transparent;\n  border-bottom: $caret-width solid;\n  border-left: $caret-width solid transparent;\n}\n\n@mixin caret-end {\n  border-top: $caret-width solid transparent;\n  border-right: 0;\n  border-bottom: $caret-width solid transparent;\n  border-left: $caret-width solid;\n}\n\n@mixin caret-start {\n  border-top: $caret-width solid transparent;\n  border-right: $caret-width solid;\n  border-bottom: $caret-width solid transparent;\n}\n\n@mixin caret($direction: down) {\n  @if $enable-caret {\n    &::after {\n      display: inline-block;\n      margin-left: $caret-spacing;\n      vertical-align: $caret-vertical-align;\n      content: \"\";\n      @if $direction == down {\n        @include caret-down();\n      } @else if $direction == up {\n        @include caret-up();\n      } @else if $direction == end {\n        @include caret-end();\n      }\n    }\n\n    @if $direction == start {\n      &::after {\n        display: none;\n      }\n\n      &::before {\n        display: inline-block;\n        margin-right: $caret-spacing;\n        vertical-align: $caret-vertical-align;\n        content: \"\";\n        @include caret-start();\n      }\n    }\n\n    &:empty::after {\n      margin-left: 0;\n    }\n  }\n}\n// scss-docs-end caret-mixins\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_clearfix.scss",
    "content": "// scss-docs-start clearfix\n@mixin clearfix() {\n  &::after {\n    display: block;\n    clear: both;\n    content: \"\";\n  }\n}\n// scss-docs-end clearfix\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_color-scheme.scss",
    "content": "// scss-docs-start mixin-color-scheme\n@mixin color-scheme($name) {\n  @media (prefers-color-scheme: #{$name}) {\n    @content;\n  }\n}\n// scss-docs-end mixin-color-scheme\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_container.scss",
    "content": "// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n  --#{$prefix}gutter-x: #{$gutter};\n  --#{$prefix}gutter-y: 0;\n  width: 100%;\n  padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n  padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n  margin-right: auto;\n  margin-left: auto;\n}\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_deprecate.scss",
    "content": "// Deprecate mixin\n//\n// This mixin can be used to deprecate mixins or functions.\n// `$enable-deprecation-messages` is a global variable, `$ignore-warning` is a variable that can be passed to\n// some deprecated mixins to suppress the warning (for example if the mixin is still be used in the current version of Bootstrap)\n@mixin deprecate($name, $deprecate-version, $remove-version, $ignore-warning: false) {\n  @if ($enable-deprecation-messages != false and $ignore-warning != true) {\n    @warn \"#{$name} has been deprecated as of #{$deprecate-version}. It will be removed entirely in #{$remove-version}.\";\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_forms.scss",
    "content": "// This mixin uses an `if()` technique to be compatible with Dart Sass\n// See https://github.com/sass/sass/issues/1873#issuecomment-152293725 for more details\n\n// scss-docs-start form-validation-mixins\n@mixin form-validation-state-selector($state) {\n  @if ($state == \"valid\" or $state == \"invalid\") {\n    .was-validated #{if(&, \"&\", \"\")}:#{$state},\n    #{if(&, \"&\", \"\")}.is-#{$state} {\n      @content;\n    }\n  } @else {\n    #{if(&, \"&\", \"\")}.is-#{$state} {\n      @content;\n    }\n  }\n}\n\n@mixin form-validation-state(\n  $state,\n  $color,\n  $icon,\n  $tooltip-color: color-contrast($color),\n  $tooltip-bg-color: rgba($color, $form-feedback-tooltip-opacity),\n  $focus-box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba($color, $input-btn-focus-color-opacity)\n) {\n  .#{$state}-feedback {\n    display: none;\n    width: 100%;\n    margin-top: $form-feedback-margin-top;\n    @include font-size($form-feedback-font-size);\n    font-style: $form-feedback-font-style;\n    color: $color;\n  }\n\n  .#{$state}-tooltip {\n    position: absolute;\n    top: 100%;\n    z-index: 5;\n    display: none;\n    max-width: 100%; // Contain to parent when possible\n    padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;\n    margin-top: .1rem;\n    @include font-size($form-feedback-tooltip-font-size);\n    line-height: $form-feedback-tooltip-line-height;\n    color: $tooltip-color;\n    background-color: $tooltip-bg-color;\n    @include border-radius($form-feedback-tooltip-border-radius);\n  }\n\n  @include form-validation-state-selector($state) {\n    ~ .#{$state}-feedback,\n    ~ .#{$state}-tooltip {\n      display: block;\n    }\n  }\n\n  .form-control {\n    @include form-validation-state-selector($state) {\n      border-color: $color;\n\n      @if $enable-validation-icons {\n        padding-right: $input-height-inner;\n        background-image: escape-svg($icon);\n        background-repeat: no-repeat;\n        background-position: right $input-height-inner-quarter center;\n        background-size: $input-height-inner-half $input-height-inner-half;\n      }\n\n      &:focus {\n        border-color: $color;\n        box-shadow: $focus-box-shadow;\n      }\n    }\n  }\n\n  // stylelint-disable-next-line selector-no-qualifying-type\n  textarea.form-control {\n    @include form-validation-state-selector($state) {\n      @if $enable-validation-icons {\n        padding-right: $input-height-inner;\n        background-position: top $input-height-inner-quarter right $input-height-inner-quarter;\n      }\n    }\n  }\n\n  .form-select {\n    @include form-validation-state-selector($state) {\n      border-color: $color;\n\n      @if $enable-validation-icons {\n        &:not([multiple]):not([size]),\n        &:not([multiple])[size=\"1\"] {\n          padding-right: $form-select-feedback-icon-padding-end;\n          background-image: escape-svg($form-select-indicator), escape-svg($icon);\n          background-position: $form-select-bg-position, $form-select-feedback-icon-position;\n          background-size: $form-select-bg-size, $form-select-feedback-icon-size;\n        }\n      }\n\n      &:focus {\n        border-color: $color;\n        box-shadow: $focus-box-shadow;\n      }\n    }\n  }\n\n  .form-control-color {\n    @include form-validation-state-selector($state) {\n      @if $enable-validation-icons {\n        width: add($form-color-width, $input-height-inner);\n      }\n    }\n  }\n\n  .form-check-input {\n    @include form-validation-state-selector($state) {\n      border-color: $color;\n\n      &:checked {\n        background-color: $color;\n      }\n\n      &:focus {\n        box-shadow: $focus-box-shadow;\n      }\n\n      ~ .form-check-label {\n        color: $color;\n      }\n    }\n  }\n  .form-check-inline .form-check-input {\n    ~ .#{$state}-feedback {\n      margin-left: .5em;\n    }\n  }\n\n  .input-group {\n    > .form-control:not(:focus),\n    > .form-select:not(:focus),\n    > .form-floating:not(:focus-within) {\n      @include form-validation-state-selector($state) {\n        @if $state == \"valid\" {\n          z-index: 3;\n        } @else if $state == \"invalid\" {\n          z-index: 4;\n        }\n      }\n    }\n  }\n}\n// scss-docs-end form-validation-mixins\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_gradients.scss",
    "content": "// Gradients\n\n// scss-docs-start gradient-bg-mixin\n@mixin gradient-bg($color: null) {\n  background-color: $color;\n\n  @if $enable-gradients {\n    background-image: var(--#{$prefix}gradient);\n  }\n}\n// scss-docs-end gradient-bg-mixin\n\n// scss-docs-start gradient-mixins\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n  background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: null, $end-percent: null) {\n  background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n}\n\n@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {\n  background-image: linear-gradient($deg, $start-color, $end-color);\n}\n\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n  background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n}\n\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n  background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n}\n\n@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {\n  background-image: radial-gradient(circle, $inner-color, $outer-color);\n}\n\n@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {\n  background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n// scss-docs-end gradient-mixins\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_grid.scss",
    "content": "// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter: $grid-gutter-width) {\n  --#{$prefix}gutter-x: #{$gutter};\n  --#{$prefix}gutter-y: 0;\n  display: flex;\n  flex-wrap: wrap;\n  // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n  margin-top: calc(-1 * var(--#{$prefix}gutter-y)); // stylelint-disable-line function-disallowed-list\n  margin-right: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n  margin-left: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n}\n\n@mixin make-col-ready() {\n  // Add box sizing if only the grid is loaded\n  box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);\n  // Prevent columns from becoming too narrow when at smaller grid tiers by\n  // always setting `width: 100%;`. This works because we set the width\n  // later on to override this initial width.\n  flex-shrink: 0;\n  width: 100%;\n  max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n  padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n  padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n  margin-top: var(--#{$prefix}gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n  @if $size {\n    flex: 0 0 auto;\n    width: percentage(divide($size, $columns));\n\n  } @else {\n    flex: 1 1 0;\n    max-width: 100%;\n  }\n}\n\n@mixin make-col-auto() {\n  flex: 0 0 auto;\n  width: auto;\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n  $num: divide($size, $columns);\n  margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// number of columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n  > * {\n    flex: 0 0 auto;\n    width: divide(100%, $count);\n  }\n}\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n  @each $breakpoint in map-keys($breakpoints) {\n    $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n    @include media-breakpoint-up($breakpoint, $breakpoints) {\n      // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n      .col#{$infix} {\n        flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n      }\n\n      .row-cols#{$infix}-auto > * {\n        @include make-col-auto();\n      }\n\n      @if $grid-row-columns > 0 {\n        @for $i from 1 through $grid-row-columns {\n          .row-cols#{$infix}-#{$i} {\n            @include row-cols($i);\n          }\n        }\n      }\n\n      .col#{$infix}-auto {\n        @include make-col-auto();\n      }\n\n      @if $columns > 0 {\n        @for $i from 1 through $columns {\n          .col#{$infix}-#{$i} {\n            @include make-col($i, $columns);\n          }\n        }\n\n        // `$columns - 1` because offsetting by the width of an entire row isn't possible\n        @for $i from 0 through ($columns - 1) {\n          @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n            .offset#{$infix}-#{$i} {\n              @include make-col-offset($i, $columns);\n            }\n          }\n        }\n      }\n\n      // Gutters\n      //\n      // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n      @each $key, $value in $gutters {\n        .g#{$infix}-#{$key},\n        .gx#{$infix}-#{$key} {\n          --#{$prefix}gutter-x: #{$value};\n        }\n\n        .g#{$infix}-#{$key},\n        .gy#{$infix}-#{$key} {\n          --#{$prefix}gutter-y: #{$value};\n        }\n      }\n    }\n  }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {\n  @each $breakpoint in map-keys($breakpoints) {\n    $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n    @include media-breakpoint-up($breakpoint, $breakpoints) {\n      @if $columns > 0 {\n        @for $i from 1 through $columns {\n          .g-col#{$infix}-#{$i} {\n            grid-column: auto / span $i;\n          }\n        }\n\n        // Start with `1` because `0` is and invalid value.\n        // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n        @for $i from 1 through ($columns - 1) {\n          .g-start#{$infix}-#{$i} {\n            grid-column-start: $i;\n          }\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_image.scss",
    "content": "// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid {\n  // Part 1: Set a maximum relative to the parent\n  max-width: 100%;\n  // Part 2: Override the height to auto, otherwise images will be stretched\n  // when setting a width and height attribute on the img element.\n  height: auto;\n}\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_list-group.scss",
    "content": "// List Groups\n\n// scss-docs-start list-group-mixin\n@mixin list-group-item-variant($state, $background, $color) {\n  .list-group-item-#{$state} {\n    color: $color;\n    background-color: $background;\n\n    &.list-group-item-action {\n      &:hover,\n      &:focus {\n        color: $color;\n        background-color: shade-color($background, 10%);\n      }\n\n      &.active {\n        color: $white;\n        background-color: $color;\n        border-color: $color;\n      }\n    }\n  }\n}\n// scss-docs-end list-group-mixin\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_lists.scss",
    "content": "// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_pagination.scss",
    "content": "// Pagination\n\n// scss-docs-start pagination-mixin\n@mixin pagination-size($padding-y, $padding-x, $font-size, $border-radius) {\n  --#{$prefix}pagination-padding-x: #{$padding-x};\n  --#{$prefix}pagination-padding-y: #{$padding-y};\n  @include rfs($font-size, --#{$prefix}pagination-font-size);\n  --#{$prefix}pagination-border-radius: #{$border-radius};\n}\n// scss-docs-end pagination-mixin\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_reset-text.scss",
    "content": "@mixin reset-text {\n  font-family: $font-family-base;\n  // We deliberately do NOT reset font-size or overflow-wrap / word-wrap.\n  font-style: normal;\n  font-weight: $font-weight-normal;\n  line-height: $line-height-base;\n  text-align: left; // Fallback for where `start` is not supported\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  white-space: normal;\n  word-spacing: normal;\n  line-break: auto;\n}\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_resize.scss",
    "content": "// Resize anything\n\n@mixin resizable($direction) {\n  overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`\n  resize: $direction; // Options: horizontal, vertical, both\n}\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_table-variants.scss",
    "content": "// scss-docs-start table-variant\n@mixin table-variant($state, $background) {\n  .table-#{$state} {\n    $color: color-contrast(opaque($body-bg, $background));\n    $hover-bg: mix($color, $background, percentage($table-hover-bg-factor));\n    $striped-bg: mix($color, $background, percentage($table-striped-bg-factor));\n    $active-bg: mix($color, $background, percentage($table-active-bg-factor));\n    $table-border-color: mix($color, $background, percentage($table-border-factor));\n\n    --#{$prefix}table-color: #{$color};\n    --#{$prefix}table-bg: #{$background};\n    --#{$prefix}table-border-color: #{$table-border-color};\n    --#{$prefix}table-striped-bg: #{$striped-bg};\n    --#{$prefix}table-striped-color: #{color-contrast($striped-bg)};\n    --#{$prefix}table-active-bg: #{$active-bg};\n    --#{$prefix}table-active-color: #{color-contrast($active-bg)};\n    --#{$prefix}table-hover-bg: #{$hover-bg};\n    --#{$prefix}table-hover-color: #{color-contrast($hover-bg)};\n\n    color: var(--#{$prefix}table-color);\n    border-color: var(--#{$prefix}table-border-color);\n  }\n}\n// scss-docs-end table-variant\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_text-truncate.scss",
    "content": "// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_transition.scss",
    "content": "// stylelint-disable property-disallowed-list\n@mixin transition($transition...) {\n  @if length($transition) == 0 {\n    $transition: $transition-base;\n  }\n\n  @if length($transition) > 1 {\n    @each $value in $transition {\n      @if $value == null or $value == none {\n        @warn \"The keyword 'none' or 'null' must be used as a single argument.\";\n      }\n    }\n  }\n\n  @if $enable-transitions {\n    @if nth($transition, 1) != null {\n      transition: $transition;\n    }\n\n    @if $enable-reduced-motion and nth($transition, 1) != null and nth($transition, 1) != none {\n      @media (prefers-reduced-motion: reduce) {\n        transition: none;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_utilities.scss",
    "content": "// Utility generator\n// Used to generate utilities & print utilities\n@mixin generate-utility($utility, $infix, $is-rfs-media-query: false) {\n  $values: map-get($utility, values);\n\n  // If the values are a list or string, convert it into a map\n  @if type-of($values) == \"string\" or type-of(nth($values, 1)) != \"list\" {\n    $values: zip($values, $values);\n  }\n\n  @each $key, $value in $values {\n    $properties: map-get($utility, property);\n\n    // Multiple properties are possible, for example with vertical or horizontal margins or paddings\n    @if type-of($properties) == \"string\" {\n      $properties: append((), $properties);\n    }\n\n    // Use custom class if present\n    $property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1));\n    $property-class: if($property-class == null, \"\", $property-class);\n\n    // Use custom CSS variable name if present, otherwise default to `class`\n    $css-variable-name: if(map-has-key($utility, css-variable-name), map-get($utility, css-variable-name), map-get($utility, class));\n\n    // State params to generate pseudo-classes\n    $state: if(map-has-key($utility, state), map-get($utility, state), ());\n\n    $infix: if($property-class == \"\" and str-slice($infix, 1, 1) == \"-\", str-slice($infix, 2), $infix);\n\n    // Don't prefix if value key is null (e.g. with shadow class)\n    $property-class-modifier: if($key, if($property-class == \"\" and $infix == \"\", \"\", \"-\") + $key, \"\");\n\n    @if map-get($utility, rfs) {\n      // Inside the media query\n      @if $is-rfs-media-query {\n        $val: rfs-value($value);\n\n        // Do not render anything if fluid and non fluid values are the same\n        $value: if($val == rfs-fluid-value($value), null, $val);\n      }\n      @else {\n        $value: rfs-fluid-value($value);\n      }\n    }\n\n    $is-css-var: map-get($utility, css-var);\n    $is-local-vars: map-get($utility, local-vars);\n    $is-rtl: map-get($utility, rtl);\n\n    @if $value != null {\n      @if $is-rtl == false {\n        /* rtl:begin:remove */\n      }\n\n      @if $is-css-var {\n        .#{$property-class + $infix + $property-class-modifier} {\n          --#{$prefix}#{$css-variable-name}: #{$value};\n        }\n\n        @each $pseudo in $state {\n          .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n            --#{$prefix}#{$css-variable-name}: #{$value};\n          }\n        }\n      } @else {\n        .#{$property-class + $infix + $property-class-modifier} {\n          @each $property in $properties {\n            @if $is-local-vars {\n              @each $local-var, $variable in $is-local-vars {\n                --#{$prefix}#{$local-var}: #{$variable};\n              }\n            }\n            #{$property}: $value if($enable-important-utilities, !important, null);\n          }\n        }\n\n        @each $pseudo in $state {\n          .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n            @each $property in $properties {\n              @if $is-local-vars {\n                @each $local-var, $variable in $is-local-vars {\n                  --#{$prefix}#{$local-var}: #{$variable};\n                }\n              }\n              #{$property}: $value if($enable-important-utilities, !important, null);\n            }\n          }\n        }\n      }\n\n      @if $is-rtl == false {\n        /* rtl:end:remove */\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/mixins/_visually-hidden.scss",
    "content": "// stylelint-disable declaration-no-important\n\n// Hide content visually while keeping it accessible to assistive technologies\n//\n// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\n// See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin visually-hidden() {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  margin: -1px !important; // Fix for https://github.com/twbs/bootstrap/issues/25686\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important;\n}\n\n// Use to only display content when it's focused, or one of its child elements is focused\n// (i.e. when focus is within the element/container that the class was applied to)\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n\n@mixin visually-hidden-focusable() {\n  &:not(:focus):not(:focus-within) {\n    @include visually-hidden();\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/utilities/_api.scss",
    "content": "// Loop over each breakpoint\n@each $breakpoint in map-keys($grid-breakpoints) {\n\n  // Generate media query if needed\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    // Loop over each utility property\n    @each $key, $utility in $utilities {\n      // The utility can be disabled with `false`, thus check if the utility is a map first\n      // Only proceed if responsive media queries are enabled or if it's the base media query\n      @if type-of($utility) == \"map\" and (map-get($utility, responsive) or $infix == \"\") {\n        @include generate-utility($utility, $infix);\n      }\n    }\n  }\n}\n\n// RFS rescaling\n@media (min-width: $rfs-mq-value) {\n  @each $breakpoint in map-keys($grid-breakpoints) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    @if (map-get($grid-breakpoints, $breakpoint) < $rfs-breakpoint) {\n      // Loop over each utility property\n      @each $key, $utility in $utilities {\n        // The utility can be disabled with `false`, thus check if the utility is a map first\n        // Only proceed if responsive media queries are enabled or if it's the base media query\n        @if type-of($utility) == \"map\" and map-get($utility, rfs) and (map-get($utility, responsive) or $infix == \"\") {\n          @include generate-utility($utility, $infix, true);\n        }\n      }\n    }\n  }\n}\n\n\n// Print utilities\n@media print {\n  @each $key, $utility in $utilities {\n    // The utility can be disabled with `false`, thus check if the utility is a map first\n    // Then check if the utility needs print styles\n    @if type-of($utility) == \"map\" and map-get($utility, print) == true {\n      @include generate-utility($utility, \"-print\");\n    }\n  }\n}\n"
  },
  {
    "path": "lib/bootstrap5/vendor/_rfs.scss",
    "content": "// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated responsive values for font sizes, paddings, margins and much more\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)\n\n// Configuration\n\n// Base value\n$rfs-base-value: 1.25rem !default;\n$rfs-unit: rem !default;\n\n@if $rfs-unit != rem and $rfs-unit != px {\n  @error \"`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where values start decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\n  @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n}\n\n// Resize values based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != number or $rfs-factor <= 1 {\n  @error \"`#{$rfs-factor}` is not a valid  $rfs-factor, it must be greater than 1.\";\n}\n\n// Mode. Possibilities: \"min-media-query\", \"max-media-query\"\n$rfs-mode: min-media-query !default;\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-rfs to false\n$enable-rfs: true !default;\n\n// Cache $rfs-base-value unit\n$rfs-base-value-unit: unit($rfs-base-value);\n\n@function divide($dividend, $divisor, $precision: 10) {\n  $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n  $dividend: abs($dividend);\n  $divisor: abs($divisor);\n  @if $dividend == 0 {\n    @return 0;\n  }\n  @if $divisor == 0 {\n    @error \"Cannot divide by 0\";\n  }\n  $remainder: $dividend;\n  $result: 0;\n  $factor: 10;\n  @while ($remainder > 0 and $precision >= 0) {\n    $quotient: 0;\n    @while ($remainder >= $divisor) {\n      $remainder: $remainder - $divisor;\n      $quotient: $quotient + 1;\n    }\n    $result: $result * 10 + $quotient;\n    $factor: $factor * .1;\n    $remainder: $remainder * 10;\n    $precision: $precision - 1;\n    @if ($precision < 0 and $remainder >= $divisor * 5) {\n      $result: $result + 1;\n    }\n  }\n  $result: $result * $factor * $sign;\n  $dividend-unit: unit($dividend);\n  $divisor-unit: unit($divisor);\n  $unit-map: (\n    \"px\": 1px,\n    \"rem\": 1rem,\n    \"em\": 1em,\n    \"%\": 1%\n  );\n  @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n    $result: $result * map-get($unit-map, $dividend-unit);\n  }\n  @return $result;\n}\n\n// Remove px-unit from $rfs-base-value for calculations\n@if $rfs-base-value-unit == px {\n  $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);\n}\n@else if $rfs-base-value-unit == rem {\n  $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == px {\n  $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == \"em\" {\n  $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));\n}\n\n// Calculate the media query value\n$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});\n$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);\n$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query {\n  @if $rfs-two-dimensional {\n    @if $rfs-mode == max-media-query {\n      @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n        @content;\n      }\n    }\n    @else {\n      @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n        @content;\n      }\n    }\n  }\n  @else {\n    @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {\n      @content;\n    }\n  }\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-rule {\n  @if $rfs-class == disable and $rfs-mode == max-media-query {\n    // Adding an extra class increases specificity, which prevents the media query to override the property\n    &,\n    .disable-rfs &,\n    &.disable-rfs {\n      @content;\n    }\n  }\n  @else if $rfs-class == enable and $rfs-mode == min-media-query {\n    .enable-rfs &,\n    &.enable-rfs {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n// Internal mixin that adds enable classes to the selector if needed.\n@mixin _rfs-media-query-rule {\n\n  @if $rfs-class == enable {\n    @if $rfs-mode == min-media-query {\n      @content;\n    }\n\n    @include _rfs-media-query {\n      .enable-rfs &,\n      &.enable-rfs {\n        @content;\n      }\n    }\n  }\n  @else {\n    @if $rfs-class == disable and $rfs-mode == min-media-query {\n      .disable-rfs &,\n      &.disable-rfs {\n        @content;\n      }\n    }\n    @include _rfs-media-query {\n      @content;\n    }\n  }\n}\n\n// Helper function to get the formatted non-responsive value\n@function rfs-value($values) {\n  // Convert to list\n  $values: if(type-of($values) != list, ($values,), $values);\n\n  $val: '';\n\n  // Loop over each value and calculate value\n  @each $value in $values {\n    @if $value == 0 {\n      $val: $val + ' 0';\n    }\n    @else {\n      // Cache $value unit\n      $unit: if(type-of($value) == \"number\", unit($value), false);\n\n      @if $unit == px {\n        // Convert to rem if needed\n        $val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);\n      }\n      @else if $unit == rem {\n        // Convert to px if needed\n        $val: $val + ' ' + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);\n      }\n      @else {\n        // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n        $val: $val + ' ' + $value;\n      }\n    }\n  }\n\n  // Remove first space\n  @return unquote(str-slice($val, 2));\n}\n\n// Helper function to get the responsive value calculated by RFS\n@function rfs-fluid-value($values) {\n  // Convert to list\n  $values: if(type-of($values) != list, ($values,), $values);\n\n  $val: '';\n\n  // Loop over each value and calculate value\n  @each $value in $values {\n    @if $value == 0 {\n      $val: $val + ' 0';\n    }\n\n    @else {\n      // Cache $value unit\n      $unit: if(type-of($value) == \"number\", unit($value), false);\n\n      // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n      @if not $unit or $unit != px and $unit != rem {\n        $val: $val + ' ' + $value;\n      }\n\n      @else {\n        // Remove unit from $value for calculations\n        $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));\n\n        // Only add the media query if the value is greater than the minimum value\n        @if abs($value) <= $rfs-base-value or not $enable-rfs {\n          $val: $val + ' ' +  if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);\n        }\n        @else {\n          // Calculate the minimum value\n          $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);\n\n          // Calculate difference between $value and the minimum value\n          $value-diff: abs($value) - $value-min;\n\n          // Base value formatting\n          $min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);\n\n          // Use negative value if needed\n          $min-width: if($value < 0, -$min-width, $min-width);\n\n          // Use `vmin` if two-dimensional is enabled\n          $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n          // Calculate the variable width between 0 and $rfs-breakpoint\n          $variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};\n\n          // Return the calculated value\n          $val: $val + ' calc(' + $min-width + if($value < 0, ' - ', ' + ') + $variable-width + ')';\n        }\n      }\n    }\n  }\n\n  // Remove first space\n  @return unquote(str-slice($val, 2));\n}\n\n// RFS mixin\n@mixin rfs($values, $property: font-size) {\n  @if $values != null {\n    $val: rfs-value($values);\n    $fluidVal: rfs-fluid-value($values);\n\n    // Do not print the media query if responsive & non-responsive values are the same\n    @if $val == $fluidVal {\n      #{$property}: $val;\n    }\n    @else {\n      @include _rfs-rule {\n        #{$property}: if($rfs-mode == max-media-query, $val, $fluidVal);\n\n        // Include safari iframe resize fix if needed\n        min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\n      }\n\n      @include _rfs-media-query-rule {\n        #{$property}: if($rfs-mode == max-media-query, $fluidVal, $val);\n      }\n    }\n  }\n}\n\n// Shorthand helper mixins\n@mixin font-size($value) {\n  @include rfs($value);\n}\n\n@mixin padding($value) {\n  @include rfs($value, padding);\n}\n\n@mixin padding-top($value) {\n  @include rfs($value, padding-top);\n}\n\n@mixin padding-right($value) {\n  @include rfs($value, padding-right);\n}\n\n@mixin padding-bottom($value) {\n  @include rfs($value, padding-bottom);\n}\n\n@mixin padding-left($value) {\n  @include rfs($value, padding-left);\n}\n\n@mixin margin($value) {\n  @include rfs($value, margin);\n}\n\n@mixin margin-top($value) {\n  @include rfs($value, margin-top);\n}\n\n@mixin margin-right($value) {\n  @include rfs($value, margin-right);\n}\n\n@mixin margin-bottom($value) {\n  @include rfs($value, margin-bottom);\n}\n\n@mixin margin-left($value) {\n  @include rfs($value, margin-left);\n}\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"@selectize/selectize\",\n  \"keywords\": [\n    \"select\",\n    \"ui\",\n    \"form\",\n    \"input\",\n    \"control\",\n    \"autocomplete\",\n    \"tagging\",\n    \"tag\",\n    \"jquery-plugin\"\n  ],\n  \"browser\": \"dist/js/selectize.js\",\n  \"description\": \"Selectize is a jQuery-based custom <select> UI control. Useful for tagging, contact lists, country selectors, etc.\",\n  \"version\": \"0.15.2\",\n  \"author\": \"Brian Reavis <brian@thirdroute.com>\",\n  \"contributors\": [\n    \"Ris Adams <selectize@risadams.com>\"\n  ],\n  \"license\": \"Apache-2.0\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git://github.com/selectize/selectize.js.git\"\n  },\n  \"files\": [\n    \"dist/*\"\n  ],\n  \"devDependencies\": {\n    \"@risadams/gulp-wrapper\": \"1.0.0\",\n    \"@types/jquery\": \"^3.5.16\",\n    \"bootstrap-sass\": \"^3.4.3\",\n    \"bootstrap2\": \"npm:bootstrap-2.3.2@1.0.0\",\n    \"bootstrap3\": \"npm:bootstrap@3.4.1\",\n    \"bootstrap4\": \"npm:bootstrap@4.6.0\",\n    \"bootstrap5\": \"npm:bootstrap@5.2.3\",\n    \"chai\": \"4.3.7\",\n    \"concurrently\": \"7.6.0\",\n    \"del\": \"^6.1.1\",\n    \"gulp\": \"^4.0.2\",\n    \"gulp-clean-css\": \"^4.3.0\",\n    \"gulp-cli\": \"^2.3.0\",\n    \"gulp-concat\": \"^2.6.1\",\n    \"gulp-less\": \"5.0.0\",\n    \"gulp-rename\": \"2.0.0\",\n    \"gulp-replace\": \"^1.1.4\",\n    \"gulp-sass\": \"5.1.0\",\n    \"gulp-strip-comments\": \"^2.5.2\",\n    \"gulp-uglify\": \"3.0.2\",\n    \"gulp-uglifycss\": \"1.1.0\",\n    \"gulp-watch\": \"5.0.1\",\n    \"jquery\": \"^3.6.3\",\n    \"jsdoc-to-markdown\": \"^8.0.0\",\n    \"jshint\": \"^2.13.6\",\n    \"karma\": \"6.4.1\",\n    \"karma-chai\": \"^0.1.0\",\n    \"karma-chrome-launcher\": \"^3.1.1\",\n    \"karma-coverage\": \"^2.2.0\",\n    \"karma-firefox-launcher\": \"^2.1.2\",\n    \"karma-mocha\": \"^2.0.1\",\n    \"karma-mocha-reporter\": \"^2.2.5\",\n    \"karma-safari-launcher\": \"^1.0.0\",\n    \"lazypipe\": \"^1.0.2\",\n    \"less\": \"4.1.3\",\n    \"mocha\": \"10.2.0\",\n    \"popper.js\": \"1.16.1\",\n    \"sass\": \"1.58.1\"\n  },\n  \"peerDependencies\": {\n    \"jquery\": \"^1.7.0 || ^2 || ^3\",\n    \"jquery-ui\": \"^1.13.2\"\n  },\n  \"peerDependenciesMeta\": {\n    \"jquery-ui\": {\n      \"optional\": true\n    }\n  },\n  \"scripts\": {\n    \"test\": \"karma start\",\n    \"build\": \"gulp\",\n    \"clean\": \"rm -rf dist coverage node_modules docs/node_modules && cd docs && npm run clear\",\n    \"docs\": \"gulp docs\",\n    \"start\": \"cd docs && HTTPS=true SSL_CRT_FILE=.ssl/loopback_website.crt SSL_KEY_FILE=.ssl/loopback_website.key npm run start -- --host=loopback.website --port=4000\",\n    \"start:windows\": \"cd docs && SET HTTPS=true && SET SSL_CRT_FILE=.ssl/loopback_website.crt && SET SSL_KEY_FILE=.ssl/loopback_website.key && npm run start -- --host=loopback.website --port=4000\",\n    \"watch\": \"concurrently \\\"gulp watch\\\" \\\"npm run start\\\"\",\n    \"watch:windows\": \"concurrently \\\"gulp watch\\\" \\\"npm run start:windows\\\"\"\n  },\n  \"engines\": {\n    \"node\": \"*\"\n  }\n}\n"
  },
  {
    "path": "src/constants.js",
    "content": "/**\n * @var {boolean} IS_MAC Check if device is a Mac\n */\nvar IS_MAC = uaDetect(\"macOS\", /Mac/);\n/**\n * @var {number} KEY_A\n */\nvar KEY_A = 65;\n/**\n * @var {number} KEY_COMMA\n */\nvar KEY_COMMA = 188;\n/**\n * @var {number} KEY_RETURN\n */\nvar KEY_RETURN = 13;\n/**\n * @var {number} KEY_ESC\n */\nvar KEY_ESC = 27;\n/**\n * @var {number} KEY_LEFT\n */\nvar KEY_LEFT = 37;\n/**\n * @var {number} KEY_UP\n */\nvar KEY_UP = 38;\n/**\n * @var {number} KEY_P\n */\nvar KEY_P = 80;\n/**\n * @var {number} KEY_RIGHT\n */\nvar KEY_RIGHT = 39;\n/**\n * @var {number} KEY_DOWN\n */\nvar KEY_DOWN = 40;\n/**\n * @var {number} KEY_N\n */\nvar KEY_N = 78;\n/**\n * @var {number} KEY_BACKSPACE\n */\nvar KEY_BACKSPACE = 8;\n/**\n * @var {number} KEY_DELETE\n */\nvar KEY_DELETE = 46;\n/**\n * @var {number} KEY_SHIFT\n */\nvar KEY_SHIFT = 16;\n/**\n * @var {number} KEY_CMD\n */\nvar KEY_CMD = IS_MAC ? 91 : 17;\n/**\n * @var {number} KEY_CTRL\n */\nvar KEY_CTRL = IS_MAC ? 18 : 17;\n/**\n * @var {number} KEY_TAB\n */\nvar KEY_TAB = 9;\n/**\n * @var {number} TAG_SELECT\n */\nvar TAG_SELECT = 1;\n/**\n * @var {number} TAG_INPUT\n */\nvar TAG_INPUT = 2;\n\n/**\n * @var {number} SUPPORTS_VALIDITY_API Check if device support validity api, for now, android support in general is too spotty to support validity\n */\nvar SUPPORTS_VALIDITY_API = !uaDetect(\"Android\", /android/i) && !!document.createElement('input').validity;\n"
  },
  {
    "path": "src/contrib/highlight.js",
    "content": "/**\n * highlight v3 | MIT license | Johann Burkard <jb@eaio.com>\n * Highlights arbitrary terms in a node.\n *\n * - Modified by Marshal <beatgates@gmail.com> 2011-6-24 (added regex)\n * - Modified by Brian Reavis <brian@thirdroute.com> 2012-8-27 (cleanup)\n */\n\nvar highlight = function ($element, pattern) {\n  if (typeof pattern === 'string' && !pattern.length) return;\n  var regex = (typeof pattern === 'string') ? new RegExp(pattern, 'i') : pattern;\n\n  var highlight = function (node) {\n    var skip = 0;\n    // Wrap matching part of text node with highlighting <span>, e.g.\n    // Soccer  ->  <span class=\"highlight\">Soc</span>cer  for regex = /soc/i\n    if (node.nodeType === 3) {\n      var pos = node.data.search(regex);\n      if (pos >= 0 && node.data.length > 0) {\n        var match = node.data.match(regex);\n        var spannode = document.createElement('span');\n        spannode.className = 'highlight';\n        var middlebit = node.splitText(pos);\n        var endbit = middlebit.splitText(match[0].length);\n        var middleclone = middlebit.cloneNode(true);\n        spannode.appendChild(middleclone);\n        middlebit.parentNode.replaceChild(spannode, middlebit);\n        skip = 1;\n      }\n    }\n    // Recurse element node, looking for child text nodes to highlight, unless element\n    // is childless, <script>, <style>, or already highlighted: <span class=\"highlight\">\n    else if (node.nodeType === 1 && node.childNodes && !/(script|style)/i.test(node.tagName) && (node.className !== 'highlight' || node.tagName !== 'SPAN')) {\n      for (var i = 0; i < node.childNodes.length; ++i) {\n        i += highlight(node.childNodes[i]);\n      }\n    }\n    return skip;\n  };\n\n  return $element.each(function () {\n    highlight(this);\n  });\n};\n\n/**\n * removeHighlight fn copied from highlight v5 and\n * edited to remove with() and pass js strict mode\n */\n$.fn.removeHighlight = function () {\n  return this.find(\"span.highlight\").each(function () {\n    this.parentNode.firstChild.nodeName;\n    var parent = this.parentNode;\n    parent.replaceChild(this.firstChild, this);\n    parent.normalize();\n  }).end();\n};\n"
  },
  {
    "path": "src/contrib/microevent.js",
    "content": "/**\n * MicroEvent - to make any js object an event emitter\n *\n * - pure javascript - server compatible, browser compatible\n * - don't rely on the browser doms\n * - super simple - you get it immediately, no mystery, no magic involved\n *\n * @author Jerome Etienne (https://github.com/jeromeetienne)\n */\n\nvar MicroEvent = function () { };\nMicroEvent.prototype = {\n  on: function (event, fct) {\n    this._events = this._events || {};\n    this._events[event] = this._events[event] || [];\n    this._events[event].push(fct);\n  },\n  off: function (event, fct) {\n    var n = arguments.length;\n    if (n === 0) return delete this._events;\n    if (n === 1) return delete this._events[event];\n\n    this._events = this._events || {};\n    if (event in this._events === false) return;\n    this._events[event].splice(this._events[event].indexOf(fct), 1);\n  },\n  trigger: function (event /* , args... */) {\n    const events = this._events = this._events || {};\n    if (event in events === false) return;\n    for (var i = 0; i < events[event].length; i++) {\n      events[event][i].apply(this, Array.prototype.slice.call(arguments, 1));\n    }\n  }\n};\n\n/**\n * Mixin will delegate all MicroEvent.js function in the destination object.\n *\n * - MicroEvent.mixin(Foobar) will make Foobar able to use MicroEvent\n *\n * @param {object} the object which will support MicroEvent\n */\nMicroEvent.mixin = function (destObject) {\n  var props = ['on', 'off', 'trigger'];\n  for (var i = 0; i < props.length; i++) {\n    destObject.prototype[props[i]] = MicroEvent.prototype[props[i]];\n  }\n};\n"
  },
  {
    "path": "src/contrib/microplugin.js",
    "content": "/**\n * microplugin.js\n * Copyright (c) 2013 Brian Reavis & contributors\n * Copyright (c) 2022 Selectize Team & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis <brian@thirdroute.com>\n * @author Ris Adams <selectize@risadams.com>\n */\n\n/**\n * Keep code modularized & extensible.\n * MicroPlugin is a lightweight drop-in plugin architecture for your JavaScript library.\n *  Plugins can declare dependencies to other plugins and can be initialized with options (in a variety of formats).\n *\n * @class MicroPlugin\n * @constructor\n * @param {array|object} items\n * @param {object} items\n */\nvar MicroPlugin = {};\nMicroPlugin.mixin = function (Interface) {\n\n  /**\n   * @memberof MicroPlugin\n   */\n  Interface.plugins = {};\n\n  /**\n   * Initializes the listed plugins (with options).\n   * Acceptable formats:\n   *\n   * - List (without options): - `['a', 'b', 'c']`\n   * - List (with options): - `[{'name': 'a', options: {}}, {'name': 'b', options: {}}]`\n   * - Hash (with options): - `{'a': { ... }, 'b': { ... }, 'c': { ... }}`\n   *\n   * @param {mixed} plugins\n   * @memberof MicroPlugin\n   */\n  Interface.prototype.initializePlugins = function (plugins) {\n    var i, n, key;\n    var self = this;\n    var queue = [];\n\n    self.plugins = {\n      names: [],\n      settings: {},\n      requested: {},\n      loaded: {}\n    };\n\n    if (isArray(plugins)) {\n      for (i = 0, n = plugins.length; i < n; i++) {\n        if (typeof plugins[i] === 'string') {\n          queue.push(plugins[i]);\n        } else {\n          self.plugins.settings[plugins[i].name] = plugins[i].options;\n          queue.push(plugins[i].name);\n        }\n      }\n    } else if (plugins) {\n      for (key in plugins) {\n        if (plugins.hasOwnProperty(key)) {\n          self.plugins.settings[key] = plugins[key];\n          queue.push(key);\n        }\n      }\n    }\n\n    while (queue.length) {\n      self.require(queue.shift());\n    }\n  };\n\n\n  /** Loads a plugin.\n   * @param {string} name - The name of the plugin to load.\n   *\n   * @memberof MicroPlugin\n   */\n  Interface.prototype.loadPlugin = function (name) {\n    var self = this;\n    var plugins = self.plugins;\n    var plugin = Interface.plugins[name];\n\n    if (!Interface.plugins.hasOwnProperty(name)) {\n      throw new Error('Unable to find \"' + name + '\" plugin');\n    }\n\n    plugins.requested[name] = true;\n    plugins.loaded[name] = plugin.fn.apply(self, [self.plugins.settings[name] || {}]);\n    plugins.names.push(name);\n  };\n\n  /**\n   * Initializes a plugin.\n   *\n   * @param {string} name\n   * @memberof MicroPlugin\n   */\n  Interface.prototype.require = function (name) {\n    var self = this;\n    var plugins = self.plugins;\n\n    if (!self.plugins.loaded.hasOwnProperty(name)) {\n      if (plugins.requested[name]) {\n        throw new Error('Plugin has circular dependency (\"' + name + '\")');\n      }\n      self.loadPlugin(name);\n    }\n\n    return plugins.loaded[name];\n  };\n\n  /**\n   * Registers a plugin.\n   *\n   * @param {string} name\n   * @param {function} fn\n   *\n   * @memberof MicroPlugin\n   */\n  Interface.define = function (name, fn) {\n    Interface.plugins[name] = {\n      'name': name,\n      'fn': fn\n    };\n  };\n};\n"
  },
  {
    "path": "src/contrib/nanoid.js",
    "content": "/**\n * nanoid v3 | MIT license | https://github.com/ai/nanoid\n * Generates a random ID. We use this to generate unique names for the input fields so that\n * the browser doesn't try to autofill them. This is a modified version of the original\n * nanoid function that uses a shorter ID.\n *\n * - Modified by Ris Adams <ris@risadams.com> 2023-01-05 (Modified to support Selectize needs)\n */\nconst nanoid = (t = 21) => crypto.getRandomValues(new Uint8Array(t))\n  .reduce(((t, e) =>\n    t += (e &= 63) < 36 ? e.toString(36) :\n      e < 62 ? (e - 26).toString(36).toUpperCase()\n        : e > 62 ? \"-\" : \"_\"), \"\");\n"
  },
  {
    "path": "src/contrib/sifter.js",
    "content": "\n/**\n * sifter.js\n * Copyright (c) 2013–2020 Brian Reavis & contributors\n* Copyright (c) 2022 Selectize Team & contributors\n*\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis <brian@thirdroute.com>\n * @author Ris Adams <selectize@risadams.com>\n */\n\n/**\n * Sifter is a client and server-side library (via UMD) for textually searching arrays and hashes of objects by property – or multiple properties. It's designed specifically for autocomplete. The process is three-step: score, filter, sort.\n *  - **Supports díåcritîçs.** - For example, if searching for \"montana\" and an item in the set has a value of \"montaña\", it will still be matched. Sorting will also play nicely with diacritics\n *  - **Smart scoring.** - Items are scored / sorted intelligently depending on where a match is found in the string (how close to the beginning) and what percentage of the string matches.\n *  - **Multi-field sorting**. - When scores aren't enough to go by – like when getting results for an empty query – it can sort by one or more fields. For example, sort by a person's first name and last name without actually merging the properties to a single string.\n *  - **Nested properties.** - Allows to search and sort on nested properties so you can perform search on complex objects without flattening them simply by using dot-notation to reference fields (ie. nested.property).\n *\n * @class Sifter\n *\n * @constructor\n * @param {array|object} items\n * @param {object} items\n */\nvar Sifter = function (items, settings) {\n  this.items = items;\n  this.settings = settings || { diacritics: true };\n};\n\n/**\n * Splits a search string into an array of individual\n * regexps to be used to match results.\n *\n * @param {string} query\n * @returns {array}\n */\nSifter.prototype.tokenize = function (query, respect_word_boundaries) {\n  query = trim(String(query || '').toLowerCase());\n  if (!query || !query.length) return [];\n\n  var i, n, regex, letter;\n  var tokens = [];\n  var words = query.split(/ +/);\n\n  for (i = 0, n = words.length; i < n; i++) {\n    regex = escape_regex(words[i]);\n    if (this.settings.diacritics) {\n      for (letter in DIACRITICS) {\n        if (DIACRITICS.hasOwnProperty(letter)) {\n          regex = regex.replace(new RegExp(letter, 'g'), DIACRITICS[letter]);\n        }\n      }\n    }\n    if (respect_word_boundaries) regex = \"\\\\b\" + regex\n    tokens.push({\n      string: words[i],\n      regex: new RegExp(regex, 'i')\n    });\n  }\n\n  return tokens;\n};\n\n/**\n * Iterates over arrays and hashes.\n *\n * ```\n * this.iterator(this.items, function(item, id) {\n *    // invoked for each item\n * });\n * ```\n *\n * @param {array|object} object\n */\nSifter.prototype.iterator = function (object, callback) {\n  var iterator;\n  if (is_array(object)) {\n    iterator = Array.prototype.forEach || function (callback) {\n      for (var i = 0, n = this.length; i < n; i++) {\n        callback(this[i], i, this);\n      }\n    };\n  } else {\n    iterator = function (callback) {\n      for (var key in this) {\n        if (this.hasOwnProperty(key)) {\n          callback(this[key], key, this);\n        }\n      }\n    };\n  }\n\n  iterator.apply(object, [callback]);\n};\n\n/**\n * Returns a function to be used to score individual results.\n *\n * Good matches will have a higher score than poor matches.\n * If an item is not a match, 0 will be returned by the function.\n *\n * @param {object|string} search\n * @param {object} options (optional)\n * @returns {function}\n */\nSifter.prototype.getScoreFunction = function (search, options) {\n  var self, fields, tokens, token_count, nesting;\n\n  self = this;\n  search = self.prepareSearch(search, options);\n  tokens = search.tokens;\n  fields = search.options.fields;\n  token_count = tokens.length;\n  nesting = search.options.nesting;\n\n  /**\n   * Calculates how close of a match the\n   * given value is against a search token.\n   *\n   * @param {mixed} value\n   * @param {object} token\n   * @return {number}\n   */\n  var scoreValue = function (value, token) {\n    var score, pos;\n\n    if (!value) return 0;\n    value = String(value || '');\n    pos = value.search(token.regex);\n    if (pos === -1) return 0;\n    score = token.string.length / value.length;\n    if (pos === 0) score += 0.5;\n    return score;\n  };\n\n  /**\n   * Calculates the score of an object\n   * against the search query.\n   *\n   * @param {object} token\n   * @param {object} data\n   * @return {number}\n   */\n  var scoreObject = (function () {\n    var field_count = fields.length;\n    if (!field_count) {\n      return function () { return 0; };\n    }\n    if (field_count === 1) {\n      return function (token, data) {\n        return scoreValue(getattr(data, fields[0], nesting), token);\n      };\n    }\n    return function (token, data) {\n      for (var i = 0, sum = 0; i < field_count; i++) {\n        sum += scoreValue(getattr(data, fields[i], nesting), token);\n      }\n      return sum / field_count;\n    };\n  })();\n\n  if (!token_count) {\n    return function () { return 0; };\n  }\n  if (token_count === 1) {\n    return function (data) {\n      return scoreObject(tokens[0], data);\n    };\n  }\n\n  if (search.options.conjunction === 'and') {\n    return function (data) {\n      var score;\n      for (var i = 0, sum = 0; i < token_count; i++) {\n        score = scoreObject(tokens[i], data);\n        if (score <= 0) return 0;\n        sum += score;\n      }\n      return sum / token_count;\n    };\n  } else {\n    return function (data) {\n      for (var i = 0, sum = 0; i < token_count; i++) {\n        sum += scoreObject(tokens[i], data);\n      }\n      return sum / token_count;\n    };\n  }\n};\n\n/**\n * Returns a function that can be used to compare two\n * results, for sorting purposes. If no sorting should\n * be performed, `null` will be returned.\n *\n * @param {string|object} search\n * @param {object} options\n * @return function(a,b)\n */\nSifter.prototype.getSortFunction = function (search, options) {\n  var i, n, self, field, fields, fields_count, multiplier, multipliers, get_field, implicit_score, sort;\n\n  self = this;\n  search = self.prepareSearch(search, options);\n  sort = (!search.query && options.sort_empty) || options.sort;\n\n  /**\n   * Fetches the specified sort field value\n   * from a search result item.\n   *\n   * @param  {string} name\n   * @param  {object} result\n   * @return {mixed}\n   */\n  get_field = function (name, result) {\n    if (name === '$score') return result.score;\n    return getattr(self.items[result.id], name, options.nesting);\n  };\n\n  // parse options\n  fields = [];\n  if (sort) {\n    for (i = 0, n = sort.length; i < n; i++) {\n      if (search.query || sort[i].field !== '$score') {\n        fields.push(sort[i]);\n      }\n    }\n  }\n\n  // the \"$score\" field is implied to be the primary\n  // sort field, unless it's manually specified\n  if (search.query) {\n    implicit_score = true;\n    for (i = 0, n = fields.length; i < n; i++) {\n      if (fields[i].field === '$score') {\n        implicit_score = false;\n        break;\n      }\n    }\n    if (implicit_score) {\n      fields.unshift({ field: '$score', direction: 'desc' });\n    }\n  } else {\n    for (i = 0, n = fields.length; i < n; i++) {\n      if (fields[i].field === '$score') {\n        fields.splice(i, 1);\n        break;\n      }\n    }\n  }\n\n  multipliers = [];\n  for (i = 0, n = fields.length; i < n; i++) {\n    multipliers.push(fields[i].direction === 'desc' ? -1 : 1);\n  }\n\n  // build function\n  fields_count = fields.length;\n  if (!fields_count) {\n    return null;\n  } else if (fields_count === 1) {\n    field = fields[0].field;\n    multiplier = multipliers[0];\n    return function (a, b) {\n      return multiplier * cmp(\n        get_field(field, a),\n        get_field(field, b)\n      );\n    };\n  } else {\n    return function (a, b) {\n      var i, result, a_value, b_value, field;\n      for (i = 0; i < fields_count; i++) {\n        field = fields[i].field;\n        result = multipliers[i] * cmp(\n          get_field(field, a),\n          get_field(field, b)\n        );\n        if (result) return result;\n      }\n      return 0;\n    };\n  }\n};\n\n/**\n * Parses a search query and returns an object\n * with tokens and fields ready to be populated\n * with results.\n *\n * @param {string} query\n * @param {object} options\n * @returns {object}\n */\nSifter.prototype.prepareSearch = function (query, options) {\n  if (typeof query === 'object') return query;\n\n  options = extend({}, options);\n\n  var option_fields = options.fields;\n  var option_sort = options.sort;\n  var option_sort_empty = options.sort_empty;\n\n  if (option_fields && !is_array(option_fields)) options.fields = [option_fields];\n  if (option_sort && !is_array(option_sort)) options.sort = [option_sort];\n  if (option_sort_empty && !is_array(option_sort_empty)) options.sort_empty = [option_sort_empty];\n\n  return {\n    options: options,\n    query: String(query || '').toLowerCase(),\n    tokens: this.tokenize(query, options.respect_word_boundaries),\n    total: 0,\n    items: []\n  };\n};\n\n/**\n * Searches through all items and returns a sorted array of matches.\n *\n * The `options` parameter can contain:\n *\n *   - fields {string|array}\n *   - sort {array}\n *   - score {function}\n *   - filter {bool}\n *   - limit {integer}\n *\n * Returns an object containing:\n *\n *   - options {object}\n *   - query {string}\n *   - tokens {array}\n *   - total {int}\n *   - items {array}\n *\n * @param {string} query\n * @param {object} options\n * @returns {object}\n */\nSifter.prototype.search = function (query, options) {\n  var self = this, value, score, search, calculateScore;\n  var fn_sort;\n  var fn_score;\n\n  search = this.prepareSearch(query, options);\n  options = search.options;\n  query = search.query;\n\n  // generate result scoring function\n  fn_score = options.score || self.getScoreFunction(search);\n\n  // perform search and sort\n  if (query.length) {\n    self.iterator(self.items, function (item, id) {\n      score = fn_score(item);\n      if (options.filter === false || score > 0) {\n        search.items.push({ 'score': score, 'id': id });\n      }\n    });\n  } else {\n    self.iterator(self.items, function (item, id) {\n      search.items.push({ 'score': 1, 'id': id });\n    });\n  }\n\n  fn_sort = self.getSortFunction(search, options);\n  if (fn_sort) search.items.sort(fn_sort);\n\n  // apply limits\n  search.total = search.items.length;\n  if (typeof options.limit === 'number') {\n    search.items = search.items.slice(0, options.limit);\n  }\n\n  return search;\n};\n\n// utilities\n// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\nvar cmp = function (a, b) {\n  if (typeof a === 'number' && typeof b === 'number') {\n    return a > b ? 1 : (a < b ? -1 : 0);\n  }\n  a = asciifold(String(a || ''));\n  b = asciifold(String(b || ''));\n  if (a > b) return 1;\n  if (b > a) return -1;\n  return 0;\n};\n\nvar extend = function (a, b) {\n  var i, n, k, object;\n  for (i = 1, n = arguments.length; i < n; i++) {\n    object = arguments[i];\n    if (!object) continue;\n    for (k in object) {\n      if (object.hasOwnProperty(k)) {\n        a[k] = object[k];\n      }\n    }\n  }\n  return a;\n};\n\n/**\n * A property getter resolving dot-notation\n * @param  {Object}  obj     The root object to fetch property on\n * @param  {String}  name    The optionally dotted property name to fetch\n * @param  {Boolean} nesting Handle nesting or not\n * @return {Object}          The resolved property value\n */\nvar getattr = function (obj, name, nesting) {\n  if (!obj || !name) return;\n  if (!nesting) return obj[name];\n  var names = name.split(\".\");\n  while (names.length && (obj = obj[names.shift()]));\n  return obj;\n};\n\nvar trim = function (str) {\n  return (str + '').replace(/^\\s+|\\s+$|/g, '');\n};\n\nvar escape_regex = function (str) {\n  return (str + '').replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1');\n};\n\nvar is_array = Array.isArray || function (object) {\n  return Object.prototype.toString.call(object) === '[object Array]';\n};\n\nvar DIACRITICS = {\n  'a': '[aḀḁĂăÂâǍǎȺⱥȦȧẠạÄäÀàÁáĀāÃãÅåąĄÃąĄ]',\n  'b': '[b␢βΒB฿𐌁ᛒ]',\n  'c': '[cĆćĈĉČčĊċC̄c̄ÇçḈḉȻȼƇƈɕᴄＣｃ]',\n  'd': '[dĎďḊḋḐḑḌḍḒḓḎḏĐđD̦d̦ƉɖƊɗƋƌᵭᶁᶑȡᴅＤｄð]',\n  'e': '[eÉéÈèÊêḘḙĚěĔĕẼẽḚḛẺẻĖėËëĒēȨȩĘęᶒɆɇȄȅẾếỀềỄễỂểḜḝḖḗḔḕȆȇẸẹỆệⱸᴇＥｅɘǝƏƐε]',\n  'f': '[fƑƒḞḟ]',\n  'g': '[gɢ₲ǤǥĜĝĞğĢģƓɠĠġ]',\n  'h': '[hĤĥĦħḨḩẖẖḤḥḢḣɦʰǶƕ]',\n  'i': '[iÍíÌìĬĭÎîǏǐÏïḮḯĨĩĮįĪīỈỉȈȉȊȋỊịḬḭƗɨɨ̆ᵻᶖİiIıɪＩｉ]',\n  'j': '[jȷĴĵɈɉʝɟʲ]',\n  'k': '[kƘƙꝀꝁḰḱǨǩḲḳḴḵκϰ₭]',\n  'l': '[lŁłĽľĻļĹĺḶḷḸḹḼḽḺḻĿŀȽƚⱠⱡⱢɫɬᶅɭȴʟＬｌ]',\n  'n': '[nŃńǸǹŇňÑñṄṅŅņṆṇṊṋṈṉN̈n̈ƝɲȠƞᵰᶇɳȵɴＮｎŊŋ]',\n  'o': '[oØøÖöÓóÒòÔôǑǒŐőŎŏȮȯỌọƟɵƠơỎỏŌōÕõǪǫȌȍՕօ]',\n  'p': '[pṔṕṖṗⱣᵽƤƥᵱ]',\n  'q': '[qꝖꝗʠɊɋꝘꝙq̃]',\n  'r': '[rŔŕɌɍŘřŖŗṘṙȐȑȒȓṚṛⱤɽ]',\n  's': '[sŚśṠṡṢṣꞨꞩŜŝŠšŞşȘșS̈s̈]',\n  't': '[tŤťṪṫŢţṬṭƮʈȚțṰṱṮṯƬƭ]',\n  'u': '[uŬŭɄʉỤụÜüÚúÙùÛûǓǔŰűŬŭƯưỦủŪūŨũŲųȔȕ∪]',\n  'v': '[vṼṽṾṿƲʋꝞꝟⱱʋ]',\n  'w': '[wẂẃẀẁŴŵẄẅẆẇẈẉ]',\n  'x': '[xẌẍẊẋχ]',\n  'y': '[yÝýỲỳŶŷŸÿỸỹẎẏỴỵɎɏƳƴ]',\n  'z': '[zŹźẐẑŽžŻżẒẓẔẕƵƶ]'\n};\n\nvar asciifold = (function () {\n  var i, n, k, chunk;\n  var i18nChars = '';\n  var lookup = {};\n  for (k in DIACRITICS) {\n    if (DIACRITICS.hasOwnProperty(k)) {\n      chunk = DIACRITICS[k].substring(2, DIACRITICS[k].length - 1);\n      i18nChars += chunk;\n      for (i = 0, n = chunk.length; i < n; i++) {\n        lookup[chunk.charAt(i)] = k;\n      }\n    }\n  }\n  var regexp = new RegExp('[' + i18nChars + ']', 'g');\n  return function (str) {\n    return str.replace(regexp, function (i18nChar) {\n      return lookup[i18nChar];\n    }).toLowerCase();\n  };\n})();\n"
  },
  {
    "path": "src/defaults.js",
    "content": "Selectize.count = 0;\nSelectize.defaults = {\n  options: [],\n  optgroups: [],\n\n  plugins: [],\n  delimiter: ',',\n  splitOn: null, // regexp or string for splitting up values from a paste command\n  persist: true,\n  diacritics: true,\n  create: false,\n  showAddOptionOnCreate: true,\n  createOnBlur: false,\n  createFilter: null,\n  highlight: true,\n  openOnFocus: true,\n  maxOptions: 1000,\n  maxItems: null,\n  hideSelected: null,\n  addPrecedence: false,\n  selectOnTab: true,\n  preload: false,\n  allowEmptyOption: false,\n  showEmptyOptionInDropdown: false,\n  emptyOptionLabel: '--',\n  setFirstOptionActive: false,\n  closeAfterSelect: false,\n  closeDropdownThreshold: 250, // number of ms to prevent reopening of dropdown after mousedown\n\n  scrollDuration: 60,\n  deselectBehavior: 'previous', //top, previous\n  loadThrottle: 300,\n  loadingClass: 'loading',\n\n  dataAttr: 'data-data',\n  optgroupField: 'optgroup',\n  valueField: 'value',\n  labelField: 'text',\n  disabledField: 'disabled',\n  optgroupLabelField: 'label',\n  optgroupValueField: 'value',\n  lockOptgroupOrder: false,\n\n  sortField: '$order',\n  searchField: ['text'],\n  searchConjunction: 'and',\n  respect_word_boundaries: false, // Originally defaulted to true, but breaks unicode support. See #1916 & https://stackoverflow.com/questions/10590098/javascript-regexp-word-boundaries-unicode-characters\n  normalize: true,\n\n  mode: null,\n  wrapperClass: '',\n  inputClass: '',\n  dropdownClass: '',\n  dropdownContentClass: '',\n\n  dropdownParent: null,\n\n  copyClassesToDropdown: true,\n  dropdownSize: {\n    sizeType: 'auto',\n    sizeValue: 'auto',\n  },\n\n  ignoreOnDropwdownHeight: 'img, i',\n  search: true,\n  showArrow: true,\n\n  /*\n  load                 : null, // function(query, callback) { ... }\n  score                : null, // function(search) { ... }\n  formatValueToKey     : null, // function(key) { ... }\n  optionGroupRegister  : null, // function(optgroup) to register dynamically created option groups\n  onInitialize         : null, // function() { ... }\n  onChange             : null, // function(value) { ... }\n  onItemAdd            : null, // function(value, $item) { ... }\n  onItemRemove         : null, // function(value, $item) { ... }\n  onClear              : null, // function() { ... }\n  onOptionAdd          : null, // function(value, data) { ... }\n  onOptionRemove       : null, // function(value) { ... }\n  onOptionClear        : null, // function() { ... }\n  onOptionGroupAdd     : null, // function(id, data) { ... }\n  onOptionGroupRemove  : null, // function(id) { ... }\n  onOptionGroupClear   : null, // function() { ... }\n  onDropdownOpen       : null, // function($dropdown) { ... }\n  onDropdownClose      : null, // function($dropdown) { ... }\n  onType               : null, // function(str) { ... }\n  onDelete             : null, // function(values) { ... }\n  */\n\n  render: {\n    /*\n    item: null,\n    optgroup: null,\n    optgroup_header: null,\n    option: null,\n    option_create: null\n    */\n  }\n};\n"
  },
  {
    "path": "src/less/selectize.bootstrap2.less",
    "content": " @import \"lib/bootstrap2/variables.less\";\n @import \"lib/bootstrap2/mixins.less\";\n @import \"selectize\";\n\n@selectize-font-family: @baseFontFamily;\n@selectize-font-size: @baseFontSize;\n@selectize-line-height: @baseLineHeight;\n\n@selectize-color-text: @textColor;\n@selectize-color-highlight: rgba(255,237,40,0.4);\n@selectize-color-input: @inputBackground;\n@selectize-color-input-full: @inputBackground;\n@selectize-color-disabled: @inputBackground;\n@selectize-color-item: @btnBackgroundHighlight;\n@selectize-color-item-border: @btnBorder;\n@selectize-color-item-active: @dropdownLinkBackgroundHover;\n@selectize-color-item-active-text: @dropdownLinkColorHover;\n@selectize-color-item-active-border: darken(@selectize-color-item-active, 5%);\n@selectize-color-optgroup: @dropdownBackground;\n@selectize-color-optgroup-text: @grayLight;\n@selectize-color-optgroup-border: @dropdownDividerTop;\n@selectize-color-dropdown: @dropdownBackground;\n@selectize-color-dropdown-border: @inputBorder;\n@selectize-color-dropdown-border-top: @dropdownDividerTop;\n@selectize-color-dropdown-item-active: @dropdownLinkBackgroundHover;\n@selectize-color-dropdown-item-active-text: @dropdownLinkColorHover;\n@selectize-color-dropdown-item-create-active-text: @dropdownLinkColorHover;\n@selectize-lighten-disabled-item: 8%;\n@selectize-lighten-disabled-item-text: 8%;\n@selectize-lighten-disabled-item-border: 8%;\n@selectize-opacity-disabled: 0.5;\n@selectize-shadow-input: none;\n@selectize-shadow-input-focus: inset 0 1px 2px rgba(0,0,0,0.15);\n@selectize-border-radius: @inputBorderRadius;\n\n@selectize-padding-x: 10px;\n@selectize-padding-y: 7px;\n@selectize-padding-dropdown-item-x: @selectize-padding-x;\n@selectize-padding-dropdown-item-y: 3px;\n@selectize-padding-item-x: 3px;\n@selectize-padding-item-y: 1px;\n@selectize-margin-item-x: 3px;\n@selectize-margin-item-y: 3px;\n@selectize-caret-margin: 0;\n\n@selectize-arrow-size: 5px;\n@selectize-arrow-color: @black;\n@selectize-arrow-offset: @selectize-padding-x + 5px;\n\n@selectize-width-item-border: 1px;\n\n.selectize-dropdown {\n\tmargin: 2px 0 0 0;\n\tz-index: @zindexDropdown;\n\tborder: 1px solid @dropdownBorder;\n\tborder-radius: @baseBorderRadius;\n\t.box-shadow(0 5px 10px rgba(0,0,0,.2));\n\n\t.optgroup-header {\n\t\tfont-size: 11px;\n\t\tfont-weight: bold;\n\t\ttext-shadow: 0 1px 0 rgba(255,255,255,.5);\n\t\ttext-transform: uppercase;\n\t}\n\t.optgroup:first-child:before {\n\t\tdisplay: none;\n\t}\n\t.optgroup:before {\n\t\tcontent: ' ';\n\t\tdisplay: block;\n\t\t.nav-divider();\n\t\tmargin-left: @selectize-padding-dropdown-item-x * -1;\n\t\tmargin-right: @selectize-padding-dropdown-item-x * -1;\n\t}\n\n\t[data-selectable].active {\n\t\t#gradient > .vertical(@dropdownLinkBackgroundHover, darken(@dropdownLinkBackgroundHover, 5%));\n\t}\n}\n\n.selectize-dropdown-content {\n\tpadding: 5px 0;\n}\n\n.selectize-dropdown-header {\n\tpadding: @selectize-padding-dropdown-item-y * 2 @selectize-padding-dropdown-item-x;\n}\n\n.selectize-input {\n\t.transition(~\"border linear .2s, box-shadow linear .2s\");\n\n\t&.dropdown-active {\n\t\t.selectize-border-radius(@selectize-border-radius);\n\t}\n\t&.dropdown-active::before {\n\t\tdisplay: none;\n\t}\n\t&.input-active, &.input-active:hover, .selectize-control.multi &.focus {\n\t\tbackground: @selectize-color-input !important;\n\t\tborder-color: rgba(82,168,236,.8) !important;\n\t\toutline: 0 !important;\n\t\toutline: thin dotted \\9 !important;\n\t\t.box-shadow(~\"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)\") !important;\n\t}\n}\n\n.selectize-control {\n\t&.single {\n\t\t.selectize-input {\n\t\t\t.buttonBackground(@btnBackground, @btnBackgroundHighlight, @grayDark, 0 1px 1px rgba(255,255,255,.75));\n  \t\t\t.box-shadow(~\"inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)\");\n  \t\t\t&:hover {\n\t\t\t\tcolor: @grayDark;\n\t\t\t\ttext-decoration: none;\n\t\t\t\tbackground-position: 0 -15px;\n\t\t\t\t.transition(background-position .1s linear);\n  \t\t\t}\n  \t\t\t&.disabled {\n\t\t\t\tbackground: @btnBackgroundHighlight !important;\n\t\t\t\t.box-shadow(none);\n\t\t\t}\n\t\t}\n\t}\n\t&.multi {\n\t\t.selectize-input {\n\t\t\t.box-shadow(inset 0 1px 1px rgba(0,0,0,.075));\n\t\t\t&.has-items {\n\t\t\t\t@padding-x: @selectize-padding-x - @selectize-padding-item-x;\n\t\t\t\tpadding-left: @padding-x;\n\t\t\t\tpadding-right: @padding-x;\n\t\t\t}\n\t\t}\n\t\t.selectize-input > div {\n\t\t\t.gradientBar(@btnBackground, @btnBackgroundHighlight, @selectize-color-item-text, none);\n\t\t\t*background-color: @selectize-color-item;\n\t\t\tborder: @selectize-width-item-border solid @selectize-color-item-border;\n\t\t\t.border-radius(@baseBorderRadius);\n\t\t\t.box-shadow(~\"inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)\");\n\t\t\t&.active {\n\t\t\t\t.box-shadow(~\"0 1px 2px rgba(0,0,0,.05)\");\n\t\t\t\t.gradientBar(@selectize-color-item-active, @selectize-color-item-active-border, @selectize-color-item-active-text, none);\n\t\t\t\t*background-color: @selectize-color-item-active;\n\t\t\t\tborder: @selectize-width-item-border solid @dropdownLinkBackgroundHover;\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "src/less/selectize.bootstrap3.less",
    "content": "@import \"selectize\";\n\n@selectize-font-family: inherit;\n@selectize-font-size: inherit;\n@selectize-line-height: @line-height-computed;\n\n@selectize-color-text: @text-color;\n@selectize-color-highlight: rgba(255,237,40,0.4);\n@selectize-color-input: @input-bg;\n@selectize-color-input-full: @input-bg;\n@selectize-color-input-error: @state-danger-text;\n@selectize-color-input-error-focus: darken(@selectize-color-input-error, 10%);\n@selectize-color-disabled: @input-bg;\n@selectize-color-item: #efefef;\n@selectize-color-item-border: rgba(0,0,0,0);\n@selectize-color-item-active: @component-active-bg;\n@selectize-color-item-active-text: #fff;\n@selectize-color-item-active-border: rgba(0,0,0,0);\n@selectize-color-optgroup: @dropdown-bg;\n@selectize-color-optgroup-text: @dropdown-header-color;\n@selectize-color-optgroup-border: @dropdown-divider-bg;\n@selectize-color-dropdown: @dropdown-bg;\n@selectize-color-dropdown-border-top: mix(@input-border, @input-bg, 0.8);\n@selectize-color-dropdown-item-active: @dropdown-link-hover-bg;\n@selectize-color-dropdown-item-active-text: @dropdown-link-hover-color;\n@selectize-color-dropdown-item-create-active-text: @dropdown-link-hover-color;\n@selectize-opacity-disabled: 0.5;\n@selectize-shadow-input: none;\n@selectize-shadow-input-focus: inset 0 1px 2px rgba(0,0,0,0.15);\n@selectize-shadow-input-error: inset 0 1px 1px rgba(0, 0, 0, .075);\n@selectize-shadow-input-error-focus: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px lighten(@selectize-color-input-error, 20%);\n@selectize-border: 1px solid @input-border;\n@selectize-border-radius: @input-border-radius;\n\n@selectize-width-item-border: 0;\n@selectize-padding-x: @padding-base-horizontal;\n@selectize-padding-y: @padding-base-vertical;\n@selectize-padding-dropdown-item-x: @padding-base-horizontal;\n@selectize-padding-dropdown-item-y: 3px;\n@selectize-padding-item-x: 3px;\n@selectize-padding-item-y: 1px;\n@selectize-margin-item-x: 3px;\n@selectize-margin-item-y: 3px;\n@selectize-caret-margin: 0;\n\n@selectize-arrow-size: 5px;\n@selectize-arrow-color: @selectize-color-text;\n@selectize-arrow-offset: @selectize-padding-x + 5px;\n\n.selectize-dropdown, .selectize-dropdown.form-control {\n\theight: auto;\n\tpadding: 0;\n\tmargin: 2px 0 0 0;\n\tz-index: @zindex-dropdown;\n\tbackground: @selectize-color-dropdown;\n\tborder: 1px solid @dropdown-fallback-border;\n\tborder: 1px solid @dropdown-border;\n\t.selectize-border-radius(@border-radius-base);\n\t.selectize-box-shadow(0 6px 12px rgba(0,0,0,.175));\n}\n\n.selectize-dropdown {\n\t.optgroup-header {\n\t\tfont-size: @font-size-small;\n\t\tline-height: @line-height-base;\n\t}\n\t.optgroup:first-child:before {\n\t\tdisplay: none;\n\t}\n\t.optgroup:before {\n\t\tcontent: ' ';\n\t\tdisplay: block;\n\t\t.nav-divider();\n\t\tmargin-left: @selectize-padding-dropdown-item-x * -1;\n\t\tmargin-right: @selectize-padding-dropdown-item-x * -1;\n\t}\n}\n\n.selectize-dropdown-content {\n\tpadding: 5px 0;\n}\n\n.selectize-dropdown-header {\n\tpadding: @selectize-padding-dropdown-item-y * 2 @selectize-padding-dropdown-item-x;\n}\n\n.selectize-input {\n\tmin-height: @input-height-base;\n\n\t&.dropdown-active {\n\t\t.selectize-border-radius(@selectize-border-radius);\n\t}\n\t&.dropdown-active::before {\n\t\tdisplay: none;\n\t}\n\t&.focus {\n\t\t@color: @input-border-focus;\n\t\t@color-rgba: rgba(red(@color), green(@color), blue(@color), .6);\n\t\tborder-color: @color;\n\t\toutline: 0;\n\t\t.selectize-box-shadow(~\"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}\");\n\t}\n}\n\n.has-error .selectize-input {\n    border-color: @selectize-color-input-error;\n    .selectize-box-shadow(@selectize-shadow-input-error);\n\n    &:focus {\n        border-color: @selectize-color-input-error-focus;\n        .selectize-box-shadow(@selectize-shadow-input-error-focus);\n    }\n}\n\n.selectize-control {\n\t&.multi {\n\t\t.selectize-input.has-items {\n\t\t\tpadding-left: @selectize-padding-x - @selectize-padding-item-x;\n\t\t\tpadding-right: @selectize-padding-x - @selectize-padding-item-x;\n\t\t}\n\t\t.selectize-input > div {\n\t\t\t.selectize-border-radius(@selectize-border-radius - 1px);\n\t\t}\n\t}\n}\n\n.form-control.selectize-control {\n\tpadding: 0;\n\theight: auto;\n\tborder: none;\n\tbackground: none;\n\t.selectize-box-shadow(none);\n\t.selectize-border-radius(0);\n}\n"
  },
  {
    "path": "src/less/selectize.default.less",
    "content": "@import \"selectize\";\n\n@selectize-color-item: #1da7ee;\n@selectize-color-item-text: #fff;\n@selectize-color-item-active-text: #fff;\n@selectize-color-item-border: #0073bb;\n@selectize-color-item-active: #92c836;\n@selectize-color-item-active-border: #00578d;\n@selectize-width-item-border: 1px;\n@selectize-caret-margin: 0 1px;\n\n.selectize-control {\n\t&.multi {\n\t\t.selectize-input {\n\t\t\t&.has-items {\n\t\t\t\t@padding-x: @selectize-padding-x - 3px;\n\t\t\t\tpadding-left: @padding-x;\n\t\t\t\tpadding-right: @padding-x;\n\t\t\t}\n\t\t\t&.disabled [data-value] {\n\t\t\t\tcolor: #999;\n\t\t\t\ttext-shadow: none;\n\t\t\t\tbackground: none;\n\t\t\t\t.selectize-box-shadow(none);\n\n\t\t\t\t&, .remove {\n\t\t\t\t\tborder-color: #e6e6e6;\n\t\t\t\t}\n\t\t\t\t.remove {\n\t\t\t\t\tbackground: none;\n\t\t\t\t}\n\t\t\t}\n\t\t\t[data-value] {\n\t\t\t\ttext-shadow: 0 1px 0 rgba(0,51,83,0.3);\n\t\t\t\t.selectize-border-radius(3px);\n\t\t\t\t.selectize-vertical-gradient(#1da7ee, #178ee9);\n\t\t\t\t.selectize-box-shadow(~\"0 1px 0 rgba(0,0,0,0.2),inset 0 1px rgba(255,255,255,0.03)\");\n\t\t\t\t&.active {\n\t\t\t\t\t.selectize-vertical-gradient(#008fd8, #0075cf);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t&.single {\n\t\t.selectize-input {\n\t\t\t.selectize-box-shadow(~\"0 1px 0 rgba(0,0,0,0.05), inset 0 1px 0 rgba(255,255,255,0.8)\");\n\t\t\t.selectize-vertical-gradient(#fefefe, #f2f2f2);\n\t\t}\n\t}\n}\n\n.selectize-control.single .selectize-input, .selectize-dropdown.single {\n\tborder-color: #b8b8b8;\n}\n\n.selectize-dropdown {\n\t.optgroup-header {\n\t\tpadding-top: @selectize-padding-dropdown-item-y + 2px;\n\t\tfont-weight: bold;\n\t\tfont-size: 0.85em;\n\t}\n\t.optgroup {\n\t\tborder-top: 1px solid @selectize-color-dropdown-border-top;\n\t\t&:first-child {\n\t\t\tborder-top: 0 none;\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "src/less/selectize.less",
    "content": "// base styles\n\n@selectize-font-family: inherit;\n@selectize-font-smoothing: inherit;\n@selectize-font-size: 13px;\n@selectize-line-height: 18px;\n\n@selectize-color-text: #303030;\n@selectize-color-border: #d0d0d0;\n@selectize-color-highlight: rgba(125,168,208,0.2);\n@selectize-color-input: #fff;\n@selectize-color-input-full: @selectize-color-input;\n@selectize-color-disabled: #fafafa;\n@selectize-color-item: #f2f2f2;\n@selectize-color-item-text: @selectize-color-text;\n@selectize-color-item-border: #d0d0d0;\n@selectize-color-item-active: #e8e8e8;\n@selectize-color-item-active-text: @selectize-color-text;\n@selectize-color-item-active-border: #cacaca;\n@selectize-color-dropdown: #fff;\n@selectize-color-dropdown-border: @selectize-color-border;\n@selectize-color-dropdown-border-top: #f0f0f0;\n@selectize-color-dropdown-item-active: #f5fafd;\n@selectize-color-dropdown-item-active-text: #495c68;\n@selectize-color-dropdown-item-create-text: rgba(red(@selectize-color-text), green(@selectize-color-text), blue(@selectize-color-text), 0.5);\n@selectize-color-dropdown-item-create-active-text: @selectize-color-dropdown-item-active-text;\n@selectize-color-optgroup: @selectize-color-dropdown;\n@selectize-color-optgroup-text: @selectize-color-text;\n@selectize-lighten-disabled-item: 30%;\n@selectize-lighten-disabled-item-text: 30%;\n@selectize-lighten-disabled-item-border: 30%;\n@selectize-opacity-disabled: 0.5;\n\n@selectize-shadow-input: inset 0 1px 1px rgba(0,0,0,0.1);\n@selectize-shadow-input-focus: inset 0 1px 2px rgba(0,0,0,0.15);\n@selectize-border: 1px solid @selectize-color-border;\n@selectize-dropdown-border: 1px solid @selectize-color-dropdown-border;\n@selectize-border-radius: 3px;\n\n@selectize-width-item-border: 0;\n@selectize-max-height-dropdown: 200px;\n\n@selectize-padding-x: 8px;\n@selectize-padding-y: 8px;\n@selectize-padding-item-x: 6px;\n@selectize-padding-item-y: 2px;\n@selectize-padding-dropdown-item-x: @selectize-padding-x;\n@selectize-padding-dropdown-item-y: 5px;\n@selectize-margin-item-x: 3px;\n@selectize-margin-item-y: 3px;\n\n@selectize-arrow-size: 5px;\n@selectize-arrow-color: #808080;\n@selectize-arrow-offset: 15px;\n\n@selectize-caret-margin: 0 2px 0 0;\n@selectize-caret-margin-rtl: 0 4px 0 -2px;\n\n.selectize-border-radius (@radii) {\n\t-webkit-border-radius: @radii;\n\t-moz-border-radius: @radii;\n\tborder-radius: @radii;\n}\n.selectize-unselectable () {\n\t-webkit-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n}\n.selectize-box-shadow (@shadow) {\n\t-webkit-box-shadow: @shadow;\n\tbox-shadow: @shadow;\n}\n.selectize-box-sizing (@type: border-box) {\n\t-webkit-box-sizing: @type;\n\t-moz-box-sizing: @type;\n\tbox-sizing: @type;\n}\n.selectize-vertical-gradient (@color-top, @color-bottom) {\n    background-color: mix(@color-top, @color-bottom, 60%);\n    background-image: -moz-linear-gradient(top, @color-top, @color-bottom); // FF 3.6+\n    background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@color-top), to(@color-bottom)); // Safari 4+, Chrome 2+\n    background-image: -webkit-linear-gradient(top, @color-top, @color-bottom); // Safari 5.1+, Chrome 10+\n    background-image: -o-linear-gradient(top, @color-top, @color-bottom); // Opera 11.10\n    background-image: linear-gradient(to bottom, @color-top, @color-bottom); // Standard, IE10\n    background-repeat: repeat-x;\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@color-top),argb(@color-bottom))); // IE9 and down\n}\n\n.selectize-control {\n\tposition: relative;\n}\n\n.selectize-dropdown, .selectize-input, .selectize-input input {\n\tcolor: @selectize-color-text;\n\tfont-family: @selectize-font-family;\n\tfont-size: @selectize-font-size;\n\tline-height: @selectize-line-height;\n\t-webkit-font-smoothing: @selectize-font-smoothing;\n}\n\n.selectize-input, .selectize-control.single .selectize-input.input-active {\n\tbackground: @selectize-color-input;\n\tcursor: text;\n\tdisplay: inline-block;\n}\n\n.selectize-input {\n\tborder: @selectize-border;\n\tpadding: @selectize-padding-y @selectize-padding-x;\n\tdisplay: inline-block;\n\twidth: 100%;\n\toverflow: hidden;\n\tposition: relative;\n\tz-index: 1;\n\t.selectize-box-sizing(border-box);\n\t.selectize-box-shadow(@selectize-shadow-input);\n\t.selectize-border-radius(@selectize-border-radius);\n\n\t.selectize-control.multi &.has-items {\n\t\t@padding-x: @selectize-padding-x;\n\t\t@padding-top: @selectize-padding-y - @selectize-padding-item-y - @selectize-width-item-border;\n\t\t@padding-bottom: @selectize-padding-y - @selectize-padding-item-y - @selectize-margin-item-y - @selectize-width-item-border;\n\t\tpadding: @padding-top @padding-x @padding-bottom;\n\t}\n\n\t&.full {\n\t\tbackground-color: @selectize-color-input-full;\n\t}\n\t&.disabled, &.disabled * {\n\t\tcursor: default !important;\n\t}\n\t&.focus {\n\t\t.selectize-box-shadow(@selectize-shadow-input-focus);\n\t}\n\t&.dropdown-active {\n\t\t.selectize-border-radius(@selectize-border-radius @selectize-border-radius 0 0);\n\t}\n\n\t> * {\n\t\tvertical-align: baseline;\n\t\tdisplay: -moz-inline-stack;\n\t\tdisplay: inline-block;\n\t\tzoom: 1;\n\t\t*display: inline;\n\t}\n\t.selectize-control.multi & > div {\n\t\tcursor: pointer;\n\t\tmargin: 0 @selectize-margin-item-x @selectize-margin-item-y 0;\n\t\tpadding: @selectize-padding-item-y @selectize-padding-item-x;\n\t\tbackground: @selectize-color-item;\n\t\tcolor: @selectize-color-item-text;\n\t\tborder: @selectize-width-item-border solid @selectize-color-item-border;\n\n\t\t&.active {\n\t\t\tbackground: @selectize-color-item-active;\n\t\t\tcolor: @selectize-color-item-active-text;\n\t\t\tborder: @selectize-width-item-border solid @selectize-color-item-active-border;\n\t\t}\n\t}\n\t.selectize-control.multi &.disabled > div {\n\t\t&, &.active {\n\t\t\tcolor: lighten(desaturate(@selectize-color-item-text, 100%), @selectize-lighten-disabled-item-text);\n\t\t\tbackground: lighten(desaturate(@selectize-color-item, 100%), @selectize-lighten-disabled-item);\n\t\t\tborder: @selectize-width-item-border solid lighten(desaturate(@selectize-color-item-border, 100%), @selectize-lighten-disabled-item-border);\n\t\t}\n\t}\n\t> input {\n\t\t&::-ms-clear {\n\t\t\tdisplay: none;\n\t\t}\n\t\tdisplay: inline-block !important;\n\t\tpadding: 0 !important;\n\t\tmin-height: 0 !important;\n\t\tmax-height: none !important;\n\t\tmax-width: 100% !important;\n\t\tmargin: @selectize-caret-margin !important;\n\t\ttext-indent: 0 !important;\n\t\tborder: 0 none !important;\n\t\tbackground: none !important;\n\t\tline-height: inherit !important;\n\t\t-webkit-user-select: auto !important;\n\t\t.selectize-box-shadow(none) !important;\n\t\t&:focus { outline: none !important; }\n\t\t&[placeholder] {\n      box-sizing: initial;\n    }\n\t}\n}\n\n.selectize-input::after {\n\tcontent: ' ';\n\tdisplay: block;\n\tclear: left;\n}\n\n.selectize-input.dropdown-active::before {\n\tcontent: ' ';\n\tdisplay: block;\n\tposition: absolute;\n\tbackground: @selectize-color-dropdown-border-top;\n\theight: 1px;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n}\n\n.selectize-dropdown {\n\tposition: absolute;\n\tz-index: 10;\n\tborder: @selectize-dropdown-border;\n\tbackground: @selectize-color-dropdown;\n\tmargin: -1px 0 0 0;\n\tborder-top: 0 none;\n\t.selectize-box-sizing(border-box);\n\t.selectize-box-shadow(0 1px 3px rgba(0,0,0,0.1));\n\t.selectize-border-radius(0 0 @selectize-border-radius @selectize-border-radius);\n\n\t[data-selectable] {\n\t\tcursor: pointer;\n\t\toverflow: hidden;\n\t\t.highlight {\n\t\t\tbackground: @selectize-color-highlight;\n\t\t\t.selectize-border-radius(1px);\n\t\t}\n\t}\n\t.option, .optgroup-header {\n\t\tpadding: @selectize-padding-dropdown-item-y @selectize-padding-dropdown-item-x;\n\t}\n\t.option, [data-disabled], [data-disabled] [data-selectable].option {\n\t\tcursor: inherit;\n\t\topacity: 0.5;\n\t}\n\t[data-selectable].option {\n\t\topacity: 1;\n\t}\n\t.optgroup:first-child .optgroup-header {\n\t\tborder-top: 0 none;\n\t}\n\t.optgroup-header {\n\t\tcolor: @selectize-color-optgroup-text;\n\t\tbackground: @selectize-color-optgroup;\n\t\tcursor: default;\n\t}\n\t.active {\n\t\tbackground-color: @selectize-color-dropdown-item-active;\n\t\tcolor: @selectize-color-dropdown-item-active-text;\n\t\t&.create {\n\t\t\tcolor: @selectize-color-dropdown-item-create-active-text;\n\t\t}\n\t}\n\t.create {\n\t\tcolor: @selectize-color-dropdown-item-create-text;\n\t}\n}\n\n.selectize-dropdown-content {\n\toverflow-y: auto;\n\toverflow-x: hidden;\n\tmax-height: @selectize-max-height-dropdown;\n\t-webkit-overflow-scrolling: touch;\n}\n\n.selectize-control.single .selectize-input {\n\t&, input { cursor: pointer; }\n\t&.input-active, &.input-active input { cursor: text; }\n\n\t&:after {\n\t\tcontent: ' ';\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\ttop: 50%;\n\t\tright: @selectize-arrow-offset;\n\t\tmargin-top: round((-1 * @selectize-arrow-size / 2));\n\t\twidth: 0;\n\t\theight: 0;\n\t\tborder-style: solid;\n\t\tborder-width: @selectize-arrow-size @selectize-arrow-size 0 @selectize-arrow-size;\n\t\tborder-color: @selectize-arrow-color transparent transparent transparent;\n\t}\n\t&.dropdown-active:after {\n\t\tmargin-top: @selectize-arrow-size * -0.8;\n\t\tborder-width: 0 @selectize-arrow-size @selectize-arrow-size @selectize-arrow-size;\n\t\tborder-color: transparent transparent @selectize-arrow-color transparent;\n\t}\n}\n\n.selectize-control.rtl {\n\t&.single .selectize-input:after {\n\t\tleft: @selectize-arrow-offset;\n\t\tright: auto;\n\t}\n\t.selectize-input > input {\n\t\tmargin: @selectize-caret-margin-rtl !important;\n\t}\n}\n\n.selectize-control .selectize-input.disabled {\n\topacity: @selectize-opacity-disabled;\n\tbackground-color: @selectize-color-disabled;\n}\n"
  },
  {
    "path": "src/plugins/auto_position/plugin.js",
    "content": "Selectize.define(\"auto_position\", function () {\n  var self = this;\n\n  const POSITION = {\n    top: 'top',\n    bottom: 'bottom',\n  };\n\n  self.positionDropdown = (function () {\n    return function () {\n      const $control = this.$control;\n      const offset = this.settings.dropdownParent === 'body' ? $control.offset() : $control.position();\n      offset.top += $control.outerHeight(true);\n\n      const dropdownHeight = this.$dropdown.prop('scrollHeight') + 5; // 5 - padding value;\n      const controlPosTop = this.$control.get(0).getBoundingClientRect().top;\n      const wrapperHeight = this.$wrapper.height();\n      const controlPosBottom = self.$control.get(0).getBoundingClientRect().bottom\n      const position =\n        controlPosTop + dropdownHeight + wrapperHeight > window.innerHeight &&\n          controlPosBottom - dropdownHeight - wrapperHeight >= 0 ?\n          POSITION.top :\n          POSITION.bottom;\n      let w = this.$wrapper[0].style.width !== 'fit-content' ? this.settings.dropdownParent === 'body' ? 'max-content' : '100%' : 'max-content';\n      const styles = {\n        width: w,\n        minWidth : $control.outerWidth(true),\n        left: offset.left\n      };\n\n      if (position === POSITION.top) {\n        const styleToAdd = { bottom: offset.top, top: 'unset' };\n\n        if (this.settings.dropdownParent === 'body') {\n          styleToAdd.top = offset.top - this.$dropdown.outerHeight(true) - $control.outerHeight(true);\n          styleToAdd.bottom = 'unset';\n        }\n        Object.assign(styles, styleToAdd);\n        this.$dropdown.addClass('selectize-position-top');\n        this.$control.addClass('selectize-position-top');\n      } else {\n        Object.assign(styles, { top: offset.top, bottom: 'unset' });\n        this.$dropdown.removeClass('selectize-position-top');\n        this.$control.removeClass('selectize-position-top');\n      }\n\n      if (this.settings.dropdownParent !== 'body' && w === 'max-content' && $control.outerWidth(true) >= this.$dropdown.outerWidth(true)) {\n        w = '100%';\n      }\n\n      this.$dropdown.css(styles);\n    };\n  }());\n});\n"
  },
  {
    "path": "src/plugins/auto_position/plugin.less",
    "content": ".selectize-dropdown.plugin-auto_position.selectize-position-top {\n  border-top: 1px solid @selectize-color-border;\n  border-bottom: 0 none;\n  border-radius: 3px 3px 0 0;\n}\n\n.selectize-control.plugin-auto_position .selectize-input.selectize-position-top.dropdown-active {\n  border-radius: 0 0 3px 3px;\n  border-top: 0 none;\n\n  &::before {\n    top: 0;\n    bottom: unset;\n  }\n}\n"
  },
  {
    "path": "src/plugins/auto_position/plugin.scss",
    "content": ".#{selectize}-dropdown.plugin-auto_position.#{$selectize}-position-top {\n  border-top: 1px solid $select-color-border;\n  border-bottom: 0 none;\n  border-radius: 3px 3px 0 0;\n  box-shadow: 0 -6px 12px rgb(0 0 0 / 18%);\n}\n\n.#{selectize}-control.plugin-auto_position .#{selectize}-input.#{$selectize}-position-top.dropdown-active {\n  border-radius: 0 0 3px 3px;\n  border-top: 0 none;\n\n  &::before {\n    top: 0;\n    bottom: unset;\n  }\n}\n"
  },
  {
    "path": "src/plugins/auto_select_on_type/plugin.js",
    "content": "Selectize.define('auto_select_on_type', function(options) {\n\tvar self = this;\n\n\tself.onBlur = (function() {\n\t\tvar originalBlur = self.onBlur;\n\t\treturn function(e) {\n\t\t\tvar $matchedItem = self.getFirstItemMatchedByTextContent(self.lastValue, true);\n\t\t\tif (typeof $matchedItem.attr('data-value') !== 'undefined' && self.getValue() !== $matchedItem.attr('data-value'))\n\t\t\t{\n\t\t\t\tself.setValue($matchedItem.attr('data-value'));\n\t\t\t}\n\t\t\treturn originalBlur.apply(this, arguments);\n\t\t}\n\t}());\n});\n"
  },
  {
    "path": "src/plugins/autofill_disable/plugin.js",
    "content": "/**\n * Plugin: \"autofill_disable\" (selectize.js)\n * Copyright (c) 2020-2023 Selectize Team & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Ris Adams <selectize@risadams.com>\n */\n\n/**\n * By default, Selectize allows the browser to autofill the control input provided by the user.\n * This plugin disables that behavior by generating a random name and autocomplete attribute.\n * This is a workaround for the fact that browsers do not allow disabling autofill.\n *\n * There are several ways to disable autofill, but they all have drawbacks\n * and are not handled the same way across all browsers:\n *\n * - Set the attribute `autocomplete=\"off\"`: This is the most common way to disable autofill, but it is not supported by all browsers.\n * - Set the attribute `autocomplete=\"new-password\"`: This is the most common way to disable autofill in modern browsers, but it is not supported by all browsers.\n * - Add a `readonly` attribute to the input and remove the property after the user has interacted with the control.\n * - Set the input type to `search` or `tel`: in conjuntion with `autocomplete=\"off\"`.\n * - Wrap the input in a div, and add a hidden input with a tabindex of -1, and styled with 'display: none;'.\n * - Add a duplicate hidden input with the same name, but a different id.\n * - Use a randomizes name and autocomplete attribute.\n *\n * @author [Ris Adams](https://github.com/risadams)\n * @typedef {object} options Object of options available for \"autofill_disable\" plugin\n *\n *\n * @example\n * ```js\n * $('select').selectize({\n *  plugins: ['autofill_disable']\n * });\n * ```\n */\nSelectize.define(\"autofill_disable\", function (options) {\n  var self = this;\n\n  self.setup = (function () {\n    var original = self.setup;\n    return function () {\n      original.apply(self, arguments);\n\n      // https://stackoverflow.com/questions/30053167/autocomplete-off-vs-false\n      self.$control_input.attr({ name: nanoid(21), autocomplete: nanoid(21) });\n    };\n  })();\n});\n"
  },
  {
    "path": "src/plugins/clear_button/plugin.js",
    "content": "/**\n * Plugin: \"clear_button\" (selectize.js)\n * Copyright (c) 2013 Brian Reavis & contributors\n * Copyright (c) 2020-2023 Selectize Team & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Fabien Winkler <fabien.winkler@outlook.fr>\n */\n\n/**\n * @author [Fabien Winkler](https://github.com/fabienwnklr)\n * @typedef {object} options Object of options available for \"clear_button\" plugin\n * @param {string} [title=Clear] Title for the clear button\n * @param {string} [className=clear] Class name for the clear button\n * @param {string} [label=×] [props=data] Label for the clear button\n * @param {function} [html] Method used for rendering\n *\n * @example\n * ```js\n * $('select').selectize({\n *  plugins: [\n *    {\n *      clear_button: {\n *        title: 'Custom title',\n *        className: 'custom-class',\n *        label: 'custom label',\n *        html: (data) => {\n *          return (\n *            `<a class=\"${data.className}\" title=\"${data.title}\">${data.label}</a>`;\n *        }\n *     }\n *   }\n *  ]\n * });\n * ```\n */\nSelectize.define(\"clear_button\", function (options) {\n  var self = this;\n\n  options = $.extend(\n    {\n      title: \"Clear\",\n      className: \"clear\",\n      label: \"×\",\n      html: function (data) {\n        return (\n          '<a class=\"' + data.className + '\" title=\"' + data.title + '\"> ' + data.label + '</a>'\n        );\n      },\n    },\n    options\n  );\n\n  self.setup = (function () {\n    var original = self.setup;\n    return function () {\n      original.apply(self, arguments);\n      self.$button_clear = $(options.html(options));\n\n      if (self.settings.mode === \"single\") self.$wrapper.addClass(\"single\");\n\n      self.$wrapper.append(self.$button_clear);\n\n      if (self.getValue() === \"\" || self.getValue().length === 0) {\n        self.$wrapper.find(\".\" + options.className).css(\"display\", \"none\");\n      }\n\n      self.on(\"change\", function () {\n        if (self.getValue() === \"\" || self.getValue().length === 0) {\n          self.$wrapper.find(\".\" + options.className).css(\"display\", \"none\");\n        } else {\n          self.$wrapper.find(\".\" + options.className).css(\"display\", \"\");\n        }\n      });\n\n      self.$wrapper.on(\"click\", \".\" + options.className, function (e) {\n        e.preventDefault();\n        e.stopImmediatePropagation();\n        e.stopPropagation();\n\n        if (self.isLocked) return;\n\n        self.clear();\n        self.$wrapper.find(\".\" + options.className).css(\"display\", \"none\");\n      });\n    };\n  })();\n});\n"
  },
  {
    "path": "src/plugins/clear_button/plugin.less",
    "content": ".selectize-control.plugin-clear_button {\n  .clear {\n      text-decoration: none;\n      display: flex;\n      position: absolute;\n      height: 100%;\n      width: 25px;\n      top: 0;\n      right: calc(@selectize-padding-x - @selectize-padding-item-x);\n      color: rgba(0, 0, 0);\n      opacity: 0.4;\n      font-weight: bold;\n      border: none;\n      cursor: pointer;\n      z-index: 1;\n      font-size: 21px;\n      justify-content: center;\n      align-items: center;\n  }\n\n  .clear:hover {\n      opacity: 1;\n  }\n\n  &.single .clear {\n      right: calc(@selectize-padding-x - @selectize-padding-item-x + 1.5rem);\n  }\n\n}\n"
  },
  {
    "path": "src/plugins/clear_button/plugin.scss",
    "content": ".#{$selectize}-control.plugin-clear_button {\n    .clear {\n        text-decoration: none;\n        display: flex;\n        position: absolute;\n        height: 100%;\n        width: 25px;\n        top: 0;\n        right: calc(#{$select-padding-x} - #{$select-padding-item-x});\n        color: rgb(0, 0, 0);\n        opacity: 0.4;\n        font-weight: bold;\n        border: none;\n        cursor: pointer;\n        z-index: 1;\n        font-size: 21px;\n        justify-content: center;\n        align-items: center;\n    }\n\n    .clear:hover {\n        opacity: 1;\n    }\n\n    &.single .clear {\n        right: calc(#{$select-padding-x} - #{$select-padding-item-x} + 1.5rem);\n    }\n\n}\n"
  },
  {
    "path": "src/plugins/drag_drop/plugin.js",
    "content": "/**\n * Plugin: \"drag_drop\" (selectize.js)\n * Copyright (c) 2013 Brian Reavis & contributors\n * Copyright (c) 2020-2023 Selectize Team & contributors*\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis <brian@thirdroute.com>\n */\n\nSelectize.define('drag_drop', function(options) {\n\tif (!$.fn.sortable) throw new Error('The \"drag_drop\" plugin requires jQuery UI \"sortable\".');\n\tif (this.settings.mode !== 'multi') return;\n\tvar self = this;\n\n\tself.lock = (function() {\n\t\tvar original = self.lock;\n\t\treturn function() {\n\t\t\tvar sortable = self.$control.data('sortable');\n\t\t\tif (sortable) sortable.disable();\n\t\t\treturn original.apply(self, arguments);\n\t\t};\n\t})();\n\n\tself.unlock = (function() {\n\t\tvar original = self.unlock;\n\t\treturn function() {\n\t\t\tvar sortable = self.$control.data('sortable');\n\t\t\tif (sortable) sortable.enable();\n\t\t\treturn original.apply(self, arguments);\n\t\t};\n\t})();\n\n\tself.setup = (function() {\n\t\tvar original = self.setup;\n\t\treturn function() {\n\t\t\toriginal.apply(this, arguments);\n\n\t\t\tvar $control = self.$control.sortable({\n\t\t\t\titems: '[data-value]',\n\t\t\t\tforcePlaceholderSize: true,\n\t\t\t\tdisabled: self.isLocked,\n\t\t\t\tstart: function(e, ui) {\n\t\t\t\t\tui.placeholder.css('width', ui.helper.css('width'));\n\t\t\t\t\t// $control.css({overflow: 'visible'});\n\t\t\t\t\t$control.addClass('dragging');\n\t\t\t\t},\n\t\t\t\tstop: function() {\n\t\t\t\t\t// $control.css({overflow: 'hidden'});\n\t\t\t\t\t$control.removeClass('dragging');\n\t\t\t\t\tvar active = self.$activeItems ? self.$activeItems.slice() : null;\n\t\t\t\t\tvar values = [];\n\t\t\t\t\t$control.children('[data-value]').each(function() {\n\t\t\t\t\t\tvalues.push($(this).attr('data-value'));\n\t\t\t\t\t});\n\t\t\t\t\tself.isFocused = false;\n\t\t\t\t\tself.setValue(values);\n\t\t\t\t\tself.isFocused = true;\n\t\t\t\t\tself.setActiveItem(active);\n\t\t\t\t\tself.positionDropdown();\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t})();\n\n});\n"
  },
  {
    "path": "src/plugins/drag_drop/plugin.less",
    "content": ".selectize-control.plugin-drag_drop {\n\t&.multi > .selectize-input > div.ui-sortable-placeholder {\n\t\tvisibility: visible !important;\n\t\tbackground: #f2f2f2 !important;\n\t\tbackground: rgba(0,0,0,0.06) !important;\n\t\tborder: 0 none !important;\n\t\t.selectize-box-shadow(inset 0 0 12px 4px #fff);\n\t}\n\t.ui-sortable-placeholder::after {\n\t\tcontent: '!';\n\t\tvisibility: hidden;\n\t}\n\t.ui-sortable-helper {\n\t\t.selectize-box-shadow(0 2px 5px rgba(0,0,0,0.2));\n\t}\n}"
  },
  {
    "path": "src/plugins/drag_drop/plugin.scss",
    "content": ".#{$selectize}-control.plugin-drag_drop {\n  &.multi > .#{$selectize}-input.dragging {\n    overflow: visible;\n  }\n  &.multi > .#{$selectize}-input > div.ui-sortable-placeholder {\n    visibility: visible !important;\n    background: #f2f2f2 !important;\n    background: rgba(0, 0, 0, 0.06) !important;\n    border: 0 none !important;\n    box-shadow: inset 0 0 12px 4px #fff;\n  }\n  .ui-sortable-placeholder::after {\n    content: \"!\";\n    visibility: hidden;\n  }\n  .ui-sortable-helper {\n    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);\n  }\n}\n"
  },
  {
    "path": "src/plugins/dropdown_header/plugin.js",
    "content": "/**\n * Plugin: \"dropdown_header\" (selectize.js)\n * Copyright (c) 2013 Brian Reavis & contributors\n * Copyright (c) 2020-2023 Selectize Team & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis <brian@thirdroute.com>\n */\n\n/**\n * @author [Brian Reavis](https://github.com/brianreavis)\n * @typedef {Object} options Available options for dropdown_header plugin\n * @param {string} [title=Untitled] Title of dropdown_header\n * @param {string} [headerClass=selectize-dropdown-header] Class of dropdown_header\n * @param {string} [titleRowClass=selectize-dropdown-header-title] Class for title row\n * @param {string} [labelClass=selectize-dropdown-header-label] Class for label\n * @param {string} [closeClass=selectize-dropdown-header-close] Class for dropdown_header close button\n * @param {function} [html] Method for custom rendering of dropdown_header\n *\n * @example\n * ```js\n * $('select').selectize({\n *  plugins: [\n *    {\n *      dropdown_header: {\n *        title: 'Custom title',\n *        headerClass: 'custom-header-class',\n *        labelClass: 'custom-label-class',\n *        closeClass: 'custom-close-class',\n *        html: (data) => {\n *          // data contain all options values\n *          return (\n *            `<a class=\"${data.labelClass}\" title=\"${data.title}\">${data.title}</a>`;\n *        }\n *     }\n *   }\n *  ]\n * });\n * ```\n */\nSelectize.define('dropdown_header', function(options) {\n\tvar self = this;\n\n\toptions = $.extend({\n\t\ttitle         : 'Untitled',\n\t\theaderClass   : 'selectize-dropdown-header',\n\t\ttitleRowClass : 'selectize-dropdown-header-title',\n\t\tlabelClass    : 'selectize-dropdown-header-label',\n\t\tcloseClass    : 'selectize-dropdown-header-close',\n\n\t\thtml: function(data) {\n\t\t\treturn (\n\t\t\t\t'<div class=\"' + data.headerClass + '\">' +\n\t\t\t\t\t'<div class=\"' + data.titleRowClass + '\">' +\n\t\t\t\t\t\t'<span class=\"' + data.labelClass + '\">' + data.title + '</span>' +\n\t\t\t\t\t\t'<a href=\"javascript:void(0)\" class=\"' + data.closeClass + '\">&#xd7;</a>' +\n\t\t\t\t\t'</div>' +\n\t\t\t\t'</div>'\n\t\t\t);\n\t\t}\n\t}, options);\n\n\tself.setup = (function() {\n\t\tvar original = self.setup;\n\t\treturn function() {\n\t\t\toriginal.apply(self, arguments);\n\t\t\tself.$dropdown_header = $(options.html(options));\n      self.$dropdown.prepend(self.$dropdown_header);\n      self.$dropdown_header.find('.' + options.closeClass).on('click', function () {\n        self.close();\n      });\n\t\t};\n\t})();\n\n});\n"
  },
  {
    "path": "src/plugins/dropdown_header/plugin.less",
    "content": ".selectize-dropdown-header {\n\tposition: relative;\n\tpadding: @selectize-padding-dropdown-item-y @selectize-padding-dropdown-item-x;\n\tborder-bottom: 1px solid @selectize-color-border;\n\tbackground: mix(@selectize-color-dropdown, @selectize-color-border, 85%);\n\t.selectize-border-radius(@selectize-border-radius @selectize-border-radius 0 0);\n}\n.selectize-dropdown-header-close {\n\tposition: absolute;\n\tright: @selectize-padding-dropdown-item-x;\n\ttop: 50%;\n\tcolor: @selectize-color-text;\n\topacity: 0.4;\n\tmargin-top: -12px;\n\tline-height: 20px;\n\tfont-size: 20px !important;\n  text-decoration: none;\n}\n.selectize-dropdown-header-close:hover {\n\tcolor: darken(@selectize-color-text, 25%);\n}\n"
  },
  {
    "path": "src/plugins/dropdown_header/plugin.scss",
    "content": ".#{$selectize}-dropdown.plugin-dropdown_header {\n  .#{$selectize}-dropdown-header {\n    position: relative;\n    padding: ($select-padding-dropdown-item-y * 2)\n      $select-padding-dropdown-item-x;\n    border-bottom: 1px solid $select-color-border;\n    background: mix($select-color-dropdown, $select-color-border, 85%);\n    border-radius: $select-border-radius $select-border-radius 0 0;\n  }\n  .#{$selectize}-dropdown-header-close {\n    position: absolute;\n    right: $select-padding-dropdown-item-x;\n    top: 50%;\n    color: $select-color-text;\n    opacity: 0.4;\n    margin-top: -12px;\n    line-height: 20px;\n    font-size: 20px !important;\n    text-decoration: none;\n  }\n  .#{$selectize}-dropdown-header-close:hover {\n    color: darken($select-color-text, 25%);\n  }\n}\n"
  },
  {
    "path": "src/plugins/optgroup_columns/plugin.js",
    "content": "/**\n * Plugin: \"optgroup_columns\" (selectize.js)\n * Copyright (c) 2013 Simon Hewitt & contributors\n * Copyright (c) 2020-2023 Selectize Team & contributors*\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Simon Hewitt <si@sjhewitt.co.uk>\n */\n\n/**\n * @author [Simon Hewitt](https://github.com/sjhewitt)\n * @typedef {Object} options Available options for optgroup_columns plugin\n * @param {boolean} [equalizeWidth=true]\n * @param {boolean} [equalizeHeight=true]\n *\n * @example\n * ```js\n * $('select').selectize({\n *  plugins: [\n *    {\n *      optgroup_columns: {\n *        equalizeWidth: false,\n *        equalizeHeight: false,\n *     }\n *   }\n *  ]\n * });\n * ```\n */\nSelectize.define('optgroup_columns', function(options) {\n\tvar self = this;\n\n\toptions = $.extend({\n\t\tequalizeWidth  : true,\n\t\tequalizeHeight : true\n\t}, options);\n\n\tthis.getAdjacentOption = function($option, direction) {\n\t\tvar $options = $option.closest('[data-group]').find('[data-selectable]');\n\t\tvar index    = $options.index($option) + direction;\n\n\t\treturn index >= 0 && index < $options.length ? $options.eq(index) : $();\n\t};\n\n\tthis.onKeyDown = (function() {\n\t\tvar original = self.onKeyDown;\n\t\treturn function(e) {\n\t\t\tvar index, $option, $options, $optgroup;\n\n\t\t\tif (this.isOpen && (e.keyCode === KEY_LEFT || e.keyCode === KEY_RIGHT)) {\n\t\t\t\tself.ignoreHover = true;\n\t\t\t\t$optgroup = this.$activeOption.closest('[data-group]');\n\t\t\t\tindex = $optgroup.find('[data-selectable]').index(this.$activeOption);\n\n\t\t\t\tif(e.keyCode === KEY_LEFT) {\n\t\t\t\t\t$optgroup = $optgroup.prev('[data-group]');\n\t\t\t\t} else {\n\t\t\t\t\t$optgroup = $optgroup.next('[data-group]');\n\t\t\t\t}\n\n\t\t\t\t$options = $optgroup.find('[data-selectable]');\n\t\t\t\t$option  = $options.eq(Math.min($options.length - 1, index));\n\t\t\t\tif ($option.length) {\n\t\t\t\t\tthis.setActiveOption($option);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treturn original.apply(this, arguments);\n\t\t};\n\t})();\n\n\tvar getScrollbarWidth = function() {\n\t\tvar div;\n\t\tvar width = getScrollbarWidth.width;\n\t\tvar doc = document;\n\n\t\tif (typeof width === 'undefined') {\n\t\t\tdiv = doc.createElement('div');\n\t\t\tdiv.innerHTML = '<div style=\"width:50px;height:50px;position:absolute;left:-50px;top:-50px;overflow:auto;\"><div style=\"width:1px;height:100px;\"></div></div>';\n\t\t\tdiv = div.firstChild;\n\t\t\tdoc.body.appendChild(div);\n\t\t\twidth = getScrollbarWidth.width = div.offsetWidth - div.clientWidth;\n\t\t\tdoc.body.removeChild(div);\n\t\t}\n\t\treturn width;\n\t};\n\n\tvar equalizeSizes = function() {\n\t\tvar i, n, height_max, width, width_last, width_parent, $optgroups;\n\n\t\t$optgroups = $('[data-group]', self.$dropdown_content);\n\t\tn = $optgroups.length;\n\t\tif (!n || !self.$dropdown_content.width()) return;\n\n\t\tif (options.equalizeHeight) {\n\t\t\theight_max = 0;\n\t\t\tfor (i = 0; i < n; i++) {\n\t\t\t\theight_max = Math.max(height_max, $optgroups.eq(i).height());\n\t\t\t}\n\t\t\t$optgroups.css({height: height_max});\n\t\t}\n\n\t\tif (options.equalizeWidth) {\n\t\t\twidth_parent = self.$dropdown_content.innerWidth() - getScrollbarWidth();\n\t\t\twidth = Math.round(width_parent / n);\n\t\t\t$optgroups.css({width: width});\n\t\t\tif (n > 1) {\n\t\t\t\twidth_last = width_parent - width * (n - 1);\n\t\t\t\t$optgroups.eq(n - 1).css({width: width_last});\n\t\t\t}\n\t\t}\n\t};\n\n\tif (options.equalizeHeight || options.equalizeWidth) {\n\t\thook.after(this, 'positionDropdown', equalizeSizes);\n\t\thook.after(this, 'refreshOptions', equalizeSizes);\n\t}\n\n\n});\n"
  },
  {
    "path": "src/plugins/optgroup_columns/plugin.less",
    "content": ".selectize-dropdown.plugin-optgroup_columns {\n\t.optgroup {\n\t\tborder-right: 1px solid #f2f2f2;\n\t\tborder-top: 0 none;\n\t\tfloat: left;\n\t\t.selectize-box-sizing(border-box);\n\t}\n\t.optgroup:last-child {\n\t\tborder-right: 0 none;\n\t}\n\t.optgroup:before {\n\t\tdisplay: none;\n\t}\n\t.optgroup-header {\n\t\tborder-top: 0 none;\n\t}\n}"
  },
  {
    "path": "src/plugins/optgroup_columns/plugin.scss",
    "content": ".#{$selectize}-dropdown.plugin-optgroup_columns {\n  .#{$selectize}-dropdown-content {\n    display: flex;\n  }\n\n  .optgroup {\n    border-right: 1px solid #f2f2f2;\n    border-top: 0 none;\n    flex-grow: 1;\n    flex-basis: 0;\n    min-width: 0;\n  }\n  .optgroup:last-child {\n    border-right: 0 none;\n  }\n  .optgroup:before {\n    display: none;\n  }\n  .optgroup-header {\n    border-top: 0 none;\n  }\n}\n"
  },
  {
    "path": "src/plugins/read-only/plugin.js",
    "content": "/**\n * Plugin: \"read-only\" (selectize.js)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n */\n\nSelectize.define('read-only', function(options){\n\tvar self = this;\n\tthis.setup = (function() {\n\t\tvar original = self.setup;\n\t\treturn function() {\n\t\t\toriginal.apply(this, arguments);\n\t\t\tif(this.$dropdown.hasClass(\"read-only\"))this.$control_input.attr('readonly', 'readonly');\n\t\t};\n\t})();\n\tthis.readonly = (function() {\n\t\treturn function(state) {\n\t\t\tif(state){\n\t\t\t\tthis.$control_input.attr('readonly', 'readonly');\n\t\t\t\tthis.$dropdown.addClass(\"read-only\")\n\t\t\t}\n\t\t\telse{\n\t\t\t\tthis.$control_input.removeAttr('readonly');\n\t\t\t\tthis.$dropdown.removeClass(\"read-only\")\n\t\t\t}\n\t\t};\n\t})();\n});\n"
  },
  {
    "path": "src/plugins/remove_button/plugin.js",
    "content": "/**\n * Plugin: \"remove_button\" (selectize.js)\n * Copyright (c) 2013 Brian Reavis & contributors\n * Copyright (c) 2020-2023 Selectize Team & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis <brian@thirdroute.com>\n */\n\n/**\n * @author [Brian Reavis](https://github.com/brianreavis)\n * @typedef {Object} options Object of options available for \"remove_button\" plugin\n * @param {string} [label=&#xd7;] The label value for remove button\n * @param {string} [title=Remove] The Title value for remove button\n * @param {string} [className=remove] Class name for remove button\n * @param {boolean} [append=true] Append remove button to item\n */\nSelectize.define('remove_button', function (options) {\n  if (this.settings.mode === 'single') return;\n\n\toptions = $.extend({\n\t\t\tlabel     : '&#xd7;',\n\t\t\ttitle     : 'Remove',\n\t\t\tclassName : 'remove',\n\t\t\tappend    : true\n\t\t}, options);\n\n\t\tvar multiClose = function(thisRef, options) {\n\n\t\t\tvar self = thisRef;\n\t\t\tvar html = '<a href=\"javascript:void(0)\" class=\"' + options.className + '\" tabindex=\"-1\" title=\"' + escape_html(options.title) + '\">' + options.label + '</a>';\n\n\t\t\t/**\n\t\t\t * Appends an element as a child (with raw HTML).\n\t\t\t *\n\t\t\t * @param {string} html_container\n\t\t\t * @param {string} html_element\n\t\t\t * @return {string}\n\t\t\t */\n\t\t\tvar append = function(html_container, html_element) {\n\t\t\t\tvar pos = html_container.search(/(<\\/[^>]+>\\s*)$/);\n\t\t\t\treturn html_container.substring(0, pos) + html_element + html_container.substring(pos);\n\t\t\t};\n\n\t\t\tthisRef.setup = (function() {\n\t\t\t\tvar original = self.setup;\n\t\t\t\treturn function() {\n\t\t\t\t\t// override the item rendering method to add the button to each\n\t\t\t\t\tif (options.append) {\n\t\t\t\t\t\tvar render_item = self.settings.render.item;\n\t\t\t\t\t\tself.settings.render.item = function(data) {\n\t\t\t\t\t\t\treturn append(render_item.apply(thisRef, arguments), html);\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\toriginal.apply(thisRef, arguments);\n\n\t\t\t\t\t// add event listener\n\t\t\t\t\tthisRef.$control.on('click', '.' + options.className, function(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tif (self.isLocked) return;\n\n\t\t\t\t\t\tvar $item = $(e.currentTarget).parent();\n\t\t\t\t\t\tself.setActiveItem($item);\n\t\t\t\t\t\tif (self.deleteSelection()) {\n\t\t\t\t\t\t\tself.setCaret(self.items.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\n\t\t\t\t};\n\t\t\t})();\n\t\t};\n\n    multiClose(this, options);\n});\n"
  },
  {
    "path": "src/plugins/remove_button/plugin.less",
    "content": ".selectize-control.plugin-remove_button {\n\t[data-value] {\n\t\tposition: relative;\n\t\tpadding-right: 24px !important;\n\t}\n\t[data-value] .remove {\n\t\tz-index: 1; /* fixes ie bug (see #392) */\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\twidth: 17px;\n\t\ttext-align: center;\n\t\tfont-weight: bold;\n\t\tfont-size: 12px;\n\t\tcolor: inherit;\n\t\ttext-decoration: none;\n\t\tvertical-align: middle;\n\t\tdisplay: inline-block;\n\t\tpadding: @selectize-padding-item-y 0 0 0;\n\t\tborder-left: 1px solid @selectize-color-item-border;\n\t\t.selectize-border-radius(0 2px 2px 0);\n\t\t.selectize-box-sizing(border-box);\n\t}\n\t[data-value] .remove:hover {\n\t\tbackground: rgba(0,0,0,0.05);\n\t}\n\t[data-value].active .remove {\n\t\tborder-left-color: @selectize-color-item-active-border;\n\t}\n\t.disabled [data-value] .remove:hover {\n\t\tbackground: none;\n\t}\n\t.disabled [data-value] .remove {\n\t\tborder-left-color: lighten(desaturate(@selectize-color-item-border, 100%), @selectize-lighten-disabled-item-border);\n\t}\n\t.remove-single {\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttop: 0;\n\t\tfont-size: 23px;\n\t}\n}\n"
  },
  {
    "path": "src/plugins/remove_button/plugin.scss",
    "content": ".#{$selectize}-control.plugin-remove_button {\n  .item {\n    display: inline-flex;\n    align-items: center;\n    padding-right: 0 !important;\n  }\n\n  .item .remove {\n    color: inherit;\n    text-decoration: none;\n    vertical-align: middle;\n    display: inline-block;\n    padding: $select-padding-item-y $select-padding-item-x;\n    border-left: 1px solid $select-color-item-border;\n    border-radius: 0 2px 2px 0;\n    box-sizing: border-box;\n    margin-left: $select-padding-item-x;\n  }\n\n  .item .remove:hover {\n    background: rgba(0, 0, 0, 0.05);\n  }\n\n  .item.active .remove {\n    border-left-color: $select-color-item-active-border;\n  }\n\n  .disabled .item .remove:hover {\n    background: none;\n  }\n\n  .disabled .item .remove {\n    border-left-color: lighten(\n      desaturate($select-color-item-border, 100%),\n      $select-lighten-disabled-item-border\n    );\n  }\n}\n"
  },
  {
    "path": "src/plugins/restore_on_backspace/plugin.js",
    "content": "/**\n * Plugin: \"restore_on_backspace\" (selectize.js)\n * Copyright (c) 2013 Brian Reavis & contributors\n * Copyright (c) 2020-2023 Selectize Team & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis <brian@thirdroute.com>\n */\n\n/**\n * @author [Brian Reavis](htts://github.com/brianreavis)\n * @typedef {Object} options Object of options available on restore_on_backspace plugin\n * @param {string} text Text to set on restore\n */\nSelectize.define('restore_on_backspace', function(options) {\n\tvar self = this;\n\n\toptions.text = options.text || function(option) {\n\t\treturn option[this.settings.labelField];\n\t};\n\n\tthis.onKeyDown = (function() {\n\t\tvar original = self.onKeyDown;\n\t\treturn function(e) {\n\t\t\tvar index, option;\n\t\t\tif (e.keyCode === KEY_BACKSPACE && this.$control_input.val() === '' && !this.$activeItems.length) {\n\t\t\t\tindex = this.caretPos - 1;\n\t\t\t\tif (index >= 0 && index < this.items.length) {\n\t\t\t\t\toption = this.options[this.items[index]];\n\t\t\t\t\tif (this.deleteSelection(e)) {\n\t\t\t\t\t\tthis.setTextboxValue(options.text.apply(this, [option]));\n\t\t\t\t\t\tthis.refreshOptions(true);\n\t\t\t\t\t}\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn original.apply(this, arguments);\n\t\t};\n\t})();\n});\n"
  },
  {
    "path": "src/plugins/select_on_focus/plugin.js",
    "content": "Selectize.define('select_on_focus', function(options) {\n\tvar self = this;\n\n\tself.on('focus', function() {\n\t\tvar originalFocus = self.onFocus;\n\t\treturn function(e) {\n\t\t\tvar value = self.getItem(self.getValue()).text();\n\t\t\tself.clear();\n\t\t\tself.setTextboxValue(value);\n\t\t\tself.$control_input.select();\n\t\t\tsetTimeout( function () {\n\t\t\t\tif (self.settings.selectOnTab) {\n\t\t\t\t\tself.setActiveOption(self.getFirstItemMatchedByTextContent(value));\n\t\t\t\t}\n\t\t\t\tself.settings.score = null;\n\t\t\t},0);\n\t\t\treturn originalFocus.apply(this, arguments);\n\t\t};\n\t}());\n\n\tself.onBlur = (function() {\n\t\tvar originalBlur = self.onBlur;\n\t\treturn function(e) {\n\t\t\tif (self.getValue() === \"\" && self.lastValidValue !== self.getValue()) {\n\t\t\t\tself.setValue(self.lastValidValue);\n\t\t\t}\n\t\t\tsetTimeout( function () {\n\t\t\t\tself.settings.score = function() {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\treturn 1;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}, 0 );\n\t\t\treturn originalBlur.apply(this, arguments);\n\t\t}\n\t}());\n\tself.settings.score = function() {\n\t\treturn function() { return 1; };\n\t};\n\n});\n"
  },
  {
    "path": "src/plugins/tag_limit/plugin.js",
    "content": "/**\n * @typedef {Object} options Object of available options for tag_limit plugin\n * @param {number} tagLimit Number of limit tag to display\n */\nSelectize.define('tag_limit', function (options) {\n    const self = this\n    options.tagLimit = options.tagLimit\n    this.onBlur = (function (e) {\n        const original = self.onBlur\n\n        return function (e) {\n            original.apply(this, e);\n            if (!e)\n                return\n            const $control = this.$control\n            const $items = $control.find('.item')\n            const limit = options.tagLimit\n            if (limit === undefined || $items.length <= limit)\n                return\n\n            $items.toArray().forEach(function(item, index) {\n                if (index < limit)\n                    return\n                $(item).hide()\n            });\n\n            $control.append('<span><b>' + ($items.length - limit) + '</b></span>')\n        };\n    })()\n\n    this.onFocus = (function (e) {\n        const original = self.onFocus\n\n        return function (e) {\n            original.apply(this, e);\n            if (!e)\n                return\n            const $control = this.$control\n            const $items = $control.find('.item')\n            $items.show()\n            $control.find('span').remove()\n\n        };\n    })()\n});\n"
  },
  {
    "path": "src/scss/selectize.bootstrap3.scss",
    "content": "@import \"lib/bootstrap-sass/variables\";\n@import \"lib/bootstrap-sass/mixins/_nav-divider\";\n\n$select-font-family: inherit;\n$select-font-size: inherit;\n$select-line-height: $line-height-computed;\n\n$select-color-text: $text-color;\n$select-color-highlight: rgba(255, 237, 40, 0.4);\n$select-color-input: $input-bg;\n$select-color-input-full: $input-bg;\n$select-color-input-error: $state-danger-text;\n$select-color-input-error-focus: darken($select-color-input-error, 10%);\n$select-color-disabled: $input-bg;\n$select-color-item: #efefef;\n$select-color-item-border: rgba(0, 0, 0, 0);\n$select-color-item-active: $component-active-bg;\n$select-color-item-active-text: #fff;\n$select-color-item-active-border: rgba(0, 0, 0, 0);\n$select-color-optgroup: $dropdown-bg;\n$select-color-optgroup-text: $dropdown-header-color;\n$select-color-optgroup-border: $dropdown-divider-bg;\n$select-color-dropdown: $dropdown-bg;\n$select-color-dropdown-border-top: mix($input-border, $input-bg, 80%);\n$select-color-dropdown-item-active: $dropdown-link-hover-bg;\n$select-color-dropdown-item-active-text: $dropdown-link-hover-color;\n$select-color-dropdown-item-create-active-text: $dropdown-link-hover-color;\n$select-opacity-disabled: 0.5;\n$select-shadow-input: none;\n$select-shadow-input-focus: inset 0 1px 2px rgba(0, 0, 0, 0.15);\n$select-shadow-input-error: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n$select-shadow-input-error-focus: inset 0 1px 1px rgba(0, 0, 0, 0.075),\n  0 0 6px lighten($select-color-input-error, 20%);\n$select-border: 1px solid $input-border;\n$select-border-radius: $input-border-radius;\n\n$select-width-item-border: 0px;\n$select-padding-x: $padding-base-horizontal;\n$select-padding-y: $padding-base-vertical;\n$select-padding-dropdown-item-x: $padding-base-horizontal;\n$select-padding-dropdown-item-y: 3px;\n$select-padding-item-x: 5px;\n$select-padding-item-y: 1px;\n$select-margin-item-x: 3px;\n$select-margin-item-y: 3px;\n\n$select-arrow-size: 5px;\n$select-arrow-color: $select-color-text;\n$select-arrow-offset: $select-padding-x + 5px;\n\n@import \"selectize\";\n\n.#{$selectize}-dropdown,\n.#{$selectize}-dropdown.form-control {\n  height: auto;\n  padding: 0;\n  margin: 2px 0 0 0;\n  z-index: $zindex-dropdown;\n  background: $select-color-dropdown;\n  border: 1px solid $dropdown-fallback-border;\n  border: 1px solid $dropdown-border;\n  border-radius: $border-radius-base;\n  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n}\n\n.#{$selectize}-dropdown {\n  .optgroup-header {\n    font-size: $font-size-small;\n    line-height: $line-height-base;\n  }\n  .optgroup:first-child:before {\n    display: none;\n  }\n  .optgroup:before {\n    content: \" \";\n    display: block;\n    @include nav-divider();\n    margin-left: $select-padding-dropdown-item-x * -1;\n    margin-right: $select-padding-dropdown-item-x * -1;\n  }\n}\n\n.#{$selectize}-dropdown-content {\n  padding: 5px 0;\n}\n\n.#{$selectize}-dropdown-emptyoptionlabel {\n\ttext-align: center;\n}\n\n.#{$selectize}-input {\n  min-height: $input-height-base;\n\n  &.dropdown-active {\n    border-radius: $select-border-radius;\n  }\n  &.dropdown-active::before {\n    display: none;\n  }\n  &.focus {\n    $color: $input-border-focus;\n    $color-rgba: rgba(red($color), green($color), blue($color), 0.6);\n    border-color: $color;\n    outline: 0;\n    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px $color-rgba;\n  }\n}\n\n.has-error .#{$selectize}-input {\n  border-color: $select-color-input-error;\n  box-shadow: $select-shadow-input-error;\n\n  &:focus {\n    border-color: $select-color-input-error-focus;\n    box-shadow: $select-shadow-input-error-focus;\n  }\n}\n\n.#{$selectize}-control {\n  &.multi {\n    .#{$selectize}-input.has-items {\n      padding-left: $select-padding-x - $select-padding-item-x;\n      padding-right: $select-padding-x - $select-padding-item-x;\n    }\n    .#{$selectize}-input > div {\n      border-radius: $select-border-radius - 1px;\n    }\n  }\n}\n\n.form-control.#{$selectize}-control {\n  padding: 0;\n  height: auto;\n  border: none;\n  background: none;\n  box-shadow: none;\n  border-radius: 0;\n}\n"
  },
  {
    "path": "src/scss/selectize.bootstrap4.scss",
    "content": "@import \"lib/bootstrap4/functions\";\n@import \"lib/bootstrap4/variables\";\n@import \"lib/bootstrap4/mixins\";\n\n$enable-shadows: true !default;\n$select-font-family: inherit !default;\n$select-font-size: inherit !default;\n$select-line-height: $input-btn-line-height !default; //formerly line-height-computed\n\n$select-color-text: gray(\"800\") !default; //$gray-800\n$select-color-highlight: rgba(255, 237, 40, 0.4) !default;\n$select-color-input: $input-bg !default;\n$select-color-input-full: $input-bg !default;\n$select-color-input-error: theme-color(\"danger\") !default;\n$select-color-input-error-focus: darken(\n  $select-color-input-error,\n  10%\n) !default;\n$select-color-disabled: $input-bg !default;\n$select-color-item: #efefef !default;\n$select-color-item-border: $border-color !default;\n$select-color-item-active: $component-active-bg !default;\n$select-color-item-active-text: #fff !default;\n$select-color-item-active-border: rgba(0, 0, 0, 0) !default;\n$select-color-optgroup: $dropdown-bg !default;\n$select-color-optgroup-text: $dropdown-header-color !default;\n$select-color-optgroup-border: $dropdown-divider-bg !default;\n$select-color-dropdown: $dropdown-bg !default;\n$select-color-dropdown-border-top: mix(\n  $input-border-color,\n  $input-bg,\n  80%\n) !default;\n$select-color-dropdown-item-active: $dropdown-link-hover-bg !default;\n$select-color-dropdown-item-active-text: $dropdown-link-hover-color !default;\n$select-color-dropdown-item-create-active-text: $dropdown-link-hover-color !default;\n$select-opacity-disabled: 0.5 !default;\n$select-shadow-input: none !default;\n$select-shadow-input-focus: inset 0 1px 2px rgba(0, 0, 0, 0.15) !default;\n$select-shadow-input-error: inset 0 1px 1px rgba(0, 0, 0, 0.075) !default;\n$select-shadow-input-error-focus: inset 0 1px 1px rgba(0, 0, 0, 0.075),\n  0 0 6px lighten($select-color-input-error, 20%) !default;\n$select-border: 1px solid $input-border-color !default;\n$select-border-radius: $input-border-radius !default;\n\n$select-width-item-border: 0px !default;\n$select-padding-x: $input-btn-padding-x !default;\n$select-padding-y: $input-btn-padding-y !default;\n$select-padding-dropdown-item-x: $input-btn-padding-x !default;\n$select-padding-dropdown-item-y: 3px !default;\n$select-padding-item-x: 5px !default;\n$select-padding-item-y: 1px !default;\n$select-margin-item-x: 3px !default;\n$select-margin-item-y: 3px !default;\n\n$select-arrow-size: 5px !default;\n$select-arrow-color: $select-color-text !default;\n$select-arrow-offset: calc(#{$select-padding-x} + 5px) !default;\n\n@import \"selectize\";\n\n.#{$selectize}-dropdown,\n.#{$selectize}-dropdown.form-control {\n  height: auto;\n  padding: 0;\n  margin: 2px 0 0 0;\n  z-index: $zindex-dropdown;\n  background: $select-color-dropdown;\n  border: 1px solid $dropdown-border-color; //$dropdown-fallback-border\n  border-radius: $border-radius;\n  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n}\n\n.#{$selectize}-dropdown {\n  .optgroup-header {\n    font-size: $font-size-sm;\n    line-height: $line-height-base;\n  }\n  .optgroup:first-child:before {\n    display: none;\n  }\n  .optgroup:before {\n    content: \" \";\n    display: block;\n    height: 0;\n    margin: $dropdown-divider-margin-y 0;\n    overflow: hidden;\n    border-top: 1px solid $dropdown-divider-bg;\n    margin-left: $select-padding-dropdown-item-x * -1;\n    margin-right: $select-padding-dropdown-item-x * -1;\n  }\n\n  .create {\n    padding-left: $select-padding-dropdown-item-x;\n  }\n}\n\n.#{$selectize}-dropdown-content {\n  padding: 5px 0;\n}\n\n.#{$selectize}-dropdown-emptyoptionlabel {\n\ttext-align: center;\n}\n\n.#{$selectize}-input {\n  min-height: $input-height;\n  @include box-shadow($input-box-shadow);\n  @include transition($input-transition);\n\n  &.dropdown-active {\n    border-radius: $select-border-radius;\n  }\n  &.dropdown-active::before {\n    display: none;\n  }\n  &.focus {\n    border-color: $input-focus-border-color;\n    outline: 0;\n    @if $enable-shadows {\n      box-shadow: $input-box-shadow, $input-focus-box-shadow;\n    } @else {\n      box-shadow: $input-focus-box-shadow;\n    }\n  }\n}\n\n.is-invalid .#{$selectize}-input {\n  border-color: $select-color-input-error;\n  box-shadow: $select-shadow-input-error;\n\n  &:focus {\n    border-color: $select-color-input-error-focus;\n    box-shadow: $select-shadow-input-error-focus;\n  }\n}\n\n.#{$selectize}-control {\n  &.form-control-sm {\n    .#{$selectize}-input.has-items {\n      min-height: $input-height-sm !important;\n      height: $input-height-sm;\n      padding: $input-padding-y-sm $input-padding-x-sm !important;\n      font-size: $input-font-size-sm;\n      line-height: $input-line-height-sm;\n    }\n  }\n\n  &.multi {\n    .#{$selectize}-input.has-items {\n      height: auto;\n      padding-left: calc(#{$select-padding-x} - #{$select-padding-item-x});\n      padding-right: calc(#{$select-padding-x} - #{$select-padding-item-x});\n    }\n    .#{$selectize}-input > div {\n      border-radius: calc(#{$select-border-radius} - 1px);\n    }\n  }\n}\n\n.form-control.#{$selectize}-control {\n  padding: 0;\n  height: auto;\n  border: none;\n  background: none;\n  box-shadow: none;\n  border-radius: 0;\n}\n\n.input-group .#{$selectize}-control:not(:last-child) {\n  .#{$selectize}-input{\n    overflow: unset;\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n}\n\n.input-group .#{$selectize}-control:not(:first-child) {\n  .#{$selectize}-input{\n    overflow: unset;\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n}\n\n// .input-group .#{$selectize}-input {\n//   overflow: unset;\n//   border-radius: 0 $select-border-radius $select-border-radius 0;\n// }\n\n.#{selectize}-dropdown.plugin-auto_position.#{$selectize}-position-top {\n  border-top: $select-border!important;\n  border-bottom: $select-border!important;\n  border-radius: $select-border-radius!important;\n}\n.#{selectize}-control.plugin-auto_position .#{selectize}-input.#{$selectize}-position-top.dropdown-active {\n  border-radius: $select-border-radius!important;\n  border-top: $select-border!important;\n}\n"
  },
  {
    "path": "src/scss/selectize.bootstrap5.scss",
    "content": "@import \"lib/bootstrap5/functions\";\n@import \"lib/bootstrap5/variables\";\n@import \"lib/bootstrap5/mixins\";\n\n$enable-shadows: true !default;\n$select-font-family: inherit !default;\n$select-font-size: inherit !default;\n$select-line-height: $input-btn-line-height !default; //formerly line-height-computed\n\n$select-color-text: $gray-800 !default; //$gray-800\n$select-color-highlight: rgba(255, 237, 40, 0.4) !default;\n$select-color-input: $input-bg !default;\n$select-color-input-full: $input-bg !default;\n$select-color-input-error: $danger !default;\n$select-color-input-error-focus: darken(\n  $select-color-input-error,\n  10%\n) !default;\n$select-color-disabled: $input-bg !default;\n$select-color-item: #efefef !default;\n$select-color-item-border: $border-color !default;\n$select-color-item-active: $component-active-bg !default;\n$select-color-item-active-text: #fff !default;\n$select-color-item-active-border: rgba(0, 0, 0, 0) !default;\n$select-color-optgroup: $dropdown-bg !default;\n$select-color-optgroup-text: $dropdown-header-color !default;\n$select-color-optgroup-border: $dropdown-divider-bg !default;\n$select-color-dropdown: $dropdown-bg !default;\n$select-color-dropdown-border-top: mix(\n  $input-border-color,\n  $input-bg,\n  80%\n) !default;\n$select-color-dropdown-item-active: $dropdown-link-hover-bg !default;\n$select-color-dropdown-item-active-text: $dropdown-link-hover-color !default;\n$select-color-dropdown-item-create-active-text: $dropdown-link-hover-color !default;\n$select-opacity-disabled: 0.5 !default;\n$select-shadow-input: none !default;\n$select-shadow-input-focus: inset 0 1px 2px rgba(0, 0, 0, 0.15) !default;\n$select-shadow-input-error: inset 0 1px 1px rgba(0, 0, 0, 0.075) !default;\n$select-shadow-input-error-focus: inset 0 1px 1px rgba(0, 0, 0, 0.075),\n  0 0 6px lighten($select-color-input-error, 20%) !default;\n$select-border: 1px solid $input-border-color !default;\n$select-border-radius: $input-border-radius !default;\n\n$select-width-item-border: 0px !default;\n$select-padding-x: $input-btn-padding-x !default;\n$select-padding-y: $input-btn-padding-y !default;\n$select-padding-dropdown-item-x: $input-btn-padding-x !default;\n$select-padding-dropdown-item-y: 3px !default;\n$select-padding-item-x: 5px !default;\n$select-padding-item-y: 1px !default;\n$select-margin-item-x: 3px !default;\n$select-margin-item-y: 3px !default;\n\n$select-arrow-size: 5px !default;\n$select-arrow-color: $select-color-text !default;\n$select-arrow-offset: calc(#{$select-padding-x} + 5px) !default;\n\n@import \"selectize\";\n\n.#{$selectize}-dropdown,\n.#{$selectize}-dropdown.form-control {\n  height: auto;\n  padding: 0;\n  margin: 2px 0 0 0;\n  z-index: $zindex-dropdown;\n  background: $select-color-dropdown;\n  border: 1px solid $dropdown-border-color; //$dropdown-fallback-border\n  border-radius: $border-radius;\n  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n}\n\n.#{$selectize}-dropdown {\n  .optgroup-header {\n    font-size: $font-size-sm;\n    line-height: $line-height-base;\n  }\n  .optgroup:first-child:before {\n    display: none;\n  }\n  .optgroup:before {\n    content: \" \";\n    display: block;\n    height: 0;\n    margin: $dropdown-divider-margin-y 0;\n    overflow: hidden;\n    border-top: 1px solid $dropdown-divider-bg;\n    margin-left: $select-padding-dropdown-item-x * -1;\n    margin-right: $select-padding-dropdown-item-x * -1;\n  }\n\n  .create {\n    padding-left: $select-padding-dropdown-item-x;\n  }\n}\n\n.#{$selectize}-dropdown-content {\n  padding: 5px 0;\n}\n\n.#{$selectize}-dropdown-emptyoptionlabel {\n\ttext-align: center;\n}\n\n.#{$selectize}-input {\n  min-height: $input-height;\n  @include box-shadow($input-box-shadow);\n  @include transition($input-transition);\n\n  &.dropdown-active {\n    border-radius: $select-border-radius;\n  }\n  &.dropdown-active::before {\n    display: none;\n  }\n  &.focus {\n    border-color: $input-focus-border-color;\n    outline: 0;\n    @if $enable-shadows {\n      box-shadow: $input-box-shadow, $input-focus-box-shadow;\n    } @else {\n      box-shadow: $input-focus-box-shadow;\n    }\n  }\n}\n\n.is-invalid .#{$selectize}-input {\n  border-color: $select-color-input-error;\n  box-shadow: $select-shadow-input-error;\n\n  &:focus {\n    border-color: $select-color-input-error-focus;\n    box-shadow: $select-shadow-input-error-focus;\n  }\n}\n\n.#{$selectize}-control {\n  &.form-control-sm {\n    .#{$selectize}-input {\n      min-height: $input-height-sm !important;\n      height: $input-height-sm;\n      padding: $input-padding-y-sm $input-padding-x-sm !important;\n      font-size: $input-font-size-sm;\n      line-height: $line-height-sm;\n    }\n  }\n\n  &.multi {\n    .#{$selectize}-input {\n      height: auto;\n      padding-left: calc(#{$select-padding-x} - #{$select-padding-item-x});\n      padding-right: calc(#{$select-padding-x} - #{$select-padding-item-x});\n    }\n    .#{$selectize}-input > div {\n      border-radius: calc(#{$select-border-radius} - 1px);\n    }\n  }\n}\n\n.form-select.#{$selectize}-control,\n.form-control.#{$selectize}-control {\n  padding: 0;\n  height: auto;\n  border: none;\n  background: none;\n  box-shadow: none;\n  border-radius: 0;\n}\n\n.input-group>.input-group-append>.btn, .input-group>.form-control:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group>.input-group-prepend>.btn {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n\n.input-group .#{$selectize}-control:not(:last-child) {\n  .#{$selectize}-input{\n    overflow: unset;\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n}\n\n.input-group .#{$selectize}-control:not(:first-child) {\n  .#{$selectize}-input{\n    overflow: unset;\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n}\n\n.#{selectize}-dropdown.plugin-auto_position.#{$selectize}-position-top {\n  border-top: $select-border!important;\n  border-bottom: $select-border!important;\n  border-radius: $select-border-radius!important;\n}\n.#{selectize}-control.plugin-auto_position .#{selectize}-input.#{$selectize}-position-top.dropdown-active {\n  border-radius: $select-border-radius!important;\n  border-top: $select-border!important;\n}\n"
  },
  {
    "path": "src/scss/selectize.default.scss",
    "content": "$select-color-item: #1da7ee;\n$select-color-item-text: #fff;\n$select-color-item-active-text: #fff;\n$select-color-item-border: #0073bb;\n$select-color-item-active: #92c836;\n$select-color-item-active-border: #00578d;\n$select-width-item-border: 1px;\n\n@import \"selectize.scss\";\n\n.#{$selectize}-control {\n  &.multi {\n    .#{$selectize}-input {\n      &.has-items {\n        $padding-x: $select-padding-x - 3px;\n        padding-left: $padding-x;\n        padding-right: $padding-x;\n      }\n      &.disabled [data-value] {\n        color: #999;\n        text-shadow: none;\n        background: none;\n        box-shadow: none;\n\n        &,\n        .remove {\n          border-color: #e6e6e6;\n        }\n        .remove {\n          background: none;\n        }\n      }\n      [data-value] {\n        text-shadow: 0 1px 0 rgba(0, 51, 83, 0.3);\n        border-radius: 3px;\n        @include selectize-vertical-gradient(#1da7ee, #178ee9);\n        box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2),\n          inset 0 1px rgba(255, 255, 255, 0.03);\n        &.active {\n          @include selectize-vertical-gradient(#008fd8, #0075cf);\n        }\n      }\n    }\n  }\n  &.single {\n    .#{$selectize}-input {\n      box-shadow: 0 1px 0 rgba(0, 0, 0, 0.05),\n        inset 0 1px 0 rgba(255, 255, 255, 0.8);\n      @include selectize-vertical-gradient(#fefefe, #f2f2f2);\n    }\n  }\n}\n\n.#{$selectize}-control.single .#{$selectize}-input,\n.#{$selectize}-dropdown.single {\n  border-color: #b8b8b8;\n}\n\n.#{$selectize}-dropdown {\n  .optgroup-header {\n    padding-top: $select-padding-dropdown-item-y + 2px;\n    font-weight: bold;\n    font-size: 0.85em;\n  }\n  .optgroup {\n    border-top: 1px solid $select-color-dropdown-border-top;\n    &:first-child {\n      border-top: 0 none;\n    }\n  }\n}\n"
  },
  {
    "path": "src/scss/selectize.scss",
    "content": "@use \"sass:math\";\n\n// base styles\n$selectize: \"selectize\" !default;\n$select-font-family: inherit !default;\n$select-font-smoothing: inherit !default;\n$select-font-size: 13px !default;\n$select-line-height: 18px !default;\n\n$select-color-text: #303030 !default;\n$select-color-border: #d0d0d0 !default;\n$select-color-highlight: rgba(125, 168, 208, 0.2) !default;\n$select-color-input: #fff !default;\n$select-color-input-full: $select-color-input !default;\n$select-color-disabled: #fafafa !default;\n$select-color-item: #f2f2f2 !default;\n$select-color-item-text: $select-color-text !default;\n$select-color-item-border: #d0d0d0 !default;\n$select-color-item-active: #e8e8e8 !default;\n$select-color-item-active-text: $select-color-text !default;\n$select-color-item-active-border: #cacaca !default;\n$select-color-dropdown: #fff !default;\n$select-color-dropdown-border: $select-color-border !default;\n$select-color-dropdown-border-top: #f0f0f0 !default;\n$select-color-dropdown-item-active: #f5fafd !default;\n$select-color-dropdown-item-active-text: #495c68 !default;\n$select-color-dropdown-item-create-text: rgba(\n  red($select-color-text),\n  green($select-color-text),\n  blue($select-color-text),\n  0.5\n) !default;\n$select-color-dropdown-item-create-active-text: $select-color-dropdown-item-active-text !default;\n$select-color-optgroup: $select-color-dropdown !default;\n$select-color-optgroup-text: $select-color-text !default;\n$select-lighten-disabled-item: 30% !default;\n$select-lighten-disabled-item-text: 30% !default;\n$select-lighten-disabled-item-border: 30% !default;\n$select-opacity-disabled: 0.5 !default;\n\n$select-shadow-input: inset 0 1px 1px rgba(0, 0, 0, 0.1) !default;\n$select-shadow-input-focus: inset 0 1px 2px rgba(0, 0, 0, 0.15) !default;\n$select-border: 1px solid $select-color-border !default;\n$select-dropdown-border: 1px solid $select-color-dropdown-border !default;\n$select-border-radius: 3px !default;\n\n$select-width-item-border: 0px !default;\n$select-max-height-dropdown: 200px !default;\n\n$select-padding-x: 8px !default;\n$select-padding-y: 8px !default;\n$select-padding-item-x: 6px !default;\n$select-padding-item-y: 2px !default;\n$select-padding-dropdown-item-x: $select-padding-x !default;\n$select-padding-dropdown-item-y: 5px !default;\n$select-margin-item-x: 3px !default;\n$select-margin-item-y: 3px !default;\n\n$select-arrow-size: 5px !default;\n$select-arrow-color: #808080 !default;\n$select-arrow-offset: 15px !default;\n\n$select-caret-margin: 0 0px !default;\n$select-caret-margin-rtl: 0 4px 0 -2px !default;\n\n$select-spinner-size: 30px;\n$select-spinner-border-size: 5px;\n$select-spinner-border-color: $select-color-border;\n\n@mixin selectize-vertical-gradient($color-top, $color-bottom) {\n  background-color: mix($color-top, $color-bottom, 60%);\n  background-image: linear-gradient(to bottom, $color-top, $color-bottom);\n  background-repeat: repeat-x;\n}\n\n@import \"../plugins/drag_drop/plugin.scss\";\n@import \"../plugins/dropdown_header/plugin.scss\";\n@import \"../plugins/optgroup_columns/plugin.scss\";\n@import \"../plugins/remove_button/plugin.scss\";\n@import \"../plugins/clear_button/plugin.scss\";\n@import \"../plugins/auto_position/plugin.scss\";\n\n.#{$selectize}-control {\n  position: relative;\n}\n\n.#{$selectize}-dropdown,\n.#{$selectize}-input,\n.#{$selectize}-input input {\n  color: $select-color-text;\n  font-family: $select-font-family;\n  font-size: $select-font-size;\n  line-height: $select-line-height;\n  font-smoothing: $select-font-smoothing;\n}\n\n.#{$selectize}-input,\n.#{$selectize}-control.single .#{$selectize}-input.input-active {\n  background: $select-color-input;\n  cursor: text;\n  display: inline-block;\n}\n\n.#{$selectize}-input {\n  border: $select-border;\n  padding: $select-padding-y $select-padding-x;\n  display: inline-block;\n  width: 100%;\n  // overflow: hidden;\n  position: relative;\n  z-index: 1;\n  box-sizing: border-box;\n  box-shadow: $select-shadow-input;\n  border-radius: $select-border-radius;\n\n  .#{$selectize}-control.multi &.has-items {\n    $padding-x: $select-padding-x;\n    $padding-top: calc(\n      #{$select-padding-y} - #{$select-padding-item-y} - #{$select-width-item-border}\n    );\n    $padding-bottom: calc(\n      #{$select-padding-y} - #{$select-padding-item-y} - #{$select-margin-item-y} -\n        #{$select-width-item-border}\n    );\n    padding: $padding-top $padding-x $padding-bottom;\n  }\n\n  &.full {\n    background-color: $select-color-input-full;\n  }\n  &.disabled,\n  &.disabled * {\n    cursor: default !important;\n  }\n  &.focus {\n    box-shadow: $select-shadow-input-focus;\n  }\n  &.dropdown-active {\n    border-radius: $select-border-radius $select-border-radius 0 0;\n  }\n\n  > * {\n    vertical-align: baseline;\n    display: inline-block;\n    zoom: 1;\n  }\n  .#{$selectize}-control.multi & > div {\n    cursor: pointer;\n    margin: 0 $select-margin-item-x $select-margin-item-y 0;\n    padding: $select-padding-item-y $select-padding-item-x;\n    background: $select-color-item;\n    color: $select-color-item-text;\n    border: $select-width-item-border solid $select-color-item-border;\n\n    &.active {\n      background: $select-color-item-active;\n      color: $select-color-item-active-text;\n      border: $select-width-item-border solid $select-color-item-active-border;\n    }\n  }\n  .#{$selectize}-control.multi &.disabled > div {\n    &,\n    &.active {\n      color: lighten(\n        desaturate($select-color-item-text, 100%),\n        $select-lighten-disabled-item-text\n      );\n      background: lighten(\n        desaturate($select-color-item, 100%),\n        $select-lighten-disabled-item\n      );\n      border: $select-width-item-border solid\n        lighten(\n          desaturate($select-color-item-border, 100%),\n          $select-lighten-disabled-item-border\n        );\n    }\n  }\n  > input {\n    &::-ms-clear {\n      display: none;\n    }\n    display: inline-block !important;\n    padding: 0 !important;\n    min-height: 0 !important;\n    max-height: none !important;\n    max-width: 100% !important;\n    margin: 0 !important;\n    text-indent: 0 !important;\n    border: 0 none !important;\n    background: none !important;\n    line-height: inherit !important;\n    user-select: auto !important;\n    box-shadow: none !important;\n    &:focus {\n      outline: none !important;\n    }\n\n    &[placeholder] {\n      box-sizing: initial;\n    }\n  }\n  &.has-items > input {\n    margin: $select-caret-margin !important;\n  }\n}\n\n.#{$selectize}-input::after {\n  content: \" \";\n  display: block;\n  clear: left;\n}\n\n.#{$selectize}-input.dropdown-active::before {\n  content: \" \";\n  display: block;\n  position: absolute;\n  background: $select-color-dropdown-border-top;\n  height: 1px;\n  bottom: 0;\n  left: 0;\n  right: 0;\n}\n\n.#{$selectize}-dropdown {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  width: 100%;\n  z-index: 10;\n\n  border: $select-dropdown-border;\n  background: $select-color-dropdown;\n  margin: -1px 0 0 0;\n  border-top: 0 none;\n  box-sizing: border-box;\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n  border-radius: 0 0 $select-border-radius $select-border-radius;\n\n  [data-selectable] {\n    cursor: pointer;\n    overflow: hidden;\n    .highlight {\n      background: $select-color-highlight;\n      border-radius: 1px;\n    }\n  }\n  .option,\n  .optgroup-header,\n  .no-results,\n  .create {\n    padding: $select-padding-dropdown-item-y $select-padding-dropdown-item-x;\n  }\n  .option,\n  [data-disabled],\n  [data-disabled] [data-selectable].option {\n    cursor: inherit;\n    opacity: 0.5;\n  }\n  [data-selectable].option {\n    opacity: 1;\n    cursor: pointer;\n  }\n  .optgroup:first-child .optgroup-header {\n    border-top: 0 none;\n  }\n  .optgroup-header {\n    color: $select-color-optgroup-text;\n    background: $select-color-optgroup;\n    cursor: default;\n  }\n  .active {\n    background-color: $select-color-item-active;\n    color: $select-color-item-active-text;\n    &.create {\n      color: $select-color-dropdown-item-create-active-text;\n    }\n  }\n\n  .selected {\n    background-color: $select-color-item-active;\n    color: $select-color-item-active-text;\n  }\n  .create {\n    color: $select-color-dropdown-item-create-text;\n  }\n\n  .active:not(.selected) {\n    background: $select-color-dropdown-item-active;\n    color: $select-color-dropdown-item-active-text;\n  }\n}\n\n.#{$selectize}-dropdown-content {\n  overflow-y: auto;\n  overflow-x: hidden;\n  max-height: $select-max-height-dropdown;\n  overflow-scrolling: touch;\n}\n\n.#{$selectize}-dropdown-emptyoptionlabel {\n\ttext-align: center;\n}\n\n.#{$selectize}-dropdown .spinner {\n  display: inline-block;\n  width: $select-spinner-size;\n  height: $select-spinner-size;\n  margin: $select-padding-dropdown-item-y $select-padding-dropdown-item-x;\n\n  &:after {\n    content: \" \";\n    display: block;\n    width: $select-spinner-size * 0.8;\n    height: $select-spinner-size * 0.8;\n    margin: $select-spinner-size * 0.1;\n    border-radius: 50%;\n    border: $select-spinner-border-size solid $select-spinner-border-color;\n    border-color: $select-spinner-border-color transparent\n      $select-spinner-border-color transparent;\n    animation: lds-dual-ring 1.2s linear infinite;\n  }\n  @keyframes lds-dual-ring {\n    0% {\n      transform: rotate(0deg);\n    }\n    100% {\n      transform: rotate(360deg);\n    }\n  }\n}\n\n.#{$selectize}-control.single .#{$selectize}-input {\n  &,\n  input {\n    cursor: pointer;\n  }\n  &.input-active,\n  &.input-active input:not(:read-only) {\n    cursor: text;\n  }\n\n  &:not(.no-arrow):after {\n    content: \" \";\n    display: block;\n    position: absolute;\n    top: 50%;\n    right: $select-arrow-offset;\n    margin-top: round(math.div(-1 * $select-arrow-size, 2));\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: $select-arrow-size $select-arrow-size 0 $select-arrow-size;\n    border-color: $select-arrow-color transparent transparent transparent;\n  }\n  &:not(.no-arrow).dropdown-active:after {\n    margin-top: $select-arrow-size * -0.8;\n    border-width: 0 $select-arrow-size $select-arrow-size $select-arrow-size;\n    border-color: transparent transparent $select-arrow-color transparent;\n  }\n}\n\n.#{$selectize}-control.rtl {\n  text-align: right;\n  &.single .#{$selectize}-input:after {\n    left: $select-arrow-offset;\n    right: auto;\n  }\n  .#{$selectize}-input > input {\n    margin: $select-caret-margin-rtl !important;\n  }\n}\n\n.#{$selectize}-control .#{$selectize}-input.disabled {\n  opacity: $select-opacity-disabled;\n  background-color: $select-color-disabled;\n}\n"
  },
  {
    "path": "src/selectize.jquery.js",
    "content": "$.fn.selectize = function (settings_user) {\n  var defaults = $.fn.selectize.defaults;\n  var settings = $.extend({}, defaults, settings_user);\n  var attr_data = settings.dataAttr;\n  var field_label = settings.labelField;\n  var field_value = settings.valueField;\n  var field_disabled = settings.disabledField;\n  var field_optgroup = settings.optgroupField;\n  var field_optgroup_label = settings.optgroupLabelField;\n  var field_optgroup_value = settings.optgroupValueField;\n\n  /**\n   * Initializes selectize from a <input type=\"text\"> element.\n   *\n   * @param {JQuery} $input\n   * @param {Object} settings_element\n   */\n  var init_textbox = function ($input, settings_element) {\n    var i, n, values, option;\n\n    var data_raw = $input.attr(attr_data);\n\n    if (!data_raw) {\n      var value = ($input.val() || '').trim();\n      if (!settings.allowEmptyOption && !value.length) return;\n      values = value.split(settings.delimiter);\n      for (i = 0, n = values.length; i < n; i++) {\n        option = {};\n        option[field_label] = values[i];\n        option[field_value] = values[i];\n        settings_element.options.push(option);\n      }\n      settings_element.items = values;\n    } else {\n      settings_element.options = JSON.parse(data_raw);\n      for (i = 0, n = settings_element.options.length; i < n; i++) {\n        settings_element.items.push(settings_element.options[i][field_value]);\n      }\n    }\n  };\n\n  /**\n   * Initializes selectize from a <select> element.\n   *\n   * @param {object} $input\n   * @param {object} settings_element\n   */\n  var init_select = function ($input, settings_element) {\n    var i, n, tagName, $children, order = 0;\n    var options = settings_element.options;\n    var optionsMap = {};\n\n    var readData = function ($el) {\n      var data = attr_data && $el.attr(attr_data);\n      var allData = $el.data();\n      var obj = {};\n\n      if (typeof data === 'string' && data.length) {\n        if (isJSON(data)) {\n          Object.assign(obj, JSON.parse(data))\n        } else {\n          obj[data] = data;\n        }\n      }\n\n\n      Object.assign(obj, allData);\n\n      return obj || null;\n    };\n\n    var addOption = function ($option, group) {\n      $option = $($option);\n\n      var value = hash_key($option.val());\n      if (!value && !settings.allowEmptyOption) return;\n\n      // if the option already exists, it's probably been\n      // duplicated in another optgroup. in this case, push\n      // the current group to the \"optgroup\" property on the\n      // existing option so that it's rendered in both places.\n      if (optionsMap.hasOwnProperty(value)) {\n        if (group) {\n          var arr = optionsMap[value][field_optgroup];\n          if (!arr) {\n            optionsMap[value][field_optgroup] = group;\n          } else if (!Array.isArray(arr)) {\n            optionsMap[value][field_optgroup] = [arr, group];\n          } else {\n            arr.push(group);\n          }\n        }\n        return;\n      }\n\n      var option = readData($option) || {};\n      option[field_value] = option[field_value] || value;\n      option[field_label] = option[field_label] || $option.text() || option[field_value];\n      option[field_disabled] = option[field_disabled] || $option.prop('disabled');\n      option[field_optgroup] = option[field_optgroup] || group;\n      option.styles = $option.attr('style') || '';\n      option.classes = $option.attr('class') || '';\n\n      optionsMap[value] = option;\n      options.push(option);\n\n      if ($option.is(':selected')) {\n        settings_element.items.push(value);\n      }\n    };\n\n    var addGroup = function ($optgroup) {\n      var i, n, id, optgroup, $options;\n\n      $optgroup = $($optgroup);\n      id = $optgroup.attr('label');\n\n      if (id) {\n        optgroup = readData($optgroup) || {};\n        optgroup[field_optgroup_label] = id;\n        optgroup[field_optgroup_value] = id;\n        optgroup[field_disabled] = $optgroup.prop('disabled');\n        settings_element.optgroups.push(optgroup);\n      }\n\n      $options = $('option', $optgroup);\n      for (i = 0, n = $options.length; i < n; i++) {\n        addOption($options[i], id);\n      }\n    };\n\n    settings_element.maxItems = $input.attr('multiple') ? null : 1;\n\n    $children = $input.children();\n    for (i = 0, n = $children.length; i < n; i++) {\n      tagName = $children[i].tagName.toLowerCase();\n      if (tagName === 'optgroup') {\n        addGroup($children[i]);\n      } else if (tagName === 'option') {\n        addOption($children[i]);\n      }\n    }\n  };\n\n  return this.each(function () {\n    if (this.selectize) return;\n\n    var instance;\n    var $input = $(this);\n    var tag_name = this.tagName.toLowerCase();\n    var placeholder = $input.attr('placeholder') || $input.attr('data-placeholder');\n    if (!placeholder && !settings.allowEmptyOption) {\n      placeholder = $input.children('option[value=\"\"]').text();\n    }\n    if (settings.allowEmptyOption && settings.showEmptyOptionInDropdown && !$input.children('option[value=\"\"]').length) {\n      var input_html = $input.html();\n      var label = escape_html(settings.emptyOptionLabel || '--');\n      $input.html('<option value=\"\">' + label + '</option>' + input_html);\n    }\n\n    var settings_element = {\n      'placeholder': placeholder,\n      'options': [],\n      'optgroups': [],\n      'items': []\n    };\n\n    if (tag_name === 'select') {\n      init_select($input, settings_element);\n    } else {\n      init_textbox($input, settings_element);\n    }\n\n    instance = new Selectize($input, $.extend(true, {}, defaults, settings_element, settings_user));\n    instance.settings_user = settings_user;\n  });\n};\n\n$.fn.selectize.defaults = Selectize.defaults;\n$.fn.selectize.support = {\n  validity: SUPPORTS_VALIDITY_API\n};\n"
  },
  {
    "path": "src/selectize.js",
    "content": "/**\n *\n * Selectize instance\n * @param {JQuery} $input Jquery object of target element to Selectized\n * @param {Object} settings Options to apply for selectized element\n *\n */\nvar Selectize = function($input, settings) {\n\tvar key, i, n, dir, input, self = this;\n\tinput = $input[0];\n\tinput.selectize = self;\n\n\t// detect rtl environment\n\tvar computedStyle = window.getComputedStyle && window.getComputedStyle(input, null);\n\tdir = computedStyle ? computedStyle.getPropertyValue('direction') : input.currentStyle && input.currentStyle.direction;\n  dir = dir || $input.parents('[dir]:first').attr('dir') || '';\n\n  self.settings = {};\n\n\t// setup default state\n\t$.extend(self, {\n\t\torder            : 0,\n\t\tsettings         : settings,\n\t\t$input           : $input,\n\t\ttabIndex         : $input.attr('tabindex') || '',\n\t\ttagType          : input.tagName.toLowerCase() === 'select' ? TAG_SELECT : TAG_INPUT,\n\t\trtl              : /rtl/i.test(dir),\n\n\t\teventNS          : '.selectize' + (++Selectize.count),\n\t\thighlightedValue : null,\n\t\tisBlurring       : false,\n\t\tisOpen           : false,\n\t\tisDisabled       : false,\n\t\tisRequired       : $input.is('[required]'),\n\t\tisInvalid        : false,\n\t\tisLocked         : false,\n\t\tisFocused        : false,\n\t\tisInputHidden    : false,\n\t\tisSetup          : false,\n\t\tisShiftDown      : false,\n\t\tisCmdDown        : false,\n\t\tisCtrlDown       : false,\n\t\tignoreFocus      : false,\n\t\tignoreBlur       : false,\n\t\tignoreHover      : false,\n\t\thasOptions       : false,\n\t\tcurrentResults   : null,\n\t\tlastValue        : '',\n\t\tlastValidValue   : '',\n\t\tlastOpenTarget   : false,\n\t\tcaretPos         : 0,\n\t\tloading          : 0,\n\t\tloadedSearches   : {},\n    isDropdownClosing: false,\n\n\t\t$activeOption    : null,\n\t\t$activeItems     : [],\n\n\t\toptgroups        : {},\n\t\toptions          : {},\n\t\tuserOptions      : {},\n\t\titems            : [],\n\t\trenderCache      : {},\n\t\tonSearchChange   : settings.loadThrottle === null ? self.onSearchChange : debounce(self.onSearchChange, settings.loadThrottle)\n\t});\n\n\t// search system\n\tself.sifter = new Sifter(this.options, {diacritics: settings.diacritics});\n\n\t// build options table\n\tif (self.settings.options) {\n\t\tfor (i = 0, n = self.settings.options.length; i < n; i++) {\n\t\t\tself.registerOption(self.settings.options[i]);\n\t\t}\n\t\tdelete self.settings.options;\n  }\n\n\t// build optgroup table\n\tif (self.settings.optgroups) {\n\t\tfor (i = 0, n = self.settings.optgroups.length; i < n; i++) {\n\t\t\tself.registerOptionGroup(self.settings.optgroups[i]);\n\t\t}\n\t\tdelete self.settings.optgroups;\n\t}\n\n\t// option-dependent defaults\n\tself.settings.mode = self.settings.mode || (self.settings.maxItems === 1 ? 'single' : 'multi');\n\tif (typeof self.settings.hideSelected !== 'boolean') {\n\t\tself.settings.hideSelected = self.settings.mode === 'multi';\n\t}\n\n\tself.initializePlugins(self.settings.plugins);\n\tself.setupCallbacks();\n\tself.setupTemplates();\n\tself.setup();\n};\n\n// mixins\n// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\nMicroEvent.mixin(Selectize);\nMicroPlugin.mixin(Selectize);\n\n// methods\n// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n$.extend(Selectize.prototype, {\n\n\t/**\n\t * Creates all elements and sets up event bindings.\n\t */\n\tsetup: function() {\n\t\tvar self      = this;\n\t\tvar settings  = self.settings;\n\t\tvar eventNS   = self.eventNS;\n\t\tvar $window   = $(window);\n\t\tvar $document = $(document);\n\t\tvar $input    = self.$input;\n\n\t\tvar $wrapper;\n\t\tvar $control;\n\t\tvar $control_input;\n\t\tvar $dropdown;\n\t\tvar $dropdown_content;\n\t\tvar $dropdown_parent;\n\t\tvar inputMode;\n\t\tvar timeout_blur;\n\t\tvar timeout_focus;\n\t\tvar classes;\n\t\tvar classes_plugins;\n\t\tvar inputId;\n    var noArrowClass;\n\n\t\tinputMode         = self.settings.mode;\n    classes           = $input.attr('class') || '';\n    noArrowClass      = settings.showArrow ? '' : ' no-arrow';\n\n    $wrapper          = $('<div>').addClass(settings.wrapperClass).addClass(classes + ' selectize-control').addClass(inputMode);\n\t\t$control          = $('<div>').addClass(settings.inputClass + noArrowClass + ' selectize-input items').appendTo($wrapper);\n\t\t$control_input    = $('<input type=\"text\" autocomplete=\"new-password\" autofill=\"no\" />').appendTo($control).attr('tabindex', $input.is(':disabled') ? '-1' : self.tabIndex);\n\t\t$dropdown_parent  = $(settings.dropdownParent || $wrapper);\n\t\t$dropdown         = $('<div>').addClass(settings.dropdownClass).addClass(inputMode + ' selectize-dropdown').hide().appendTo($dropdown_parent);\n\t\t$dropdown_content = $('<div>').addClass(settings.dropdownContentClass + ' selectize-dropdown-content').attr('tabindex', '-1').appendTo($dropdown);\n\n\t\tif(inputId = $input.attr('id')) {\n\t\t\t$control_input.attr('id', inputId + '-selectized');\n\t\t\t$(\"label[for='\"+inputId+\"']\").attr('for', inputId + '-selectized');\n\t\t}\n\n\t\tif(self.settings.copyClassesToDropdown) {\n\t\t\t$dropdown.addClass(classes);\n\t\t}\n\n\t\t$wrapper.css({\n\t\t\twidth: $input[0].style.width\n\t\t});\n\n\t\tif (self.plugins.names.length) {\n\t\t\tclasses_plugins = 'plugin-' + self.plugins.names.join(' plugin-');\n\t\t\t$wrapper.addClass(classes_plugins);\n\t\t\t$dropdown.addClass(classes_plugins);\n\t\t}\n\n\t\tif ((settings.maxItems === null || settings.maxItems > 1) && self.tagType === TAG_SELECT) {\n\t\t\t$input.attr('multiple', 'multiple');\n\t\t}\n\n\t\tif (self.settings.placeholder) {\n\t\t\t$control_input.attr('placeholder', settings.placeholder);\n\t\t}\n\n    // to have an identical rendering to a simple select (usefull for mobile device and do not open keyboard)\n    if (!self.settings.search) {\n      $control_input.attr('readonly', true);\n\t    $control_input.attr('inputmode', 'none');\n      $control.css('cursor', 'pointer');\n    }\n\n\t\t// if splitOn was not passed in, construct it from the delimiter to allow pasting universally\n\t\tif (!self.settings.splitOn && self.settings.delimiter) {\n\t\t\tvar delimiterEscaped = self.settings.delimiter.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\t\t\tself.settings.splitOn = new RegExp('\\\\s*' + delimiterEscaped + '+\\\\s*');\n\t\t}\n\n\t\tif ($input.attr('autocorrect')) {\n\t\t\t$control_input.attr('autocorrect', $input.attr('autocorrect'));\n\t\t}\n\n\t\tif ($input.attr('autocapitalize')) {\n\t\t\t$control_input.attr('autocapitalize', $input.attr('autocapitalize'));\n\t\t}\n\t\tif ($input.is('input')) {\n\t\t\t$control_input[0].type = $input[0].type;\n\t\t}\n\n\t\tself.$wrapper          = $wrapper;\n\t\tself.$control          = $control;\n\t\tself.$control_input    = $control_input;\n\t\tself.$dropdown         = $dropdown;\n\t\tself.$dropdown_content = $dropdown_content;\n\n\t\t$dropdown.on('mouseenter mousedown mouseup click', '[data-disabled]>[data-selectable]', function(e) { e.stopImmediatePropagation(); });\n\t\t$dropdown.on('mouseenter', '[data-selectable]', function() { return self.onOptionHover.apply(self, arguments); });\n\t\t$dropdown.on('mouseup click', '[data-selectable]', function() { return self.onOptionSelect.apply(self, arguments); });\n\t\twatchChildEvent($control, 'mouseup', '*:not(input)', function() { return self.onItemSelect.apply(self, arguments); });\n\t\tautoGrow($control_input);\n\n\t\t$control.on({\n\t\t\tmousedown : function() { return self.onMouseDown.apply(self, arguments); },\n\t\t\tclick     : function() { return self.onClick.apply(self, arguments); }\n\t\t});\n\n\t\t$control_input.on({\n\t\t\tmousedown : function(e) {\n\t\t\t\tif (self.$control_input.val() !== '' || self.settings.openOnFocus) {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t}\n\t\t\t},\n\t\t\tkeydown   : function() { return self.onKeyDown.apply(self, arguments); },\n\t\t\tkeypress  : function() { return self.onKeyPress.apply(self, arguments); },\n\t\t\tinput     : function() { return self.onInput.apply(self, arguments); },\n\t\t\tresize    : function() { self.positionDropdown.apply(self, []); },\n\t\t\tblur      : function() { return self.onBlur.apply(self, arguments); },\n\t\t\tfocus     : function() { return self.onFocus.apply(self, arguments); },\n\t\t\tpaste     : function() { return self.onPaste.apply(self, arguments); }\n\t\t});\n\n\t\t$document.on('keydown' + eventNS, function(e) {\n\t\t\tself.isCmdDown = e[IS_MAC ? 'metaKey' : 'ctrlKey'];\n\t\t\tself.isCtrlDown = e[IS_MAC ? 'altKey' : 'ctrlKey'];\n\t\t\tself.isShiftDown = e.shiftKey;\n\t\t});\n\n\t\t$document.on('keyup' + eventNS, function(e) {\n\t\t\tif (e.keyCode === KEY_CTRL) self.isCtrlDown = false;\n\t\t\tif (e.keyCode === KEY_SHIFT) self.isShiftDown = false;\n\t\t\tif (e.keyCode === KEY_CMD) self.isCmdDown = false;\n\t\t});\n\n\t\t$document.on('mousedown' + eventNS, function(e) {\n\t\t\tif (self.isFocused) {\n\t\t\t\t// prevent events on the dropdown from causing the control to blur\n\t\t\t\tif (\n\t\t\t\t\te.target === self.$dropdown[0] ||\n\t\t\t\t\tself.$dropdown.has(e.target).length)\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t// blur on click outside\n\t\t\t\tif (e.target !== self.$control[0]) {\n\t\t\t\t\tself.blur(e.target);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t$window.on(['scroll' + eventNS, 'resize' + eventNS].join(' '), function() {\n\t\t\tif (self.isOpen) {\n\t\t\t\tself.positionDropdown.apply(self, arguments);\n\t\t\t}\n\t\t});\n\t\t$window.on('mousemove' + eventNS, function() {\n      self.ignoreHover = self.settings.ignoreHover;\n\t\t});\n\n\t\t// store original children and tab index so that they can be\n\t\t// restored when the destroy() method is called.\n\t\t// Detach children outside of DOM to prevent slowdown on large selects\n    var inputPlaceholder = $('<div></div>');\n\t\tvar inputChildren = $input.children().detach();\n\n    $input.replaceWith(inputPlaceholder);\n    inputPlaceholder.replaceWith($input);\n\n    this.revertSettings = {\n\t\t\t$children : inputChildren,\n\t\t\ttabindex  : $input.attr('tabindex')\n\t\t};\n\n\t\t$input.attr('tabindex', -1).hide().after(self.$wrapper);\n\n\t\tif (Array.isArray(settings.items)) {\n\t\t\tself.lastValidValue = settings.items;\n\t\t\tself.setValue(settings.items);\n\t\t\tdelete settings.items;\n\t\t}\n\n\t\t// feature detect for the validation API\n\t\tif (SUPPORTS_VALIDITY_API) {\n\t\t\t$input.on('invalid' + eventNS, function(e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.isInvalid = true;\n\t\t\t\tself.refreshState();\n\t\t\t});\n\t\t}\n\n\t\tself.updateOriginalInput();\n\t\tself.refreshItems();\n\t\tself.refreshState();\n\t\tself.updatePlaceholder();\n\t\tself.isSetup = true;\n\n\t\tif ($input.is(':disabled')) {\n\t\t\tself.disable();\n\t\t}\n\n\t\tself.on('change', this.onChange);\n\n\t\t$input.data('selectize', self);\n\t\t$input.addClass('selectized');\n\t\tself.trigger('initialize');\n\n\t\t// preload options\n\t\tif (settings.preload === true) {\n\t\t\tself.onSearchChange('');\n\t\t}\n\n\t},\n\n\t/**\n\t * Sets up default rendering functions.\n\t */\n\tsetupTemplates: function() {\n\t\tvar self = this;\n\t\tvar field_label = self.settings.labelField;\n\t\tvar field_value = self.settings.valueField;\n\t\tvar field_optgroup = self.settings.optgroupLabelField;\n\n\t\tvar templates = {\n\t\t\t'optgroup': function(data) {\n\t\t\t\treturn '<div class=\"optgroup\">' + data.html + '</div>';\n\t\t\t},\n\t\t\t'optgroup_header': function(data, escape) {\n\t\t\t\treturn '<div class=\"optgroup-header\">' + escape(data[field_optgroup]) + '</div>';\n\t\t\t},\n\t\t\t'option': function(data, escape) {\n        var classes = data.classes ? ' ' + data.classes : '';\n        classes += data[field_value] === '' ? ' selectize-dropdown-emptyoptionlabel' : '';\n\n        var styles = data.styles ? ' style=\"' + data.styles +  '\"': '';\n\t\t\t\treturn '<div' + styles + ' class=\"option' + classes + '\">' + escape(data[field_label]) + '</div>';\n\t\t\t},\n\t\t\t'item': function(data, escape) {\n\t\t\t\treturn '<div class=\"item\">' + escape(data[field_label]) + '</div>';\n\t\t\t},\n\t\t\t'option_create': function(data, escape) {\n\t\t\t\treturn '<div class=\"create\">Add <strong>' + escape(data.input) + '</strong>&#x2026;</div>';\n\t\t\t}\n\t\t};\n\n\t\tself.settings.render = $.extend({}, templates, self.settings.render);\n\t},\n\n\t/**\n\t * Maps fired events to callbacks provided\n\t * in the settings used when creating the control.\n\t */\n\tsetupCallbacks: function() {\n\t\tvar key, fn, callbacks = {\n\t\t\t'initialize'      : 'onInitialize',\n\t\t\t'change'          : 'onChange',\n\t\t\t'item_add'        : 'onItemAdd',\n\t\t\t'item_remove'     : 'onItemRemove',\n\t\t\t'clear'           : 'onClear',\n\t\t\t'option_add'      : 'onOptionAdd',\n\t\t\t'option_remove'   : 'onOptionRemove',\n\t\t\t'option_clear'    : 'onOptionClear',\n\t\t\t'optgroup_add'    : 'onOptionGroupAdd',\n\t\t\t'optgroup_remove' : 'onOptionGroupRemove',\n\t\t\t'optgroup_clear'  : 'onOptionGroupClear',\n\t\t\t'dropdown_open'   : 'onDropdownOpen',\n\t\t\t'dropdown_close'  : 'onDropdownClose',\n\t\t\t'type'            : 'onType',\n\t\t\t'load'            : 'onLoad',\n\t\t\t'focus'           : 'onFocus',\n\t\t\t'blur'            : 'onBlur',\n\t\t\t'dropdown_item_activate'        : 'onDropdownItemActivate',\n\t\t\t'dropdown_item_deactivate'      : 'onDropdownItemDeactivate'\n\t\t};\n\n\t\tfor (key in callbacks) {\n\t\t\tif (callbacks.hasOwnProperty(key)) {\n\t\t\t\tfn = this.settings[callbacks[key]];\n\t\t\t\tif (fn) this.on(key, fn);\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Triggered when the main control element\n\t * has a click event.\n\t *\n\t * @param {PointerEvent} e\n\t * @return {boolean}\n\t */\n\tonClick: function(e) {\n\t\tvar self = this;\n\n    // if the dropdown is closing due to a mousedown, we don't want to\n    // refocus the element.\n    if (self.isDropdownClosing) {\n      return;\n    }\n\n\t\t// necessary for mobile webkit devices (manual focus triggering\n\t\t// is ignored unless invoked within a click event)\n    // also necessary to reopen a dropdown that has been closed by\n    // closeAfterSelect\n\t\tif (!self.isFocused || !self.isOpen) {\n\t\t\tself.focus();\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\n\t/**\n\t * Triggered when the main control element\n\t * has a mouse down event.\n\t *\n\t * @param {object} e\n\t * @return {boolean}\n\t */\n\tonMouseDown: function(e) {\n\t\tvar self = this;\n\t\tvar defaultPrevented = e.isDefaultPrevented();\n\t\tvar $target = $(e.target);\n\n    // prevent right click on option\n\t\tif (e.button && e.button === 2) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!self.isFocused) {\n\t\t\t// give control focus\n\t\t\tif (!defaultPrevented) {\n        window.setTimeout(function () {\n          if (!self.isOpen) {\n            self.focus();\n          }\n        }, 0);\n\t\t\t}\n\t\t}\n\t\t// retain focus by preventing native handling. if the\n\t\t// event target is the input it should not be modified.\n\t\t// otherwise, text selection within the input won't work.\n\t\tif ($target !== self.$control_input[0] || self.$control_input.val() === '') {\n\t\t\tif (self.settings.mode === 'single') {\n\t\t\t\t// toggle dropdown\n\t\t\t\tself.isOpen ? self.close() : self.open();\n\t\t\t} else {\n\t\t\t\tif (!defaultPrevented) {\n\t\t\t\t\t\tself.setActiveItem(null);\n\t\t\t\t}\n\t\t\t\tif (!self.settings.openOnFocus) {\n\t\t\t\t\tif (self.isOpen && $target === self.lastOpenTarget) {\n\t\t\t\t\t\tself.close();\n\t\t\t\t\t\tself.lastOpenTarget = false;\n\t\t\t\t\t} else if (!self.isOpen) {\n\t\t\t\t\t\tself.refreshOptions();\n\t\t\t\t\t\tself.open();\n\t\t\t\t\t\tself.lastOpenTarget = $target;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.lastOpenTarget = $target;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t},\n\n\t/**\n\t * Triggered when the value of the control has been changed.\n\t * This should propagate the event to the original DOM\n\t * input / select element.\n\t */\n\tonChange: function() {\n\t\tvar self = this;\n\t\tif (self.getValue() !== \"\") {\n\t\t\tself.lastValidValue = self.getValue();\n\t\t}\n\t\tthis.$input.trigger('input');\n\t\tthis.$input.trigger('change');\n\t},\n\n\t/**\n\t * Triggered on `<input>` paste.\n\t *\n\t * @param {object} e\n\t * @returns {boolean}\n\t */\n\tonPaste: function(e) {\n\t\tvar self = this;\n\n\t\tif (self.isFull() || self.isInputHidden || self.isLocked) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\t// If a regex or string is included, this will split the pasted\n\t\t// input and create Items for each separate value\n\t\tif (self.settings.splitOn) {\n\n\t\t\t// Wait for pasted text to be recognized in value\n\t\t\tsetTimeout(function() {\n\t\t\t\tvar pastedText = self.$control_input.val();\n\t\t\t\tif(!pastedText.match(self.settings.splitOn)){ return }\n\n\t\t\t\tvar splitInput = pastedText\n\t\t\t\t\t.trim()\n\t\t\t\t\t.split(self.settings.splitOn);\n\t\t\t\tfor (var i = 0, n = splitInput.length; i < n; i++) {\n\t\t\t\t\tself.createItem(splitInput[i]);\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t}\n\t},\n\n\t/**\n\t * Triggered on `<input>` keypress.\n\t *\n\t * @param {object} e\n\t * @returns {boolean}\n\t */\n\tonKeyPress: function(e) {\n\t\tif (this.isLocked) return e && e.preventDefault();\n\t\tvar character = String.fromCharCode(e.keyCode || e.which);\n\t\tif (this.settings.create && this.settings.mode === 'multi' && character === this.settings.delimiter) {\n\t\t\tthis.createItem();\n\t\t\te.preventDefault();\n\t\t\treturn false;\n\t\t}\n\t},\n\n\t/**\n\t * Triggered on `<input>` keydown.\n\t *\n\t * @param {object} e\n\t * @returns {boolean}\n\t */\n\tonKeyDown: function(e) {\n\t\tvar isInput = e.target === this.$control_input[0];\n\t\tvar self = this;\n\n\t\tif (self.isLocked) {\n\t\t\tif (e.keyCode !== KEY_TAB) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tswitch (e.keyCode) {\n\t\t\tcase KEY_A:\n\t\t\t\tif (self.isCmdDown) {\n\t\t\t\t\tself.selectAll();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase KEY_ESC:\n\t\t\t\tif (self.isOpen) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tself.close();\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\tcase KEY_N:\n\t\t\t\tif (!e.ctrlKey || e.altKey) break;\n\t\t\tcase KEY_DOWN:\n\t\t\t\tif (!self.isOpen && self.hasOptions) {\n\t\t\t\t\tself.open();\n\t\t\t\t} else if (self.$activeOption) {\n\t\t\t\t\tself.ignoreHover = true;\n\t\t\t\t\tvar $next = self.getAdjacentOption(self.$activeOption, 1);\n\t\t\t\t\tif ($next.length) self.setActiveOption($next, true, true);\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t\treturn;\n\t\t\tcase KEY_P:\n\t\t\t\tif (!e.ctrlKey || e.altKey) break;\n\t\t\tcase KEY_UP:\n\t\t\t\tif (self.$activeOption) {\n\t\t\t\t\tself.ignoreHover = true;\n\t\t\t\t\tvar $prev = self.getAdjacentOption(self.$activeOption, -1);\n\t\t\t\t\tif ($prev.length) self.setActiveOption($prev, true, true);\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t\treturn;\n\t\t\tcase KEY_RETURN:\n\t\t\t\tif (self.isOpen && self.$activeOption) {\n\t\t\t\t\tself.onOptionSelect({currentTarget: self.$activeOption});\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\tcase KEY_LEFT:\n\t\t\t\tself.advanceSelection(-1, e);\n\t\t\t\treturn;\n\t\t\tcase KEY_RIGHT:\n\t\t\t\tself.advanceSelection(1, e);\n\t\t\t\treturn;\n\t\t\tcase KEY_TAB:\n\t\t\t\tif (self.settings.selectOnTab && self.isOpen && self.$activeOption) {\n\t\t\t\t\tself.onOptionSelect({currentTarget: self.$activeOption});\n\n\t\t\t\t\t// Default behaviour is to jump to the next field, we only want this\n\t\t\t\t\t// if the current field doesn't accept any more entries\n\t\t\t\t\tif (!self.isFull()) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (self.settings.create && self.createItem() && self.settings.showAddOptionOnCreate) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\tcase KEY_BACKSPACE:\n\t\t\tcase KEY_DELETE:\n\t\t\t\tself.deleteSelection(e);\n\t\t\t\treturn;\n\t\t}\n\n\t\tif ((self.isFull() || self.isInputHidden) && !(IS_MAC ? e.metaKey : e.ctrlKey)) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\t},\n\n\t/**\n\t * Triggered on `<input>` input.\n\t *\n\t * @param {object} e\n\t * @returns {boolean}\n\t */\n\tonInput: function(e) {\n\t\tvar self = this;\n\n\t\tvar value = self.$control_input.val() || '';\n\t\tif (self.lastValue !== value) {\n\t\t\tself.lastValue = value;\n\t\t\tself.onSearchChange(value);\n\t\t\tself.refreshOptions();\n\t\t\tself.trigger('type', value);\n\t\t}\n\t},\n\n\t/**\n\t * Invokes the user-provide option provider / loader.\n\t *\n\t * Note: this function is debounced in the Selectize\n\t * constructor (by `settings.loadThrottle` milliseconds)\n\t *\n\t * @param {string} value\n\t */\n\tonSearchChange: function(value) {\n\t\tvar self = this;\n\t\tvar fn = self.settings.load;\n\t\tif (!fn) return;\n\t\tif (self.loadedSearches.hasOwnProperty(value)) return;\n\t\tself.loadedSearches[value] = true;\n\t\tself.load(function(callback) {\n\t\t\tfn.apply(self, [value, callback]);\n\t\t});\n\t},\n\n\t/**\n\t * Triggered on `<input>` focus.\n\t *\n\t * @param {FocusEvent} e (optional)\n\t * @returns {boolean}\n\t */\n\tonFocus: function(e) {\n\t\tvar self = this;\n\t\tvar wasFocused = self.isFocused;\n\n\t\tif (self.isDisabled) {\n\t\t\tself.blur();\n\t\t\te && e.preventDefault();\n\t\t\treturn false;\n\t\t}\n\n\t\tif (self.ignoreFocus) return;\n\t\tself.isFocused = true;\n\t\tif (self.settings.preload === 'focus') self.onSearchChange('');\n\n\t\tif (!wasFocused) self.trigger('focus');\n\n\t\tif (!self.$activeItems.length) {\n\t\t\tself.showInput();\n\t\t\tself.setActiveItem(null);\n\t\t\tself.refreshOptions(!!self.settings.openOnFocus);\n\t\t}\n\n\t\tself.refreshState();\n\t},\n\n\t/**\n\t * Triggered on `<input>` blur.\n\t *\n\t * @param {object} e\n\t * @param {Element} dest\n\t */\n\tonBlur: function(e, dest) {\n\t\tvar self = this;\n\n\t\tif (!self.isFocused) return;\n\t\tself.isFocused = false;\n\n\t\tif (self.ignoreFocus) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar deactivate = function() {\n\t\t\tself.close();\n\t\t\tself.setTextboxValue('');\n\t\t\tself.setActiveItem(null);\n\t\t\tself.setActiveOption(null);\n\t\t\tself.setCaret(self.items.length);\n\t\t\tself.refreshState();\n\n\t\t\t// IE11 bug: element still marked as active\n\t\t\tdest && dest.focus && dest.focus();\n\n\t\t\tself.isBlurring = false;\n\t\t\tself.ignoreFocus = false;\n\t\t\tself.trigger('blur');\n\t\t};\n\n\t\tself.isBlurring = true;\n\t\tself.ignoreFocus = true;\n\t\tif (self.settings.create && self.settings.createOnBlur) {\n\t\t\tself.createItem(null, false, deactivate);\n\t\t} else {\n\t\t\tdeactivate();\n\t\t}\n\t},\n\n\t/**\n\t * Triggered when the user rolls over\n\t * an option in the autocomplete dropdown menu.\n\t *\n\t * @param {object} e\n\t * @returns {boolean}\n\t */\n\tonOptionHover: function(e) {\n\t\tif (this.ignoreHover) return;\n\t\tthis.setActiveOption(e.currentTarget, false);\n\t},\n\n\t/**\n\t * Triggered when the user clicks on an option\n\t * in the autocomplete dropdown menu.\n\t *\n\t * @param {object} e\n\t * @returns {boolean}\n\t */\n\tonOptionSelect: function(e) {\n\t\tvar value, $target, $option, self = this;\n\n\t\tif (e.preventDefault) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\t// prevent right click on option\n\t\tif (e.button && e.button === 2) {\n\t\t\treturn;\n\t\t}\n\n\t\t$target = $(e.currentTarget);\n\t\tif ($target.hasClass('create')) {\n\t\t\tself.createItem(null, function() {\n\t\t\t\tif (self.settings.closeAfterSelect) {\n\t\t\t\t\tself.close();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tvalue = $target.attr('data-value');\n\t\t\tif (typeof value !== 'undefined') {\n\t\t\t\tself.lastQuery = null;\n\t\t\t\tself.setTextboxValue('');\n\t\t\t\tself.addItem(value);\n\t\t\t\tif (self.settings.closeAfterSelect) {\n\t\t\t\t\tself.close();\n\t\t\t\t} else if (!self.settings.hideSelected && e.type && /mouse/.test(e.type)) {\n\t\t\t\t\tself.setActiveOption(self.getOption(value));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Triggered when the user clicks on an item\n\t * that has been selected.\n\t *\n\t * @param {object} e\n\t * @returns {boolean}\n\t */\n\tonItemSelect: function(e) {\n\t\tvar self = this;\n\n\t\tif (self.isLocked) return;\n\t\tif (self.settings.mode === 'multi') {\n\t\t\te.preventDefault();\n\t\t\tself.setActiveItem(e.currentTarget, e);\n\t\t}\n\t},\n\n\t/**\n\t * Invokes the provided method that provides\n\t * results to a callback---which are then added\n\t * as options to the control.\n\t *\n\t * @param {function} fn\n\t */\n\tload: function(fn) {\n\t\tvar self = this;\n\t\tvar $wrapper = self.$wrapper.addClass(self.settings.loadingClass);\n\n\t\tself.loading++;\n\t\tfn.apply(self, [function(results) {\n\t\t\tself.loading = Math.max(self.loading - 1, 0);\n\t\t\tif (results && results.length) {\n\t\t\t\tself.addOption(results);\n\t\t\t\tself.refreshOptions(self.isFocused && !self.isInputHidden);\n\t\t\t}\n\t\t\tif (!self.loading) {\n\t\t\t\t$wrapper.removeClass(self.settings.loadingClass);\n\t\t\t}\n\t\t\tself.trigger('load', results);\n\t\t}]);\n\t},\n\n\t/**\n\t * Gets the value of input field of the control.\n\t *\n\t * @returns {string} value\n\t */\n\tgetTextboxValue: function() {\n\t\tvar $input = this.$control_input;\n\t\treturn $input.val();\n\t},\n\n\t/**\n\t * Sets the input field of the control to the specified value.\n\t *\n\t * @param {string} value\n\t */\n\tsetTextboxValue: function(value) {\n\t\tvar $input = this.$control_input;\n\t\tvar changed = $input.val() !== value;\n\t\tif (changed) {\n\t\t\t$input.val(value).triggerHandler('update');\n\t\t\tthis.lastValue = value;\n\t\t}\n\t},\n\n\t/**\n\t * Returns the value of the control. If multiple items\n\t * can be selected `(e.g. <select multiple>)`, this returns\n\t * an array. If only one item can be selected, this\n\t * returns a string.\n\t *\n\t * @returns {mixed}\n\t */\n\tgetValue: function() {\n\t\tif (this.tagType === TAG_SELECT && this.$input.attr('multiple')) {\n\t\t\treturn this.items;\n\t\t} else {\n\t\t\treturn this.items.join(this.settings.delimiter);\n\t\t}\n\t},\n\n\t/**\n\t * Resets the selected items to the given value.\n\t *\n\t * @param {Array<String|Number>} value\n\t */\n\tsetValue: function(value, silent) {\n\t\tconst items = Array.isArray(value) ? value : [value];\n\t\tif (items.join('') === this.items.join('')) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar events = silent ? [] : ['change'];\n\n\t\tdebounce_events(this, events, function() {\n\t\t\tthis.clear(silent);\n\t\t\tthis.addItems(value, silent);\n\t\t});\n\t},\n\n\t/**\n\t * Resets the number of max items to the given value\n\t *\n\t * @param {number} value\n\t */\n\tsetMaxItems: function(value){\n\t\tif(value === 0) value = null; //reset to unlimited items.\n\t\tthis.settings.maxItems = value;\n\t\tthis.settings.mode = this.settings.mode || (this.settings.maxItems === 1 ? 'single' : 'multi');\n\t\tthis.refreshState();\n\t},\n\n\t/**\n\t * Sets the selected item.\n\t *\n\t * @param {object} $item\n\t * @param {object} e (optional)\n\t */\n\tsetActiveItem: function($item, e) {\n\t\tvar self = this;\n\t\tvar eventName;\n\t\tvar i, idx, begin, end, item, swap;\n\t\tvar $last;\n\n\t\tif (self.settings.mode === 'single') return;\n\t\t$item = $($item);\n\n\t\t// clear the active selection\n\t\tif (!$item.length) {\n\t\t\t$(self.$activeItems).removeClass('active');\n\t\t\tself.$activeItems = [];\n\t\t\tif (self.isFocused) {\n\t\t\t\tself.showInput();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// modify selection\n\t\teventName = e && e.type.toLowerCase();\n\n\t\tif (eventName === 'mousedown' && self.isShiftDown && self.$activeItems.length) {\n\t\t\t$last = self.$control.children('.active:last');\n\t\t\tbegin = Array.prototype.indexOf.apply(self.$control[0].childNodes, [$last[0]]);\n\t\t\tend   = Array.prototype.indexOf.apply(self.$control[0].childNodes, [$item[0]]);\n\t\t\tif (begin > end) {\n\t\t\t\tswap  = begin;\n\t\t\t\tbegin = end;\n\t\t\t\tend   = swap;\n\t\t\t}\n\t\t\tfor (i = begin; i <= end; i++) {\n\t\t\t\titem = self.$control[0].childNodes[i];\n\t\t\t\tif (self.$activeItems.indexOf(item) === -1) {\n\t\t\t\t\t$(item).addClass('active');\n\t\t\t\t\tself.$activeItems.push(item);\n\t\t\t\t}\n\t\t\t}\n\t\t\te.preventDefault();\n\t\t} else if ((eventName === 'mousedown' && self.isCtrlDown) || (eventName === 'keydown' && this.isShiftDown)) {\n\t\t\tif ($item.hasClass('active')) {\n\t\t\t\tidx = self.$activeItems.indexOf($item[0]);\n\t\t\t\tself.$activeItems.splice(idx, 1);\n\t\t\t\t$item.removeClass('active');\n\t\t\t} else {\n\t\t\t\tself.$activeItems.push($item.addClass('active')[0]);\n\t\t\t}\n\t\t} else {\n\t\t\t$(self.$activeItems).removeClass('active');\n\t\t\tself.$activeItems = [$item.addClass('active')[0]];\n\t\t}\n\n\t\t// ensure control has focus\n\t\tself.hideInput();\n\t\tif (!this.isFocused) {\n\t\t\tself.focus();\n\t\t}\n\t},\n\n\t/**\n\t * Sets the selected item in the dropdown menu\n\t * of available options.\n\t *\n\t * @param {object} $object\n\t * @param {boolean} scroll\n\t * @param {boolean} animate\n\t */\n\tsetActiveOption: function($option, scroll, animate) {\n\t\tvar height_menu, height_item, y;\n\t\tvar scroll_top, scroll_bottom;\n\t\tvar self = this;\n\n\t\tif (self.$activeOption) {\n\t\t\tself.$activeOption.removeClass('active');\n\t\t\tself.trigger('dropdown_item_deactivate', self.$activeOption.attr('data-value'));\n\t\t}\n\t\tself.$activeOption = null;\n\n\t\t$option = $($option);\n\t\tif (!$option.length) return;\n\n\t\tself.$activeOption = $option.addClass('active');\n\t\tif (self.isOpen) self.trigger('dropdown_item_activate', self.$activeOption.attr('data-value'));\n\n\t\tif (scroll || !isset(scroll)) {\n\n\t\t\theight_menu   = self.$dropdown_content.height();\n\t\t\theight_item   = self.$activeOption.outerHeight(true);\n\t\t\tscroll        = self.$dropdown_content.scrollTop() || 0;\n\t\t\ty             = self.$activeOption.offset().top - self.$dropdown_content.offset().top + scroll;\n\t\t\tscroll_top    = y;\n\t\t\tscroll_bottom = y - height_menu + height_item;\n\n\t\t\tif (y + height_item > height_menu + scroll) {\n\t\t\t\tself.$dropdown_content.stop().animate({scrollTop: scroll_bottom}, animate ? self.settings.scrollDuration : 0);\n\t\t\t} else if (y < scroll) {\n\t\t\t\tself.$dropdown_content.stop().animate({scrollTop: scroll_top}, animate ? self.settings.scrollDuration : 0);\n\t\t\t}\n\n\t\t}\n\t},\n\n\t/**\n\t * Selects all items (CTRL + A).\n\t */\n\tselectAll: function() {\n\t\tvar self = this;\n\t\tif (self.settings.mode === 'single') return;\n\n\t\tself.$activeItems = Array.prototype.slice.apply(self.$control.children(':not(input)').addClass('active'));\n\t\tif (self.$activeItems.length) {\n\t\t\tself.hideInput();\n\t\t\tself.close();\n\t\t}\n\t\tself.focus();\n\t},\n\n\t/**\n\t * Hides the input element out of view, while\n\t * retaining its focus.\n\t */\n\thideInput: function() {\n\t\tvar self = this;\n\n\t\tself.setTextboxValue('');\n\t\tself.$control_input.css({opacity: 0, position: 'absolute', left: self.rtl ? 10000 : 0});\n\t\tself.isInputHidden = true;\n\t},\n\n\t/**\n\t * Restores input visibility.\n\t */\n\tshowInput: function() {\n\t\tthis.$control_input.css({opacity: 1, position: 'relative', left: 0});\n\t\tthis.isInputHidden = false;\n\t},\n\n\t/**\n\t * Gives the control focus.\n\t */\n\tfocus: function() {\n\t\tvar self = this;\n\t\tif (self.isDisabled) return self;\n\n\t\tself.ignoreFocus = true;\n\t\tself.$control_input[0].focus();\n\t\twindow.setTimeout(function() {\n\t\t\tself.ignoreFocus = false;\n\t\t\tself.onFocus();\n\t\t}, 0);\n\t\treturn self;\n\t},\n\n\t/**\n\t * Forces the control out of focus.\n\t *\n\t * @param {Element} dest\n\t */\n\tblur: function(dest) {\n\t\tthis.$control_input[0].blur();\n\t\tthis.onBlur(null, dest);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Returns a function that scores an object\n\t * to show how good of a match it is to the\n\t * provided query.\n\t *\n\t * @param {string} query\n\t * @param {object} options\n\t * @return {function}\n\t */\n\tgetScoreFunction: function(query) {\n\t\treturn this.sifter.getScoreFunction(query, this.getSearchOptions());\n\t},\n\n\t/**\n\t * Returns search options for sifter (the system\n\t * for scoring and sorting results).\n\t *\n\t * @see https://github.com/brianreavis/sifter.js\n\t * @return {object}\n\t */\n\tgetSearchOptions: function() {\n\t\tvar settings = this.settings;\n\t\tvar sort = settings.sortField;\n\t\tif (typeof sort === 'string') {\n\t\t\tsort = [{field: sort}];\n\t\t}\n\n\t\treturn {\n\t\t\tfields      : settings.searchField,\n\t\t\tconjunction : settings.searchConjunction,\n\t\t\tsort        : sort,\n\t\t\tnesting     : settings.nesting,\n      filter      : settings.filter,\n      respect_word_boundaries : settings.respect_word_boundaries\n\t\t};\n\t},\n\n\t/**\n\t * Searches through available options and returns\n\t * a sorted array of matches.\n\t *\n\t * Returns an object containing:\n\t *\n\t *   - query {string}\n\t *   - tokens {array}\n\t *   - total {int}\n\t *   - items {array}\n\t *\n\t * @param {string} query\n\t * @returns {object}\n\t */\n\tsearch: function(query) {\n\t\tvar i, value, score, result, calculateScore;\n\t\tvar self     = this;\n\t\tvar settings = self.settings;\n\t\tvar options  = this.getSearchOptions();\n\n\t\t// validate user-provided result scoring function\n\t\tif (settings.score) {\n\t\t\tcalculateScore = self.settings.score.apply(this, [query]);\n\t\t\tif (typeof calculateScore !== 'function') {\n\t\t\t\tthrow new Error('Selectize \"score\" setting must be a function that returns a function');\n\t\t\t}\n\t\t}\n\n\t\t// perform search\n    if (query !== self.lastQuery) {\n      if (settings.normalize) query = query.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n\t\t\tself.lastQuery = query;\n\t\t\tresult = self.sifter.search(query, $.extend(options, {score: calculateScore}));\n\t\t\tself.currentResults = result;\n\t\t} else {\n\t\t\tresult = $.extend(true, {}, self.currentResults);\n\t\t}\n\n\t\t// filter out selected items\n\t\tif (settings.hideSelected) {\n\t\t\tfor (i = result.items.length - 1; i >= 0; i--) {\n\t\t\t\tif (self.items.indexOf(hash_key(result.items[i].id)) !== -1) {\n\t\t\t\t\tresult.items.splice(i, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t},\n\n\t/**\n\t * Refreshes the list of available options shown\n\t * in the autocomplete dropdown menu.\n\t *\n\t * @param {boolean} triggerDropdown\n\t */\n\trefreshOptions: function(triggerDropdown) {\n\t\tvar i, j, k, n, groups, groups_order, option, option_html, optgroup, optgroups, html, html_children, has_create_option;\n\t\tvar $active, $active_before, $create;\n\n\t\tif (typeof triggerDropdown === 'undefined') {\n\t\t\ttriggerDropdown = true;\n\t\t}\n\n\t\tvar self              = this;\n\t\tvar query             = (self.$control_input.val()).trim();\n\t\tvar results           = self.search(query);\n\t\tvar $dropdown_content = self.$dropdown_content;\n\t\tvar active_before     = self.$activeOption && hash_key(self.$activeOption.attr('data-value'));\n\n\t\t// build markup\n\t\tn = results.items.length;\n\t\tif (typeof self.settings.maxOptions === 'number') {\n\t\t\tn = Math.min(n, self.settings.maxOptions);\n\t\t}\n\n\t\t// render and group available options individually\n\t\tgroups = {};\n\t\tgroups_order = [];\n\n\t\tfor (i = 0; i < n; i++) {\n\t\t\toption      = self.options[results.items[i].id];\n\t\t\toption_html = self.render('option', option);\n\t\t\toptgroup    = option[self.settings.optgroupField] || '';\n\t\t\toptgroups   = Array.isArray(optgroup) ? optgroup : [optgroup];\n\n\t\t\tfor (j = 0, k = optgroups && optgroups.length; j < k; j++) {\n\t\t\t\toptgroup = optgroups[j];\n\t\t\t\tif (!self.optgroups.hasOwnProperty(optgroup) && typeof self.settings.optionGroupRegister === 'function') {\n\t\t\t\t\tvar regGroup;\n\t\t\t\t\tif (regGroup = self.settings.optionGroupRegister.apply(self, [optgroup])) {\n\t\t\t\t\t\tself.registerOptionGroup(regGroup);\n\t\t\t\t\t}\n\t\t\t\t}\n        if (!self.optgroups.hasOwnProperty(optgroup)) {\n\t\t\t\t\toptgroup = '';\n\t\t\t\t}\n\t\t\t\tif (!groups.hasOwnProperty(optgroup)) {\n\t\t\t\t\tgroups[optgroup] = document.createDocumentFragment();\n\t\t\t\t\tgroups_order.push(optgroup);\n\t\t\t\t}\n\t\t\t\tgroups[optgroup].appendChild(option_html);\n\t\t\t}\n\t\t}\n\n\t\t// sort optgroups\n\t\tif (this.settings.lockOptgroupOrder) {\n\t\t\tgroups_order.sort(function(a, b) {\n\t\t\t\tvar a_order = self.optgroups[a] && self.optgroups[a].$order || 0;\n\t\t\t\tvar b_order = self.optgroups[b] && self.optgroups[b].$order || 0;\n\t\t\t\treturn a_order - b_order;\n\t\t\t});\n\t\t}\n\n\t\t// render optgroup headers & join groups\n\t\thtml = document.createDocumentFragment();\n\t\tfor (i = 0, n = groups_order.length; i < n; i++) {\n\t\t\toptgroup = groups_order[i];\n\t\t\tif (self.optgroups.hasOwnProperty(optgroup) && groups[optgroup].childNodes.length) {\n\t\t\t\t// render the optgroup header and options within it,\n\t\t\t\t// then pass it to the wrapper template\n\t\t\t\thtml_children = document.createDocumentFragment();\n\t\t\t\thtml_children.appendChild(self.render('optgroup_header', self.optgroups[optgroup]));\n\t\t\t\thtml_children.appendChild(groups[optgroup]);\n\n\t\t\t\thtml.appendChild(self.render('optgroup', $.extend({}, self.optgroups[optgroup], {\n\t\t\t\t\thtml: domToString(html_children),\n\t\t\t\t\tdom:  html_children\n\t\t\t\t})));\n\t\t\t} else {\n\t\t\t\thtml.appendChild(groups[optgroup]);\n\t\t\t}\n\t\t}\n\n\t\t$dropdown_content.html(html);\n\n\t\t// highlight matching terms inline\n\t\tif (self.settings.highlight) {\n\t\t\t$dropdown_content.removeHighlight();\n\t\t\tif (results.query.length && results.tokens.length) {\n\t\t\t\tfor (i = 0, n = results.tokens.length; i < n; i++) {\n\t\t\t\t\thighlight($dropdown_content, results.tokens[i].regex);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// add \"selected\" class to selected options\n\t\tif (!self.settings.hideSelected) {\n\t\t\t// clear selection on all previously selected elements first\n\t\t\tself.$dropdown.find('.selected').removeClass('selected');\n\n\t\t\tfor (i = 0, n = self.items.length; i < n; i++) {\n\t\t\t\tself.getOption(self.items[i]).addClass('selected');\n\t\t\t}\n\t\t}\n\n\t\tif (self.settings.dropdownSize.sizeType !== 'auto' && self.isOpen) {\n\t\t\tself.setupDropdownHeight();\n\t\t}\n\n\t\tself.positionDropdown();\n\n\t\t// add create option\n\t\thas_create_option = self.canCreate(query);\n\t\tif (has_create_option) {\n\t\t\tif(self.settings.showAddOptionOnCreate) {\n\t\t\t\t$dropdown_content.prepend(self.render('option_create', {input: query}));\n\t\t\t\t$create = $($dropdown_content[0].childNodes[0]);\n\t\t\t}\n\t\t}\n\n\t\t// activate\n\t\tself.hasOptions = results.items.length > 0 || ( has_create_option && self.settings.showAddOptionOnCreate ) || self.settings.setFirstOptionActive;\n\n\t\tif (self.hasOptions) {\n      \t\tif (results.items.length > 0) {\n\t\t\t$active_before = active_before && self.getOption(active_before);\n\t\t\tif (results.query !== \"\" && self.settings.setFirstOptionActive) {\n\t\t\t$active = $dropdown_content.find('[data-selectable]:first')\n\t\t\t} else if (results.query !== \"\" && $active_before && $active_before.length) {\n\t\t\t$active = $active_before;\n\t\t\t} else if (self.settings.mode === 'single' && self.items.length) {\n\t\t\t$active = self.getOption(self.items[0]);\n\t\t\t}\n\t\t\tif (!$active || !$active.length) {\n\t\t\tif ($create && !self.settings.addPrecedence) {\n\t\t\t\t$active = self.getAdjacentOption($create, 1);\n\t\t\t} else {\n\t\t\t\t$active = $dropdown_content.find('[data-selectable]:first');\n\t\t\t}\n\t\t\t}\n\t\t\t} else {\n\t\t\t\t$active = $create;\n\t\t\t}\n\t\t\tself.setActiveOption($active);\n\t\t\tif (triggerDropdown && !self.isOpen) { self.open(); }\n\t\t} else {\n\t\t\tself.setActiveOption(null);\n\t\t\tif (triggerDropdown && self.isOpen) { self.close(); }\n\t\t}\n\t},\n\n\t/**\n\t * Adds an available option. If it already exists,\n\t * nothing will happen. Note: this does not refresh\n\t * the options list dropdown (use `refreshOptions`\n\t * for that).\n\t *\n\t * Usage:\n\t *\n\t *   this.addOption(data)\n\t *\n\t * @param {object|array} data\n\t */\n\taddOption: function(data) {\n\t\tvar i, n, value, self = this;\n\n\t\tif (Array.isArray(data)) {\n\t\t\tfor (i = 0, n = data.length; i < n; i++) {\n\t\t\t\tself.addOption(data[i]);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (value = self.registerOption(data)) {\n\t\t\tself.userOptions[value] = true;\n\t\t\tself.lastQuery = null;\n\t\t\tself.trigger('option_add', value, data);\n\t\t}\n\t},\n\n\t/**\n\t * Registers an option to the pool of options.\n\t *\n\t * @param {object} data\n\t * @return {boolean|string}\n\t */\n\tregisterOption: function(data) {\n\t\tvar key = hash_key(data[this.settings.valueField]);\n\t\tif (typeof key === 'undefined' || key === null || this.options.hasOwnProperty(key)) return false;\n\t\tdata.$order = data.$order || ++this.order;\n\t\tthis.options[key] = data;\n\t\treturn key;\n\t},\n\n\t/**\n\t * Registers an option group to the pool of option groups.\n\t *\n\t * @param {object} data\n\t * @return {boolean|string}\n\t */\n\tregisterOptionGroup: function(data) {\n\t\tvar key = hash_key(data[this.settings.optgroupValueField]);\n\t\tif (!key) return false;\n\n\t\tdata.$order = data.$order || ++this.order;\n\t\tthis.optgroups[key] = data;\n\t\treturn key;\n\t},\n\n\t/**\n\t * Registers a new optgroup for options\n\t * to be bucketed into.\n\t *\n\t * @param {string} id\n\t * @param {object} data\n\t */\n\taddOptionGroup: function(id, data) {\n\t\tdata[this.settings.optgroupValueField] = id;\n\t\tif (id = this.registerOptionGroup(data)) {\n\t\t\tthis.trigger('optgroup_add', id, data);\n\t\t}\n\t},\n\n\t/**\n\t * Removes an existing option group.\n\t *\n\t * @param {string} id\n\t */\n\tremoveOptionGroup: function(id) {\n\t\tif (this.optgroups.hasOwnProperty(id)) {\n\t\t\tdelete this.optgroups[id];\n\t\t\tthis.renderCache = {};\n\t\t\tthis.trigger('optgroup_remove', id);\n\t\t}\n\t},\n\n\t/**\n\t * Clears all existing option groups.\n\t */\n\tclearOptionGroups: function() {\n\t\tthis.optgroups = {};\n\t\tthis.renderCache = {};\n\t\tthis.trigger('optgroup_clear');\n\t},\n\n\t/**\n\t * Updates an option available for selection. If\n\t * it is visible in the selected items or options\n\t * dropdown, it will be re-rendered automatically.\n\t *\n\t * @param {string} value\n\t * @param {object} data\n\t */\n\tupdateOption: function(value, data) {\n\t\tvar self = this;\n\t\tvar $item, $item_new;\n\t\tvar value_new, index_item, cache_items, cache_options, order_old;\n\n\t\tvalue     = hash_key(value);\n\t\tvalue_new = hash_key(data[self.settings.valueField]);\n\n\t\t// sanity checks\n\t\tif (value === null) return;\n\t\tif (!self.options.hasOwnProperty(value)) return;\n\t\tif (typeof value_new !== 'string') throw new Error('Value must be set in option data');\n\n\t\torder_old = self.options[value].$order;\n\n\t\t// update references\n\t\tif (value_new !== value) {\n\t\t\tdelete self.options[value];\n\t\t\tindex_item = self.items.indexOf(value);\n\t\t\tif (index_item !== -1) {\n\t\t\t\tself.items.splice(index_item, 1, value_new);\n\t\t\t}\n\t\t}\n\t\tdata.$order = data.$order || order_old;\n\t\tself.options[value_new] = data;\n\n\t\t// invalidate render cache\n\t\tcache_items = self.renderCache['item'];\n\t\tcache_options = self.renderCache['option'];\n\n\t\tif (cache_items) {\n\t\t\tdelete cache_items[value];\n\t\t\tdelete cache_items[value_new];\n\t\t}\n\t\tif (cache_options) {\n\t\t\tdelete cache_options[value];\n\t\t\tdelete cache_options[value_new];\n\t\t}\n\n\t\t// update the item if it's selected\n\t\tif (self.items.indexOf(value_new) !== -1) {\n\t\t\t$item = self.getItem(value);\n\t\t\t$item_new = $(self.render('item', data));\n\t\t\tif ($item.hasClass('active')) $item_new.addClass('active');\n\t\t\t$item.replaceWith($item_new);\n\t\t}\n\n\t\t// invalidate last query because we might have updated the sortField\n\t\tself.lastQuery = null;\n\n\t\t// update dropdown contents\n\t\tif (self.isOpen) {\n\t\t\tself.refreshOptions(false);\n\t\t}\n\t},\n\n\t/**\n\t * Removes a single option.\n\t *\n\t * @param {string} value\n\t * @param {boolean} silent\n\t */\n\tremoveOption: function(value, silent) {\n\t\tvar self = this;\n\t\tvalue = hash_key(value);\n\n\t\tvar cache_items = self.renderCache['item'];\n\t\tvar cache_options = self.renderCache['option'];\n\t\tif (cache_items) delete cache_items[value];\n\t\tif (cache_options) delete cache_options[value];\n\n\t\tdelete self.userOptions[value];\n\t\tdelete self.options[value];\n\t\tself.lastQuery = null;\n\t\tself.trigger('option_remove', value);\n\t\tself.removeItem(value, silent);\n\t},\n\n\t/**\n\t * Clears all options, including all selected items\n\t *\n\t * @param {boolean} silent\n\t */\n\tclearOptions: function(silent) {\n\t\tvar self = this;\n\n\t\tself.loadedSearches = {};\n\t\tself.userOptions = {};\n\t\tself.renderCache = {};\n\t\tvar options = self.options;\n\t\t$.each(self.options, function(key, value) {\n\t\t\tif(self.items.indexOf(key) == -1) {\n\t\t\t\tdelete options[key];\n\t\t\t}\n\t\t});\n\t\tself.options = self.sifter.items = options;\n\t\tself.lastQuery = null;\n\t\tself.trigger('option_clear');\n\t\tself.clear(silent);\n\t},\n\n\t/**\n\t * Returns the jQuery element of the option\n\t * matching the given value.\n\t *\n\t * @param {string} value\n\t * @returns {object}\n\t */\n\tgetOption: function(value) {\n\t\treturn this.getElementWithValue(value, this.$dropdown_content.find('[data-selectable]'));\n\t},\n\n\t/**\n\t * Returns the jQuery element of the first\n\t * selectable option.\n\t *\n\t * @return {object}\n\t */\n\tgetFirstOption: function() {\n\t\tvar $options = this.$dropdown.find('[data-selectable]');\n\t\treturn $options.length > 0 ? $options.eq(0) : $();\n\t},\n\n\t/**\n\t * Returns the jQuery element of the next or\n\t * previous selectable option.\n\t *\n\t * @param {object} $option\n\t * @param {int} direction  can be 1 for next or -1 for previous\n\t * @return {object}\n\t */\n\tgetAdjacentOption: function($option, direction) {\n\t\tvar $options = this.$dropdown.find('[data-selectable]');\n\t\tvar index    = $options.index($option) + direction;\n\n\t\treturn index >= 0 && index < $options.length ? $options.eq(index) : $();\n\t},\n\n\t/**\n\t * Finds the first element with a \"data-value\" attribute\n\t * that matches the given value.\n\t *\n\t * @param {mixed} value\n\t * @param {object} $els\n\t * @return {object}\n\t */\n\tgetElementWithValue: function(value, $els) {\n\t\tvalue = hash_key(value);\n\n\t\tif (typeof value !== 'undefined' && value !== null) {\n\t\t\tfor (var i = 0, n = $els.length; i < n; i++) {\n\t\t\t\tif ($els[i].getAttribute('data-value') === value) {\n\t\t\t\t\treturn $($els[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn $();\n\t},\n\n\t/**\n\t * Finds the first element with a \"textContent\" property\n\t * that matches the given textContent value.\n\t *\n\t * @param {mixed} textContent\n\t * @param {boolean} ignoreCase\n\t * @param {object} $els\n\t * @return {object}\n\t */\n\tgetElementWithTextContent: function(textContent, ignoreCase ,$els) {\n\t\ttextContent = hash_key(textContent);\n\n\t\tif (typeof textContent !== 'undefined' && textContent !== null) {\n\t\t\tfor (var i = 0, n = $els.length; i < n; i++) {\n\t\t\t\tvar eleTextContent = $els[i].textContent\n\t\t\t\tif (ignoreCase == true) {\n\t\t\t\t\teleTextContent = (eleTextContent !== null) ? eleTextContent.toLowerCase() : null;\n\t\t\t\t\ttextContent = textContent.toLowerCase();\n\t\t\t\t}\n\t\t\t\tif (eleTextContent === textContent) {\n\t\t\t\t\treturn $($els[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn $();\n\t},\n\n\t/**\n\t * Returns the jQuery element of the item\n\t * matching the given value.\n\t *\n\t * @param {string} value\n\t * @returns {object}\n\t */\n\tgetItem: function(value) {\n\t\treturn this.getElementWithValue(value, this.$control.children());\n\t},\n\n\t/**\n\t * Returns the jQuery element of the item\n\t * matching the given textContent.\n\t *\n\t * @param {string} value\n\t * @param {boolean} ignoreCase\n\t * @returns {object}\n\t */\n\tgetFirstItemMatchedByTextContent: function(textContent, ignoreCase) {\n\t\tignoreCase = (ignoreCase !== null && ignoreCase === true) ? true : false;\n\t\treturn this.getElementWithTextContent(textContent, ignoreCase, this.$dropdown_content.find('[data-selectable]'));\n\t},\n\n\t/**\n\t * \"Selects\" multiple items at once. Adds them to the list\n\t * at the current caret position.\n\t *\n\t * @param {string} values\n\t * @param {boolean} silent\n\t */\n\taddItems: function(values, silent) {\n\t\tthis.buffer = document.createDocumentFragment();\n\n\t\tvar childNodes = this.$control[0].childNodes;\n\t\tfor (var i = 0; i < childNodes.length; i++) {\n\t\t\tthis.buffer.appendChild(childNodes[i]);\n\t\t}\n\n\t\tvar items = Array.isArray(values) ? values : [values];\n\t\tfor (var i = 0, n = items.length; i < n; i++) {\n\t\t\tthis.isPending = (i < n - 1);\n\t\t\tthis.addItem(items[i], silent);\n\t\t}\n\n\t\tvar control = this.$control[0];\n\t\tcontrol.insertBefore(this.buffer, control.firstChild);\n\n\t\tthis.buffer = null;\n\t},\n\n\t/**\n\t * \"Selects\" an item. Adds it to the list\n\t * at the current caret position.\n\t *\n\t * @param {string} value\n\t * @param {boolean} silent\n\t */\n\taddItem: function(value, silent) {\n\t\tvar events = silent ? [] : ['change'];\n\n\t\tdebounce_events(this, events, function() {\n\t\t\tvar $item, $option, $options;\n\t\t\tvar self = this;\n\t\t\tvar inputMode = self.settings.mode;\n\t\t\tvar i, active, value_next, wasFull;\n\t\t\tvalue = hash_key(value);\n\n\t\t\tif (self.items.indexOf(value) !== -1) {\n\t\t\t\tif (inputMode === 'single') self.close();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!self.options.hasOwnProperty(value)) return;\n\t\t\tif (inputMode === 'single') self.clear(silent);\n\t\t\tif (inputMode === 'multi' && self.isFull()) return;\n\n      $item = $(self.render('item', self.options[value]));\n\t\t\twasFull = self.isFull();\n\t\t\tself.items.splice(self.caretPos, 0, value);\n      self.insertAtCaret($item);\n\t\t\tif (!self.isPending || (!wasFull && self.isFull())) {\n\t\t\t\tself.refreshState();\n\t\t\t}\n\n\t\t\tif (self.isSetup) {\n\t\t\t\t$options = self.$dropdown_content.find('[data-selectable]');\n\n\t\t\t\t// update menu / remove the option (if this is not one item being added as part of series)\n\t\t\t\tif (!self.isPending) {\n\t\t\t\t\t$option = self.getOption(value);\n\t\t\t\t\tvalue_next = self.getAdjacentOption($option, 1).attr('data-value');\n\t\t\t\t\tself.refreshOptions(self.isFocused && inputMode !== 'single');\n\t\t\t\t\tif (value_next) {\n\t\t\t\t\t\tself.setActiveOption(self.getOption(value_next));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// hide the menu if the maximum number of items have been selected or no options are left\n\t\t\t\tif (!$options.length || self.isFull()) {\n\t\t\t\t\tself.close();\n\t\t\t\t} else if (!self.isPending) {\n\t\t\t\t\tself.positionDropdown();\n\t\t\t\t}\n\n\t\t\t\tself.updatePlaceholder();\n\t\t\t\tself.trigger('item_add', value, $item);\n\n\t\t\t\tif (!self.isPending) {\n\t\t\t\t\tself.updateOriginalInput({silent: silent});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n\t * Removes the selected item matching\n\t * the provided value.\n\t *\n\t * @param {string} value\n\t */\n\tremoveItem: function(value, silent) {\n\t\tvar self = this;\n\t\tvar $item, i, idx;\n\n\t\t$item = (value instanceof $) ? value : self.getItem(value);\n\t\tvalue = hash_key($item.attr('data-value'));\n\t\ti = self.items.indexOf(value);\n\n\t\tif (i !== -1) {\n\t\t\tself.trigger('item_before_remove', value, $item);\n\t\t\t$item.remove();\n      if ($item.hasClass('active')) {\n        $item.removeClass('active');\n\t\t\t\tidx = self.$activeItems.indexOf($item[0]);\n\t\t\t\tself.$activeItems.splice(idx, 1);\n\t\t\t\t$item.removeClass('active');\n\t\t\t}\n\n\t\t\tself.items.splice(i, 1);\n\t\t\tself.lastQuery = null;\n\t\t\tif (!self.settings.persist && self.userOptions.hasOwnProperty(value)) {\n\t\t\t\tself.removeOption(value, silent);\n\t\t\t}\n\n\t\t\tif (i < self.caretPos) {\n\t\t\t\tself.setCaret(self.caretPos - 1);\n\t\t\t}\n\n\t\t\tself.refreshState();\n\t\t\tself.updatePlaceholder();\n\t\t\tself.updateOriginalInput({silent: silent});\n\t\t\tself.positionDropdown();\n\t\t\tself.trigger('item_remove', value, $item);\n\t\t}\n\t},\n\n\t/**\n\t * Invokes the `create` method provided in the\n\t * selectize options that should provide the data\n\t * for the new item, given the user input.\n\t *\n\t * Once this completes, it will be added\n\t * to the item list.\n\t *\n\t * @param {string} value\n\t * @param {boolean} [triggerDropdown]\n\t * @param {function} [callback]\n\t * @return {boolean}\n\t */\n\tcreateItem: function(input, triggerDropdown) {\n\t\tvar self  = this;\n\t\tvar caret = self.caretPos;\n\t\tinput = input || (self.$control_input.val() || '').trim();\n\n\t\tvar callback = arguments[arguments.length - 1];\n\t\tif (typeof callback !== 'function') callback = function() {};\n\n\t\tif (typeof triggerDropdown !== 'boolean') {\n\t\t\ttriggerDropdown = true;\n\t\t}\n\n\t\tif (!self.canCreate(input)) {\n\t\t\tcallback();\n\t\t\treturn false;\n\t\t}\n\n\t\tself.lock();\n\n\t\tvar setup = (typeof self.settings.create === 'function') ? this.settings.create : function(input) {\n\t\t\tvar data = {};\n\t\t\tdata[self.settings.labelField] = input;\n\t\t\tvar key = input;\n\t\t\tif ( self.settings.formatValueToKey && typeof self.settings.formatValueToKey === 'function' ) {\n\t\t\t\tkey = self.settings.formatValueToKey.apply(this, [key]);\n\t\t\t\tif (key === null || typeof key === 'undefined' || typeof key === 'object' || typeof key === 'function') {\n\t\t\t\t\tthrow new Error('Selectize \"formatValueToKey\" setting must be a function that returns a value other than object or function.');\n\t\t\t\t}\n\t\t\t}\n\t\t\tdata[self.settings.valueField] = key;\n\t\t\treturn data;\n\t\t};\n\n\t\tvar create = once(function(data) {\n\t\t\tself.unlock();\n\n\t\t\tif (!data || typeof data !== 'object') return callback();\n\t\t\tvar value = hash_key(data[self.settings.valueField]);\n\t\t\tif (typeof value !== 'string') return callback();\n\n\t\t\tself.setTextboxValue('');\n\t\t\tself.addOption(data);\n\t\t\tself.setCaret(caret);\n\t\t\tself.addItem(value);\n\t\t\tself.refreshOptions(triggerDropdown && self.settings.mode !== 'single');\n\t\t\tcallback(data);\n\t\t});\n\n\t\tvar output = setup.apply(this, [input, create]);\n\t\tif (typeof output !== 'undefined') {\n\t\t\tcreate(output);\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t/**\n\t * Re-renders the selected item lists.\n\t */\n\trefreshItems: function(silent) {\n\t\tthis.lastQuery = null;\n\n\t\tif (this.isSetup) {\n\t\t\tthis.addItem(this.items, silent);\n\t\t}\n\n\t\tthis.refreshState();\n\t\tthis.updateOriginalInput({silent: silent});\n\t},\n\n\t/**\n\t * Updates all state-dependent attributes\n\t * and CSS classes.\n\t */\n\trefreshState: function() {\n\t\tthis.refreshValidityState();\n\t\tthis.refreshClasses();\n\t},\n\n\t/**\n\t * Update the `required` attribute of both input and control input.\n\t *\n\t * The `required` property needs to be activated on the control input\n\t * for the error to be displayed at the right place. `required` also\n\t * needs to be temporarily deactivated on the input since the input is\n\t * hidden and can't show errors.\n\t */\n\trefreshValidityState: function() {\n\t\tif (!this.isRequired) return false;\n\n\t\tvar invalid = !this.items.length;\n\n\t\tthis.isInvalid = invalid;\n\t\tthis.$control_input.prop('required', invalid);\n\t\tthis.$input.prop('required', !invalid);\n\t},\n\n\t/**\n\t * Updates all state-dependent CSS classes.\n\t */\n\trefreshClasses: function() {\n\t\tvar self     = this;\n\t\tvar isFull   = self.isFull();\n\t\tvar isLocked = self.isLocked;\n\n\t\tself.$wrapper\n\t\t\t.toggleClass('rtl', self.rtl);\n\n\t\tself.$control\n\t\t\t.toggleClass('focus', self.isFocused)\n\t\t\t.toggleClass('disabled', self.isDisabled)\n\t\t\t.toggleClass('required', self.isRequired)\n\t\t\t.toggleClass('invalid', self.isInvalid)\n\t\t\t.toggleClass('locked', isLocked)\n\t\t\t.toggleClass('full', isFull).toggleClass('not-full', !isFull)\n\t\t\t.toggleClass('input-active', self.isFocused && !self.isInputHidden)\n\t\t\t.toggleClass('dropdown-active', self.isOpen)\n\t\t\t.toggleClass('has-options', !$.isEmptyObject(self.options))\n\t\t\t.toggleClass('has-items', self.items.length > 0);\n\n\t\tself.$control_input.data('grow', !isFull && !isLocked);\n\t},\n\n\t/**\n\t * Determines whether or not more items can be added\n\t * to the control without exceeding the user-defined maximum.\n\t *\n\t * @returns {boolean}\n\t */\n\tisFull: function() {\n\t\treturn this.settings.maxItems !== null && this.items.length >= this.settings.maxItems;\n\t},\n\n\t/**\n\t * Refreshes the original `<select>` or `<input>`\n\t * element to reflect the current state.\n\t */\n\tupdateOriginalInput: function(opts) {\n\t\tvar i, n, existing, fresh, old, $options, label, value, values, self = this;\n\t\topts = opts || {};\n\n\t\tif (self.tagType === TAG_SELECT) {\n\t\t\t$options  = self.$input.find('option');\n\t\t\texisting  = [];\n\t\t\tfresh     = [];\n\t\t\told       = [];\n\t\t\tvalues    = [];\n\n\t\t\t$options.get().forEach(function(option) {\n\t\t\t\texisting.push(option.value);\n\t\t\t});\n\n\t\t\tself.items.forEach(function(item) {\n\t\t\t\tlabel = self.options[item][self.settings.labelField] || '';\n\n\t\t\t\tvalues.push(item);\n\n\t\t\t\tif (existing.indexOf(item) != -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfresh.push('<option value=\"' + escape_html(item) + '\" selected=\"selected\">' + escape_html(label) + '</option>');\n\t\t\t});\n\n\t\t\told = existing.filter(function(value) {\n\t\t\t\treturn values.indexOf(value) < 0;\n\t\t\t}).map(function(value) {\n\t\t\t\treturn 'option[value=\"' + escape_html(value) + '\"]';\n\t\t\t});\n\n\t\t\tif (existing.length - old.length + fresh.length === 0 && !self.$input.attr('multiple')) {\n\t\t\t\tfresh.push('<option value=\"\" selected=\"selected\"></option>');\n\t\t\t}\n\n\t\t\tself.$input.find(old.join(', ')).remove();\n\t\t\tself.$input.append(fresh.join(''));\n\t\t} else {\n\t\t\tself.$input.val(self.getValue());\n\t\t\tself.$input.attr('value',self.$input.val());\n\t\t}\n\n\t\tif (self.isSetup) {\n\t\t\tif (!opts.silent) {\n\t\t\t\tself.trigger('change', self.$input.val());\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Shows/hide the input placeholder depending\n\t * on if there items in the list already.\n\t */\n\tupdatePlaceholder: function() {\n\t\tif (!this.settings.placeholder) return;\n\t\tvar $input = this.$control_input;\n\n\t\tif (this.items.length) {\n\t\t\t$input.removeAttr('placeholder');\n\t\t} else {\n\t\t\t$input.attr('placeholder', this.settings.placeholder);\n\t\t}\n\t\t$input.triggerHandler('update', {force: true});\n\t},\n\n\t/**\n\t * Shows the autocomplete dropdown containing\n\t * the available options.\n\t */\n\topen: function() {\n\t\tvar self = this;\n\n\t\tif (\n      self.isLocked ||\n      self.isOpen ||\n      (self.settings.mode === \"multi\" && self.isFull())\n    )\n      return;\n\t\tself.focus();\n\t\tself.isOpen = true;\n\t\tself.refreshState();\n\t\tself.$dropdown.css({ visibility: 'hidden', display: 'block' });\n\t\tself.setupDropdownHeight();\n    self.positionDropdown();\n\t\tself.$dropdown.css({visibility: 'visible'});\n\t\tself.trigger('dropdown_open', self.$dropdown);\n\t},\n\n\t/**\n\t * Closes the autocomplete dropdown menu.\n\t */\n\tclose: function() {\n\t\tvar self = this;\n\t\tvar trigger = self.isOpen;\n\n\t\tif (self.settings.mode === 'single' && self.items.length) {\n\t\t\tself.hideInput();\n\n\t\t\t// Do not trigger blur while inside a blur event,\n\t\t\t// this fixes some weird tabbing behavior in FF and IE.\n\t\t\t// See #1164\n\t\t\tif (self.isBlurring) {\n\t\t\t\tself.$control_input[0].blur(); // close keyboard on iOS\n\t\t\t}\n\t\t}\n\n\t\tself.isOpen = false;\n\t\tself.$dropdown.hide();\n\t\tself.setActiveOption(null);\n\t\tself.refreshState();\n\n\t\tif (trigger) self.trigger('dropdown_close', self.$dropdown);\n\t},\n\n\t/**\n\t * Calculates and applies the appropriate\n\t * position of the dropdown.\n\t */\n\tpositionDropdown: function() {\n\t\tvar $control = this.$control;\n\t\tvar offset = this.settings.dropdownParent === 'body' ? $control.offset() : $control.position();\n\t\toffset.top += $control.outerHeight(true);\n\t\tvar w = this.$wrapper[0].style.width !== 'fit-content' ? this.settings.dropdownParent === 'body' ? 'max-content' : '100%' : 'max-content';\n\t\tif (this.settings.minWidth && this.settings.minWidth > w)\n\t\t{\n\t\t\tw = this.settings.minWidth;\n\t\t}\n\n    if (this.settings.dropdownParent !== 'body' && w === 'max-content' && $control.outerWidth(true) >= this.$dropdown.outerWidth(true)) {\n      w = '100%';\n    }\n\n    this.$dropdown.css({\n\t\t\twidth : w,\n      minWidth : $control.outerWidth(true),\n\t\t\ttop   : offset.top,\n\t\t\tleft  : offset.left\n\t\t});\n\t},\n\n  setupDropdownHeight: function () {\n    if (typeof this.settings.dropdownSize === 'object' && this.settings.dropdownSize.sizeType !== 'auto') {\n      var height = this.settings.dropdownSize.sizeValue;\n\n      if (this.settings.dropdownSize.sizeType === 'numberItems') {\n        // retrieve all items (included optgroup but exept the container .optgroup)\n        var $items = this.$dropdown_content.find('*').not('.optgroup, .highlight').not(this.settings.ignoreOnDropwdownHeight);\n        var totalHeight = 0;\n        var marginTop = 0;\n        var marginBottom = 0;\n        var separatorHeight = 0;\n\n\n        for (var i = 0; i < height; i++) {\n          var $item = $($items[i]);\n\n          if ($item.length === 0) {\n            break;\n          }\n\n          totalHeight += $item.outerHeight(true);\n          // If not selectable, it's an optgroup so we \"ignore\" for count items\n          if (typeof $item.data('selectable') == 'undefined') {\n            if ($item.hasClass('optgroup-header')) {\n              var styles = window.getComputedStyle($item.parent()[0], ':before');\n\n              if (styles) {\n                marginTop = styles.marginTop ? Number(styles.marginTop.replace(/\\W*(\\w)\\w*/g, '$1')) : 0;\n                marginBottom = styles.marginBottom ? Number(styles.marginBottom.replace(/\\W*(\\w)\\w*/g, '$1')) : 0;\n                separatorHeight = styles.borderTopWidth ? Number(styles.borderTopWidth.replace(/\\W*(\\w)\\w*/g, '$1')) : 0;\n              }\n            }\n            height++;\n          }\n\n        }\n\n        // Get padding top for add to global height\n        var paddingTop = this.$dropdown_content.css('padding-top') ? Number(this.$dropdown_content.css('padding-top').replace(/\\W*(\\w)\\w*/g, '$1')) : 0;\n        var paddingBottom = this.$dropdown_content.css('padding-bottom') ? Number(this.$dropdown_content.css('padding-bottom').replace(/\\W*(\\w)\\w*/g, '$1')) : 0;\n\n        height = (totalHeight + paddingTop + paddingBottom + marginTop + marginBottom + separatorHeight) + 'px';\n      } else if (this.settings.dropdownSize.sizeType !== 'fixedHeight') {\n        console.warn('Selectize.js - Value of \"sizeType\" must be \"fixedHeight\" or \"numberItems');\n        return;\n      }\n\n      this.$dropdown_content.css({ height: height, maxHeight: 'none' });\n    }\n  },\n\n\t/**\n\t * Resets / clears all selected items\n\t * from the control.\n\t *\n\t * @param {boolean} silent\n\t */\n\tclear: function(silent) {\n\t\tvar self = this;\n\n\t\tif (!self.items.length) return;\n\t\tself.$control.children(':not(input)').remove();\n\t\tself.items = [];\n\t\tself.lastQuery = null;\n\t\tself.setCaret(0);\n\t\tself.setActiveItem(null);\n\t\tself.updatePlaceholder();\n\t\tself.updateOriginalInput({silent: silent});\n\t\tself.refreshState();\n\t\tself.showInput();\n\t\tself.trigger('clear');\n\t},\n\n\t/**\n\t * A helper method for inserting an element\n\t * at the current caret position.\n\t *\n\t * @param {object} $el\n\t */\n\tinsertAtCaret: function($el) {\n\t\tvar caret = Math.min(this.caretPos, this.items.length);\n    var el = $el[0];\n    /**\n     * @type {HTMLElement}\n     **/\n\t\tvar target = this.buffer || this.$control[0];\n\n\t\tif (caret === 0) {\n\t\t\ttarget.insertBefore(el, target.firstChild);\n\t\t} else {\n\t\t\ttarget.insertBefore(el, target.childNodes[caret]);\n\t\t}\n\n\t\tthis.setCaret(caret + 1);\n\t},\n\n\t/**\n\t * Removes the current selected item(s).\n\t *\n\t * @param {object} e (optional)\n\t * @returns {boolean}\n\t */\n\tdeleteSelection: function(e) {\n\t\tvar i, n, direction, selection, values, caret, option_select, $option_select, $tail;\n\t\tvar self = this;\n\n\t\tdirection = (e && e.keyCode === KEY_BACKSPACE) ? -1 : 1;\n\t\tselection = getInputSelection(self.$control_input[0]);\n\n\t\tif (self.$activeOption && !self.settings.hideSelected) {\n\t\t\tif (typeof self.settings.deselectBehavior === 'string' && self.settings.deselectBehavior === 'top') {\n\t\t\t\toption_select = self.getFirstOption().attr('data-value');\n\t\t\t} else {\n\t\t\t\toption_select = self.getAdjacentOption(self.$activeOption, -1).attr('data-value');\n\t\t\t}\n\t\t}\n\n\t\t// determine items that will be removed\n\t\tvalues = [];\n\n\t\tif (self.$activeItems.length) {\n\t\t\t$tail = self.$control.children('.active:' + (direction > 0 ? 'last' : 'first'));\n\t\t\tcaret = self.$control.children(':not(input)').index($tail);\n\t\t\tif (direction > 0) { caret++; }\n\n\t\t\tfor (i = 0, n = self.$activeItems.length; i < n; i++) {\n\t\t\t\tvalues.push($(self.$activeItems[i]).attr('data-value'));\n\t\t\t}\n\t\t\tif (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t}\n\t\t} else if ((self.isFocused || self.settings.mode === 'single') && self.items.length) {\n\t\t\tif (direction < 0 && selection.start === 0 && selection.length === 0) {\n\t\t\t\tvalues.push(self.items[self.caretPos - 1]);\n\t\t\t} else if (direction > 0 && selection.start === self.$control_input.val().length) {\n\t\t\t\tvalues.push(self.items[self.caretPos]);\n\t\t\t}\n\t\t}\n\n\t\t// allow the callback to abort\n\t\tif (!values.length || (typeof self.settings.onDelete === 'function' && self.settings.onDelete.apply(self, [values]) === false)) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// perform removal\n\t\tif (typeof caret !== 'undefined') {\n\t\t\tself.setCaret(caret);\n\t\t}\n\t\twhile (values.length) {\n\t\t\tself.removeItem(values.pop());\n\t\t}\n\n\t\tself.showInput();\n\t\tself.positionDropdown();\n\t\tself.refreshOptions(true);\n\n\t\t// select previous option\n\t\tif (option_select) {\n\t\t\t$option_select = self.getOption(option_select);\n\t\t\tif ($option_select.length) {\n\t\t\t\tself.setActiveOption($option_select);\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t/**\n\t * Selects the previous / next item (depending\n\t * on the `direction` argument).\n\t *\n\t * > 0 - right\n\t * < 0 - left\n\t *\n\t * @param {int} direction\n\t * @param {object} e (optional)\n\t */\n\tadvanceSelection: function(direction, e) {\n\t\tvar tail, selection, idx, valueLength, cursorAtEdge, $tail;\n\t\tvar self = this;\n\n\t\tif (direction === 0) return;\n\t\tif (self.rtl) direction *= -1;\n\n\t\ttail = direction > 0 ? 'last' : 'first';\n\t\tselection = getInputSelection(self.$control_input[0]);\n\n\t\tif (self.isFocused && !self.isInputHidden) {\n\t\t\tvalueLength = self.$control_input.val().length;\n\t\t\tcursorAtEdge = direction < 0\n\t\t\t\t? selection.start === 0 && selection.length === 0\n\t\t\t\t: selection.start === valueLength;\n\n\t\t\tif (cursorAtEdge && !valueLength) {\n\t\t\t\tself.advanceCaret(direction, e);\n\t\t\t}\n\t\t} else {\n\t\t\t$tail = self.$control.children('.active:' + tail);\n\t\t\tif ($tail.length) {\n\t\t\t\tidx = self.$control.children(':not(input)').index($tail);\n\t\t\t\tself.setActiveItem(null);\n\t\t\t\tself.setCaret(direction > 0 ? idx + 1 : idx);\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Moves the caret left / right.\n\t *\n\t * @param {int} direction\n\t * @param {object} e (optional)\n\t */\n\tadvanceCaret: function(direction, e) {\n\t\tvar self = this, fn, $adj;\n\n\t\tif (direction === 0) return;\n\n\t\tfn = direction > 0 ? 'next' : 'prev';\n\t\tif (self.isShiftDown) {\n\t\t\t$adj = self.$control_input[fn]();\n\t\t\tif ($adj.length) {\n\t\t\t\tself.hideInput();\n\t\t\t\tself.setActiveItem($adj);\n\t\t\t\te && e.preventDefault();\n\t\t\t}\n\t\t} else {\n\t\t\tself.setCaret(self.caretPos + direction);\n\t\t}\n\t},\n\n\t/**\n\t * Moves the caret to the specified index.\n\t *\n\t * @param {int} i\n\t */\n\tsetCaret: function(i) {\n\t\tvar self = this;\n\n\t\tif (self.settings.mode === 'single') {\n\t\t\ti = self.items.length;\n\t\t} else {\n\t\t\ti = Math.max(0, Math.min(self.items.length, i));\n\t\t}\n\n\t\tif(!self.isPending) {\n\t\t\t// the input must be moved by leaving it in place and moving the\n\t\t\t// siblings, due to the fact that focus cannot be restored once lost\n\t\t\t// on mobile webkit devices\n\t\t\tvar j, n, fn, $children, $child;\n\t\t\t$children = self.$control.children(':not(input)');\n\t\t\tfor (j = 0, n = $children.length; j < n; j++) {\n\t\t\t\t$child = $($children[j]).detach();\n\t\t\t\tif (j <  i) {\n\t\t\t\t\tself.$control_input.before($child);\n\t\t\t\t} else {\n\t\t\t\t\tself.$control.append($child);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tself.caretPos = i;\n\t},\n\n\t/**\n\t * Disables user input on the control. Used while\n\t * items are being asynchronously created.\n\t */\n\tlock: function() {\n\t\tthis.close();\n\t\tthis.isLocked = true;\n\t\tthis.refreshState();\n\t},\n\n\t/**\n\t * Re-enables user input on the control.\n\t */\n\tunlock: function() {\n\t\tthis.isLocked = false;\n\t\tthis.refreshState();\n\t},\n\n\t/**\n\t * Disables user input on the control completely.\n\t * While disabled, it cannot receive focus.\n\t */\n\tdisable: function() {\n\t\tvar self = this;\n\t\tself.$input.prop('disabled', true);\n\t\tself.$control_input.prop('disabled', true).prop('tabindex', -1);\n\t\tself.isDisabled = true;\n\t\tself.lock();\n\t},\n\n\t/**\n\t * Enables the control so that it can respond\n\t * to focus and user input.\n\t */\n\tenable: function() {\n\t\tvar self = this;\n\t\tself.$input.prop('disabled', false);\n\t\tself.$control_input.prop('disabled', false).prop('tabindex', self.tabIndex);\n\t\tself.isDisabled = false;\n\t\tself.unlock();\n\t},\n\n\t/**\n\t * Completely destroys the control and\n\t * unbinds all event listeners so that it can\n\t * be garbage collected.\n\t */\n\tdestroy: function() {\n\t\tvar self = this;\n\t\tvar eventNS = self.eventNS;\n\t\tvar revertSettings = self.revertSettings;\n\n\t\tself.trigger('destroy');\n\t\tself.off();\n\t\tself.$wrapper.remove();\n\t\tself.$dropdown.remove();\n\n\t\tself.$input\n\t\t\t.html('')\n\t\t\t.append(revertSettings.$children)\n\t\t\t.removeAttr('tabindex')\n\t\t\t.removeClass('selectized')\n\t\t\t.attr({tabindex: revertSettings.tabindex})\n\t\t\t.show();\n\n\t\tself.$control_input.removeData('grow');\n\t\tself.$input.removeData('selectize');\n\n\t\tif (--Selectize.count == 0 && Selectize.$testInput) {\n\t\t\tSelectize.$testInput.remove();\n\t\t\tSelectize.$testInput = undefined;\n\t\t}\n\n\t\t$(window).off(eventNS);\n\t\t$(document).off(eventNS);\n\t\t$(document.body).off(eventNS);\n\n\t\tdelete self.$input[0].selectize;\n\t},\n\n\t/**\n\t * A helper method for rendering \"item\" and\n\t * \"option\" templates, given the data.\n\t *\n\t * @param {string} templateName\n\t * @param {object} data\n\t * @returns {string}\n\t */\n\trender: function(templateName, data) {\n\t\tvar value, id, label;\n\t\tvar html = '';\n\t\tvar cache = false;\n\t\tvar self = this;\n\t\tvar regex_tag = /^[\\t \\r\\n]*<([a-z][a-z0-9\\-_]*(?:\\:[a-z][a-z0-9\\-_]*)?)/i;\n\n\t\tif (templateName === 'option' || templateName === 'item') {\n\t\t\tvalue = hash_key(data[self.settings.valueField]);\n\t\t\tcache = !!value;\n\t\t}\n\n\t\t// pull markup from cache if it exists\n\t\tif (cache) {\n\t\t\tif (!isset(self.renderCache[templateName])) {\n\t\t\t\tself.renderCache[templateName] = {};\n\t\t\t}\n\t\t\tif (self.renderCache[templateName].hasOwnProperty(value)) {\n\t\t\t\treturn self.renderCache[templateName][value];\n\t\t\t}\n\t\t}\n\n\t\t// render markup\n\t\thtml = $(self.settings.render[templateName].apply(this, [data, escape_html]));\n\n\t\t// add mandatory attributes\n\t\tif (templateName === 'option' || templateName === 'option_create') {\n\t\t\tif (!data[self.settings.disabledField]) {\n\t\t\t\thtml.attr('data-selectable', '');\n\t\t\t}\n\t\t}\n\t\telse if (templateName === 'optgroup') {\n\t\t\tid = data[self.settings.optgroupValueField] || '';\n\t\t\thtml.attr('data-group', id);\n\t\t\tif(data[self.settings.disabledField]) {\n\t\t\t\thtml.attr('data-disabled', '');\n\t\t\t}\n\t\t}\n\t\tif (templateName === 'option' || templateName === 'item') {\n\t\t\thtml.attr('data-value', value || '');\n\t\t}\n\n\t\t// update cache\n\t\tif (cache) {\n\t\t\tself.renderCache[templateName][value] = html[0];\n\t\t}\n\n\t\treturn html[0];\n\t},\n\n\t/**\n\t * Clears the render cache for a template. If\n\t * no template is given, clears all render\n\t * caches.\n\t *\n\t * @param {string} templateName\n\t */\n\tclearCache: function(templateName) {\n\t\tvar self = this;\n\t\tif (typeof templateName === 'undefined') {\n\t\t\tself.renderCache = {};\n\t\t} else {\n\t\t\tdelete self.renderCache[templateName];\n\t\t}\n\t},\n\n\t/**\n\t * Determines whether or not to display the\n\t * create item prompt, given a user input.\n\t *\n\t * @param {string} input\n\t * @return {boolean}\n\t */\n\tcanCreate: function(input) {\n\t\tvar self = this;\n\t\tif (!self.settings.create) return false;\n\t\tvar filter = self.settings.createFilter;\n\t\treturn input.length\n\t\t\t&& (typeof filter !== 'function' || filter.apply(self, [input]))\n\t\t\t&& (typeof filter !== 'string' || new RegExp(filter).test(input))\n\t\t\t&& (!(filter instanceof RegExp) || filter.test(input));\n\t}\n});\n"
  },
  {
    "path": "src/utils.js",
    "content": "/**\n * Determines if the provided value has been defined.\n *\n * @param {mixed} object\n * @returns {boolean}\n */\nvar isset = function (object) {\n  return typeof object !== 'undefined';\n};\n\n/**\n * This is a polyfill for the Array.isArray function.\n * Determines whether the passed obect is an Array.\n *\n * @param {object} vArg\n * @returns {Boolean} returns true if the passed object is an Array.\n *\n */\nvar isArray = Array.isArray || function (vArg) {\n  return Object.prototype.toString.call(vArg) === '[object Array]';\n}\n\n/**\n * Converts a scalar to its best string representation\n * for hash keys and HTML attribute values.\n *\n * Transformations:\n *   'str'     -> 'str'\n *   null      -> ''\n *   undefined -> ''\n *   true      -> '1'\n *   false     -> '0'\n *   0         -> '0'\n *   1         -> '1'\n *\n * @param {string} value\n * @returns {string|null}\n */\nvar hash_key = function (value) {\n  if (typeof value === 'undefined' || value === null) return null;\n  if (typeof value === 'boolean') return value ? '1' : '0';\n  return value + '';\n};\n\n/**\n * Escapes a string for use within HTML.\n *\n * @param {string} str\n * @returns {string}\n */\nvar escape_html = function (str) {\n  return (str + '')\n    .replace(/&/g, '&amp;')\n    .replace(/</g, '&lt;')\n    .replace(/>/g, '&gt;')\n    .replace(/\"/g, '&quot;');\n};\n\n/**\n * Escapes \"$\" characters in replacement strings.\n *\n * @param {string} str\n * @returns {string}\n */\nvar escape_replace = function (str) {\n  return (str + '').replace(/\\$/g, '$$$$');\n};\n\nvar hook = {};\n\n/**\n * Wraps `method` on `self` so that `fn`\n * is invoked before the original method.\n *\n * @param {object} self\n * @param {string} method\n * @param {function} fn\n */\nhook.before = function (self, method, fn) {\n  var original = self[method];\n  self[method] = function () {\n    fn.apply(self, arguments);\n    return original.apply(self, arguments);\n  };\n};\n\n/**\n * Wraps `method` on `self` so that `fn`\n * is invoked after the original method.\n *\n * @param {object} self\n * @param {string} method\n * @param {function} fn\n */\nhook.after = function (self, method, fn) {\n  var original = self[method];\n  self[method] = function () {\n    var result = original.apply(self, arguments);\n    fn.apply(self, arguments);\n    return result;\n  };\n};\n\n/**\n * Wraps `fn` so that it can only be invoked once.\n *\n * @param {function} fn\n * @returns {function}\n */\nvar once = function (fn) {\n  var called = false;\n  return function () {\n    if (called) return;\n    called = true;\n    fn.apply(this, arguments);\n  };\n};\n\n/**\n * Wraps `fn` so that it can only be called once\n * every `delay` milliseconds (invoked on the falling edge).\n *\n * @param {function} fn\n * @param {number} delay\n * @returns {function}\n */\nvar debounce = function (fn, delay) {\n  var timeout;\n  return function () {\n    var self = this;\n    var args = arguments;\n    window.clearTimeout(timeout);\n    timeout = window.setTimeout(function () {\n      fn.apply(self, args);\n    }, delay);\n  };\n};\n\n/**\n * Debounce all fired events types listed in `types`\n * while executing the provided `fn`.\n *\n * @param {object} self\n * @param {array} types\n * @param {function} fn\n */\nvar debounce_events = function (self, types, fn) {\n  var type;\n  var trigger = self.trigger;\n  var event_args = {};\n\n  // override trigger method\n  self.trigger = function () {\n    var type = arguments[0];\n    if (types.indexOf(type) !== -1) {\n      event_args[type] = arguments;\n    } else {\n      return trigger.apply(self, arguments);\n    }\n  };\n\n  // invoke provided function\n  fn.apply(self, []);\n  self.trigger = trigger;\n\n  // trigger queued events\n  for (type in event_args) {\n    if (event_args.hasOwnProperty(type)) {\n      trigger.apply(self, event_args[type]);\n    }\n  }\n};\n\n/**\n * A workaround for http://bugs.jquery.com/ticket/6696\n *\n * @param {object} $parent - Parent element to listen on.\n * @param {string} event - Event name.\n * @param {string} selector - Descendant selector to filter by.\n * @param {function} fn - Event handler.\n */\nvar watchChildEvent = function ($parent, event, selector, fn) {\n  $parent.on(event, selector, function (e) {\n    var child = e.target;\n    while (child && child.parentNode !== $parent[0]) {\n      child = child.parentNode;\n    }\n    e.currentTarget = child;\n    return fn.apply(this, [e]);\n  });\n};\n\n/**\n * Determines the current selection within a text input control.\n * Returns an object containing:\n *   - start\n *   - length\n *\n * @param {object} input\n * @returns {object}\n */\nvar getInputSelection = function (input) {\n  var result = {};\n  if (input === undefined) {\n    console.warn('WARN getInputSelection cannot locate input control');\n    return result;\n  }\n  if ('selectionStart' in input) {\n    result.start = input.selectionStart;\n    result.length = input.selectionEnd - result.start;\n  } else if (document.selection) {\n    input.focus();\n    var sel = document.selection.createRange();\n    var selLen = document.selection.createRange().text.length;\n    sel.moveStart('character', -input.value.length);\n    result.start = sel.text.length - selLen;\n    result.length = selLen;\n  }\n  return result;\n};\n\n/**\n * Copies CSS properties from one element to another.\n *\n * @param {object} $from\n * @param {object} $to\n * @param {array} properties\n */\nvar transferStyles = function ($from, $to, properties) {\n  var i, n, styles = {};\n  if (properties) {\n    for (i = 0, n = properties.length; i < n; i++) {\n      styles[properties[i]] = $from.css(properties[i]);\n    }\n  } else {\n    styles = $from.css();\n  }\n  $to.css(styles);\n};\n\n/**\n * Measures the width of a string within a\n * parent element (in pixels).\n *\n * @param {string} str\n * @param {object} $parent\n * @returns {number}\n */\nvar measureString = function (str, $parent) {\n  if (!str) {\n    return 0;\n  }\n\n  if (!Selectize.$testInput) {\n    Selectize.$testInput = $('<span />').css({\n      position: 'absolute',\n      width: 'auto',\n      padding: 0,\n      whiteSpace: 'pre'\n    });\n\n    $('<div />').css({\n      position: 'absolute',\n      width: 0,\n      height: 0,\n      overflow: 'hidden'\n    }).attr({\n      'aria-hidden': true\n    }).append(Selectize.$testInput).appendTo('body');\n  }\n\n  Selectize.$testInput.text(str);\n\n  transferStyles($parent, Selectize.$testInput, [\n    'letterSpacing',\n    'fontSize',\n    'fontFamily',\n    'fontWeight',\n    'textTransform'\n  ]);\n\n  return Selectize.$testInput.width();\n};\n\n/**\n * Sets up an input to grow horizontally as the user\n * types. If the value is changed manually, you can\n * trigger the \"update\" handler to resize:\n *\n * $input.trigger('update');\n *\n * @param {object} $input\n */\nvar autoGrow = function ($input) {\n  var currentWidth = null;\n\n  var update = function (e, options) {\n    var value, keyCode, printable, width;\n    var placeholder, placeholderWidth;\n    var shift, character, selection;\n    e = e || window.event || {};\n    options = options || {};\n\n    if (e.metaKey || e.altKey) return;\n    if (!options.force && $input.data('grow') === false) return;\n\n    value = $input.val();\n    if (e.type && e.type.toLowerCase() === 'keydown') {\n      keyCode = e.keyCode;\n      printable = (\n        (keyCode >= 48 && keyCode <= 57) || // 0-9\n        (keyCode >= 65 && keyCode <= 90) || // a-z\n        (keyCode >= 96 && keyCode <= 111) || // numpad 0-9, numeric operators\n        (keyCode >= 186 && keyCode <= 222) || // semicolon, equal, comma, dash, etc.\n        keyCode === 32 // space\n      );\n\n      if (keyCode === KEY_DELETE || keyCode === KEY_BACKSPACE) {\n        selection = getInputSelection($input[0]);\n        if (selection.length) {\n          value = value.substring(0, selection.start) + value.substring(selection.start + selection.length);\n        } else if (keyCode === KEY_BACKSPACE && selection.start) {\n          value = value.substring(0, selection.start - 1) + value.substring(selection.start + 1);\n        } else if (keyCode === KEY_DELETE && typeof selection.start !== 'undefined') {\n          value = value.substring(0, selection.start) + value.substring(selection.start + 1);\n        }\n      } else if (printable) {\n        shift = e.shiftKey;\n        character = String.fromCharCode(e.keyCode);\n        if (shift) character = character.toUpperCase();\n        else character = character.toLowerCase();\n        value += character;\n      }\n    }\n\n    var width = $input.attr('readonly') ? 0 : 4;\n    placeholder = $input.attr('placeholder');\n    if (placeholder) {\n      placeholderWidth = measureString(placeholder, $input) + width;\n    } else {\n      placeholderWidth = 0;\n    }\n\n    width = Math.max(measureString(value, $input), placeholderWidth) + width;\n    if (width !== currentWidth) {\n      currentWidth = width;\n      $input.width(width);\n      $input.triggerHandler('resize');\n    }\n  };\n\n  $input.on('keydown keyup update blur', update);\n  update();\n};\n\nvar domToString = function (d) {\n  var tmp = document.createElement('div');\n\n  tmp.appendChild(d.cloneNode(true));\n\n  return tmp.innerHTML;\n};\n\nvar logError = function (message, options) {\n  if (!options) options = {};\n  var component = \"Selectize\";\n\n  console.error(component + \": \" + message)\n\n  if (options.explanation) {\n    // console.group is undefined in <IE11\n    if (console.group) console.group();\n    console.error(options.explanation);\n    if (console.group) console.groupEnd();\n  }\n};\n\n/**\n * Determines whether or not the `data` argument is a valid JSON string.\n *\n * @param {String} data Data to test\n * @returns {Boolean} true if is an JSON object\n */\nvar isJSON = function (data) {\n  try {\n    JSON.parse(data);\n  } catch (e) {\n    return false;\n  }\n  return true;\n};\n\n/**\n * If the browser supports the User-Agent Client Hint, then return the platform name, otherwise return\n * the result of a regular expression test on the user agent string\n *\n * @param platform - The platform you want to detect.\n * @param re - A regular expression that matches the user agent string.\n * @returns {Boolean} A boolean value.\n */\nfunction uaDetect(platform, re) {\n  if (navigator.userAgentData) {\n    return platform === navigator.userAgentData.platform;\n  }\n\n  return re.test(navigator.userAgent);\n}\n"
  },
  {
    "path": "test/api.js",
    "content": "(function() {\n\n\tdescribe('API', function() {\n\n\t\tdescribe('disable()', function() {\n\t\t\tvar test;\n\n\t\t\tbefore(function() {\n\t\t\t\ttest = setup_test('<select tabindex=\"4\">', {});\n\t\t\t\texpect(String(test.selectize.$control_input.attr('tabindex'))).to.be.equal('4');\n\t\t\t\ttest.selectize.disable();\n\t\t\t});\n\t\t\tit('should set \"tabindex\" prop to -1', function() {\n\t\t\t\texpect(String(test.selectize.$control_input.attr('tabindex'))).to.be.equal('-1');\n\t\t\t});\n\t\t\tit('should set \"disabled\" class', function() {\n\t\t\t\texpect(test.selectize.$control.hasClass('disabled')).to.be.equal(true);\n\t\t\t});\n\t\t\tit('should set isDisabled property to true', function() {\n\t\t\t\texpect(test.selectize.isDisabled).to.be.equal(true);\n\t\t\t});\n\t\t\tit('should add \"disabled\" attribute on inputs', function() {\n\t\t\t\texpect(test.selectize.$input.is(':disabled')).to.be.equal(true);\n\t\t\t\texpect(test.selectize.$control_input.is(':disabled')).to.be.equal(true);\n\t\t\t});\n\t\t});\n\n\t\tdescribe('setMaxItems(2)', function(){\n\t\t\tvar test;\n\t\t\tbefore(function(done) {\n\t\t\t\ttest = setup_test('<select>', {});\n\t\t\t\ttest.selectize.setMaxItems(2);\n\t\t\t\twindow.setTimeout(function() { done(); }, 5);\n\t\t\t});\n\t\t\tit('should set maxItems setting to 2', function() {\n\t\t\t\texpect(test.selectize.settings.maxItems).to.be.equal(2);\n\t\t\t});\n\t\t});\n\n\t\tdescribe('setMaxItems(0)', function(){\n\t\t\tvar test;\n\t\t\tbefore(function(done) {\n\t\t\t\ttest = setup_test('<select>', {});\n\t\t\t\ttest.selectize.setMaxItems(0);\n\t\t\t\twindow.setTimeout(function() { done(); }, 5);\n\t\t\t});\n\t\t\tit('should set maxItems setting to null', function() {\n\t\t\t\texpect(test.selectize.settings.maxItems).to.be.equal(null);\n\t\t\t});\n\t\t});\n\n\t\tdescribe('enable()', function() {\n\t\t\tvar test;\n\n\t\t\tbefore(function() {\n\t\t\t\ttest = setup_test('<select disabled tabindex=\"2\">', {});\n\t\t\t\texpect(String(test.selectize.$control_input.attr('tabindex'))).to.be.equal('-1');\n\t\t\t\ttest.selectize.enable();\n\t\t\t});\n\t\t\tit('should restore original \"tabindex\" prop', function() {\n\t\t\t\texpect(String(test.selectize.$control_input.attr('tabindex'))).to.be.equal('2');\n\t\t\t});\n\t\t\tit('should remove \"disabled\" class', function() {\n\t\t\t\texpect(test.selectize.$control.hasClass('disabled')).to.be.equal(false);\n\t\t\t});\n\t\t\tit('should set isDisabled property to false', function() {\n\t\t\t\texpect(test.selectize.isDisabled).to.be.equal(false);\n\t\t\t});\n\t\t\tit('should remove \"disabled\" attribute on inputs', function() {\n\t\t\t\texpect(test.selectize.$input.is(':disabled')).to.be.equal(false);\n\t\t\t\texpect(test.selectize.$control_input.is(':disabled')).to.be.equal(false);\n\t\t\t});\n\t\t});\n\n\t\tdescribe('focus()', function() {\n\t\t\tvar test, self;\n\n\t\t\tbefore(function(done) {\n\t\t\t\ttest = setup_test('<select>', {});\n\t\t\t\tself = test.selectize.focus();\n\t\t\t\twindow.setTimeout(function() { done(); }, 5);\n\t\t\t});\n\n\t\t\tit('should set isFocused property to true', function() {\n\t\t\t\texpect(test.selectize.isFocused).to.be.equal(true);\n\t\t\t});\n\t\t\tit('should give the control focus', function() {\n\t\t\t\texpect(has_focus(test.selectize.$control_input[0])).to.be.equal(true);\n\t\t\t});\n\t\t\tit('should return self to support chaining', function() {\n\t\t\t\texpect(self.getValue()).to.be.equal('');\n\t\t\t});\n\t\t});\n\n\t\tdescribe('blur()', function() {\n\t\t\tvar test, self;\n\n\t\t\tbefore(function(done) {\n\t\t\t\ttest = setup_test('<select>', {});\n\t\t\t\ttest.selectize.focus();\n\t\t\t\twindow.setTimeout(function() {\n\t\t\t\t\tself = test.selectize.blur();\n\t\t\t\t\twindow.setTimeout(done, 100);\n\t\t\t\t}, 50);\n\t\t\t});\n\t\t\tit('should set isFocused property to false', function() {\n\t\t\t\texpect(test.selectize.isFocused).to.be.equal(false);\n\t\t\t});\n\t\t\tit('should remove focus from the control', function() {\n\t\t\t\texpect(has_focus(test.selectize.$control_input[0])).to.be.equal(false);\n\t\t\t});\n\t\t\tit('should return self to support chaining', function() {\n\t\t\t\texpect(self.getValue()).to.be.equal('');\n\t\t\t});\n\t\t});\n\n\t\tdescribe('createItem()', function() {\n\t\t\tit('should fail if non-object returned by \"create\" callback', function() {\n\t\t\t\tvar test = setup_test('<select>', {\n\t\t\t\t\tvalueField: 'value',\n\t\t\t\t\tlabelField: 'value',\n\t\t\t\t\tcreate: function(input) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\ttest.selectize.$control_input.val('test');\n\t\t\t\ttest.selectize.createItem();\n\t\t\t\texpect(test.selectize.items.length).to.be.equal(0);\n\n\t\t\t\ttest = setup_test('<select>', {\n\t\t\t\t\tvalueField: 'value',\n\t\t\t\t\tlabelField: 'value',\n\t\t\t\t\tcreate: function(input) {\n\t\t\t\t\t\treturn 'hello';\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\ttest.selectize.$control_input.val('test');\n\t\t\t\ttest.selectize.createItem();\n\t\t\t\texpect(test.selectize.items.length).to.be.equal(0);\n\t\t\t});\n\t\t\tit('should add option upon completion (synchronous)', function() {\n\t\t\t\tvar test = setup_test('<select>', {\n\t\t\t\t\tvalueField: 'value',\n\t\t\t\t\tlabelField: 'value',\n\t\t\t\t\tcreate: function(input) {\n\t\t\t\t\t\treturn {value: input};\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\ttest.selectize.$control_input.val('test');\n\t\t\t\ttest.selectize.createItem();\n\t\t\t\texpect(test.selectize.options).to.have.property('test');\n\t\t\t});\n\t\t\tit('should add option upon completion (asynchronous)', function(done) {\n\t\t\t\tvar test = setup_test('<select>', {\n\t\t\t\t\tvalueField: 'value',\n\t\t\t\t\tlabelField: 'value',\n\t\t\t\t\tcreate: function(input, callback) {\n\t\t\t\t\t\twindow.setTimeout(function() {\n\t\t\t\t\t\t\tcallback({value: input});\n\t\t\t\t\t\t\texpect(test.selectize.options).to.have.property('test');\n\t\t\t\t\t\t\tdone();\n\t\t\t\t\t\t}, 0);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\ttest.selectize.$control_input.val('test');\n\t\t\t\ttest.selectize.createItem();\n\t\t\t});\n\t\t});\n\n\t\tdescribe('addOptionGroup()', function() {\n\t\t\tvar test;\n\n\t\t\tbefore(function() {\n\t\t\t\ttest = setup_test('<select>', {valueField: 'value', labelField: 'value', optgroupValueField: 'grpval'});\n\t\t\t});\n\t\t\tit('should register group', function() {\n\t\t\t\tvar data = {label: 'Group Label'};\n\t\t\t\ttest.selectize.addOptionGroup('group_id', data);\n\t\t\t\texpect(test.selectize.optgroups).to.have.property('group_id');\n\t\t\t});\n\t\t\tit('should add implicit $order property', function() {\n\t\t\t\ttest.selectize.addOptionGroup('group1', {});\n\t\t\t\ttest.selectize.addOptionGroup('group2', {});\n\t\t\t\tassert.equal(test.selectize.optgroups['group1'].$order, 2);\n\t\t\t\tassert.equal(test.selectize.optgroups['group2'].$order, 3);\n\t\t\t});\n\t\t});\n\n\t\tdescribe('removeOptionGroup()', function() {\n\t\t\tvar test;\n\n\t\t\tbefore(function() {\n\t\t\t\ttest = setup_test('<select>', {valueField: 'value', labelField: 'value'});\n\t\t\t});\n\t\t\tit('should remove group', function() {\n\t\t\t\tvar data = {label: 'Group Label'};\n\t\t\t\ttest.selectize.addOptionGroup('group_id', data);\n\t\t\t\ttest.selectize.removeOptionGroup('group_id');\n\t\t\t\texpect(test.selectize.optgroups).to.not.have.property('group_id');\n\t\t\t});\n\t\t});\n\n\t\tdescribe('clearOptionGroups()', function() {\n\t\t\tvar test;\n\n\t\t\tbefore(function() {\n\t\t\t\ttest = setup_test('<select>', {valueField: 'value', labelField: 'value'});\n\t\t\t});\n\t\t\tit('should clear all groups', function() {\n\t\t\t\tvar data = {label: 'Group Label'};\n\t\t\t\ttest.selectize.addOptionGroup('group_id', data);\n\t\t\t\ttest.selectize.addOptionGroup('group_id2', data);\n\t\t\t\ttest.selectize.clearOptionGroups();\n\t\t\t\texpect(test.selectize.optgroups).to.deep.equal({});\n\t\t\t});\n\t\t});\n\n\t\tdescribe('addOption()', function() {\n\t\t\tvar test;\n\t\t\tbefore(function() {\n\t\t\t\ttest = setup_test('<select>', {valueField: 'value', labelField: 'value'});\n\t\t\t});\n\n\t\t\tit('should add implicit $order property', function() {\n\t\t\t\tvar opt1 = {value: 'hello'};\n\t\t\t\tvar opt2 = {value: 'world'};\n\t\t\t\ttest.selectize.addOption(opt1);\n\t\t\t\ttest.selectize.addOption(opt2);\n\t\t\t\tassert.deepEqual(test.selectize.options, {\n\t\t\t\t\t'hello': {value: 'hello', $order: 1},\n\t\t\t\t\t'world': {value: 'world', $order: 2}\n\t\t\t\t});\n\t\t\t});\n\t\t\tit('should allow string values', function() {\n\t\t\t\ttest.selectize.addOption({value: 'stringtest'});\n\t\t\t\texpect(test.selectize.options).to.have.property('stringtest');\n\t\t\t});\n\t\t\tit('should not allow null / undefined values', function() {\n\t\t\t\ttest.selectize.addOption({value: undefined});\n\t\t\t\ttest.selectize.addOption({value: null});\n\t\t\t\texpect(test.selectize.options).to.not.have.property('undefined');\n\t\t\t\texpect(test.selectize.options).to.not.have.property('null');\n\t\t\t\texpect(test.selectize.options).to.not.have.property('');\n\t\t\t});\n\t\t\tit('should allow integer values', function() {\n\t\t\t\ttest.selectize.addOption({value: 0});\n\t\t\t\ttest.selectize.addOption({value: 1});\n\t\t\t\texpect(test.selectize.options).to.have.property('0');\n\t\t\t\texpect(test.selectize.options).to.have.property('1');\n\t\t\t});\n\t\t\tit('should allow arrays of options', function() {\n\t\t\t\ttest.selectize.addOption([{value: 'a'}, {value: 'b'}]);\n\t\t\t\texpect(test.selectize.options).to.have.property('a');\n\t\t\t\texpect(test.selectize.options).to.have.property('b');\n\t\t\t});\n\t\t\tit('should not override existing options', function() {\n\t\t\t\ttest.selectize.addOption([{value: 'a'}, {value: 'b'}]);\n\t\t\t\ttest.selectize.addOption({value: 'a', test: 'hello'});\n\t\t\t\texpect(test.selectize.options.a).to.not.have.property('test');\n\t\t\t});\n\t\t});\n\n\t\tdescribe('addItem()', function() {\n\t\t\tvar test;\n\n\t\t\tbefore(function() {\n\t\t\t\ttest = setup_test('<select multiple>', {\n\t\t\t\t\tvalueField: 'value',\n\t\t\t\t\tlabelField: 'value',\n\t\t\t\t\toptions: [\n\t\t\t\t\t\t{value: 0},\n\t\t\t\t\t\t{value: 1},\n\t\t\t\t\t\t{value: 'undefined'},\n\t\t\t\t\t\t{value: 'null'},\n\t\t\t\t\t\t{value: 'a'},\n\t\t\t\t\t\t{value: 'b'},\n\t\t\t\t\t\t{value: 'c'},\n\t\t\t\t\t\t{value: 'x'},\n\t\t\t\t\t\t{value: '$1'},\n\t\t\t\t\t\t{value: '\\''},\n\t\t\t\t\t\t{value: '\"'},\n\t\t\t\t\t\t{value: '\\\\\\''},\n\t\t\t\t\t\t{value: '\\\\\"'},\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t});\n\t\t\tit('should update \"items\" array', function() {\n\t\t\t\ttest.selectize.addItem('b');\n\t\t\t\texpect(test.selectize.items.indexOf('b')).to.be.equal(0);\n\t\t\t});\n\t\t\tit('should not give control focus', function(done) {\n\t\t\t\ttest.selectize.addItem(0);\n\t\t\t\twindow.setTimeout(function() {\n\t\t\t\t\texpect(test.selectize.isFocused).to.be.equal(false);\n\t\t\t\t\tdone();\n\t\t\t\t}, 0);\n\t\t\t});\n\t\t\tit('should not allow duplicate entries', function() {\n\t\t\t\ttest.selectize.addItem('a');\n\t\t\t\ttest.selectize.addItem('a');\n\t\t\t\texpect(test.selectize.items.indexOf('a')).to.be.equal(test.selectize.items.lastIndexOf('a'));\n\t\t\t});\n\t\t\tit('should not allow undefined / null values', function() {\n\t\t\t\ttest.selectize.addItem(undefined);\n\t\t\t\ttest.selectize.addItem(null);\n\t\t\t\texpect(test.selectize.items.indexOf('undefined')).to.be.equal(-1);\n\t\t\t\texpect(test.selectize.items.indexOf('null')).to.be.equal(-1);\n\t\t\t});\n\t\t\tit('should allow integer values', function() {\n\t\t\t\ttest.selectize.addItem(0);\n\t\t\t\texpect(test.selectize.items.indexOf('0')).to.not.be.equal(-1);\n\t\t\t});\n\t\t\tit('should not fire \"change\" if silent is truthy', function(done) {\n\t\t\t\tvar watcher = function(e) { throw new Error('Change fired'); };\n\t\t\t\ttest.$select.on('change', watcher);\n\t\t\t\ttest.selectize.addItem('x', true);\n\t\t\t\texpect(test.selectize.items.indexOf('x')).to.not.be.equal(-1);\n\t\t\t\twindow.setTimeout(function() {\n\t\t\t\t\ttest.$select.off('change', watcher);\n\t\t\t\t\tdone();\n\t\t\t\t}, 0);\n\t\t\t});\n\t\t\tit('should update DOM', function() {\n\t\t\t\ttest.selectize.addItem('c');\n\t\t\t\texpect(test.selectize.$control.find('[data-value=c]').length).to.be.equal(1);\n\n\t\t\t\ttest.selectize.addItem('$1');\n\t\t\t\tvar found = false;\n\t\t\t\ttest.selectize.$control.children().each(function() {\n\t\t\t\t\tif (this.getAttribute('data-value') === '$1') {\n\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\texpect(found).to.be.equal(true);\n\t\t\t});\n\t\t});\n\n\t\tdescribe('updateOption()', function() {\n\t\t\tvar test;\n\n\t\t\tbefore(function() {\n\t\t\t\ttest = setup_test('<select multiple>', {\n\t\t\t\t\tvalueField: 'value',\n\t\t\t\t\tlabelField: 'value',\n\t\t\t\t\toptions: [\n\t\t\t\t\t\t{value: 0},\n\t\t\t\t\t\t{value: 1},\n\t\t\t\t\t\t{value: 'a'},\n\t\t\t\t\t\t{value: 'b'},\n\t\t\t\t\t\t{value: 'c'},\n\t\t\t\t\t\t{value: 'd'},\n\t\t\t\t\t\t{value: 'e'},\n\t\t\t\t\t\t{value: 'f'},\n\t\t\t\t\t\t{value: 'x'},\n\t\t\t\t\t\t{value: 'null'},\n\t\t\t\t\t\t{value: 'undefined'},\n\t\t\t\t\t\t{value: '\\''},\n\t\t\t\t\t\t{value: '\"'},\n\t\t\t\t\t\t{value: '\\\\\\''},\n\t\t\t\t\t\t{value: '\\\\\"'},\n\t\t\t\t\t],\n\t\t\t\t\titems: ['e','f']\n\t\t\t\t});\n\t\t\t});\n\t\t\tit('should update option data', function() {\n\t\t\t\ttest.selectize.updateOption('a', {value: 'a', test: 'test'});\n\t\t\t\texpect(test.selectize.options).to.have.property('a');\n\t\t\t\texpect(test.selectize.options['a'].test).to.equal('test');\n\t\t\t});\n\t\t\tit('should update indexes', function() {\n\t\t\t\ttest.selectize.updateOption('e', {value: 'e_updated'});\n\t\t\t\texpect(test.selectize.options).to.not.have.property('e');\n\t\t\t\texpect(test.selectize.options).to.have.property('e_updated');\n\t\t\t\texpect(test.selectize.items.indexOf('e')).to.be.equal(-1);\n\t\t\t\texpect(test.selectize.items.indexOf('e_updated')).to.be.equal(0);\n\t\t\t});\n\t\t\tit('should maintain implicit $order property', function() {\n\t\t\t\tvar order_orig = test.selectize.options['x'].$order;\n\t\t\t\tassert.isNumber(order_orig);\n\t\t\t\ttest.selectize.updateOption('x', {value: 'x', something: 'x'});\n\t\t\t\tassert.equal(test.selectize.options['x'].$order, order_orig);\n\t\t\t});\n\t\t\tit('should allow integer values', function() {\n\t\t\t\ttest.selectize.updateOption(0, {value: '0_updated'});\n\t\t\t\ttest.selectize.updateOption(1, {value: '1_updated'});\n\t\t\t\texpect(test.selectize.options).to.not.have.property('0');\n\t\t\t\texpect(test.selectize.options).to.not.have.property('1');\n\t\t\t\texpect(test.selectize.options).to.have.property('0_updated');\n\t\t\t\texpect(test.selectize.options).to.have.property('1_updated');\n\t\t\t});\n\t\t\tit('should throw error if value not set in data', function() {\n\t\t\t\texpect(function() {\n\t\t\t\t\ttest.selectize.updateOption('c', {value: undefined, test: 'test'});\n\t\t\t\t\ttest.selectize.updateOption('d', {value: null, test: 'test'});\n\t\t\t\t}).to.throw(Error);\n\t\t\t});\n\t\t\tit('should ignore undefined / null value references', function() {\n\t\t\t\ttest.selectize.updateOption(undefined, {value: 'undefined', test: 'test'});\n\t\t\t\ttest.selectize.updateOption(null, {value: 'null', test: 'test'});\n\t\t\t\texpect(test.selectize.options['undefined']).to.not.have.property('test');\n\t\t\t\texpect(test.selectize.options['null']).to.not.have.property('test');\n\t\t\t});\n\t\t\tit('should update DOM', function() {\n\t\t\t\ttest.selectize.updateOption('f', {value: 'f_updated'});\n\t\t\t\texpect(test.selectize.$control.find('[data-value=f]').length).to.be.equal(0);\n\t\t\t\texpect(test.selectize.$control.find('[data-value=f_updated]').length).to.be.equal(1);\n\t\t\t});\n\t\t});\n\n\t\tdescribe('getOption()', function() {\n\t\t\tvar test;\n\n\t\t\tbefore(function() {\n\t\t\t\ttest = setup_test('<select>', {\n\t\t\t\t\tvalueField: 'value',\n\t\t\t\t\tlabelField: 'value',\n\t\t\t\t\toptions: [\n\t\t\t\t\t\t{value: 0},\n\t\t\t\t\t\t{value: 1},\n\t\t\t\t\t\t{value: 'a'},\n\t\t\t\t\t\t{value: 'b'},\n\t\t\t\t\t\t{value: '\\''},\n\t\t\t\t\t\t{value: '\\\\'},\n\t\t\t\t\t\t{value: '\"'},\n\t\t\t\t\t\t{value: '\\\\\\''},\n\t\t\t\t\t\t{value: '\\\\\"'},\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t\ttest.selectize.refreshOptions(true);\n\t\t\t});\n\t\t\tit('should allow string values', function() {\n\t\t\t\texpect(test.selectize.getOption('a')).to.be.ok;\n\t\t\t\texpect(test.selectize.getOption('a').length).to.be.equal(1);\n\t\t\t\texpect(test.selectize.getOption('b')).to.be.ok;\n\t\t\t\texpect(test.selectize.getOption('b').length).to.be.equal(1);\n\t\t\t});\n\t\t\tit('should allow integer values', function() {\n\t\t\t\texpect(test.selectize.getOption(0)).to.be.ok;\n\t\t\t\texpect(test.selectize.getOption(0).length).to.be.equal(1);\n\t\t\t\texpect(test.selectize.getOption(1)).to.be.ok;\n\t\t\t\texpect(test.selectize.getOption(1).length).to.be.equal(1);\n\t\t\t});\n\t\t\tit('should allow values with quotation marks', function() {\n\t\t\t\texpect(test.selectize.getOption('\\'')).to.be.ok;\n\t\t\t\texpect(test.selectize.getOption('\\'').length).to.be.equal(1);\n\t\t\t\texpect(test.selectize.getOption('\"')).to.be.ok;\n\t\t\t\texpect(test.selectize.getOption('\"').length).to.be.equal(1);\n\t\t\t});\n\t\t\tit('should allow values with backslashes', function() {\n\t\t\t\texpect(test.selectize.getOption('\\\\')).to.be.ok;\n\t\t\t\texpect(test.selectize.getOption('\\\\').length).to.be.equal(1);\n\t\t\t\texpect(test.selectize.getOption('\\\\\\'')).to.be.ok;\n\t\t\t\texpect(test.selectize.getOption('\\\\\\'').length).to.be.equal(1);\n\t\t\t\texpect(test.selectize.getOption('\\\\\"')).to.be.ok;\n\t\t\t\texpect(test.selectize.getOption('\\\\\"').length).to.be.equal(1);\n\t\t\t});\n\t\t\tit('should not allow undefined / null values', function() {\n\t\t\t\texpect(test.selectize.getOption(null)).to.be.ok;\n\t\t\t\texpect(test.selectize.getOption(null).length).to.be.equal(0);\n\t\t\t\texpect(test.selectize.getOption(undefined)).to.be.ok;\n\t\t\t\texpect(test.selectize.getOption(undefined).length).to.be.equal(0);\n\t\t\t});\n\t\t});\n\n\t\tdescribe('getItem()', function() {\n\t\t\tvar test;\n\n\t\t\tbefore(function() {\n\t\t\t\ttest = setup_test('<select multiple>', {\n\t\t\t\t\tvalueField: 'value',\n\t\t\t\t\tlabelField: 'value',\n\t\t\t\t\toptions: [\n\t\t\t\t\t\t{value: 0},\n\t\t\t\t\t\t{value: 1},\n\t\t\t\t\t\t{value: 'a'},\n\t\t\t\t\t\t{value: 'b'},\n\t\t\t\t\t\t{value: '\\''},\n\t\t\t\t\t\t{value: '\"'},\n\t\t\t\t\t\t{value: '\\\\\\''},\n\t\t\t\t\t\t{value: '\\\\\"'}\n\t\t\t\t\t],\n\t\t\t\t\titems: ['0','1','a','b','\\'','\"','\\\\\\'','\\\\\"']\n\t\t\t\t});\n\t\t\t});\n\t\t\tit('should allow string values', function() {\n\t\t\t\texpect(test.selectize.getItem('a')).to.be.ok;\n\t\t\t\texpect(test.selectize.getItem('a').length).to.be.equal(1);\n\t\t\t\texpect(test.selectize.getItem('b')).to.be.ok;\n\t\t\t\texpect(test.selectize.getItem('b').length).to.be.equal(1);\n\t\t\t});\n\t\t\tit('should allow integer values', function() {\n\t\t\t\texpect(test.selectize.getItem(0)).to.be.ok;\n\t\t\t\texpect(test.selectize.getItem(0).length).to.be.equal(1);\n\t\t\t\texpect(test.selectize.getItem(1)).to.be.ok;\n\t\t\t\texpect(test.selectize.getItem(1).length).to.be.equal(1);\n\t\t\t});\n\t\t\tit('should allow values with quotation marks', function() {\n\t\t\t\texpect(test.selectize.getItem('\\'')).to.be.ok;\n\t\t\t\texpect(test.selectize.getItem('\\'').length).to.be.equal(1);\n\t\t\t\texpect(test.selectize.getItem('\"')).to.be.ok;\n\t\t\t\texpect(test.selectize.getItem('\"').length).to.be.equal(1);\n\t\t\t});\n\t\t\tit('should allow values with backslashes', function() {\n\t\t\t\texpect(test.selectize.getItem('\\\\\\'')).to.be.ok;\n\t\t\t\texpect(test.selectize.getItem('\\\\\\'').length).to.be.equal(1);\n\t\t\t\texpect(test.selectize.getItem('\\\\\"')).to.be.ok;\n\t\t\t\texpect(test.selectize.getItem('\\\\\"').length).to.be.equal(1);\n\t\t\t});\n\t\t\tit('should not allow undefined / null values', function() {\n\t\t\t\texpect(test.selectize.getItem(null)).to.be.ok;\n\t\t\t\texpect(test.selectize.getItem(null).length).to.be.equal(0);\n\t\t\t\texpect(test.selectize.getItem(undefined)).to.be.ok;\n\t\t\t\texpect(test.selectize.getItem(undefined).length).to.be.equal(0);\n\t\t\t});\n\t\t});\n\n\t\tdescribe('clear()', function() {\n\t\t\tvar test;\n\n\t\t\tbeforeEach(function() {\n\t\t\t\ttest = setup_test('<select multiple>', {\n\t\t\t\t\tvalueField: 'value',\n\t\t\t\t\tlabelField: 'value',\n\t\t\t\t\toptions: [\n\t\t\t\t\t\t{value: 0},\n\t\t\t\t\t\t{value: 1},\n\t\t\t\t\t\t{value: 2},\n\t\t\t\t\t\t{value: JSON.stringify({\"type\":\"place\"})},\n\t\t\t\t\t],\n\t\t\t\t\titems: ['1','2','3']\n\t\t\t\t});\n\t\t\t});\n\t\t\tit('should empty \"$activeItems\" array', function() {\n\t\t\t\ttest.selectize.setActiveItem(test.selectize.getItem('1'));\n\t\t\t\texpect(test.selectize.$activeItems.length).to.be.equal(1);\n\t\t\t\ttest.selectize.clear();\n\t\t\t\texpect(test.selectize.$activeItems.length).to.be.equal(0);\n\t\t\t});\n\t\t\tit('should refresh option list (dropdown)', function(done) {\n\t\t\t\t// test = setup_test('<select multiple>', {\n\t\t\t\t// \tvalueField: 'value',\n\t\t\t\t// \tlabelField: 'value',\n\t\t\t\t// \toptions: [\n\t\t\t\t// \t\t{value: 0},\n\t\t\t\t// \t\t{value: 1},\n\t\t\t\t// \t\t{value: 2},\n\t\t\t\t// \t\t{value: JSON.stringify({\"type\":\"place\"})},\n\t\t\t\t// \t],\n\t\t\t\t// \titems: ['1','2','3']\n\t\t\t\t// });\n\n\t\t\t\ttest.selectize.focus();\n\t\t\t\twindow.setTimeout(function() {\n\t\t\t\t\ttest.selectize.clear();\n\t\t\t\t\ttest.selectize.focus();\n\t\t\t\t\twindow.setTimeout(function() {\n\t\t\t\t\t\texpect(test.selectize.$dropdown_content.find('[data-value=1]').length).to.be.equal(1);\n\t\t\t\t\t\texpect(test.selectize.$dropdown_content.find('[data-value=2]').length).to.be.equal(1);\n\t\t\t\t\t\texpect(test.selectize.$dropdown_content.find('[data-value*=\"type\"]').length).to.be.equal(1);\n\t\t\t\t\t\tdone();\n\t\t\t\t\t}, 0);\n\t\t\t\t}, 0);\n\t\t\t});\n\t\t\tit('should empty \"items\" array', function() {\n\t\t\t\ttest.selectize.clear();\n\t\t\t\texpect(test.selectize.items.length).to.be.equal(0);\n\t\t\t});\n\t\t\tit('should update DOM', function() {\n\t\t\t\ttest.selectize.clear();\n\t\t\t\texpect(test.selectize.$control.find('[data-value=1]').length).to.be.equal(0);\n\t\t\t\texpect(test.selectize.$control.find('[data-value=2]').length).to.be.equal(0);\n\t\t\t\texpect(test.selectize.$control.find('[data-value*=\"type\"]').length).to.be.equal(0);\n\t\t\t});\n\t\t\tit('should not fire \"change\" if silent is truthy', function(done) {\n\t\t\t\tvar watcher = function(e) { throw new Error('Change fired'); };\n\t\t\t\ttest.$select.on('change', watcher);\n\t\t\t\ttest.selectize.clear(true);\n\t\t\t\twindow.setTimeout(function() {\n\t\t\t\t\ttest.$select.off('change', watcher);\n\t\t\t\t\tdone();\n\t\t\t\t}, 0);\n\t\t\t});\n\t\t\tit('should not give control focus', function(done) {\n\t\t\t\ttest.selectize.clear();\n\t\t\t\twindow.setTimeout(function() {\n\t\t\t\t\texpect(test.selectize.isFocused).to.be.equal(false);\n\t\t\t\t\tdone();\n\t\t\t\t}, 0);\n\t\t\t});\n\t\t\tit('should empty \"items\" array', function() {\n\t\t\t\ttest.selectize.clear();\n\t\t\t\texpect(test.selectize.items.length).to.be.equal(0);\n\t\t\t});\n\t\t});\n\n\t\tdescribe('search()', function() {\n\t\t\tit('should throw error if \"score\" setting does not return a function', function() {\n\t\t\t\tvar test;\n\n\t\t\t\texpect(function() {\n\t\t\t\t\ttest = setup_test('<select multiple>', {\n\t\t\t\t\t\tvalueField: 'value',\n\t\t\t\t\t\tlabelField: 'value',\n\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t{value: 0},\n\t\t\t\t\t\t\t{value: 1}\n\t\t\t\t\t\t],\n\t\t\t\t\t\tscore: function() { }\n\t\t\t\t\t});\n\t\t\t\t\ttest.selectize.search('hello');\n\t\t\t\t}).to.throw(Error);\n\t\t\t});\n\t\t\tit('should not throw error if \"score\" setting does return a function', function() {\n\t\t\t\tvar test;\n\n\t\t\t\texpect(function() {\n\t\t\t\t\ttest = setup_test('<select multiple>', {\n\t\t\t\t\t\tvalueField: 'value',\n\t\t\t\t\t\tlabelField: 'value',\n\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t{value: 0},\n\t\t\t\t\t\t\t{value: 1}\n\t\t\t\t\t\t],\n\t\t\t\t\t\tscore: function(query) {\n\t\t\t\t\t\t\treturn function(item) { return 0; };\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\ttest.selectize.search('hello');\n\t\t\t\t}).to.not.throw(Error);\n      });\n      expect('should normalize a string', function () {\n        var test;\n\n        beforeEach(function() {\n          test = setup_test('<select>' +\n            '<option value=\"a\">A</option>' +\n          '</select>', { normalize: true });\n        });\n\n        it('should return query satinized', function(done) {\n          var query = test.selectize.search('héllo').query;\n\n          window.setTimeout(function () {\n            expect(query).to.be.equal('hello');\n            done();\n          }, 0);\n        });\n\t\t\t});\n\t\t});\n\n\t\tdescribe('getScoreFunction()', function() {\n\t\t\tit('should return an function that returns a number', function() {\n\t\t\t\tvar test = setup_test('<select multiple>', {\n\t\t\t\t\tvalueField: 'value',\n\t\t\t\t\tlabelField: 'value',\n\t\t\t\t\tsearchField: 'value',\n\t\t\t\t\toptions: []\n\t\t\t\t});\n\t\t\t\tvar fn = test.selectize.getScoreFunction('test');\n\t\t\t\texpect(typeof fn).to.be.equal('function');\n\t\t\t\texpect(typeof fn({value: 'test'})).to.be.equal('number');\n\t\t\t\texpect(fn({value: 'test'})).to.be.above(0);\n\t\t\t});\n\t\t});\n\n\t\tdescribe('destroy()', function() {\n\t\t\tvar has_namespaced_event = function($el, ns) {\n\t\t\t\tvar i, n, key;\n\t\t\t\tvar data = ($._data || $.data).apply($, [$(window)[0], 'events']);\n\t\t\t\tns = ns.replace(/^./, '');\n\t\t\t\tfor (key in data) {\n\t\t\t\t\tif (data.hasOwnProperty(key)) {\n\t\t\t\t\t\tfor (i = 0, n = data[key].length; i < n; i++) {\n\t\t\t\t\t\t\tif (data[key][i].namespace.indexOf(ns) !== -1) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t};\n\t\t\tit('should remove control from DOM', function() {\n\t\t\t\tvar test = setup_test('<select>', {});\n\t\t\t\ttest.selectize.destroy();\n\t\t\t\texpect($.contains(document.documentElement, test.selectize.$wrapper[0])).to.be.equal(false);\n\t\t\t});\n\t\t\tit('should delete \"selectize\" reference on original input element', function() {\n\t\t\t\tvar test = setup_test('<select>', {});\n\t\t\t\ttest.selectize.destroy();\n\t\t\t\texpect(test.selectize.$input[0].selectize).to.be.equal(undefined);\n\t\t\t});\n\t\t\tit('should unbind events on window', function() {\n\t\t\t\tvar test = setup_test('<select>', {});\n\t\t\t\ttest.selectize.destroy();\n\t\t\t\texpect(has_namespaced_event($(window), test.selectize.eventNS)).to.be.equal(false);\n\t\t\t});\n\t\t\tit('should unbind events on document', function() {\n\t\t\t\tvar test = setup_test('<select>', {});\n\t\t\t\ttest.selectize.destroy();\n\t\t\t\texpect(has_namespaced_event($(document), test.selectize.eventNS)).to.be.equal(false);\n\t\t\t});\n\t\t\tit('should unbind events on <body>', function() {\n\t\t\t\tvar test = setup_test('<select>', {});\n\t\t\t\ttest.selectize.destroy();\n\t\t\t\texpect(has_namespaced_event($('body'), test.selectize.eventNS)).to.be.equal(false);\n\t\t\t});\n\t\t\tit('should restore original options and tabindex', function() {\n\t\t\t\tvar children = '<optgroup label=\"Swedish Cars\">' +\n\t\t\t\t\t'<option value=\"volvo\">Volvo</option>' +\n\t\t\t\t\t'<option value=\"saab\">Saab</option>' +\n\t\t\t\t'</optgroup>' +\n\t\t\t\t'<optgroup label=\"German Cars\">' +\n\t\t\t\t\t'<option value=\"mercedes\">Mercedes</option>' +\n\t\t\t\t\t'<option value=\"audi\">Audi</option>' +\n\t\t\t\t'</optgroup>';\n\t\t\t\tvar test = setup_test('<select tabindex=\"9999\">' + children + '</select>', {});\n\t\t\t\ttest.selectize.destroy();\n\t\t\t\texpect(test.$select.html()).to.be.equal(children);\n\t\t\t\texpect(test.$select.attr('tabindex')).to.be.equal('9999');\n\t\t\t});\n\t\t\tit('should remove tabindex if it was originally undefined', function() {\n\t\t\t\tvar test = setup_test('<select>', {});\n\t\t\t\ttest.selectize.destroy();\n\t\t\t\texpect(test.$select.attr('tabindex')).to.be.equal(undefined);\n\t\t\t});\n\t\t});\n\n\t\tdescribe('clearCache()', function() {\n\t\t\tvar test;\n\n\t\t\tbefore(function() {\n\t\t\t\ttest = setup_test('<select multiple>', {\n\t\t\t\t\tvalueField: 'value',\n\t\t\t\t\tlabelField: 'value',\n\t\t\t\t\toptions: [\n\t\t\t\t\t\t{value: 0},\n\t\t\t\t\t\t{value: 1},\n\t\t\t\t\t\t{value: 2},\n\t\t\t\t\t\t{value: 3},\n\t\t\t\t\t],\n\t\t\t\t\titems: ['1','2','3']\n\t\t\t\t});\n\t\t\t\ttest.selectize.advanceSelection(1);\n\t\t\t\ttest.selectize.refreshOptions(true);\n\t\t\t\ttest.selectize.refreshItems();\n\t\t\t});\n\t\t\tit('should clear the whole renderCache', function () {\n\t\t\t\texpect($.isEmptyObject(test.selectize.renderCache)).to.be.equal(false);\n\t\t\t\ttest.selectize.clearCache();\n\t\t\t\texpect($.isEmptyObject(test.selectize.renderCache)).to.be.equal(true);\n\t\t\t});\n\t\t\tit('should allow clearing just one template type from the renderCache', function () {\n\t\t\t\ttest.selectize.render('item', test.selectize.options[0]);\n\t\t\t\ttest.selectize.refreshOptions();\n\t\t\t\texpect($.isEmptyObject(test.selectize.renderCache['option'])).to.be.equal(false);\n\t\t\t\texpect($.isEmptyObject(test.selectize.renderCache['item'])).to.be.equal(false);\n\t\t\t\ttest.selectize.clearCache('option');\n\t\t\t\texpect($.isEmptyObject(test.selectize.renderCache['option'])).to.be.equal(true);\n\t\t\t\texpect($.isEmptyObject(test.selectize.renderCache['item'])).to.be.equal(false);\n\t\t\t});\n\t\t});\n\n\t});\n\n})();\n"
  },
  {
    "path": "test/events.js",
    "content": "describe('Events', function() {\n\n\tdescribe('focus', function() {\n\t\tit('should work as expected', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\" selected></option><option value=\"b\"></option><option value=\"c\"></option></select>', {});\n\t\t\tvar counter = 0;\n\t\t\ttest.selectize.on('focus', function() { counter++; });\n\t\t\ttest.selectize.focus();\n\n\t\t\tsyn.click(test.selectize.$control).delay(0, function() {\n\t\t\t\twindow.setTimeout(function() {\n\t\t\t\t\texpect(counter).to.be.equal(1);\n\t\t\t\t\tdone();\n\t\t\t\t}, 0);\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe('blur', function() {\n\t\tit('should work as expected', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\" selected></option><option value=\"b\"></option><option value=\"c\"></option></select>', {});\n\t\t\tvar counter = 0;\n\t\t\ttest.selectize.on('blur', function() { counter++; });\n\t\t\ttest.selectize.focus();\n\n\t\t\tsyn.click(test.selectize.$control).delay(0, function() {\n\t\t\t\tsyn.click($('body')).delay(0, function() {\n\t\t\t\t\twindow.setTimeout(function() {\n\t\t\t\t\t\texpect(counter).to.be.equal(1);\n\t\t\t\t\t\tdone();\n\t\t\t\t\t}, 0);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe('change', function() {\n\t\tit('should be triggered once', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\" selected></option><option value=\"b\"></option><option value=\"c\"></option></select>', {});\n\t\t\tvar counter = 0;\n\t\t\ttest.selectize.on('change', function() { counter++; });\n\t\t\ttest.selectize.setValue('b');\n\n\t\t\twindow.setTimeout(function() {\n\t\t\t\texpect(counter).to.be.equal(1);\n\t\t\t\tdone();\n\t\t\t}, 0);\n\t\t});\n\t\tit('should contain current value', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\" selected></option><option value=\"b\"></option><option value=\"c\"></option></select>', {});\n\t\t\ttest.selectize.on('change', function(value) {\n\t\t\t\texpect(value).to.be.equal('c');\n\t\t\t\tdone();\n\t\t\t});\n\t\t\ttest.selectize.setValue('c');\n\t\t});\n\t\tit('should not be triggered when the selected item has not changed', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\" selected=\"selected\">a</option></select>');\n\n\t\t\tvar counter = 0;\n\t\t\ttest.$select.on('change', function() { counter++; });\n\n\t\t\tsyn.click(test.selectize.$control).delay(0, function() {\n\t\t\t\tsyn\n\t\t\t\t\t.click($('[data-value=\"a\"]', test.selectize.$dropdown))\n\t\t\t\t\t.delay(0, function() {\n\t\t\t\t\t\texpect(counter).to.be.equal(0);\n\t\t\t\t\t\tdone();\n\t\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\n\t\tit('should not be possible to trigger a disabled option', function(done) {\n\t\t\tvar test = setup_test(['<select>',\n\t\t\t\t'<option value=\"a\" disabled>Item A</option>',\n\t\t\t\t'<option value=\"b\">Item B</option>',\n\t\t\t\t'</select>'].join(''), {});\n\t\t\tvar counter = 0;\n\t\t\ttest.$select.on('change', function() { counter++; });\n\n\t\t\tsyn.click(test.selectize.$control).delay(0, function() {\n\t\t\t\tsyn\n\t\t\t\t\t.click($('[data-value=\"a\"]', test.selectize.$dropdown))\n\t\t\t\t\t.delay(0, function() {\n\t\t\t\t\t\texpect(counter).to.be.equal(0);\n\t\t\t\t\t\tdone();\n\t\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t\tit('should not be possible to trigger a option under a disabled optgroup', function(done) {\n\t\t\tvar test = setup_test(['<select>',\n\t\t\t\t'<optgroup label=\"Group 1\">',\n\t\t\t\t'<option value=\"a\">Item A</option>',\n\t\t\t\t'</optgroup>',\n\t\t\t\t'<optgroup label=\"Group 2\" disabled>',\n\t\t\t\t'<option value=\"b\">Item B</option>',\n\t\t\t\t'<option value=\"c\">Item C</option>',\n\t\t\t\t'</optgroup>',\n\t\t\t\t'</select>'].join(''), {});\n\t\t\tvar counter = 0;\n\t\t\ttest.$select.on('change', function() { counter++; });\n\n\t\t\tsyn.click(test.selectize.$control).delay(0, function() {\n\t\t\t\tsyn\n\t\t\t\t\t.click($('[data-value=\"c\"]', test.selectize.$dropdown))\n\t\t\t\t\t.delay(0, function() {\n\t\t\t\t\t\texpect(counter).to.be.equal(0);\n\t\t\t\t\t\tdone();\n\t\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe('input', function() {\n\t\tit('should be triggered once before change', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\" selected></option><option value=\"b\"></option><option value=\"c\"></option></select>', {});\n\t\t\tvar evt = '';\n\t\t\ttest.$select.on('change', function() { evt = evt + 'change'; });\n\t\t\ttest.$select.on('input', function() { evt = evt + 'input'; });\n\t\t\ttest.selectize.setValue('b');\n\n\t\t\twindow.setTimeout(function() {\n\t\t\t\texpect(evt).to.be.equal('inputchange');\n\t\t\t\tdone();\n\t\t\t}, 0);\n\t\t});\n\t\tit('should not be triggered when the selected item has not changed', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\" selected=\"selected\">a</option></select>');\n\n\t\t\tvar counter = 0;\n\t\t\ttest.$select.on('input', function() { counter++; });\n\n\t\t\tsyn.click(test.selectize.$control).delay(0, function() {\n\t\t\t\tsyn\n\t\t\t\t\t.click($('[data-value=\"a\"]', test.selectize.$dropdown))\n\t\t\t\t\t.delay(0, function() {\n\t\t\t\t\t\texpect(counter).to.be.equal(0);\n\t\t\t\t\t\tdone();\n\t\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe('item_add', function() {\n\t\tit('should be triggered', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\"></option><option value=\"b\"></option><option value=\"c\"></option></select>', {});\n\t\t\ttest.selectize.on('item_add', function() {\n\t\t\t\tdone();\n\t\t\t});\n\t\t\ttest.selectize.addItem('b');\n\t\t});\n\t\tit('should contain item\\'s value and element', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\"></option><option value=\"b\"></option><option value=\"c\"></option></select>', {});\n\t\t\ttest.selectize.on('item_add', function(value, $item) {\n\t\t\t\texpect(value).to.be.equal('b');\n\t\t\t\tassert.equal($item.length, 1);\n\t\t\t\tdone();\n\t\t\t});\n\t\t\ttest.selectize.addItem('b');\n\t\t});\n\t});\n\n\tdescribe('item_before_remove', function() {\n\t\tit('should be triggered', function(done) {\n\t\t\tvar test = setup_test('<select multiple><option value=\"a\" selected></option><option value=\"b\" selected></option><option value=\"c\"></option></select>', {});\n\t\t\ttest.selectize.on('item_before_remove', function() {\n\t\t\t\tdone();\n\t\t\t});\n\t\t\ttest.selectize.removeItem('a');\n\t\t});\n\t\tit('should contain item\\'s value and element', function(done) {\n\t\t\tvar test = setup_test('<select multiple><option value=\"a\" selected></option><option value=\"b\" selected></option><option value=\"c\"></option></select>', {});\n\t\t\ttest.selectize.on('item_before_remove', function(value, $item) {\n\t\t\t\texpect(value).to.be.equal('b');\n\t\t\t\tassert.equal($item.length, 1);\n\t\t\t\tdone();\n\t\t\t});\n\t\t\ttest.selectize.removeItem('b');\n\t\t});\n\t});\n\n\tdescribe('item_remove', function() {\n\t\tit('should be triggered', function(done) {\n\t\t\tvar test = setup_test('<select multiple><option value=\"a\" selected></option><option value=\"b\" selected></option><option value=\"c\"></option></select>', {});\n\t\t\ttest.selectize.on('item_remove', function() {\n\t\t\t\tdone();\n\t\t\t});\n\t\t\ttest.selectize.removeItem('a');\n\t\t});\n\t\tit('should contain item\\'s value and element', function(done) {\n\t\t\tvar test = setup_test('<select multiple><option value=\"a\" selected></option><option value=\"b\" selected></option><option value=\"c\"></option></select>', {});\n\t\t\ttest.selectize.on('item_remove', function(value, $item) {\n\t\t\t\texpect(value).to.be.equal('b');\n\t\t\t\tassert.equal($item.length, 1);\n\t\t\t\tdone();\n\t\t\t});\n\t\t\ttest.selectize.removeItem('b');\n\t\t});\n\t});\n\n\tdescribe('clear', function() {\n\t\tit('should be triggered', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\" selected></option><option value=\"b\" selected></option><option value=\"c\"></option></select>', {});\n\t\t\ttest.selectize.on('clear', function() {\n\t\t\t\tdone();\n\t\t\t});\n\t\t\ttest.selectize.clear();\n\t\t});\n\t});\n\n\tdescribe('optgroup_add', function() {\n\t\tit('should be triggered', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\" selected></option><option value=\"b\" selected></option><option value=\"c\"></option></select>', {});\n\t\t\ttest.selectize.on('optgroup_add', function() { done(); });\n\t\t\ttest.selectize.addOptionGroup('id', {label: 'Group'});\n\t\t});\n\t\tit('should contain optgroup id', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\" selected></option><option value=\"b\" selected></option><option value=\"c\"></option></select>', {});\n\t\t\ttest.selectize.on('optgroup_add', function(id, data) {\n\t\t\t\texpect(id).to.be.equal('id');\n\t\t\t\tdone();\n\t\t\t});\n\t\t\ttest.selectize.addOptionGroup('id', {label: 'Group'});\n\t\t});\n\t\tit('should contain outgroup data', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\" selected></option><option value=\"b\" selected></option><option value=\"c\"></option></select>', {});\n\t\t\tvar optgroup = {label: 'Group'};\n\t\t\ttest.selectize.on('optgroup_add', function(id, data) {\n\t\t\t\texpect(data).to.eql(optgroup);\n\t\t\t\tdone();\n\t\t\t});\n\t\t\ttest.selectize.addOptionGroup('id', optgroup);\n\t\t});\n\t});\n\n\tdescribe('optgroup_remove', function() {\n\t\tit('should be triggered', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\" selected></option><option value=\"b\" selected></option><option value=\"c\"></option></select>', {});\n\t\t\ttest.selectize.on('optgroup_remove', function(id) {\n\t\t\t\texpect(id).to.be.equal('id');\n\t\t\t\tdone();\n\t\t\t});\n\t\t\ttest.selectize.addOptionGroup('id', {label: 'Group'});\n\t\t\ttest.selectize.removeOptionGroup('id');\n\t\t});\n\t});\n\n\tdescribe('optgroup_clear', function() {\n\t\tit('should be triggered', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\" selected></option><option value=\"b\" selected></option><option value=\"c\"></option></select>', {});\n\t\t\ttest.selectize.on('optgroup_clear', function() {\n\t\t\t\tdone();\n\t\t\t});\n\t\t\ttest.selectize.addOptionGroup('id', {label: 'Group'});\n\t\t\ttest.selectize.clearOptionGroups();\n\t\t});\n\t});\n\n\tdescribe('option_add', function() {\n\t\tit('should be triggered', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\" selected></option><option value=\"b\" selected></option><option value=\"c\"></option></select>', {});\n\t\t\ttest.selectize.on('option_add', function() {\n\t\t\t\tdone();\n\t\t\t});\n\t\t\ttest.selectize.addOption({value: 'e'});\n\t\t});\n\t\tit('should contain option value', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\" selected></option><option value=\"b\" selected></option><option value=\"c\"></option></select>', {});\n\t\t\ttest.selectize.on('option_add', function(value, data) {\n\t\t\t\texpect(value).to.be.equal('e');\n\t\t\t\tdone();\n\t\t\t});\n\t\t\ttest.selectize.addOption({value: 'e'});\n\t\t});\n\t\tit('should contain option data', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\" selected></option><option value=\"b\" selected></option><option value=\"c\"></option></select>', {});\n\t\t\tvar option = {value: 'e'};\n\t\t\ttest.selectize.on('option_add', function(value, data) {\n\t\t\t\texpect(option).to.eql(data);\n\t\t\t\tdone();\n\t\t\t});\n\t\t\ttest.selectize.addOption(option);\n\t\t});\n\t});\n\n\tdescribe('option_remove', function() {\n\t\tit('should be triggered', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\" selected></option><option value=\"b\" selected></option><option value=\"c\"></option></select>', {});\n\t\t\ttest.selectize.on('option_remove', function() {\n\t\t\t\tdone();\n\t\t\t});\n\t\t\ttest.selectize.removeOption('a');\n\t\t});\n\t\tit('should contain option value', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\" selected></option><option value=\"b\" selected></option><option value=\"c\"></option></select>', {});\n\t\t\ttest.selectize.on('option_remove', function(value) {\n\t\t\t\texpect(value).to.be.equal('a');\n\t\t\t\tdone();\n\t\t\t});\n\t\t\ttest.selectize.removeOption('a');\n\t\t});\n\t});\n\n\tdescribe('option_clear', function() {\n\t\tit('should be triggered', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\" selected></option><option value=\"b\" selected></option><option value=\"c\"></option></select>', {});\n\t\t\ttest.selectize.on('option_clear', function() {\n\t\t\t\tdone();\n\t\t\t});\n\t\t\ttest.selectize.clearOptions();\n\t\t});\n\t});\n\n\tdescribe('dropdown_open', function() {\n\t\tit('should be triggered', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\" selected></option><option value=\"b\" selected></option><option value=\"c\"></option></select>', {});\n\t\t\ttest.selectize.on('dropdown_open', function() {\n\t\t\t\tdone();\n\t\t\t});\n\t\t\ttest.selectize.open();\n\t\t});\n\t});\n\n\tdescribe('dropdown_close', function() {\n\t\tit('should be triggered', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\" selected></option><option value=\"b\" selected></option><option value=\"c\"></option></select>', {});\n\t\t\ttest.selectize.on('dropdown_close', function() {\n\t\t\t\tdone();\n\t\t\t});\n\t\t\ttest.selectize.open();\n\t\t\ttest.selectize.close();\n\t\t});\n\t});\n\n\tdescribe('destroy', function() {\n\t\tit('should be triggered', function(done) {\n\t\t\tvar test = setup_test('<select><option value=\"a\" selected></option><option value=\"b\" selected></option><option value=\"c\"></option></select>', {});\n\t\t\ttest.selectize.on('destroy', function() {\n\t\t\t\tdone();\n\t\t\t});\n\t\t\ttest.selectize.destroy();\n\t\t});\n\t});\n\n\tdescribe('type', function() {\n\t\tit('should be triggered', function(done) {\n\t\t\tvar test = setup_test('<select></select>', {create: true});\n\t\t\ttest.selectize.on('type', function() {\n\t\t\t\tdone();\n\t\t\t});\n\t\t\tsyn.click(test.selectize.$control).type('a', test.selectize.$control_input);\n\t\t});\n\t\tit('should contain current value', function(done) {\n\t\t\tvar test = setup_test('<select></select>', {create: true});\n\t\t\ttest.selectize.on('type', function(value) {\n\t\t\t\texpect(value).to.be.equal('a');\n\t\t\t\tdone();\n\t\t\t});\n\t\t\tsyn.click(test.selectize.$control).type('a', test.selectize.$control_input);\n\t\t});\n\t});\n\n});\n"
  },
  {
    "path": "test/events_dom.js",
    "content": "describe('DOM Events', function() {\n\tdescribe('\"change\"', function() {\n\t\tit('should be triggered once by addItem()', function(done) {\n\t\t\tvar test = setup_test('<select>', {\n\t\t\t\tvalueField: 'value',\n\t\t\t\tlabelField: 'value',\n\t\t\t\toptions: [\n\t\t\t\t\t{value: 'a'},\n\t\t\t\t\t{value: 'b'},\n\t\t\t\t],\n\t\t\t\titems: ['a']\n\t\t\t});\n\n\t\t\tvar counter = 0;\n\t\t\ttest.$select.on('change', function() { counter++; });\n\t\t\ttest.selectize.addItem('b');\n\n\t\t\twindow.setTimeout(function() {\n\t\t\t\texpect(counter).to.be.equal(1);\n\t\t\t\tdone();\n\t\t\t}, 0);\n\t\t});\n\t\tit('should be triggered once by removeItem()', function(done) {\n\t\t\tvar test = setup_test('<select multiple>', {\n\t\t\t\tvalueField: 'value',\n\t\t\t\tlabelField: 'value',\n\t\t\t\toptions: [\n\t\t\t\t\t{value: 'a'},\n\t\t\t\t\t{value: 'b'},\n\t\t\t\t],\n\t\t\t\titems: ['a','b']\n\t\t\t});\n\n\t\t\tvar counter = 0;\n\t\t\ttest.$select.on('change', function() { counter++; });\n\t\t\ttest.selectize.removeItem('b');\n\n\t\t\twindow.setTimeout(function() {\n\t\t\t\texpect(counter).to.be.equal(1);\n\t\t\t\tdone();\n\t\t\t}, 0);\n\t\t});\n\t\tit('should be triggered once by clear()', function(done) {\n\t\t\tvar test = setup_test('<select multiple>', {\n\t\t\t\tvalueField: 'value',\n\t\t\t\tlabelField: 'value',\n\t\t\t\toptions: [\n\t\t\t\t\t{value: 'a'},\n\t\t\t\t\t{value: 'b'},\n\t\t\t\t],\n\t\t\t\titems: ['a','b']\n\t\t\t});\n\n\t\t\tvar counter = 0;\n\t\t\ttest.$select.on('change', function() { counter++; });\n\t\t\ttest.selectize.clear();\n\n\t\t\twindow.setTimeout(function() {\n\t\t\t\texpect(counter).to.be.equal(1);\n\t\t\t\tdone();\n\t\t\t}, 0);\n\t\t});\n\t});\n});"
  },
  {
    "path": "test/interaction.js",
    "content": "(function() {\n\n\tvar click = function(el, cb) {\n\t\tsyn.click(el).delay(1, cb);\n\t};\n\n\tvar tabTo = function(elem) {\n\t\t// emulating keyboard tabbing using focus\n\t\t// TODO: it would be better to use something like puppeteer instead, then we could simulate real keyboard interactions\n\t\t// syn.key() is not reliable enough for tabbing\n\t\telem.focus();\n\t\treturn new Promise((resolve) => window.setTimeout(resolve));\n\t};\n\n\t// These tests are functional simulations of\n\t// user interaction, using syn.js. For more information:\n\t//\n\t// @see http://v3.javascriptmvc.com/docs.html#&who=syn\n\t// @see http://bitovi.com/blog/2010/07/syn-a-standalone-synthetic-event-library.html\n\n\tdescribe('Interaction', function() {\n\n\t\tit('should keep dropdown open after selection made if closeAfterSelect: false', function(done) {\n\t\t\tvar test = setup_test('<select multiple>' +\n\t\t\t\t\t'<option value=\"a\">A</option>' +\n\t\t\t\t\t'<option value=\"b\">B</option>' +\n\t\t\t\t'</select>', {});\n\n\t\t\t\tclick(test.selectize.$control, function() {\n\t\t\t\t\tclick($('[data-value=a]', test.selectize.$dropdown_content), function() {\n\t\t\t\t\t\texpect(test.selectize.isOpen).to.be.equal(true);\n\t\t\t\t\t\texpect(test.selectize.isFocused).to.be.equal(true);\n\t\t\t\t\t\tdone();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t});\n\n\t\tit('should close dropdown after selection made if closeAfterSelect: true', function(done) {\n\t\t\tvar test = setup_test('<select multiple>' +\n\t\t\t\t'<option value=\"a\">A</option>' +\n\t\t\t\t'<option value=\"b\">B</option>' +\n\t\t\t\t'</select>', {closeAfterSelect: true});\n\n\t\t\tclick(test.selectize.$control, function() {\n\t\t\t\tclick($('[data-value=a]', test.selectize.$dropdown_content), function() {\n\t\t\t\t\texpect(test.selectize.isOpen).to.be.equal(false);\n\t\t\t\t\texpect(test.selectize.isFocused).to.be.equal(true);\n\t\t\t\t\tdone();\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\n    it('should reopen dropdown if clicked after being closed by closeAfterSelect: true', function(done) {\n      var test = setup_test('<select multiple>' +\n\t\t\t\t'<option value=\"a\">A</option>' +\n\t\t\t\t'<option value=\"b\">B</option>' +\n\t\t\t\t'</select>', {closeAfterSelect: true});\n\n\t\t\tclick(test.selectize.$control, function() {\n\t\t\t\tclick($('[data-value=a]', test.selectize.$dropdown_content), function() {\n          click(test.selectize.$control, function () {\n  \t\t\t\t\texpect(test.selectize.isOpen).to.be.equal(true);\n  \t\t\t\t\texpect(test.selectize.isFocused).to.be.equal(true);\n  \t\t\t\t\tdone();\n          });\n\t\t\t\t});\n\t\t\t});\n    });\n\n\t\tdescribe('clicking control', function() {\n\n\t\t\tit('should give it focus', function(done) {\n\t\t\t\tvar test = setup_test('<select>' +\n\t\t\t\t\t'<option value=\"a\">A</option>' +\n\t\t\t\t\t'<option value=\"b\">B</option>' +\n\t\t\t\t'</select>', {});\n\n\t\t\t\tclick(test.selectize.$control, function() {\n\t\t\t\t\texpect(test.selectize.isFocused).to.be.equal(true);\n\t\t\t\t\tdone();\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tit('should start loading results if preload:\"focus\"', function(done) {\n\t\t\t\tvar calls_focus = 0;\n\t\t\t\tvar calls_load = 0;\n\t\t\t\tvar test = setup_test('<select>' +\n\t\t\t\t\t'<option value=\"a\">A</option>' +\n\t\t\t\t\t'<option value=\"b\">B</option>' +\n\t\t\t\t'</select>', {\n\t\t\t\t\tpreload: 'focus',\n\t\t\t\t\tload: function(query, done) {\n\t\t\t\t\t\tcalls_load++;\n\t\t\t\t\t\tassert.equal(query, '');\n\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\tdone([{value: 'c', text: 'C'}]);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\ttest.selectize.on('focus', function() {\n\t\t\t\t\tcalls_focus++;\n\t\t\t\t});\n\t\t\t\tclick(test.selectize.$control, function() {\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tassert.equal(calls_focus, 1);\n\t\t\t\t\t\tassert.equal(calls_load, 1);\n\t\t\t\t\t\tdone();\n\t\t\t\t\t}, 300);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tit('should open dropdown menu', function(done) {\n\t\t\t\tvar test = setup_test('<select>' +\n\t\t\t\t\t'<option value=\"a\">A</option>' +\n\t\t\t\t\t'<option value=\"b\">B</option>' +\n\t\t\t\t'</select>', {});\n\n\t\t\t\tclick(test.selectize.$control, function() {\n\t\t\t\t\texpect(test.selectize.isOpen).to.be.equal(true);\n\t\t\t\t\texpect(test.selectize.$dropdown.is(':visible')).to.be.equal(true);\n\t\t\t\t\tdone();\n\t\t\t\t});\n\t\t\t});\n\n\t\t});\n\n\t\tdescribe('clicking label', function() {\n\n\t\t\tit('should give it focus to select', function(done) {\n\t\t\t\tvar inputId = \"labeledSelect\";\n\t\t\t\tvar label =\n\t\t\t\t\t$('<label for=\"'+inputId+'\">select</label>').appendTo('form');\n\n\t\t\t\tvar test = setup_test('<select id=\"'+inputId+'\">' +\n\t\t\t\t\t'<option value=\"a\">A</option>' +\n\t\t\t\t\t'<option value=\"b\">B</option>' +\n\t\t\t\t'</select>', {});\n\n\t\t\t\tsyn.click(label)\n\t\t\t\t\t.delay(0, function() {\n\t\t\t\t\t\tlabel.remove();\n\t\t\t\t\t\texpect(test.selectize.isFocused).to.be.equal(true);\n\t\t\t\t\t\tdone();\n\t\t\t\t\t});\n\t\t\t});\n\n\t\t\tit('should give it focus to input', function(done) {\n\t\t\t\tvar inputId = \"labeledInput\";\n\t\t\t\tvar label =\n\t\t\t\t\t$('<label for=\"'+inputId+'\">input</label>').appendTo('form');\n\n\t\t\t\tvar test = setup_test('<input id=\"'+inputId+'\" type=\"text\" value=\"a,b,c,d\">', {});\n\n\t\t\t\tsyn.click(label)\n\t\t\t\t\t.delay(0, function() {\n\t\t\t\t\t\tlabel.remove();\n\t\t\t\t\t\texpect(test.selectize.isFocused).to.be.equal(true);\n\t\t\t\t\t\tdone();\n\t\t\t\t\t});\n\t\t\t});\n\n\t\t});\n\n\t\tdescribe('clicking option', function() {\n\n\t\t\tit('should select it', function(done) {\n\t\t\t\tvar test = setup_test('<select>' +\n\t\t\t\t\t'<option value=\"\">Select an option...</option>' +\n\t\t\t\t\t'<option value=\"a\">A</option>' +\n\t\t\t\t\t'<option value=\"b\">B</option>' +\n\t\t\t\t'</select>', {});\n\n\t\t\t\tclick(test.selectize.$control, function() {\n\t\t\t\t\tclick($('[data-value=\"b\"]', test.selectize.$dropdown), function() {\n\t\t\t\t\t\texpect(test.selectize.$input.val()).to.be.equal('b');\n\t\t\t\t\t\texpect(test.selectize.$input.text()).to.be.equal('B');\n\t\t\t\t\t\tdone();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tit('should close dropdown', function(done) {\n\t\t\t\tvar test = setup_test('<select>' +\n\t\t\t\t\t'<option value=\"\">Select an option...</option>' +\n\t\t\t\t\t'<option value=\"a\">A</option>' +\n\t\t\t\t\t'<option value=\"b\">B</option>' +\n\t\t\t\t'</select>', {});\n\n\t\t\t\tclick(test.selectize.$control, function() {\n\t\t\t\t\tclick($('[data-value=\"b\"]', test.selectize.$dropdown), function() {\n\t\t\t\t\t\texpect(test.selectize.isOpen).to.be.equal(false);\n\t\t\t\t\t\texpect(test.selectize.$dropdown.is(':visible')).to.be.equal(false);\n\t\t\t\t\t\tdone();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\n\t\t});\n\n\t\tdescribe('typing in input', function() {\n\n\t\t\tit('should filter results', function(done) {\n\t\t\t\tvar test = setup_test('<select>' +\n\t\t\t\t\t'<option value=\"\">Select an option...</option>' +\n\t\t\t\t\t'<option value=\"a\">A</option>' +\n\t\t\t\t\t'<option value=\"b\">B</option>' +\n\t\t\t\t'</select>', {});\n\n\t\t\t\tclick(test.selectize.$control, function() {\n\t\t\t\t\tsyn.type('a', test.selectize.$control_input)\n\t\t\t\t\t.delay(0, function() {\n\t\t\t\t\t\texpect($('[data-value=\"a\"]', test.selectize.$dropdown).length).to.be.equal(1);\n\t\t\t\t\t\texpect($('[data-value=\"b\"]', test.selectize.$dropdown).length).to.be.equal(0);\n\t\t\t\t\t\tdone();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tit('should hide dropdown if no results present', function(done) {\n\t\t\t\tvar test = setup_test('<select>' +\n\t\t\t\t\t'<option value=\"\">Select an option...</option>' +\n\t\t\t\t\t'<option value=\"a\">A</option>' +\n\t\t\t\t\t'<option value=\"b\">B</option>' +\n\t\t\t\t'</select>', {});\n\n\t\t\t\tclick(test.selectize.$control, function() {\n\t\t\t\t\tsyn.type('awaw', test.selectize.$control_input)\n\t\t\t\t\t.delay(0, function() {\n\t\t\t\t\t\texpect(test.selectize.isOpen).to.be.equal(false);\n\t\t\t\t\t\texpect(test.selectize.$dropdown.is(':visible')).to.be.equal(false);\n\t\t\t\t\t\tdone();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tit('should not hide dropdown if \"create\" option enabled and no results present', function(done) {\n\t\t\t\tvar test = setup_test('<select>' +\n\t\t\t\t\t'<option value=\"\">Select an option...</option>' +\n\t\t\t\t\t'<option value=\"a\">A</option>' +\n\t\t\t\t\t'<option value=\"b\">B</option>' +\n\t\t\t\t'</select>', {create: true});\n\n\t\t\t\tclick(test.selectize.$control, function() {\n\t\t\t\t\tsyn.type('awaw', test.selectize.$control_input)\n\t\t\t\t\t.delay(0, function() {\n\t\t\t\t\t\texpect(test.selectize.isOpen).to.be.equal(true);\n\t\t\t\t\t\texpect(test.selectize.$dropdown.is(':visible')).to.be.equal(true);\n\t\t\t\t\t\tdone();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tit('should restore dropdown visibility when backing out of a query without results (backspace)', function(done) {\n\t\t\t\tvar test = setup_test('<select>' +\n\t\t\t\t\t'<option value=\"\">Select an option...</option>' +\n\t\t\t\t\t'<option value=\"a\">A</option>' +\n\t\t\t\t\t'<option value=\"b\">B</option>' +\n\t\t\t\t'</select>', {});\n\n\t\t\t\tclick(test.selectize.$control, function() {\n\t\t\t\t\tsyn.type('awf', test.selectize.$control_input)\n\t\t\t\t\t.type('\\b\\b\\b', test.selectize.$control_input)\n\t\t\t\t\t.delay(0, function() {\n\t\t\t\t\t\texpect(test.selectize.isOpen).to.be.equal(true);\n\t\t\t\t\t\texpect(test.selectize.$dropdown.is(':visible')).to.be.equal(true);\n\t\t\t\t\t\tdone();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tit('should move caret when [left] or [right] pressed', function(done) {\n\t\t\t\tvar test = setup_test('<input type=\"text\" value=\"a,b,c,d\">', {create: true});\n\n\t\t\t\tclick(test.selectize.$control, function() {\n\t\t\t\t\tsyn.type('[left][left]whatt', test.selectize.$control_input)\n\t\t\t\t\t.delay(0, function() {\n\t\t\t\t\t\texpect(test.selectize.caretPos).to.be.equal(2);\n\t\t\t\t\t\tdone();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tit('should not create input if comma entered in single select mode', function(done) {\n\t\t\t\tvar test = setup_test('<select>' +\n\t\t\t\t\t'<option value=\"\">Select an option...</option>' +\n\t\t\t\t\t'<option value=\"a\">A</option>' +\n\t\t\t\t\t'<option value=\"b\">B</option>' +\n\t\t\t\t'</select>', {create: true});\n\n\t\t\t\tclick(test.selectize.$control, function() {\n\t\t\t\t\tsyn.type('asdf,asdf', test.selectize.$control_input)\n\t\t\t\t\t.delay(0, function() {\n\t\t\t\t\t\texpect(test.selectize.isOpen).to.be.equal(true);\n\t\t\t\t\t\texpect(test.selectize.options).to.not.have.property('asdf');\n\t\t\t\t\t\tdone();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tit('should not delete any dropdown option text if duplicate match occurs', function(done) {\n\t\t\t\tvar test = setup_test('<select>' +\n\t\t\t\t\t'<option></option>' +\n\t\t\t\t\t'<option value=\"a\"></option>' +\n\t\t\t\t\t'<option value=\"b\">Isabel Street</option>' +\n\t\t\t\t'</select>', {});\n\n\t\t\t\tclick(test.selectize.$control, function() {\n\t\t\t\t\t// Here, the 'S' in St will also match the 's' in Isabel (a duplicate match)\n\t\t\t\t\tsyn.type('Isabel St', test.selectize.$control_input)\n\t\t\t\t\t.delay(0, function() {\n\t\t\t\t\t\texpect(test.selectize.$dropdown_content.find('.option[data-value=b]').text()).to.be.equal('Isabel Street');\n\t\t\t\t\t\tdone();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\n\t\t});\n\n\t\tdescribe('blurring the input', function() {\n\t\t\tit('should close dropdown when createOnBlur is true', function(done) {\n\t\t\t\tvar test = setup_test('<select multiple=\"multiple\">' +\n\t\t\t\t\t'<option></option>' +\n\t\t\t\t\t'<option value=\"a\">A</option>' +\n\t\t\t\t\t'<option value=\"b\">B</option>' +\n\t\t\t\t'</select>', {\n\t\t\t\t\tcreateOnBlur: true,\n\t\t\t\t\tcreate: function(value){\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\t\ttext: value\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tclick(test.selectize.$control, function() {\n\t\t\t\t\tsyn\n\t\t\t\t\t\t.type('fooo', test.selectize.$control_input)\n\t\t\t\t\t\t.delay(0, function() {\n\t\t\t\t\t\t\texpect(test.selectize.isOpen).to.be.equal(true);\n\t\t\t\t\t\t\texpect(test.selectize.$dropdown.is(':visible')).to.be.equal(true);\n\n\t\t\t\t\t\t\tsyn\n\t\t\t\t\t\t\t\t.click($(\"body\"))\n\t\t\t\t\t\t\t\t.delay(5, function() {\n\t\t\t\t\t\t\t\t\texpect(test.selectize.isOpen).to.be.equal(false);\n\t\t\t\t\t\t\t\t\texpect(test.selectize.$dropdown.is(':visible')).to.be.equal(false);\n\t\t\t\t\t\t\t\t\tdone();\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t});\n\t\t});\n\n\t\tdescribe('filtering created items', function() {\n\t\t\tfunction createFilterTest(createFilter) {\n\t\t\t\treturn setup_test('<select multiple=\"multiple\"></select>', {create: true, createFilter: createFilter});\n\t\t\t}\n\n\t\t\tvar text = 'abc';\n\n\t\t\tfunction execFilterTest(test, done, expectation) {\n\t\t\t\tvar selectize = test.selectize;\n\t\t\t\tclick(selectize.$control, function() {\n\t\t\t\t\tsyn\n\t\t\t\t\t\t.type(text, selectize.$control_input)\n\t\t\t\t\t\t.type(selectize.settings.delimiter, selectize.$control_input)\n\t\t\t\t\t\t.delay(0, function() {\n\t\t\t\t\t\t\texpectation(selectize);\n\t\t\t\t\t\t\tdone();\n\t\t\t\t\t\t})\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tfunction execFilterTests(heading, filters, expectation) {\n\t\t\t\tfor (var i = 0; i < filters.length; i++) {\n\t\t\t\t\t(function(filter) {\n\t\t\t\t\t\tit(heading, function(done) {\n\t\t\t\t\t\t\texecFilterTest(createFilterTest(filter), done, expectation);\n\t\t\t\t\t\t});\n\t\t\t\t\t})(filters[i]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\texecFilterTests('should add an item  normally if there is no createFilter', [undefined, null, ''], function(selectize) {\n\t\t\t\texpect(selectize.getItem(text).length).to.be.equal(1);\n\t\t\t});\n\n\t\t\texecFilterTests('should add an item if the input matches the createFilter', ['a', /a/, function() { return true; }], function(selectize) {\n\t\t\t\texpect(selectize.getItem(text).length).to.be.equal(1);\n\t\t\t});\n\n\t\t\texecFilterTests('should not add an item or display the create label if the input does not match the createFilter', ['foo', /foo/, function() { return false; }], function(selectize) {\n\t\t\t\texpect(selectize.getItem(text).length).to.be.equal(0);\n\t\t\t\texpect($(selectize.$dropdown_content).filter('.create').length).to.be.equal(0);\n\t\t\t});\n\t\t});\n\n\t\tdescribe('deleting active item', function() {\n\t\t\tit('should deactivate the item', function(done) {\n\t\t\t\tvar test = setup_test('<select multiple=\"multiple\">' +\n\t\t\t\t\t'<option value=\"a\">A</option>' +\n\t\t\t\t\t'<option value=\"b\">B</option>' +\n\t\t\t\t\t'</select>', {});\n\n\t\t\t\tclick(test.selectize.$control, function() {\n\t\t\t\t\tclick($('[data-value=\"a\"]', test.selectize.$dropdown), function() {\n\t\t\t\t\t\tclick($('[data-value=\"a\"]', test.selectize.$control), function() {\n\t\t\t\t\t\t\tsyn\n\t\t\t\t\t\t\t\t.type('[backspace]', test.selectize.$control_input)\n\t\t\t\t\t\t\t\t.delay(5, function() {\n\t\t\t\t\t\t\t\t\tclick($('[data-value=\"a\"]', test.selectize.$dropdown), function () {\n\t\t\t\t\t\t\t\t\t\texpect($('[data-value=\"a\"]', test.selectize.$control).hasClass('active')).to.be.equal(false);\n\t\t\t\t\t\t\t\t\t\tdone();\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t\tdescribe('simulate tabbing using native focus()', function() {\n\n\t\t\tdescribe('defaults', function() {\n\t\t\t\tvar test, input1, input2;\n\n\t\t\t\tbefore(function(done) {\n\t\t\t\t\ttest = setup_test('<select>' +\n\t\t\t\t\t\t'<option value=\"\">No selection</option>' +\n\t\t\t\t\t\t'<option value=\"a\">A</option>' +\n\t\t\t\t\t\t'<option value=\"b\">B</option>' +\n\t\t\t\t\t\t'</select>', {});\n\t\t\t\t\tinput1 = $('<input type=\"text\" class=\"first\">');\n\t\t\t\t\tinput2 = $('<input type=\"text\" class=\"last\">');\n\t\t\t\t\ttest.$select.parent().prepend(input1);\n\t\t\t\t\ttest.$select.parent().append(input2);\n\t\t\t\t\tdone();\n\t\t\t\t});\n\n\t\t\t\tafter(function() {\n\t\t\t\t\tinput1.remove();\n\t\t\t\t\tinput2.remove();\n\t\t\t\t});\n\n\t\t\t\tit('should give the control focus', async function() {\n\t\t\t\t\tawait tabTo(input1[0]);\n\t\t\t\t\texpect(test.selectize.isFocused).to.be.equal(false);\n\t\t\t\t\tawait tabTo(test.selectize.$control_input[0]);\n\t\t\t\t\texpect(test.selectize.isFocused).to.be.equal(true);\n\t\t\t\t});\n\n\t\t\t\tit('should remove the control focus', async function() {\n\t\t\t\t\tawait tabTo(test.selectize.$control_input[0]);\n\t\t\t\t\texpect(test.selectize.isFocused).to.be.equal(true);\n\t\t\t\t\tawait tabTo(input2[0]);\n\t\t\t\t\texpect(test.selectize.isFocused).to.be.equal(false);\n\t\t\t\t});\n\n\t\t\t\tit('should open the control', async function() {\n\t\t\t\t\tawait tabTo(input1[0]);\n\t\t\t\t\texpect(test.selectize.isOpen).to.be.equal(false);\n\t\t\t\t\tawait tabTo(test.selectize.$control_input[0]);\n\t\t\t\t\texpect(test.selectize.isOpen).to.be.equal(true);\n\t\t\t\t});\n\n\t\t\t\tit('should close the control', async function() {\n\t\t\t\t\tawait tabTo(test.selectize.$control_input[0]);\n\t\t\t\t\texpect(test.selectize.isOpen).to.be.equal(true);\n\t\t\t\t\tawait tabTo(input2[0]);\n\t\t\t\t\texpect(test.selectize.isOpen).to.be.equal(false);\n\t\t\t\t});\n\n\t\t\t\t// TODO: this would work if tabTo was using actual keyboard interactions,\n\t\t\t\t// and not just focus()\n\t\t\t\txit('should select the first value on blur', async function() {\n\t\t\t\t\tawait tabTo(test.selectize.$control_input[0]);\n\t\t\t\t\tawait tabTo(input2[0]);\n\t\t\t\t\texpect(test.selectize.getValue()).to.be.equal('a');\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tdescribe('openOnFocus is false', function() {\n\t\t\t\tvar test, input1, input2;\n\n\t\t\t\tbefore(function(done) {\n\t\t\t\t\ttest = setup_test('<select>' +\n\t\t\t\t\t\t'<option value=\"\">No selection</option>' +\n\t\t\t\t\t\t'<option value=\"a\">A</option>' +\n\t\t\t\t\t\t'<option value=\"b\">B</option>' +\n\t\t\t\t\t\t'</select>', { openOnFocus: false });\n\t\t\t\t\tinput1 = $('<input type=\"text\" class=\"first\">');\n\t\t\t\t\tinput2 = $('<input type=\"text\" class=\"last\">');\n\t\t\t\t\ttest.$select.parent().prepend(input1);\n\t\t\t\t\ttest.$select.parent().append(input2);\n\t\t\t\t\tdone();\n\t\t\t\t});\n\n\t\t\t\tafter(function() {\n\t\t\t\t\tinput1.remove();\n\t\t\t\t\tinput2.remove();\n\t\t\t\t});\n\n\t\t\t\tit('should give the control focus', async function() {\n\t\t\t\t\tawait tabTo(input1[0]);\n\t\t\t\t\texpect(test.selectize.isFocused).to.be.equal(false);\n\t\t\t\t\tawait tabTo(test.selectize.$control_input[0]);\n\t\t\t\t\texpect(test.selectize.isFocused).to.be.equal(true);\n\t\t\t\t});\n\n\t\t\t\tit('should not open the control', async function() {\n\t\t\t\t\tawait tabTo(input1[0]);\n\t\t\t\t\texpect(test.selectize.isOpen).to.be.equal(false);\n\t\t\t\t\tawait tabTo(test.selectize.$control_input[0]);\n\t\t\t\t\texpect(test.selectize.isOpen).to.be.equal(false);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t});\n\n})();\n"
  },
  {
    "path": "test/microplugin.js",
    "content": "(function () {\n\n  describe('MicroPlugin', function () {\n\n    describe('mixin()', function () {\n\n      it('should add \"define\" method', function () {\n        var Lib = function () { };\n        MicroPlugin.mixin(Lib);\n        assert.equal(typeof Lib.define, 'function');\n      });\n\n      it('should add \"require\" method to prototype', function () {\n        var Lib = function () { };\n        MicroPlugin.mixin(Lib);\n        assert.equal(typeof Lib.prototype.require, 'function');\n      });\n\n      it('should add \"initializePlugins\" method to prototype', function () {\n        var Lib = function () { };\n        MicroPlugin.mixin(Lib);\n        assert.equal(typeof Lib.prototype.initializePlugins, 'function');\n      });\n\n    });\n\n    describe('#initializePlugins()', function () {\n\n      describe('format: array of plugin names', function () {\n\n        it('should load plugins with options empty', function () {\n          var Lib = function () {\n            this.initializePlugins(['a', 'b']);\n          };\n          MicroPlugin.mixin(Lib);\n\n          var loaded = 0;\n          Lib.define('a', function (options) { loaded++; assert.deepEqual(options, {}); });\n          Lib.define('b', function (options) { loaded++; assert.deepEqual(options, {}); });\n\n          new Lib();\n          assert.equal(loaded, 2);\n        });\n\n        it('should not load plugins that are not listed', function () {\n          var Lib = function () {\n            this.initializePlugins(['a', 'b']);\n          };\n          MicroPlugin.mixin(Lib);\n\n          var loaded = false;\n          Lib.define('a', function (options) { });\n          Lib.define('b', function (options) { });\n          Lib.define('c', function (options) { loaded = true; });\n\n          new Lib();\n          assert.equal(loaded, false);\n        });\n\n        it('should only execute plugins once, even if listed more than once', function () {\n          var Lib = function () {\n            this.initializePlugins(['a', 'a']);\n          };\n          MicroPlugin.mixin(Lib);\n\n          var counter = 0;\n          Lib.define('a', function (options) { counter++; });\n\n          new Lib();\n          assert.equal(counter, 1);\n        });\n\n      });\n\n      describe('format: hash of plugin options', function () {\n\n        it('should load plugins with correct options', function () {\n          var Lib = function () {\n            this.initializePlugins({\n              'a': { test: 'hello_a' },\n              'b': { test: 'hello_b' }\n            });\n          };\n          MicroPlugin.mixin(Lib);\n\n          var loaded = 0;\n          Lib.define('a', function (options) { loaded++; assert.equal(options.test, 'hello_a'); });\n          Lib.define('b', function (options) { loaded++; assert.equal(options.test, 'hello_b'); });\n\n          new Lib();\n          assert.equal(loaded, 2);\n        });\n\n        it('should not load plugins that are not listed', function () {\n          var Lib = function () {\n            this.initializePlugins({\n              'a': { test: 'hello_a' },\n              'b': { test: 'hello_b' }\n            });\n          };\n          MicroPlugin.mixin(Lib);\n\n          var loaded = false;\n          Lib.define('a', function (options) { });\n          Lib.define('b', function (options) { });\n          Lib.define('c', function (options) { loaded = true; });\n\n          new Lib();\n          assert.equal(loaded, false);\n        });\n\n      });\n\n\n      describe('format: array of plugin options', function () {\n\n        it('should load plugins with correct options', function () {\n          var Lib = function () {\n            this.initializePlugins([\n              { name: 'a', options: { test: 'hello_a' } },\n              { name: 'b', options: { test: 'hello_b' } }\n            ]);\n          };\n          MicroPlugin.mixin(Lib);\n\n          var loaded = 0;\n          Lib.define('a', function (options) { loaded++; assert.deepEqual(options, { test: 'hello_a' }); });\n          Lib.define('b', function (options) { loaded++; assert.deepEqual(options, { test: 'hello_b' }); });\n\n          new Lib();\n          assert.equal(loaded, 2);\n        });\n\n        it('should not load plugins that are not listed', function () {\n          var Lib = function () {\n            this.initializePlugins([\n              { name: 'a', options: { test: 'hello_a' } },\n              { name: 'b', options: { test: 'hello_b' } }\n            ]);\n          };\n          MicroPlugin.mixin(Lib);\n\n          var loaded = false;\n          Lib.define('a', function (options) { });\n          Lib.define('b', function (options) { });\n          Lib.define('c', function (options) { loaded = true; });\n\n          new Lib();\n          assert.equal(loaded, false);\n        });\n\n        it('should only execute plugins once, even if listed more than once', function () {\n          var Lib = function () {\n            this.initializePlugins([\n              { name: 'a', options: { test: 'hello_a' } },\n              { name: 'a', options: { test: 'hello_a' } },\n              { name: 'a', options: { test: 'hello_a' } }\n            ]);\n          };\n          MicroPlugin.mixin(Lib);\n\n          var counter = 0;\n          Lib.define('a', function (options) { counter++; });\n\n          new Lib();\n          assert.equal(counter, 1);\n        });\n\n      });\n\n    });\n\n    describe('#require()', function () {\n\n      it('should throw error if requested plugin not defined', function () {\n        var Lib = function () { this.initializePlugins(); };\n        MicroPlugin.mixin(Lib);\n\n        assert.throws(function () {\n          var instance = new Lib();\n          instance.require('a');\n        });\n      });\n\n      it('should throw error if circular dependency exists', function () {\n        var Lib = function () { this.initializePlugins(); };\n        MicroPlugin.mixin(Lib);\n\n        Lib.define('a', function () { this.require('b'); });\n        Lib.define('b', function () { this.require('a'); });\n\n        assert.throws(function () {\n          var instance = new Lib();\n          instance.require('b');\n        }, /dependency/);\n      });\n\n      it('should not execute plugin code more than once', function () {\n        var Lib = function () { this.initializePlugins(); };\n        MicroPlugin.mixin(Lib);\n\n        var counter = 0;\n        Lib.define('a', function () { counter++; });\n        Lib.define('b', function () { this.require('a'); });\n\n        var instance = new Lib();\n        instance.require('a');\n        instance.require('a');\n        instance.require('b');\n\n        assert.equal(counter, 1);\n      });\n\n      it('should return plugin exports', function () {\n        var Lib = function () { this.initializePlugins(); };\n        MicroPlugin.mixin(Lib);\n\n        Lib.define('a', function () { return 'test'; });\n        Lib.define('b', function () { return { test: true }; });\n        Lib.define('c', function () { return false; });\n        Lib.define('d', function () { });\n\n        var instance = new Lib();\n        assert.equal(instance.require('a'), 'test');\n        assert.equal(instance.require('a'), 'test');\n        assert.equal(instance.require('b').test, true);\n        assert.equal(instance.require('c'), false);\n        assert.equal(typeof instance.require('d'), 'undefined');\n      });\n\n    });\n\n  });\n\n})();\n"
  },
  {
    "path": "test/setup.js",
    "content": "(function () {\n\n  describe('Setup', function () {\n\n    it('should not allow duplicate initialization', function () {\n      var instance_before, instance_after, test;\n\n      test = setup_test('<input type=\"text\">', {});\n      instance_before = test.$select[0].selectize;\n      test.$select.selectize();\n      instance_after = test.$select[0].selectize;\n\n      expect(instance_before).to.be.equal(instance_after);\n    });\n\n    describe('<input type=\"text\">', function () {\n      it('should complete without exceptions', function () {\n        var test = setup_test('<input type=\"text\">', {});\n      });\n      it('should populate items,options from \"dataAttr\" if available', function () {\n        var data = [{ val: 'a', lbl: 'Hello' }, { val: 'b', lbl: 'World' }];\n        var test = setup_test('<input type=\"text\" value=\"c,d,e\" data-hydrate=\"' + JSON.stringify(data).replace(/\"/g, '&quot;') + '\">', {\n          dataAttr: 'data-hydrate',\n          valueField: 'val',\n          labelField: 'lbl'\n        });\n        expect(test.selectize.getValue()).to.be.equal('a,b');\n        assert.deepEqual(test.selectize.items, ['a', 'b']);\n        assert.deepEqual(test.selectize.options, {\n          'a': { val: 'a', lbl: 'Hello', $order: 1 },\n          'b': { val: 'b', lbl: 'World', $order: 2 }\n        });\n      });\n      describe('getValue()', function () {\n        it('should return value as a string', function () {\n          var test = setup_test('<input type=\"text\" value=\"a,b\">', { delimiter: ',' });\n          expect(test.selectize.getValue()).to.be.a('string');\n        });\n        it('should return \"\" when empty', function () {\n          var test = setup_test('<input type=\"text\" value=\"\">', { delimiter: ',' });\n          expect(test.selectize.getValue()).to.be.equal('');\n        });\n        it('should return proper value when not empty', function () {\n          var test = setup_test('<input type=\"text\" value=\"a,b\">', { delimiter: ',' });\n          expect(test.selectize.getValue()).to.be.equal('a,b');\n        });\n      });\n      describe('<input type=\"text\" attributes>', function () {\n        it('should propagate original input attributes to the generated input', function () {\n          var test = setup_test('<input type=\"text\" autocorrect=\"off\" autocapitalize=\"none\">', {});\n          expect(test.selectize.$control_input.attr('autocorrect')).to.be.equal('off');\n          expect(test.selectize.$control_input.attr('autocapitalize')).to.be.equal('none');\n        });\n        it('should not add attributes if not present in the original', function () {\n          var test = setup_test('<input type=\"text\">', {});\n          expect(test.selectize.$control_input.attr('autocorrect')).to.be.equal(undefined);\n          expect(test.selectize.$control_input.attr('autocapitalize')).to.be.equal(undefined);\n        });\n      });\n    });\n\n    describe('<input type=\"number\">', function () {\n      it('should complete without exceptions', function (done) {\n        var test = setup_test('<input type=\"number\">', {});\n        window.setTimeout(function () {\n          assert.equal(test.selectize.$control_input.attr('type'), 'number');\n          done();\n        }, 0);\n      });\n    });\n\n    describe('<select>', function () {\n      it('should complete without exceptions', function () {\n        var test = setup_test('<select></select>', {});\n      });\n      it('should allow for values optgroups with duplicated options', function () {\n        var test = setup_test(['<select>',\n          '<optgroup label=\"Group 1\">',\n          '<option value=\"a\">Item A</option>',\n          '<option value=\"b\">Item B</option>',\n          '</optgroup>',\n          '<optgroup label=\"Group 2\">',\n          '<option value=\"a\">Item A</option>',\n          '<option value=\"b\">Item B</option>',\n          '</optgroup>',\n          '</select>'].join(''), {\n          optgroupValueField: 'val',\n          optgroupField: 'grp',\n          disabledField: 'dis'\n        });\n        assert.deepEqual(test.selectize.options, {\n          'a': { text: 'Item A', value: 'a', grp: ['Group 1', 'Group 2'], $order: 1, dis: false, styles: '', classes: '' },\n          'b': { text: 'Item B', value: 'b', grp: ['Group 1', 'Group 2'], $order: 2, dis: false, styles: '', classes: '' }\n        });\n        assert.deepEqual(test.selectize.optgroups, {\n          'Group 1': { label: 'Group 1', val: 'Group 1', $order: 3, dis: false },\n          'Group 2': { label: 'Group 2', val: 'Group 2', $order: 4, dis: false }\n        }, '2');\n      });\n      it('should allow respect disabled flags of option and optgroup', function () {\n        var test = setup_test(['<select>',\n          '<optgroup label=\"Group 1\">',\n          '<option value=\"a\" disabled>Item A</option>',\n          '<option value=\"b\">Item B</option>',\n          '</optgroup>',\n          '<optgroup label=\"Group 2\" disabled>',\n          '<option value=\"a\">Item A</option>',\n          '<option value=\"b\">Item B</option>',\n          '</optgroup>',\n          '</select>'].join(''), {\n          optgroupValueField: 'val',\n          optgroupField: 'grp',\n          disabledField: 'dis'\n        });\n        assert.deepEqual(test.selectize.options, {\n          'a': { text: 'Item A', value: 'a', grp: ['Group 1', 'Group 2'], $order: 1, dis: true, styles: '', classes: '' },\n          'b': { text: 'Item B', value: 'b', grp: ['Group 1', 'Group 2'], $order: 2, dis: false, styles: '', classes: '' }\n        });\n        assert.deepEqual(test.selectize.optgroups, {\n          'Group 1': { label: 'Group 1', val: 'Group 1', $order: 3, dis: false },\n          'Group 2': { label: 'Group 2', val: 'Group 2', $order: 4, dis: true }\n        }, '2');\n      });\n      it('should add options in text form (no html entities)', function () {\n        var test = setup_test('<select><option selected value=\"a\">&lt;hi&gt;</option></select>', {});\n        expect(test.selectize.options['a'].text).to.be.equal('<hi>');\n      });\n      it('should keep options in original order if no sort given', function (done) {\n        var test = setup_test([\n          '<select multiple>',\n          '<option value=\"\">Select a state...</option>',\n          '<option value=\"AL\">Alabama</option>',\n          '<option value=\"AK\">Alaska</option>',\n          '<option value=\"AZ\">Arizona</option>',\n          '<option value=\"AR\">Arkansas</option>',\n          '<option value=\"CA\" selected>California</option>',\n          '<option value=\"CO\">Colorado</option>',\n          '<option value=\"CT\">Connecticut</option>',\n          '<option value=\"DE\">Delaware</option>',\n          '<option value=\"DC\">District of Columbia</option>',\n          '<option value=\"FL\">Florida</option>',\n          '<option value=\"GA\">Georgia</option>',\n          '<option value=\"HI\">Hawaii</option>',\n          '<option value=\"ID\">Idaho</option>',\n          '<option value=\"IL\">Illinois</option>',\n          '<option value=\"IN\">Indiana</option>',\n          '<option value=\"IA\">Iowa</option>',\n          '<option value=\"KS\">Kansas</option>',\n          '<option value=\"KY\">Kentucky</option>',\n          '<option value=\"LA\">Louisiana</option>',\n          '<option value=\"ME\">Maine</option>',\n          '<option value=\"MD\">Maryland</option>',\n          '<option value=\"MA\">Massachusetts</option>',\n          '<option value=\"MI\">Michigan</option>',\n          '<option value=\"MN\">Minnesota</option>',\n          '<option value=\"MS\">Mississippi</option>',\n          '<option value=\"MO\">Missouri</option>',\n          '<option value=\"MT\">Montana</option>',\n          '<option value=\"NE\">Nebraska</option>',\n          '<option value=\"NV\">Nevada</option>',\n          '<option value=\"NH\">New Hampshire</option>',\n          '<option value=\"NJ\">New Jersey</option>',\n          '<option value=\"NM\">New Mexico</option>',\n          '<option value=\"NY\">New York</option>',\n          '<option value=\"NC\">North Carolina</option>',\n          '<option value=\"ND\">North Dakota</option>',\n          '<option value=\"OH\">Ohio</option>',\n          '<option value=\"OK\">Oklahoma</option>',\n          '<option value=\"OR\">Oregon</option>',\n          '<option value=\"PA\">Pennsylvania</option>',\n          '<option value=\"RI\">Rhode Island</option>',\n          '<option value=\"SC\">South Carolina</option>',\n          '<option value=\"SD\">South Dakota</option>',\n          '<option value=\"TN\">Tennessee</option>',\n          '<option value=\"TX\">Texas</option>',\n          '<option value=\"UT\">Utah</option>',\n          '<option value=\"VT\">Vermont</option>',\n          '<option value=\"VA\">Virginia</option>',\n          '<option value=\"WA\">Washington</option>',\n          '<option value=\"WV\">West Virginia</option>',\n          '<option value=\"WI\">Wisconsin</option>',\n          '<option value=\"01\">01</option>',\n          '<option value=\"10\">10</option>',\n          '<option value=\"WY\" selected>Wyoming</option>',\n          '</select>'\n        ].join(), {});\n\n        var order_expected = ['AL', 'AK', 'AZ', 'AR', 'CO', 'CT', 'DE', 'DC', 'FL', 'GA', 'HI', 'ID', 'IL', 'IN', 'IA', 'KS', 'KY', 'LA', 'ME', 'MD', 'MA', 'MI', 'MN', 'MS', 'MO', 'MT', 'NE', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC', 'ND', 'OH', 'OK', 'OR', 'PA', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VT', 'VA', 'WA', 'WV', 'WI', '01', '10'];\n        var order_actual = [];\n\n        test.selectize.refreshOptions(true);\n        window.setTimeout(function () {\n          test.selectize.$dropdown.find('[data-value]').each(function (i, el) {\n            order_actual.push($(el).attr('data-value'));\n          });\n\n          expect(order_actual).to.eql(order_expected);\n          done();\n        }, 0);\n      });\n      it('should register should not care optionGroupRegister is not set', function () {\n        var test = setup_test('<select>', {\n          options: [\n            { value: 'a', grp: 'someGroup' },\n            { value: 'b', grp: 'anotherGroup' },\n            { value: 'c', grp: 'anotherGroup' }\n          ],\n          optgroupValueField: 'val',\n          optgroupField: 'grp',\n        });\n        test.selectize.refreshOptions();\n        assert.deepEqual(test.selectize.optgroups, {}, '2');\n      });\n      it('should register optgroups if optionGroupRegister is set', function () {\n        var test = setup_test('<select>', {\n          options: [\n            { value: 'a', grp: 'someGroup' },\n            { value: 'b', grp: 'anotherGroup' },\n            { value: 'c', grp: 'anotherGroup' }\n          ],\n          optgroupValueField: 'val',\n          optgroupField: 'grp',\n          optionGroupRegister: function (optgroup) {\n            var group = {};\n            group['label'] = optgroup;\n            group['val'] = optgroup;\n\n            return group;\n          }\n        });\n        test.selectize.refreshOptions();\n        assert.deepEqual(test.selectize.optgroups, {\n          'someGroup': { label: 'someGroup', val: 'someGroup', $order: 4 },\n          'anotherGroup': { label: 'anotherGroup', val: 'anotherGroup', $order: 5 }\n        }, '2');\n      });\n      it('should respect option disabled flag', function (done) {\n        var test = setup_test(['<select>',\n          '<option value=\"a\">Item A</option>',\n          '<option value=\"b\" disabled>Item B</option>',\n          '</select>'].join(''), {});\n\n        test.selectize.refreshOptions(true);\n        window.setTimeout(function () {\n          expect(test.selectize.$dropdown.find('.option')).to.has.length(2);\n          expect(test.selectize.$dropdown.find('[data-selectable]')).to.has.length(1);\n          done();\n        }, 0);\n      });\n      it('should respect option style / class', function () {\n        var test;\n\n        beforeEach(function () {\n          test = setup_test('<select>' +\n            '<option value=\"a\" style=\"color:red;\" class=\"a\">A</option>' +\n            '</select>');\n        });\n\n        it('should dropdown height to be equal 100', function () {\n          test.selectize.focus();\n\n          window.setTimeout(function () {\n            expect(test.selectize.$dropdown_content.find('.option').attr('style')).to.be.equal('color:red;');\n            expect(test.selectize.$dropdown_content.find('.option').hasClass('a')).to.be.equal(true);\n          }, 0);\n        });\n      });\n\n      it('should respect input readonly (option search = false)', function () {\n        var test;\n\n        beforeEach(function () {\n          test = setup_test('<select>' +\n            '<option value=\"a\">A</option>' +\n            '</select>', { search: false });\n        });\n\n        it('should readonly on input and cursor pointer on input and control element', function () {\n          window.setTimeout(function () {\n            expect(test.selectize.$dropdown_input.attr('readonly')).to.be.equal('readonly');\n            expect(test.selectize.$dropdown_input.css('cursor')).to.be.equal('pointer');\n            expect(test.selectize.$control.css('cursor')).to.be.equal('pointer');\n          }, 0);\n        });\n      });\n      describe('getValue()', function () {\n        it('should return \"\" when empty', function () {\n          var test = setup_test('<select>', {});\n          expect(test.selectize.getValue()).to.be.equal('');\n        });\n        it('should return proper value when not empty', function () {\n          var test = setup_test('<select><option selected value=\"a\">A</option></select>', {});\n          expect(test.selectize.getValue()).to.be.equal('a');\n        });\n      });\n    });\n\n    describe('<select multiple>', function () {\n      it('should complete without exceptions', function () {\n        var test = setup_test('<select>', {});\n      });\n      describe('getValue()', function () {\n        it('should return [] when empty', function () {\n          var test = setup_test('<select multiple>', {});\n          expect(test.selectize.getValue()).to.deep.equal([]);\n        });\n        it('should return proper value as array when not empty', function () {\n          var test = setup_test('<select multiple><option selected value=\"a\">A</option></select>', {});\n          expect(test.selectize.getValue()).to.deep.equal(['a']);\n        });\n      });\n    });\n\n    describe('<select disabled>', function () {\n      var test;\n\n      before(function () {\n        test = setup_test('<select disabled>', {});\n      });\n      it('should have \"disabled\" class', function () {\n        expect(test.selectize.$control.hasClass('disabled')).to.be.equal(true);\n      });\n      it('should have isDisabled property set to true', function () {\n        expect(test.selectize.isDisabled).to.be.equal(true);\n      });\n    });\n\n    describe('<select required>', function () {\n      var $form, $button, test;\n\n      beforeEach(function () {\n        test = setup_test('<select required>' +\n          '<option value=\"\">Select an option...</option>' +\n          '<option value=\"a\">A</option>' +\n          '</select>', {});\n        $form = test.$select.parents('form');\n        $button = $('<button type=\"submit\">').appendTo($form);\n      });\n\n      afterEach(function () {\n        $form.off('.test_required');\n        $button.remove();\n      });\n\n      it('should have isRequired property set to true', function () {\n        expect(test.selectize.isRequired).to.be.equal(true);\n      });\n\n      it('should have the required class', function () {\n        expect(test.selectize.$control.hasClass('required')).to.be.equal(true);\n      });\n\n      it('should pass validation if an element is selected',\n        function (done) {\n          test.selectize.addItem('a');\n          $form.one('submit.test_required', function (e) {\n            done();\n          });\n\n          syn.click($button);\n        });\n\n      if ($.fn.selectize.support.validity) {\n        it('should not pass validation if no element is selected',\n          function (done) {\n            $form.one('submit.test_required', function (e) {\n              expect(e.isDefaultPrevented()).to.be.true;\n              done();\n            });\n\n            syn.click($button);\n          });\n\n        it('should have \"invalid\" class when validation fails',\n          function (done) {\n            test.$select[0].checkValidity();\n\n            window.setTimeout(function () {\n              expect(test.selectize.$control.hasClass('invalid')).\n                to.be.true;\n              done();\n            }, 250);\n          });\n\n        it('should clear the invalid class after an item is selected',\n          function (done) {\n            syn.click($button).delay(0, function () {\n              test.selectize.addItem('a');\n              expect(test.selectize.$control.hasClass('invalid')).\n                to.be.false;\n              done();\n            });\n          });\n      }\n    });\n\n    describe('<select> (not required)', function () {\n      var $form, $button, test;\n\n      beforeEach(function () {\n        test = setup_test('<select>' +\n          '<option value=\"\">Select an option...</option>' +\n          '<option value=\"a\">A</option>' +\n          '</select>', {});\n        $form = test.$select.parents('form');\n        $button = $('<button type=\"submit\">').appendTo($form);\n      });\n      afterEach(function () {\n        $form.off('.test_required');\n        $button.remove();\n      });\n\n      it('should have isRequired property set to false', function () {\n        expect(test.selectize.isRequired).to.be.equal(false);\n      });\n      it('should not have the required class', function () {\n        expect(test.selectize.$control.hasClass('required')).to.be.equal(false);\n      });\n    });\n\n    describe('<select> (custom string render)', function () {\n      var test;\n\n      beforeEach(function () {\n        test = setup_test('<select>' +\n          '<option value=\"\">Select an option...</option>' +\n          '<option value=\"a\">A</option>' +\n          '</select>', {\n          render: {\n            option: function (item, escape) {\n              return '<div class=\"option custom-option\">' + escape(item.text) + '</div>'\n            }\n          }\n        });\n      });\n\n      it('should render the custom option element', function (done) {\n        test.selectize.focus();\n\n        window.setTimeout(function () {\n          expect(test.selectize.$dropdown.find('.custom-option').length).to.be.equal(1);\n          done();\n        }, 5);\n      });\n    });\n\n    describe('<select> (custom dom render)', function () {\n      var test;\n\n      beforeEach(function () {\n        test = setup_test('<select>' +\n          '<option value=\"\">Select an option...</option>' +\n          '<option value=\"a\">A</option>' +\n          '</select>', {\n          render: {\n            option: function (item, escape) {\n              var div = document.createElement('div');\n\n              div.className = 'option custom-option';\n              div.innerHTML = escape(item.text);\n\n              return div;\n            }\n          }\n        });\n      });\n\n      it('should render the custom option element', function (done) {\n        test.selectize.focus();\n\n        window.setTimeout(function () {\n          expect(test.selectize.$dropdown_content.find('.custom-option').length).to.be.equal(1);\n          done();\n        }, 0);\n      });\n    });\n\n    describe('<select> custom size (number)', function () {\n      var test;\n\n      beforeEach(function () {\n        test = setup_test('<select>' +\n          '<option value=\"\">Select an option...</option>' +\n          '<option value=\"a\">A</option>' +\n          '<option value=\"b\">B</option>' +\n          '<option value=\"c\">C</option>' +\n          '</select>', {\n          dropdownSize: { sizeType: 'numberItems', sizeValue: 1 }\n        });\n      });\n\n      it('should adapt dropdown height', function (done) {\n        test.selectize.focus();\n\n        window.setTimeout(function () {\n          var padding = test.selectize.$dropdown_content.css('padding-top') ? test.selectize.$dropdown_content.css('padding-top').replace(/\\W*(\\w)\\w*/g, '$1') : 0;\n          var heightExpected = test.selectize.$dropdown_content.find('.option').first().outerHeight(true) - padding;\n          expect(test.selectize.$dropdown_content.height()).to.be.equal(heightExpected);\n          done();\n        }, 0);\n      });\n    });\n\n    describe('<select> custom size (css height)', function () {\n      var test;\n\n      beforeEach(function () {\n        test = setup_test('<select>' +\n          '<option value=\"\">Select an option...</option>' +\n          '<option value=\"a\">A</option>' +\n          '</select>', {\n          dropdownSize: { sizeType: 'fixedHeight', sizeValue: 100 }\n        });\n      });\n\n      it('should dropdown height to be equal 100', function (done) {\n        test.selectize.focus();\n\n        window.setTimeout(function () {\n          expect(test.selectize.$dropdown_content.height()).to.be.equal(100);\n          done();\n        }, 0);\n      });\n    });\n  });\n\n})();\n"
  },
  {
    "path": "test/sifter.js",
    "content": "(function () {\n\n  describe('Sifter', function () {\n\n    describe('#tokenize()', function () {\n      var sifter, tokens;\n\n      it('should return an empty array when given an empty string', function () {\n        var sifter = new Sifter([]);\n        var tokens = sifter.tokenize('');\n        assert.equal(tokens.length, 0);\n      });\n\n      it('should return an array', function () {\n        var sifter = new Sifter([]);\n        var tokens = sifter.tokenize('hello world');\n        assert.equal(Array.isArray(tokens), true);\n      });\n\n      it('should split string by spaces', function () {\n        var sifter = new Sifter([]);\n        var tokens = sifter.tokenize('hello world');\n        assert.equal(tokens.length, 2);\n      });\n\n      describe('returned tokens', function () {\n        before(function () {\n          sifter = new Sifter([]);\n          tokens = sifter.tokenize('hello world');\n        });\n        describe('\"string\" property', function () {\n          it('should exist', function () {\n            assert.notEqual(typeof tokens[0].string, 'undefined');\n          });\n          it('should be a string', function () {\n            assert.equal(typeof tokens[0].string, 'string');\n          });\n          it('should be valid', function () {\n            assert.equal(tokens[0].string, 'hello');\n            assert.equal(tokens[1].string, 'world');\n          });\n        });\n        describe('\"regex\" property', function () {\n          it('should exist', function () {\n            assert.notEqual(typeof tokens[0].regex, 'undefined');\n          });\n          it('should be a RegExp object', function () {\n            assert.equal(tokens[0].regex instanceof RegExp, true);\n          });\n          it('should ignore case', function () {\n            assert.equal(tokens[0].regex.test('HelLO'), true);\n            assert.equal(tokens[1].regex.test('wORLD'), true);\n          });\n          it('should not be too greedy', function () {\n            assert.equal(tokens[0].regex.test('afawfaf'), false);\n          });\n          it('should match international characters', function () {\n            assert.equal(tokens[0].regex.test('hęłlö'), true);\n            assert.equal(tokens[1].regex.test('wÕrlð'), true);\n          });\n        });\n      });\n\n    });\n\n    describe('#getScoreFunction()', function () {\n\n      it('should acknowledge AND \"conjunction\" option', function () {\n        var score, search, sifter = new Sifter([]);\n\n        score = sifter.getScoreFunction('one two', { fields: ['a', 'b'], conjunction: 'and' });\n        assert.equal(score({ a: 'one' }) > 0, false);\n        assert.equal(score({ a: 'one', b: 'two' }) > 0, true);\n        assert.equal(score({ a: 'one', b: 'one' }) > 0, false);\n        assert.equal(score({ a: 'one', b: 'three' }) > 0, false);\n        assert.equal(score({ a: 'three', b: 'three' }) > 0, false);\n      });\n\n      it('should acknowledge OR \"conjunction\" option', function () {\n        var score, search, sifter = new Sifter([]);\n\n        score = sifter.getScoreFunction('one two', { fields: ['a', 'b'], conjunction: 'or' });\n        assert.equal(score({ a: 'one' }) > 0, true);\n        assert.equal(score({ a: 'one', b: 'two' }) > 0, true);\n        assert.equal(score({ a: 'one', b: 'one' }) > 0, true);\n        assert.equal(score({ a: 'one', b: 'three' }) > 0, true);\n        assert.equal(score({ a: 'three', b: 'three' }) > 0, false);\n      });\n\n      describe('with query and options', function () {\n\n        it('should return a function that returns a number', function () {\n          var score, search, sifter = new Sifter([]);\n\n          score = sifter.getScoreFunction('test', { fields: ['a', 'b'] });\n          assert.equal(typeof score({ a: 'test' }), 'number');\n          assert.equal(score({ a: 'test' }) > 0, true);\n          assert.equal(typeof score({}), 'number');\n        });\n\n      });\n\n      describe('with pre-prepared search', function () {\n\n        it('should return a function that returns a number', function () {\n          var score, search, sifter = new Sifter([]);\n\n          search = sifter.prepareSearch('test', { fields: ['a', 'b'] });\n          score = sifter.getScoreFunction(search);\n          assert.equal(typeof score({ a: 'test' }), 'number');\n          assert.equal(score({ a: 'test' }) > 0, true);\n          assert.equal(typeof score({}), 'number');\n        });\n\n      });\n\n    });\n\n    describe('#prepareSearch()', function () {\n\n      it('should normalize options', function () {\n        var sifter = new Sifter([{ field: 'a' }, {}]);\n        var search = sifter.prepareSearch('a', {\n          fields: { field: 'a' },\n          sort: { field: 'a' },\n          sort_empty: { field: 'a' }\n        });\n        assert.equal(Array.isArray(search.options.fields), true);\n        assert.equal(Array.isArray(search.options.sort), true);\n        assert.equal(Array.isArray(search.options.sort_empty), true);\n      });\n\n      describe('returned object', function () {\n        var sifter = new Sifter([{ field: 'a' }, {}]);\n        var search = sifter.prepareSearch('hello world');\n\n        it('should contain \"total\" (int)', function () {\n          assert.equal(search.total, 0);\n        });\n        it('should contain \"tokens\" (array)', function () {\n          assert.equal(Array.isArray(search.tokens), true);\n          assert.equal(search.tokens.length, 2);\n        });\n        it('should contain \"items\" (array)', function () {\n          assert.equal(Array.isArray(search.items), true);\n          assert.equal(search.items.length, 0);\n        });\n        it('should contain \"options\" (array)', function () {\n          assert.equal(search.options !== null, true);\n          assert.equal(typeof search.options, 'object');\n          assert.equal(Array.isArray(search.options), false);\n        });\n      });\n\n    });\n\n    describe('#search()', function () {\n\n      it('should not throw if an element does not contain search field', function () {\n        assert.doesNotThrow(function () {\n          var sifter = new Sifter([{ field: 'a' }, {}]);\n          var result = sifter.search('hello', { fields: ['field'] });\n        });\n      });\n\n      it('should allow \"fields\" option to be a string', function () {\n        var sifter = new Sifter([{ field: 'a' }, {}]);\n        var result = sifter.search('a', { fields: 'field' });\n        assert.equal(result.items[0].id, 0);\n      });\n\n      it('should allow to search nested fields', function () {\n        var sifter = new Sifter([\n          { fields: { nested: 'aaa' } },\n          { fields: { nested: 'add' } },\n          { fields: { nested: 'abb' } }\n        ]);\n        var result = sifter.search('aaa', {\n          fields: 'fields.nested',\n          nesting: true\n        });\n\n        assert.equal(result.items.length, 1);\n        assert.equal(result.items[0].id, 0);\n      });\n\n      it('should allow word boundaries to be respected', function () {\n        var sifter = new Sifter([\n          { name: 'John Smith' },\n          { name: 'Jane Doe' },\n        ]);\n        var result = sifter.search('mith', { fields: 'name' });\n        assert.equal(result.items.length, 1);\n\n        var result = sifter.search('mith', { fields: 'name', respect_word_boundaries: true });\n        assert.equal(result.items.length, 0);\n\n        var result = sifter.search('Smi', { fields: 'name', respect_word_boundaries: true });\n        assert.equal(result.items.length, 1);\n\n        var result = sifter.search('John Sm', { fields: 'name', respect_word_boundaries: true });\n        assert.equal(result.items.length, 1);\n\n        var result = sifter.search('jÖhn Sm', { fields: 'name', respect_word_boundaries: true });\n        assert.equal(result.items.length, 1);\n\n        var result = sifter.search('ohn Smith', { fields: 'name', respect_word_boundaries: true, conjunction: 'and' });\n        assert.equal(result.items.length, 0);\n\n        var result = sifter.search('Øhn Smith', { fields: 'name', respect_word_boundaries: true, conjunction: 'and' });\n        assert.equal(result.items.length, 0);\n      });\n\n      describe('sorting', function () {\n        it('should respect \"sort_empty\" option when query absent', function () {\n          var sifter = new Sifter([\n            { field: 'aaa' },\n            { field: 'add' },\n            { field: 'abb' }\n          ]);\n          var result = sifter.search('', {\n            fields: 'field',\n            sort: { field: 'field', direction: 'asc' },\n            sort_empty: { field: 'field', direction: 'desc' }\n          });\n          assert.equal(result.items[0].id, 1);\n          assert.equal(result.items[1].id, 2);\n          assert.equal(result.items[2].id, 0);\n        });\n        it('should work with one field (as object)', function () {\n          var sifter = new Sifter([\n            { field: 'aaa' },\n            { field: 'add' },\n            { field: 'abb' }\n          ]);\n          var result = sifter.search('', {\n            fields: 'field',\n            sort: { field: 'field' }\n          });\n          assert.equal(result.items[0].id, 0);\n          assert.equal(result.items[1].id, 2);\n          assert.equal(result.items[2].id, 1);\n        });\n        it('should work with one field (as array)', function () {\n          var sifter = new Sifter([\n            { field: 'aaa' },\n            { field: 'add' },\n            { field: 'abb' }\n          ]);\n          var result = sifter.search('', {\n            fields: 'field',\n            sort: [{ field: 'field' }]\n          });\n          assert.equal(result.items[0].id, 0);\n          assert.equal(result.items[1].id, 2);\n          assert.equal(result.items[2].id, 1);\n        });\n        it('should work with multiple fields and respect priority', function () {\n          var sifter = new Sifter([\n            { a: 'bbb', b: 'bbb' },\n            { a: 'bbb', b: 'ccc' },\n            { a: 'bbb', b: 'aaa' },\n            { a: 'aaa' }\n          ]);\n          var result = sifter.search('', {\n            fields: 'field',\n            sort: [\n              { field: 'a' },\n              { field: 'b' }\n            ]\n          });\n          assert.equal(result.items[0].id, 3);\n          assert.equal(result.items[1].id, 2);\n          assert.equal(result.items[2].id, 0);\n          assert.equal(result.items[3].id, 1);\n        });\n        it('should respect numeric fields', function () {\n          var sifter = new Sifter([\n            { field: 1.0 },\n            { field: 12.9 },\n            { field: 9.1 },\n            { field: -9.0 }\n          ]);\n          var result = sifter.search('', {\n            fields: 'field',\n            sort: [{ field: 'field' }]\n          });\n          assert.equal(result.items[0].id, 3);\n          assert.equal(result.items[1].id, 0);\n          assert.equal(result.items[2].id, 2);\n          assert.equal(result.items[3].id, 1);\n        });\n        it('should respect sort direction', function () {\n          var sifter = new Sifter([\n            { a: 'bbb', b: 'rrr' },\n            { a: 'bbb', b: 'aaa' },\n            { a: 'aaa', b: 'rrr' },\n            { a: 'aaa', b: 'aaa' }\n          ]);\n          var result = sifter.search('', {\n            fields: 'field',\n            sort: [\n              { field: 'b', direction: 'desc' },\n              { field: 'a', direction: 'asc' }\n            ]\n          });\n          assert.equal(result.items[0].id, 2);\n          assert.equal(result.items[1].id, 0);\n          assert.equal(result.items[2].id, 3);\n          assert.equal(result.items[3].id, 1);\n        });\n        it('should add implicit \"$score\" field when query present', function () {\n          var sifter = new Sifter([\n            { field: 'yoo' },\n            { field: 'book' }\n          ]);\n          var result = sifter.search('oo', {\n            fields: 'field',\n            sort: [{ field: 'field' }]\n          });\n          assert.equal(result.items[0].id, 0);\n          assert.equal(result.items[1].id, 1);\n        });\n        it('should not add implicit \"$score\" field if explicitly given', function () {\n          var sifter = new Sifter([\n            { field: 'boooo' },\n            { field: 'yoo' },\n            { field: 'aaa' }\n          ]);\n          var result = sifter.search('oo', {\n            filter: false,\n            fields: 'field',\n            sort: [{ field: 'field' }, { field: '$score' }]\n          });\n          assert.equal(result.items[0].id, 2);\n          assert.equal(result.items[1].id, 0);\n          assert.equal(result.items[2].id, 1);\n        });\n        it('should be locale-aware', function () {\n          var sifter = new Sifter([\n            { field: 'Zoom Test' },\n            { field: 'Água Test' }\n          ]);\n          var result = sifter.search('', {\n            fields: 'field',\n            sort: [{ field: 'field', direction: 'asc' }]\n          });\n          assert.equal(result.items[0].id, 1);\n          assert.equal(result.items[1].id, 0);\n        });\n        it('should work with nested fields', function () {\n          var sifter = new Sifter([\n            { fields: { nested: 'aaa' } },\n            { fields: { nested: 'add' } },\n            { fields: { nested: 'abb' } }\n          ]);\n          var result = sifter.search('', {\n            fields: [],\n            sort: { field: 'fields.nested' },\n            nesting: true\n          });\n          assert.equal(result.items[0].id, 0);\n          assert.equal(result.items[1].id, 2);\n          assert.equal(result.items[2].id, 1);\n        });\n      });\n\n      describe('returned results', function () {\n        var sifter, options, result, result_empty, result_all;\n\n        before(function () {\n          sifter = new Sifter([\n            { title: 'Matterhorn', location: 'Switzerland', continent: 'Europe' },\n            { title: 'Eiger', location: 'Switzerland', continent: 'Europe' },\n            { title: 'Everest', location: 'Nepal', continent: 'Asia' },\n            { title: 'Gannett', location: 'Wyoming', continent: 'North America' },\n            { title: 'Denali', location: 'Alaska', continent: 'North America' }\n          ]);\n\n          options = { limit: 1, fields: ['title', 'location', 'continent'] };\n          result = sifter.search('switzerland europe', options);\n          result_empty = sifter.search('awawfawfawf', options);\n          result_all = sifter.search('', {\n            fields: ['title', 'location', 'continent'],\n            sort: [{ field: 'title' }]\n          });\n        });\n\n        it('should not vary when using an array vs a hash as a data source', function () {\n          var sifter_hash = new Sifter({\n            'a': { title: 'Matterhorn', location: 'Switzerland', continent: 'Europe' },\n            'b': { title: 'Eiger', location: 'Switzerland', continent: 'Europe' },\n            'c': { title: 'Everest', location: 'Nepal', continent: 'Asia' },\n            'd': { title: 'Gannett', location: 'Wyoming', continent: 'North America' },\n            'e': { title: 'Denali', location: 'Alaska', continent: 'North America' }\n          });\n          var result_hash = sifter.search('switzerland europe', options);\n          assert.deepEqual(result_hash, result);\n        });\n\n        describe('\"items\" array', function () {\n          it('should be an array', function () {\n            assert.equal(Array.isArray(result.items), true);\n            assert.equal(Array.isArray(result_empty.items), true);\n            assert.equal(Array.isArray(result_all.items), true);\n          });\n          it('should include entire set if no query provided', function () {\n            assert.equal(result_all.items.length, 5);\n          });\n          it('should not have a length that exceeds \"limit\" option', function () {\n            assert.equal(result.items.length > options.limit, false);\n          });\n          it('should not contain any items with a score not equal to 1 (without query)', function () {\n            for (var i = 0, n = result_all.items.length; i < n; i++) {\n              assert.equal(result_all.items[i].score, 1);\n            }\n          });\n          it('should not contain any items with a score of zero (with query)', function () {\n            for (var i = 0, n = result.items.length; i < n; i++) {\n              assert.notEqual(result.items[i].score, 0);\n            }\n          });\n          it('should be empty when no results match', function () {\n            assert.equal(result_empty.items.length, 0);\n          });\n\n          describe('elements', function () {\n            it('should be objects', function () {\n              assert.equal(typeof result.items[0], 'object');\n              assert.equal(Array.isArray(result.items[0]), false);\n            });\n            describe('\"score\" property', function () {\n              it('should exist', function () {\n                assert.notEqual(typeof result.items[0].score, 'undefined');\n                assert.notEqual(typeof result_all.items[0].score, 'undefined');\n              });\n              it('should be a number', function () {\n                assert.equal(typeof result.items[0].score, 'number');\n                assert.equal(typeof result_all.items[0].score, 'number');\n              });\n            });\n            describe('\"id\" property', function () {\n              it('should exist', function () {\n                assert.notEqual(typeof result.items[0].id, 'undefined');\n                assert.notEqual(typeof result_all.items[0].id, 'undefined');\n              });\n            });\n          });\n        });\n\n        describe('\"options\"', function () {\n          it('should not be a reference to original options', function () {\n            assert.equal(result.options === options, false);\n          });\n          it('should match original search options', function () {\n            assert.deepEqual(result.options, options);\n          });\n        });\n\n        describe('\"tokens\"', function () {\n          it('should be an array', function () {\n            assert.equal(Array.isArray(result.tokens), true);\n          });\n          describe('elements', function () {\n            it('should be a object', function () {\n              assert.equal(typeof result.tokens[0], 'object');\n              assert.equal(Array.isArray(result.tokens[0]), false);\n            });\n            describe('\"string\" property', function () {\n              it('should exist', function () {\n                assert.notEqual(typeof result.tokens[0].string, 'undefined');\n              });\n              it('should be a string', function () {\n                assert.equal(typeof result.tokens[0].string, 'string');\n              });\n              it('should be valid', function () {\n                assert.equal(result.tokens[0].string, 'switzerland');\n                assert.equal(result.tokens[1].string, 'europe');\n              });\n            });\n            describe('\"regex\" property', function () {\n              it('should exist', function () {\n                assert.notEqual(typeof result.tokens[0].regex, 'undefined');\n              });\n              it('should be a RegExp object', function () {\n                assert.equal(result.tokens[0].regex instanceof RegExp, true);\n              });\n            });\n          });\n        });\n\n        describe('\"query\"', function () {\n          it('should match original query', function () {\n            assert.equal(result.query, 'switzerland europe');\n          });\n        });\n\n        describe('\"total\"', function () {\n          it('should be an integer', function () {\n            assert.equal(typeof result.total, 'number');\n            assert.equal(Math.floor(result.total), Math.ceil(result.total));\n          });\n          it('should be valid', function () {\n            assert.equal(result.total, 2);\n            assert.equal(result_empty.total, 0);\n          });\n        });\n\n      });\n\n    });\n  });\n\n})();\n"
  },
  {
    "path": "test/support/base.js",
    "content": "window.expect = chai.expect;\nwindow.assert = chai.assert;\nwindow.has_focus = function(elem) {\n\treturn !!(elem === document.activeElement);\n};\n\nvar sandbox = document.createElement('form');\ndocument.body.appendChild(sandbox);\n\nwindow.setup_test = function(html, options, callback) {\n\tif (window.test_last) window.test_last.teardown();\n\n\tvar $select = $(html).appendTo(sandbox).selectize(options);\n\tvar instance = $select[0].selectize;\n\tvar test = window.test_last = {\n\t\t$select: $select,\n\t\tcallback: callback,\n\t\tselectize: instance,\n\t\tteardown: function() {\n\t\t\tinstance.destroy();\n\t\t\t$select.remove();\n\t\t\twindow.test_last = null;\n\t\t}\n\t};\n\n\treturn test;\n};\n\nafter(function() {\n\tif (window.test_last) {\n\t\twindow.test_last.teardown();\n\t}\n});\n\n$(sandbox).on('submit', function(e) { e.preventDefault(); });"
  },
  {
    "path": "test/support/syn.js",
    "content": "/**\n * Syn - 0.0.3\n *\n * @copyright 2014 Bitovi\n * Wed, 10 Dec 2014 16:34:18 GMT\n * @license MIT\n */\n\n/*[global-shim]*/\n(function (exports, global){\n\tvar origDefine = global.define;\n\n\tvar get = function(name){\n\t\tvar parts = name.split(\".\"),\n\t\t\tcur = global,\n\t\t\ti;\n\t\tfor(i = 0 ; i < parts.length; i++){\n\t\t\tcur = cur[parts[i]];\n\t\t}\n\t\treturn cur;\n\t};\n\tvar modules = global.define && global.define.modules || {};\n\tvar ourDefine = global.define = function(moduleName, deps, callback){\n\t\tvar module;\n\t\tif(typeof deps === \"function\") {\n\t\t\tcallback = deps;\n\t\t\tdeps = [];\n\t\t}\n\t\tvar args = [],\n\t\t\ti;\n\t\tfor(i =0; i < deps.length; i++) {\n\t\t\targs.push( exports[deps[i]] ? get(exports[deps[i]]) : modules[deps[i]]  );\n\t\t}\n\t\t// CJS has no dependencies but 3 callback arguments\n\t\tif(!deps.length && callback.length) {\n\t\t\tmodule = { exports: {} };\n\t\t\tvar require = function(name) {\n\t\t\t\treturn exports[name] ? get(exports[name]) : modules[name];\n\t\t\t};\n\t\t\targs.push(require, module.exports, module);\n\t\t}\n\n\t\tglobal.define = origDefine;\n\t\tvar result = callback ? callback.apply(null, args) : undefined;\n\t\tglobal.define = ourDefine;\n\n\t\t// Favor CJS module.exports over the return value\n\t\tmodules[moduleName] = module && module.exports ? module.exports : result;\n\t};\n\tglobal.define.modules = modules;\n\tglobal.System = {\n\t\tdefine: function(__name, __code){\n\t\t\tglobal.define = origDefine;\n\t\t\teval(\"(function() { \" + __code + \" \\n }).call(global);\");\n\t\t\tglobal.define = ourDefine;\n\t\t}\n\t};\n})({},window)\n/*syn/synthetic*/\ndefine('syn/synthetic', [], function () {\n    var opts = window.syn ? window.syn : {};\n    var extend = function (d, s) {\n            var p;\n            for (p in s) {\n                d[p] = s[p];\n            }\n            return d;\n        }, browser = {\n            msie: !!(window.attachEvent && !window.opera),\n            opera: !!window.opera,\n            webkit: navigator.userAgent.indexOf('AppleWebKit/') > -1,\n            safari: navigator.userAgent.indexOf('AppleWebKit/') > -1 && navigator.userAgent.indexOf('Chrome/') === -1,\n            gecko: navigator.userAgent.indexOf('Gecko') > -1,\n            mobilesafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/),\n            rhino: navigator.userAgent.match(/Rhino/) && true\n        }, createEventObject = function (type, options, element) {\n            var event = element.ownerDocument.createEventObject();\n            return extend(event, options);\n        }, data = {}, id = 1, expando = '_synthetic' + new Date().getTime(), bind, unbind, schedule, key = /keypress|keyup|keydown/, page = /load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll/, activeElement, syn = function (type, element, options, callback) {\n            return new syn.init(type, element, options, callback);\n        };\n    syn.config = opts;\n    syn.__tryFocus = function tryFocus(element) {\n        try {\n            element.focus();\n        } catch (e) {\n        }\n    };\n    bind = function (el, ev, f) {\n        return el.addEventListener ? el.addEventListener(ev, f, false) : el.attachEvent('on' + ev, f);\n    };\n    unbind = function (el, ev, f) {\n        return el.addEventListener ? el.removeEventListener(ev, f, false) : el.detachEvent('on' + ev, f);\n    };\n    schedule = syn.config.schedule || function (fn, ms) {\n        setTimeout(fn, ms);\n    };\n    extend(syn, {\n        init: function (type, element, options, callback) {\n            var args = syn.args(options, element, callback), self = this;\n            this.queue = [];\n            this.element = args.element;\n            if (typeof this[type] === 'function') {\n                this[type](args.element, args.options, function (defaults, el) {\n                    if (args.callback) {\n                        args.callback.apply(self, arguments);\n                    }\n                    self.done.apply(self, arguments);\n                });\n            } else {\n                this.result = syn.trigger(args.element, type, args.options);\n                if (args.callback) {\n                    args.callback.call(this, args.element, this.result);\n                }\n            }\n        },\n        jquery: function (el, fast) {\n            if (window.FuncUnit && window.FuncUnit.jQuery) {\n                return window.FuncUnit.jQuery;\n            }\n            if (el) {\n                return syn.helpers.getWindow(el).jQuery || window.jQuery;\n            } else {\n                return window.jQuery;\n            }\n        },\n        args: function () {\n            var res = {}, i = 0;\n            for (; i < arguments.length; i++) {\n                if (typeof arguments[i] === 'function') {\n                    res.callback = arguments[i];\n                } else if (arguments[i] && arguments[i].jquery) {\n                    res.element = arguments[i][0];\n                } else if (arguments[i] && arguments[i].nodeName) {\n                    res.element = arguments[i];\n                } else if (res.options && typeof arguments[i] === 'string') {\n                    res.element = document.getElementById(arguments[i]);\n                } else if (arguments[i]) {\n                    res.options = arguments[i];\n                }\n            }\n            return res;\n        },\n        click: function (element, options, callback) {\n            syn('click!', element, options, callback);\n        },\n        defaults: {\n            focus: function focus() {\n                if (!syn.support.focusChanges) {\n                    var element = this, nodeName = element.nodeName.toLowerCase();\n                    syn.data(element, 'syntheticvalue', element.value);\n                    if (nodeName === 'input' || nodeName === 'textarea') {\n                        bind(element, 'blur', function () {\n                            if (syn.data(element, 'syntheticvalue') !== element.value) {\n                                syn.trigger(element, 'change', {});\n                            }\n                            unbind(element, 'blur', focus);\n                        });\n                    }\n                }\n            },\n            submit: function () {\n                syn.onParents(this, function (el) {\n                    if (el.nodeName.toLowerCase() === 'form') {\n                        el.submit();\n                        return false;\n                    }\n                });\n            }\n        },\n        changeOnBlur: function (element, prop, value) {\n            bind(element, 'blur', function onblur() {\n                if (value !== element[prop]) {\n                    syn.trigger(element, 'change', {});\n                }\n                unbind(element, 'blur', onblur);\n            });\n        },\n        closest: function (el, type) {\n            while (el && el.nodeName.toLowerCase() !== type.toLowerCase()) {\n                el = el.parentNode;\n            }\n            return el;\n        },\n        data: function (el, key, value) {\n            var d;\n            if (!el[expando]) {\n                el[expando] = id++;\n            }\n            if (!data[el[expando]]) {\n                data[el[expando]] = {};\n            }\n            d = data[el[expando]];\n            if (value) {\n                data[el[expando]][key] = value;\n            } else {\n                return data[el[expando]][key];\n            }\n        },\n        onParents: function (el, func) {\n            var res;\n            while (el && res !== false) {\n                res = func(el);\n                el = el.parentNode;\n            }\n            return el;\n        },\n        focusable: /^(a|area|frame|iframe|label|input|select|textarea|button|html|object)$/i,\n        isFocusable: function (elem) {\n            var attributeNode;\n            if (elem.getAttributeNode) {\n                attributeNode = elem.getAttributeNode('tabIndex');\n            }\n            return this.focusable.test(elem.nodeName) || attributeNode && attributeNode.specified && syn.isVisible(elem);\n        },\n        isVisible: function (elem) {\n            return elem.offsetWidth && elem.offsetHeight || elem.clientWidth && elem.clientHeight;\n        },\n        tabIndex: function (elem) {\n            var attributeNode = elem.getAttributeNode('tabIndex');\n            return attributeNode && attributeNode.specified && (parseInt(elem.getAttribute('tabIndex')) || 0);\n        },\n        bind: bind,\n        unbind: unbind,\n        schedule: schedule,\n        browser: browser,\n        helpers: {\n            createEventObject: createEventObject,\n            createBasicStandardEvent: function (type, defaults, doc) {\n                var event;\n                try {\n                    event = doc.createEvent('Events');\n                } catch (e2) {\n                    event = doc.createEvent('UIEvents');\n                } finally {\n                    event.initEvent(type, true, true);\n                    extend(event, defaults);\n                }\n                return event;\n            },\n            inArray: function (item, array) {\n                var i = 0;\n                for (; i < array.length; i++) {\n                    if (array[i] === item) {\n                        return i;\n                    }\n                }\n                return -1;\n            },\n            getWindow: function (element) {\n                if (element.ownerDocument) {\n                    return element.ownerDocument.defaultView || element.ownerDocument.parentWindow;\n                }\n            },\n            extend: extend,\n            scrollOffset: function (win, set) {\n                var doc = win.document.documentElement, body = win.document.body;\n                if (set) {\n                    window.scrollTo(set.left, set.top);\n                } else {\n                    return {\n                        left: (doc && doc.scrollLeft || body && body.scrollLeft || 0) + (doc.clientLeft || 0),\n                        top: (doc && doc.scrollTop || body && body.scrollTop || 0) + (doc.clientTop || 0)\n                    };\n                }\n            },\n            scrollDimensions: function (win) {\n                var doc = win.document.documentElement, body = win.document.body, docWidth = doc.clientWidth, docHeight = doc.clientHeight, compat = win.document.compatMode === 'CSS1Compat';\n                return {\n                    height: compat && docHeight || body.clientHeight || docHeight,\n                    width: compat && docWidth || body.clientWidth || docWidth\n                };\n            },\n            addOffset: function (options, el) {\n                var jq = syn.jquery(el), off;\n                if (typeof options === 'object' && options.clientX === undefined && options.clientY === undefined && options.pageX === undefined && options.pageY === undefined && jq) {\n                    el = jq(el);\n                    off = el.offset();\n                    options.pageX = off.left + el.width() / 2;\n                    options.pageY = off.top + el.height() / 2;\n                }\n            }\n        },\n        key: {\n            ctrlKey: null,\n            altKey: null,\n            shiftKey: null,\n            metaKey: null\n        },\n        dispatch: function (event, element, type, autoPrevent) {\n            if (element.dispatchEvent && event) {\n                var preventDefault = event.preventDefault, prevents = autoPrevent ? -1 : 0;\n                if (autoPrevent) {\n                    bind(element, type, function ontype(ev) {\n                        ev.preventDefault();\n                        unbind(this, type, ontype);\n                    });\n                }\n                event.preventDefault = function () {\n                    prevents++;\n                    if (++prevents > 0) {\n                        preventDefault.apply(this, []);\n                    }\n                };\n                element.dispatchEvent(event);\n                return prevents <= 0;\n            } else {\n                try {\n                    window.event = event;\n                } catch (e) {\n                }\n                return element.sourceIndex <= 0 || element.fireEvent && element.fireEvent('on' + type, event);\n            }\n        },\n        create: {\n            page: {\n                event: function (type, options, element) {\n                    var doc = syn.helpers.getWindow(element).document || document, event;\n                    if (doc.createEvent) {\n                        event = doc.createEvent('Events');\n                        event.initEvent(type, true, true);\n                        return event;\n                    } else {\n                        try {\n                            event = createEventObject(type, options, element);\n                        } catch (e) {\n                        }\n                        return event;\n                    }\n                }\n            },\n            focus: {\n                event: function (type, options, element) {\n                    syn.onParents(element, function (el) {\n                        if (syn.isFocusable(el)) {\n                            if (el.nodeName.toLowerCase() !== 'html') {\n                                syn.__tryFocus(el);\n                                activeElement = el;\n                            } else if (activeElement) {\n                                var doc = syn.helpers.getWindow(element).document;\n                                if (doc !== window.document) {\n                                    return false;\n                                } else if (doc.activeElement) {\n                                    doc.activeElement.blur();\n                                    activeElement = null;\n                                } else {\n                                    activeElement.blur();\n                                    activeElement = null;\n                                }\n                            }\n                            return false;\n                        }\n                    });\n                    return true;\n                }\n            }\n        },\n        support: {\n            clickChanges: false,\n            clickSubmits: false,\n            keypressSubmits: false,\n            mouseupSubmits: false,\n            radioClickChanges: false,\n            focusChanges: false,\n            linkHrefJS: false,\n            keyCharacters: false,\n            backspaceWorks: false,\n            mouseDownUpClicks: false,\n            tabKeyTabs: false,\n            keypressOnAnchorClicks: false,\n            optionClickBubbles: false,\n            ready: 0\n        },\n        trigger: function (element, type, options) {\n            if (!options) {\n                options = {};\n            }\n            var create = syn.create, setup = create[type] && create[type].setup, kind = key.test(type) ? 'key' : page.test(type) ? 'page' : 'mouse', createType = create[type] || {}, createKind = create[kind], event, ret, autoPrevent, dispatchEl = element;\n            if (syn.support.ready === 2 && setup) {\n                setup(type, options, element);\n            }\n            autoPrevent = options._autoPrevent;\n            delete options._autoPrevent;\n            if (createType.event) {\n                ret = createType.event(type, options, element);\n            } else {\n                options = createKind.options ? createKind.options(type, options, element) : options;\n                if (!syn.support.changeBubbles && /option/i.test(element.nodeName)) {\n                    dispatchEl = element.parentNode;\n                }\n                event = createKind.event(type, options, dispatchEl);\n                ret = syn.dispatch(event, dispatchEl, type, autoPrevent);\n            }\n            if (ret && syn.support.ready === 2 && syn.defaults[type]) {\n                syn.defaults[type].call(element, options, autoPrevent);\n            }\n            return ret;\n        },\n        eventSupported: function (eventName) {\n            var el = document.createElement('div');\n            eventName = 'on' + eventName;\n            var isSupported = eventName in el;\n            if (!isSupported) {\n                el.setAttribute(eventName, 'return;');\n                isSupported = typeof el[eventName] === 'function';\n            }\n            el = null;\n            return isSupported;\n        }\n    });\n    extend(syn.init.prototype, {\n        then: function (type, element, options, callback) {\n            if (syn.autoDelay) {\n                this.delay();\n            }\n            var args = syn.args(options, element, callback), self = this;\n            this.queue.unshift(function (el, prevented) {\n                if (typeof this[type] === 'function') {\n                    this.element = args.element || el;\n                    this[type](this.element, args.options, function (defaults, el) {\n                        if (args.callback) {\n                            args.callback.apply(self, arguments);\n                        }\n                        self.done.apply(self, arguments);\n                    });\n                } else {\n                    this.result = syn.trigger(args.element, type, args.options);\n                    if (args.callback) {\n                        args.callback.call(this, args.element, this.result);\n                    }\n                    return this;\n                }\n            });\n            return this;\n        },\n        delay: function (timeout, callback) {\n            if (typeof timeout === 'function') {\n                callback = timeout;\n                timeout = null;\n            }\n            timeout = timeout || 600;\n            var self = this;\n            this.queue.unshift(function () {\n                schedule(function () {\n                    if (callback) {\n                        callback.apply(self, []);\n                    }\n                    self.done.apply(self, arguments);\n                }, timeout);\n            });\n            return this;\n        },\n        done: function (defaults, el) {\n            if (el) {\n                this.element = el;\n            }\n            if (this.queue.length) {\n                this.queue.pop().call(this, this.element, defaults);\n            }\n        },\n        '_click': function (element, options, callback, force) {\n            syn.helpers.addOffset(options, element);\n            syn.trigger(element, 'mousedown', options);\n            schedule(function () {\n                syn.trigger(element, 'mouseup', options);\n                if (!syn.support.mouseDownUpClicks || force) {\n                    syn.trigger(element, 'click', options);\n                    callback(true);\n                } else {\n                    syn.create.click.setup('click', options, element);\n                    syn.defaults.click.call(element);\n                    schedule(function () {\n                        callback(true);\n                    }, 1);\n                }\n            }, 1);\n        },\n        '_rightClick': function (element, options, callback) {\n            syn.helpers.addOffset(options, element);\n            var mouseopts = extend(extend({}, syn.mouse.browser.right.mouseup), options);\n            syn.trigger(element, 'mousedown', mouseopts);\n            schedule(function () {\n                syn.trigger(element, 'mouseup', mouseopts);\n                if (syn.mouse.browser.right.contextmenu) {\n                    syn.trigger(element, 'contextmenu', extend(extend({}, syn.mouse.browser.right.contextmenu), options));\n                }\n                callback(true);\n            }, 1);\n        },\n        '_dblclick': function (element, options, callback) {\n            syn.helpers.addOffset(options, element);\n            var self = this;\n            this._click(element, options, function () {\n                schedule(function () {\n                    self._click(element, options, function () {\n                        syn.trigger(element, 'dblclick', options);\n                        callback(true);\n                    }, true);\n                }, 2);\n            });\n        }\n    });\n    var actions = [\n            'click',\n            'dblclick',\n            'move',\n            'drag',\n            'key',\n            'type',\n            'rightClick'\n        ], makeAction = function (name) {\n            syn[name] = function (element, options, callback) {\n                return syn('_' + name, element, options, callback);\n            };\n            syn.init.prototype[name] = function (element, options, callback) {\n                return this.then('_' + name, element, options, callback);\n            };\n        }, i = 0;\n    for (; i < actions.length; i++) {\n        makeAction(actions[i]);\n    }\n    return syn;\n});\n/*syn/mouse*/\ndefine('syn/mouse', ['syn/synthetic'], function (syn) {\n    var h = syn.helpers, getWin = h.getWindow;\n    syn.mouse = {};\n    h.extend(syn.defaults, {\n        mousedown: function (options) {\n            syn.trigger(this, 'focus', {});\n        },\n        click: function () {\n            var element = this, href, type, createChange, radioChanged, nodeName, scope;\n            try {\n                href = element.href;\n                type = element.type;\n                createChange = syn.data(element, 'createChange');\n                radioChanged = syn.data(element, 'radioChanged');\n                scope = getWin(element);\n                nodeName = element.nodeName.toLowerCase();\n            } catch (e) {\n                return;\n            }\n            if (!syn.support.linkHrefJS && /^\\s*javascript:/.test(href)) {\n                var code = href.replace(/^\\s*javascript:/, '');\n                if (code !== '//' && code.indexOf('void(0)') === -1) {\n                    if (window.selenium) {\n                        eval('with(selenium.browserbot.getCurrentWindow()){' + code + '}');\n                    } else {\n                        eval('with(scope){' + code + '}');\n                    }\n                }\n            }\n            if (!syn.support.clickSubmits && (nodeName === 'input' && type === 'submit') || nodeName === 'button') {\n                var form = syn.closest(element, 'form');\n                if (form) {\n                    syn.trigger(form, 'submit', {});\n                }\n            }\n            if (nodeName === 'a' && element.href && !/^\\s*javascript:/.test(href)) {\n                scope.location.href = href;\n            }\n            if (nodeName === 'input' && type === 'checkbox') {\n                if (!syn.support.clickChanges) {\n                    syn.trigger(element, 'change', {});\n                }\n            }\n            if (nodeName === 'input' && type === 'radio') {\n                if (radioChanged && !syn.support.radioClickChanges) {\n                    syn.trigger(element, 'change', {});\n                }\n            }\n            if (nodeName === 'option' && createChange) {\n                syn.trigger(element.parentNode, 'change', {});\n                syn.data(element, 'createChange', false);\n            }\n        }\n    });\n    h.extend(syn.create, {\n        mouse: {\n            options: function (type, options, element) {\n                var doc = document.documentElement, body = document.body, center = [\n                        options.pageX || 0,\n                        options.pageY || 0\n                    ], left = syn.mouse.browser && syn.mouse.browser.left[type], right = syn.mouse.browser && syn.mouse.browser.right[type];\n                return h.extend({\n                    bubbles: true,\n                    cancelable: true,\n                    view: window,\n                    detail: 1,\n                    screenX: 1,\n                    screenY: 1,\n                    clientX: options.clientX || center[0] - (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc.clientLeft || 0),\n                    clientY: options.clientY || center[1] - (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc.clientTop || 0),\n                    ctrlKey: !!syn.key.ctrlKey,\n                    altKey: !!syn.key.altKey,\n                    shiftKey: !!syn.key.shiftKey,\n                    metaKey: !!syn.key.metaKey,\n                    button: left && left.button !== null ? left.button : right && right.button || (type === 'contextmenu' ? 2 : 0),\n                    relatedTarget: document.documentElement\n                }, options);\n            },\n            event: function (type, defaults, element) {\n                var doc = getWin(element).document || document, event;\n                if (doc.createEvent) {\n                    try {\n                        event = doc.createEvent('MouseEvents');\n                        event.initMouseEvent(type, defaults.bubbles, defaults.cancelable, defaults.view, defaults.detail, defaults.screenX, defaults.screenY, defaults.clientX, defaults.clientY, defaults.ctrlKey, defaults.altKey, defaults.shiftKey, defaults.metaKey, defaults.button, defaults.relatedTarget);\n                    } catch (e) {\n                        event = h.createBasicStandardEvent(type, defaults, doc);\n                    }\n                    event.synthetic = true;\n                    return event;\n                } else {\n                    try {\n                        event = h.createEventObject(type, defaults, element);\n                    } catch (e) {\n                    }\n                    return event;\n                }\n            }\n        },\n        click: {\n            setup: function (type, options, element) {\n                var nodeName = element.nodeName.toLowerCase();\n                if (!syn.support.clickChecks && !syn.support.changeChecks && nodeName === 'input') {\n                    type = element.type.toLowerCase();\n                    if (type === 'checkbox') {\n                        element.checked = !element.checked;\n                    }\n                    if (type === 'radio') {\n                        if (!element.checked) {\n                            try {\n                                syn.data(element, 'radioChanged', true);\n                            } catch (e) {\n                            }\n                            element.checked = true;\n                        }\n                    }\n                }\n                if (nodeName === 'a' && element.href && !/^\\s*javascript:/.test(element.href)) {\n                    syn.data(element, 'href', element.href);\n                }\n                if (/option/i.test(element.nodeName)) {\n                    var child = element.parentNode.firstChild, i = -1;\n                    while (child) {\n                        if (child.nodeType === 1) {\n                            i++;\n                            if (child === element) {\n                                break;\n                            }\n                        }\n                        child = child.nextSibling;\n                    }\n                    if (i !== element.parentNode.selectedIndex) {\n                        element.parentNode.selectedIndex = i;\n                        syn.data(element, 'createChange', true);\n                    }\n                }\n            }\n        },\n        mousedown: {\n            setup: function (type, options, element) {\n                var nn = element.nodeName.toLowerCase();\n                if (syn.browser.safari && (nn === 'select' || nn === 'option')) {\n                    options._autoPrevent = true;\n                }\n            }\n        }\n    });\n    return syn;\n});\n/*syn/mouse.support*/\ndefine('syn/mouse.support', [\n    'syn/synthetic',\n    'syn/mouse'\n], function checkSupport(syn) {\n    if (!document.body) {\n        syn.schedule(function () {\n            checkSupport(syn);\n        }, 1);\n        return;\n    }\n    window.__synthTest = function () {\n        syn.support.linkHrefJS = true;\n    };\n    var div = document.createElement('div'), checkbox, submit, form, select;\n    div.innerHTML = '<form id=\\'outer\\'>' + '<input name=\\'checkbox\\' type=\\'checkbox\\'/>' + '<input name=\\'radio\\' type=\\'radio\\' />' + '<input type=\\'submit\\' name=\\'submitter\\'/>' + '<input type=\\'input\\' name=\\'inputter\\'/>' + '<input name=\\'one\\'>' + '<input name=\\'two\\'/>' + '<a href=\\'javascript:__synthTest()\\' id=\\'synlink\\'></a>' + '<select><option></option></select>' + '</form>';\n    document.documentElement.appendChild(div);\n    form = div.firstChild;\n    checkbox = form.childNodes[0];\n    submit = form.childNodes[2];\n    select = form.getElementsByTagName('select')[0];\n    syn.trigger(form.childNodes[6], 'click', {});\n    checkbox.checked = false;\n    checkbox.onchange = function () {\n        syn.support.clickChanges = true;\n    };\n    syn.trigger(checkbox, 'click', {});\n    syn.support.clickChecks = checkbox.checked;\n    checkbox.checked = false;\n    syn.trigger(checkbox, 'change', {});\n    syn.support.changeChecks = checkbox.checked;\n    form.onsubmit = function (ev) {\n        if (ev.preventDefault) {\n            ev.preventDefault();\n        }\n        syn.support.clickSubmits = true;\n        return false;\n    };\n    syn.trigger(submit, 'click', {});\n    form.childNodes[1].onchange = function () {\n        syn.support.radioClickChanges = true;\n    };\n    syn.trigger(form.childNodes[1], 'click', {});\n    syn.bind(div, 'click', function onclick() {\n        syn.support.optionClickBubbles = true;\n        syn.unbind(div, 'click', onclick);\n    });\n    syn.trigger(select.firstChild, 'click', {});\n    syn.support.changeBubbles = syn.eventSupported('change');\n    div.onclick = function () {\n        syn.support.mouseDownUpClicks = true;\n    };\n    syn.trigger(div, 'mousedown', {});\n    syn.trigger(div, 'mouseup', {});\n    document.documentElement.removeChild(div);\n    syn.support.ready++;\n});\n/*syn/browsers*/\ndefine('syn/browsers', [\n    'syn/synthetic',\n    'syn/mouse'\n], function (syn) {\n    syn.key.browsers = {\n        webkit: {\n            'prevent': {\n                'keyup': [],\n                'keydown': [\n                    'char',\n                    'keypress'\n                ],\n                'keypress': ['char']\n            },\n            'character': {\n                'keydown': [\n                    0,\n                    'key'\n                ],\n                'keypress': [\n                    'char',\n                    'char'\n                ],\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            },\n            'specialChars': {\n                'keydown': [\n                    0,\n                    'char'\n                ],\n                'keyup': [\n                    0,\n                    'char'\n                ]\n            },\n            'navigation': {\n                'keydown': [\n                    0,\n                    'key'\n                ],\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            },\n            'special': {\n                'keydown': [\n                    0,\n                    'key'\n                ],\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            },\n            'tab': {\n                'keydown': [\n                    0,\n                    'char'\n                ],\n                'keyup': [\n                    0,\n                    'char'\n                ]\n            },\n            'pause-break': {\n                'keydown': [\n                    0,\n                    'key'\n                ],\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            },\n            'caps': {\n                'keydown': [\n                    0,\n                    'key'\n                ],\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            },\n            'escape': {\n                'keydown': [\n                    0,\n                    'key'\n                ],\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            },\n            'num-lock': {\n                'keydown': [\n                    0,\n                    'key'\n                ],\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            },\n            'scroll-lock': {\n                'keydown': [\n                    0,\n                    'key'\n                ],\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            },\n            'print': {\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            },\n            'function': {\n                'keydown': [\n                    0,\n                    'key'\n                ],\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            },\n            '\\r': {\n                'keydown': [\n                    0,\n                    'key'\n                ],\n                'keypress': [\n                    'char',\n                    'key'\n                ],\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            }\n        },\n        gecko: {\n            'prevent': {\n                'keyup': [],\n                'keydown': ['char'],\n                'keypress': ['char']\n            },\n            'character': {\n                'keydown': [\n                    0,\n                    'key'\n                ],\n                'keypress': [\n                    'char',\n                    0\n                ],\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            },\n            'specialChars': {\n                'keydown': [\n                    0,\n                    'key'\n                ],\n                'keypress': [\n                    0,\n                    'key'\n                ],\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            },\n            'navigation': {\n                'keydown': [\n                    0,\n                    'key'\n                ],\n                'keypress': [\n                    0,\n                    'key'\n                ],\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            },\n            'special': {\n                'keydown': [\n                    0,\n                    'key'\n                ],\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            },\n            '\\t': {\n                'keydown': [\n                    0,\n                    'key'\n                ],\n                'keypress': [\n                    0,\n                    'key'\n                ],\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            },\n            'pause-break': {\n                'keydown': [\n                    0,\n                    'key'\n                ],\n                'keypress': [\n                    0,\n                    'key'\n                ],\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            },\n            'caps': {\n                'keydown': [\n                    0,\n                    'key'\n                ],\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            },\n            'escape': {\n                'keydown': [\n                    0,\n                    'key'\n                ],\n                'keypress': [\n                    0,\n                    'key'\n                ],\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            },\n            'num-lock': {\n                'keydown': [\n                    0,\n                    'key'\n                ],\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            },\n            'scroll-lock': {\n                'keydown': [\n                    0,\n                    'key'\n                ],\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            },\n            'print': {\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            },\n            'function': {\n                'keydown': [\n                    0,\n                    'key'\n                ],\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            },\n            '\\r': {\n                'keydown': [\n                    0,\n                    'key'\n                ],\n                'keypress': [\n                    0,\n                    'key'\n                ],\n                'keyup': [\n                    0,\n                    'key'\n                ]\n            }\n        },\n        msie: {\n            'prevent': {\n                'keyup': [],\n                'keydown': [\n                    'char',\n                    'keypress'\n                ],\n                'keypress': ['char']\n            },\n            'character': {\n                'keydown': [\n                    null,\n                    'key'\n                ],\n                'keypress': [\n                    null,\n                    'char'\n                ],\n                'keyup': [\n                    null,\n                    'key'\n                ]\n            },\n            'specialChars': {\n                'keydown': [\n                    null,\n                    'char'\n                ],\n                'keyup': [\n                    null,\n                    'char'\n                ]\n            },\n            'navigation': {\n                'keydown': [\n                    null,\n                    'key'\n                ],\n                'keyup': [\n                    null,\n                    'key'\n                ]\n            },\n            'special': {\n                'keydown': [\n                    null,\n                    'key'\n                ],\n                'keyup': [\n                    null,\n                    'key'\n                ]\n            },\n            'tab': {\n                'keydown': [\n                    null,\n                    'char'\n                ],\n                'keyup': [\n                    null,\n                    'char'\n                ]\n            },\n            'pause-break': {\n                'keydown': [\n                    null,\n                    'key'\n                ],\n                'keyup': [\n                    null,\n                    'key'\n                ]\n            },\n            'caps': {\n                'keydown': [\n                    null,\n                    'key'\n                ],\n                'keyup': [\n                    null,\n                    'key'\n                ]\n            },\n            'escape': {\n                'keydown': [\n                    null,\n                    'key'\n                ],\n                'keypress': [\n                    null,\n                    'key'\n                ],\n                'keyup': [\n                    null,\n                    'key'\n                ]\n            },\n            'num-lock': {\n                'keydown': [\n                    null,\n                    'key'\n                ],\n                'keyup': [\n                    null,\n                    'key'\n                ]\n            },\n            'scroll-lock': {\n                'keydown': [\n                    null,\n                    'key'\n                ],\n                'keyup': [\n                    null,\n                    'key'\n                ]\n            },\n            'print': {\n                'keyup': [\n                    null,\n                    'key'\n                ]\n            },\n            'function': {\n                'keydown': [\n                    null,\n                    'key'\n                ],\n                'keyup': [\n                    null,\n                    'key'\n                ]\n            },\n            '\\r': {\n                'keydown': [\n                    null,\n                    'key'\n                ],\n                'keypress': [\n                    null,\n                    'key'\n                ],\n                'keyup': [\n                    null,\n                    'key'\n                ]\n            }\n        },\n        opera: {\n            'prevent': {\n                'keyup': [],\n                'keydown': [],\n                'keypress': ['char']\n            },\n            'character': {\n                'keydown': [\n                    null,\n                    'key'\n                ],\n                'keypress': [\n                    null,\n                    'char'\n                ],\n                'keyup': [\n                    null,\n                    'key'\n                ]\n            },\n            'specialChars': {\n                'keydown': [\n                    null,\n                    'char'\n                ],\n                'keypress': [\n                    null,\n                    'char'\n                ],\n                'keyup': [\n                    null,\n                    'char'\n                ]\n            },\n            'navigation': {\n                'keydown': [\n                    null,\n                    'key'\n                ],\n                'keypress': [\n                    null,\n                    'key'\n                ]\n            },\n            'special': {\n                'keydown': [\n                    null,\n                    'key'\n                ],\n                'keypress': [\n                    null,\n                    'key'\n                ],\n                'keyup': [\n                    null,\n                    'key'\n                ]\n            },\n            'tab': {\n                'keydown': [\n                    null,\n                    'char'\n                ],\n                'keypress': [\n                    null,\n                    'char'\n                ],\n                'keyup': [\n                    null,\n                    'char'\n                ]\n            },\n            'pause-break': {\n                'keydown': [\n                    null,\n                    'key'\n                ],\n                'keypress': [\n                    null,\n                    'key'\n                ],\n                'keyup': [\n                    null,\n                    'key'\n                ]\n            },\n            'caps': {\n                'keydown': [\n                    null,\n                    'key'\n                ],\n                'keyup': [\n                    null,\n                    'key'\n                ]\n            },\n            'escape': {\n                'keydown': [\n                    null,\n                    'key'\n                ],\n                'keypress': [\n                    null,\n                    'key'\n                ]\n            },\n            'num-lock': {\n                'keyup': [\n                    null,\n                    'key'\n                ],\n                'keydown': [\n                    null,\n                    'key'\n                ],\n                'keypress': [\n                    null,\n                    'key'\n                ]\n            },\n            'scroll-lock': {\n                'keydown': [\n                    null,\n                    'key'\n                ],\n                'keypress': [\n                    null,\n                    'key'\n                ],\n                'keyup': [\n                    null,\n                    'key'\n                ]\n            },\n            'print': {},\n            'function': {\n                'keydown': [\n                    null,\n                    'key'\n                ],\n                'keypress': [\n                    null,\n                    'key'\n                ],\n                'keyup': [\n                    null,\n                    'key'\n                ]\n            },\n            '\\r': {\n                'keydown': [\n                    null,\n                    'key'\n                ],\n                'keypress': [\n                    null,\n                    'key'\n                ],\n                'keyup': [\n                    null,\n                    'key'\n                ]\n            }\n        }\n    };\n    syn.mouse.browsers = {\n        webkit: {\n            'right': {\n                'mousedown': {\n                    'button': 2,\n                    'which': 3\n                },\n                'mouseup': {\n                    'button': 2,\n                    'which': 3\n                },\n                'contextmenu': {\n                    'button': 2,\n                    'which': 3\n                }\n            },\n            'left': {\n                'mousedown': {\n                    'button': 0,\n                    'which': 1\n                },\n                'mouseup': {\n                    'button': 0,\n                    'which': 1\n                },\n                'click': {\n                    'button': 0,\n                    'which': 1\n                }\n            }\n        },\n        opera: {\n            'right': {\n                'mousedown': {\n                    'button': 2,\n                    'which': 3\n                },\n                'mouseup': {\n                    'button': 2,\n                    'which': 3\n                }\n            },\n            'left': {\n                'mousedown': {\n                    'button': 0,\n                    'which': 1\n                },\n                'mouseup': {\n                    'button': 0,\n                    'which': 1\n                },\n                'click': {\n                    'button': 0,\n                    'which': 1\n                }\n            }\n        },\n        msie: {\n            'right': {\n                'mousedown': { 'button': 2 },\n                'mouseup': { 'button': 2 },\n                'contextmenu': { 'button': 0 }\n            },\n            'left': {\n                'mousedown': { 'button': 1 },\n                'mouseup': { 'button': 1 },\n                'click': { 'button': 0 }\n            }\n        },\n        chrome: {\n            'right': {\n                'mousedown': {\n                    'button': 2,\n                    'which': 3\n                },\n                'mouseup': {\n                    'button': 2,\n                    'which': 3\n                },\n                'contextmenu': {\n                    'button': 2,\n                    'which': 3\n                }\n            },\n            'left': {\n                'mousedown': {\n                    'button': 0,\n                    'which': 1\n                },\n                'mouseup': {\n                    'button': 0,\n                    'which': 1\n                },\n                'click': {\n                    'button': 0,\n                    'which': 1\n                }\n            }\n        },\n        gecko: {\n            'left': {\n                'mousedown': {\n                    'button': 0,\n                    'which': 1\n                },\n                'mouseup': {\n                    'button': 0,\n                    'which': 1\n                },\n                'click': {\n                    'button': 0,\n                    'which': 1\n                }\n            },\n            'right': {\n                'mousedown': {\n                    'button': 2,\n                    'which': 3\n                },\n                'mouseup': {\n                    'button': 2,\n                    'which': 3\n                },\n                'contextmenu': {\n                    'button': 2,\n                    'which': 3\n                }\n            }\n        }\n    };\n    syn.key.browser = function () {\n        if (syn.key.browsers[window.navigator.userAgent]) {\n            return syn.key.browsers[window.navigator.userAgent];\n        }\n        for (var browser in syn.browser) {\n            if (syn.browser[browser] && syn.key.browsers[browser]) {\n                return syn.key.browsers[browser];\n            }\n        }\n        return syn.key.browsers.gecko;\n    }();\n    syn.mouse.browser = function () {\n        if (syn.mouse.browsers[window.navigator.userAgent]) {\n            return syn.mouse.browsers[window.navigator.userAgent];\n        }\n        for (var browser in syn.browser) {\n            if (syn.browser[browser] && syn.mouse.browsers[browser]) {\n                return syn.mouse.browsers[browser];\n            }\n        }\n        return syn.mouse.browsers.gecko;\n    }();\n    return syn;\n});\n/*syn/typeable*/\ndefine('syn/typeable', ['syn/synthetic'], function (syn) {\n    var typeables = [];\n    var __indexOf = [].indexOf || function (item) {\n            for (var i = 0, l = this.length; i < l; i++) {\n                if (i in this && this[i] === item) {\n                    return i;\n                }\n            }\n            return -1;\n        };\n    syn.typeable = function (fn) {\n        if (__indexOf.call(typeables, fn) === -1) {\n            typeables.push(fn);\n        }\n    };\n    syn.typeable.test = function (el) {\n        for (var i = 0, len = typeables.length; i < len; i++) {\n            if (typeables[i](el)) {\n                return true;\n            }\n        }\n        return false;\n    };\n    var type = syn.typeable;\n    var typeableExp = /input|textarea/i;\n    type(function (el) {\n        return typeableExp.test(el.nodeName);\n    });\n    type(function (el) {\n        return __indexOf.call([\n            '',\n            'true'\n        ], el.getAttribute('contenteditable')) !== -1;\n    });\n    return syn;\n});\n/*syn/key*/\ndefine('syn/key', [\n    'syn/synthetic',\n    'syn/typeable',\n    'syn/browsers'\n], function (syn) {\n    var h = syn.helpers, getInputSelection = function (el) {\n            var real, r, start;\n            if (el.selectionStart !== undefined) {\n                if (document.activeElement && document.activeElement !== el && el.selectionStart === el.selectionEnd && el.selectionStart === 0) {\n                    return {\n                        start: el.value.length,\n                        end: el.value.length\n                    };\n                }\n                return {\n                    start: el.selectionStart,\n                    end: el.selectionEnd\n                };\n            } else {\n                try {\n                    if (el.nodeName.toLowerCase() === 'input') {\n                        real = h.getWindow(el).document.selection.createRange();\n                        r = el.createTextRange();\n                        r.setEndPoint('EndToStart', real);\n                        start = r.text.length;\n                        return {\n                            start: start,\n                            end: start + real.text.length\n                        };\n                    } else {\n                        real = h.getWindow(el).document.selection.createRange();\n                        r = real.duplicate();\n                        var r2 = real.duplicate(), r3 = real.duplicate();\n                        r2.collapse();\n                        r3.collapse(false);\n                        r2.moveStart('character', -1);\n                        r3.moveStart('character', -1);\n                        r.moveToElementText(el);\n                        r.setEndPoint('EndToEnd', real);\n                        start = r.text.length - real.text.length;\n                        var end = r.text.length;\n                        if (start !== 0 && r2.text === '') {\n                            start += 2;\n                        }\n                        if (end !== 0 && r3.text === '') {\n                            end += 2;\n                        }\n                        return {\n                            start: start,\n                            end: end\n                        };\n                    }\n                } catch (e) {\n                    var prop = formElExp.test(el.nodeName) ? 'value' : 'textContent';\n                    return {\n                        start: el[prop].length,\n                        end: el[prop].length\n                    };\n                }\n            }\n        }, getFocusable = function (el) {\n            var document = h.getWindow(el).document, res = [];\n            var els = document.getElementsByTagName('*'), len = els.length;\n            for (var i = 0; i < len; i++) {\n                if (syn.isFocusable(els[i]) && els[i] !== document.documentElement) {\n                    res.push(els[i]);\n                }\n            }\n            return res;\n        }, formElExp = /input|textarea/i, textProperty = function () {\n            var el = document.createElement('span');\n            return el.textContent != null ? 'textContent' : 'innerText';\n        }(), getText = function (el) {\n            if (formElExp.test(el.nodeName)) {\n                return el.value;\n            }\n            return el[textProperty];\n        }, setText = function (el, value) {\n            if (formElExp.test(el.nodeName)) {\n                el.value = value;\n            } else {\n                el[textProperty] = value;\n            }\n        };\n    h.extend(syn, {\n        keycodes: {\n            '\\b': 8,\n            '\\t': 9,\n            '\\r': 13,\n            'shift': 16,\n            'ctrl': 17,\n            'alt': 18,\n            'pause-break': 19,\n            'caps': 20,\n            'escape': 27,\n            'num-lock': 144,\n            'scroll-lock': 145,\n            'print': 44,\n            'page-up': 33,\n            'page-down': 34,\n            'end': 35,\n            'home': 36,\n            'left': 37,\n            'up': 38,\n            'right': 39,\n            'down': 40,\n            'insert': 45,\n            'delete': 46,\n            ' ': 32,\n            '0': 48,\n            '1': 49,\n            '2': 50,\n            '3': 51,\n            '4': 52,\n            '5': 53,\n            '6': 54,\n            '7': 55,\n            '8': 56,\n            '9': 57,\n            'a': 65,\n            'b': 66,\n            'c': 67,\n            'd': 68,\n            'e': 69,\n            'f': 70,\n            'g': 71,\n            'h': 72,\n            'i': 73,\n            'j': 74,\n            'k': 75,\n            'l': 76,\n            'm': 77,\n            'n': 78,\n            'o': 79,\n            'p': 80,\n            'q': 81,\n            'r': 82,\n            's': 83,\n            't': 84,\n            'u': 85,\n            'v': 86,\n            'w': 87,\n            'x': 88,\n            'y': 89,\n            'z': 90,\n            'num0': 96,\n            'num1': 97,\n            'num2': 98,\n            'num3': 99,\n            'num4': 100,\n            'num5': 101,\n            'num6': 102,\n            'num7': 103,\n            'num8': 104,\n            'num9': 105,\n            '*': 106,\n            '+': 107,\n            'subtract': 109,\n            'decimal': 110,\n            'divide': 111,\n            ';': 186,\n            '=': 187,\n            ',': 188,\n            'dash': 189,\n            '-': 189,\n            'period': 190,\n            '.': 190,\n            'forward-slash': 191,\n            '/': 191,\n            '`': 192,\n            '[': 219,\n            '\\\\': 220,\n            ']': 221,\n            '\\'': 222,\n            'left window key': 91,\n            'right window key': 92,\n            'select key': 93,\n            'f1': 112,\n            'f2': 113,\n            'f3': 114,\n            'f4': 115,\n            'f5': 116,\n            'f6': 117,\n            'f7': 118,\n            'f8': 119,\n            'f9': 120,\n            'f10': 121,\n            'f11': 122,\n            'f12': 123\n        },\n        selectText: function (el, start, end) {\n            if (el.setSelectionRange) {\n                if (!end) {\n                    syn.__tryFocus(el);\n                    el.setSelectionRange(start, start);\n                } else {\n                    el.selectionStart = start;\n                    el.selectionEnd = end;\n                }\n            } else if (el.createTextRange) {\n                var r = el.createTextRange();\n                r.moveStart('character', start);\n                end = end || start;\n                r.moveEnd('character', end - el.value.length);\n                r.select();\n            }\n        },\n        getText: function (el) {\n            if (syn.typeable.test(el)) {\n                var sel = getInputSelection(el);\n                return el.value.substring(sel.start, sel.end);\n            }\n            var win = syn.helpers.getWindow(el);\n            if (win.getSelection) {\n                return win.getSelection().toString();\n            } else if (win.document.getSelection) {\n                return win.document.getSelection().toString();\n            } else {\n                return win.document.selection.createRange().text;\n            }\n        },\n        getSelection: getSelection\n    });\n    h.extend(syn.key, {\n        data: function (key) {\n            if (syn.key.browser[key]) {\n                return syn.key.browser[key];\n            }\n            for (var kind in syn.key.kinds) {\n                if (h.inArray(key, syn.key.kinds[kind]) > -1) {\n                    return syn.key.browser[kind];\n                }\n            }\n            return syn.key.browser.character;\n        },\n        isSpecial: function (keyCode) {\n            var specials = syn.key.kinds.special;\n            for (var i = 0; i < specials.length; i++) {\n                if (syn.keycodes[specials[i]] === keyCode) {\n                    return specials[i];\n                }\n            }\n        },\n        options: function (key, event) {\n            var keyData = syn.key.data(key);\n            if (!keyData[event]) {\n                return null;\n            }\n            var charCode = keyData[event][0], keyCode = keyData[event][1], result = {};\n            if (keyCode === 'key') {\n                result.keyCode = syn.keycodes[key];\n            } else if (keyCode === 'char') {\n                result.keyCode = key.charCodeAt(0);\n            } else {\n                result.keyCode = keyCode;\n            }\n            if (charCode === 'char') {\n                result.charCode = key.charCodeAt(0);\n            } else if (charCode !== null) {\n                result.charCode = charCode;\n            }\n            if (result.keyCode) {\n                result.which = result.keyCode;\n            } else {\n                result.which = result.charCode;\n            }\n            return result;\n        },\n        kinds: {\n            special: [\n                'shift',\n                'ctrl',\n                'alt',\n                'caps'\n            ],\n            specialChars: ['\\b'],\n            navigation: [\n                'page-up',\n                'page-down',\n                'end',\n                'home',\n                'left',\n                'up',\n                'right',\n                'down',\n                'insert',\n                'delete'\n            ],\n            'function': [\n                'f1',\n                'f2',\n                'f3',\n                'f4',\n                'f5',\n                'f6',\n                'f7',\n                'f8',\n                'f9',\n                'f10',\n                'f11',\n                'f12'\n            ]\n        },\n        getDefault: function (key) {\n            if (syn.key.defaults[key]) {\n                return syn.key.defaults[key];\n            }\n            for (var kind in syn.key.kinds) {\n                if (h.inArray(key, syn.key.kinds[kind]) > -1 && syn.key.defaults[kind]) {\n                    return syn.key.defaults[kind];\n                }\n            }\n            return syn.key.defaults.character;\n        },\n        defaults: {\n            'character': function (options, scope, key, force, sel) {\n                if (/num\\d+/.test(key)) {\n                    key = key.match(/\\d+/)[0];\n                }\n                if (force || !syn.support.keyCharacters && syn.typeable.test(this)) {\n                    var current = getText(this), before = current.substr(0, sel.start), after = current.substr(sel.end), character = key;\n                    setText(this, before + character + after);\n                    var charLength = character === '\\n' && syn.support.textareaCarriage ? 2 : character.length;\n                    syn.selectText(this, before.length + charLength);\n                }\n            },\n            'c': function (options, scope, key, force, sel) {\n                if (syn.key.ctrlKey) {\n                    syn.key.clipboard = syn.getText(this);\n                } else {\n                    syn.key.defaults.character.apply(this, arguments);\n                }\n            },\n            'v': function (options, scope, key, force, sel) {\n                if (syn.key.ctrlKey) {\n                    syn.key.defaults.character.call(this, options, scope, syn.key.clipboard, true, sel);\n                } else {\n                    syn.key.defaults.character.apply(this, arguments);\n                }\n            },\n            'a': function (options, scope, key, force, sel) {\n                if (syn.key.ctrlKey) {\n                    syn.selectText(this, 0, getText(this).length);\n                } else {\n                    syn.key.defaults.character.apply(this, arguments);\n                }\n            },\n            'home': function () {\n                syn.onParents(this, function (el) {\n                    if (el.scrollHeight !== el.clientHeight) {\n                        el.scrollTop = 0;\n                        return false;\n                    }\n                });\n            },\n            'end': function () {\n                syn.onParents(this, function (el) {\n                    if (el.scrollHeight !== el.clientHeight) {\n                        el.scrollTop = el.scrollHeight;\n                        return false;\n                    }\n                });\n            },\n            'page-down': function () {\n                syn.onParents(this, function (el) {\n                    if (el.scrollHeight !== el.clientHeight) {\n                        var ch = el.clientHeight;\n                        el.scrollTop += ch;\n                        return false;\n                    }\n                });\n            },\n            'page-up': function () {\n                syn.onParents(this, function (el) {\n                    if (el.scrollHeight !== el.clientHeight) {\n                        var ch = el.clientHeight;\n                        el.scrollTop -= ch;\n                        return false;\n                    }\n                });\n            },\n            '\\b': function (options, scope, key, force, sel) {\n                if (!syn.support.backspaceWorks && syn.typeable.test(this)) {\n                    var current = getText(this), before = current.substr(0, sel.start), after = current.substr(sel.end);\n                    if (sel.start === sel.end && sel.start > 0) {\n                        setText(this, before.substring(0, before.length - 1) + after);\n                        syn.selectText(this, sel.start - 1);\n                    } else {\n                        setText(this, before + after);\n                        syn.selectText(this, sel.start);\n                    }\n                }\n            },\n            'delete': function (options, scope, key, force, sel) {\n                if (!syn.support.backspaceWorks && syn.typeable.test(this)) {\n                    var current = getText(this), before = current.substr(0, sel.start), after = current.substr(sel.end);\n                    if (sel.start === sel.end && sel.start <= getText(this).length - 1) {\n                        setText(this, before + after.substring(1));\n                    } else {\n                        setText(this, before + after);\n                    }\n                    syn.selectText(this, sel.start);\n                }\n            },\n            '\\r': function (options, scope, key, force, sel) {\n                var nodeName = this.nodeName.toLowerCase();\n                if (nodeName === 'input') {\n                    syn.trigger(this, 'change', {});\n                }\n                if (!syn.support.keypressSubmits && nodeName === 'input') {\n                    var form = syn.closest(this, 'form');\n                    if (form) {\n                        syn.trigger(form, 'submit', {});\n                    }\n                }\n                if (!syn.support.keyCharacters && nodeName === 'textarea') {\n                    syn.key.defaults.character.call(this, options, scope, '\\n', undefined, sel);\n                }\n                if (!syn.support.keypressOnAnchorClicks && nodeName === 'a') {\n                    syn.trigger(this, 'click', {});\n                }\n            },\n            '\\t': function (options, scope) {\n                var focusEls = getFocusable(this), current = null, i = 0, el, firstNotIndexed, orders = [];\n                for (; i < focusEls.length; i++) {\n                    orders.push([\n                        focusEls[i],\n                        i\n                    ]);\n                }\n                var sort = function (order1, order2) {\n                    var el1 = order1[0], el2 = order2[0], tab1 = syn.tabIndex(el1) || 0, tab2 = syn.tabIndex(el2) || 0;\n                    if (tab1 === tab2) {\n                        return order1[1] - order2[1];\n                    } else {\n                        if (tab1 === 0) {\n                            return 1;\n                        } else if (tab2 === 0) {\n                            return -1;\n                        } else {\n                            return tab1 - tab2;\n                        }\n                    }\n                };\n                orders.sort(sort);\n                for (i = 0; i < orders.length; i++) {\n                    el = orders[i][0];\n                    if (this === el) {\n                        if (!syn.key.shiftKey) {\n                            current = orders[i + 1][0];\n                            if (!current) {\n                                current = orders[0][0];\n                            }\n                        } else {\n                            current = orders[i - 1][0];\n                            if (!current) {\n                                current = orders[focusEls.length - 1][0];\n                            }\n                        }\n                    }\n                }\n                if (!current) {\n                    current = firstNotIndexed;\n                } else {\n                    syn.__tryFocus(current);\n                }\n                return current;\n            },\n            'left': function (options, scope, key, force, sel) {\n                if (syn.typeable.test(this)) {\n                    if (syn.key.shiftKey) {\n                        syn.selectText(this, sel.start === 0 ? 0 : sel.start - 1, sel.end);\n                    } else {\n                        syn.selectText(this, sel.start === 0 ? 0 : sel.start - 1);\n                    }\n                }\n            },\n            'right': function (options, scope, key, force, sel) {\n                if (syn.typeable.test(this)) {\n                    if (syn.key.shiftKey) {\n                        syn.selectText(this, sel.start, sel.end + 1 > getText(this).length ? getText(this).length : sel.end + 1);\n                    } else {\n                        syn.selectText(this, sel.end + 1 > getText(this).length ? getText(this).length : sel.end + 1);\n                    }\n                }\n            },\n            'up': function () {\n                if (/select/i.test(this.nodeName)) {\n                    this.selectedIndex = this.selectedIndex ? this.selectedIndex - 1 : 0;\n                }\n            },\n            'down': function () {\n                if (/select/i.test(this.nodeName)) {\n                    syn.changeOnBlur(this, 'selectedIndex', this.selectedIndex);\n                    this.selectedIndex = this.selectedIndex + 1;\n                }\n            },\n            'shift': function () {\n                return null;\n            },\n            'ctrl': function () {\n                return null;\n            }\n        }\n    });\n    h.extend(syn.create, {\n        keydown: {\n            setup: function (type, options, element) {\n                if (h.inArray(options, syn.key.kinds.special) !== -1) {\n                    syn.key[options + 'Key'] = element;\n                }\n            }\n        },\n        keypress: {\n            setup: function (type, options, element) {\n                if (syn.support.keyCharacters && !syn.support.keysOnNotFocused) {\n                    syn.__tryFocus(element);\n                }\n            }\n        },\n        keyup: {\n            setup: function (type, options, element) {\n                if (h.inArray(options, syn.key.kinds.special) !== -1) {\n                    syn.key[options + 'Key'] = null;\n                }\n            }\n        },\n        key: {\n            options: function (type, options, element) {\n                options = typeof options !== 'object' ? { character: options } : options;\n                options = h.extend({}, options);\n                if (options.character) {\n                    h.extend(options, syn.key.options(options.character, type));\n                    delete options.character;\n                }\n                options = h.extend({\n                    ctrlKey: !!syn.key.ctrlKey,\n                    altKey: !!syn.key.altKey,\n                    shiftKey: !!syn.key.shiftKey,\n                    metaKey: !!syn.key.metaKey\n                }, options);\n                return options;\n            },\n            event: function (type, options, element) {\n                var doc = h.getWindow(element).document || document, event;\n                if (doc.createEvent) {\n                    try {\n                        event = doc.createEvent('KeyEvents');\n                        event.initKeyEvent(type, true, true, window, options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, options.keyCode, options.charCode);\n                    } catch (e) {\n                        event = h.createBasicStandardEvent(type, options, doc);\n                    }\n                    event.synthetic = true;\n                    return event;\n                } else {\n                    try {\n                        event = h.createEventObject.apply(this, arguments);\n                        h.extend(event, options);\n                    } catch (e) {\n                    }\n                    return event;\n                }\n            }\n        }\n    });\n    var convert = {\n            'enter': '\\r',\n            'backspace': '\\b',\n            'tab': '\\t',\n            'space': ' '\n        };\n    h.extend(syn.init.prototype, {\n        _key: function (element, options, callback) {\n            if (/-up$/.test(options) && h.inArray(options.replace('-up', ''), syn.key.kinds.special) !== -1) {\n                syn.trigger(element, 'keyup', options.replace('-up', ''));\n                return callback(true, element);\n            }\n            var activeElement = h.getWindow(element).document.activeElement, caret = syn.typeable.test(element) && getInputSelection(element), key = convert[options] || options, runDefaults = syn.trigger(element, 'keydown', key), getDefault = syn.key.getDefault, prevent = syn.key.browser.prevent, defaultResult, keypressOptions = syn.key.options(key, 'keypress');\n            if (runDefaults) {\n                if (!keypressOptions) {\n                    defaultResult = getDefault(key).call(element, keypressOptions, h.getWindow(element), key, undefined, caret);\n                } else {\n                    if (activeElement !== h.getWindow(element).document.activeElement) {\n                        element = h.getWindow(element).document.activeElement;\n                    }\n                    runDefaults = syn.trigger(element, 'keypress', keypressOptions);\n                    if (runDefaults) {\n                        defaultResult = getDefault(key).call(element, keypressOptions, h.getWindow(element), key, undefined, caret);\n                    }\n                }\n            } else {\n                if (keypressOptions && h.inArray('keypress', prevent.keydown) === -1) {\n                    if (activeElement !== h.getWindow(element).document.activeElement) {\n                        element = h.getWindow(element).document.activeElement;\n                    }\n                    syn.trigger(element, 'keypress', keypressOptions);\n                }\n            }\n            if (defaultResult && defaultResult.nodeName) {\n                element = defaultResult;\n            }\n            if (defaultResult !== null) {\n                syn.schedule(function () {\n                    if (syn.support.oninput) {\n                        syn.trigger(element, 'input', syn.key.options(key, 'input'));\n                    }\n                    syn.trigger(element, 'keyup', syn.key.options(key, 'keyup'));\n                    callback(runDefaults, element);\n                }, 1);\n            } else {\n                callback(runDefaults, element);\n            }\n            return element;\n        },\n        _type: function (element, options, callback) {\n            var parts = (options + '').match(/(\\[[^\\]]+\\])|([^\\[])/g), self = this, runNextPart = function (runDefaults, el) {\n                    var part = parts.shift();\n                    if (!part) {\n                        callback(runDefaults, el);\n                        return;\n                    }\n                    el = el || element;\n                    if (part.length > 1) {\n                        part = part.substr(1, part.length - 2);\n                    }\n                    self._key(el, part, runNextPart);\n                };\n            runNextPart();\n        }\n    });\n    return syn;\n});\n/*syn/key.support*/\ndefine('syn/key.support', [\n    'syn/synthetic',\n    'syn/key'\n], function (syn) {\n    if (!syn.config.support) {\n        (function checkForSupport() {\n            if (!document.body) {\n                return syn.schedule(checkForSupport, 1);\n            }\n            var div = document.createElement('div'), checkbox, submit, form, anchor, textarea, inputter, one, doc;\n            doc = document.documentElement;\n            div.innerHTML = '<form id=\\'outer\\'>' + '<input name=\\'checkbox\\' type=\\'checkbox\\'/>' + '<input name=\\'radio\\' type=\\'radio\\' />' + '<input type=\\'submit\\' name=\\'submitter\\'/>' + '<input type=\\'input\\' name=\\'inputter\\'/>' + '<input name=\\'one\\'>' + '<input name=\\'two\\'/>' + '<a href=\\'#abc\\'></a>' + '<textarea>1\\n2</textarea>' + '</form>';\n            doc.insertBefore(div, doc.firstElementChild || doc.children[0]);\n            form = div.firstChild;\n            checkbox = form.childNodes[0];\n            submit = form.childNodes[2];\n            anchor = form.getElementsByTagName('a')[0];\n            textarea = form.getElementsByTagName('textarea')[0];\n            inputter = form.childNodes[3];\n            one = form.childNodes[4];\n            form.onsubmit = function (ev) {\n                if (ev.preventDefault) {\n                    ev.preventDefault();\n                }\n                syn.support.keypressSubmits = true;\n                ev.returnValue = false;\n                return false;\n            };\n            syn.__tryFocus(inputter);\n            syn.trigger(inputter, 'keypress', '\\r');\n            syn.trigger(inputter, 'keypress', 'a');\n            syn.support.keyCharacters = inputter.value === 'a';\n            inputter.value = 'a';\n            syn.trigger(inputter, 'keypress', '\\b');\n            syn.support.backspaceWorks = inputter.value === '';\n            inputter.onchange = function () {\n                syn.support.focusChanges = true;\n            };\n            syn.__tryFocus(inputter);\n            syn.trigger(inputter, 'keypress', 'a');\n            syn.__tryFocus(form.childNodes[5]);\n            syn.trigger(inputter, 'keypress', 'b');\n            syn.support.keysOnNotFocused = inputter.value === 'ab';\n            syn.bind(anchor, 'click', function (ev) {\n                if (ev.preventDefault) {\n                    ev.preventDefault();\n                }\n                syn.support.keypressOnAnchorClicks = true;\n                ev.returnValue = false;\n                return false;\n            });\n            syn.trigger(anchor, 'keypress', '\\r');\n            syn.support.textareaCarriage = textarea.value.length === 4;\n            syn.support.oninput = 'oninput' in one;\n            doc.removeChild(div);\n            syn.support.ready++;\n        }());\n    } else {\n        syn.helpers.extend(syn.support, syn.config.support);\n    }\n    return syn;\n});\n/*syn/drag/drag*/\ndefine('syn/drag/drag', ['syn/synthetic'], function (syn) {\n    (function dragSupport() {\n        if (!document.body) {\n            syn.schedule(dragSupport, 1);\n            return;\n        }\n        var div = document.createElement('div');\n        document.body.appendChild(div);\n        syn.helpers.extend(div.style, {\n            width: '100px',\n            height: '10000px',\n            backgroundColor: 'blue',\n            position: 'absolute',\n            top: '10px',\n            left: '0px',\n            zIndex: 19999\n        });\n        document.body.scrollTop = 11;\n        if (!document.elementFromPoint) {\n            return;\n        }\n        var el = document.elementFromPoint(3, 1);\n        if (el === div) {\n            syn.support.elementFromClient = true;\n        } else {\n            syn.support.elementFromPage = true;\n        }\n        document.body.removeChild(div);\n        document.body.scrollTop = 0;\n    }());\n    var elementFromPoint = function (point, element) {\n            var clientX = point.clientX, clientY = point.clientY, win = syn.helpers.getWindow(element), el;\n            if (syn.support.elementFromPage) {\n                var off = syn.helpers.scrollOffset(win);\n                clientX = clientX + off.left;\n                clientY = clientY + off.top;\n            }\n            el = win.document.elementFromPoint ? win.document.elementFromPoint(clientX, clientY) : element;\n            if (el === win.document.documentElement && (point.clientY < 0 || point.clientX < 0)) {\n                return element;\n            } else {\n                return el;\n            }\n        }, createEventAtPoint = function (event, point, element) {\n            var el = elementFromPoint(point, element);\n            syn.trigger(el || element, event, point);\n            return el;\n        }, mouseMove = function (point, element, last) {\n            var el = elementFromPoint(point, element);\n            if (last !== el && el && last) {\n                var options = syn.helpers.extend({}, point);\n                options.relatedTarget = el;\n                syn.trigger(last, 'mouseout', options);\n                options.relatedTarget = last;\n                syn.trigger(el, 'mouseover', options);\n            }\n            syn.trigger(el || element, 'mousemove', point);\n            return el;\n        }, startMove = function (start, end, duration, element, callback) {\n            var startTime = new Date(), distX = end.clientX - start.clientX, distY = end.clientY - start.clientY, win = syn.helpers.getWindow(element), current = elementFromPoint(start, element), cursor = win.document.createElement('div'), calls = 0, move;\n            move = function onmove() {\n                var now = new Date(), scrollOffset = syn.helpers.scrollOffset(win), fraction = (calls === 0 ? 0 : now - startTime) / duration, options = {\n                        clientX: distX * fraction + start.clientX,\n                        clientY: distY * fraction + start.clientY\n                    };\n                calls++;\n                if (fraction < 1) {\n                    syn.helpers.extend(cursor.style, {\n                        left: options.clientX + scrollOffset.left + 2 + 'px',\n                        top: options.clientY + scrollOffset.top + 2 + 'px'\n                    });\n                    current = mouseMove(options, element, current);\n                    syn.schedule(onmove, 15);\n                } else {\n                    current = mouseMove(end, element, current);\n                    win.document.body.removeChild(cursor);\n                    callback();\n                }\n            };\n            syn.helpers.extend(cursor.style, {\n                height: '5px',\n                width: '5px',\n                backgroundColor: 'red',\n                position: 'absolute',\n                zIndex: 19999,\n                fontSize: '1px'\n            });\n            win.document.body.appendChild(cursor);\n            move();\n        }, startDrag = function (start, end, duration, element, callback) {\n            createEventAtPoint('mousedown', start, element);\n            startMove(start, end, duration, element, function () {\n                createEventAtPoint('mouseup', end, element);\n                callback();\n            });\n        }, center = function (el) {\n            var j = syn.jquery()(el), o = j.offset();\n            return {\n                pageX: o.left + j.outerWidth() / 2,\n                pageY: o.top + j.outerHeight() / 2\n            };\n        }, convertOption = function (option, win, from) {\n            var page = /(\\d+)[x ](\\d+)/, client = /(\\d+)X(\\d+)/, relative = /([+-]\\d+)[xX ]([+-]\\d+)/, parts;\n            if (typeof option === 'string' && relative.test(option) && from) {\n                var cent = center(from);\n                parts = option.match(relative);\n                option = {\n                    pageX: cent.pageX + parseInt(parts[1]),\n                    pageY: cent.pageY + parseInt(parts[2])\n                };\n            }\n            if (typeof option === 'string' && page.test(option)) {\n                parts = option.match(page);\n                option = {\n                    pageX: parseInt(parts[1]),\n                    pageY: parseInt(parts[2])\n                };\n            }\n            if (typeof option === 'string' && client.test(option)) {\n                parts = option.match(client);\n                option = {\n                    clientX: parseInt(parts[1]),\n                    clientY: parseInt(parts[2])\n                };\n            }\n            if (typeof option === 'string') {\n                option = syn.jquery()(option, win.document)[0];\n            }\n            if (option.nodeName) {\n                option = center(option);\n            }\n            if (option.pageX) {\n                var off = syn.helpers.scrollOffset(win);\n                option = {\n                    clientX: option.pageX - off.left,\n                    clientY: option.pageY - off.top\n                };\n            }\n            return option;\n        }, adjust = function (from, to, win) {\n            if (from.clientY < 0) {\n                var off = syn.helpers.scrollOffset(win);\n                var top = off.top + from.clientY - 100, diff = top - off.top;\n                if (top > 0) {\n                } else {\n                    top = 0;\n                    diff = -off.top;\n                }\n                from.clientY = from.clientY - diff;\n                to.clientY = to.clientY - diff;\n                syn.helpers.scrollOffset(win, {\n                    top: top,\n                    left: off.left\n                });\n            }\n        };\n    syn.helpers.extend(syn.init.prototype, {\n        _move: function (from, options, callback) {\n            var win = syn.helpers.getWindow(from), fro = convertOption(options.from || from, win, from), to = convertOption(options.to || options, win, from);\n            if (options.adjust !== false) {\n                adjust(fro, to, win);\n            }\n            startMove(fro, to, options.duration || 500, from, callback);\n        },\n        _drag: function (from, options, callback) {\n            var win = syn.helpers.getWindow(from), fro = convertOption(options.from || from, win, from), to = convertOption(options.to || options, win, from);\n            if (options.adjust !== false) {\n                adjust(fro, to, win);\n            }\n            startDrag(fro, to, options.duration || 500, from, callback);\n        }\n    });\n    return syn;\n});\n/*syn/syn*/\ndefine('syn/syn', [\n    'syn/synthetic',\n    'syn/mouse.support',\n    'syn/browsers',\n    'syn/key.support',\n    'syn/drag/drag'\n], function (syn) {\n    window.syn = syn;\n    return syn;\n});"
  },
  {
    "path": "test/xss.js",
    "content": "(function() {\n\n\twindow.setup_xss_test = function(html, options, done) {\n\t\twindow.xss = function() {\n\t\t\twindow.clearTimeout(timeout);\n\t\t\tcomplete(new Error('Exploit executed'));\n\t\t};\n\n\t\tvar test = setup_test(html, options);\n\t\tvar complete = function(err) {\n\t\t\twindow.xss = function() {};\n\t\t\tdone(err);\n\t\t};\n\t\tvar timeout = window.setTimeout(complete, 75);\n\t\treturn test;\n\t};\n\n\tdescribe('XSS', function() {\n\n\t\tdescribe('Raw HTML in original input value', function() {\n\t\t\tit('should not trigger exploit', function(done) {\n\t\t\t\tsetup_xss_test('<input type=\"text\" value=\"&lt;img src=&quot;x&quot; onerror=&quot;xss()&quot;&gt;\">', {}, done);\n\t\t\t});\n\t\t});\n\n\t\tdescribe('Raw HTML in optgroup label', function() {\n\t\t\tit('should not trigger exploit', function(done) {\n\t\t\t\tvar test = setup_xss_test('<select><optgroup label=\"&lt;img src=&quot;x&quot; onerror=&quot;xss()&quot;&gt;\"><option>Test</option></optgroup></select>', {}, done);\n\t\t\t\ttest.selectize.refreshOptions();\n\t\t\t\ttest.selectize.open();\n\t\t\t});\n\t\t});\n\n\t\tdescribe('Raw HTML in option label should not trigger exploit', function() {\n\t\t\tit('should not trigger exploit', function(done) {\n\t\t\t\tsetup_xss_test('<input type=\"text\" value=\"\">', {\n\t\t\t\t\toptions: [\n\t\t\t\t\t\t{value: '1', label: '<img src=\"x\" onerror=\"xss()\">'}\n\t\t\t\t\t],\n\t\t\t\t\titems: ['1'],\n\t\t\t\t\tlabelField: 'label',\n\t\t\t\t\tvalueField: 'value'\n\t\t\t\t}, done);\n\t\t\t});\n\t\t});\n\n\t\tdescribe('Raw HTML in option value should not trigger exploit', function() {\n\t\t\tit('should not trigger exploit', function(done) {\n\t\t\t\tsetup_xss_test('<input type=\"text\" value=\"\">', {\n\t\t\t\t\toptions: [\n\t\t\t\t\t\t{value: '<img src=\"x\" onerror=\"xss()\">', label: '1'}\n\t\t\t\t\t],\n\t\t\t\t\titems: ['<img src=\"x\" onerror=\"xss()\">'],\n\t\t\t\t\tlabelField: 'label',\n\t\t\t\t\tvalueField: 'value'\n\t\t\t\t}, done);\n\t\t\t});\n\t\t});\n\t});\n\n})();"
  }
]