ogm-viewer 0.3.0 → 0.4.0

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 (197) hide show
  1. package/dist/cjs/{index-CVTUnaNg.js → index-mu9UK_Fb.js} +66 -3
  2. package/dist/cjs/{lerc-TQEssgMv.js → lerc-CT61sKYw.js} +7 -7
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/{ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-settings.ogm-sidebar.ogm-viewer-ifPxRNEo.js → ogm-attributes.ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-previews.ogm-settings.ogm-sidebar.ogm-viewer-DKxSOrMP.js} +13640 -7139
  5. package/dist/cjs/ogm-attributes_9.cjs.entry.js +16 -0
  6. package/dist/cjs/ogm-viewer.cjs.js +2 -2
  7. package/dist/collection/assets/webawesome/styles/color/palettes/base.css +44 -0
  8. package/dist/collection/assets/webawesome/styles/color/palettes/bright.css +145 -0
  9. package/dist/collection/assets/webawesome/styles/color/palettes/default.css +146 -0
  10. package/dist/collection/assets/webawesome/styles/color/palettes/shoelace.css +146 -0
  11. package/dist/collection/assets/webawesome/styles/color/variants/brand.css +162 -0
  12. package/dist/collection/assets/webawesome/styles/color/variants/danger.css +162 -0
  13. package/dist/collection/assets/webawesome/styles/color/variants/neutral.css +162 -0
  14. package/dist/collection/assets/webawesome/styles/color/variants/success.css +162 -0
  15. package/dist/collection/assets/webawesome/styles/color/variants/warning.css +162 -0
  16. package/dist/collection/assets/webawesome/styles/color/variants.css +5 -0
  17. package/dist/collection/assets/webawesome/styles/component/form-control.styles.d.ts +2 -0
  18. package/dist/collection/assets/webawesome/styles/component/form-control.styles.ts +43 -0
  19. package/dist/collection/assets/webawesome/styles/component/host.styles.d.ts +2 -0
  20. package/dist/collection/assets/webawesome/styles/component/host.styles.ts +18 -0
  21. package/dist/collection/assets/webawesome/styles/component/segmented-field.styles.d.ts +19 -0
  22. package/dist/collection/assets/webawesome/styles/component/segmented-field.styles.ts +92 -0
  23. package/dist/collection/assets/webawesome/styles/component/size.styles.d.ts +2 -0
  24. package/dist/collection/assets/webawesome/styles/component/size.styles.ts +26 -0
  25. package/dist/collection/assets/webawesome/styles/component/variants.styles.d.ts +2 -0
  26. package/dist/collection/assets/webawesome/styles/component/variants.styles.ts +69 -0
  27. package/dist/collection/assets/webawesome/styles/component/visually-hidden.styles.d.ts +2 -0
  28. package/dist/collection/assets/webawesome/styles/component/visually-hidden.styles.ts +19 -0
  29. package/dist/collection/assets/webawesome/styles/layers.css +21 -0
  30. package/dist/collection/assets/webawesome/styles/native.css +1439 -0
  31. package/dist/collection/assets/webawesome/styles/themes/awesome.css +614 -0
  32. package/dist/collection/assets/webawesome/styles/themes/default.css +373 -0
  33. package/dist/collection/assets/webawesome/styles/themes/shoelace.css +648 -0
  34. package/dist/collection/assets/webawesome/styles/utilities/align-items.css +44 -0
  35. package/dist/collection/assets/webawesome/styles/utilities/border-radius.css +20 -0
  36. package/dist/collection/assets/webawesome/styles/utilities/flex-wrap.css +16 -0
  37. package/dist/collection/assets/webawesome/styles/utilities/fouce.css +17 -0
  38. package/dist/collection/assets/webawesome/styles/utilities/gap.css +56 -0
  39. package/dist/collection/assets/webawesome/styles/utilities/justify-content.css +32 -0
  40. package/dist/collection/assets/webawesome/styles/utilities/layout.css +159 -0
  41. package/dist/collection/assets/webawesome/styles/utilities/placeholder.css +9 -0
  42. package/dist/collection/assets/webawesome/styles/utilities/prose.css +161 -0
  43. package/dist/collection/assets/webawesome/styles/utilities/scroll-lock.css +20 -0
  44. package/dist/collection/assets/webawesome/styles/utilities/size.css +21 -0
  45. package/dist/collection/assets/webawesome/styles/utilities/text.css +262 -0
  46. package/dist/collection/assets/webawesome/styles/utilities/variants.css +62 -0
  47. package/dist/collection/assets/webawesome/styles/utilities/visually-hidden.css +17 -0
  48. package/dist/collection/assets/webawesome/styles/utilities.css +17 -0
  49. package/dist/collection/assets/webawesome/styles/webawesome.css +11 -0
  50. package/dist/collection/collection-manifest.json +2 -0
  51. package/dist/collection/components/ogm-attributes/ogm-attributes.css +68 -0
  52. package/dist/collection/components/ogm-attributes/ogm-attributes.js +112 -0
  53. package/dist/collection/components/ogm-image/ogm-image.css +1 -1
  54. package/dist/collection/components/ogm-image/ogm-image.js +16 -18
  55. package/dist/collection/components/ogm-map/ogm-map.css +10 -5
  56. package/dist/collection/components/ogm-map/ogm-map.js +170 -86
  57. package/dist/collection/components/ogm-menubar/ogm-menubar.css +16 -14
  58. package/dist/collection/components/ogm-menubar/ogm-menubar.js +3 -5
  59. package/dist/collection/components/ogm-menubar/ogm-menubar.test.js +7 -3
  60. package/dist/collection/components/ogm-metadata/ogm-metadata.css +6 -492
  61. package/dist/collection/components/ogm-metadata/ogm-metadata.js +3 -5
  62. package/dist/collection/components/ogm-metadata/ogm-metadata.test.js +1 -1
  63. package/dist/collection/components/ogm-previews/ogm-previews.css +44 -0
  64. package/dist/collection/components/ogm-previews/ogm-previews.js +172 -0
  65. package/dist/collection/components/ogm-settings/ogm-settings.js +7 -9
  66. package/dist/collection/components/ogm-sidebar/ogm-sidebar.css +50 -503
  67. package/dist/collection/components/ogm-sidebar/ogm-sidebar.js +8 -12
  68. package/dist/collection/components/ogm-viewer/ogm-viewer.css +4 -974
  69. package/dist/collection/components/ogm-viewer/ogm-viewer.js +41 -25
  70. package/dist/collection/lib/previewers/cog-deck.js +14 -9
  71. package/dist/collection/lib/previewers/cog.js +3 -3
  72. package/dist/collection/lib/previewers/geojson.js +3 -2
  73. package/dist/collection/lib/previewers/maplibre.js +9 -15
  74. package/dist/collection/lib/previewers/pmtiles-raster.js +1 -1
  75. package/dist/collection/lib/previewers/pmtiles-vector.js +7 -1
  76. package/dist/collection/lib/previewers/raster.js +1 -1
  77. package/dist/collection/lib/previewers/vector.js +65 -30
  78. package/dist/collection/lib/previewers/wms.js +1 -1
  79. package/dist/collection/lib/record.js +1 -1
  80. package/dist/collection/lib/record.test.js +1 -1
  81. package/dist/collection/lib/references.js +0 -65
  82. package/dist/collection/lib/references.test.js +0 -150
  83. package/dist/collection/lib/sources/cog.js +5 -2
  84. package/dist/collection/lib/sources/geojson.js +7 -1
  85. package/dist/collection/lib/sources/iiif-manifest.js +55 -0
  86. package/dist/collection/lib/sources/iiif-manifest.test.js +110 -0
  87. package/dist/collection/lib/sources/iiif.js +11 -0
  88. package/dist/collection/lib/sources/maplibre.js +8 -0
  89. package/dist/collection/lib/sources/openindexmap.js +3 -0
  90. package/dist/collection/lib/sources/pmtiles.js +10 -4
  91. package/dist/collection/lib/sources/raster.js +3 -3
  92. package/dist/collection/lib/sources/source.js +26 -7
  93. package/dist/collection/lib/sources/tilejson.js +7 -1
  94. package/dist/collection/lib/sources/tms.js +3 -0
  95. package/dist/collection/lib/sources/vector.js +3 -3
  96. package/dist/collection/lib/sources/wms.js +6 -11
  97. package/dist/collection/lib/sources/xyz.js +3 -0
  98. package/dist/collection/lib/themes/maplibre.js +46 -0
  99. package/dist/collection/lib/themes/theme.js +23 -0
  100. package/dist/esm/{index-BdFT_kJa.js → index-DTLAlWKQ.js} +66 -3
  101. package/dist/esm/{lerc-DFDScDrO.js → lerc-Bz409klg.js} +2 -2
  102. package/dist/esm/loader.js +3 -3
  103. package/dist/esm/{ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-settings.ogm-sidebar.ogm-viewer-r5w_49n3.js → ogm-attributes.ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-previews.ogm-settings.ogm-sidebar.ogm-viewer-C9zV3wMe.js} +13639 -7140
  104. package/dist/esm/ogm-attributes_9.entry.js +2 -0
  105. package/dist/esm/ogm-viewer.js +3 -3
  106. package/dist/ogm-viewer/assets/webawesome/styles/color/palettes/base.css +44 -0
  107. package/dist/ogm-viewer/assets/webawesome/styles/color/palettes/bright.css +145 -0
  108. package/dist/ogm-viewer/assets/webawesome/styles/color/palettes/default.css +146 -0
  109. package/dist/ogm-viewer/assets/webawesome/styles/color/palettes/shoelace.css +146 -0
  110. package/dist/ogm-viewer/assets/webawesome/styles/color/variants/brand.css +162 -0
  111. package/dist/ogm-viewer/assets/webawesome/styles/color/variants/danger.css +162 -0
  112. package/dist/ogm-viewer/assets/webawesome/styles/color/variants/neutral.css +162 -0
  113. package/dist/ogm-viewer/assets/webawesome/styles/color/variants/success.css +162 -0
  114. package/dist/ogm-viewer/assets/webawesome/styles/color/variants/warning.css +162 -0
  115. package/dist/ogm-viewer/assets/webawesome/styles/color/variants.css +5 -0
  116. package/dist/ogm-viewer/assets/webawesome/styles/component/form-control.styles.d.ts +2 -0
  117. package/dist/ogm-viewer/assets/webawesome/styles/component/form-control.styles.ts +43 -0
  118. package/dist/ogm-viewer/assets/webawesome/styles/component/host.styles.d.ts +2 -0
  119. package/dist/ogm-viewer/assets/webawesome/styles/component/host.styles.ts +18 -0
  120. package/dist/ogm-viewer/assets/webawesome/styles/component/segmented-field.styles.d.ts +19 -0
  121. package/dist/ogm-viewer/assets/webawesome/styles/component/segmented-field.styles.ts +92 -0
  122. package/dist/ogm-viewer/assets/webawesome/styles/component/size.styles.d.ts +2 -0
  123. package/dist/ogm-viewer/assets/webawesome/styles/component/size.styles.ts +26 -0
  124. package/dist/ogm-viewer/assets/webawesome/styles/component/variants.styles.d.ts +2 -0
  125. package/dist/ogm-viewer/assets/webawesome/styles/component/variants.styles.ts +69 -0
  126. package/dist/ogm-viewer/assets/webawesome/styles/component/visually-hidden.styles.d.ts +2 -0
  127. package/dist/ogm-viewer/assets/webawesome/styles/component/visually-hidden.styles.ts +19 -0
  128. package/dist/ogm-viewer/assets/webawesome/styles/layers.css +21 -0
  129. package/dist/ogm-viewer/assets/webawesome/styles/native.css +1439 -0
  130. package/dist/ogm-viewer/assets/webawesome/styles/themes/awesome.css +614 -0
  131. package/dist/ogm-viewer/assets/webawesome/styles/themes/default.css +373 -0
  132. package/dist/ogm-viewer/assets/webawesome/styles/themes/shoelace.css +648 -0
  133. package/dist/ogm-viewer/assets/webawesome/styles/utilities/align-items.css +44 -0
  134. package/dist/ogm-viewer/assets/webawesome/styles/utilities/border-radius.css +20 -0
  135. package/dist/ogm-viewer/assets/webawesome/styles/utilities/flex-wrap.css +16 -0
  136. package/dist/ogm-viewer/assets/webawesome/styles/utilities/fouce.css +17 -0
  137. package/dist/ogm-viewer/assets/webawesome/styles/utilities/gap.css +56 -0
  138. package/dist/ogm-viewer/assets/webawesome/styles/utilities/justify-content.css +32 -0
  139. package/dist/ogm-viewer/assets/webawesome/styles/utilities/layout.css +159 -0
  140. package/dist/ogm-viewer/assets/webawesome/styles/utilities/placeholder.css +9 -0
  141. package/dist/ogm-viewer/assets/webawesome/styles/utilities/prose.css +161 -0
  142. package/dist/ogm-viewer/assets/webawesome/styles/utilities/scroll-lock.css +20 -0
  143. package/dist/ogm-viewer/assets/webawesome/styles/utilities/size.css +21 -0
  144. package/dist/ogm-viewer/assets/webawesome/styles/utilities/text.css +262 -0
  145. package/dist/ogm-viewer/assets/webawesome/styles/utilities/variants.css +62 -0
  146. package/dist/ogm-viewer/assets/webawesome/styles/utilities/visually-hidden.css +17 -0
  147. package/dist/ogm-viewer/assets/webawesome/styles/utilities.css +17 -0
  148. package/dist/ogm-viewer/assets/webawesome/styles/webawesome.css +11 -0
  149. package/dist/ogm-viewer/ogm-viewer.esm.js +1 -1
  150. package/dist/ogm-viewer/p-86b8fafc.entry.js +1 -0
  151. package/dist/ogm-viewer/{p-BeA3REDA.js → p-BrovdLv6.js} +1 -1
  152. package/dist/ogm-viewer/p-CpCT3zlD.js +2750 -0
  153. package/dist/ogm-viewer/p-DTLAlWKQ.js +2 -0
  154. package/dist/types/components/ogm-attributes/ogm-attributes.d.ts +10 -0
  155. package/dist/types/components/ogm-image/ogm-image.d.ts +3 -3
  156. package/dist/types/components/ogm-map/ogm-map.d.ts +32 -14
  157. package/dist/types/components/ogm-menubar/ogm-menubar.d.ts +1 -1
  158. package/dist/types/components/ogm-metadata/ogm-metadata.d.ts +1 -1
  159. package/dist/types/components/ogm-previews/ogm-previews.d.ts +16 -0
  160. package/dist/types/components/ogm-settings/ogm-settings.d.ts +2 -2
  161. package/dist/types/components/ogm-sidebar/ogm-sidebar.d.ts +1 -1
  162. package/dist/types/components/ogm-viewer/ogm-viewer.d.ts +10 -12
  163. package/dist/types/components.d.ts +70 -18
  164. package/dist/types/lib/previewers/cog-deck.d.ts +7 -3
  165. package/dist/types/lib/previewers/cog.d.ts +2 -2
  166. package/dist/types/lib/previewers/maplibre.d.ts +7 -9
  167. package/dist/types/lib/previewers/pmtiles-vector.d.ts +1 -0
  168. package/dist/types/lib/previewers/vector.d.ts +3 -15
  169. package/dist/types/lib/record.d.ts +1 -1
  170. package/dist/types/lib/references.d.ts +0 -8
  171. package/dist/types/lib/sources/cog.d.ts +3 -2
  172. package/dist/types/lib/sources/geojson.d.ts +3 -2
  173. package/dist/types/lib/sources/iiif-manifest.d.ts +12 -0
  174. package/dist/types/lib/sources/iiif-manifest.test.d.ts +1 -0
  175. package/dist/types/lib/sources/iiif.d.ts +5 -0
  176. package/dist/types/lib/sources/maplibre.d.ts +7 -0
  177. package/dist/types/lib/sources/openindexmap.d.ts +1 -0
  178. package/dist/types/lib/sources/pmtiles.d.ts +6 -4
  179. package/dist/types/lib/sources/raster.d.ts +3 -3
  180. package/dist/types/lib/sources/source.d.ts +6 -6
  181. package/dist/types/lib/sources/tilejson.d.ts +3 -2
  182. package/dist/types/lib/sources/tms.d.ts +1 -0
  183. package/dist/types/lib/sources/vector.d.ts +4 -5
  184. package/dist/types/lib/sources/wms.d.ts +4 -3
  185. package/dist/types/lib/sources/xyz.d.ts +1 -0
  186. package/dist/types/lib/themes/maplibre.d.ts +27 -0
  187. package/dist/types/lib/themes/theme.d.ts +7 -0
  188. package/package.json +3 -2
  189. package/dist/cjs/ogm-image_7.cjs.entry.js +0 -14
  190. package/dist/collection/lib/previewers/index.js +0 -36
  191. package/dist/collection/lib/sources/index.js +0 -29
  192. package/dist/esm/ogm-image_7.entry.js +0 -2
  193. package/dist/ogm-viewer/p-0b81e024.entry.js +0 -1
  194. package/dist/ogm-viewer/p-33R3d9fV.js +0 -1950
  195. package/dist/ogm-viewer/p-BdFT_kJa.js +0 -2
  196. package/dist/types/lib/previewers/index.d.ts +0 -3
  197. package/dist/types/lib/sources/index.d.ts +0 -3
@@ -0,0 +1,20 @@
1
+ @layer wa-utilities {
2
+ .wa-border-radius-s {
3
+ border-radius: var(--wa-border-radius-s);
4
+ }
5
+ .wa-border-radius-m {
6
+ border-radius: var(--wa-border-radius-m);
7
+ }
8
+ .wa-border-radius-l {
9
+ border-radius: var(--wa-border-radius-l);
10
+ }
11
+ .wa-border-radius-pill {
12
+ border-radius: var(--wa-border-radius-pill);
13
+ }
14
+ .wa-border-radius-circle {
15
+ border-radius: var(--wa-border-radius-circle);
16
+ }
17
+ .wa-border-radius-square {
18
+ border-radius: var(--wa-border-radius-square);
19
+ }
20
+ }
@@ -0,0 +1,16 @@
1
+ @layer wa-utilities {
2
+ /* Apply Flexbox with 0 specificity to ensure a flex wrap util produces a visible change */
3
+ :where(.wa-flex-wrap, .wa-flex-nowrap, .wa-flex-wrap-reverse) {
4
+ display: flex;
5
+ }
6
+
7
+ .wa-flex-wrap {
8
+ flex-wrap: wrap;
9
+ }
10
+ .wa-flex-nowrap {
11
+ flex-wrap: nowrap;
12
+ }
13
+ .wa-flex-wrap-reverse {
14
+ flex-wrap: wrap-reverse;
15
+ }
16
+ }
@@ -0,0 +1,17 @@
1
+ @layer wa-utilities {
2
+ /*
3
+ * Utility to minimize FOUCE and show custom elements only after they're registered
4
+ */
5
+ .wa-cloak:has(:not(:defined)) {
6
+ animation: 2s step-end wa-fouce-cloak;
7
+ }
8
+
9
+ @keyframes wa-fouce-cloak {
10
+ from {
11
+ opacity: 0;
12
+ }
13
+ to {
14
+ opacity: 1;
15
+ }
16
+ }
17
+ }
@@ -0,0 +1,56 @@
1
+ @layer wa-utilities {
2
+ /* Apply Flexbox with 0 specificity to ensure a gap util produces a visible change */
3
+ :where(
4
+ .wa-gap-0,
5
+ .wa-gap-3xs,
6
+ .wa-gap-2xs,
7
+ .wa-gap-xs,
8
+ .wa-gap-s,
9
+ .wa-gap-m,
10
+ .wa-gap-l,
11
+ .wa-gap-xl,
12
+ .wa-gap-2xl,
13
+ .wa-gap-3xl,
14
+ .wa-gap-4xl,
15
+ .wa-gap-5xl
16
+ ) {
17
+ display: flex;
18
+ }
19
+
20
+ .wa-gap-0 {
21
+ gap: 0px;
22
+ }
23
+ .wa-gap-3xs {
24
+ gap: var(--wa-space-3xs);
25
+ }
26
+ .wa-gap-2xs {
27
+ gap: var(--wa-space-2xs);
28
+ }
29
+ .wa-gap-xs {
30
+ gap: var(--wa-space-xs);
31
+ }
32
+ .wa-gap-s {
33
+ gap: var(--wa-space-s);
34
+ }
35
+ .wa-gap-m {
36
+ gap: var(--wa-space-m);
37
+ }
38
+ .wa-gap-l {
39
+ gap: var(--wa-space-l);
40
+ }
41
+ .wa-gap-xl {
42
+ gap: var(--wa-space-xl);
43
+ }
44
+ .wa-gap-2xl {
45
+ gap: var(--wa-space-2xl);
46
+ }
47
+ .wa-gap-3xl {
48
+ gap: var(--wa-space-3xl);
49
+ }
50
+ .wa-gap-4xl {
51
+ gap: var(--wa-space-4xl);
52
+ }
53
+ .wa-gap-5xl {
54
+ gap: var(--wa-space-5xl);
55
+ }
56
+ }
@@ -0,0 +1,32 @@
1
+ @layer wa-utilities {
2
+ /* Apply Flexbox with 0 specificity to ensure a justify-content util produces a visible change */
3
+ :where(
4
+ .wa-justify-content-start,
5
+ .wa-justify-content-end,
6
+ .wa-justify-content-center,
7
+ .wa-justify-content-space-around,
8
+ .wa-justify-content-space-between,
9
+ .wa-justify-content-space-evenly
10
+ ) {
11
+ display: flex;
12
+ }
13
+
14
+ .wa-justify-content-start {
15
+ justify-content: flex-start;
16
+ }
17
+ .wa-justify-content-end {
18
+ justify-content: flex-end;
19
+ }
20
+ .wa-justify-content-center {
21
+ justify-content: center;
22
+ }
23
+ .wa-justify-content-space-around {
24
+ justify-content: space-around;
25
+ }
26
+ .wa-justify-content-space-between {
27
+ justify-content: space-between;
28
+ }
29
+ .wa-justify-content-space-evenly {
30
+ justify-content: space-evenly;
31
+ }
32
+ }
@@ -0,0 +1,159 @@
1
+ @layer wa-utilities {
2
+ :is(
3
+ [class*='wa-cluster'],
4
+ [class*='wa-flank'],
5
+ [class*='wa-frame'],
6
+ [class*='wa-grid'],
7
+ [class*='wa-stack'],
8
+ [class*='wa-split']
9
+ )
10
+ > * {
11
+ margin-block: 0;
12
+ margin-inline: 0;
13
+ }
14
+
15
+ :where(
16
+ [class*='wa-cluster'],
17
+ [class*='wa-flank'],
18
+ [class*='wa-frame'],
19
+ [class*='wa-grid'],
20
+ [class*='wa-stack'],
21
+ [class*='wa-split']
22
+ ) {
23
+ gap: var(--wa-space-m);
24
+ }
25
+
26
+ /* #region Cluster */
27
+ [class*='wa-cluster'] {
28
+ display: flex;
29
+ }
30
+
31
+ :where([class*='wa-cluster']) {
32
+ align-items: center;
33
+ justify-content: flex-start;
34
+ flex-wrap: wrap;
35
+ }
36
+ /* #endregion */
37
+
38
+ /* #region Flank */
39
+ [class*='wa-flank'] {
40
+ display: flex;
41
+
42
+ --content-percentage: initial;
43
+ --flank-size: initial;
44
+ }
45
+
46
+ [class*='wa-flank']:not([class*='\:end']) > :first-child,
47
+ [class*='wa-flank'][class*='\:start'] > :first-child {
48
+ flex-basis: var(--flank-size, auto);
49
+ flex-grow: 1;
50
+ }
51
+ [class*='wa-flank']:not([class*='\:end']) > :last-child,
52
+ [class*='wa-flank'][class*='\:start'] > :last-child {
53
+ flex-basis: 0;
54
+ flex-grow: 999;
55
+ min-inline-size: var(--content-percentage, 50%);
56
+ }
57
+
58
+ [class*='wa-flank'][class*='\:end'] > :last-child {
59
+ flex-basis: var(--flank-size, auto);
60
+ flex-grow: 1;
61
+ }
62
+ [class*='wa-flank'][class*='\:end'] > :first-child {
63
+ flex-basis: 0;
64
+ flex-grow: 999;
65
+ min-inline-size: var(--content-percentage, 50%);
66
+ }
67
+
68
+ :where([class*='wa-flank']) {
69
+ align-items: center;
70
+ flex-wrap: wrap;
71
+ }
72
+ /* #endregion */
73
+
74
+ /* #region Frame */
75
+ [class*='wa-frame'] {
76
+ display: flex;
77
+ aspect-ratio: 1 / 1;
78
+ overflow: hidden;
79
+ }
80
+
81
+ [class*='wa-frame'] > img,
82
+ [class*='wa-frame'] > video {
83
+ block-size: 100%;
84
+ inline-size: 100%;
85
+ object-fit: cover;
86
+ }
87
+
88
+ [class*='wa-frame'][class*='\:square'] {
89
+ aspect-ratio: 1 / 1;
90
+ }
91
+ [class*='wa-frame'][class*='\:landscape'] {
92
+ aspect-ratio: 16 / 9;
93
+ }
94
+ [class*='wa-frame'][class*='\:portrait'] {
95
+ aspect-ratio: 9 / 16;
96
+ }
97
+
98
+ :where([class*='wa-frame']) {
99
+ align-items: center;
100
+ justify-content: center;
101
+ }
102
+ /* #endregion */
103
+
104
+ /* #region Grid */
105
+ [class*='wa-grid'] {
106
+ display: grid;
107
+ grid-template-columns: repeat(auto-fit, minmax(min(var(--min-column-size, 20ch), 100%), 1fr));
108
+
109
+ --min-column-size: initial;
110
+ }
111
+
112
+ .wa-span-grid {
113
+ grid-column: 1 / -1;
114
+ }
115
+ /* #endregion */
116
+
117
+ /* #region Split */
118
+ [class*='wa-split'] {
119
+ display: flex;
120
+ }
121
+
122
+ [class*='wa-split'],
123
+ [class*='wa-split'][class*='\:row'] {
124
+ flex-direction: row;
125
+ block-size: auto;
126
+ inline-size: 100%;
127
+ }
128
+
129
+ [class*='wa-split']:not([class*='\:column']) > :first-child {
130
+ flex: 0 1 auto;
131
+ }
132
+
133
+ [class*='wa-split'][class*='\:column'] {
134
+ flex-direction: column;
135
+ block-size: auto;
136
+ inline-size: auto;
137
+ align-self: stretch;
138
+ }
139
+
140
+ :where([class*='wa-split']) {
141
+ align-items: center;
142
+ justify-content: space-between;
143
+ flex-wrap: wrap;
144
+ }
145
+
146
+ /* #endregion */
147
+
148
+ /* #region Stack */
149
+ [class*='wa-stack'] {
150
+ display: flex;
151
+ flex-direction: column;
152
+ }
153
+
154
+ :where([class*='wa-stack']) {
155
+ align-items: stretch;
156
+ justify-content: flex-start;
157
+ }
158
+ /* #endregion */
159
+ }
@@ -0,0 +1,9 @@
1
+ @layer wa-utilities {
2
+ .wa-placeholder {
3
+ align-self: stretch;
4
+ background-color: var(--wa-color-neutral-fill-quiet);
5
+ border: dashed var(--wa-border-width-s) var(--wa-color-neutral-border-normal);
6
+ border-radius: var(--wa-border-radius-l);
7
+ padding: var(--wa-space-3xl);
8
+ }
9
+ }
@@ -0,0 +1,161 @@
1
+ @layer wa-utilities {
2
+ /* `wa-prose` applies hierarchical, asymmetric typographic rhythm to a block
3
+ of long-form content. Builds on `wa-native`'s base block styles instead of
4
+ duplicating them. Em-based spacing scales when composed with `wa-font-size-*`.
5
+ The class and its element selectors are wrapped in `:where()` so every rule
6
+ sits at 0,0,0 specificity — any utility class or element rule the author
7
+ applies inside the container takes precedence without weight tricks. */
8
+
9
+ /* @scope is Newly Available in Baseline 2025. As such, it should be reserved for
10
+ non-essential, progressive enhancement features until @scope is established
11
+ as Widely Available. https://caniuse.com/css-cascade-scope */
12
+ @scope (.wa-prose) to (.wa-not-prose) {
13
+ :where(:scope) {
14
+ /* #region Tokens ~~~~~~~~~~~~ */
15
+
16
+ /* Em-based rhythm scale: each token resolves at the use site, so margins
17
+ scale with the element's own font-size. `--wa-prose-rhythm-scale` is a
18
+ single knob to tighten or loosen everything at once. */
19
+ --wa-prose-rhythm-scale: 1;
20
+ --wa-prose-rhythm-2xs: calc(0.25em * var(--wa-space-scale) * var(--wa-prose-rhythm-scale));
21
+ --wa-prose-rhythm-xs: calc(0.5em * var(--wa-space-scale) * var(--wa-prose-rhythm-scale));
22
+ --wa-prose-rhythm-s: calc(0.75em * var(--wa-space-scale) * var(--wa-prose-rhythm-scale));
23
+ --wa-prose-rhythm-m: calc(1em * var(--wa-space-scale) * var(--wa-prose-rhythm-scale));
24
+ --wa-prose-rhythm-l: calc(1.5em * var(--wa-space-scale) * var(--wa-prose-rhythm-scale));
25
+ --wa-prose-rhythm-xl: calc(2em * var(--wa-space-scale) * var(--wa-prose-rhythm-scale));
26
+ --wa-prose-rhythm-2xl: calc(2.5em * var(--wa-space-scale) * var(--wa-prose-rhythm-scale));
27
+ --wa-prose-rhythm-3xl: calc(3em * var(--wa-space-scale) * var(--wa-prose-rhythm-scale));
28
+
29
+ --wa-prose-line-length: 65ch;
30
+
31
+ max-inline-size: var(--wa-prose-line-length);
32
+
33
+ /* Oldstyle proportional figures for running text; tables reassert
34
+ `tabular-nums` below. Fonts without the OpenType feature fall back. */
35
+ font-variant-numeric: oldstyle-nums proportional-nums;
36
+
37
+ /* Inherits to descendants. Safari today; progressive enhancement elsewhere. */
38
+ hanging-punctuation: first last allow-end;
39
+ /* #endregion */
40
+
41
+ /* #region Headings ~~~~~~~~~~~~ */
42
+
43
+ /* Em sizes inherit through the cascade — re-applying `--wa-font-size-scale`
44
+ here would double-scale. Authors overriding should stay em-based. */
45
+ & :where(h1) {
46
+ font-size: 2.5625em;
47
+ }
48
+ & :where(h2) {
49
+ font-size: 2em;
50
+ }
51
+ & :where(h3) {
52
+ font-size: 1.5625em;
53
+ }
54
+ & :where(h4) {
55
+ font-size: 1.25em;
56
+ }
57
+ & :where(h5) {
58
+ font-size: 1em;
59
+ }
60
+ & :where(h6) {
61
+ font-size: 0.75em;
62
+ }
63
+
64
+ /* Slight optical tracking; only the larger sizes need it. */
65
+ & :where(h1, h2) {
66
+ letter-spacing: -0.01em;
67
+ }
68
+
69
+ /* Headings hug what they introduce: generous above, tight below. */
70
+ & :where(h1):has(+ *) {
71
+ margin-block-end: var(--wa-prose-rhythm-s);
72
+ }
73
+
74
+ & * + :where(h2) {
75
+ margin-block-start: var(--wa-prose-rhythm-2xl);
76
+ }
77
+ & :where(h2):has(+ *) {
78
+ margin-block-end: var(--wa-prose-rhythm-s);
79
+ }
80
+
81
+ & * + :where(h3) {
82
+ margin-block-start: var(--wa-prose-rhythm-xl);
83
+ }
84
+ & :where(h3):has(+ *) {
85
+ margin-block-end: var(--wa-prose-rhythm-s);
86
+ }
87
+
88
+ & :where(h4, h5, h6):has(+ *) {
89
+ margin-block-end: var(--wa-prose-rhythm-xs);
90
+ }
91
+
92
+ /* Back-to-back headings tighten so the second reads as subordinate.
93
+ Enumerated explicitly — skipping more than two levels is rare enough
94
+ that the default rhythm reads better. */
95
+ & :where(h1 + h2, h1 + h3, h2 + h3, h2 + h4, h3 + h4, h4 + h5, h5 + h6) {
96
+ margin-block-start: var(--wa-prose-rhythm-m);
97
+ }
98
+ /* #endregion */
99
+
100
+ /* #region Body text & lists ~~~~~~~~~~~~ */
101
+
102
+ /* Replaces wa-native's rem-based `--wa-content-spacing` with em rhythm. */
103
+ & :where(p, ul, ol, dl):has(+ *) {
104
+ margin-block-end: var(--wa-prose-rhythm-l);
105
+ }
106
+
107
+ & :where(ul, ol) > :where(li):has(+ li) {
108
+ margin-block-end: var(--wa-prose-rhythm-2xs);
109
+ }
110
+
111
+ & :where(dd):has(+ *) {
112
+ margin-block-end: var(--wa-prose-rhythm-s);
113
+ }
114
+ /* #endregion */
115
+
116
+ /* #region Captions ~~~~~~~~~~~~ */
117
+
118
+ /* Em-based override keeps caption spacing in step with the prose
119
+ container; wa-native sets the visual style. */
120
+ & :where(figcaption) {
121
+ margin-block-start: var(--wa-prose-rhythm-xs);
122
+ }
123
+ /* #endregion */
124
+
125
+ /* #region Inline code & long-word breaks ~~~~~~~~~~~~ */
126
+
127
+ /* `anywhere` is the right trade-off in prose: long URLs and identifiers
128
+ break instead of overflowing the column. */
129
+ & :where(code, pre) {
130
+ overflow-wrap: anywhere;
131
+ }
132
+ /* #endregion */
133
+
134
+ /* #region Section breaks & major non-text blocks ~~~~~~~~~~~~ */
135
+
136
+ /* `<hr>`'s own margin defines the gap; the next heading shouldn't double-stack. */
137
+ & :where(hr) {
138
+ margin-block: var(--wa-prose-rhythm-3xl);
139
+ }
140
+ & :where(hr + :is(h1, h2, h3, h4, h5, h6)) {
141
+ margin-block-start: 0;
142
+ }
143
+
144
+ /* Major non-text blocks get more air than running prose, but headings
145
+ still hug — so the top-margin rule excludes the heading-to-block case
146
+ (handled separately below with a smaller gap). */
147
+ & :where(pre, figure, table, blockquote, wa-callout, details):has(+ *) {
148
+ margin-block-end: var(--wa-prose-rhythm-xl);
149
+ }
150
+
151
+ & :where(:not(h1, h2, h3, h4, h5, h6) + :is(pre, figure, table, blockquote, wa-callout, details)) {
152
+ margin-block-start: var(--wa-prose-rhythm-xl);
153
+ }
154
+
155
+ & :where(:is(h1, h2, h3, h4, h5, h6) + :is(pre, figure, table, blockquote, wa-callout, details)) {
156
+ margin-block-start: var(--wa-prose-rhythm-m);
157
+ }
158
+ /* #endregion */
159
+ }
160
+ }
161
+ }
@@ -0,0 +1,20 @@
1
+ @layer wa-utilities {
2
+ /* These scroll lock helpers are put into this CSS file to avoid strict CSPs that affect style tag loading. */
3
+ @supports (scrollbar-gutter: stable) {
4
+ .wa-scroll-lock {
5
+ scrollbar-gutter: var(--wa-scroll-lock-gutter) !important;
6
+ }
7
+
8
+ .wa-scroll-lock body {
9
+ overflow: hidden !important;
10
+ }
11
+ }
12
+
13
+ /** This can go away once Safari has scrollbar-gutter support. */
14
+ @supports not (scrollbar-gutter: stable) {
15
+ .wa-scroll-lock body {
16
+ padding-right: var(--wa-scroll-lock-size) !important;
17
+ overflow: hidden !important;
18
+ }
19
+ }
20
+ }
@@ -0,0 +1,21 @@
1
+ @layer wa-utilities {
2
+ .wa-size-xs {
3
+ font-size: var(--wa-font-size-xs);
4
+ }
5
+
6
+ .wa-size-s {
7
+ font-size: var(--wa-font-size-s);
8
+ }
9
+
10
+ .wa-size-m {
11
+ font-size: var(--wa-font-size-m);
12
+ }
13
+
14
+ .wa-size-l {
15
+ font-size: var(--wa-font-size-l);
16
+ }
17
+
18
+ .wa-size-xl {
19
+ font-size: var(--wa-font-size-xl);
20
+ }
21
+ }