@fristil/designsystem 0.4.0 → 0.5.1

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 (116) hide show
  1. package/CHANGELOG.md +136 -0
  2. package/README.md +22 -7
  3. package/dist/components/frittstaende/connection-status/connection-status.d.ts +28 -0
  4. package/dist/components/frittstaende/connection-status/connection-status.d.ts.map +1 -0
  5. package/dist/components/frittstaende/connection-status/connection-status.js +22 -0
  6. package/dist/components/frittstaende/connection-status/connection-status.js.map +1 -0
  7. package/dist/components/frittstaende/connection-status/fs-connection-status.d.ts +54 -0
  8. package/dist/components/frittstaende/connection-status/fs-connection-status.d.ts.map +1 -0
  9. package/dist/components/frittstaende/connection-status/fs-connection-status.js +123 -0
  10. package/dist/components/frittstaende/connection-status/fs-connection-status.js.map +1 -0
  11. package/dist/components/frittstaende/session-timeout/fs-session-timeout.d.ts +56 -0
  12. package/dist/components/frittstaende/session-timeout/fs-session-timeout.d.ts.map +1 -0
  13. package/dist/components/frittstaende/session-timeout/fs-session-timeout.js +183 -0
  14. package/dist/components/frittstaende/session-timeout/fs-session-timeout.js.map +1 -0
  15. package/dist/components/frittstaende/session-timeout/session-timeout.d.ts +28 -0
  16. package/dist/components/frittstaende/session-timeout/session-timeout.d.ts.map +1 -0
  17. package/dist/components/frittstaende/session-timeout/session-timeout.js +22 -0
  18. package/dist/components/frittstaende/session-timeout/session-timeout.js.map +1 -0
  19. package/dist/components/frittstaende/toast/fs-toast.d.ts +16 -22
  20. package/dist/components/frittstaende/toast/fs-toast.d.ts.map +1 -1
  21. package/dist/components/frittstaende/toast/fs-toast.js +38 -27
  22. package/dist/components/frittstaende/toast/fs-toast.js.map +1 -1
  23. package/dist/components/frittstaende/toast/toast.d.ts +34 -0
  24. package/dist/components/frittstaende/toast/toast.d.ts.map +1 -0
  25. package/dist/components/frittstaende/toast/toast.js +26 -0
  26. package/dist/components/frittstaende/toast/toast.js.map +1 -0
  27. package/dist/components/ramme/error-summary/error-summary.d.ts +39 -0
  28. package/dist/components/ramme/error-summary/error-summary.d.ts.map +1 -0
  29. package/dist/components/ramme/error-summary/error-summary.js +31 -0
  30. package/dist/components/ramme/error-summary/error-summary.js.map +1 -0
  31. package/dist/components/ramme/error-summary/fs-error-summary.d.ts +16 -42
  32. package/dist/components/ramme/error-summary/fs-error-summary.d.ts.map +1 -1
  33. package/dist/components/ramme/error-summary/fs-error-summary.js +57 -92
  34. package/dist/components/ramme/error-summary/fs-error-summary.js.map +1 -1
  35. package/dist/components/ramme/field/field-core.d.ts +37 -0
  36. package/dist/components/ramme/field/field-core.d.ts.map +1 -1
  37. package/dist/components/ramme/field/field-core.js +37 -0
  38. package/dist/components/ramme/field/field-core.js.map +1 -1
  39. package/dist/components/ramme/field/fs-field.d.ts +39 -40
  40. package/dist/components/ramme/field/fs-field.d.ts.map +1 -1
  41. package/dist/components/ramme/field/fs-field.js +128 -54
  42. package/dist/components/ramme/field/fs-field.js.map +1 -1
  43. package/dist/components/ramme/popover/fs-popover.d.ts +20 -27
  44. package/dist/components/ramme/popover/fs-popover.d.ts.map +1 -1
  45. package/dist/components/ramme/popover/fs-popover.js +68 -54
  46. package/dist/components/ramme/popover/fs-popover.js.map +1 -1
  47. package/dist/components/ramme/popover/popover.d.ts +43 -0
  48. package/dist/components/ramme/popover/popover.d.ts.map +1 -0
  49. package/dist/components/ramme/popover/popover.js +49 -0
  50. package/dist/components/ramme/popover/popover.js.map +1 -0
  51. package/dist/components/ramme/suggestion/fs-suggestion.d.ts +75 -0
  52. package/dist/components/ramme/suggestion/fs-suggestion.d.ts.map +1 -0
  53. package/dist/components/ramme/suggestion/fs-suggestion.js +232 -0
  54. package/dist/components/ramme/suggestion/fs-suggestion.js.map +1 -0
  55. package/dist/components/ramme/suggestion/suggestion.d.ts +97 -0
  56. package/dist/components/ramme/suggestion/suggestion.d.ts.map +1 -0
  57. package/dist/components/ramme/suggestion/suggestion.js +79 -0
  58. package/dist/components/ramme/suggestion/suggestion.js.map +1 -0
  59. package/dist/components/ramme/tabs/fs-tabs.d.ts +31 -36
  60. package/dist/components/ramme/tabs/fs-tabs.d.ts.map +1 -1
  61. package/dist/components/ramme/tabs/fs-tabs.js +62 -84
  62. package/dist/components/ramme/tabs/fs-tabs.js.map +1 -1
  63. package/dist/components/ramme/tabs/tabs.d.ts +50 -0
  64. package/dist/components/ramme/tabs/tabs.d.ts.map +1 -0
  65. package/dist/components/ramme/tabs/tabs.js +54 -0
  66. package/dist/components/ramme/tabs/tabs.js.map +1 -0
  67. package/dist/fs.d.ts +94 -0
  68. package/dist/fs.d.ts.map +1 -1
  69. package/dist/fs.js +42 -0
  70. package/dist/fs.js.map +1 -1
  71. package/dist/index.d.ts +10 -3
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +10 -3
  74. package/dist/index.js.map +1 -1
  75. package/dist/jsx/react.d.ts +35 -50
  76. package/dist/jsx/react.d.ts.map +1 -1
  77. package/dist/react.d.ts +142 -1
  78. package/dist/react.d.ts.map +1 -1
  79. package/dist/react.js +77 -2
  80. package/dist/react.js.map +1 -1
  81. package/package.json +15 -18
  82. package/src/components/frittstaende/connection-status/connection-status.css +33 -0
  83. package/src/components/frittstaende/connection-status/connection-status.ts +41 -0
  84. package/src/components/frittstaende/connection-status/fs-connection-status.ts +144 -0
  85. package/src/components/frittstaende/session-timeout/fs-session-timeout.ts +216 -0
  86. package/src/components/frittstaende/session-timeout/session-timeout.css +43 -0
  87. package/src/components/frittstaende/session-timeout/session-timeout.ts +42 -0
  88. package/src/components/frittstaende/toast/fs-toast.ts +39 -30
  89. package/src/components/frittstaende/toast/toast.ts +45 -0
  90. package/src/components/ramme/error-summary/error-summary.ts +55 -0
  91. package/src/components/ramme/error-summary/fs-error-summary.ts +62 -119
  92. package/src/components/ramme/field/field-core.ts +38 -0
  93. package/src/components/ramme/field/fs-field.ts +145 -61
  94. package/src/components/ramme/popover/fs-popover.ts +78 -72
  95. package/src/components/ramme/popover/popover.ts +79 -0
  96. package/src/components/ramme/suggestion/fs-suggestion.ts +265 -0
  97. package/src/components/ramme/suggestion/suggestion.ts +105 -0
  98. package/src/components/ramme/tabs/fs-tabs.ts +67 -98
  99. package/src/components/ramme/tabs/tabs.ts +104 -0
  100. package/dist/components/frittstaende/calendar/fs-calendar.d.ts +0 -52
  101. package/dist/components/frittstaende/calendar/fs-calendar.d.ts.map +0 -1
  102. package/dist/components/frittstaende/calendar/fs-calendar.js +0 -462
  103. package/dist/components/frittstaende/calendar/fs-calendar.js.map +0 -1
  104. package/dist/components/frittstaende/date-field/fs-date-field.d.ts +0 -110
  105. package/dist/components/frittstaende/date-field/fs-date-field.d.ts.map +0 -1
  106. package/dist/components/frittstaende/date-field/fs-date-field.js +0 -264
  107. package/dist/components/frittstaende/date-field/fs-date-field.js.map +0 -1
  108. package/dist/components/frittstaende/suggestion/fs-suggestion.d.ts +0 -133
  109. package/dist/components/frittstaende/suggestion/fs-suggestion.d.ts.map +0 -1
  110. package/dist/components/frittstaende/suggestion/fs-suggestion.js +0 -280
  111. package/dist/components/frittstaende/suggestion/fs-suggestion.js.map +0 -1
  112. package/src/components/frittstaende/calendar/fs-calendar.ts +0 -525
  113. package/src/components/frittstaende/date-field/date-field.css +0 -54
  114. package/src/components/frittstaende/date-field/fs-date-field.ts +0 -309
  115. package/src/components/frittstaende/suggestion/fs-suggestion.ts +0 -333
  116. /package/src/components/{frittstaende → ramme}/suggestion/suggestion.css +0 -0
@@ -1,462 +0,0 @@
1
- import { css, html, LitElement } from "lit";
2
- export const FS_CALENDAR_TAG = "fs-calendar";
3
- /**
4
- * Deler dagene inn i uker på sju.
5
- *
6
- * role="grid" krever role="row" mellom seg og cellene sine. Uten radene
7
- * melder skjermlesere rutenettet som tomt, og cellene som løsrevne knapper.
8
- */
9
- function splitInWeeks(cells) {
10
- const weeks = [];
11
- for (let i = 0; i < cells.length; i += 7) {
12
- weeks.push(cells.slice(i, i + 7));
13
- }
14
- return weeks;
15
- }
16
- /**
17
- * Delnavnene på én dagknapp.
18
- *
19
- * Tilstanden må være egne delnavn og ikke bare `data-*`. En attributtselektor
20
- * etter `::part()` treffer ikke. `::part(day)[data-selected="true"]` er målt
21
- * uten virkning, så uten `day-selected` ville en konsument ikke hatt noen vei
22
- * til den valgte dagen utenfra.
23
- */
24
- function dayParts(cell) {
25
- const names = ["day"];
26
- if (!cell.inMonth)
27
- names.push("day-outside");
28
- if (cell.isToday)
29
- names.push("day-today");
30
- if (cell.isSelected)
31
- names.push("day-selected");
32
- return names.join(" ");
33
- }
34
- const weekdayFormatter = new Intl.DateTimeFormat("nb-NO", {
35
- weekday: "short",
36
- timeZone: "UTC",
37
- });
38
- const monthFormatter = new Intl.DateTimeFormat("nb-NO", {
39
- month: "long",
40
- year: "numeric",
41
- timeZone: "UTC",
42
- });
43
- function parseIsoDate(value) {
44
- if (!value)
45
- return null;
46
- const match = /^(\d{4})-(\d{2})-(\d{2})$/.exec(value);
47
- if (!match)
48
- return null;
49
- const year = Number(match[1]);
50
- const month = Number(match[2]) - 1;
51
- const day = Number(match[3]);
52
- return new Date(Date.UTC(year, month, day));
53
- }
54
- function formatIsoDate(date) {
55
- return date.toISOString().slice(0, 10);
56
- }
57
- function startOfMonth(date) {
58
- return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), 1));
59
- }
60
- function addDays(date, delta) {
61
- return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate() + delta));
62
- }
63
- function addMonths(date, delta) {
64
- return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth() + delta, 1));
65
- }
66
- function mondayBasedWeekday(date) {
67
- return (date.getUTCDay() + 6) % 7;
68
- }
69
- function getToday() {
70
- const today = new Date();
71
- return new Date(Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate()));
72
- }
73
- function getCalendarCells(monthDate, selectedIso) {
74
- const selectedDate = parseIsoDate(selectedIso);
75
- const todayIso = formatIsoDate(getToday());
76
- const monthStart = startOfMonth(monthDate);
77
- const firstVisible = addDays(monthStart, -mondayBasedWeekday(monthStart));
78
- return Array.from({ length: 42 }, (_, index) => {
79
- const date = addDays(firstVisible, index);
80
- const iso = formatIsoDate(date);
81
- return {
82
- date,
83
- iso,
84
- inMonth: date.getUTCMonth() === monthStart.getUTCMonth(),
85
- isToday: iso === todayIso,
86
- isSelected: selectedDate ? iso === formatIsoDate(selectedDate) : false,
87
- };
88
- });
89
- }
90
- export class FsCalendar extends LitElement {
91
- constructor() {
92
- super(...arguments);
93
- /** @attr */
94
- this.open = false;
95
- /** @attr */
96
- this.disabled = false;
97
- /** @attr */
98
- this.value = "";
99
- /** @attr trigger-hidden */
100
- this.triggerHidden = false;
101
- this.viewMonth = getToday();
102
- this.togglePopup = () => {
103
- if (this.open) {
104
- this.closePopup();
105
- }
106
- else {
107
- this.openPopup();
108
- }
109
- };
110
- this.goToPreviousMonth = () => {
111
- this.viewMonth = addMonths(this.viewMonth, -1);
112
- this.requestUpdate();
113
- };
114
- this.goToNextMonth = () => {
115
- this.viewMonth = addMonths(this.viewMonth, 1);
116
- this.requestUpdate();
117
- };
118
- this.selectCalendarDate = (event) => {
119
- const target = event.currentTarget;
120
- const iso = target?.dataset.date;
121
- if (!iso)
122
- return;
123
- this.value = iso;
124
- this.viewMonth = parseIsoDate(iso) ?? this.viewMonth;
125
- // Lukk før hendelsene sendes. closePopup køer et mikrotaskkall som
126
- // flytter fokus til knappen. En lytter som selv vil flytte fokus, slik
127
- // fs-date-field gjør til inputfeltet, køer sitt etterpå og vinner.
128
- this.closePopup();
129
- this.dispatchEvent(new CustomEvent("date-select", {
130
- detail: { value: iso },
131
- bubbles: true,
132
- composed: true,
133
- }));
134
- this.dispatchEvent(new Event("input", { bubbles: true, composed: true }));
135
- this.dispatchEvent(new Event("change", { bubbles: true, composed: true }));
136
- };
137
- this.handlePopupKeydown = (event) => {
138
- if (event.key === "Escape") {
139
- event.preventDefault();
140
- this.closePopup();
141
- return;
142
- }
143
- const current = event.target;
144
- if (!current?.classList.contains("day"))
145
- return;
146
- const iso = current.dataset.date;
147
- if (!iso)
148
- return;
149
- const targetDate = parseIsoDate(iso);
150
- if (!targetDate)
151
- return;
152
- let nextDate = null;
153
- if (event.key === "ArrowLeft")
154
- nextDate = addDays(targetDate, -1);
155
- if (event.key === "ArrowRight")
156
- nextDate = addDays(targetDate, 1);
157
- if (event.key === "ArrowUp")
158
- nextDate = addDays(targetDate, -7);
159
- if (event.key === "ArrowDown")
160
- nextDate = addDays(targetDate, 7);
161
- if (event.key === "Home")
162
- nextDate = startOfMonth(targetDate);
163
- if (event.key === "End")
164
- nextDate = addDays(addMonths(startOfMonth(targetDate), 1), -1);
165
- if (!nextDate)
166
- return;
167
- event.preventDefault();
168
- this.viewMonth = startOfMonth(nextDate);
169
- this.requestUpdate();
170
- queueMicrotask(() => {
171
- const nextButton = this.renderRoot.querySelector(`.day[data-date="${formatIsoDate(nextDate)}"]`);
172
- nextButton?.focus();
173
- });
174
- };
175
- this.handleDocumentClick = (event) => {
176
- if (!this.open)
177
- return;
178
- const path = event.composedPath();
179
- if (path.includes(this))
180
- return;
181
- this.closePopup();
182
- };
183
- }
184
- connectedCallback() {
185
- super.connectedCallback();
186
- this.ownerDocument.addEventListener("click", this.handleDocumentClick);
187
- }
188
- disconnectedCallback() {
189
- this.ownerDocument.removeEventListener("click", this.handleDocumentClick);
190
- super.disconnectedCallback();
191
- }
192
- updated(changed) {
193
- if (changed.has("value")) {
194
- this.viewMonth = parseIsoDate(this.value) ?? this.viewMonth;
195
- }
196
- }
197
- render() {
198
- const monthCells = this.open
199
- ? getCalendarCells(this.viewMonth, this.value)
200
- : [];
201
- return html `
202
- <button
203
- class="trigger"
204
- part="trigger"
205
- type="button"
206
- aria-label="Åpne kalender"
207
- aria-expanded=${this.open ? "true" : "false"}
208
- ?disabled=${this.disabled}
209
- @click=${this.togglePopup}
210
- >
211
- 📅
212
- </button>
213
-
214
- <div class="popup" part="popup" ?hidden=${!this.open} @keydown=${this.handlePopupKeydown}>
215
- <div class="popup-header" part="popup-header">
216
- <div class="month-label" part="month-label" aria-live="polite">${monthFormatter.format(this.viewMonth)}</div>
217
- <div class="month-controls" part="month-controls">
218
- <button class="month-button" part="month-button" type="button" aria-label="Forrige måned" @click=${this.goToPreviousMonth}>‹</button>
219
- <button class="month-button" part="month-button" type="button" aria-label="Neste måned" @click=${this.goToNextMonth}>›</button>
220
- </div>
221
- </div>
222
-
223
- <div class="weekday-row" part="weekday-row" aria-hidden="true">
224
- ${[0, 1, 2, 3, 4, 5, 6].map((index) => html `<div class="weekday" part="weekday">${weekdayFormatter.format(new Date(Date.UTC(2024, 0, 1 + index)))}</div>`)}
225
- </div>
226
-
227
- <div class="day-grid" part="day-grid" role="grid" aria-label=${monthFormatter.format(this.viewMonth)}>
228
- ${splitInWeeks(monthCells).map((uke) => html `
229
- <div class="week" role="row">
230
- ${uke.map((cell) => html `
231
- <button
232
- class="day"
233
- part=${dayParts(cell)}
234
- type="button"
235
- role="gridcell"
236
- data-date=${cell.iso}
237
- data-outside=${String(!cell.inMonth)}
238
- data-today=${String(cell.isToday)}
239
- data-selected=${String(cell.isSelected)}
240
- aria-selected=${String(cell.isSelected)}
241
- @click=${this.selectCalendarDate}
242
- >
243
- ${cell.date.getUTCDate()}
244
- </button>
245
- `)}
246
- </div>
247
- `)}
248
- </div>
249
- </div>
250
- `;
251
- }
252
- openPopup() {
253
- if (this.disabled)
254
- return;
255
- this.viewMonth = parseIsoDate(this.value) ?? getToday();
256
- this.open = true;
257
- this.requestUpdate();
258
- queueMicrotask(() => {
259
- const selected = this.renderRoot.querySelector(`.day[data-selected="true"]`);
260
- selected?.focus();
261
- });
262
- }
263
- closePopup() {
264
- if (!this.open)
265
- return;
266
- // Panelet skjules med [hidden]. Står fokus på en dag inne i det, mister
267
- // nettleseren fokus til <body>, og en tastaturbruker havner på toppen av
268
- // siden. Fokus skal derfor tilbake til knappen som åpnet panelet.
269
- // Lukkes panelet fordi brukeren klikket eller tabbet ut, står fokus
270
- // allerede et annet sted, og da skal vi ikke rive det til oss.
271
- const fokusStoInniPanelet = this.renderRoot.activeElement !== null;
272
- this.open = false;
273
- this.requestUpdate();
274
- if (fokusStoInniPanelet) {
275
- queueMicrotask(() => {
276
- this.renderRoot.querySelector(".trigger")?.focus();
277
- });
278
- }
279
- }
280
- }
281
- FsCalendar.properties = {
282
- open: { type: Boolean, reflect: true },
283
- disabled: { type: Boolean, reflect: true },
284
- value: { type: String, reflect: true },
285
- triggerHidden: {
286
- type: Boolean,
287
- reflect: true,
288
- attribute: "trigger-hidden",
289
- },
290
- };
291
- FsCalendar.styles = css `
292
- :host {
293
- display: inline-block;
294
- font-family: inherit;
295
- color: var(--semantic-page-foreground);
296
- position: relative;
297
- }
298
-
299
- .trigger {
300
- display: inline-grid;
301
- place-items: center;
302
- min-width: var(--fs-calendar-trigger-size, var(--size-10));
303
- min-height: var(--fs-calendar-trigger-size, var(--size-10));
304
- padding: var(--fs-calendar-trigger-padding, 0 var(--size-3));
305
- font-family: inherit;
306
- font-size: var(--font-size-m);
307
- line-height: 1;
308
- color: var(--semantic-page-foreground);
309
- background: var(--semantic-page-background);
310
- border: 1px solid var(--semantic-field-border);
311
- border-radius: var(--fs-calendar-radius, var(--size-1));
312
- cursor: pointer;
313
- }
314
-
315
- .trigger:hover:not(:disabled) {
316
- background: var(--semantic-interactive-background);
317
- border-color: var(--semantic-interactive-main);
318
- }
319
-
320
- .trigger:focus-visible,
321
- .month-button:focus-visible,
322
- .day:focus-visible {
323
- outline: 2px solid var(--semantic-interactive-main);
324
- outline-offset: 2px;
325
- }
326
-
327
- .popup {
328
- position: absolute;
329
- inset-inline-start: 0;
330
- inset-block-start: calc(100% + var(--size-1));
331
- z-index: 30;
332
- width: var(--fs-calendar-popup-width, min(20rem, 92vw));
333
- padding: var(--fs-calendar-popup-padding, var(--size-3));
334
- border: 1px solid var(--semantic-field-border);
335
- border-radius: var(--fs-calendar-radius, var(--size-1));
336
- background: var(--semantic-page-background);
337
- box-shadow: var(--semantic-shadow-overlay);
338
- }
339
-
340
- .popup[hidden] {
341
- display: none;
342
- }
343
-
344
- .popup-header {
345
- display: flex;
346
- align-items: center;
347
- justify-content: space-between;
348
- gap: var(--size-2);
349
- margin-bottom: var(--size-2);
350
- }
351
-
352
- .month-label {
353
- font-size: var(--font-size-s);
354
- font-weight: 700;
355
- text-transform: capitalize;
356
- }
357
-
358
- .month-controls {
359
- display: inline-flex;
360
- gap: var(--size-1);
361
- }
362
-
363
- .month-button,
364
- .day {
365
- font-family: inherit;
366
- border: 1px solid var(--semantic-field-border);
367
- background: var(--semantic-page-background);
368
- color: var(--semantic-page-foreground);
369
- border-radius: var(--fs-calendar-radius, var(--size-1));
370
- }
371
-
372
- .month-button {
373
- min-width: var(--fs-calendar-day-size, var(--size-8));
374
- min-height: var(--fs-calendar-day-size, var(--size-8));
375
- cursor: pointer;
376
- }
377
-
378
- .weekday-row,
379
- .day-grid {
380
- display: grid;
381
- grid-template-columns: repeat(7, minmax(0, 1fr));
382
- gap: var(--size-1);
383
- }
384
-
385
- /* Ukeradene finnes for ARIA-strukturens skyld. display: contents lar
386
- dagene ligge rett i rutenettet, så oppsettet er uendret. */
387
- .week {
388
- display: contents;
389
- }
390
-
391
- .weekday {
392
- text-align: center;
393
- font-size: var(--font-size-xxs);
394
- font-weight: 700;
395
- text-transform: uppercase;
396
- letter-spacing: 0.04em;
397
- color: var(--semantic-muted-foreground);
398
- padding-block: var(--size-1);
399
- }
400
-
401
- .day {
402
- min-height: var(--fs-calendar-day-size, var(--size-8));
403
- cursor: pointer;
404
- font-size: var(--font-size-xs);
405
- }
406
-
407
- /* Dagene fra nabomåneden er dempet, men fullt klikkbare. De er altså
408
- ikke deaktiverte kontroller, og må derfor ha lesbar kontrast. */
409
- .day[data-outside="true"] {
410
- color: var(--semantic-neutral-foreground);
411
- background: var(--semantic-neutral-background);
412
- }
413
-
414
- .day[data-today="true"] {
415
- border-color: var(--semantic-interactive-main);
416
- }
417
-
418
- .day[data-selected="true"] {
419
- background: var(--semantic-interactive-main);
420
- color: var(--semantic-interactive-contrast);
421
- border-color: var(--semantic-interactive-main);
422
- }
423
-
424
- /*
425
- * Høykontrast: egne farger overstyres i modusen, så valgt dag og de andre
426
- * blir like. Systemfargene slipper gjennom, og Highlight med
427
- * HighlightText er paret operativsystemet bruker til noe som er valgt.
428
- *
429
- * Merk: ingen backtick-tegn i kommentarer her. De lukker malen, og resten
430
- * av fila blir lest som JavaScript.
431
- */
432
- @media (forced-colors: active) {
433
- .day[data-selected="true"] {
434
- background: Highlight;
435
- color: HighlightText;
436
- border-color: Highlight;
437
- }
438
- }
439
-
440
- :host([disabled]) .trigger {
441
- background: var(--semantic-disabled-background);
442
- color: var(--semantic-disabled-foreground);
443
- border-color: var(--semantic-disabled-background);
444
- /* Knappen er en ekte <button disabled>; pointer-events: none ville
445
- bare hindret markøren i å vises. */
446
- cursor: not-allowed;
447
- }
448
-
449
- :host([trigger-hidden]) .trigger {
450
- display: none;
451
- }
452
-
453
- :host([trigger-hidden]) .popup {
454
- inset-block-start: var(--size-1);
455
- }
456
- `;
457
- export function defineFsCalendar(tagName = FS_CALENDAR_TAG) {
458
- if (!customElements.get(tagName)) {
459
- customElements.define(tagName, FsCalendar);
460
- }
461
- }
462
- //# sourceMappingURL=fs-calendar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fs-calendar.js","sourceRoot":"","sources":["../../../../src/components/frittstaende/calendar/fs-calendar.ts"],"names":[],"mappings":"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"}
@@ -1,110 +0,0 @@
1
- import { LitElement } from "lit";
2
- export declare const FS_DATE_FIELD_TAG: "fs-date-field";
3
- export declare class FsDateField extends LitElement {
4
- static properties: {
5
- label: {
6
- type: StringConstructor;
7
- };
8
- value: {
9
- type: StringConstructor;
10
- reflect: boolean;
11
- };
12
- name: {
13
- type: StringConstructor;
14
- };
15
- placeholder: {
16
- type: StringConstructor;
17
- };
18
- helpText: {
19
- type: StringConstructor;
20
- attribute: string;
21
- };
22
- errorText: {
23
- type: StringConstructor;
24
- attribute: string;
25
- };
26
- required: {
27
- type: BooleanConstructor;
28
- reflect: boolean;
29
- };
30
- optional: {
31
- type: BooleanConstructor;
32
- reflect: boolean;
33
- };
34
- disabled: {
35
- type: BooleanConstructor;
36
- reflect: boolean;
37
- };
38
- readonly: {
39
- type: BooleanConstructor;
40
- reflect: boolean;
41
- };
42
- invalid: {
43
- type: BooleanConstructor;
44
- reflect: boolean;
45
- };
46
- controlId: {
47
- type: StringConstructor;
48
- attribute: string;
49
- };
50
- describedBy: {
51
- type: StringConstructor;
52
- attribute: string;
53
- };
54
- };
55
- label: string;
56
- value: string;
57
- name?: string;
58
- placeholder: string;
59
- helpText?: string;
60
- errorText?: string;
61
- required: boolean;
62
- optional: boolean;
63
- disabled: boolean;
64
- readonly: boolean;
65
- invalid: boolean;
66
- controlId?: string;
67
- describedBy?: string;
68
- /** Sann når brukeren har skrevet en dato som ikke finnes. */
69
- private _inputInvalid;
70
- /**
71
- * Teksten brukeren har skrevet, når den ikke er en gyldig dato.
72
- *
73
- * Halvskrevet tekst som «01-01-20» kan ikke bli til en ISO-dato, så
74
- * `value` står stille mens den skrives. Uten at teksten er en del av
75
- * tilstanden her, ville malen tegnet feltet tomt igjen ved neste
76
- * oppdatering, og brukeren mistet det de holdt på med.
77
- */
78
- private _typed;
79
- /** Det feltet skal vise: brukerens egen tekst, ellers `value`. */
80
- private get displayValue();
81
- /**
82
- * Settes `value` utenfra, er brukerens tekst ikke lenger gyldig.
83
- *
84
- * Det gjelder også når komponenten setter `value` selv etter at teksten
85
- * ble en fullstendig dato, og det er riktig: da viser `value` det samme.
86
- */
87
- willUpdate(changed: Map<string, unknown>): void;
88
- private readonly uid;
89
- constructor();
90
- createRenderRoot(): this;
91
- render(): import("lit").TemplateResult<1>;
92
- private get inputId();
93
- private get calendarId();
94
- private get helpId();
95
- private get errorId();
96
- private get inputElement();
97
- private get calendarElement();
98
- private handleIconClick;
99
- private handleInputKeydown;
100
- private handleInput;
101
- private handleInputBlur;
102
- private handleCalendarSelect;
103
- }
104
- declare global {
105
- interface HTMLElementTagNameMap {
106
- "fs-date-field": FsDateField;
107
- }
108
- }
109
- export declare function defineFsDateField(tagName?: "fs-date-field"): void;
110
- //# sourceMappingURL=fs-date-field.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fs-date-field.d.ts","sourceRoot":"","sources":["../../../../src/components/frittstaende/date-field/fs-date-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAA;AAOtC,eAAO,MAAM,iBAAiB,EAAG,eAAwB,CAAA;AA+BzD,qBAAa,WAAY,SAAQ,UAAU;IACzC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAchB;IAED,KAAK,SAAS;IACd,KAAK,SAAK;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,SAAe;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,UAAQ;IAChB,QAAQ,UAAQ;IAChB,QAAQ,UAAQ;IAChB,QAAQ,UAAQ;IAChB,OAAO,UAAQ;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,6DAA6D;IAC7D,OAAO,CAAC,aAAa,CAAQ;IAE7B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAsB;IAEpC,kEAAkE;IAClE,OAAO,KAAK,YAAY,GAEvB;IAED;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAIxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA4B;;IAOhD,gBAAgB;IAIhB,MAAM;IA6FN,OAAO,KAAK,OAAO,GAElB;IAED,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,KAAK,OAAO,GAElB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,eAAe,GAE1B;IAED,OAAO,CAAC,eAAe,CAetB;IAED,OAAO,CAAC,kBAAkB,CAQzB;IAED,OAAO,CAAC,WAAW,CAelB;IAED,OAAO,CAAC,eAAe,CAStB;IAED,OAAO,CAAC,oBAAoB,CAe3B;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,eAAe,EAAE,WAAW,CAAA;KAC7B;CACF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,kBAAoB,GAAG,IAAI,CAInE"}