nve-designsystem 0.2.2 → 0.2.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.
@@ -90,7 +90,7 @@ const e = r`
90
90
  }
91
91
  }
92
92
 
93
- /* emphasized */
93
+ /* Styling for høyere metningsgrad */
94
94
  :host([variant='neutral']) .alert,
95
95
  :host([saturation='emphasized']) .alert {
96
96
  color: var(--interactive-primary-foreground-default);
@@ -3,7 +3,7 @@ import { LitElement } from 'lit';
3
3
  * En liten etikett som vanligvis vises inne i eller i nærheten av en annen større grensesnittkomponent, som representerer en status, egenskap eller andre metadata.
4
4
  * @property {string} size = small, medium eller large
5
5
  * @property {string} variant = primary, success, neutral, warning, danger, brand
6
- * @property {boolean} low = gir lysere bakgrunnsfarge
6
+ * @property {string} saturation = Setter metningsgrad. subtle er eneste støttede, evt ikke satt.
7
7
  */
8
8
  export default class NveBadge extends LitElement {
9
9
  static styles: import("lit").CSSResult[];
@@ -43,7 +43,7 @@ const e = a`
43
43
  color: var(--feedback-foreground-emphasized-error, #fff);
44
44
  }
45
45
 
46
- /* Low modifiers */
46
+ /* Lav metningsgrad */
47
47
  .saturation--subtle {
48
48
  color: var(--neutrals-foreground-primary, #00131c);
49
49
  }
@@ -1,11 +1,14 @@
1
1
  import SlTooltip from '@shoelace-style/shoelace/dist/components/tooltip/tooltip.js';
2
2
  /**
3
- * Et verktøyhint.
4
- * TODO: Denne har ingen NVE-styling ennå.
5
- * TODO: Bør vi skrive noe om at denne ikke funker på pekeskjermer?
3
+ * Et verktøyhint. Kan åpnes og lukkes programmatisk eller automatisk med ulike hendelser. Kan ha ulik farge og metning.
4
+ *
6
5
  */
7
6
  export default class NveTooltip extends SlTooltip {
8
7
  constructor();
8
+ /** Variant, bestemmer fargen på tag */
9
+ variant: 'neutral' | 'success' | 'info' | 'warning' | 'error';
10
+ /** Saturation - Hvor mettet fargen på tooltip er */
11
+ saturation: 'emphasized' | 'subtle' | 'default';
9
12
  static styles: import("lit").CSSResultGroup[];
10
13
  }
11
14
  declare global {
@@ -1,15 +1,16 @@
1
- import { c as b, b as o, S as _ } from "../../chunks/chunk.JS655M6J.js";
2
- import { i as k, x as T } from "../../chunks/lit-element.js";
3
- import { S as C } from "../../chunks/chunk.GMVRWIWU.js";
4
- import { s as v, p as u, a as f, g as m, b as y, w as g } from "../../chunks/chunk.KRRLOROJ.js";
5
- import { L as x } from "../../chunks/chunk.MAS2SHYD.js";
1
+ import { c as _, b as o, S as k } from "../../chunks/chunk.JS655M6J.js";
2
+ import { i as T, x as C } from "../../chunks/lit-element.js";
3
+ import { S as x } from "../../chunks/chunk.GMVRWIWU.js";
4
+ import { s as w, p as f, a as m, g as y, b as g, w as v } from "../../chunks/chunk.KRRLOROJ.js";
5
+ import { L as O } from "../../chunks/chunk.MAS2SHYD.js";
6
6
  import { w as d } from "../../chunks/chunk.Q6ASPMKT.js";
7
- import { e as O } from "../../chunks/class-map.js";
8
- import { n as s, t as $ } from "../../chunks/property.js";
9
- import { e as c } from "../../chunks/query.js";
7
+ import { e as $ } from "../../chunks/class-map.js";
8
+ import { n as i, t as z } from "../../chunks/property.js";
9
+ import { e as u } from "../../chunks/query.js";
10
10
  import "../nve-icon/nve-icon.component.js";
11
- var z = k`
12
- ${b}
11
+ import E from "./nve-tooltip.styles.js";
12
+ var D = T`
13
+ ${_}
13
14
 
14
15
  :host {
15
16
  --max-width: 20rem;
@@ -61,9 +62,9 @@ var z = k`
61
62
  user-select: none;
62
63
  -webkit-user-select: none;
63
64
  }
64
- `, t = class extends _ {
65
+ `, t = class extends k {
65
66
  constructor() {
66
- super(), this.localize = new x(this), this.content = "", this.placement = "top", this.disabled = !1, this.distance = 8, this.open = !1, this.skidding = 0, this.trigger = "hover focus", this.hoist = !1, this.handleBlur = () => {
67
+ super(), this.localize = new O(this), this.content = "", this.placement = "top", this.disabled = !1, this.distance = 8, this.open = !1, this.skidding = 0, this.trigger = "hover focus", this.hoist = !1, this.handleBlur = () => {
67
68
  this.hasTrigger("focus") && this.hide();
68
69
  }, this.handleClick = () => {
69
70
  this.hasTrigger("click") && (this.open ? this.hide() : this.show());
@@ -73,12 +74,12 @@ var z = k`
73
74
  this.open && !this.disabled && e.key === "Escape" && (e.stopPropagation(), this.hide());
74
75
  }, this.handleMouseOver = () => {
75
76
  if (this.hasTrigger("hover")) {
76
- const e = u(getComputedStyle(this).getPropertyValue("--show-delay"));
77
+ const e = f(getComputedStyle(this).getPropertyValue("--show-delay"));
77
78
  clearTimeout(this.hoverTimeout), this.hoverTimeout = window.setTimeout(() => this.show(), e);
78
79
  }
79
80
  }, this.handleMouseOut = () => {
80
81
  if (this.hasTrigger("hover")) {
81
- const e = u(getComputedStyle(this).getPropertyValue("--hide-delay"));
82
+ const e = f(getComputedStyle(this).getPropertyValue("--hide-delay"));
82
83
  clearTimeout(this.hoverTimeout), this.hoverTimeout = window.setTimeout(() => this.hide(), e);
83
84
  }
84
85
  }, this.addEventListener("blur", this.handleBlur, !0), this.addEventListener("focus", this.handleFocus, !0), this.addEventListener("click", this.handleClick), this.addEventListener("keydown", this.handleKeyDown), this.addEventListener("mouseover", this.handleMouseOver), this.addEventListener("mouseout", this.handleMouseOut);
@@ -96,13 +97,13 @@ var z = k`
96
97
  if (this.open) {
97
98
  if (this.disabled)
98
99
  return;
99
- this.emit("sl-show"), await f(this.body), this.body.hidden = !1, this.popup.active = !0;
100
- const { keyframes: e, options: i } = m(this, "tooltip.show", { dir: this.localize.dir() });
101
- await y(this.popup.popup, e, i), this.emit("sl-after-show");
100
+ this.emit("sl-show"), await m(this.body), this.body.hidden = !1, this.popup.active = !0;
101
+ const { keyframes: e, options: s } = y(this, "tooltip.show", { dir: this.localize.dir() });
102
+ await g(this.popup.popup, e, s), this.emit("sl-after-show");
102
103
  } else {
103
- this.emit("sl-hide"), await f(this.body);
104
- const { keyframes: e, options: i } = m(this, "tooltip.hide", { dir: this.localize.dir() });
105
- await y(this.popup.popup, e, i), this.popup.active = !1, this.body.hidden = !0, this.emit("sl-after-hide");
104
+ this.emit("sl-hide"), await m(this.body);
105
+ const { keyframes: e, options: s } = y(this, "tooltip.hide", { dir: this.localize.dir() });
106
+ await g(this.popup.popup, e, s), this.popup.active = !1, this.body.hidden = !0, this.emit("sl-after-hide");
106
107
  }
107
108
  }
108
109
  async handleOptionsChange() {
@@ -114,12 +115,12 @@ var z = k`
114
115
  /** Shows the tooltip. */
115
116
  async show() {
116
117
  if (!this.open)
117
- return this.open = !0, g(this, "sl-after-show");
118
+ return this.open = !0, v(this, "sl-after-show");
118
119
  }
119
120
  /** Hides the tooltip */
120
121
  async hide() {
121
122
  if (this.open)
122
- return this.open = !1, g(this, "sl-after-hide");
123
+ return this.open = !1, v(this, "sl-after-hide");
123
124
  }
124
125
  //
125
126
  // NOTE: Tooltip is a bit unique in that we're using aria-live instead of aria-labelledby to trick screen readers into
@@ -128,14 +129,14 @@ var z = k`
128
129
  // element, otherwise positioning is incorrect.
129
130
  //
130
131
  render() {
131
- return T`
132
+ return C`
132
133
  <sl-popup
133
134
  part="base"
134
135
  exportparts="
135
136
  popup:base__popup,
136
137
  arrow:base__arrow
137
138
  "
138
- class=${O({
139
+ class=${$({
139
140
  tooltip: !0,
140
141
  "tooltip--open": this.open
141
142
  })}
@@ -158,40 +159,40 @@ var z = k`
158
159
  `;
159
160
  }
160
161
  };
161
- t.styles = z;
162
- t.dependencies = { "sl-popup": C };
162
+ t.styles = D;
163
+ t.dependencies = { "sl-popup": x };
163
164
  o([
164
- c("slot:not([name])")
165
+ u("slot:not([name])")
165
166
  ], t.prototype, "defaultSlot", 2);
166
167
  o([
167
- c(".tooltip__body")
168
+ u(".tooltip__body")
168
169
  ], t.prototype, "body", 2);
169
170
  o([
170
- c("sl-popup")
171
+ u("sl-popup")
171
172
  ], t.prototype, "popup", 2);
172
173
  o([
173
- s()
174
+ i()
174
175
  ], t.prototype, "content", 2);
175
176
  o([
176
- s()
177
+ i()
177
178
  ], t.prototype, "placement", 2);
178
179
  o([
179
- s({ type: Boolean, reflect: !0 })
180
+ i({ type: Boolean, reflect: !0 })
180
181
  ], t.prototype, "disabled", 2);
181
182
  o([
182
- s({ type: Number })
183
+ i({ type: Number })
183
184
  ], t.prototype, "distance", 2);
184
185
  o([
185
- s({ type: Boolean, reflect: !0 })
186
+ i({ type: Boolean, reflect: !0 })
186
187
  ], t.prototype, "open", 2);
187
188
  o([
188
- s({ type: Number })
189
+ i({ type: Number })
189
190
  ], t.prototype, "skidding", 2);
190
191
  o([
191
- s()
192
+ i()
192
193
  ], t.prototype, "trigger", 2);
193
194
  o([
194
- s({ type: Boolean })
195
+ i({ type: Boolean })
195
196
  ], t.prototype, "hoist", 2);
196
197
  o([
197
198
  d("open", { waitUntilFirstUpdate: !0 })
@@ -202,36 +203,42 @@ o([
202
203
  o([
203
204
  d("disabled")
204
205
  ], t.prototype, "handleDisabledChange", 1);
205
- v("tooltip.show", {
206
+ w("tooltip.show", {
206
207
  keyframes: [
207
208
  { opacity: 0, scale: 0.8 },
208
209
  { opacity: 1, scale: 1 }
209
210
  ],
210
211
  options: { duration: 150, easing: "ease" }
211
212
  });
212
- v("tooltip.hide", {
213
+ w("tooltip.hide", {
213
214
  keyframes: [
214
215
  { opacity: 1, scale: 1 },
215
216
  { opacity: 0, scale: 0.8 }
216
217
  ],
217
218
  options: { duration: 150, easing: "ease" }
218
219
  });
219
- var w = t;
220
+ var b = t;
220
221
  t.define("sl-tooltip");
221
- var E = Object.defineProperty, D = Object.getOwnPropertyDescriptor, L = (e, i, r, p) => {
222
- for (var a = p > 1 ? void 0 : p ? D(i, r) : i, l = e.length - 1, n; l >= 0; l--)
223
- (n = e[l]) && (a = (p ? n(i, r, a) : n(a)) || a);
224
- return p && a && E(i, r, a), a;
222
+ var L = Object.defineProperty, P = Object.getOwnPropertyDescriptor, c = (e, s, l, p) => {
223
+ for (var a = p > 1 ? void 0 : p ? P(s, l) : s, n = e.length - 1, h; n >= 0; n--)
224
+ (h = e[n]) && (a = (p ? h(s, l, a) : h(a)) || a);
225
+ return p && a && L(s, l, a), a;
225
226
  };
226
- let h = class extends w {
227
+ let r = class extends b {
227
228
  constructor() {
228
- super();
229
+ super(), this.variant = "neutral", this.saturation = "emphasized";
229
230
  }
230
231
  };
231
- h.styles = [w.styles];
232
- h = L([
233
- $("nve-tooltip")
234
- ], h);
232
+ r.styles = [b.styles, E];
233
+ c([
234
+ i({ reflect: !0 })
235
+ ], r.prototype, "variant", 2);
236
+ c([
237
+ i({ reflect: !0 })
238
+ ], r.prototype, "saturation", 2);
239
+ r = c([
240
+ z("nve-tooltip")
241
+ ], r);
235
242
  export {
236
- h as default
243
+ r as default
237
244
  };
@@ -0,0 +1,2 @@
1
+ declare const _default: import("lit").CSSResult;
2
+ export default _default;
@@ -0,0 +1,119 @@
1
+ import { i as r } from "../../chunks/lit-element.js";
2
+ const a = r`
3
+ :host {
4
+ --sl-tooltip-border-radius: 40px;
5
+ --sl-tooltip-background-color: var(--_bg-color);
6
+ --sl-tooltip-color: var(--_text-color);
7
+ --sl-tooltip-font-weight: initial;
8
+ --sl-tooltip-font-size: initial;
9
+ --sl-tooltip-padding: var(--spacing-xx-small) var(--spacing-x-small);
10
+ --sl-tooltip-border-radius: var(--border-radius-small);
11
+ font: var(--label-small-light);
12
+ --_border-color: transparent;
13
+ --_border-top-width: 0;
14
+ --_border-left-width: 0;
15
+ --_border-right-width: 0;
16
+ --_border-bottom-width: 0;
17
+ }
18
+
19
+ :host([saturation='subtle'])::part(body) {
20
+ border: var(--border-width-default) solid var(--_border-color);
21
+ box-shadow: var(--hard);
22
+ }
23
+ :host([saturation='subtle']) [data-current-placement^='top'] {
24
+ --_border-bottom-width: var(--border-width-default);
25
+ --_border-right-width: var(--border-width-default);
26
+ }
27
+
28
+ :host([saturation='subtle']) [data-current-placement^='bottom'] {
29
+ --_border-top-width: var(--border-width-default);
30
+ --_border-left-width: var(--border-width-default);
31
+ }
32
+
33
+ :host([saturation='subtle']) [data-current-placement^='left'] {
34
+ --_border-top-width: var(--border-width-default);
35
+ --_border-right-width: var(--border-width-default);
36
+ }
37
+
38
+ :host([saturation='subtle']) [data-current-placement^='right'] {
39
+ --_border-bottom-width: var(--border-width-default);
40
+ --_border-left-width: var(--border-width-default);
41
+ }
42
+
43
+ :host([saturation='subtle'])::part(arrow) {
44
+ border-top: var(--_border-top-width) solid var(--_border-color);
45
+ border-bottom: var(--_border-bottom-width) solid var(--_border-color);
46
+ border-left: var(--_border-left-width) solid var(--_border-color);
47
+ border-right: var(--_border-right-width) solid var(--_border-color);
48
+ z-index: 1;
49
+ translate: var(--_arrow-nudge-x, 0) var(--_arrow-nudge-y, 0);
50
+ }
51
+ :host([variant='neutral'][saturation='emphasized']) {
52
+ --_bg-color: var(--feedback-background-emphasized-neutral);
53
+ --_text-color: var(--feedback-foreground-emphasized-neutral);
54
+ }
55
+ :host([variant='neutral'][saturation='default']) {
56
+ --_bg-color: var(--feedback-background-default-neutral);
57
+ --_text-color: var(--feedback-foreground-default-neutral);
58
+ }
59
+ :host([variant='neutral'][saturation='subtle']) {
60
+ --_bg-color: var(--feedback-background-subtle-neutral);
61
+ --_text-color: var(--feedback-foreground-subtle-neutral);
62
+ --_border-color: var(--feedback-background-emphasized-neutral);
63
+ }
64
+ :host([variant='success'][saturation='emphasized']) {
65
+ --_bg-color: var(--feedback-background-emphasized-success);
66
+ --_text-color: var(--feedback-foreground-emphasized-success);
67
+ }
68
+ :host([variant='success'][saturation='default']) {
69
+ --_bg-color: var(--feedback-background-default-success);
70
+ --_text-color: var(--feedback-foreground-default-success);
71
+ }
72
+ :host([variant='success'][saturation='subtle']) {
73
+ --_bg-color: var(--feedback-background-subtle-success);
74
+ --_text-color: var(--feedback-foreground-subtle-success);
75
+ --_border-color: var(--feedback-background-emphasized-success);
76
+ }
77
+ :host([variant='info'][saturation='emphasized']) {
78
+ --_bg-color: var(--feedback-background-emphasized-info);
79
+ --_text-color: var(--feedback-foreground-emphasized-info);
80
+ }
81
+ :host([variant='info'][saturation='default']) {
82
+ --_bg-color: var(--feedback-background-default-info);
83
+ --_text-color: var(--feedback-foreground-default-info);
84
+ }
85
+ :host([variant='info'][saturation='subtle']) {
86
+ --_bg-color: var(--feedback-background-subtle-info);
87
+ --_text-color: var(--feedback-foreground-subtle-info);
88
+ --_border-color: var(--feedback-background-emphasized-info);
89
+ }
90
+ :host([variant='warning'][saturation='emphasized']) {
91
+ --_bg-color: var(--feedback-background-emphasized-warning);
92
+ --_text-color: var(--feedback-foreground-emphasized-warning);
93
+ }
94
+ :host([variant='warning'][saturation='default']) {
95
+ --_bg-color: var(--feedback-background-default-warning);
96
+ --_text-color: var(--feedback-foreground-default-warning);
97
+ }
98
+ :host([variant='warning'][saturation='subtle']) {
99
+ --_bg-color: var(--feedback-background-subtle-warning);
100
+ --_text-color: var(--feedback-foreground-subtle-warning);
101
+ --_border-color: var(--feedback-background-emphasized-warning);
102
+ }
103
+ :host([variant='error'][saturation='emphasized']) {
104
+ --_bg-color: var(--feedback-background-emphasized-error);
105
+ --_text-color: var(--feedback-foreground-emphasized-error);
106
+ }
107
+ :host([variant='error'][saturation='default']) {
108
+ --_bg-color: var(--feedback-background-default-error);
109
+ --_text-color: var(--feedback-foreground-default-error);
110
+ }
111
+ :host([variant='error'][saturation='subtle']) {
112
+ --_bg-color: var(--feedback-background-subtle-error);
113
+ --_text-color: var(--feedback-foreground-subtle-error);
114
+ --_border-color: var(--feedback-background-emphasized-error);
115
+ }
116
+ `;
117
+ export {
118
+ a as default
119
+ };
@@ -383,22 +383,14 @@
383
383
  "kind": "field",
384
384
  "name": "saturation",
385
385
  "type": {
386
- "text": "'subtle' | null"
386
+ "text": "string"
387
387
  },
388
388
  "default": "null",
389
- "description": "Viser lav metning, default er at denne ikke er satt"
389
+ "description": "= Setter metningsgrad. subtle er eneste støttede, evt ikke satt."
390
390
  },
391
391
  {
392
392
  "kind": "method",
393
393
  "name": "render"
394
- },
395
- {
396
- "type": {
397
- "text": "boolean"
398
- },
399
- "description": "= gir lysere bakgrunnsfarge",
400
- "name": "low",
401
- "kind": "field"
402
394
  }
403
395
  ],
404
396
  "superclass": {
@@ -408,7 +400,7 @@
408
400
  "tagNameWithoutPrefix": "badge",
409
401
  "tagName": "nve-badge",
410
402
  "customElement": true,
411
- "jsDoc": "/**\n * En liten etikett som vanligvis vises inne i eller i nærheten av en annen større grensesnittkomponent, som representerer en status, egenskap eller andre metadata.\n * @property {string} size = small, medium eller large\n * @property {string} variant = primary, success, neutral, warning, danger, brand\n * @property {boolean} low = gir lysere bakgrunnsfarge\n */"
403
+ "jsDoc": "/**\n * En liten etikett som vanligvis vises inne i eller i nærheten av en annen større grensesnittkomponent, som representerer en status, egenskap eller andre metadata.\n * @property {string} size = small, medium eller large\n * @property {string} variant = primary, success, neutral, warning, danger, brand\n * @property {string} saturation = Setter metningsgrad. subtle er eneste støttede, evt ikke satt.\n */"
412
404
  }
413
405
  ],
414
406
  "exports": [
@@ -9545,9 +9537,27 @@
9545
9537
  "declarations": [
9546
9538
  {
9547
9539
  "kind": "class",
9548
- "description": "Et verktøyhint.\nTODO: Denne har ingen NVE-styling ennå.\nTODO: Bør vi skrive noe om at denne ikke funker pekeskjermer?",
9540
+ "description": "Et verktøyhint. Kan åpnes og lukkes programmatisk eller automatisk med ulike hendelser. Kan ha ulik farge og metning.",
9549
9541
  "name": "NveTooltip",
9550
9542
  "members": [
9543
+ {
9544
+ "kind": "field",
9545
+ "name": "variant",
9546
+ "type": {
9547
+ "text": "'neutral' | 'success' | 'info' | 'warning' | 'error'"
9548
+ },
9549
+ "default": "'neutral'",
9550
+ "description": "Variant, bestemmer fargen på tag"
9551
+ },
9552
+ {
9553
+ "kind": "field",
9554
+ "name": "saturation",
9555
+ "type": {
9556
+ "text": "'emphasized' | 'subtle' | 'default'"
9557
+ },
9558
+ "default": "'emphasized'",
9559
+ "description": "Saturation - Hvor mettet fargen på tooltip er"
9560
+ },
9551
9561
  {
9552
9562
  "kind": "field",
9553
9563
  "name": "styles",
@@ -9555,7 +9565,7 @@
9555
9565
  "text": "array"
9556
9566
  },
9557
9567
  "static": true,
9558
- "default": "[SlTooltip.styles]"
9568
+ "default": "[SlTooltip.styles, styles]"
9559
9569
  },
9560
9570
  {
9561
9571
  "kind": "field",
@@ -9750,7 +9760,7 @@
9750
9760
  "tagNameWithoutPrefix": "tooltip",
9751
9761
  "tagName": "nve-tooltip",
9752
9762
  "customElement": true,
9753
- "jsDoc": "/**\n * Et verktøyhint.\n * TODO: Denne har ingen NVE-styling ennå.\n * TODO: Bør vi skrive noe om at denne ikke funker på pekeskjermer?\n */",
9763
+ "jsDoc": "/**\n * Et verktøyhint. Kan åpnes og lukkes programmatisk eller automatisk med ulike hendelser. Kan ha ulik farge og metning.\n *\n */",
9754
9764
  "cssProperties": [
9755
9765
  {
9756
9766
  "description": "The maximum width of the tooltip before its content will wrap.",
@@ -10300,7 +10310,7 @@
10300
10310
  "package": {
10301
10311
  "name": "nve-designsystem",
10302
10312
  "description": "Designsystem for NVE",
10303
- "version": "0.2.1",
10313
+ "version": "0.2.2",
10304
10314
  "author": {
10305
10315
  "name": "NVE",
10306
10316
  "email": "nve@nve.no"
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  },
8
8
  "license": "MIT",
9
9
  "homepage": "https://github.com/NVE/Designsystem/",
10
- "version": "0.2.2",
10
+ "version": "0.2.3",
11
11
  "customElements": "custom-elements.json",
12
12
  "exports": {
13
13
  ".": {