@pnx-mixtape/mxds 0.0.15 → 0.0.16

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 (85) hide show
  1. package/dist/build/accordion.css +113 -1
  2. package/dist/build/accordion.entry.js +83 -1
  3. package/dist/build/accordion.entry.js.map +1 -0
  4. package/dist/build/base.css +1012 -1
  5. package/dist/build/breadcrumb.css +55 -1
  6. package/dist/build/button.css +127 -1
  7. package/dist/build/callout.css +11 -1
  8. package/dist/build/card.css +160 -1
  9. package/dist/build/carousel.css +125 -1
  10. package/dist/build/chunks/Accordion-O-huO4At.js +61 -0
  11. package/dist/build/chunks/Accordion-O-huO4At.js.map +1 -0
  12. package/dist/build/chunks/disclosure-widget-CtNx0f8p.js +124 -0
  13. package/dist/build/chunks/disclosure-widget-CtNx0f8p.js.map +1 -0
  14. package/dist/build/chunks/drop-menu.entry-BEhZ_Je3.js +132 -0
  15. package/dist/build/chunks/drop-menu.entry-BEhZ_Je3.js.map +1 -0
  16. package/dist/build/chunks/keyboard-C73DHu0c.js +101 -0
  17. package/dist/build/chunks/keyboard-C73DHu0c.js.map +1 -0
  18. package/dist/build/chunks/polyfills-DoxMZOqh.js +806 -0
  19. package/dist/build/chunks/polyfills-DoxMZOqh.js.map +1 -0
  20. package/dist/build/chunks/popover-DzUcnIlX.js +797 -0
  21. package/dist/build/chunks/popover-DzUcnIlX.js.map +1 -0
  22. package/dist/build/chunks/utilities-DXELy_An.js +245 -0
  23. package/dist/build/chunks/utilities-DXELy_An.js.map +1 -0
  24. package/dist/build/constants.css +151 -1
  25. package/dist/build/container-grid.css +186 -1
  26. package/dist/build/content-block.css +36 -1
  27. package/dist/build/dialog.css +116 -1
  28. package/dist/build/dialog.entry.js +93 -1
  29. package/dist/build/dialog.entry.js.map +1 -0
  30. package/dist/build/drop-menu.css +89 -1
  31. package/dist/build/drop-menu.entry.js +2 -1
  32. package/dist/build/drop-menu.entry.js.map +1 -0
  33. package/dist/build/drupal.css +70 -1
  34. package/dist/build/filters.css +117 -1
  35. package/dist/build/filters.entry.js +138 -1
  36. package/dist/build/filters.entry.js.map +1 -0
  37. package/dist/build/footer.css +141 -1
  38. package/dist/build/form.css +505 -1
  39. package/dist/build/global-alert.css +60 -1
  40. package/dist/build/global-alert.entry.js +68 -1
  41. package/dist/build/global-alert.entry.js.map +1 -0
  42. package/dist/build/grid.css +201 -1
  43. package/dist/build/header.css +161 -1
  44. package/dist/build/header.entry.js +103 -1
  45. package/dist/build/header.entry.js.map +1 -0
  46. package/dist/build/hero-banner.css +67 -1
  47. package/dist/build/icon.css +399 -1
  48. package/dist/build/in-page-alert.css +93 -1
  49. package/dist/build/in-page-navigation.css +17 -1
  50. package/dist/build/in-page-navigation.entry.js +99 -1
  51. package/dist/build/in-page-navigation.entry.js.map +1 -0
  52. package/dist/build/link-list.css +45 -1
  53. package/dist/build/list-item.css +29 -1
  54. package/dist/build/masthead.css +53 -1
  55. package/dist/build/navigation.css +391 -1
  56. package/dist/build/navigation.entry.js +124 -1
  57. package/dist/build/navigation.entry.js.map +1 -0
  58. package/dist/build/page.css +65 -1
  59. package/dist/build/pagination.css +117 -1
  60. package/dist/build/results-bar.css +21 -1
  61. package/dist/build/section.css +147 -1
  62. package/dist/build/side-navigation.css +85 -1
  63. package/dist/build/sidebar.css +53 -1
  64. package/dist/build/social-links.css +20 -1
  65. package/dist/build/steps.css +118 -1
  66. package/dist/build/sticky.css +47 -1
  67. package/dist/build/sticky.entry.js +60 -1
  68. package/dist/build/sticky.entry.js.map +1 -0
  69. package/dist/build/tabs.css +108 -1
  70. package/dist/build/tabs.entry.js +202 -1
  71. package/dist/build/tabs.entry.js.map +1 -0
  72. package/dist/build/tag.css +70 -1
  73. package/dist/build/utilities.css +178 -1
  74. package/package.json +11 -4
  75. package/src/Component/Carousel/Carousel.stories.ts +1 -1
  76. package/src/Component/DropMenu/drop-menu.css +1 -1
  77. package/src/Layout/Section/Section.stories.ts +2 -1
  78. package/src/Layout/Section/section.twig +3 -1
  79. package/dist/build/chunks/Accordion-RtUfbsTy.js +0 -1
  80. package/dist/build/chunks/disclosure-widget-CPdkUWkq.js +0 -1
  81. package/dist/build/chunks/drop-menu.entry-BqBzLfVC.js +0 -1
  82. package/dist/build/chunks/keyboard-Cs0cduxq.js +0 -1
  83. package/dist/build/chunks/polyfills-5KNOJw2W.js +0 -1
  84. package/dist/build/chunks/popover-CiVl-0jk.js +0 -1
  85. package/dist/build/chunks/utilities-CE6xwgqF.js +0 -2
@@ -1 +1,113 @@
1
- @layer design-system.defaults{details summary{list-style-type:none}:is(details summary):is(::-webkit-details-marker,::marker){display:none;content:""}:is(mx-accordion,mx-accordiondiv,mx-accordionmobile){display:block}:where(:is(div.mx-accordion,mx-accordiondiv)) .mx-accordion__toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;color:inherit;font-size:inherit;background:transparent none repeat 0 0 / auto auto padding-box border-box scroll;background:initial;border:medium none currentcolor;border:initial;padding:0;padding:initial}}@layer design-system.components{.mx-accordion__title{margin-block-end:var(--spacing-m);display:flex;flex-flow:row wrap;gap:var(--spacing-s);align-items:center}.mx-accordions__toggle-all{margin-inline-start:auto}.mx-accordion .mx-accordion__toggle{cursor:pointer;inline-size:100%}.mx-accordion:is(>h2,>h3,>h4,>h5,>h6){all:unset}.mx-accordion>.mx-accordion__content{display:none;opacity:0;overflow:hidden}:is(.mx-accordion:is([open],[data-open=true])>.mx-accordion__toggle) .mx-icon--chevron-down{transform:rotate(180deg)}.mx-accordion:is([open],[data-open=true])>.mx-accordion__content{opacity:1;display:block}@starting-style{.mx-accordion:is([open],[data-open=true])>.mx-accordion__content{opacity:0;display:block}}.mx-accordion--divided{border-block-end:1px solid var(--line-colour, var(--colour-border));border-block-end:var(--line-width, 1px) solid var(--line-colour, var(--colour-border))}.mx-accordion--divided .mx-accordion__toggle{padding-block:var(--vertical-padding, var(--spacing-xxs));padding-inline:0;padding-inline:var(--horizontal-padding, 0);display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-xxs)}.mx-accordion--divided:is([open],[data-open=true])>.mx-accordion__content{border-block-start:1px solid var(--line-colour, var(--colour-border));border-block-start:var(--line-width, 1px) solid var(--line-colour, var(--colour-border));padding-block:var(--vertical-padding, var(--spacing-xxs));padding-inline:0;padding-inline:var(--horizontal-padding, 0)}}@media print{.mx-accordion .mx-accordion__content{display:block!important}}
1
+ /**
2
+ * Accordion
3
+ */
4
+
5
+ @layer design-system.defaults {
6
+ details summary {
7
+ list-style-type: none;
8
+ }
9
+
10
+ :is(details summary):is(::-webkit-details-marker,::marker) {
11
+ display: none;
12
+ content: "";
13
+ }
14
+
15
+ :is(mx-accordion, mx-accordiondiv, mx-accordionmobile) {
16
+ display: block;
17
+ }
18
+ :where(:is(div.mx-accordion,mx-accordiondiv)) .mx-accordion__toggle {
19
+ -webkit-appearance: none;
20
+ -moz-appearance: none;
21
+ appearance: none;
22
+ color: inherit;
23
+ font-size: inherit;
24
+ background: transparent none repeat 0 0 / auto auto padding-box border-box scroll;
25
+ background: initial;
26
+ border: medium none currentcolor;
27
+ border: initial;
28
+ padding: 0;
29
+ padding: initial;
30
+ }
31
+ }
32
+
33
+ @layer design-system.components {
34
+ .mx-accordion__title {
35
+ margin-block-end: var(--spacing-m);
36
+ display: flex;
37
+ flex-flow: row wrap;
38
+ gap: var(--spacing-s);
39
+ align-items: center;
40
+ }
41
+
42
+ .mx-accordions__toggle-all {
43
+ margin-inline-start: auto;
44
+ }
45
+ .mx-accordion .mx-accordion__toggle {
46
+ cursor: pointer;
47
+ inline-size: 100%;
48
+ }
49
+
50
+ .mx-accordion:is( > h2, > h3, > h4, > h5, > h6) {
51
+ all: unset;
52
+ }
53
+
54
+ .mx-accordion > .mx-accordion__content {
55
+ display: none;
56
+ opacity: 0;
57
+ overflow: hidden;
58
+ }
59
+ :is(.mx-accordion:is([open],[data-open="true"]) > .mx-accordion__toggle) .mx-icon--chevron-down {
60
+ transform: rotate(180deg);
61
+ }
62
+
63
+ .mx-accordion:is([open],[data-open="true"]) > .mx-accordion__content {
64
+ opacity: 1;
65
+ display: block;
66
+ }
67
+
68
+ @starting-style {
69
+
70
+ .mx-accordion:is([open],[data-open="true"]) > .mx-accordion__content {
71
+ opacity: 0;
72
+ display: block;
73
+ }
74
+ }
75
+
76
+ .mx-accordion--divided {
77
+ border-block-end: 1px solid
78
+ var(--line-colour, var(--colour-border));
79
+ border-block-end: var(--line-width, 1px) solid
80
+ var(--line-colour, var(--colour-border));
81
+ }
82
+
83
+ .mx-accordion--divided .mx-accordion__toggle {
84
+ padding-block: var(--vertical-padding, var(--spacing-xxs));
85
+ padding-inline: 0;
86
+ padding-inline: var(--horizontal-padding, 0);
87
+ display: flex;
88
+ justify-content: space-between;
89
+ align-items: center;
90
+ gap: var(--spacing-xxs);
91
+ }
92
+ .mx-accordion--divided:is([open],[data-open="true"]) > .mx-accordion__content {
93
+ border-block-start: 1px solid
94
+ var(--line-colour, var(--colour-border));
95
+ border-block-start: var(--line-width, 1px) solid
96
+ var(--line-colour, var(--colour-border));
97
+ padding-block: var(--vertical-padding, var(--spacing-xxs));
98
+ padding-inline: 0;
99
+ padding-inline: var(--horizontal-padding, 0);
100
+ }
101
+ }
102
+
103
+ /**
104
+ * Print stylesheet
105
+ */
106
+
107
+ @media print {
108
+ .mx-accordion .mx-accordion__content {
109
+ display: block !important;
110
+ }
111
+ }
112
+
113
+ /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY29yZGlvbi5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0VBRUU7O0FBRUY7SUFFSTtNQUNFLHFCQUFxQjtJQU12Qjs7TUFKRTtRQUNFLGFBQWE7UUFDYixXQUFXO01BQ2I7O0VBSUo7SUFDRSxjQUFjO0VBQ2hCO0lBR0U7TUFDRSx3QkFBZ0I7U0FBaEIscUJBQWdCO2NBQWhCLGdCQUFnQjtNQUNoQixjQUFjO01BQ2Qsa0JBQWtCO01BQ2xCLGlGQUFtQjtNQUFuQixtQkFBbUI7TUFDbkIsZ0NBQWU7TUFBZixlQUFlO01BQ2YsVUFBZ0I7TUFBaEIsZ0JBQWdCO0lBQ2xCO0FBRUo7O0FBRUE7RUFDRTtJQUNFLGtDQUFrQztJQUNsQyxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHFCQUFxQjtJQUNyQixtQkFBbUI7RUFDckI7O0VBRUE7SUFDRSx5QkFBeUI7RUFDM0I7SUFHRTtNQUNFLGVBQWU7TUFDZixpQkFBaUI7SUFDbkI7O0lBRUE7TUFDRSxVQUFVO0lBQ1o7O0lBRUE7TUFDRSxhQUFhO01BQ2IsVUFBVTtNQUNWLGdCQUFnQjtJQUNsQjtRQUlJO1VBQ0UseUJBQXlCO1FBQzNCOztNQUdGO1FBQ0UsVUFBVTtRQUNWLGNBQWM7TUFNaEI7O1FBSkU7O01BSkY7VUFLSSxVQUFVO1VBQ1YsY0FBYztNQUVsQjtRQURFOztFQUtOO0lBQ0U7OENBQzBDO0lBRDFDOzhDQUMwQztFQW1CNUM7O0lBakJFO01BQ0UsMERBQTBEO01BQzFELGlCQUE0QztNQUE1Qyw0Q0FBNEM7TUFDNUMsYUFBYTtNQUNiLDhCQUE4QjtNQUM5QixtQkFBbUI7TUFDbkIsdUJBQXVCO0lBQ3pCO01BR0U7UUFDRTtrREFDMEM7UUFEMUM7a0RBQzBDO1FBQzFDLDBEQUEwRDtRQUMxRCxpQkFBNEM7UUFBNUMsNENBQTRDO01BQzlDO0FBR047O0FBRUE7O0VBRUU7O0FBRUY7SUFFSTtNQUNFLHlCQUF5QjtJQUMzQjtBQUVKIiwiZmlsZSI6ImFjY29yZGlvbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFjY29yZGlvblxuICovXG5cbkBsYXllciBkZXNpZ24tc3lzdGVtLmRlZmF1bHRzIHtcbiAgZGV0YWlscyB7XG4gICAgJiBzdW1tYXJ5IHtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICAgICAgJjppcyg6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIsIDo6bWFya2VyKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgOmlzKG14LWFjY29yZGlvbiwgbXgtYWNjb3JkaW9uZGl2LCBteC1hY2NvcmRpb25tb2JpbGUpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIDp3aGVyZSg6aXMoZGl2Lm14LWFjY29yZGlvbiwgbXgtYWNjb3JkaW9uZGl2KSkge1xuICAgICYgLm14LWFjY29yZGlvbl9fdG9nZ2xlIHtcbiAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgIGJhY2tncm91bmQ6IGluaXRpYWw7XG4gICAgICBib3JkZXI6IGluaXRpYWw7XG4gICAgICBwYWRkaW5nOiBpbml0aWFsO1xuICAgIH1cbiAgfVxufVxuXG5AbGF5ZXIgZGVzaWduLXN5c3RlbS5jb21wb25lbnRzIHtcbiAgLm14LWFjY29yZGlvbl9fdGl0bGUge1xuICAgIG1hcmdpbi1ibG9jay1lbmQ6IHZhcigtLXNwYWNpbmctbSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGdhcDogdmFyKC0tc3BhY2luZy1zKTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgLm14LWFjY29yZGlvbnNfX3RvZ2dsZS1hbGwge1xuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG4gIH1cblxuICAubXgtYWNjb3JkaW9uIHtcbiAgICAmIC5teC1hY2NvcmRpb25fX3RvZ2dsZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBpbmxpbmUtc2l6ZTogMTAwJTtcbiAgICB9XG5cbiAgICAmOmlzKD4gaDIsID4gaDMsID4gaDQsID4gaDUsID4gaDYpIHtcbiAgICAgIGFsbDogdW5zZXQ7XG4gICAgfVxuXG4gICAgJiA+IC5teC1hY2NvcmRpb25fX2NvbnRlbnQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgICY6aXMoW29wZW5dLCBbZGF0YS1vcGVuPVwidHJ1ZVwiXSkge1xuICAgICAgJiA+IC5teC1hY2NvcmRpb25fX3RvZ2dsZSB7XG4gICAgICAgICYgLm14LWljb24tLWNoZXZyb24tZG93biB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmID4gLm14LWFjY29yZGlvbl9fY29udGVudCB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgIEBzdGFydGluZy1zdHlsZSB7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5teC1hY2NvcmRpb24tLWRpdmlkZWQge1xuICAgIGJvcmRlci1ibG9jay1lbmQ6IHZhcigtLWxpbmUtd2lkdGgsIDFweCkgc29saWRcbiAgICAgIHZhcigtLWxpbmUtY29sb3VyLCB2YXIoLS1jb2xvdXItYm9yZGVyKSk7XG5cbiAgICAmIC5teC1hY2NvcmRpb25fX3RvZ2dsZSB7XG4gICAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS12ZXJ0aWNhbC1wYWRkaW5nLCB2YXIoLS1zcGFjaW5nLXh4cykpO1xuICAgICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLWhvcml6b250YWwtcGFkZGluZywgMCk7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogdmFyKC0tc3BhY2luZy14eHMpO1xuICAgIH1cblxuICAgICY6aXMoW29wZW5dLCBbZGF0YS1vcGVuPVwidHJ1ZVwiXSkge1xuICAgICAgJiA+IC5teC1hY2NvcmRpb25fX2NvbnRlbnQge1xuICAgICAgICBib3JkZXItYmxvY2stc3RhcnQ6IHZhcigtLWxpbmUtd2lkdGgsIDFweCkgc29saWRcbiAgICAgICAgICB2YXIoLS1saW5lLWNvbG91ciwgdmFyKC0tY29sb3VyLWJvcmRlcikpO1xuICAgICAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS12ZXJ0aWNhbC1wYWRkaW5nLCB2YXIoLS1zcGFjaW5nLXh4cykpO1xuICAgICAgICBwYWRkaW5nLWlubGluZTogdmFyKC0taG9yaXpvbnRhbC1wYWRkaW5nLCAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBQcmludCBzdHlsZXNoZWV0XG4gKi9cblxuQG1lZGlhIHByaW50IHtcbiAgLm14LWFjY29yZGlvbiB7XG4gICAgJiAubXgtYWNjb3JkaW9uX19jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iXX0= */
@@ -1 +1,83 @@
1
- import"./chunks/Accordion-RtUfbsTy.js";class e extends HTMLElement{constructor(){super(),this.handleClick=({target:e})=>{e===this.expandTrigger&&this.handleExpand(),e===this.collapseTrigger&&this.handleCollapse()},this.handleExpand=()=>{this.accordions.forEach((e=>e.open=!0)),this.expandTrigger.disabled=!0,this.collapseTrigger.disabled=!1},this.handleCollapse=()=>{this.accordions.forEach((e=>e.open=!1)),this.expandTrigger.disabled=!1,this.collapseTrigger.disabled=!0},this.handleToggle=()=>{this.expandTrigger.disabled=[...this.accordions].every((e=>!0===e.open)),this.collapseTrigger.disabled=[...this.accordions].every((e=>!0!==e.open))},this.internals_=this.attachInternals(),this.controller=new AbortController}connectedCallback(){if(!this.accordions||!this.expandTrigger||!this.collapseTrigger)return;this.collapseTrigger.disabled=!0;const{signal:e}=this.controller;this.addEventListener("click",this.handleClick,{signal:e}),this.accordions.forEach((t=>t.addEventListener("toggle",this.handleToggle,{signal:e})))}disconnectedCallback(){this.controller.abort()}get accordions(){const e=this.querySelectorAll("details");if(!e.length)throw new Error(`${this.localName} must contain at least one <details> element.`);return e}get expandTrigger(){const e=this.querySelector("button[data-expand]");if(!e)throw new Error(`${this.localName} must contain a <button data-expand> element.`);return e}get collapseTrigger(){const e=this.querySelector("button[data-collapse]");if(!e)throw new Error(`${this.localName} must contain a <button data-collapse> element.`);return e}}customElements.define("mx-accordion-group",e);
1
+ import "./chunks/Accordion-O-huO4At.js";
2
+ class AccordionGroup extends HTMLElement {
3
+ constructor() {
4
+ super();
5
+ this.handleClick = ({ target }) => {
6
+ if (target === this.expandTrigger) {
7
+ this.handleExpand();
8
+ }
9
+ if (target === this.collapseTrigger) {
10
+ this.handleCollapse();
11
+ }
12
+ };
13
+ this.handleExpand = () => {
14
+ this.accordions.forEach((detail) => detail.open = true);
15
+ this.expandTrigger.disabled = true;
16
+ this.collapseTrigger.disabled = false;
17
+ };
18
+ this.handleCollapse = () => {
19
+ this.accordions.forEach((detail) => detail.open = false);
20
+ this.expandTrigger.disabled = false;
21
+ this.collapseTrigger.disabled = true;
22
+ };
23
+ this.handleToggle = () => {
24
+ this.expandTrigger.disabled = [...this.accordions].every(
25
+ (details) => details.open === true
26
+ );
27
+ this.collapseTrigger.disabled = [...this.accordions].every(
28
+ (details) => details.open !== true
29
+ );
30
+ };
31
+ this.internals_ = this.attachInternals();
32
+ this.controller = new AbortController();
33
+ }
34
+ connectedCallback() {
35
+ if (!this.accordions || !this.expandTrigger || !this.collapseTrigger) return;
36
+ this.collapseTrigger.disabled = true;
37
+ const { signal } = this.controller;
38
+ this.addEventListener("click", this.handleClick, {
39
+ signal
40
+ });
41
+ this.accordions.forEach(
42
+ (details) => details.addEventListener("toggle", this.handleToggle, {
43
+ signal
44
+ })
45
+ );
46
+ }
47
+ disconnectedCallback() {
48
+ this.controller.abort();
49
+ }
50
+ get accordions() {
51
+ const accordions = this.querySelectorAll("details");
52
+ if (!accordions.length) {
53
+ throw new Error(
54
+ `${this.localName} must contain at least one <details> element.`
55
+ );
56
+ }
57
+ return accordions;
58
+ }
59
+ get expandTrigger() {
60
+ const trigger = this.querySelector(
61
+ "button[data-expand]"
62
+ );
63
+ if (!trigger) {
64
+ throw new Error(
65
+ `${this.localName} must contain a <button data-expand> element.`
66
+ );
67
+ }
68
+ return trigger;
69
+ }
70
+ get collapseTrigger() {
71
+ const trigger = this.querySelector(
72
+ "button[data-collapse]"
73
+ );
74
+ if (!trigger) {
75
+ throw new Error(
76
+ `${this.localName} must contain a <button data-collapse> element.`
77
+ );
78
+ }
79
+ return trigger;
80
+ }
81
+ }
82
+ customElements.define("mx-accordion-group", AccordionGroup);
83
+ //# sourceMappingURL=accordion.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.entry.js","sources":["../../src/Component/Accordion/Elements/AccordionGroup.ts"],"sourcesContent":["/**\n * Accordion Group\n * @file Support opening and closing all.\n */\n\nexport default class AccordionGroup extends HTMLElement {\n internals_: ElementInternals\n controller: AbortController\n\n constructor() {\n super()\n this.internals_ = this.attachInternals()\n this.controller = new AbortController()\n }\n\n connectedCallback(): void {\n if (!this.accordions || !this.expandTrigger || !this.collapseTrigger) return\n this.collapseTrigger.disabled = true\n const { signal }: AbortController = this.controller\n this.addEventListener(\"click\", this.handleClick, {\n signal,\n })\n this.accordions.forEach(details =>\n details.addEventListener(\"toggle\", this.handleToggle, {\n signal,\n }),\n )\n }\n\n disconnectedCallback(): void {\n this.controller.abort()\n }\n\n handleClick = ({ target }) => {\n if (target === this.expandTrigger) {\n this.handleExpand()\n }\n if (target === this.collapseTrigger) {\n this.handleCollapse()\n }\n }\n\n handleExpand = () => {\n this.accordions.forEach(detail => (detail.open = true))\n this.expandTrigger.disabled = true\n this.collapseTrigger.disabled = false\n }\n\n handleCollapse = () => {\n this.accordions.forEach(detail => (detail.open = false))\n this.expandTrigger.disabled = false\n this.collapseTrigger.disabled = true\n }\n\n handleToggle = () => {\n this.expandTrigger.disabled = [...this.accordions].every(\n details => details.open === true,\n )\n this.collapseTrigger.disabled = [...this.accordions].every(\n details => details.open !== true,\n )\n }\n\n get accordions(): NodeListOf<HTMLDetailsElement> | null {\n const accordions: NodeListOf<HTMLDetailsElement> | null =\n this.querySelectorAll(\"details\")\n if (!accordions.length) {\n throw new Error(\n `${this.localName} must contain at least one <details> element.`,\n )\n }\n return accordions\n }\n\n get expandTrigger(): HTMLButtonElement | null {\n const trigger: HTMLButtonElement | null = this.querySelector(\n \"button[data-expand]\",\n )\n if (!trigger) {\n throw new Error(\n `${this.localName} must contain a <button data-expand> element.`,\n )\n }\n return trigger\n }\n\n get collapseTrigger(): HTMLButtonElement | null {\n const trigger: HTMLButtonElement | null = this.querySelector(\n \"button[data-collapse]\",\n )\n if (!trigger) {\n throw new Error(\n `${this.localName} must contain a <button data-collapse> element.`,\n )\n }\n return trigger\n }\n}\n\ncustomElements.define(\"mx-accordion-group\", AccordionGroup)\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"mx-accordion-group\": AccordionGroup\n }\n}\n"],"names":[],"mappings":";AAKA,MAAqB,uBAAuB,YAAY;AAAA,EAItD,cAAc;AACN;AAuBM,SAAA,cAAA,CAAC,EAAE,aAAa;AACxB,UAAA,WAAW,KAAK,eAAe;AACjC,aAAK,aAAa;AAAA,MACpB;AACI,UAAA,WAAW,KAAK,iBAAiB;AACnC,aAAK,eAAe;AAAA,MACtB;AAAA,IAAA;AAGF,SAAA,eAAe,MAAM;AACnB,WAAK,WAAW,QAAQ,CAAW,WAAA,OAAO,OAAO,IAAK;AACtD,WAAK,cAAc,WAAW;AAC9B,WAAK,gBAAgB,WAAW;AAAA,IAAA;AAGlC,SAAA,iBAAiB,MAAM;AACrB,WAAK,WAAW,QAAQ,CAAW,WAAA,OAAO,OAAO,KAAM;AACvD,WAAK,cAAc,WAAW;AAC9B,WAAK,gBAAgB,WAAW;AAAA,IAAA;AAGlC,SAAA,eAAe,MAAM;AACnB,WAAK,cAAc,WAAW,CAAC,GAAG,KAAK,UAAU,EAAE;AAAA,QACjD,CAAA,YAAW,QAAQ,SAAS;AAAA,MAAA;AAE9B,WAAK,gBAAgB,WAAW,CAAC,GAAG,KAAK,UAAU,EAAE;AAAA,QACnD,CAAA,YAAW,QAAQ,SAAS;AAAA,MAAA;AAAA,IAC9B;AAjDK,SAAA,aAAa,KAAK;AAClB,SAAA,aAAa,IAAI;EACxB;AAAA,EAEA,oBAA0B;AACpB,QAAA,CAAC,KAAK,cAAc,CAAC,KAAK,iBAAiB,CAAC,KAAK,gBAAiB;AACtE,SAAK,gBAAgB,WAAW;AAC1B,UAAA,EAAE,OAAO,IAAqB,KAAK;AACpC,SAAA,iBAAiB,SAAS,KAAK,aAAa;AAAA,MAC/C;AAAA,IAAA,CACD;AACD,SAAK,WAAW;AAAA,MAAQ,CACtB,YAAA,QAAQ,iBAAiB,UAAU,KAAK,cAAc;AAAA,QACpD;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAAA,EAEA,uBAA6B;AAC3B,SAAK,WAAW;EAClB;AAAA,EAgCA,IAAI,aAAoD;AAChD,UAAA,aACJ,KAAK,iBAAiB,SAAS;AAC7B,QAAA,CAAC,WAAW,QAAQ;AACtB,YAAM,IAAI;AAAA,QACR,GAAG,KAAK,SAAS;AAAA,MAAA;AAAA,IAErB;AACO,WAAA;AAAA,EACT;AAAA,EAEA,IAAI,gBAA0C;AAC5C,UAAM,UAAoC,KAAK;AAAA,MAC7C;AAAA,IAAA;AAEF,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI;AAAA,QACR,GAAG,KAAK,SAAS;AAAA,MAAA;AAAA,IAErB;AACO,WAAA;AAAA,EACT;AAAA,EAEA,IAAI,kBAA4C;AAC9C,UAAM,UAAoC,KAAK;AAAA,MAC7C;AAAA,IAAA;AAEF,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI;AAAA,QACR,GAAG,KAAK,SAAS;AAAA,MAAA;AAAA,IAErB;AACO,WAAA;AAAA,EACT;AACF;AAEA,eAAe,OAAO,sBAAsB,cAAc;"}