@pnx-mixtape/mxds 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/dist/build/accordion.css +108 -0
  2. package/dist/build/accordion.entry.js +139 -0
  3. package/dist/build/accordion.entry.js.map +1 -0
  4. package/dist/build/base.css +999 -0
  5. package/dist/build/breadcrumb.css +47 -0
  6. package/dist/build/button.css +132 -0
  7. package/dist/build/callout.css +11 -0
  8. package/dist/build/card.css +136 -0
  9. package/dist/build/chunks/disclosure-widget-CQLPJ8Ta.js +124 -0
  10. package/dist/build/chunks/disclosure-widget-CQLPJ8Ta.js.map +1 -0
  11. package/dist/build/chunks/keyboard-C73DHu0c.js +101 -0
  12. package/dist/build/chunks/keyboard-C73DHu0c.js.map +1 -0
  13. package/dist/build/chunks/polyfills-CJ5uTmUJ.js +749 -0
  14. package/dist/build/chunks/polyfills-CJ5uTmUJ.js.map +1 -0
  15. package/dist/build/chunks/popover-wbPSyFRj.js +654 -0
  16. package/dist/build/chunks/popover-wbPSyFRj.js.map +1 -0
  17. package/dist/build/chunks/utilities-B4YZb689.js +243 -0
  18. package/dist/build/chunks/utilities-B4YZb689.js.map +1 -0
  19. package/dist/build/constants.css +120 -0
  20. package/dist/build/container-grid.css +208 -0
  21. package/dist/build/content-block.css +23 -0
  22. package/dist/build/dialog.css +98 -0
  23. package/dist/build/dialog.entry.js +113 -0
  24. package/dist/build/dialog.entry.js.map +1 -0
  25. package/dist/build/drop-menu.css +78 -0
  26. package/dist/build/drop-menu.entry.js +129 -0
  27. package/dist/build/drop-menu.entry.js.map +1 -0
  28. package/dist/build/drupal.css +74 -0
  29. package/dist/build/footer-menu.css +32 -0
  30. package/dist/build/footer.css +61 -0
  31. package/dist/build/form.css +589 -0
  32. package/dist/build/global-alert.css +60 -0
  33. package/dist/build/global-alert.entry.js +68 -0
  34. package/dist/build/global-alert.entry.js.map +1 -0
  35. package/dist/build/grid.css +200 -0
  36. package/dist/build/header.css +131 -0
  37. package/dist/build/header.entry.js +98 -0
  38. package/dist/build/header.entry.js.map +1 -0
  39. package/dist/build/hero-banner.css +62 -0
  40. package/dist/build/icon.css +399 -0
  41. package/dist/build/in-page-alert.css +94 -0
  42. package/dist/build/in-page-navigation.css +17 -0
  43. package/dist/build/in-page-navigation.entry.js +89 -0
  44. package/dist/build/in-page-navigation.entry.js.map +1 -0
  45. package/dist/build/link-list.css +72 -0
  46. package/dist/build/masthead.css +39 -0
  47. package/dist/build/nav-list.css +26 -0
  48. package/dist/build/navigation.css +371 -0
  49. package/dist/build/navigation.entry.js +123 -0
  50. package/dist/build/navigation.entry.js.map +1 -0
  51. package/dist/build/page.css +184 -0
  52. package/dist/build/pagination.css +123 -0
  53. package/dist/build/section.css +163 -0
  54. package/dist/build/sidebar.css +105 -0
  55. package/dist/build/sticky.css +47 -0
  56. package/dist/build/sticky.entry.js +60 -0
  57. package/dist/build/sticky.entry.js.map +1 -0
  58. package/dist/build/tabs.css +106 -0
  59. package/dist/build/tabs.entry.js +161 -0
  60. package/dist/build/tabs.entry.js.map +1 -0
  61. package/dist/build/tag.css +67 -0
  62. package/dist/build/tiles.css +61 -0
  63. package/dist/build/utilities.css +175 -0
  64. package/package.json +3 -3
  65. package/src/Atom/Background/__snapshots__/Backgrounds.stories.ts.snap +12 -12
  66. package/src/Atom/Background/_background.css +8 -8
  67. package/src/Atom/Background/backgrounds.twig +4 -4
  68. package/src/Atom/Button/Button.tsx +8 -8
  69. package/src/Atom/Button/__snapshots__/Button.stories.ts.snap +6 -6
  70. package/src/Atom/Button/_buttons-styles.css +4 -4
  71. package/src/Atom/Button/_buttons.css +5 -5
  72. package/src/Atom/Button/button.twig +1 -1
  73. package/src/Atom/Heading/Heading.stories.ts +5 -2
  74. package/src/Atom/Heading/_headings.css +20 -20
  75. package/src/Atom/Heading/heading.twig +1 -1
  76. package/src/Atom/Icon/Icon.mdx +1 -1
  77. package/src/Atom/Icon/Icon.tsx +5 -5
  78. package/src/Atom/Icon/__snapshots__/Icon.stories.ts.snap +3 -3
  79. package/src/Atom/Icon/_icon.css +17 -17
  80. package/src/Atom/Icon/_mixin-icon.css +1 -1
  81. package/src/Atom/Icon/icon.twig +1 -1
  82. package/src/Atom/Link/Link.tsx +2 -2
  83. package/src/Atom/Link/__snapshots__/Link.stories.ts.snap +8 -8
  84. package/src/Atom/Link/_links.css +9 -9
  85. package/src/Atom/Link/link.twig +1 -1
  86. package/src/Atom/Media/Media.tsx +1 -1
  87. package/src/Atom/Media/__snapshots__/Media.stories.ts.snap +3 -3
  88. package/src/Atom/Media/_media.css +12 -4
  89. package/src/Atom/Media/media.twig +1 -1
  90. package/src/Atom/NavList/__snapshots__/NavList.stories.ts.snap +2 -2
  91. package/src/Atom/NavList/nav-list.css +3 -9
  92. package/src/Atom/NavList/nav-list.twig +2 -2
  93. package/src/Atom/Spacing/__snapshots__/Spacing.stories.ts.snap +1 -1
  94. package/src/Atom/{_mixins.css → Spacing/_mixins.css} +5 -5
  95. package/src/Atom/Spacing/_spacing.css +6 -6
  96. package/src/Atom/Spacing/spacing.twig +1 -1
  97. package/src/Atom/Table/__snapshots__/Table.stories.ts.snap +3 -3
  98. package/src/Atom/Table/__snapshots__/TableResponsive.stories.ts.snap +2 -2
  99. package/src/Atom/Table/_table.css +4 -4
  100. package/src/Atom/Table/table-responsive.twig +2 -2
  101. package/src/Atom/Table/table.twig +1 -1
  102. package/src/Atom/Text/__snapshots__/TextSizes.stories.ts.snap +16 -16
  103. package/src/Atom/Text/_text-align.css +3 -3
  104. package/src/Atom/Text/_text-sizes.css +29 -29
  105. package/src/Atom/Text/text-alignment.twig +3 -3
  106. package/src/Atom/Text/text-styles-example.twig +16 -16
  107. package/src/Atom/Video/Video.tsx +1 -1
  108. package/src/Atom/Video/__snapshots__/Video.stories.ts.snap +1 -1
  109. package/src/Atom/Video/_video.css +2 -2
  110. package/src/Atom/Video/video.twig +1 -4
  111. package/src/Atom/_animated.css +5 -5
  112. package/src/Atom/_flow.css +5 -9
  113. package/src/Atom/_print.css +1 -12
  114. package/src/Component/Accordion/Accordion.tsx +11 -11
  115. package/src/Component/Accordion/Elements/AccordionGroup.ts +2 -2
  116. package/src/Component/Accordion/__snapshots__/Accordion.stories.ts.snap +23 -23
  117. package/src/Component/Accordion/accordion-item.twig +4 -4
  118. package/src/Component/Accordion/accordion.css +15 -15
  119. package/src/Component/Accordion/accordion.twig +4 -4
  120. package/src/Component/Callout/__snapshots__/Callout.stories.ts.snap +1 -1
  121. package/src/Component/Callout/callout.css +1 -1
  122. package/src/Component/Callout/callout.twig +2 -2
  123. package/src/Component/Card/Card.tsx +7 -7
  124. package/src/Component/Card/__snapshots__/Card.stories.ts.snap +43 -43
  125. package/src/Component/Card/card-grid.twig +2 -2
  126. package/src/Component/Card/card.css +14 -13
  127. package/src/Component/Card/card.twig +7 -7
  128. package/src/Component/ContentBlock/__snapshots__/ContentBlock.stories.ts.snap +1 -1
  129. package/src/Component/GlobalAlert/Elements/ClosableAlert.ts +2 -2
  130. package/src/Component/GlobalAlert/GlobalAlert.tsx +5 -5
  131. package/src/Component/GlobalAlert/__snapshots__/GlobalAlert.stories.ts.snap +9 -9
  132. package/src/Component/GlobalAlert/global-alert.css +4 -4
  133. package/src/Component/GlobalAlert/global-alert.twig +6 -6
  134. package/src/Component/HeroBanner/HeroBanner.tsx +4 -4
  135. package/src/Component/HeroBanner/__snapshots__/HeroBanner.stories.ts.snap +15 -15
  136. package/src/Component/HeroBanner/hero-banner.css +6 -6
  137. package/src/Component/HeroBanner/hero-banner.twig +7 -7
  138. package/src/Component/InPageAlert/__snapshots__/InPageAlert.stories.ts.snap +1 -1
  139. package/src/Component/InPageAlert/in-page-alert.css +5 -5
  140. package/src/Component/InPageAlert/in-page-alert.twig +1 -1
  141. package/src/Component/InPageNavigation/__snapshots__/InPageNavigation.stories.ts.snap +1 -1
  142. package/src/Component/LinkList/LinkList.tsx +4 -4
  143. package/src/Component/LinkList/__snapshots__/LinkList.stories.ts.snap +4 -4
  144. package/src/Component/LinkList/link-list.css +8 -8
  145. package/src/Component/LinkList/link-list.twig +3 -3
  146. package/src/Component/Navigation/__snapshots__/Navigation.stories.ts.snap +1 -1
  147. package/src/Component/Navigation/_navigation.css +5 -5
  148. package/src/Component/Navigation/navigation.twig +1 -1
  149. package/src/Component/Sticky/__snapshots__/Sticky.stories.ts.snap +1 -1
  150. package/src/Component/Tabs/__snapshots__/Tabs.stories.ts.snap +15 -15
  151. package/src/Component/Tag/Tag.tsx +1 -1
  152. package/src/Component/Tag/__snapshots__/Tag.stories.ts.snap +9 -9
  153. package/src/Component/Tag/tag.css +2 -2
  154. package/src/Component/Tag/tags.twig +2 -2
  155. package/src/Layout/Grid/Grid.tsx +4 -4
  156. package/src/Layout/Grid/__snapshots__/Grid.stories.ts.snap +4 -4
  157. package/src/Layout/Grid/container-grid.css +1 -0
  158. package/src/Layout/Grid/grid-item.twig +2 -2
  159. package/src/Layout/Grid/grid.css +29 -29
  160. package/src/Layout/Grid/grid.twig +1 -1
  161. package/src/Layout/Masthead/__snapshots__/Masthead.stories.ts.snap +1 -1
  162. package/src/Layout/Section/Section.tsx +5 -5
  163. package/src/Layout/Section/SectionGrid.tsx +4 -4
  164. package/src/Layout/Section/__snapshots__/Section.stories.ts.snap +5 -5
  165. package/src/Layout/Section/section.css +29 -26
  166. package/src/Layout/Section/section.twig +4 -4
  167. package/src/enums.ts +21 -21
  168. package/src/Atom/_flow-legacy.css +0 -48
@@ -0,0 +1,123 @@
1
+ import { m as makeAnchor } from "./chunks/utilities-B4YZb689.js";
2
+ import { K as Keyboard } from "./chunks/keyboard-C73DHu0c.js";
3
+ import { D as DisclosureWidget } from "./chunks/disclosure-widget-CQLPJ8Ta.js";
4
+ class Navigation extends HTMLElement {
5
+ constructor() {
6
+ super();
7
+ this.handleDisclosure = ({ detail }) => {
8
+ const { isOpen, id } = detail;
9
+ const { item } = this.subNavs.get(id);
10
+ item.classList.toggle("nav--open");
11
+ if (isOpen) {
12
+ this.keyboard.attachPopup(id, this.handleCloseAny);
13
+ } else {
14
+ this.keyboard.detachPopup(id);
15
+ }
16
+ };
17
+ this.handleCloseAny = () => {
18
+ this.subNavs.forEach(({ widget }) => {
19
+ if (!widget) return;
20
+ if (widget.isOpen) widget.handleToggle();
21
+ });
22
+ };
23
+ this.handleFlyout = (event) => {
24
+ const target = event.target;
25
+ const parent = target.closest("li");
26
+ if (!parent) return;
27
+ const subnav = parent.querySelector(":scope > ul");
28
+ if (!subnav) return;
29
+ this.subNavs.forEach(({ widget, list }) => {
30
+ if (!widget) return;
31
+ if (widget.isOpen) widget.handleToggle();
32
+ if (list.id === subnav.id) widget.handleToggle();
33
+ });
34
+ };
35
+ this.handleBreakpoint = ({
36
+ matches
37
+ }) => {
38
+ if (matches) {
39
+ this.addEventListener("mouseover", this.handleFlyout);
40
+ this.addEventListener("mouseleave", this.handleCloseAny);
41
+ if (this.edgeCheck) this.handleEdgeCheck();
42
+ } else {
43
+ this.removeEventListener("mouseover", this.handleFlyout);
44
+ this.removeEventListener("mouseleave", this.handleCloseAny);
45
+ }
46
+ };
47
+ this.internals_ = this.attachInternals();
48
+ this.controller = new AbortController();
49
+ this.flyout = this.hasAttribute("flyout");
50
+ }
51
+ connectedCallback() {
52
+ const { signal } = this.controller;
53
+ this.keyboard = new Keyboard();
54
+ this.keyboard.attachEventListeners(signal);
55
+ this.addEventListener("focusin", () => {
56
+ this.keyboard.attachMenu(this, this.links);
57
+ });
58
+ this.addEventListener("focusout", () => {
59
+ this.keyboard.detachMenu();
60
+ });
61
+ if (!this.lists.length) return;
62
+ this.subNavs = /* @__PURE__ */ new Map();
63
+ this.lists.forEach((list, index) => {
64
+ const item = list.closest("li");
65
+ const link = item.querySelector(":scope > a");
66
+ const id = makeAnchor(`subnav-${index}-${link.textContent}`, 30);
67
+ const trigger = item.querySelector(
68
+ ":scope > button.nav__toggle"
69
+ );
70
+ if (item && link && trigger) {
71
+ const labelId = `list-label-${id}`;
72
+ link.setAttribute("id", labelId);
73
+ list.setAttribute("id", id);
74
+ list.setAttribute("aria-labelledby", labelId);
75
+ const widget = new DisclosureWidget(trigger, list);
76
+ widget.init();
77
+ this.subNavs.set(id, { item, trigger, list, link, widget });
78
+ }
79
+ });
80
+ this.addEventListener("disclosure-toggle", this.handleDisclosure);
81
+ if (!this.flyout) return;
82
+ this.edgeCheck = this.hasAttribute("edgeCheck");
83
+ this.mq = this.getAttribute("mq") || "(min-width: 720px)";
84
+ this.handleBreakpoint(this.breakpoint);
85
+ this.breakpoint.addEventListener("change", this.handleBreakpoint, {
86
+ signal
87
+ });
88
+ }
89
+ disconnectedCallback() {
90
+ this.controller.abort();
91
+ this.subNavs.forEach((subNav) => subNav.widget.detach());
92
+ }
93
+ handleEdgeCheck() {
94
+ const windowInnerWidth = window.innerWidth;
95
+ const edgeCheck = new IntersectionObserver(
96
+ ([{ boundingClientRect, target }], obs) => {
97
+ if (windowInnerWidth < boundingClientRect.right)
98
+ target.classList.add("nav--reverse");
99
+ obs.disconnect();
100
+ }
101
+ );
102
+ this.subNavs.forEach(({ list }) => {
103
+ edgeCheck.observe(list);
104
+ const nestedLists = list.querySelectorAll("ul");
105
+ nestedLists.forEach((nestedList) => edgeCheck.observe(nestedList));
106
+ });
107
+ }
108
+ get links() {
109
+ const links = this.querySelectorAll("a");
110
+ if (!links.length) {
111
+ throw new Error(`${this.localName} must links`);
112
+ }
113
+ return links;
114
+ }
115
+ get lists() {
116
+ return this.querySelectorAll("li > ul");
117
+ }
118
+ get breakpoint() {
119
+ return window.matchMedia(this.mq);
120
+ }
121
+ }
122
+ customElements.define("mx-nav", Navigation);
123
+ //# sourceMappingURL=navigation.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.entry.js","sources":["../../src/Component/Navigation/Elements/Navigation.ts"],"sourcesContent":["/**\n * Main Navigation\n * @file Drop down navigation handler.\n */\n\nimport {\n Keyboard,\n makeAnchor,\n DisclosureWidget,\n DisclosureWidgetEvent,\n} from \"../../../Utility/utilities\"\n\ntype SubNavType = {\n list: HTMLElement\n trigger: HTMLButtonElement\n link: HTMLAnchorElement\n item?: HTMLLIElement\n widget?: DisclosureWidget\n linkWidget?: DisclosureWidget\n}\n\nexport default class Navigation extends HTMLElement {\n internals_: ElementInternals\n controller: AbortController\n keyboard: Keyboard\n subNavs?: Map<string, SubNavType>\n flyout?: boolean\n edgeCheck!: boolean\n mq!: string\n\n constructor() {\n super()\n this.internals_ = this.attachInternals()\n this.controller = new AbortController()\n this.flyout = this.hasAttribute(\"flyout\")\n }\n\n connectedCallback(): void {\n const { signal }: AbortController = this.controller\n\n // Add keyboard navigation events.\n this.keyboard = new Keyboard()\n this.keyboard.attachEventListeners(signal)\n\n // Add keyboard focus handler for menu links.\n this.addEventListener(\"focusin\", () => {\n this.keyboard.attachMenu(this, this.links)\n })\n this.addEventListener(\"focusout\", () => {\n this.keyboard.detachMenu()\n })\n\n if (!this.lists.length) return\n this.subNavs = new Map()\n this.lists.forEach((list: HTMLUListElement, index: number): void => {\n const item: HTMLLIElement = list.closest(\"li\")\n const link: HTMLAnchorElement = item.querySelector(\":scope > a\")\n const id: string = makeAnchor(`subnav-${index}-${link.textContent}`, 30)\n const trigger: HTMLButtonElement = item.querySelector(\n \":scope > button.nav__toggle\",\n )\n if (item && link && trigger) {\n const labelId = `list-label-${id}`\n link.setAttribute(\"id\", labelId)\n list.setAttribute(\"id\", id)\n list.setAttribute(\"aria-labelledby\", labelId)\n const widget = new DisclosureWidget(trigger, list)\n widget.init()\n this.subNavs.set(id, { item, trigger, list, link, widget })\n }\n })\n\n this.addEventListener(\"disclosure-toggle\", this.handleDisclosure)\n\n if (!this.flyout) return\n this.edgeCheck = this.hasAttribute(\"edgeCheck\")\n this.mq = this.getAttribute(\"mq\") || \"(min-width: 720px)\"\n this.handleBreakpoint(this.breakpoint)\n this.breakpoint.addEventListener(\"change\", this.handleBreakpoint, {\n signal,\n })\n }\n\n disconnectedCallback(): void {\n this.controller.abort()\n this.subNavs.forEach((subNav: SubNavType): void => subNav.widget.detach())\n }\n\n handleDisclosure = ({ detail }: CustomEvent<DisclosureWidgetEvent>): void => {\n const { isOpen, id } = detail\n const { item } = this.subNavs.get(id)\n item.classList.toggle(\"nav--open\")\n if (isOpen) {\n this.keyboard.attachPopup(id, this.handleCloseAny)\n } else {\n this.keyboard.detachPopup(id)\n }\n }\n\n handleCloseAny = (): void => {\n this.subNavs.forEach(({ widget }: SubNavType): void => {\n if (!widget) return\n if (widget.isOpen) widget.handleToggle()\n })\n }\n\n handleFlyout = (event: MouseEvent): void => {\n const target = event.target as HTMLElement\n const parent: HTMLLIElement = target.closest(\"li\")\n if (!parent) return\n const subnav: HTMLUListElement = parent.querySelector(\":scope > ul\")\n if (!subnav) return\n this.subNavs.forEach(({ widget, list }: SubNavType): void => {\n if (!widget) return\n if (widget.isOpen) widget.handleToggle()\n if (list.id === subnav.id) widget.handleToggle()\n })\n }\n\n handleBreakpoint = ({\n matches,\n }: MediaQueryList | MediaQueryListEvent): void => {\n if (matches) {\n this.addEventListener(\"mouseover\", this.handleFlyout)\n this.addEventListener(\"mouseleave\", this.handleCloseAny)\n if (this.edgeCheck) this.handleEdgeCheck()\n } else {\n this.removeEventListener(\"mouseover\", this.handleFlyout)\n this.removeEventListener(\"mouseleave\", this.handleCloseAny)\n }\n }\n\n handleEdgeCheck() {\n const windowInnerWidth: number = window.innerWidth\n const edgeCheck: IntersectionObserver = new IntersectionObserver(\n ([{ boundingClientRect, target }], obs) => {\n if (windowInnerWidth < boundingClientRect.right)\n target.classList.add(\"nav--reverse\")\n obs.disconnect()\n },\n )\n this.subNavs.forEach(({ list }: SubNavType): void => {\n edgeCheck.observe(list)\n const nestedLists: NodeListOf<HTMLUListElement> =\n list.querySelectorAll(\"ul\")\n nestedLists.forEach(nestedList => edgeCheck.observe(nestedList))\n })\n }\n\n get links(): NodeListOf<HTMLAnchorElement> | null {\n const links: NodeListOf<HTMLAnchorElement> | null =\n this.querySelectorAll(\"a\")\n if (!links.length) {\n throw new Error(`${this.localName} must links`)\n }\n return links\n }\n\n get lists(): NodeListOf<HTMLUListElement> | null {\n return this.querySelectorAll(\"li > ul\")\n }\n\n get breakpoint(): MediaQueryList {\n return window.matchMedia(this.mq)\n }\n}\n\ncustomElements.define(\"mx-nav\", Navigation)\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"mx-nav\": Navigation\n }\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,184 @@
1
+ /**
2
+ * Page
3
+ */
4
+
5
+ @layer design-system.layouts {
6
+ :where(.page) {
7
+ --plus: 12rem;
8
+ --minus: 8rem;
9
+ --diff: calc(var(--plus) - var(--minus));
10
+ --gutter: max(var(--spacing-s), min(6vw, var(--spacing-l)));
11
+ --full: minmax(var(--gutter), 1fr);
12
+ --narrow: min(var(--container-max-width), 100% - (var(--gutter) * 2));
13
+ --feature: minmax(0, var(--minus));
14
+ --container: minmax(0, var(--diff));
15
+
16
+ display: grid;
17
+ grid-template-columns:
18
+ [full-start] var(--full)
19
+ [container-start] minmax(0, calc(12rem - 8rem))
20
+ [feature-start] minmax(0, 8rem)
21
+ [narrow-start] var(--narrow) [narrow-end]
22
+ minmax(0, 8rem) [feature-end]
23
+ minmax(0, calc(12rem - 8rem)) [container-end]
24
+ var(--full) [full-end];
25
+ grid-template-columns:
26
+ [full-start] var(--full)
27
+ [container-start] var(--container)
28
+ [feature-start] var(--feature)
29
+ [narrow-start] var(--narrow) [narrow-end]
30
+ var(--feature) [feature-end]
31
+ var(--container) [container-end]
32
+ var(--full) [full-end];
33
+ }
34
+
35
+ :where(.page)
36
+ > *:where(:not(.page):not(.section__full):not(.section__narrow):not(.section__feature):not(.section[class*="background--"])) {
37
+ grid-column: container;
38
+ }
39
+
40
+ /* Immediate nested can be subgrid. */
41
+ :where(.page) > :where(.page) {
42
+ grid-column: full;
43
+ display: grid;
44
+ grid-template-columns: subgrid;
45
+ }
46
+
47
+ /* Deeper nested cannot be subgrid, needs it's children to be full width by default. */
48
+ :where(.page)
49
+ > *
50
+ :where(.page:not(.page--narrow):not(.page--feature))
51
+ > *:where(:not(.section__narrow):not(.section__feature)) {
52
+ grid-column: full;
53
+ }
54
+
55
+ /** Adding a background triggers subgrid */
56
+ :where(.page) > :where(.section[class*="background--"]) {
57
+ grid-column: full;
58
+ display: grid;
59
+ grid-template-columns: subgrid;
60
+ }
61
+
62
+ :where(.page) > :where(.section[class*="background--"])
63
+ > *:where(:not(.page):not(.section__full):not(.section__narrow):not(.section__feature)) {
64
+ grid-column: container;
65
+ }
66
+
67
+ :where(:is(.page--feature > *, .section__feature)) {
68
+ grid-column: feature;
69
+ }
70
+
71
+ :where(:is(.page--narrow > *, .section__narrow)) {
72
+ grid-column: narrow;
73
+ }
74
+
75
+ :where(:is(.page--full > *, .section__full)) {
76
+ grid-column: full;
77
+ }
78
+ }
79
+
80
+ /**
81
+ * Page with Sidebar
82
+ */
83
+
84
+ @layer design-system.layouts {
85
+ .grid--sidebar:where(:not(:has(> aside))) {
86
+ grid-column: narrow;
87
+ }
88
+ @media (min-width: 720px) {
89
+
90
+ .grid--sidebar:where(:has(> aside)) {
91
+ display: grid;
92
+ grid-template-columns: 76ch auto;
93
+ grid-template-columns: var(--container-max-width, 76ch) auto;
94
+ grid-gap: var(--sidebar-gap, var(--gap));
95
+ gap: var(--sidebar-gap, var(--gap));
96
+ }
97
+ }
98
+
99
+ @media (min-width: 720px) {
100
+
101
+ @media (min-width: 946px) {
102
+
103
+ @media (max-color:2147477350) and (max-color:2147477350) {
104
+
105
+ .grid--sidebar:where(:has(> aside)) {
106
+ --sidebar-gap: 18ch;
107
+ }
108
+ }
109
+ }
110
+
111
+ @media not all and (min-width: 946px) {
112
+
113
+ @media (max-color:2147477350) and (color:2147477350) {
114
+
115
+ .grid--sidebar:where(:has(> aside)) {
116
+ --sidebar-gap: 18ch;
117
+ }
118
+ }
119
+ }
120
+ }
121
+
122
+ @media not all and (min-width: 720px) {
123
+
124
+ @media (min-width: 946px) {
125
+
126
+ @media (color:2147477350) and (max-color:2147477350) {
127
+
128
+ .grid--sidebar:where(:has(> aside)) {
129
+ --sidebar-gap: 18ch;
130
+ }
131
+ }
132
+ }
133
+
134
+ @media not all and (min-width: 946px) {
135
+
136
+ @media (color:2147477350) and (color:2147477350) {
137
+
138
+ .grid--sidebar:where(:has(> aside)) {
139
+ --sidebar-gap: 18ch;
140
+ }
141
+ }
142
+ }
143
+ }
144
+ .grid--sidebar.grid--sidebar-rev:where(:has(> aside)) > :is(section, aside):first-child {
145
+ order: 2;
146
+ }
147
+
148
+ .grid--sidebar.grid--sidebar-rev:where(:has(> aside)) > :is(section, aside):last-child {
149
+ order: 1;
150
+ }
151
+ @media (min-width: 720px) {
152
+ .grid--sidebar.grid--sidebar-rev-lg:where(:has(> aside)) > :is(section, aside):first-child {
153
+ order: 2;
154
+ }
155
+
156
+ .grid--sidebar.grid--sidebar-rev-lg:where(:has(> aside)) > :is(section, aside):last-child {
157
+ order: 1;
158
+ }
159
+ }
160
+ @media (min-width: 946px) {
161
+
162
+ .grid--sidebar:where(:has(> aside)):is(.grid--sidebar-rev, .grid--sidebar-rev-lg) {
163
+ grid-template-columns: auto 76ch;
164
+ grid-template-columns: auto var(--container-max-width, 76ch);
165
+ }
166
+ }
167
+
168
+ .grid--sidebar:where(:has(> aside:first-child)) {
169
+ grid-template-columns: auto 76ch;
170
+ grid-template-columns: auto var(--container-max-width, 76ch);
171
+ }
172
+ }
173
+
174
+ /**
175
+ * Print stylesheet
176
+ */
177
+
178
+ @media print {
179
+ .page__sidebar {
180
+ display: none;
181
+ }
182
+ }
183
+
184
+ /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhZ2UuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztFQUVFOztBQUVGO0VBQ0U7SUFDRSxhQUFvQztJQUNwQyxhQUFzQztJQUN0Qyx3Q0FBd0M7SUFDeEMsMkRBQXdEO0lBQ3hELGtDQUFrQztJQUNsQyxxRUFBcUU7SUFDckUsa0NBQWtDO0lBQ2xDLG1DQUFtQzs7SUFFbkMsYUFBYTtJQUNiOzs7Ozs7OzRCQU93QjtJQVB4Qjs7Ozs7Ozs0QkFPd0I7RUEyQzFCOztJQXpDRTs7TUFVRSxzQkFBc0I7SUFDeEI7O0lBRUEscUNBQXFDO0lBQ3JDO01BQ0UsaUJBQWlCO01BQ2pCLGFBQWE7TUFDYiw4QkFBOEI7SUFDaEM7O0lBRUEsc0ZBQXNGO0lBQ3RGOzs7O01BSUUsaUJBQWlCO0lBQ25COztJQUVBLDBDQUEwQztJQUMxQztNQUNFLGlCQUFpQjtNQUNqQixhQUFhO01BQ2IsOEJBQThCO0lBUWhDOztNQU5FOztRQUlFLHNCQUFzQjtNQUN4Qjs7RUFJSjtJQUNFLG9CQUFvQjtFQUN0Qjs7RUFFQTtJQUNFLG1CQUFtQjtFQUNyQjs7RUFFQTtJQUNFLGlCQUFpQjtFQUNuQjtBQUNGOztBQUVBOztFQUVFOztBQUVGO0lBRUk7TUFDRSxtQkFBbUI7SUFDckI7TUFHRTs7SUFERjtRQUVJLGFBQWE7UUFDYixnQ0FBNEQ7UUFBNUQsNERBQTREO1FBQzVELHdDQUFtQztRQUFuQyxtQ0FBbUM7SUFzQ3ZDO01BakNFOztRQUhFOztRQUFBOztRQUFBOztJQU5KO1VBT00sbUJBQW1CO0lBbUN6QjtRQWxDSTtRQUFBOztRQUZBOztRQUFBOztJQU5KO1VBT00sbUJBQW1CO0lBbUN6QjtRQWxDSTtRQUFBO1FBQUE7O1FBRkE7O1FBQUE7O1FBQUE7O0lBTko7VUFPTSxtQkFBbUI7SUFtQ3pCO1FBbENJO1FBQUE7O1FBRkE7O1FBQUE7O0lBTko7VUFPTSxtQkFBbUI7SUFtQ3pCO1FBbENJO1FBQUE7UUFBQTtVQUtFO1lBQ0UsUUFBUTtVQUNWOztVQUVBO1lBQ0UsUUFBUTtVQUNWO1FBS0Y7WUFFSTtjQUNFLFFBQVE7WUFDVjs7WUFFQTtjQUNFLFFBQVE7WUFDVjtRQUVKO1FBSUE7O01BREY7VUFFSSxnQ0FBNEQ7VUFBNUQsNERBQTREO01BRWhFO1FBREU7O0lBSUo7TUFDRSxnQ0FBNEQ7TUFBNUQsNERBQTREO0lBQzlEO0FBRUo7O0FBRUE7O0VBRUU7O0FBRUY7RUFDRTtJQUNFLGFBQWE7RUFDZjtBQUNGIiwiZmlsZSI6InBhZ2UuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQYWdlXG4gKi9cblxuQGxheWVyIGRlc2lnbi1zeXN0ZW0ubGF5b3V0cyB7XG4gIDp3aGVyZSgucGFnZSkge1xuICAgIC0tcGx1czogdG9rZW4oXCJzaXplLmNvbnRhaW5lci5wbHVzXCIpO1xuICAgIC0tbWludXM6IHRva2VuKFwic2l6ZS5jb250YWluZXIubWludXNcIik7XG4gICAgLS1kaWZmOiBjYWxjKHZhcigtLXBsdXMpIC0gdmFyKC0tbWludXMpKTtcbiAgICAtLWd1dHRlcjogY2xhbXAodmFyKC0tc3BhY2luZy1zKSwgNnZ3LCB2YXIoLS1zcGFjaW5nLWwpKTtcbiAgICAtLWZ1bGw6IG1pbm1heCh2YXIoLS1ndXR0ZXIpLCAxZnIpO1xuICAgIC0tbmFycm93OiBtaW4odmFyKC0tY29udGFpbmVyLW1heC13aWR0aCksIDEwMCUgLSAodmFyKC0tZ3V0dGVyKSAqIDIpKTtcbiAgICAtLWZlYXR1cmU6IG1pbm1heCgwLCB2YXIoLS1taW51cykpO1xuICAgIC0tY29udGFpbmVyOiBtaW5tYXgoMCwgdmFyKC0tZGlmZikpO1xuXG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6XG4gICAgICBbZnVsbC1zdGFydF0gdmFyKC0tZnVsbClcbiAgICAgIFtjb250YWluZXItc3RhcnRdIHZhcigtLWNvbnRhaW5lcilcbiAgICAgIFtmZWF0dXJlLXN0YXJ0XSB2YXIoLS1mZWF0dXJlKVxuICAgICAgW25hcnJvdy1zdGFydF0gdmFyKC0tbmFycm93KSBbbmFycm93LWVuZF1cbiAgICAgIHZhcigtLWZlYXR1cmUpIFtmZWF0dXJlLWVuZF1cbiAgICAgIHZhcigtLWNvbnRhaW5lcikgW2NvbnRhaW5lci1lbmRdXG4gICAgICB2YXIoLS1mdWxsKSBbZnVsbC1lbmRdO1xuXG4gICAgJlxuICAgICAgPiAqOndoZXJlKFxuICAgICAgICA6bm90KFxuICAgICAgICAgICAgLnBhZ2UsXG4gICAgICAgICAgICAuc2VjdGlvbl9fZnVsbCxcbiAgICAgICAgICAgIC5zZWN0aW9uX19uYXJyb3csXG4gICAgICAgICAgICAuc2VjdGlvbl9fZmVhdHVyZSxcbiAgICAgICAgICAgIC5zZWN0aW9uW2NsYXNzKj1cImJhY2tncm91bmQtLVwiXVxuICAgICAgICAgIClcbiAgICAgICkge1xuICAgICAgZ3JpZC1jb2x1bW46IGNvbnRhaW5lcjtcbiAgICB9XG5cbiAgICAvKiBJbW1lZGlhdGUgbmVzdGVkIGNhbiBiZSBzdWJncmlkLiAqL1xuICAgICYgPiA6d2hlcmUoLnBhZ2UpIHtcbiAgICAgIGdyaWQtY29sdW1uOiBmdWxsO1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogc3ViZ3JpZDtcbiAgICB9XG5cbiAgICAvKiBEZWVwZXIgbmVzdGVkIGNhbm5vdCBiZSBzdWJncmlkLCBuZWVkcyBpdCdzIGNoaWxkcmVuIHRvIGJlIGZ1bGwgd2lkdGggYnkgZGVmYXVsdC4gKi9cbiAgICAmXG4gICAgICA+ICpcbiAgICAgIDp3aGVyZSgucGFnZTpub3QoLnBhZ2UtLW5hcnJvdywgLnBhZ2UtLWZlYXR1cmUpKVxuICAgICAgPiAqOndoZXJlKDpub3QoLnNlY3Rpb25fX25hcnJvdywgLnNlY3Rpb25fX2ZlYXR1cmUpKSB7XG4gICAgICBncmlkLWNvbHVtbjogZnVsbDtcbiAgICB9XG5cbiAgICAvKiogQWRkaW5nIGEgYmFja2dyb3VuZCB0cmlnZ2VycyBzdWJncmlkICovXG4gICAgJiA+IDp3aGVyZSguc2VjdGlvbltjbGFzcyo9XCJiYWNrZ3JvdW5kLS1cIl0pIHtcbiAgICAgIGdyaWQtY29sdW1uOiBmdWxsO1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogc3ViZ3JpZDtcblxuICAgICAgJlxuICAgICAgICA+ICo6d2hlcmUoXG4gICAgICAgICAgOm5vdCgucGFnZSwgLnNlY3Rpb25fX2Z1bGwsIC5zZWN0aW9uX19uYXJyb3csIC5zZWN0aW9uX19mZWF0dXJlKVxuICAgICAgICApIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IGNvbnRhaW5lcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICA6d2hlcmUoOmlzKC5wYWdlLS1mZWF0dXJlID4gKiwgLnNlY3Rpb25fX2ZlYXR1cmUpKSB7XG4gICAgZ3JpZC1jb2x1bW46IGZlYXR1cmU7XG4gIH1cblxuICA6d2hlcmUoOmlzKC5wYWdlLS1uYXJyb3cgPiAqLCAuc2VjdGlvbl9fbmFycm93KSkge1xuICAgIGdyaWQtY29sdW1uOiBuYXJyb3c7XG4gIH1cblxuICA6d2hlcmUoOmlzKC5wYWdlLS1mdWxsID4gKiwgLnNlY3Rpb25fX2Z1bGwpKSB7XG4gICAgZ3JpZC1jb2x1bW46IGZ1bGw7XG4gIH1cbn1cblxuLyoqXG4gKiBQYWdlIHdpdGggU2lkZWJhclxuICovXG5cbkBsYXllciBkZXNpZ24tc3lzdGVtLmxheW91dHMge1xuICAuZ3JpZC0tc2lkZWJhciB7XG4gICAgJjp3aGVyZSg6bm90KDpoYXMoPiBhc2lkZSkpKSB7XG4gICAgICBncmlkLWNvbHVtbjogbmFycm93O1xuICAgIH1cblxuICAgICY6d2hlcmUoOmhhcyg+IGFzaWRlKSkge1xuICAgICAgQG1lZGlhICgtLW1lZGl1bS11cCkge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLWNvbnRhaW5lci1tYXgtd2lkdGgsIDc2Y2gpIGF1dG87XG4gICAgICAgIGdhcDogdmFyKC0tc2lkZWJhci1nYXAsIHZhcigtLWdhcCkpO1xuXG4gICAgICAgIEBtZWRpYSAoLS1sYXJnZS11cCkge1xuICAgICAgICAgIC0tc2lkZWJhci1nYXA6IDE4Y2g7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5ncmlkLS1zaWRlYmFyLXJldiB7XG4gICAgICAgICYgPiA6aXMoc2VjdGlvbiwgYXNpZGUpIHtcbiAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIG9yZGVyOiAyO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5ncmlkLS1zaWRlYmFyLXJldi1sZyB7XG4gICAgICAgIEBtZWRpYSAoLS1tZWRpdW0tdXApIHtcbiAgICAgICAgICAmID4gOmlzKHNlY3Rpb24sIGFzaWRlKSB7XG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgIG9yZGVyOiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmlzKC5ncmlkLS1zaWRlYmFyLXJldiwgLmdyaWQtLXNpZGViYXItcmV2LWxnKSB7XG4gICAgICAgIEBtZWRpYSAoLS1sYXJnZS11cCkge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byB2YXIoLS1jb250YWluZXItbWF4LXdpZHRoLCA3NmNoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6d2hlcmUoOmhhcyg+IGFzaWRlOmZpcnN0LWNoaWxkKSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIHZhcigtLWNvbnRhaW5lci1tYXgtd2lkdGgsIDc2Y2gpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFByaW50IHN0eWxlc2hlZXRcbiAqL1xuXG5AbWVkaWEgcHJpbnQge1xuICAucGFnZV9fc2lkZWJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIl19 */
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Pagination
3
+ */
4
+
5
+ @layer design-system.components {
6
+ .pagination {
7
+ margin-inline: 0;
8
+ padding: 0;
9
+ }
10
+
11
+ .pagination button {
12
+ all: unset;
13
+ cursor: pointer;
14
+ box-sizing: border-box;
15
+ }
16
+
17
+ .pagination button:focus {
18
+ outline: var(--outline-width, var(--outline-size))
19
+ solid currentcolor;
20
+ outline: var(--outline-width, var(--outline-size))
21
+ var(--outline-style, solid) var(--outline-color, currentcolor);
22
+ outline-offset: var(--outline-offset, var(--outline-size));
23
+ }
24
+
25
+ .pagination :is(a, button, [aria-current="page"], [aria-current="step"]) {
26
+ text-decoration-line: none;
27
+ color: var(
28
+ --pagination-foreground,
29
+ var(--foreground, var(--colour-foreground))
30
+ );
31
+ display: block;
32
+ block-size: var(--spacing-l);
33
+ line-height: var(--spacing-l);
34
+ padding-block: 0;
35
+ padding-inline: var(--spacing-xs);
36
+ }
37
+
38
+ .pagination :is([aria-current="page"], [aria-current="step"], .is-active) {
39
+ font-weight: var(--font-weight-bold);
40
+ text-decoration-line: underline;
41
+ text-decoration-line: var(--active-underline, underline);
42
+ text-decoration-thickness: 2px;
43
+ -webkit-text-decoration-skip: ink;
44
+ text-decoration-skip-ink: auto;
45
+ text-underline-offset: 0.15em;
46
+ }
47
+
48
+ .pagination .icon:not(.icon--only) {
49
+ display: flex;
50
+ align-items: center;
51
+ gap: var(--spacing-xxs);
52
+ }
53
+
54
+ .pagination .pagination__items {
55
+ display: flex;
56
+ align-content: center;
57
+ justify-content: center;
58
+ place-content: center;
59
+ padding-inline-start: 0;
60
+ list-style-type: none;
61
+ text-align: center;
62
+ }
63
+
64
+ .pagination .pagination__ellipsis {
65
+ padding-block: 0;
66
+ padding-inline: var(--spacing-xs);
67
+ }
68
+
69
+ .pagination :is(.pagination__previous, .pagination__next) .icon:not(.icon--only) {
70
+ font-weight: var(--font-weight-bold);
71
+ text-transform: capitalize;
72
+ }
73
+
74
+ @media (max-width: 539.98px) {
75
+
76
+ .pagination :is(.pagination__previous, .pagination__next) .icon:not(.icon--only) {
77
+ overflow: hidden;
78
+ inline-size: var(--spacing-s);
79
+ position: relative;
80
+ text-indent: 100%;
81
+ }
82
+
83
+ .pagination :is(.pagination__previous, .pagination__next) .icon:not(.icon--only)::before {
84
+ position: absolute;
85
+ }
86
+ }
87
+
88
+ .pagination .pagination__previous {
89
+ margin-inline-end: auto;
90
+ }
91
+
92
+ @media (min-width: 540px) {
93
+ .pagination .pagination__previous :is(button, a) {
94
+ padding-inline-start: 0;
95
+ }
96
+ }
97
+
98
+ .pagination .pagination__next {
99
+ margin-inline-start: auto;
100
+ }
101
+
102
+ @media (min-width: 540px) {
103
+ .pagination .pagination__next :is(button, a) {
104
+ padding-inline-end: 0;
105
+ }
106
+
107
+ .pagination .pagination__next :is(button, a)::before {
108
+ order: 2;
109
+ }
110
+ }
111
+ }
112
+
113
+ /**
114
+ * Print stylesheet
115
+ */
116
+
117
+ @media print {
118
+ .pagination {
119
+ display: none;
120
+ }
121
+ }
122
+
123
+ /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhZ2luYXRpb24uY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztFQUVFOztBQUVGO0VBQ0U7SUFDRSxnQkFBZ0I7SUFDaEIsVUFBVTtFQTZGWjs7SUEzRkU7TUFDRSxVQUFVO01BQ1YsZUFBZTtNQUNmLHNCQUFzQjtJQU94Qjs7TUFMRTtRQUNFOzRCQUNnRTtRQURoRTt3RUFDZ0U7UUFDaEUsMERBQTBEO01BQzVEOztJQUdGO01BQ0UsMEJBQTBCO01BQzFCOzs7T0FHQztNQUNELGNBQWM7TUFDZCw0QkFBNEI7TUFDNUIsNkJBQTZCO01BQzdCLGdCQUFnQjtNQUNoQixpQ0FBaUM7SUFDbkM7O0lBRUE7TUFDRSxvQ0FBb0M7TUFDcEMsK0JBQXdEO01BQXhELHdEQUF3RDtNQUN4RCw4QkFBOEI7TUFDOUIsaUNBQThCO2NBQTlCLDhCQUE4QjtNQUM5Qiw2QkFBNkI7SUFDL0I7O0lBRUE7TUFDRSxhQUFhO01BQ2IsbUJBQW1CO01BQ25CLHVCQUF1QjtJQUN6Qjs7SUFFQTtNQUNFLGFBQWE7TUFDYixxQkFBcUI7TUFBckIsdUJBQXFCO01BQXJCLHFCQUFxQjtNQUNyQix1QkFBdUI7TUFDdkIscUJBQXFCO01BQ3JCLGtCQUFrQjtJQUNwQjs7SUFFQTtNQUNFLGdCQUFnQjtNQUNoQixpQ0FBaUM7SUFDbkM7O0lBRUE7TUFDRSxvQ0FBb0M7TUFDcEMsMEJBQTBCO0lBWTVCOztNQVZFOztJQUpGO1FBS0ksZ0JBQWdCO1FBQ2hCLDZCQUE2QjtRQUM3QixrQkFBa0I7UUFDbEIsaUJBQWlCO0lBTXJCOztRQUpJO1VBQ0Usa0JBQWtCO1FBQ3BCO01BQ0Y7O0lBR0Y7TUFDRSx1QkFBdUI7SUFPekI7O01BTEU7UUFDRTtVQUNFLHVCQUF1QjtRQUN6QjtNQUNGOztJQUdGO01BQ0UseUJBQXlCO0lBVzNCOztNQVRFO1FBQ0U7VUFDRSxxQkFBcUI7UUFLdkI7O1VBSEU7WUFDRSxRQUFRO1VBQ1Y7TUFFSjtBQUdOOztBQUVBOztFQUVFOztBQUVGO0VBQ0U7SUFDRSxhQUFhO0VBQ2Y7QUFDRiIsImZpbGUiOiJwYWdpbmF0aW9uLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUGFnaW5hdGlvblxuICovXG5cbkBsYXllciBkZXNpZ24tc3lzdGVtLmNvbXBvbmVudHMge1xuICAucGFnaW5hdGlvbiB7XG4gICAgbWFyZ2luLWlubGluZTogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgJiBidXR0b24ge1xuICAgICAgYWxsOiB1bnNldDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiB2YXIoLS1vdXRsaW5lLXdpZHRoLCB2YXIoLS1vdXRsaW5lLXNpemUpKVxuICAgICAgICAgIHZhcigtLW91dGxpbmUtc3R5bGUsIHNvbGlkKSB2YXIoLS1vdXRsaW5lLWNvbG9yLCBjdXJyZW50Y29sb3IpO1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tb3V0bGluZS1vZmZzZXQsIHZhcigtLW91dGxpbmUtc2l6ZSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYgOmlzKGEsIGJ1dHRvbiwgW2FyaWEtY3VycmVudD1cInBhZ2VcIl0sIFthcmlhLWN1cnJlbnQ9XCJzdGVwXCJdKSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb24tbGluZTogbm9uZTtcbiAgICAgIGNvbG9yOiB2YXIoXG4gICAgICAgIC0tcGFnaW5hdGlvbi1mb3JlZ3JvdW5kLFxuICAgICAgICB2YXIoLS1mb3JlZ3JvdW5kLCB2YXIoLS1jb2xvdXItZm9yZWdyb3VuZCkpXG4gICAgICApO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBibG9jay1zaXplOiB2YXIoLS1zcGFjaW5nLWwpO1xuICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXNwYWNpbmctbCk7XG4gICAgICBwYWRkaW5nLWJsb2NrOiAwO1xuICAgICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNwYWNpbmcteHMpO1xuICAgIH1cblxuICAgICYgOmlzKFthcmlhLWN1cnJlbnQ9XCJwYWdlXCJdLCBbYXJpYS1jdXJyZW50PVwic3RlcFwiXSwgLmlzLWFjdGl2ZSkge1xuICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IHZhcigtLWFjdGl2ZS11bmRlcmxpbmUsIHVuZGVybGluZSk7XG4gICAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAycHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb24tc2tpcC1pbms6IGF1dG87XG4gICAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDAuMTVlbTtcbiAgICB9XG5cbiAgICAmIC5pY29uOm5vdCguaWNvbi0tb25seSkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IHZhcigtLXNwYWNpbmcteHhzKTtcbiAgICB9XG5cbiAgICAmIC5wYWdpbmF0aW9uX19pdGVtcyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJiAucGFnaW5hdGlvbl9fZWxsaXBzaXMge1xuICAgICAgcGFkZGluZy1ibG9jazogMDtcbiAgICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zcGFjaW5nLXhzKTtcbiAgICB9XG5cbiAgICAmIDppcygucGFnaW5hdGlvbl9fcHJldmlvdXMsIC5wYWdpbmF0aW9uX19uZXh0KSAuaWNvbjpub3QoLmljb24tLW9ubHkpIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuXG4gICAgICBAbWVkaWEgKC0tc21hbGwtZG93bikge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBpbmxpbmUtc2l6ZTogdmFyKC0tc3BhY2luZy1zKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0ZXh0LWluZGVudDogMTAwJTtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYgLnBhZ2luYXRpb25fX3ByZXZpb3VzIHtcbiAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiBhdXRvO1xuXG4gICAgICBAbWVkaWEgKC0tc21hbGwtdXApIHtcbiAgICAgICAgJiA6aXMoYnV0dG9uLCBhKSB7XG4gICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmIC5wYWdpbmF0aW9uX19uZXh0IHtcbiAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG5cbiAgICAgIEBtZWRpYSAoLS1zbWFsbC11cCkge1xuICAgICAgICAmIDppcyhidXR0b24sIGEpIHtcbiAgICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDA7XG5cbiAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUHJpbnQgc3R5bGVzaGVldFxuICovXG5cbkBtZWRpYSBwcmludCB7XG4gIC5wYWdpbmF0aW9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iXX0= */
@@ -0,0 +1,163 @@
1
+ /**
2
+ * Section
3
+ */
4
+
5
+ @layer design-system.layouts {
6
+ .mx-container {
7
+ --container-name: container;
8
+
9
+ container-name: container;
10
+
11
+ container-name: var(--container-name);
12
+ container-type: inline-size;
13
+ }
14
+
15
+ .mx-section--divider {
16
+ border-block-start: 1px solid var(--colour-border);
17
+ }
18
+
19
+ .mx-section--s {
20
+ padding-block: var(--section-s, var(--spacing-s));
21
+ }
22
+
23
+ .mx-section--m {
24
+ padding-block: var(--section-m, var(--spacing-m));
25
+ }
26
+
27
+ .mx-section--l {
28
+ padding-block: var(--section-l, var(--spacing-xl));
29
+ }
30
+
31
+ .mx-section--xl {
32
+ padding-block: var(--section-xl, var(--spacing-uul));
33
+ }
34
+
35
+ .mx-section--top-s {
36
+ padding-block-start: var(--section-s, var(--spacing-s));
37
+ }
38
+
39
+ .mx-section--top-m {
40
+ padding-block-start: var(--section-m, var(--spacing-m));
41
+ }
42
+
43
+ .mx-section--top-l {
44
+ padding-block-start: var(--section-l, var(--spacing-xl));
45
+ }
46
+
47
+ .mx-section--top-xl {
48
+ padding-block-start: var(--section-xl, var(--spacing-uul));
49
+ }
50
+
51
+ .mx-section--bottom-s {
52
+ padding-block-end: var(--section-s, var(--spacing-s));
53
+ }
54
+
55
+ .mx-section--bottom-m {
56
+ padding-block-end: var(--section-m, var(--spacing-m));
57
+ }
58
+
59
+ .mx-section--bottom-l {
60
+ padding-block-end: var(--section-l, var(--spacing-xl));
61
+ }
62
+
63
+ .mx-section--bottom-xl {
64
+ padding-block-end: var(--section-xl, var(--spacing-uul));
65
+ }
66
+ }
67
+
68
+ /**
69
+ * Sections breakouts
70
+ *
71
+ * Uses `subgrid` so no supported in older browsers.
72
+ */
73
+
74
+ /**
75
+ * Sections flows & groups
76
+ *
77
+ * Uses `:has` so is not supported in older browsers.
78
+ * see https://www.bram.us/2022/12/13/quantity-queries-for-islands-of-elements-with-the-same-class-thanks-to-css-has/
79
+ */
80
+
81
+ @layer design-system.layouts {
82
+ .mx-section--flow {
83
+ --flow-spacing: var(--section-l, var(--spacing-xl));
84
+
85
+ padding-block-end: var(--flow-spacing);
86
+ }
87
+
88
+ .mx-section--flow:is(
89
+ [class*="mx-background"],
90
+ [class*="mx-background"] + .mx-section--flow,
91
+ :not(.mx-section--flow:not(.mx-section--group) + .mx-section--flow)
92
+ ) {
93
+ padding-block-start: var(--flow-spacing);
94
+ }
95
+
96
+ .mx-section--group {
97
+ --group-spacing: var(--section-xl, var(--spacing-uul));
98
+
99
+ padding-block: 0;
100
+
101
+ /* :first-in-island-of-class */
102
+ }
103
+
104
+ .mx-section--group:is(
105
+ :not([class*="mx-background"])
106
+ + .mx-section--group[class*="mx-background"],
107
+ :not(.mx-section--group + .mx-section--group)
108
+ ) {
109
+ padding-block-start: var(--group-spacing);
110
+ }
111
+
112
+ /* :last-in-island-of-class */
113
+
114
+ .mx-section--group:is(
115
+ :not([class*="mx-background"]):has(
116
+ + .mx-section--group[class*="mx-background"]
117
+ ),
118
+ :not(:has(+ .mx-section--group))
119
+ ) {
120
+ padding-block-end: var(--group-spacing);
121
+ }
122
+
123
+ /* :single-in-island-of-class */
124
+
125
+ .mx-section--group:not(.mx-section--group + .mx-section--group):not(:has(+ .mx-section--group)) {
126
+ padding-block: var(--group-spacing);
127
+ }
128
+ }
129
+
130
+ /**
131
+ * Section header
132
+ */
133
+
134
+ @layer design-system.layouts {
135
+ .mx-section__header {
136
+ margin-block-end: var(--spacing-m);
137
+ display: flex;
138
+ flex-flow: row wrap;
139
+ gap: var(--spacing-s);
140
+ align-items: center;
141
+ }
142
+
143
+ .mx-section__header :is(a, button) {
144
+ margin-inline-start: auto;
145
+ }
146
+ }
147
+
148
+ /**
149
+ * Section Background image
150
+ */
151
+
152
+ @layer design-system.layouts {
153
+ :is(.mx-section--has-background, .mx-section:has(.mx-background--image)) {
154
+ overflow: hidden;
155
+ position: relative;
156
+ }
157
+
158
+ :is(.mx-section--has-background, .mx-section:has(.mx-background--image)) > div {
159
+ position: relative;
160
+ }
161
+ }
162
+
163
+ /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNlY3Rpb24uY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztFQUVFOztBQUVGO0VBQ0U7SUFDRSwyQkFBMkI7O0lBRTNCLHlCQUFxQzs7SUFBckMscUNBQXFDO0lBQ3JDLDJCQUEyQjtFQUM3Qjs7RUFFQTtJQUNFLGtEQUFrRDtFQUNwRDs7RUFFQTtJQUNFLGlEQUFpRDtFQUNuRDs7RUFFQTtJQUNFLGlEQUFpRDtFQUNuRDs7RUFFQTtJQUNFLGtEQUFrRDtFQUNwRDs7RUFFQTtJQUNFLG9EQUFvRDtFQUN0RDs7RUFFQTtJQUNFLHVEQUF1RDtFQUN6RDs7RUFFQTtJQUNFLHVEQUF1RDtFQUN6RDs7RUFFQTtJQUNFLHdEQUF3RDtFQUMxRDs7RUFFQTtJQUNFLDBEQUEwRDtFQUM1RDs7RUFFQTtJQUNFLHFEQUFxRDtFQUN2RDs7RUFFQTtJQUNFLHFEQUFxRDtFQUN2RDs7RUFFQTtJQUNFLHNEQUFzRDtFQUN4RDs7RUFFQTtJQUNFLHdEQUF3RDtFQUMxRDtBQUNGOztBQUVBOzs7O0VBSUU7O0FBRUY7Ozs7O0VBS0U7O0FBRUY7RUFDRTtJQUNFLG1EQUFtRDs7SUFFbkQsc0NBQXNDO0VBU3hDOztJQVBFOzs7OztNQUtFLHdDQUF3QztJQUMxQzs7RUFHRjtJQUNFLHNEQUFzRDs7SUFFdEQsZ0JBQWdCOztJQUVoQiw4QkFBOEI7RUEwQmhDOztJQXhCRTs7Ozs7TUFLRSx5Q0FBeUM7SUFDM0M7O0lBRUEsNkJBQTZCOztJQUU3Qjs7Ozs7O01BTUUsdUNBQXVDO0lBQ3pDOztJQUVBLCtCQUErQjs7SUFFL0I7TUFDRSxtQ0FBbUM7SUFDckM7QUFFSjs7QUFFQTs7RUFFRTs7QUFFRjtFQUNFO0lBQ0Usa0NBQWtDO0lBQ2xDLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIscUJBQXFCO0lBQ3JCLG1CQUFtQjtFQUtyQjs7SUFIRTtNQUNFLHlCQUF5QjtJQUMzQjtBQUVKOztBQUVBOztFQUVFOztBQUVGO0VBQ0U7SUFDRSxnQkFBZ0I7SUFDaEIsa0JBQWtCO0VBS3BCOztJQUhFO01BQ0Usa0JBQWtCO0lBQ3BCO0FBRUoiLCJmaWxlIjoic2VjdGlvbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNlY3Rpb25cbiAqL1xuXG5AbGF5ZXIgZGVzaWduLXN5c3RlbS5sYXlvdXRzIHtcbiAgLm14LWNvbnRhaW5lciB7XG4gICAgLS1jb250YWluZXItbmFtZTogY29udGFpbmVyO1xuXG4gICAgY29udGFpbmVyLW5hbWU6IHZhcigtLWNvbnRhaW5lci1uYW1lKTtcbiAgICBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7XG4gIH1cblxuICAubXgtc2VjdGlvbi0tZGl2aWRlciB7XG4gICAgYm9yZGVyLWJsb2NrLXN0YXJ0OiAxcHggc29saWQgdmFyKC0tY29sb3VyLWJvcmRlcik7XG4gIH1cblxuICAubXgtc2VjdGlvbi0tcyB7XG4gICAgcGFkZGluZy1ibG9jazogdmFyKC0tc2VjdGlvbi1zLCB2YXIoLS1zcGFjaW5nLXMpKTtcbiAgfVxuXG4gIC5teC1zZWN0aW9uLS1tIHtcbiAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zZWN0aW9uLW0sIHZhcigtLXNwYWNpbmctbSkpO1xuICB9XG5cbiAgLm14LXNlY3Rpb24tLWwge1xuICAgIHBhZGRpbmctYmxvY2s6IHZhcigtLXNlY3Rpb24tbCwgdmFyKC0tc3BhY2luZy14bCkpO1xuICB9XG5cbiAgLm14LXNlY3Rpb24tLXhsIHtcbiAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zZWN0aW9uLXhsLCB2YXIoLS1zcGFjaW5nLXV1bCkpO1xuICB9XG5cbiAgLm14LXNlY3Rpb24tLXRvcC1zIHtcbiAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiB2YXIoLS1zZWN0aW9uLXMsIHZhcigtLXNwYWNpbmctcykpO1xuICB9XG5cbiAgLm14LXNlY3Rpb24tLXRvcC1tIHtcbiAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiB2YXIoLS1zZWN0aW9uLW0sIHZhcigtLXNwYWNpbmctbSkpO1xuICB9XG5cbiAgLm14LXNlY3Rpb24tLXRvcC1sIHtcbiAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiB2YXIoLS1zZWN0aW9uLWwsIHZhcigtLXNwYWNpbmcteGwpKTtcbiAgfVxuXG4gIC5teC1zZWN0aW9uLS10b3AteGwge1xuICAgIHBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLXNlY3Rpb24teGwsIHZhcigtLXNwYWNpbmctdXVsKSk7XG4gIH1cblxuICAubXgtc2VjdGlvbi0tYm90dG9tLXMge1xuICAgIHBhZGRpbmctYmxvY2stZW5kOiB2YXIoLS1zZWN0aW9uLXMsIHZhcigtLXNwYWNpbmctcykpO1xuICB9XG5cbiAgLm14LXNlY3Rpb24tLWJvdHRvbS1tIHtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogdmFyKC0tc2VjdGlvbi1tLCB2YXIoLS1zcGFjaW5nLW0pKTtcbiAgfVxuXG4gIC5teC1zZWN0aW9uLS1ib3R0b20tbCB7XG4gICAgcGFkZGluZy1ibG9jay1lbmQ6IHZhcigtLXNlY3Rpb24tbCwgdmFyKC0tc3BhY2luZy14bCkpO1xuICB9XG5cbiAgLm14LXNlY3Rpb24tLWJvdHRvbS14bCB7XG4gICAgcGFkZGluZy1ibG9jay1lbmQ6IHZhcigtLXNlY3Rpb24teGwsIHZhcigtLXNwYWNpbmctdXVsKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBTZWN0aW9ucyBicmVha291dHNcbiAqXG4gKiBVc2VzIGBzdWJncmlkYCBzbyBubyBzdXBwb3J0ZWQgaW4gb2xkZXIgYnJvd3NlcnMuXG4gKi9cblxuLyoqXG4gKiBTZWN0aW9ucyBmbG93cyAmIGdyb3Vwc1xuICpcbiAqIFVzZXMgYDpoYXNgIHNvIGlzIG5vdCBzdXBwb3J0ZWQgaW4gb2xkZXIgYnJvd3NlcnMuXG4gKiBzZWUgaHR0cHM6Ly93d3cuYnJhbS51cy8yMDIyLzEyLzEzL3F1YW50aXR5LXF1ZXJpZXMtZm9yLWlzbGFuZHMtb2YtZWxlbWVudHMtd2l0aC10aGUtc2FtZS1jbGFzcy10aGFua3MtdG8tY3NzLWhhcy9cbiAqL1xuXG5AbGF5ZXIgZGVzaWduLXN5c3RlbS5sYXlvdXRzIHtcbiAgLm14LXNlY3Rpb24tLWZsb3cge1xuICAgIC0tZmxvdy1zcGFjaW5nOiB2YXIoLS1zZWN0aW9uLWwsIHZhcigtLXNwYWNpbmcteGwpKTtcblxuICAgIHBhZGRpbmctYmxvY2stZW5kOiB2YXIoLS1mbG93LXNwYWNpbmcpO1xuXG4gICAgJjppcyhcbiAgICAgICAgW2NsYXNzKj1cIm14LWJhY2tncm91bmRcIl0sXG4gICAgICAgIFtjbGFzcyo9XCJteC1iYWNrZ3JvdW5kXCJdICsgLm14LXNlY3Rpb24tLWZsb3csXG4gICAgICAgIDpub3QoLm14LXNlY3Rpb24tLWZsb3c6bm90KC5teC1zZWN0aW9uLS1ncm91cCkgKyAubXgtc2VjdGlvbi0tZmxvdylcbiAgICAgICkge1xuICAgICAgcGFkZGluZy1ibG9jay1zdGFydDogdmFyKC0tZmxvdy1zcGFjaW5nKTtcbiAgICB9XG4gIH1cblxuICAubXgtc2VjdGlvbi0tZ3JvdXAge1xuICAgIC0tZ3JvdXAtc3BhY2luZzogdmFyKC0tc2VjdGlvbi14bCwgdmFyKC0tc3BhY2luZy11dWwpKTtcblxuICAgIHBhZGRpbmctYmxvY2s6IDA7XG5cbiAgICAvKiA6Zmlyc3QtaW4taXNsYW5kLW9mLWNsYXNzICovXG5cbiAgICAmOmlzKFxuICAgICAgICA6bm90KFtjbGFzcyo9XCJteC1iYWNrZ3JvdW5kXCJdKVxuICAgICAgICAgICsgLm14LXNlY3Rpb24tLWdyb3VwW2NsYXNzKj1cIm14LWJhY2tncm91bmRcIl0sXG4gICAgICAgIDpub3QoLm14LXNlY3Rpb24tLWdyb3VwICsgLm14LXNlY3Rpb24tLWdyb3VwKVxuICAgICAgKSB7XG4gICAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiB2YXIoLS1ncm91cC1zcGFjaW5nKTtcbiAgICB9XG5cbiAgICAvKiA6bGFzdC1pbi1pc2xhbmQtb2YtY2xhc3MgKi9cblxuICAgICY6aXMoXG4gICAgICAgIDpub3QoW2NsYXNzKj1cIm14LWJhY2tncm91bmRcIl0pOmhhcyhcbiAgICAgICAgICAgICsgLm14LXNlY3Rpb24tLWdyb3VwW2NsYXNzKj1cIm14LWJhY2tncm91bmRcIl1cbiAgICAgICAgICApLFxuICAgICAgICA6bm90KDpoYXMoKyAubXgtc2VjdGlvbi0tZ3JvdXApKVxuICAgICAgKSB7XG4gICAgICBwYWRkaW5nLWJsb2NrLWVuZDogdmFyKC0tZ3JvdXAtc3BhY2luZyk7XG4gICAgfVxuXG4gICAgLyogOnNpbmdsZS1pbi1pc2xhbmQtb2YtY2xhc3MgKi9cblxuICAgICY6bm90KC5teC1zZWN0aW9uLS1ncm91cCArIC5teC1zZWN0aW9uLS1ncm91cCwgOmhhcygrIC5teC1zZWN0aW9uLS1ncm91cCkpIHtcbiAgICAgIHBhZGRpbmctYmxvY2s6IHZhcigtLWdyb3VwLXNwYWNpbmcpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFNlY3Rpb24gaGVhZGVyXG4gKi9cblxuQGxheWVyIGRlc2lnbi1zeXN0ZW0ubGF5b3V0cyB7XG4gIC5teC1zZWN0aW9uX19oZWFkZXIge1xuICAgIG1hcmdpbi1ibG9jay1lbmQ6IHZhcigtLXNwYWNpbmctbSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGdhcDogdmFyKC0tc3BhY2luZy1zKTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgJiA6aXMoYSwgYnV0dG9uKSB7XG4gICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFNlY3Rpb24gQmFja2dyb3VuZCBpbWFnZVxuICovXG5cbkBsYXllciBkZXNpZ24tc3lzdGVtLmxheW91dHMge1xuICA6aXMoLm14LXNlY3Rpb24tLWhhcy1iYWNrZ3JvdW5kLCAubXgtc2VjdGlvbjpoYXMoLm14LWJhY2tncm91bmQtLWltYWdlKSkge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJiA+IGRpdiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICB9XG59XG4iXX0= */