(Prism.languages.markup = { comment: { pattern: //, greedy: !0 }, prolog: { pattern: /<\?[\s\S]+?\?>/, greedy: !0 }, doctype: { pattern: /"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i, greedy: !0, inside: { 'internal-subset': { pattern: /(^[^\[]*\[)[\s\S]+(?=\]>$)/, lookbehind: !0, greedy: !0, inside: null, }, string: { pattern: /"[^"]*"|'[^']*'/, greedy: !0 }, punctuation: /^$|[[\]]/, 'doctype-tag': /^DOCTYPE/i, name: /[^\s<>'"]+/, }, }, cdata: { pattern: //i, greedy: !0 }, tag: { pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/, greedy: !0, inside: { tag: { pattern: /^<\/?[^\s>\/]+/, inside: { punctuation: /^<\/?/, namespace: /^[^\s>\/:]+:/ }, }, 'special-attr': [], 'attr-value': { pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/, inside: { punctuation: [{ pattern: /^=/, alias: 'attr-equals' }, /"|'/], }, }, punctuation: /\/?>/, 'attr-name': { pattern: /[^\s>\/]+/, inside: { namespace: /^[^\s>\/:]+:/ }, }, }, }, entity: [ { pattern: /&[\da-z]{1,8};/i, alias: 'named-entity' }, /?[\da-f]{1,8};/i, ], }), (Prism.languages.markup.tag.inside['attr-value'].inside.entity = Prism.languages.markup.entity), (Prism.languages.markup.doctype.inside['internal-subset'].inside = Prism.languages.markup), Prism.hooks.add('wrap', function (a) { 'entity' === a.type && (a.attributes.title = a.content.replace(/&/, '&')); }), Object.defineProperty(Prism.languages.markup.tag, 'addInlined', { value: function (a, e) { var s = {}; (s['language-' + e] = { pattern: /(^$)/i, lookbehind: !0, inside: Prism.languages[e], }), (s.cdata = /^$/i); var t = { 'included-cdata': { pattern: //i, inside: s }, }; t['language-' + e] = { pattern: /[\s\S]+/, inside: Prism.languages[e] }; var n = {}; (n[a] = { pattern: RegExp( '(<__[^>]*>)(?:))*\\]\\]>|(?!)'.replace( /__/g, function () { return a; } ), 'i' ), lookbehind: !0, greedy: !0, inside: t, }), Prism.languages.insertBefore('markup', 'cdata', n); }, }), Object.defineProperty(Prism.languages.markup.tag, 'addAttribute', { value: function (a, e) { Prism.languages.markup.tag.inside['special-attr'].push({ pattern: RegExp( '(^|["\'\\s])(?:' + a + ')\\s*=\\s*(?:"[^"]*"|\'[^\']*\'|[^\\s\'">=]+(?=[\\s>]))', 'i' ), lookbehind: !0, inside: { 'attr-name': /^[^\s=]+/, 'attr-value': { pattern: /=[\s\S]+/, inside: { value: { pattern: /(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/, lookbehind: !0, alias: [e, 'language-' + e], inside: Prism.languages[e], }, punctuation: [{ pattern: /^=/, alias: 'attr-equals' }, /"|'/], }, }, }, }); }, }), (Prism.languages.html = Prism.languages.markup), (Prism.languages.mathml = Prism.languages.markup), (Prism.languages.svg = Prism.languages.markup), (Prism.languages.xml = Prism.languages.extend('markup', {})), (Prism.languages.ssml = Prism.languages.xml), (Prism.languages.atom = Prism.languages.xml), (Prism.languages.rss = Prism.languages.xml); a> 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
@use "../variables" as var;
@use "sass:map";
/// Media query: media type
/// @param {String} $type - Media type: all, screen, print, retina.
/// @example scss - `@media only screen` equivalent is:
/// @include media("screen");
@mixin media($type) {
@if $type == "retina" {
$type: "(-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi)";
} @else if $type == "screen" or $type == "print" {
$type: "only #{$type}";
}
@media #{$type} {
@content;
}
}
/// Media query: min-width / max-width or min-height / max-height
/// @param {String} $from - min size breakpoint.
/// @param {String} $until - max size breakpoint.
/// @param {String} $kind - width or height. Default: width.
/// @example scss - `@media (min-width: "md")` equivalent is:
/// @include dimensions("md");
@mixin dimensions($from: null, $until: null, $kind: "width") {
$query: "";
@if $from {
@if type-of($from) == "string" {
$size: map.get(var.$breakpoints, $from);
@if $kind == "width" {
$query: "(min-width: #{$size})";
} @else if $kind == "height" {
$query: "(min-height: #{$size})";
} @else {
@error "`$kind` must be either width or height.";
}
} @else {
@error "`$from` must be a string.";
}
}
@if $from and $until {
$query: $query + " and ";
}
@if $until {
@if type-of($until) == "string" {
$size: map.get(var.$breakpoints, $until);
$size: calc(#{$size} - 1px);
@if $kind == "width" {
$query: $query + "(max-width: #{$size})";
} @else if $kind == "height" {
$query: $query + "(max-height: #{$size})";
} @else {
@error "`$kind` must be either width or height.";
}
} @else {
@error "`$until` must be a string.";
}
}
@media #{$query} {
@content;
}
}
/// Media query: prefers-reduced-motion
/// @param {String} $value - Media query value: `no-preference` or `reduce`.
/// @example scss - @media (prefers-reduced-motion: "reduce") equivalent is:
/// @include motion("reduce");
@mixin motion($value) {
@if $value == "no-preference" or $value == "reduce" {
@media (prefers-reduced-motion: #{$value}) {
@content;
}
} @else {
@error "Allowed values are `no-preference` and `reduce`.";
}
}
/// Media query: any-pointer
/// @param {String} $value - Media query value: `fine`, `coarse` or `none`.
/// @example scss - @media (any-pointer: "fine") equivalent is:
/// @include pointer("fine");
@mixin pointer($value) {
@if $value == "fine" or $value == "coarse" or $value == "none" {
@media (any-pointer: #{$value}) {
@content;
}
} @else {
@error "Allowed values are `fine`, `coarse` and `none`.";
}
}