{
  "version": 3,
  "sources": ["libs/ng/aui/src/lib/brand-loader/brand-loader.component.scss"],
  "sourcesContent": [":host {\n  // Ink + timing are overridable via CSS custom properties; ink defaults to the theme's on-surface\n  // colour so the loader reads correctly in light and dark.\n  --brand-loader-ink: var(--color-on-surface, #1b282f);\n  --brand-loader-duration: 3.6s; // ~3.1s active (full -> erase -> redraw) + ~0.5s hold at loop end\n\n  // Default: shrink to the mark and sit inline (compact box) so inline / caption-sibling usages\n  // don't blockify or distort a flex-column caption. Container-filling + centering is opt-in via\n  // `[fill]` (the common \"loading state fills the area\" case) — see the --fill modifier below.\n  display: inline-flex;\n  line-height: 0;\n}\n\n// `[fill]` — host fills its container and centres the mark on both axes, so the consumer's loading\n// wrapper doesn't need its own centering rule.\n:host(.aui-brand-loader--fill) {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: 100%;\n  height: 100%;\n}\n\n.aui-brand-loader {\n  display: block;\n  overflow: visible;\n}\n\n// The exact filled mark, revealed through the pen-path mask.\n.caret {\n  fill: var(--brand-loader-ink);\n}\n\n// Hidden centerline that wipes the fill open, then retraces to erase it. stroke is a MASK value\n// (luminance), not a themed colour, so it stays #fff.\n.reveal {\n  fill: none;\n  stroke: #fff;\n  stroke-width: 320;\n  stroke-linecap: round;\n  stroke-linejoin: round;\n  stroke-dasharray: 100 100;\n  // Start fully drawn (offset 0). The cycle runs 0 -> -100 (erase) -> -200 (redraw); -200 is\n  // congruent to 0 on the 100/100 dash, so the loop begins and ends on the complete mark.\n  stroke-dashoffset: 0;\n  animation: aui-brand-draw-erase var(--brand-loader-duration) ease-in-out infinite;\n}\n\n.dot {\n  fill: var(--brand-loader-ink);\n  transform-box: fill-box;\n  transform-origin: center;\n  // Start shown — the loader opens on the complete \"A.\" then erases.\n  transform: scale(1);\n  opacity: 1;\n  animation: aui-brand-dot var(--brand-loader-duration) ease-in-out infinite;\n}\n\n.ring {\n  fill: none;\n  stroke: var(--brand-loader-ink);\n  stroke-width: 20;\n  transform-box: fill-box;\n  transform-origin: center;\n  transform: scale(0.4);\n  opacity: 0;\n  animation: aui-brand-ring var(--brand-loader-duration) ease-out infinite;\n}\n\n// Percentages are of the cycle: last ~16% (~0.5s of 3.1s) is an idle hold before the loop repeats.\n@keyframes aui-brand-draw-erase {\n  0%,\n  8% {\n    stroke-dashoffset: 0; // fully drawn (start) — brief hold\n  }\n  36%,\n  58% {\n    stroke-dashoffset: -100; // erased; held through the dot fade + the 0.5s blank pause\n  }\n  86%,\n  100% {\n    stroke-dashoffset: -200; // redrawn (congruent to 0) — brief hold, then seamless loop\n  }\n}\n\n@keyframes aui-brand-dot {\n  0%,\n  36% {\n    transform: scale(1);\n    opacity: 1; // shown through the entire stroke erase (erase completes at 36%)\n  }\n  44%,\n  86% {\n    transform: scale(1);\n    opacity: 0; // fades after the erase, then the blank pause holds, stays gone through the redraw\n  }\n  91% {\n    transform: scale(1.25); // overshoot — the nib presses the period down once the stroke is redrawn\n    opacity: 1;\n  }\n  94%,\n  100% {\n    transform: scale(1);\n    opacity: 1; // settle + hold, seamless into the next cycle's start\n  }\n}\n\n@keyframes aui-brand-ring {\n  0%,\n  86% {\n    transform: scale(0.4);\n    opacity: 0;\n  }\n  91% {\n    opacity: 0.5;\n  }\n  100% {\n    transform: scale(2.4);\n    opacity: 0;\n  }\n}\n\n// Reduced motion: show the finished mark, no looping draw.\n@media (prefers-reduced-motion: reduce) {\n  .reveal {\n    stroke-dashoffset: 0;\n    animation: none;\n  }\n  .dot {\n    transform: scale(1);\n    opacity: 1;\n    animation: none;\n  }\n  .ring {\n    display: none;\n  }\n}\n"],
  "mappings": "AAAA,MAGE,oBAAA,IAAA,kBAAA,EAAA,SACA,yBAAA,KAKA,QAAA,YACA,YAAA,EAKF,MAAA,CAAA,wBACE,QAAA,KACA,YAAA,OACA,gBAAA,OACA,MAAA,KACA,OAAA,KAGF,CAAA,iBACE,QAAA,MACA,SAAA,QAIF,CAAA,MACE,KAAA,IAAA,oBAKF,CAAA,OACE,KAAA,KACA,OAAA,KACA,aAAA,IACA,eAAA,MACA,gBAAA,MACA,iBAAA,IAAA,IAGA,kBAAA,EACA,UAAA,qBAAA,IAAA,yBAAA,YAAA,SAGF,CAAA,IACE,KAAA,IAAA,oBACA,cAAA,SACA,iBAAA,OAEA,UAAA,MAAA,GACA,QAAA,EACA,UAAA,cAAA,IAAA,yBAAA,YAAA,SAGF,CAAA,KACE,KAAA,KACA,OAAA,IAAA,oBACA,aAAA,GACA,cAAA,SACA,iBAAA,OACA,UAAA,MAAA,IACA,QAAA,EACA,UAAA,eAAA,IAAA,yBAAA,SAAA,SAIF,WAzBE,qBA0BA,MAEE,kBAAA,EAEF,QAEE,kBAAA,KAEF,OAEE,kBAAA,MAIJ,WA9BE,cA+BA,OAEE,UAAA,MAAA,GACA,QAAA,EAEF,QAEE,UAAA,MAAA,GACA,QAAA,EAEF,IACE,UAAA,MAAA,MACA,QAAA,EAEF,OAEE,UAAA,MAAA,GACA,QAAA,GAIJ,WAzCE,eA0CA,OAEE,UAAA,MAAA,IACA,QAAA,EAEF,IACE,QAAA,GAEF,GACE,UAAA,MAAA,KACA,QAAA,GAKJ,OAAA,uBAAA,QACE,CAzFF,OA0FI,kBAAA,EACA,UAAA,KAEF,CAhFF,IAiFI,UAAA,MAAA,GACA,QAAA,EACA,UAAA,KAEF,CA3EF,KA4EI,QAAA",
  "names": []
}
