@schalkneethling/miyagi-core 4.4.2 → 4.4.3

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 (115) hide show
  1. package/README.md +7 -2
  2. package/api/app.js +16 -16
  3. package/api/index.js +263 -262
  4. package/bin/miyagi.js +1 -1
  5. package/dist/css/iframe.css +6 -30
  6. package/frontend/assets/css/iframe/accordion-tabs.css +39 -39
  7. package/frontend/assets/css/iframe/jsontree.js.css +149 -149
  8. package/frontend/assets/css/iframe/prism.css +45 -45
  9. package/frontend/assets/css/iframe/styleguide/colors.css +27 -27
  10. package/frontend/assets/css/iframe/styleguide/fonts.css +23 -23
  11. package/frontend/assets/css/iframe/styleguide/index.css +58 -58
  12. package/frontend/assets/css/iframe/styleguide/spacings.css +10 -10
  13. package/frontend/assets/css/iframe.css +191 -191
  14. package/frontend/assets/css/main/menu/config-switcher.css +21 -21
  15. package/frontend/assets/css/main/menu/config-switchers.css +34 -34
  16. package/frontend/assets/css/main/menu/goto.css +16 -16
  17. package/frontend/assets/css/main/menu/nav.css +49 -49
  18. package/frontend/assets/css/main/menu/search.css +34 -34
  19. package/frontend/assets/css/main/menu/title.css +18 -18
  20. package/frontend/assets/css/main/menu.css +89 -89
  21. package/frontend/assets/css/main/reset.css +47 -47
  22. package/frontend/assets/css/main.css +41 -41
  23. package/frontend/assets/css/shared.css +16 -16
  24. package/frontend/assets/css/tokens.css +108 -107
  25. package/frontend/assets/js/_accordion-tabs.js +392 -392
  26. package/frontend/assets/js/_goto.js +59 -59
  27. package/frontend/assets/js/_iframe-links.js +14 -14
  28. package/frontend/assets/js/_is-triggered.js +3 -3
  29. package/frontend/assets/js/_main.js +369 -369
  30. package/frontend/assets/js/_mock-data.js +8 -8
  31. package/frontend/assets/js/_prism.js +1082 -1081
  32. package/frontend/assets/js/_search.js +186 -186
  33. package/frontend/assets/js/_socket.js +44 -44
  34. package/frontend/assets/js/config-switcher/development-mode.js +38 -38
  35. package/frontend/assets/js/config-switcher/index.js +55 -55
  36. package/frontend/assets/js/config-switcher/text-direction.js +22 -22
  37. package/frontend/assets/js/config-switcher/theme.js +68 -68
  38. package/frontend/assets/js/iframe.build.js +25 -25
  39. package/frontend/assets/js/iframe.js +38 -38
  40. package/frontend/assets/js/jsontree.js +979 -976
  41. package/frontend/assets/js/main.build.js +29 -29
  42. package/frontend/assets/js/main.js +31 -31
  43. package/frontend/assets/js/styleguide/color-converter.js +652 -652
  44. package/frontend/assets/js/styleguide/index.js +100 -100
  45. package/lib/build/index.js +1014 -1020
  46. package/lib/cli/app.js +16 -16
  47. package/lib/cli/component.js +50 -50
  48. package/lib/cli/doctor.js +130 -121
  49. package/lib/cli/drupal-assets.js +163 -157
  50. package/lib/cli/lint.js +196 -196
  51. package/lib/cli/run.js +150 -146
  52. package/lib/config.js +86 -86
  53. package/lib/constants/lint-log-levels.js +6 -6
  54. package/lib/drupal/load-assets-config.js +59 -60
  55. package/lib/drupal/resolve-library-assets.js +132 -141
  56. package/lib/errors.js +20 -20
  57. package/lib/generator/component.js +124 -124
  58. package/lib/generator/mocks.js +156 -156
  59. package/lib/helpers.js +68 -68
  60. package/lib/i18n/en.js +93 -93
  61. package/lib/i18n/index.js +8 -8
  62. package/lib/index.js +13 -13
  63. package/lib/init/args.js +153 -153
  64. package/lib/init/config.js +452 -438
  65. package/lib/init/engines.js +41 -41
  66. package/lib/init/index.js +83 -83
  67. package/lib/init/rendering.js +3 -3
  68. package/lib/init/static.js +90 -90
  69. package/lib/init/twing/cache.js +27 -27
  70. package/lib/init/twing/functions.js +37 -37
  71. package/lib/init/views.js +5 -5
  72. package/lib/logger.js +72 -72
  73. package/lib/mocks/get.js +88 -88
  74. package/lib/mocks/index.js +2 -2
  75. package/lib/mocks/resolve/ref.js +447 -447
  76. package/lib/mocks/resolve/tpl.js +218 -218
  77. package/lib/mocks/resolve.js +154 -154
  78. package/lib/render/helpers/resolve-assets.js +29 -39
  79. package/lib/render/helpers.js +27 -27
  80. package/lib/render/index.js +18 -18
  81. package/lib/render/views/iframe/component.docs.js +50 -50
  82. package/lib/render/views/iframe/component.js +249 -248
  83. package/lib/render/views/iframe/design-tokens/colors.js +38 -38
  84. package/lib/render/views/iframe/design-tokens/index.js +3 -3
  85. package/lib/render/views/iframe/design-tokens/sizes.js +35 -35
  86. package/lib/render/views/iframe/design-tokens/typography.js +37 -37
  87. package/lib/render/views/iframe/docs.js +42 -42
  88. package/lib/render/views/iframe/index.js +28 -28
  89. package/lib/render/views/iframe/variation.js +89 -89
  90. package/lib/render/views/iframe/variation.standalone.js +69 -68
  91. package/lib/render/views/main/component.docs.js +38 -38
  92. package/lib/render/views/main/component.js +55 -55
  93. package/lib/render/views/main/design-tokens.js +38 -38
  94. package/lib/render/views/main/docs.js +33 -33
  95. package/lib/render/views/main/index.js +33 -33
  96. package/lib/state/components.js +99 -99
  97. package/lib/state/css.js +33 -33
  98. package/lib/state/docs.js +72 -72
  99. package/lib/state/file-contents.js +154 -154
  100. package/lib/state/helpers.js +53 -53
  101. package/lib/state/index.js +39 -39
  102. package/lib/state/menu/index.js +202 -202
  103. package/lib/state/menu/structure.js +84 -84
  104. package/lib/state/partials.js +12 -12
  105. package/lib/state/source-tree.js +51 -51
  106. package/lib/styleguide/color-names.js +148 -148
  107. package/lib/styleguide/colors.js +113 -113
  108. package/lib/styleguide/helpers.js +33 -33
  109. package/lib/styleguide/index.js +4 -4
  110. package/lib/styleguide/media-queries.js +18 -18
  111. package/lib/styleguide/spacings.js +22 -22
  112. package/lib/styleguide/typography.js +46 -46
  113. package/lib/validator/mocks.js +110 -83
  114. package/lib/validator/schemas.js +236 -227
  115. package/package.json +118 -117
@@ -1,67 +1,67 @@
1
1
  @import url("./config-switcher.css");
2
2
 
3
3
  .ConfigSwitchers {
4
- display: flex;
5
- background: var(--bar-background);
4
+ display: flex;
5
+ background: var(--bar-background);
6
6
  }
7
7
 
8
8
  .ConfigSwitchers-toggle {
9
- --size: var(--bar-size);
9
+ --size: var(--bar-size);
10
10
 
11
- align-items: center;
12
- color: var(--color-Icon);
13
- display: flex;
14
- flex-shrink: 0;
15
- gap: 0.5em;
16
- cursor: pointer;
17
- border-block-start: var(--divider);
18
- inline-size: 100%;
11
+ align-items: center;
12
+ color: var(--color-Icon);
13
+ display: flex;
14
+ flex-shrink: 0;
15
+ gap: 0.5em;
16
+ cursor: pointer;
17
+ border-block-start: var(--divider);
18
+ inline-size: 100%;
19
19
 
20
- svg {
21
- display: block;
22
- inline-size: var(--size);
23
- block-size: var(--size);
24
- padding: 0.45em;
25
- }
20
+ svg {
21
+ display: block;
22
+ inline-size: var(--size);
23
+ block-size: var(--size);
24
+ padding: 0.45em;
25
+ }
26
26
  }
27
27
 
28
28
  .ConfigSwitchers-toggle:focus-visible {
29
- outline-offset: calc(-1 * var(--outline-offset));
29
+ outline-offset: calc(-1 * var(--outline-offset));
30
30
  }
31
31
 
32
32
  .ConfigSwitchers-toggleClose {
33
- fill: currentcolor;
34
- block-size: 75%;
35
- inline-size: 75%;
33
+ fill: currentcolor;
34
+ block-size: 75%;
35
+ inline-size: 75%;
36
36
  }
37
37
 
38
38
  .ConfigSwitchers-toggle[aria-expanded="false"] .ConfigSwitchers-toggleClose {
39
- display: none;
39
+ display: none;
40
40
  }
41
41
 
42
42
  .ConfigSwitchers-toggle[aria-expanded="true"] .ConfigSwitchers-toggleOpen {
43
- display: none;
43
+ display: none;
44
44
  }
45
45
 
46
46
  .ConfigSwitchers-container {
47
- padding: var(--bar-size);
48
- padding-inline-start: calc(2 * var(--bar-size));
49
- flex: 1;
50
- position: absolute;
51
- z-index: 2;
52
- inset-block: 0 calc(var(--bar-size) + 0.0625rem);
53
- inset-inline: 0;
54
- background: var(--bar-background);
47
+ padding: var(--bar-size);
48
+ padding-inline-start: calc(2 * var(--bar-size));
49
+ flex: 1;
50
+ position: absolute;
51
+ z-index: 2;
52
+ inset-block: 0 calc(var(--bar-size) + 0.0625rem);
53
+ inset-inline: 0;
54
+ background: var(--bar-background);
55
55
  }
56
56
 
57
57
  .ConfigSwitchers-container > * + * {
58
- margin-block-start: var(--menu-spacing);
58
+ margin-block-start: var(--menu-spacing);
59
59
  }
60
60
 
61
61
  .ConfigSwitchers-toggle[aria-expanded="false"] ~ .ConfigSwitchers-container {
62
- display: none;
62
+ display: none;
63
63
  }
64
64
 
65
65
  .ConfigSwitchers-toggle[aria-expanded="true"] ~ .ConfigSwitchers-container {
66
- display: block;
66
+ display: block;
67
67
  }
@@ -1,24 +1,24 @@
1
1
  .GoTo {
2
- box-shadow: 0 0 1rem rgb(0 0 0 / 50%);
3
- position: fixed;
4
- inset-block-start: 50%;
5
- inset-inline-start: 50%;
6
- transform: translate(-50%, -50%);
7
- background: var(--color-Menu-background);
8
- padding: 0.25em 0.5em 0.5em;
9
- inline-size: calc(100% - 1rem);
10
- max-inline-size: 20em;
2
+ box-shadow: 0 0 1rem rgb(0 0 0 / 50%);
3
+ position: fixed;
4
+ inset-block-start: 50%;
5
+ inset-inline-start: 50%;
6
+ transform: translate(-50%, -50%);
7
+ background: var(--color-Menu-background);
8
+ padding: 0.25em 0.5em 0.5em;
9
+ inline-size: calc(100% - 1rem);
10
+ max-inline-size: 20em;
11
11
  }
12
12
 
13
13
  .GoTo-label {
14
- display: block;
14
+ display: block;
15
15
  }
16
16
 
17
17
  .GoTo-input {
18
- outline: var(--divider);
19
- box-shadow: 0.1em 0.1em 0.3em rgb(0 0 0 / 20%) inset;
20
- background: var(--color-Menu-background);
21
- padding: 0.35em 0.5em;
22
- margin-block-start: 0.25em;
23
- inline-size: 100%;
18
+ outline: var(--divider);
19
+ box-shadow: 0.1em 0.1em 0.3em rgb(0 0 0 / 20%) inset;
20
+ background: var(--color-Menu-background);
21
+ padding: 0.35em 0.5em;
22
+ margin-block-start: 0.25em;
23
+ inline-size: 100%;
24
24
  }
@@ -1,113 +1,113 @@
1
1
  /** @define Nav; */
2
2
 
3
3
  .Nav-entry {
4
- position: relative;
4
+ position: relative;
5
5
  }
6
6
 
7
7
  .Nav-entry:not(.Nav-entry--lvl0)::before {
8
- content: "";
9
- display: block;
10
- inline-size: var(--bar-size);
11
- position: absolute;
12
- inset-block: 0;
13
- inset-inline-start: 0;
14
- background: var(--color-MenuBar-background);
8
+ content: "";
9
+ display: block;
10
+ inline-size: var(--bar-size);
11
+ position: absolute;
12
+ inset-block: 0;
13
+ inset-inline-start: 0;
14
+ background: var(--color-MenuBar-background);
15
15
  }
16
16
 
17
17
  .Nav-entry--directory {
18
- border-block-start: var(--divider);
18
+ border-block-start: var(--divider);
19
19
  }
20
20
 
21
21
  .Nav-entry--lvl0:last-child {
22
- border-block-end: var(--divider);
22
+ border-block-end: var(--divider);
23
23
  }
24
24
 
25
25
  .Nav-wrapper {
26
- position: relative;
26
+ position: relative;
27
27
  }
28
28
 
29
29
  .Nav-toggle {
30
- display: block;
31
- position: absolute;
32
- z-index: 1;
33
- inset-block: 0;
34
- inset-inline-end: 0;
35
- inline-size: var(--bar-size);
30
+ display: block;
31
+ position: absolute;
32
+ z-index: 1;
33
+ inset-block: 0;
34
+ inset-inline-end: 0;
35
+ inline-size: var(--bar-size);
36
36
  }
37
37
 
38
38
  .Nav-toggle::after {
39
- border: var(--toggle-border);
40
- border-block-start-width: var(--toggle-borderWidth);
41
- border-inline-end-width: var(--toggle-borderWidth);
42
- content: "";
43
- display: block;
44
- font-size: var(--toggle-fontSize);
45
- block-size: var(--toggle-height);
46
- position: absolute;
47
- inset-block-start: 50%;
48
- inset-inline-start: 50%;
49
- transition: var(--toggle-transition);
50
- inline-size: var(--toggle-width);
39
+ border: var(--toggle-border);
40
+ border-block-start-width: var(--toggle-borderWidth);
41
+ border-inline-end-width: var(--toggle-borderWidth);
42
+ content: "";
43
+ display: block;
44
+ font-size: var(--toggle-fontSize);
45
+ block-size: var(--toggle-height);
46
+ position: absolute;
47
+ inset-block-start: 50%;
48
+ inset-inline-start: 50%;
49
+ transition: var(--toggle-transition);
50
+ inline-size: var(--toggle-width);
51
51
  }
52
52
 
53
53
  .Nav-toggle[aria-expanded="false"]::after {
54
- transform: var(--toggle-transition-closed);
54
+ transform: var(--toggle-transition-closed);
55
55
  }
56
56
 
57
57
  .Nav-toggle[aria-expanded="true"]::after {
58
- transform: var(--toggle-transition-opened);
59
- border-color: var(--color-Text);
58
+ transform: var(--toggle-transition-opened);
59
+ border-color: var(--color-Text);
60
60
  }
61
61
 
62
62
  .Nav-item,
63
63
  .Nav-variant {
64
- display: block;
65
- padding-block: var(--menu-spacing);
66
- padding-inline-start: calc(var(--level, 1) * 1em + var(--menu-spacing));
67
- margin-inline-start: var(--bar-size);
64
+ display: block;
65
+ padding-block: var(--menu-spacing);
66
+ padding-inline-start: calc(var(--level, 1) * 1em + var(--menu-spacing));
67
+ margin-inline-start: var(--bar-size);
68
68
  }
69
69
 
70
70
  :where(.Nav-item, .Nav-variant):not(:has(mark)),
71
71
  :where(.Nav-item, .Nav-variant) mark {
72
- text-transform: capitalize;
72
+ text-transform: capitalize;
73
73
  }
74
74
 
75
75
  :where(.Nav-item, .Nav-variant)[aria-current="page"] {
76
- background: var(--color-Link-active-background);
77
- color: var(--color-Link-active, var(--color-Link));
76
+ background: var(--color-Link-active-background);
77
+ color: var(--color-Link-active, var(--color-Link));
78
78
  }
79
79
 
80
80
  .is-no-match:not(:has(.is-match)) {
81
- display: none;
81
+ display: none;
82
82
  }
83
83
 
84
84
  .Nav-entry--directory.has-match > .Nav-toggle,
85
85
  .Nav-entry--directory.is-match * {
86
- opacity: 1 !important;
86
+ opacity: 1 !important;
87
87
  }
88
88
 
89
89
  .Nav-item--directory {
90
- color: var(--color-Link);
91
- cursor: default;
92
- opacity: 0.75;
90
+ color: var(--color-Link);
91
+ cursor: default;
92
+ opacity: 0.75;
93
93
  }
94
94
 
95
95
  .Nav-item--link {
96
- font-weight: 600;
96
+ font-weight: 600;
97
97
  }
98
98
 
99
99
  .Nav-item--link,
100
100
  .Nav-variant {
101
- color: var(--color-Link);
102
- text-decoration: none;
101
+ color: var(--color-Link);
102
+ text-decoration: none;
103
103
  }
104
104
 
105
105
  .Nav-item--link:where(:hover, :focus),
106
106
  .Nav-variant:where(:hover, :focus) {
107
- text-decoration: underline;
107
+ text-decoration: underline;
108
108
  }
109
109
 
110
110
  .Nav-toggle:focus-visible,
111
111
  .Nav-item:focus-visible {
112
- outline-offset: calc(-1 * var(--outline-offset));
112
+ outline-offset: calc(-1 * var(--outline-offset));
113
113
  }
@@ -1,64 +1,64 @@
1
1
  /** @define Search; */
2
2
 
3
3
  .Search {
4
- border-block: var(--divider);
5
- display: flex;
6
- margin-block-end: var(--spacing-x);
7
- position: relative;
4
+ border-block: var(--divider);
5
+ display: flex;
6
+ margin-block-end: var(--spacing-x);
7
+ position: relative;
8
8
  }
9
9
 
10
10
  .Search-label {
11
- --size: var(--bar-size);
11
+ --size: var(--bar-size);
12
12
 
13
- align-items: center;
14
- display: flex;
15
- flex-shrink: 0;
16
- block-size: var(--size);
17
- justify-content: center;
18
- inline-size: var(--size);
13
+ align-items: center;
14
+ display: flex;
15
+ flex-shrink: 0;
16
+ block-size: var(--size);
17
+ justify-content: center;
18
+ inline-size: var(--size);
19
19
  }
20
20
 
21
21
  .Search-clear:not([hidden]) {
22
- --size: var(--bar-size);
22
+ --size: var(--bar-size);
23
23
 
24
- align-items: center;
25
- display: flex;
26
- justify-content: center;
27
- inline-size: var(--size);
28
- block-size: var(--size);
29
- border-radius: 50%;
30
- position: absolute;
31
- inset-inline-end: 0;
32
- inset-block-start: 0;
24
+ align-items: center;
25
+ display: flex;
26
+ justify-content: center;
27
+ inline-size: var(--size);
28
+ block-size: var(--size);
29
+ border-radius: 50%;
30
+ position: absolute;
31
+ inset-inline-end: 0;
32
+ inset-block-start: 0;
33
33
  }
34
34
 
35
35
  .Search-icon {
36
- color: var(--color-Icon);
37
- display: block;
38
- inline-size: 50%;
39
- block-size: 50%;
36
+ color: var(--color-Icon);
37
+ display: block;
38
+ inline-size: 50%;
39
+ block-size: 50%;
40
40
  }
41
41
 
42
42
  .Search-icon path {
43
- fill: currentcolor;
43
+ fill: currentcolor;
44
44
  }
45
45
 
46
46
  .Search-icon circle {
47
- fill: none;
48
- stroke: currentcolor;
47
+ fill: none;
48
+ stroke: currentcolor;
49
49
  }
50
50
 
51
51
  .Search-input {
52
- padding: 0.35em var(--menu-spacing);
53
- padding-inline-end: 2.5em;
54
- inline-size: calc(100% - var(--bar-size));
52
+ padding: 0.35em var(--menu-spacing);
53
+ padding-inline-end: 2.5em;
54
+ inline-size: calc(100% - var(--bar-size));
55
55
  }
56
56
 
57
57
  .Search-input:focus {
58
- outline: none;
59
- background: var(--color-Link-active-background);
58
+ outline: none;
59
+ background: var(--color-Link-active-background);
60
60
  }
61
61
 
62
62
  .Search-clear:focus-visible {
63
- outline-offset: calc(-1 * var(--outline-offset));
63
+ outline-offset: calc(-1 * var(--outline-offset));
64
64
  }
@@ -1,40 +1,40 @@
1
1
  /** @define Title; */
2
2
 
3
3
  .Title {
4
- display: flex;
5
- justify-content: center;
6
- margin-inline-start: calc(var(--menu-spacing) + var(--bar-size));
7
- margin-inline-end: var(--menu-spacing);
4
+ display: flex;
5
+ justify-content: center;
6
+ margin-inline-start: calc(var(--menu-spacing) + var(--bar-size));
7
+ margin-inline-end: var(--menu-spacing);
8
8
  }
9
9
 
10
10
  .Title-link {
11
- display: inline-block;
12
- font-size: 0.875em;
13
- font-weight: 500;
11
+ display: inline-block;
12
+ font-size: 0.875em;
13
+ font-weight: 500;
14
14
  }
15
15
 
16
16
  .Title-link:focus-visible {
17
- outline-offset: var(--outline-offset);
17
+ outline-offset: var(--outline-offset);
18
18
  }
19
19
 
20
20
  .Title-logo img {
21
- max-inline-size: 100%;
22
- min-inline-size: 50%;
23
- vertical-align: middle;
21
+ max-inline-size: 100%;
22
+ min-inline-size: 50%;
23
+ vertical-align: middle;
24
24
  }
25
25
 
26
26
  .Title-logo + .Title-name {
27
- display: none;
27
+ display: none;
28
28
  }
29
29
 
30
30
  @media (width <= 40rem) {
31
- .Title-logo img {
32
- block-size: 2rem;
33
- }
31
+ .Title-logo img {
32
+ block-size: 2rem;
33
+ }
34
34
  }
35
35
 
36
36
  @media (width > 40rem) {
37
- .Title {
38
- margin-block: 1.5rem;
39
- }
37
+ .Title {
38
+ margin-block: 1.5rem;
39
+ }
40
40
  }
@@ -7,108 +7,108 @@
7
7
  /** @define Menu; */
8
8
 
9
9
  .Menu {
10
- --bar-size: 2rem;
11
- --bar-background: var(--color-Menu-background)
12
- linear-gradient(
13
- to right,
14
- var(--color-MenuBar-background) var(--bar-size),
15
- transparent var(--bar-size)
16
- );
17
- --menu-spacing: 0.5rem;
18
- --outline: 0.1875rem solid var(--color-Text);
19
- --outline-offset: 0.125rem;
20
-
21
- display: flex;
22
- background: var(--bar-background);
23
- grid-area: nav;
24
- font-size: 0.875em;
25
- position: relative;
10
+ --bar-size: 2rem;
11
+ --bar-background: var(--color-Menu-background)
12
+ linear-gradient(
13
+ to right,
14
+ var(--color-MenuBar-background) var(--bar-size),
15
+ transparent var(--bar-size)
16
+ );
17
+ --menu-spacing: 0.5rem;
18
+ --outline: 0.1875rem solid var(--color-Text);
19
+ --outline-offset: 0.125rem;
20
+
21
+ display: flex;
22
+ background: var(--bar-background);
23
+ grid-area: nav;
24
+ font-size: 0.875em;
25
+ position: relative;
26
26
  }
27
27
 
28
28
  .Menu :where(:focus-visible) {
29
- outline: var(--outline);
29
+ outline: var(--outline);
30
30
  }
31
31
 
32
32
  .Menu-content {
33
- display: flex;
34
- flex-direction: column;
33
+ display: flex;
34
+ flex-direction: column;
35
35
  }
36
36
 
37
37
  .Menu-nav {
38
- flex: 1;
39
- overflow-y: auto;
38
+ flex: 1;
39
+ overflow-y: auto;
40
40
  }
41
41
 
42
42
  @media (width <= 40rem) {
43
- .Menu {
44
- --toggle-size: 4rem;
45
-
46
- align-items: center;
47
- flex-wrap: wrap;
48
- justify-content: space-between;
49
- }
50
-
51
- .Menu-content {
52
- flex: 0 0 100%;
53
- block-size: calc(100dvb - var(--toggle-size));
54
- position: fixed;
55
- inset-block-start: var(--toggle-size);
56
- inset-inline: 0;
57
- background: var(--bar-background);
58
- }
59
-
60
- .Menu-search {
61
- position: relative;
62
- }
63
-
64
- .Menu-toggleMobileMenu {
65
- display: block;
66
- block-size: var(--toggle-size);
67
- padding: 1rem;
68
- position: relative;
69
- inline-size: var(--toggle-size);
70
- }
71
-
72
- .Menu-toggleMobileMenu[aria-expanded="false"] ~ .Menu-content {
73
- display: none;
74
- }
75
-
76
- .Menu-toggleMobileMenu::after {
77
- border: var(--toggle-border);
78
- border-top-width: var(--toggle-borderWidth);
79
- border-inline-end-width: var(--toggle-borderWidth);
80
- content: "";
81
- display: block;
82
- font-size: 0.75em;
83
- block-size: var(--toggle-height);
84
- position: absolute;
85
- inset-block-start: 50%;
86
- inset-inline-start: 50%;
87
- transition: var(--toggle-transition);
88
- inline-size: var(--toggle-width);
89
- }
90
-
91
- .Menu-toggleMobileMenu[aria-expanded="false"]::after {
92
- transform: var(--toggle-transition-closed);
93
- }
94
-
95
- .Menu-toggleMobileMenu[aria-expanded="true"]::after {
96
- transform: var(--toggle-transition-opened);
97
- }
43
+ .Menu {
44
+ --toggle-size: 4rem;
45
+
46
+ align-items: center;
47
+ flex-wrap: wrap;
48
+ justify-content: space-between;
49
+ }
50
+
51
+ .Menu-content {
52
+ flex: 0 0 100%;
53
+ block-size: calc(100dvb - var(--toggle-size));
54
+ position: fixed;
55
+ inset-block-start: var(--toggle-size);
56
+ inset-inline: 0;
57
+ background: var(--bar-background);
58
+ }
59
+
60
+ .Menu-search {
61
+ position: relative;
62
+ }
63
+
64
+ .Menu-toggleMobileMenu {
65
+ display: block;
66
+ block-size: var(--toggle-size);
67
+ padding: 1rem;
68
+ position: relative;
69
+ inline-size: var(--toggle-size);
70
+ }
71
+
72
+ .Menu-toggleMobileMenu[aria-expanded="false"] ~ .Menu-content {
73
+ display: none;
74
+ }
75
+
76
+ .Menu-toggleMobileMenu::after {
77
+ border: var(--toggle-border);
78
+ border-top-width: var(--toggle-borderWidth);
79
+ border-inline-end-width: var(--toggle-borderWidth);
80
+ content: "";
81
+ display: block;
82
+ font-size: 0.75em;
83
+ block-size: var(--toggle-height);
84
+ position: absolute;
85
+ inset-block-start: 50%;
86
+ inset-inline-start: 50%;
87
+ transition: var(--toggle-transition);
88
+ inline-size: var(--toggle-width);
89
+ }
90
+
91
+ .Menu-toggleMobileMenu[aria-expanded="false"]::after {
92
+ transform: var(--toggle-transition-closed);
93
+ }
94
+
95
+ .Menu-toggleMobileMenu[aria-expanded="true"]::after {
96
+ transform: var(--toggle-transition-opened);
97
+ }
98
98
  }
99
99
 
100
100
  @media (width > 40rem) {
101
- .Menu {
102
- flex-direction: column;
103
- block-size: 100vh;
104
- }
105
-
106
- .Menu-toggleMobileMenu {
107
- display: none;
108
- }
109
-
110
- .Menu-content {
111
- flex: 1;
112
- overflow: hidden;
113
- }
101
+ .Menu {
102
+ flex-direction: column;
103
+ block-size: 100vh;
104
+ }
105
+
106
+ .Menu-toggleMobileMenu {
107
+ display: none;
108
+ }
109
+
110
+ .Menu-content {
111
+ flex: 1;
112
+ overflow: hidden;
113
+ }
114
114
  }