@pnx-mixtape/mxds 0.0.26 → 0.0.28

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 (37) hide show
  1. package/.storybook/main.ts +4 -1
  2. package/.storybook/vitest.setup.ts +37 -1
  3. package/dist/build/accordion.css +1 -103
  4. package/dist/build/accordion.entry.js +1 -1
  5. package/dist/build/chunks/{DropMenu-plGsgySm.js → DropMenu-LnJEp-sg.js} +1 -1
  6. package/dist/build/constants.css +1 -100
  7. package/dist/build/drop-menu.entry.js +2 -2
  8. package/dist/build/filters.entry.js +1 -1
  9. package/dist/build/header.entry.js +450 -330
  10. package/dist/build/popover.entry.js +1 -1
  11. package/dist/build/tabs.entry.js +2 -2
  12. package/package.json +9 -11
  13. package/src/Component/Accordion/__snapshots__/AccordionItem.stories.ts.snap +1 -1
  14. package/src/Component/Accordion/accordion.css +4 -0
  15. package/src/Component/Dialog/__snapshots__/Dialog.stories.ts.snap +6 -6
  16. package/src/Component/DropMenu/__snapshots__/DropMenu.stories.ts.snap +4 -4
  17. package/src/Component/Filters/__snapshots__/FilterItem.stories.ts.snap +2 -2
  18. package/src/Component/Filters/__snapshots__/Filters.stories.ts.snap +8 -8
  19. package/src/Component/GlobalAlert/__snapshots__/GlobalAlert.stories.ts.snap +2 -2
  20. package/src/Component/InPageNavigation/Elements/InPageNavigation.ts +22 -3
  21. package/src/Component/InPageNavigation/InPageNavigation.stories.ts +10 -0
  22. package/src/Component/InPageNavigation/__snapshots__/InPageNavigation.stories.ts.snap +24 -19
  23. package/src/Component/InPageNavigation/in-page-navigation.css +3 -1
  24. package/src/Component/InPageNavigation/in-page-navigation.twig +3 -2
  25. package/src/Component/Navigation/__snapshots__/Navigation.stories.ts.snap +18 -18
  26. package/src/Component/Popover/__snapshots__/Popover.stories.ts.snap +26 -26
  27. package/src/Component/Tabs/__snapshots__/Tabs.stories.ts.snap +8 -8
  28. package/src/Component/UtilityList/__snapshots__/UtilityList.stories.ts.snap +6 -6
  29. package/src/Form/FormItem/__snapshots__/FormItem.stories.ts.snap +8 -8
  30. package/src/Form/Search/search-form.twig +2 -1
  31. package/src/Form/Select/__snapshots__/Select.stories.ts.snap +1 -1
  32. package/src/Form/Textarea/__snapshots__/Textarea.stories.ts.snap +1 -1
  33. package/src/Layout/Header/__snapshots__/Header.stories.ts.snap +23 -23
  34. package/src/Layout/Section/__snapshots__/Section.stories.ts.snap +5 -5
  35. package/src/Layout/Section/section.twig +2 -1
  36. /package/dist/build/chunks/{Accordion-Dwh42fp7.js → Accordion-BzKLBuWL.js} +0 -0
  37. /package/dist/build/chunks/{Popover-Bws25suh.js → Popover-C4gisyxr.js} +0 -0
@@ -21,7 +21,10 @@ const config: StorybookConfig = {
21
21
  const { mergeConfig } = await import("vite")
22
22
  return mergeConfig(config, {
23
23
  // Add dependencies to pre-optimization
24
- cacheDir: `${config.cacheDir}/html`,
24
+ cacheDir: "node_modules/.vite-storybook",
25
+ build: {
26
+ cssMinify: "esbuild",
27
+ },
25
28
  })
26
29
  },
27
30
  }
@@ -12,6 +12,42 @@ beforeAll(annotations.beforeAll)
12
12
 
13
13
  afterEach(async () => {
14
14
  await new Promise(resolve => window.requestIdleCallback(resolve))
15
- const element = page.getByTestId("page")?.element()?.innerHTML
15
+ const pageEl = page.getByTestId("page")?.element()
16
+ if (!pageEl) return
17
+
18
+ // Find all elements with aria attributes or react-aria names
19
+ const selector =
20
+ '[aria-controls],[aria-labelledby],[aria-owns],[aria-describedby],[name^="react-aria"]'
21
+ const els = Array.from(pageEl.querySelectorAll(selector))
22
+
23
+ const attributes = ["aria-controls", "aria-labelledby", "aria-describedby", "aria-owns", "name"]
24
+
25
+ // Collect the original IDs
26
+ const ids: string[] = []
27
+
28
+ // Replace attribute values with unique-${ix}
29
+ attributes.forEach(attr => {
30
+ els.forEach((el, ix) => {
31
+ if (!el.hasAttribute(attr)) return
32
+
33
+ const originalValue = el.getAttribute(attr)
34
+ if (originalValue && !ids.includes(originalValue)) {
35
+ ids.push(originalValue)
36
+ }
37
+ el.setAttribute(attr, `unique-${ix}`)
38
+ })
39
+ })
40
+
41
+ // Replace the actual id attributes that match collected IDs
42
+ if (ids.length) {
43
+ ids.forEach((id, ix) => {
44
+ const idElements = pageEl.querySelectorAll(`[id="${id}"]`)
45
+ idElements.forEach(el => {
46
+ el.setAttribute("id", `unique-${ix}`)
47
+ })
48
+ })
49
+ }
50
+
51
+ const element = pageEl.innerHTML
16
52
  expect(element).toMatchSnapshot()
17
53
  })
@@ -1,103 +1 @@
1
- @layer design-system.defaults {
2
- details summary {
3
- list-style-type: none
4
- }
5
-
6
- :is(details summary):is(::-webkit-details-marker,::marker) {
7
- display: none;
8
- content: ""
9
- }
10
-
11
- :is(mx-accordion,mx-accordiondiv,mx-accordionmobile,mx-accordion-group) {
12
- display: block
13
- }
14
-
15
- :where(:is(div.mx-accordion,mx-accordiondiv)) .mx-accordion__toggle {
16
- -webkit-appearance: none;
17
- -moz-appearance: none;
18
- appearance: none;
19
- color: inherit;
20
- font-size: inherit;
21
- background: transparent none repeat 0 0 / auto auto padding-box border-box scroll;
22
- background: initial;
23
- border: medium none currentcolor;
24
- border: initial;
25
- padding: 0;
26
- padding: initial
27
- }
28
-
29
- mx-accordion-group:not(:defined) .mx-accordions__toggle-all {
30
- display: none
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
-
46
- .mx-accordion .mx-accordion__toggle {
47
- cursor: pointer;
48
- inline-size: 100%
49
- }
50
-
51
- .mx-accordion:is(>h2,>h3,>h4,>h5,>h6) {
52
- all: unset
53
- }
54
-
55
- .mx-accordion > .mx-accordion__content {
56
- display: none;
57
- opacity: 0;
58
- overflow: hidden
59
- }
60
-
61
- :is(.mx-accordion:is([open],[data-open=true])>.mx-accordion__toggle) .mx-icon--chevron-down {
62
- transform: rotate(180deg)
63
- }
64
-
65
- .mx-accordion:is([open],[data-open=true]) > .mx-accordion__content {
66
- opacity: 1;
67
- display: block
68
- }
69
-
70
- @starting-style {
71
- .mx-accordion:is([open],[data-open=true]) > .mx-accordion__content {
72
- opacity: 0;
73
- display: block
74
- }
75
- }.mx-accordion--divided {
76
- border-block-end: 1px solid var(--line-colour, var(--colour-border));
77
- border-block-end: var(--line-width, 1px) solid var(--line-colour, var(--colour-border))
78
- }
79
-
80
- .mx-accordion--divided .mx-accordion__toggle {
81
- padding-block: var(--vertical-padding, var(--spacing-xxs));
82
- padding-inline: 0;
83
- padding-inline: var(--horizontal-padding, 0);
84
- display: flex;
85
- justify-content: space-between;
86
- align-items: center;
87
- gap: var(--spacing-xxs)
88
- }
89
-
90
- .mx-accordion--divided:is([open],[data-open=true]) > .mx-accordion__content {
91
- border-block-start: 1px solid var(--line-colour, var(--colour-border));
92
- border-block-start: var(--line-width, 1px) solid var(--line-colour, var(--colour-border));
93
- padding-block: var(--vertical-padding, var(--spacing-xxs));
94
- padding-inline: 0;
95
- padding-inline: var(--horizontal-padding, 0)
96
- }
97
- }
98
-
99
- @media print {
100
- .mx-accordion .mx-accordion__content {
101
- display: block !important
102
- }
103
- }
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,mx-accordion-group){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}mx-accordion-group:not(:defined) .mx-accordions__toggle-all{display:none}}@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,5 +1,5 @@
1
1
  import "./chunks/utilities-DepaJdUg.js";
2
- import "./chunks/Accordion-Dwh42fp7.js";
2
+ import "./chunks/Accordion-BzKLBuWL.js";
3
3
  var AccordionGroup = class extends HTMLElement {
4
4
  internals_;
5
5
  controller;
@@ -1,4 +1,4 @@
1
- import { t as Popover } from "./Popover-Bws25suh.js";
1
+ import { t as Popover } from "./Popover-C4gisyxr.js";
2
2
  var DropMenu = class extends Popover {
3
3
  controller;
4
4
  closeOnClick;
@@ -1,100 +1 @@
1
- @property --scheme {
2
- syntax: "light | dark";
3
- inherits: true;
4
- initial-value: light;
5
- }
6
-
7
- @layer design-system.defaults {
8
- :root {
9
- --colour-primary: hsl(223, 100%, 50%);
10
- --colour-primary-light: color-mix(in oklch, var(--colour-primary), white 90%);
11
- --colour-primary-lighter: color-mix(in oklch, var(--colour-primary), white 20%);
12
- --colour-primary-darker: color-mix(in oklch, var(--colour-primary), black 10%);
13
- --colour-primary-scheme: dark;
14
- --colour-accent: hsl(60, 94%, 68%);
15
- --colour-accent-light: color-mix(in oklch, var(--colour-accent), white 90%);
16
- --colour-accent-lighter: color-mix(in oklch, var(--colour-accent), white 20%);
17
- --colour-accent-darker: color-mix(in oklch, var(--colour-accent), black 10%);
18
- --colour-accent-scheme: light;
19
- --colour-scheme: light;
20
- color-scheme: var(--scheme);
21
- --colour-background: light-dark(hsl(0, 0%, 100%), hsl(60, 30%, 6%));
22
- --colour-background-alt: light-dark(hsl(60, 30%, 95%), hsl(0, 0%, 5%));
23
- --colour-foreground: light-dark(hsl(60, 30%, 6%), hsl(0, 0%, 100%));
24
- --colour-foreground-alt: light-dark(hsl(60, 30%, 20%), hsl(60, 5%, 60%));
25
- --colour-border: light-dark(hsl(60, 5%, 85%), hsl(0, 0%, 20%));
26
- --colour-link: light-dark(var(--colour-primary), var(--colour-primary-light));
27
- --colour-foreground-reverse: light-dark(hsl(0, 0%, 100%), hsl(60, 30%, 6%));
28
- --colour-background-reverse: light-dark(hsl(60, 30%, 6%), hsl(0, 0%, 100%));
29
- --colour-reverse-scheme: dark;
30
- --colour-error: hsl(348, 100%, 33%);
31
- --colour-success: hsl(120, 100%, 26%);
32
- --colour-warning: hsl(35, 100%, 32%);
33
- --colour-info: hsl(223, 100%, 50%);
34
- --font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif;
35
- --type-ratio: 1.25;
36
- --type-ratio-small: 1.125;
37
- --base-font-size: max(1rem, 16px);
38
- --font-size: var(--base-font-size);
39
- --font-size-s: calc(var(--base-font-size) / var(--type-ratio-small));
40
- --font-size-xs: calc(var(--font-size-s) / var(--type-ratio-small));
41
- --font-size-sm: calc(var(--base-font-size) * var(--type-ratio-small));
42
- --font-size-m: calc(var(--base-font-size) * var(--type-ratio));
43
- --font-size-l: calc(var(--font-size-m) * var(--type-ratio));
44
- --font-size-xl: calc(var(--font-size-l) * var(--type-ratio));
45
- --font-size-xxl: calc(var(--font-size-xl) * var(--type-ratio));
46
- --font-size-xxxl: calc(var(--font-size-xxl) * var(--type-ratio));
47
- --font-size-diff: .3;
48
- --line-height: 1.6;
49
- --line-height-h: 1.2;
50
- --line-height-ui: .9rem;
51
- --font-weight-normal: 400;
52
- --font-weight-bold: 700;
53
- --spacing-xxxxs: .25em;
54
- --spacing-xxxs: .5em;
55
- --spacing-xxs: .75em;
56
- --spacing-xs: .875em;
57
- --spacing-s: 1em;
58
- --spacing-m: 1.5em;
59
- --spacing-l: 2em;
60
- --spacing-xl: 2.5em;
61
- --spacing-xxl: 3em;
62
- --spacing-xxxl: 3.5em;
63
- --spacing-xxxxl: 3.5em;
64
- --spacing-ul: 4.5em;
65
- --spacing-uul: 5em;
66
- --spacing-uuul: 5.5em;
67
- --outline-size: .125rem;
68
- --outline-style: solid;
69
- --_colour-outline: hsl(223, 100%, 50%);
70
- --outline-color: light-dark(var(--_colour-outline), color-mix(in oklch, var(--_colour-outline), white 90%));
71
- --container-max-width-narrow: 58ch;
72
- --container-max-width: 76ch;
73
- --gutter-min: 1em;
74
- --gutter-max: 2em;
75
- --gap-s: 1em;
76
- --gap: 1.5em;
77
- --gap-l: 2em;
78
- --gap-xl: 2.5em;
79
- --breakpoint-xs: 26.25rem;
80
- --breakpoint-s: 33.75rem;
81
- --breakpoint-m: 45rem;
82
- --breakpoint-l: 59.125rem;
83
- --breakpoint-xl: 68.75rem;
84
- --shadow-color: hsla(0, 0%, 13%, .15);
85
- --shadow-size: .875em;
86
- --shadow-shape: 0 0 var(--shadow-size);
87
- --box-shadow: var(--shadow-shape) var(--shadow-color);
88
- --border-radius: .25rem;
89
- --border-radius-l: 2em;
90
- --border-radius-round: 50%;
91
- --ratio: 16 / 9;
92
- --ease: cubic-bezier(.25, 0, .3, 1)
93
- }
94
-
95
- @media (max-width: 719.98px) {
96
- :root {
97
- --section-xl: var(--spacing-xxl)
98
- }
99
- }
100
- }
1
+ @property --scheme{syntax: "light | dark"; inherits: true; initial-value: light;}@layer design-system.defaults{:root{--colour-primary: hsl(223, 100%, 50%);--colour-primary-light: color-mix(in oklch, var(--colour-primary), white 90%);--colour-primary-lighter: color-mix(in oklch, var(--colour-primary), white 20%);--colour-primary-darker: color-mix(in oklch, var(--colour-primary), black 10%);--colour-primary-scheme: dark;--colour-accent: hsl(60, 94%, 68%);--colour-accent-light: color-mix(in oklch, var(--colour-accent), white 90%);--colour-accent-lighter: color-mix(in oklch, var(--colour-accent), white 20%);--colour-accent-darker: color-mix(in oklch, var(--colour-accent), black 10%);--colour-accent-scheme: light;--colour-scheme: light;color-scheme:var(--scheme);--colour-background: light-dark(hsl(0, 0%, 100%), hsl(60, 30%, 6%));--colour-background-alt: light-dark(hsl(60, 30%, 95%), hsl(0, 0%, 5%));--colour-foreground: light-dark(hsl(60, 30%, 6%), hsl(0, 0%, 100%));--colour-foreground-alt: light-dark(hsl(60, 30%, 20%), hsl(60, 5%, 60%));--colour-border: light-dark(hsl(60, 5%, 85%), hsl(0, 0%, 20%));--colour-link: light-dark(var(--colour-primary), var(--colour-primary-light));--colour-foreground-reverse: light-dark(hsl(0, 0%, 100%), hsl(60, 30%, 6%));--colour-background-reverse: light-dark(hsl(60, 30%, 6%), hsl(0, 0%, 100%));--colour-reverse-scheme: dark;--colour-error: hsl(348, 100%, 33%);--colour-success: hsl(120, 100%, 26%);--colour-warning: hsl(35, 100%, 32%);--colour-info: hsl(223, 100%, 50%);--font-family: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans, sans-serif;--type-ratio: 1.25;--type-ratio-small: 1.125;--base-font-size: max(1rem, 16px);--font-size: var(--base-font-size);--font-size-s: calc(var(--base-font-size) / var(--type-ratio-small));--font-size-xs: calc(var(--font-size-s) / var(--type-ratio-small));--font-size-sm: calc(var(--base-font-size) * var(--type-ratio-small));--font-size-m: calc(var(--base-font-size) * var(--type-ratio));--font-size-l: calc(var(--font-size-m) * var(--type-ratio));--font-size-xl: calc(var(--font-size-l) * var(--type-ratio));--font-size-xxl: calc(var(--font-size-xl) * var(--type-ratio));--font-size-xxxl: calc(var(--font-size-xxl) * var(--type-ratio));--font-size-diff: .3;--line-height: 1.6;--line-height-h: 1.2;--line-height-ui: .9rem;--font-weight-normal: 400;--font-weight-bold: 700;--spacing-xxxxs: .25em;--spacing-xxxs: .5em;--spacing-xxs: .75em;--spacing-xs: .875em;--spacing-s: 1em;--spacing-m: 1.5em;--spacing-l: 2em;--spacing-xl: 2.5em;--spacing-xxl: 3em;--spacing-xxxl: 3.5em;--spacing-xxxxl: 3.5em;--spacing-ul: 4.5em;--spacing-uul: 5em;--spacing-uuul: 5.5em;--outline-size: .125rem;--outline-style: solid;--_colour-outline: hsl(223, 100%, 50%);--outline-color: light-dark( var(--_colour-outline), color-mix(in oklch, var(--_colour-outline), white 90%) );--container-max-width-narrow: 58ch;--container-max-width: 76ch;--gutter-min: 1em;--gutter-max: 2em;--gap-s: 1em;--gap: 1.5em;--gap-l: 2em;--gap-xl: 2.5em;--breakpoint-xs: 26.25rem;--breakpoint-s: 33.75rem;--breakpoint-m: 45rem;--breakpoint-l: 59.125rem;--breakpoint-xl: 68.75rem;--shadow-color: hsla(0, 0%, 13%, .15);--shadow-size: .875em;--shadow-shape: 0 0 var(--shadow-size);--box-shadow: var(--shadow-shape) var(--shadow-color);--border-radius: .25rem;--border-radius-l: 2em;--border-radius-round: 50%;--ratio: 16 / 9;--ease: cubic-bezier(.25, 0, .3, 1)}@media(max-width:719.98px){:root{--section-xl: var(--spacing-xxl)}}}
@@ -1,2 +1,2 @@
1
- import "./chunks/Popover-Bws25suh.js";
2
- import "./chunks/DropMenu-plGsgySm.js";
1
+ import "./chunks/Popover-C4gisyxr.js";
2
+ import "./chunks/DropMenu-LnJEp-sg.js";
@@ -1,5 +1,5 @@
1
1
  import "./chunks/utilities-DepaJdUg.js";
2
- import { t as Accordion } from "./chunks/Accordion-Dwh42fp7.js";
2
+ import { t as Accordion } from "./chunks/Accordion-BzKLBuWL.js";
3
3
  var AccordionMobile = class extends Accordion {
4
4
  mq;
5
5
  toggleAttribute;