@panoramax/web-viewer 3.2.3-develop-17bc8da1 → 3.2.3-develop-6a0bb22d

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 (30) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/build/index.css +2 -2
  3. package/build/index.css.map +1 -1
  4. package/build/index.js +30 -21
  5. package/build/index.js.map +1 -1
  6. package/build/static/media/atkinson-hyperlegible-next-latin-400-normal..woff +0 -0
  7. package/build/static/media/atkinson-hyperlegible-next-latin-400-normal..woff2 +0 -0
  8. package/build/static/media/atkinson-hyperlegible-next-latin-ext-400-normal..woff +0 -0
  9. package/build/static/media/atkinson-hyperlegible-next-latin-ext-400-normal..woff2 +0 -0
  10. package/docs/reference/components/core/Basic.md +1 -1
  11. package/docs/reference/components/core/CoverageMap.md +1 -1
  12. package/docs/reference/components/core/Editor.md +7 -0
  13. package/docs/reference/components/core/Viewer.md +7 -0
  14. package/docs/tutorials/map_style.md +3 -3
  15. package/docs/tutorials/migrate_v4.md +4 -0
  16. package/package.json +2 -1
  17. package/src/components/core/Basic.css +2 -1
  18. package/src/components/core/Basic.js +18 -9
  19. package/src/components/core/Editor.js +7 -0
  20. package/src/components/core/Viewer.js +9 -2
  21. package/src/components/menus/MapFilters.js +4 -2
  22. package/src/components/menus/MapLegend.js +1 -1
  23. package/src/components/menus/PictureLegend.js +1 -1
  24. package/src/components/menus/PlayerOptions.js +0 -1
  25. package/src/components/menus/Share.js +8 -4
  26. package/src/components/styles.js +12 -5
  27. package/src/components/ui/ButtonGroup.css +4 -0
  28. package/src/components/ui/Loader.js +1 -1
  29. package/src/components/ui/QualityScore.js +5 -5
  30. package/src/components/ui/SearchBar.js +3 -2
@@ -46,7 +46,7 @@ Component properties.
46
46
  | [sequence] | <code>string</code> | | The sequence ID of the picture displayed |
47
47
  | [fetchOptions] | <code>object</code> | | Set custom options for fetch calls made against API ([same syntax as fetch options parameter](https://developer.mozilla.org/en-US/docs/Web/API/fetch#parameters)) |
48
48
  | [users] | <code>Array.&lt;string&gt;</code> | <code>[geovisio]</code> | List of users IDs to use for map display (defaults to general map, identified as "geovisio") |
49
- | [style] | <code>string</code> \| <code>object</code> | | The map's MapLibre style. This can be an a JSON object conforming to the schema described in the [MapLibre Style Specification](https://maplibre.org/maplibre-gl-js-docs/style-spec/), or a URL string pointing to one. Defaults to OSM vector tiles. |
49
+ | [mapstyle] | <code>string</code> \| <code>object</code> | | The map's MapLibre style. This can be an a JSON object conforming to the schema described in the [MapLibre Style Specification](https://maplibre.org/maplibre-gl-js-docs/style-spec/), or a URL string pointing to one. Defaults to OSM vector tiles. |
50
50
  | [lang] | <code>string</code> | | To override language used for labels. Defaults to using user's preferred languages. |
51
51
  | endpoint | <code>string</code> | | URL to API to use (must be a [STAC API](https://github.com/radiantearth/stac-api-spec/blob/main/overview.md)) |
52
52
 
@@ -53,7 +53,7 @@ Component properties.
53
53
  | [sequence] | <code>string</code> | | The sequence ID of the picture displayed |
54
54
  | [fetchOptions] | <code>object</code> | | Set custom options for fetch calls made against API ([same syntax as fetch options parameter](https://developer.mozilla.org/en-US/docs/Web/API/fetch#parameters)) |
55
55
  | [users] | <code>Array.&lt;string&gt;</code> | <code>[geovisio]</code> | List of users IDs to use for map display (defaults to general map, identified as "geovisio") |
56
- | [style] | <code>string</code> \| <code>object</code> | | The map's MapLibre style. This can be an a JSON object conforming to the schema described in the [MapLibre Style Specification](https://maplibre.org/maplibre-gl-js-docs/style-spec/), or a URL string pointing to one. Defaults to OSM vector tiles. |
56
+ | [mapstyle] | <code>string</code> \| <code>object</code> | | The map's MapLibre style. This can be an a JSON object conforming to the schema described in the [MapLibre Style Specification](https://maplibre.org/maplibre-gl-js-docs/style-spec/), or a URL string pointing to one. Defaults to OSM vector tiles. |
57
57
  | [lang] | <code>string</code> | | To override language used for labels. Defaults to using user's preferred languages. |
58
58
  | endpoint | <code>string</code> | | URL to API to use (must be a [STAC API](https://github.com/radiantearth/stac-api-spec/blob/main/overview.md)) |
59
59
 
@@ -54,6 +54,13 @@ Component properties. All of [Basic properties](Basic.md/#Panoramax.components.c
54
54
 
55
55
  | Name | Type | Default | Description |
56
56
  | --- | --- | --- | --- |
57
+ | [picture] | <code>string</code> | | The picture ID to display |
58
+ | [sequence] | <code>string</code> | | The sequence ID of the picture displayed |
59
+ | [fetchOptions] | <code>object</code> | | Set custom options for fetch calls made against API ([same syntax as fetch options parameter](https://developer.mozilla.org/en-US/docs/Web/API/fetch#parameters)) |
60
+ | [users] | <code>Array.&lt;string&gt;</code> | <code>[geovisio]</code> | List of users IDs to use for map display (defaults to general map, identified as "geovisio") |
61
+ | [mapstyle] | <code>string</code> \| <code>object</code> | | The map's MapLibre style. This can be an a JSON object conforming to the schema described in the [MapLibre Style Specification](https://maplibre.org/maplibre-gl-js-docs/style-spec/), or a URL string pointing to one. Defaults to OSM vector tiles. |
62
+ | [lang] | <code>string</code> | | To override language used for labels. Defaults to using user's preferred languages. |
63
+ | endpoint | <code>string</code> | | URL to API to use (must be a [STAC API](https://github.com/radiantearth/stac-api-spec/blob/main/overview.md)) |
57
64
  | [raster] | <code>object</code> | | The MapLibre raster source for aerial background. This must be a JSON object following [MapLibre raster source definition](https://maplibre.org/maplibre-style-spec/sources/#raster). |
58
65
  | [background] | <code>string</code> | <code>&quot;streets&quot;</code> | Choose default map background to display (streets or aerial, if raster aerial background available). Defaults to street. |
59
66
 
@@ -98,6 +98,13 @@ Component properties. All of [Basic properties](Basic.md/#Panoramax.components.c
98
98
  | [focus] | <code>string</code> | <code>&quot;pic&quot;</code> | The component showing up as main component (pic, map) |
99
99
  | [geocoder] | <code>string</code> | <code>&quot;nominatim&quot;</code> | The geocoder engine to use (nominatim, ban) |
100
100
  | [widgets] | <code>string</code> | <code>true</code> | Use default set of widgets ? Set to false to avoid any widget to show up, and use slots to populate as you like. |
101
+ | [picture] | <code>string</code> | | The picture ID to display |
102
+ | [sequence] | <code>string</code> | | The sequence ID of the picture displayed |
103
+ | [fetchOptions] | <code>object</code> | | Set custom options for fetch calls made against API ([same syntax as fetch options parameter](https://developer.mozilla.org/en-US/docs/Web/API/fetch#parameters)) |
104
+ | [users] | <code>Array.&lt;string&gt;</code> | <code>[geovisio]</code> | List of users IDs to use for map display (defaults to general map, identified as "geovisio") |
105
+ | [mapstyle] | <code>string</code> \| <code>object</code> | | The map's MapLibre style. This can be an a JSON object conforming to the schema described in the [MapLibre Style Specification](https://maplibre.org/maplibre-gl-js-docs/style-spec/), or a URL string pointing to one. Defaults to OSM vector tiles. |
106
+ | [lang] | <code>string</code> | | To override language used for labels. Defaults to using user's preferred languages. |
107
+ | endpoint | <code>string</code> | | URL to API to use (must be a [STAC API](https://github.com/radiantearth/stac-api-spec/blob/main/overview.md)) |
101
108
 
102
109
  <a name="Panoramax.components.core.Viewer+onceReady"></a>
103
110
 
@@ -1,11 +1,11 @@
1
1
  # Change map background style
2
2
 
3
- All components can be configured to use a different map background than the default one. By default, an OpenStreetMap France classic style if offered. Changing the style is done by passing a `style` parameter on viewer setup. It should follow the [MapLibre Style specification](https://maplibre.org/maplibre-style-spec) and be passed as an object, or an URL to such style:
3
+ All components can be configured to use a different map background than the default one. By default, an OpenStreetMap France classic style if offered. Changing the style is done by passing a `mapstyle` parameter on viewer setup. It should follow the [MapLibre Style specification](https://maplibre.org/maplibre-style-spec) and be passed as an object, or an URL to such style:
4
4
 
5
5
  ```html
6
6
  <pnx-viewer
7
7
  endpoint="https://api.panoramax.xyz/api"
8
- style="https://my.tiles.provider/basic.json"
8
+ mapstyle="https://my.tiles.provider/basic.json"
9
9
  />
10
10
  ```
11
11
 
@@ -14,7 +14,7 @@ Note that we also support PMTiles (for a simpler tile hosting), so your style fi
14
14
  ```html
15
15
  <pnx-viewer
16
16
  endpoint="https://api.panoramax.xyz/api"
17
- style='{
17
+ mapstyle='{
18
18
  "sources": {
19
19
  "protomaps": {
20
20
  "type": "vector",
@@ -24,6 +24,8 @@ The way you create a component (viewer, editor, coverage map) is different :
24
24
  let myviewer = document.getElementById("myviewer");
25
25
  ```
26
26
 
27
+ Also note that custom MapLibre style must be passed as `mapstyle` attribute.
28
+
27
29
  === "v3"
28
30
 
29
31
  Before, you created a `div` with ID, then passed it to JS class.
@@ -32,6 +34,8 @@ The way you create a component (viewer, editor, coverage map) is different :
32
34
  let myViewer = new Panoramax.Viewer("viewer", "https://api.panoramax.xyz/api");
33
35
  ```
34
36
 
37
+ And MapLibre style was passed as a `style` property in option object.
38
+
35
39
  ## ⏯️ Widgets options
36
40
 
37
41
  Viewer widgets options are managed quite differently in version 4:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panoramax/web-viewer",
3
- "version": "3.2.3-develop-17bc8da1",
3
+ "version": "3.2.3-develop-6a0bb22d",
4
4
  "description": "Panoramax web viewer for geolocated pictures",
5
5
  "main": "build/index.js",
6
6
  "author": "Panoramax team",
@@ -89,6 +89,7 @@
89
89
  "workbox-webpack-plugin": "^6.5.4"
90
90
  },
91
91
  "dependencies": {
92
+ "@fontsource/atkinson-hyperlegible-next": "^5.2.2",
92
93
  "@fortawesome/fontawesome-svg-core": "^6.7.2",
93
94
  "@fortawesome/free-regular-svg-icons": "^6.7.2",
94
95
  "@fortawesome/free-solid-svg-icons": "^6.7.2",
@@ -1,5 +1,5 @@
1
1
  /* Colors */
2
- :root {
2
+ :root, :host {
3
3
  --white: #ffffff;
4
4
  --black: #181818;
5
5
  --black-pale: #1b1a17;
@@ -31,6 +31,7 @@
31
31
  --widget-font: var(--grey-dark);
32
32
  --widget-font-active: var(--white);
33
33
  --widget-font-direct: var(--blue);
34
+ --font-family: "Atkinson Hyperlegible Next", sans-serif;
34
35
  }
35
36
 
36
37
  .pnx-hidden { display: none !important; }
@@ -5,6 +5,7 @@ import { DEFAULT_TILES } from "../../utils/map";
5
5
  import { createWebComp } from "../../utils/widgets";
6
6
  import { isInIframe, isInternetFast } from "../../utils/utils";
7
7
  import PACKAGE_JSON from "../../../package.json";
8
+ import "@fontsource/atkinson-hyperlegible-next";
8
9
  import "./Basic.css";
9
10
 
10
11
  /**
@@ -36,7 +37,7 @@ export default class Basic extends LitElement {
36
37
  * @property {string} [sequence] The sequence ID of the picture displayed
37
38
  * @property {object} [fetchOptions] Set custom options for fetch calls made against API ([same syntax as fetch options parameter](https://developer.mozilla.org/en-US/docs/Web/API/fetch#parameters))
38
39
  * @property {string[]} [users=[geovisio]] List of users IDs to use for map display (defaults to general map, identified as "geovisio")
39
- * @property {string|object} [style] The map's MapLibre style. This can be an a JSON object conforming to the schema described in the [MapLibre Style Specification](https://maplibre.org/maplibre-gl-js-docs/style-spec/), or a URL string pointing to one. Defaults to OSM vector tiles.
40
+ * @property {string|object} [mapstyle] The map's MapLibre style. This can be an a JSON object conforming to the schema described in the [MapLibre Style Specification](https://maplibre.org/maplibre-gl-js-docs/style-spec/), or a URL string pointing to one. Defaults to OSM vector tiles.
40
41
  * @property {string} [lang] To override language used for labels. Defaults to using user's preferred languages.
41
42
  * @property {string} endpoint URL to API to use (must be a [STAC API](https://github.com/radiantearth/stac-api-spec/blob/main/overview.md))
42
43
  */
@@ -45,7 +46,7 @@ export default class Basic extends LitElement {
45
46
  sequence: {type: String, reflect: true},
46
47
  fetchOptions: {type: Object, attribute: false},
47
48
  users: {type: Array, reflect: true},
48
- style: {type: Object},
49
+ mapstyle: {type: String},
49
50
  lang: {type: String},
50
51
  endpoint: {type: String},
51
52
  };
@@ -55,7 +56,7 @@ export default class Basic extends LitElement {
55
56
 
56
57
  // Some defaults
57
58
  this.users = ["geovisio"];
58
- this.style = DEFAULT_TILES;
59
+ this.mapstyle = this.getAttribute("mapstyle") || DEFAULT_TILES;
59
60
  this.lang = this.getAttribute("lang") || null;
60
61
  this.endpoint = this.getAttribute("endpoint") || null; // No default
61
62
  this.picture = null;
@@ -77,15 +78,18 @@ export default class Basic extends LitElement {
77
78
  // Internet speed check
78
79
  this._isInternetFast = null;
79
80
  isInternetFast().then(isFast => this._isInternetFast = isFast);
81
+ }
80
82
 
81
- if(this.endpoint) { this._setupAPI(this.endpoint); }
83
+ connectedCallback() {
84
+ super.connectedCallback();
85
+ if(this.endpoint) { this._setupAPI(); }
82
86
  }
83
87
 
84
88
  /**
85
89
  * Creates API and wait for initial loading
86
90
  * @private
87
91
  */
88
- _setupAPI(endpoint) {
92
+ _setupAPI() {
89
93
  // Loader init
90
94
  this.loader = this.loader || createWebComp("pnx-loader", {_parent: this});
91
95
 
@@ -94,12 +98,17 @@ export default class Basic extends LitElement {
94
98
  return;
95
99
  }
96
100
 
97
- // API init)
101
+ // Check if mapstyle is not a unparsed JSON
102
+ try {
103
+ this.mapstyle = JSON.parse(this.mapstyle);
104
+ } catch(e) { /* empty */ }
105
+
106
+ // API init
98
107
  try {
99
- this.api = new API(endpoint, {
108
+ this.api = new API(this.endpoint, {
100
109
  users: this.users,
101
110
  fetch: this.fetchOptions,
102
- style: this.style,
111
+ style: this.mapstyle,
103
112
  });
104
113
  this.api.onceReady()
105
114
  .then(() => {
@@ -164,7 +173,7 @@ export default class Basic extends LitElement {
164
173
  super.attributeChangedCallback(name, _old, value);
165
174
 
166
175
  if(name === "endpoint") {
167
- if(!this.api || this.api._endpoint !== value) { this._setupAPI(value); }
176
+ if(!this.api || this.api._endpoint !== value) { this._setupAPI(); }
168
177
  }
169
178
  if(["picture", "sequence"].includes(name)) {
170
179
  let seqId, picId, prevSeqId, prevPicId;
@@ -40,6 +40,13 @@ export default class Editor extends Basic {
40
40
  * @memberof Panoramax.components.core.Editor#
41
41
  * @mixes Panoramax.components.core.Basic#properties
42
42
  * @type {Object}
43
+ * @property {string} [picture] The picture ID to display
44
+ * @property {string} [sequence] The sequence ID of the picture displayed
45
+ * @property {object} [fetchOptions] Set custom options for fetch calls made against API ([same syntax as fetch options parameter](https://developer.mozilla.org/en-US/docs/Web/API/fetch#parameters))
46
+ * @property {string[]} [users=[geovisio]] List of users IDs to use for map display (defaults to general map, identified as "geovisio")
47
+ * @property {string|object} [mapstyle] The map's MapLibre style. This can be an a JSON object conforming to the schema described in the [MapLibre Style Specification](https://maplibre.org/maplibre-gl-js-docs/style-spec/), or a URL string pointing to one. Defaults to OSM vector tiles.
48
+ * @property {string} [lang] To override language used for labels. Defaults to using user's preferred languages.
49
+ * @property {string} endpoint URL to API to use (must be a [STAC API](https://github.com/radiantearth/stac-api-spec/blob/main/overview.md))
43
50
  * @property {object} [raster] The MapLibre raster source for aerial background. This must be a JSON object following [MapLibre raster source definition](https://maplibre.org/maplibre-style-spec/sources/#raster).
44
51
  * @property {string} [background=streets] Choose default map background to display (streets or aerial, if raster aerial background available). Defaults to street.
45
52
  */
@@ -83,6 +83,13 @@ export default class Viewer extends Basic {
83
83
  * @property {string} [focus=pic] The component showing up as main component (pic, map)
84
84
  * @property {string} [geocoder=nominatim] The geocoder engine to use (nominatim, ban)
85
85
  * @property {string} [widgets=true] Use default set of widgets ? Set to false to avoid any widget to show up, and use slots to populate as you like.
86
+ * @property {string} [picture] The picture ID to display
87
+ * @property {string} [sequence] The sequence ID of the picture displayed
88
+ * @property {object} [fetchOptions] Set custom options for fetch calls made against API ([same syntax as fetch options parameter](https://developer.mozilla.org/en-US/docs/Web/API/fetch#parameters))
89
+ * @property {string[]} [users=[geovisio]] List of users IDs to use for map display (defaults to general map, identified as "geovisio")
90
+ * @property {string|object} [mapstyle] The map's MapLibre style. This can be an a JSON object conforming to the schema described in the [MapLibre Style Specification](https://maplibre.org/maplibre-gl-js-docs/style-spec/), or a URL string pointing to one. Defaults to OSM vector tiles.
91
+ * @property {string} [lang] To override language used for labels. Defaults to using user's preferred languages.
92
+ * @property {string} endpoint URL to API to use (must be a [STAC API](https://github.com/radiantearth/stac-api-spec/blob/main/overview.md))
86
93
  */
87
94
  static properties = {
88
95
  map: {type: Object},
@@ -157,8 +164,8 @@ export default class Viewer extends Basic {
157
164
  // Init various widgets
158
165
  if(myInitParams.widgets !== "false") {
159
166
  this.grid.appendChild(createWebComp("pnx-widget-zoom", {
160
- slot: this.isHeightSmall() ? "top-left" : "bottom-right",
161
- class: this.isHeightSmall() ? "pnx-only-map pnx-print-hidden" : "pnx-print-hidden",
167
+ slot: this.isWidthSmall() ? "top-left" : "bottom-right",
168
+ class: this.isWidthSmall() ? "pnx-only-map pnx-print-hidden" : "pnx-print-hidden",
162
169
  _parent: this
163
170
  }));
164
171
  this.grid.appendChild(createWebComp("pnx-widget-share", {slot: "bottom-right", class: "pnx-print-hidden", _parent: this}));
@@ -48,7 +48,7 @@ export default class MapFilters extends LitElement {
48
48
  z-index: 131;
49
49
  background-color: rgba(255,255,255,0.8);
50
50
  text-align: center;
51
- font-weight: bold;
51
+ font-weight: 800;
52
52
  position: absolute;
53
53
  top: 0;
54
54
  right: 0;
@@ -80,6 +80,7 @@ export default class MapFilters extends LitElement {
80
80
  color: var(--widget-font);
81
81
  border: 1px solid var(--widget-border-div);
82
82
  border-radius: 20px;
83
+ font-family: var(--font-family);
83
84
  }
84
85
 
85
86
  /* Input shortcuts */
@@ -91,13 +92,14 @@ export default class MapFilters extends LitElement {
91
92
  border: none;
92
93
  height: 20px;
93
94
  line-height: 20px;
94
- font-size: 11px;
95
+ font-size: 0.8em;
95
96
  padding: 0 8px;
96
97
  vertical-align: middle;
97
98
  background-color: var(--grey-pale);
98
99
  color: var(--black);
99
100
  border-radius: 10px;
100
101
  cursor: pointer;
102
+ font-family: var(--font-family);
101
103
  }
102
104
  .pnx-input-shortcuts button:hover {
103
105
  background-color: #d9dcd9;
@@ -17,7 +17,7 @@ export default class MapLegend extends LitElement {
17
17
  /** @private */
18
18
  static styles = css`
19
19
  :host {
20
- font-size: 0.8em;
20
+ font-size: 0.9em;
21
21
  }
22
22
  small {
23
23
  font-size: 1em;
@@ -30,7 +30,7 @@ export default class PictureLegend extends LitElement {
30
30
  }
31
31
 
32
32
  .context {
33
- font-size: 0.8em;
33
+ font-size: 0.9em;
34
34
  display: flex;
35
35
  align-items: center;
36
36
  justify-content: space-between;
@@ -84,7 +84,6 @@ export default class PlayerOptions extends LitElement {
84
84
  id="pnx-player-contrast"
85
85
  title="${this._parent?._t.pnx.contrast}"
86
86
  kind="outline"
87
- style="width: 26px;"
88
87
  @click=${this._onContrastClick}
89
88
  >
90
89
  ${fa(faLightbulb)}
@@ -73,15 +73,19 @@ export default class ShareMenu extends LitElement {
73
73
  constructor() {
74
74
  super();
75
75
  this._josm = false;
76
+ this._onUrlChange();
76
77
  }
77
78
 
78
79
  /** @private */
79
80
  connectedCallback() {
80
81
  super.connectedCallback();
81
- this._onUrlChange();
82
- this._parent?.addEventListener("ready", this._onUrlChange.bind(this), { once: true });
83
- this._parent?.urlHandler?.addEventListener("url-changed", this._onUrlChange.bind(this));
84
- this._parent?.oncePSVReady().then(() => this._parent.psv.addEventListener("picture-loaded", this._onPictureLoad.bind(this)));
82
+ this._parent?.onceReady().then(() => {
83
+ this._onUrlChange();
84
+ this._parent.urlHandler.addEventListener("url-changed", this._onUrlChange.bind(this));
85
+
86
+ this._parent.onceFirstPicLoaded().then(this._onPictureLoad.bind(this));
87
+ this._parent.psv.addEventListener("picture-loaded", this._onPictureLoad.bind(this));
88
+ });
85
89
  }
86
90
 
87
91
  /** @private */
@@ -13,7 +13,7 @@ export const panel = css`
13
13
  color: var(--widget-font);
14
14
  min-width: 250px;
15
15
  box-sizing: border-box;
16
- font-family: sans-serif;
16
+ font-family: var(--font-family);
17
17
  }
18
18
 
19
19
  .pnx-panel.pnx-hidden {
@@ -58,6 +58,7 @@ export const textarea = css`
58
58
  padding: 5px;
59
59
  width: 100%;
60
60
  box-sizing: border-box;
61
+ font-family: var(--font-family);
61
62
  }
62
63
  `;
63
64
 
@@ -70,6 +71,7 @@ export const select = css`
70
71
  border-radius: 20px;
71
72
  font-size: 16px;
72
73
  padding: 2px 10px;
74
+ font-family: var(--font-family);
73
75
  }
74
76
 
75
77
  select.pnx-100w {
@@ -87,6 +89,7 @@ export const input = css`
87
89
  border-radius: 20px;
88
90
  font-size: 16px;
89
91
  padding: 2px 10px;
92
+ font-family: var(--font-family);
90
93
  }
91
94
 
92
95
  input.pnx-100w {
@@ -98,14 +101,14 @@ export const input = css`
98
101
  // Buttons
99
102
  export const btn = css`
100
103
  :host {
101
- display: inline-block;
104
+ display: inline-flex;
102
105
  }
103
106
 
104
107
  /* Common properties */
105
108
  .pnx-btn {
106
109
  white-space: nowrap;
107
- font-size: 0.9em;
108
- font-family: sans-serif;
110
+ font-size: 1em;
111
+ font-family: var(--font-family);
109
112
  flex-grow: 1;
110
113
  flex-shrink: 1;
111
114
  text-align: center;
@@ -155,7 +158,7 @@ export const btn = css`
155
158
  height: 40px;
156
159
  line-height: 40px;
157
160
  font-size: 16px;
158
- font-weight: 400;
161
+ font-weight: 500;
159
162
  min-width: 40px;
160
163
  padding: 0 10px;
161
164
  gap: 8px;
@@ -232,6 +235,10 @@ export const btn = css`
232
235
 
233
236
  // Titles
234
237
  export const titles = css`
238
+ h1, h2, h3, h4, h5, h6 {
239
+ font-family: var(--font-family);
240
+ }
241
+
235
242
  h3 {
236
243
  font-size: 1.1em;
237
244
  line-height: 1.1em;
@@ -1,3 +1,7 @@
1
+ pnx-button-group > pnx-button {
2
+ display: inline-block;
3
+ }
4
+
1
5
  /* Togglable in group */
2
6
  pnx-button-group > pnx-togglable-group > pnx-button {
3
7
  width: 100%;
@@ -28,7 +28,7 @@ export default class Loader extends LitElement {
28
28
  background-size: cover;
29
29
  background-position: center;
30
30
  z-index: 200;
31
- font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
31
+ font-family: var(--font-family);
32
32
  font-weight: 550;
33
33
  color: var(--black);
34
34
  font-size: 1.4em;
@@ -32,14 +32,14 @@ export default class QualityScore extends LitElement {
32
32
  font-size: 18px;
33
33
  width: 25px;
34
34
  height: 30px;
35
- line-height: 26px;
35
+ line-height: 28px;
36
36
  display: inline-block;
37
37
  border: 1px solid white;
38
38
  text-align: center;
39
39
  background-color: gray;
40
40
  color: rgba(255,255,255,0.9);
41
- font-family: sans-serif;
42
- font-weight: bold;
41
+ font-family: var(--font-family);
42
+ font-weight: 800;
43
43
  vertical-align: middle;
44
44
  }
45
45
 
@@ -58,7 +58,7 @@ export default class QualityScore extends LitElement {
58
58
  .selected, input[type="checkbox"]:checked + label {
59
59
  width: 30px;
60
60
  height: 42px;
61
- line-height: 37px;
61
+ line-height: 41px;
62
62
  border-radius: 8px;
63
63
  font-size: 27px;
64
64
  color: white;
@@ -71,7 +71,7 @@ export default class QualityScore extends LitElement {
71
71
  label:hover {
72
72
  width: 28px;
73
73
  height: 35px;
74
- line-height: 30px;
74
+ line-height: 34px;
75
75
  border-radius: 3px;
76
76
  font-size: 22px;
77
77
  color: white;
@@ -50,6 +50,7 @@ export default class SearchBar extends LitElement {
50
50
  width: fit-content;
51
51
  max-width: 100%;
52
52
  box-sizing: border-box;
53
+ font-family: var(--font-family);
53
54
  }
54
55
  .sb.sb-xxl {
55
56
  height: 40px;
@@ -113,9 +114,9 @@ export default class SearchBar extends LitElement {
113
114
  background-color: var(--widget-bg);
114
115
  color: var(--widget-font);
115
116
  z-index: 130;
116
- font-size: 1em;
117
+ font-size: 1.05em;
117
118
  line-height: normal;
118
- font-family: sans;
119
+ font-family: var(--font-family);
119
120
  }
120
121
  .sb.sb-xxl .sb-results {
121
122
  top: 45px;