@felleslosninger/minid-elements 0.0.99 → 0.0.101
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.
- package/dist/components/alert.component.d.ts +2 -6
- package/dist/components/alert.component.d.ts.map +1 -1
- package/dist/components/alert.js +18 -58
- package/dist/components/alert.js.map +1 -1
- package/dist/components/button.component.d.ts +0 -1
- package/dist/components/button.component.d.ts.map +1 -1
- package/dist/components/button.js +4 -3
- package/dist/components/button.js.map +1 -1
- package/dist/components/checkbox.component.d.ts +46 -6
- package/dist/components/checkbox.component.d.ts.map +1 -1
- package/dist/components/checkbox.js +115 -87
- package/dist/components/checkbox.js.map +1 -1
- package/dist/components/code-input.component.d.ts +16 -15
- package/dist/components/code-input.component.d.ts.map +1 -1
- package/dist/components/code-input.js +105 -105
- package/dist/components/code-input.js.map +1 -1
- package/dist/components/combobox.component.d.ts +7 -10
- package/dist/components/combobox.component.d.ts.map +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/combobox.js.map +1 -1
- package/dist/components/dialog.js +2 -2
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/dropdown.component.d.ts +47 -3
- package/dist/components/dropdown.component.d.ts.map +1 -1
- package/dist/components/dropdown.js +262 -29
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/link.js +1 -1
- package/dist/components/link.js.map +1 -1
- package/dist/components/menu-item.component.d.ts +3 -0
- package/dist/components/menu-item.component.d.ts.map +1 -1
- package/dist/components/menu-item.js +20 -2
- package/dist/components/menu-item.js.map +1 -1
- package/dist/components/menu.component.d.ts +1 -1
- package/dist/components/menu.component.d.ts.map +1 -1
- package/dist/components/menu.js +5 -5
- package/dist/components/menu.js.map +1 -1
- package/dist/components/phone-input.component.d.ts +5 -3
- package/dist/components/phone-input.component.d.ts.map +1 -1
- package/dist/components/phone-input.js +23 -35
- package/dist/components/phone-input.js.map +1 -1
- package/dist/components/popup.component.d.ts +0 -1
- package/dist/components/popup.component.d.ts.map +1 -1
- package/dist/components/popup.js +1 -23
- package/dist/components/popup.js.map +1 -1
- package/dist/components/search.js +1 -1
- package/dist/components/search.js.map +1 -1
- package/dist/components/spinner.component.d.ts.map +1 -1
- package/dist/components/spinner.js +9 -1
- package/dist/components/spinner.js.map +1 -1
- package/dist/components/step-indicator.component.d.ts +14 -0
- package/dist/components/step-indicator.component.d.ts.map +1 -0
- package/dist/components/step-indicator.js +58 -0
- package/dist/components/step-indicator.js.map +1 -0
- package/dist/components/textfield.component.d.ts +1 -0
- package/dist/components/textfield.component.d.ts.map +1 -1
- package/dist/components/textfield.js +9 -7
- package/dist/components/textfield.js.map +1 -1
- package/dist/designsystemet-tailwind.css +1 -1
- package/dist/events/events.d.ts +2 -0
- package/dist/events/events.d.ts.map +1 -0
- package/dist/events/mid-select.d.ts +10 -0
- package/dist/events/mid-select.d.ts.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/mixins/form-controller.mixin.d.ts.map +1 -1
- package/dist/mixins/form-controller.mixin.js +0 -3
- package/dist/mixins/form-controller.mixin.js.map +1 -1
- package/dist/mixins/tailwind.mixin.js +2 -2
- package/package.json +17 -13
|
@@ -22,7 +22,7 @@ declare const MinidAlert_base: typeof LitElement;
|
|
|
22
22
|
export declare class MinidAlert extends MinidAlert_base {
|
|
23
23
|
private autoHideTimeout?;
|
|
24
24
|
private remainingTimeInterval?;
|
|
25
|
-
base
|
|
25
|
+
private base;
|
|
26
26
|
/**
|
|
27
27
|
* Indicates whether or not the alert is open. You can toggle this attribute to show and hide the alert, or you can
|
|
28
28
|
* use the `show()` and `hide()` methods and this attribute will reflect the alert's open state.
|
|
@@ -56,11 +56,7 @@ export declare class MinidAlert extends MinidAlert_base {
|
|
|
56
56
|
*/
|
|
57
57
|
iconlabel?: string;
|
|
58
58
|
private remainingTime;
|
|
59
|
-
notificationContent
|
|
60
|
-
title?: string;
|
|
61
|
-
message: string;
|
|
62
|
-
details?: string;
|
|
63
|
-
};
|
|
59
|
+
private notificationContent?;
|
|
64
60
|
firstUpdated(): void;
|
|
65
61
|
private restartAutoHide;
|
|
66
62
|
private pauseAutoHide;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert.component.d.ts","sourceRoot":"","sources":["../../src/components/alert.component.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"alert.component.d.ts","sourceRoot":"","sources":["../../src/components/alert.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAW,MAAM,KAAK,CAAC;AAIhD,OAAO,uBAAuB,CAAC;AAW/B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,UAAU,CAAC;KACzB;CACF;;AAMD;;;;;;;;;;;;;GAaG;AACH,qBACa,UAAW,SAAQ,eAAkB;IAChD,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,qBAAqB,CAAC,CAAS;IAGvC,OAAO,CAAC,IAAI,CAAe;IAE3B;;;OAGG;IAEH,IAAI,UAAS;IAEb;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;;;OAIG;IAEH,QAAQ,SAAY;IAEpB;;OAEG;IAEH,QAAQ,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAU;IAE7D;;OAEG;IAEH,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEhC;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;;OAGG;IAEH,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,OAAO,CAAC,aAAa,CAAiB;IAGtC,OAAO,CAAC,mBAAmB,CAAC,CAI1B;IAEF,YAAY;IAIZ,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,cAAc;IAahB,gBAAgB;IAwCtB,oBAAoB;IAIpB;;OAEG;IACG,IAAI;IASV;;OAEG;IACG,IAAI;IASV;;;;OAIG;IACG,KAAK,CACT,OAAO,EAAE,UAAU,CAAC,qBAAqB,CAAC,EAC1C,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,EACjC,QAAQ,UAAO;IA6DR,MAAM;CAwGhB"}
|
package/dist/components/alert.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LitElement, nothing, html } from "lit";
|
|
2
2
|
import { query, property, state, customElement } from "lit/decorators.js";
|
|
3
3
|
import { classMap } from "lit/directives/class-map.js";
|
|
4
4
|
import { styled } from "../mixins/tailwind.mixin.js";
|
|
@@ -21,60 +21,7 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
21
21
|
const toastStack = Object.assign(document.createElement("div"), {
|
|
22
22
|
className: "mid-toast-stack"
|
|
23
23
|
});
|
|
24
|
-
|
|
25
|
-
css`
|
|
26
|
-
[hidden] {
|
|
27
|
-
display: none !important;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
.fds-alert__icon {
|
|
31
|
-
font-size: var(--fds-alert-icon-size);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/* .close-button {
|
|
35
|
-
font-size: 24px;
|
|
36
|
-
display: inline-flex;
|
|
37
|
-
align-self: center;
|
|
38
|
-
padding: 10px;
|
|
39
|
-
border-radius: 4px;
|
|
40
|
-
margin-top: -10px;
|
|
41
|
-
margin-bottom: -10px;
|
|
42
|
-
color: var(--fds-alert-icon-color);
|
|
43
|
-
} */
|
|
44
|
-
|
|
45
|
-
.close-button:hover {
|
|
46
|
-
background-color: color-mix(
|
|
47
|
-
in srgb,
|
|
48
|
-
var(--fds-alert-icon-color) 20%,
|
|
49
|
-
var(--fds-alert-background)
|
|
50
|
-
);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
.message-details {
|
|
54
|
-
margin-top: 0.5rem;
|
|
55
|
-
font-size: 0.875rem;
|
|
56
|
-
line-height: 1.25rem;
|
|
57
|
-
padding: 0.75rem;
|
|
58
|
-
background-color: color-mix(
|
|
59
|
-
in srgb,
|
|
60
|
-
var(--fds-alert-icon-color) 20%,
|
|
61
|
-
var(--fds-alert-background)
|
|
62
|
-
);
|
|
63
|
-
border-left: solid 4px
|
|
64
|
-
color-mix(
|
|
65
|
-
in srgb,
|
|
66
|
-
var(--fds-alert-border-color),
|
|
67
|
-
var(--fds-alert-background)
|
|
68
|
-
);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
.message-details pre {
|
|
72
|
-
white-space: pre-wrap;
|
|
73
|
-
word-break: break-all;
|
|
74
|
-
}
|
|
75
|
-
`
|
|
76
|
-
];
|
|
77
|
-
let MinidAlert = class extends styled(LitElement, styles) {
|
|
24
|
+
let MinidAlert = class extends styled(LitElement) {
|
|
78
25
|
constructor() {
|
|
79
26
|
super(...arguments);
|
|
80
27
|
this.open = false;
|
|
@@ -272,8 +219,21 @@ let MinidAlert = class extends styled(LitElement, styles) {
|
|
|
272
219
|
${this.notificationContent?.title}
|
|
273
220
|
</h2>`}
|
|
274
221
|
${this.notificationContent?.message}
|
|
275
|
-
${!this.notificationContent?.details ? nothing : html`<div
|
|
276
|
-
|
|
222
|
+
${!this.notificationContent?.details ? nothing : html`<div
|
|
223
|
+
class="${classMap({
|
|
224
|
+
"border-danger": danger,
|
|
225
|
+
"border-info": info,
|
|
226
|
+
"border-success": success,
|
|
227
|
+
"border-warning": warning,
|
|
228
|
+
"bg-danger-surface-hover": danger,
|
|
229
|
+
"bg-info-surface-hover": info,
|
|
230
|
+
"bg-success-surface-hover": success,
|
|
231
|
+
"bg-warning-surface-hover": warning
|
|
232
|
+
})} text-body-sm mt-0.5 border-l-4 p-3"
|
|
233
|
+
>
|
|
234
|
+
<pre class="break-all whitespace-pre-wrap">
|
|
235
|
+
${this.notificationContent?.details}</pre
|
|
236
|
+
>
|
|
277
237
|
</div>`}
|
|
278
238
|
</slot>
|
|
279
239
|
</div>
|
|
@@ -288,7 +248,7 @@ let MinidAlert = class extends styled(LitElement, styles) {
|
|
|
288
248
|
"hover:bg-info-surface-hover": info,
|
|
289
249
|
"hover:bg-success-surface-hover": success,
|
|
290
250
|
"hover:bg-warning-surface-hover": warning
|
|
291
|
-
})} -my-4 flex self-center rounded p-4"
|
|
251
|
+
})} -my-4 -mr-4 flex self-center rounded p-4"
|
|
292
252
|
@click="${this.hide}"
|
|
293
253
|
>
|
|
294
254
|
<mid-icon class="size-6" name="xmark"> </mid-icon>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert.js","sources":["../../src/components/alert.component.ts"],"sourcesContent":["import { css, html, LitElement, nothing } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styled } from '../mixins/tailwind.mixin.ts';\nimport './icon/icon.component';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { watch } from '../internal/watch';\nimport {\n getAnimation,\n setDefaultAnimation,\n} from '../utilities/animation-registry';\nimport { waitForEvent } from '../internal/event';\nimport { animateTo, stopAnimations } from '../internal/animate';\nimport { type MidIconName } from '../types/icon-name';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'mid-alert': MinidAlert;\n }\n}\n\nconst toastStack = Object.assign(document.createElement('div'), {\n className: 'mid-toast-stack',\n});\n\nconst styles = [\n css`\n [hidden] {\n display: none !important;\n }\n\n .fds-alert__icon {\n font-size: var(--fds-alert-icon-size);\n }\n\n /* .close-button {\n font-size: 24px;\n display: inline-flex;\n align-self: center;\n padding: 10px;\n border-radius: 4px;\n margin-top: -10px;\n margin-bottom: -10px;\n color: var(--fds-alert-icon-color);\n } */\n\n .close-button:hover {\n background-color: color-mix(\n in srgb,\n var(--fds-alert-icon-color) 20%,\n var(--fds-alert-background)\n );\n }\n\n .message-details {\n margin-top: 0.5rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n padding: 0.75rem;\n background-color: color-mix(\n in srgb,\n var(--fds-alert-icon-color) 20%,\n var(--fds-alert-background)\n );\n border-left: solid 4px\n color-mix(\n in srgb,\n var(--fds-alert-border-color),\n var(--fds-alert-background)\n );\n }\n\n .message-details pre {\n white-space: pre-wrap;\n word-break: break-all;\n }\n `,\n];\n\n/**\n * Alerts need to have the `open` attribute to be displayed\n * @csspart base - Select the base of the alert\n *\n * @event mid-show - Emitted when the alert opens.\n * @event mid-after-show - Emitted after the alert opens and all animations are complete.\n * @event mid-hide - Emitted when the alert closes.\n * @event mid-after-hide - Emitted after the alert closes and all animations are complete.\n *\n * @slot -- The default slot for the content of the alert\n *\n * @animation alert.show - The animation to use when showing the alert.\n * @animation alert.hide - The animation to use when hiding the alert.\n */\n@customElement('mid-alert')\nexport class MinidAlert extends styled(LitElement, styles) {\n private autoHideTimeout?: number;\n private remainingTimeInterval?: number;\n\n @query('[part~=\"base\"]')\n base!: HTMLElement;\n\n /**\n * Indicates whether or not the alert is open. You can toggle this attribute to show and hide the alert, or you can\n * use the `show()` and `hide()` methods and this attribute will reflect the alert's open state.\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Enables a close button that allows the user to dismiss the alert.\n */\n @property({ type: Boolean, reflect: true })\n closable = false;\n\n /**\n * The length of time, in milliseconds, the alert will show before closing itself. If the user interacts with\n * the alert before it closes (e.g. moves the mouse over it), the timer will restart. Defaults to `Infinity`, meaning\n * the alert will not close on its own.\n */\n @property({ type: Number })\n duration = Infinity;\n\n /**\n * Sets color and icon according to severity\n */\n @property({ reflect: true })\n severity: 'warning' | 'info' | 'danger' | 'success' = 'info';\n\n /**\n * Sets size of icon, padding and font-size.\n */\n @property({ reflect: true })\n size: 'sm' | 'md' | 'lg' = 'md';\n\n /**\n * Adds a shadow to elevate the component\n */\n @property({ type: Boolean })\n elevated = false;\n\n /**\n * Sets the `aria-label` on the icon\n * Use this to inform screenreaders of severity. Defaults to Norwegian.\n */\n @property({ type: String })\n iconlabel?: string;\n\n @state()\n private remainingTime = this.duration;\n\n @state()\n notificationContent?: {\n title?: string;\n message: string;\n details?: string;\n };\n\n firstUpdated() {\n this.base.hidden = !this.open;\n }\n\n private restartAutoHide() {\n clearTimeout(this.autoHideTimeout);\n clearInterval(this.remainingTimeInterval);\n if (this.open && this.duration < Infinity) {\n this.autoHideTimeout = window.setTimeout(\n () => this.hide(),\n this.duration\n );\n this.remainingTime = this.duration;\n this.remainingTimeInterval = window.setInterval(() => {\n this.remainingTime -= 100;\n }, 100);\n }\n }\n\n private pauseAutoHide() {\n clearTimeout(this.autoHideTimeout);\n clearInterval(this.remainingTimeInterval);\n }\n\n private resumeAutoHide() {\n if (this.duration < Infinity) {\n this.autoHideTimeout = window.setTimeout(\n () => this.hide(),\n this.remainingTime\n );\n this.remainingTimeInterval = window.setInterval(() => {\n this.remainingTime -= 100;\n }, 100);\n }\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.open) {\n // Show\n this.dispatchEvent(\n new Event('mid-show', { composed: true, bubbles: true })\n );\n\n if (this.duration < Infinity) {\n this.restartAutoHide();\n }\n\n await stopAnimations(this.base);\n this.base.hidden = false;\n const { keyframes, options } = getAnimation(this, 'alert.show');\n await animateTo(this.base, keyframes, options);\n\n this.dispatchEvent(\n new Event('mid-after-show', { composed: true, bubbles: true })\n );\n } else {\n // Hide\n this.dispatchEvent(\n new Event('mid-hide', { composed: true, bubbles: true })\n );\n\n clearTimeout(this.autoHideTimeout);\n clearInterval(this.remainingTimeInterval);\n\n await stopAnimations(this.base);\n const { keyframes, options } = getAnimation(this, 'alert.hide');\n await animateTo(this.base, keyframes, options);\n this.base.hidden = true;\n\n this.dispatchEvent(\n new Event('mid-after-hide', { composed: true, bubbles: true })\n );\n }\n }\n\n @watch('duration')\n handleDurationChange() {\n this.restartAutoHide();\n }\n\n /**\n * Shows the alert.\n */\n async show() {\n if (this.open) {\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, 'mid-after-show');\n }\n\n /**\n * Hides the alert\n */\n async hide() {\n if (!this.open) {\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, 'mid-after-hide');\n }\n\n /**\n * Displays the alert as a toast notification. This will move the alert out of its position in the DOM and, when\n * dismissed, it will be removed from the DOM completely. By storing a reference to the alert, you can reuse it by\n * calling this method again. The returned promise will resolve after the alert is hidden.\n */\n async toast(\n content: MinidAlert['notificationContent'],\n duration?: number,\n severity?: MinidAlert['severity'],\n closable = true\n ) {\n return new Promise<void>((resolve) => {\n if (toastStack.parentElement === null) {\n document.body.append(toastStack);\n }\n\n if (content) {\n this.notificationContent = content;\n }\n\n if (severity) {\n this.severity = severity;\n }\n\n if (duration) {\n this.duration = duration;\n }\n\n this.closable = closable;\n this.elevated = true;\n\n // We wrap this in a timeout for `getBoundingClientRect` to get the height properly\n setTimeout(() => {\n toastStack.appendChild(this);\n\n animateTo(\n toastStack,\n [\n {\n transform: `translateY(${this.getBoundingClientRect().height}px)`,\n },\n { transform: 'translateY(0px)' },\n ],\n { duration: 250, easing: 'ease-out' }\n );\n }, 0);\n\n // Wait for the toast stack to render\n requestAnimationFrame(() => {\n // Force a reflow for the initial transition\n this.clientWidth;\n this.show();\n });\n\n this.addEventListener(\n 'mid-after-hide',\n () => {\n toastStack.removeChild(this);\n resolve();\n\n // Remove the toast stack from the DOM when there are no more alerts\n if (toastStack.querySelector('mid-alert') === null) {\n toastStack.remove();\n }\n },\n { once: true }\n );\n });\n }\n\n override render() {\n const danger = this.severity === 'danger';\n const warning = this.severity === 'warning';\n const info = this.severity === 'info';\n const success = this.severity === 'success';\n const sm = this.size === 'sm';\n const md = this.size === 'md';\n const lg = this.size === 'lg';\n const iconName: MidIconName =\n (danger && 'xmark-octagon-fill') ||\n (warning && 'exclamationmark-triangle-fill') ||\n (success && 'checkmark-circle-fill') ||\n 'information-square-fill';\n this.iconlabel ??=\n (danger && 'Feil') ||\n (warning && 'Advarsel') ||\n (success && 'Suksess') ||\n 'Informasjon';\n\n return html`\n <div\n part=\"base\"\n class=\"${classMap({\n 'text-body-sm': sm,\n 'text-body-md': md,\n 'text-body-lg': lg,\n 'bg-danger-surface-tinted': danger,\n 'bg-info-surface-tinted': info,\n 'bg-success-surface-tinted': success,\n 'bg-warning-surface-tinted': warning,\n 'border-danger': danger,\n 'border-info': info,\n 'border-success': success,\n 'border-warning': warning,\n 'text-danger': danger,\n 'text-info': info,\n 'text-success': success,\n 'text-warning': warning,\n 'shadow-md': this.elevated,\n })} grid grid-cols-[auto_1fr_auto] gap-2 rounded border p-6\"\n @mouseenter=${this.pauseAutoHide}\n @mouseleave=${this.resumeAutoHide}\n >\n <mid-icon\n class=\"${classMap({\n 'text-info-subtle': info,\n 'text-danger-subtle': danger,\n 'text-success-subtle': success,\n 'text-warning-subtle': warning,\n })} size-7\"\n name=\"${iconName}\"\n library=\"system\"\n alt=${ifDefined(this.iconlabel)}\n ></mid-icon>\n <div aria-live=\"polite\">\n <slot>\n ${!this.notificationContent?.title\n ? nothing\n : html`<h2 class=\"text-heading-xs\">\n ${this.notificationContent?.title}\n </h2>`}\n ${this.notificationContent?.message}\n ${!this.notificationContent?.details\n ? nothing\n : html`<div class=\"message-details\">\n <pre>${this.notificationContent?.details}</pre>\n </div>`}\n </slot>\n </div>\n ${this.closable\n ? html`\n <button\n class=\"${classMap({\n 'text-info-subtle': info,\n 'text-danger-subtle': danger,\n 'text-success-subtle': success,\n 'text-warning-subtle': warning,\n 'hover:bg-danger-surface-hover': danger,\n 'hover:bg-info-surface-hover': info,\n 'hover:bg-success-surface-hover': success,\n 'hover:bg-warning-surface-hover': warning,\n })} -my-4 flex self-center rounded p-4\"\n @click=\"${this.hide}\"\n >\n <mid-icon class=\"size-6\" name=\"xmark\"> </mid-icon>\n </button>\n `\n : nothing}\n </div>\n `;\n }\n}\n\nsetDefaultAnimation('alert.show', {\n keyframes: [\n { opacity: 0, transform: 'translateY(100%)' },\n { opacity: 1, transform: 'translateY(0px)' },\n ],\n options: { duration: 400, easing: 'ease-out' },\n});\n\nsetDefaultAnimation('alert.hide', {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.8 },\n ],\n options: { duration: 250, easing: 'ease-in' },\n});\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"alert.js","sources":["../../src/components/alert.component.ts"],"sourcesContent":["import { html, LitElement, nothing } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styled } from '../mixins/tailwind.mixin.ts';\nimport './icon/icon.component';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { watch } from '../internal/watch';\nimport {\n getAnimation,\n setDefaultAnimation,\n} from '../utilities/animation-registry';\nimport { waitForEvent } from '../internal/event';\nimport { animateTo, stopAnimations } from '../internal/animate';\nimport { type MidIconName } from '../types/icon-name';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'mid-alert': MinidAlert;\n }\n}\n\nconst toastStack = Object.assign(document.createElement('div'), {\n className: 'mid-toast-stack',\n});\n\n/**\n * Alerts need to have the `open` attribute to be displayed\n * @csspart base - Select the base of the alert\n *\n * @event mid-show - Emitted when the alert opens.\n * @event mid-after-show - Emitted after the alert opens and all animations are complete.\n * @event mid-hide - Emitted when the alert closes.\n * @event mid-after-hide - Emitted after the alert closes and all animations are complete.\n *\n * @slot -- The default slot for the content of the alert\n *\n * @animation alert.show - The animation to use when showing the alert.\n * @animation alert.hide - The animation to use when hiding the alert.\n */\n@customElement('mid-alert')\nexport class MinidAlert extends styled(LitElement) {\n private autoHideTimeout?: number;\n private remainingTimeInterval?: number;\n\n @query('[part~=\"base\"]')\n private base!: HTMLElement;\n\n /**\n * Indicates whether or not the alert is open. You can toggle this attribute to show and hide the alert, or you can\n * use the `show()` and `hide()` methods and this attribute will reflect the alert's open state.\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Enables a close button that allows the user to dismiss the alert.\n */\n @property({ type: Boolean, reflect: true })\n closable = false;\n\n /**\n * The length of time, in milliseconds, the alert will show before closing itself. If the user interacts with\n * the alert before it closes (e.g. moves the mouse over it), the timer will restart. Defaults to `Infinity`, meaning\n * the alert will not close on its own.\n */\n @property({ type: Number })\n duration = Infinity;\n\n /**\n * Sets color and icon according to severity\n */\n @property({ reflect: true })\n severity: 'warning' | 'info' | 'danger' | 'success' = 'info';\n\n /**\n * Sets size of icon, padding and font-size.\n */\n @property({ reflect: true })\n size: 'sm' | 'md' | 'lg' = 'md';\n\n /**\n * Adds a shadow to elevate the component\n */\n @property({ type: Boolean })\n elevated = false;\n\n /**\n * Sets the `aria-label` on the icon\n * Use this to inform screenreaders of severity. Defaults to Norwegian.\n */\n @property({ type: String })\n iconlabel?: string;\n\n @state()\n private remainingTime = this.duration;\n\n @state()\n private notificationContent?: {\n title?: string;\n message: string;\n details?: string;\n };\n\n firstUpdated() {\n this.base.hidden = !this.open;\n }\n\n private restartAutoHide() {\n clearTimeout(this.autoHideTimeout);\n clearInterval(this.remainingTimeInterval);\n if (this.open && this.duration < Infinity) {\n this.autoHideTimeout = window.setTimeout(\n () => this.hide(),\n this.duration\n );\n this.remainingTime = this.duration;\n this.remainingTimeInterval = window.setInterval(() => {\n this.remainingTime -= 100;\n }, 100);\n }\n }\n\n private pauseAutoHide() {\n clearTimeout(this.autoHideTimeout);\n clearInterval(this.remainingTimeInterval);\n }\n\n private resumeAutoHide() {\n if (this.duration < Infinity) {\n this.autoHideTimeout = window.setTimeout(\n () => this.hide(),\n this.remainingTime\n );\n this.remainingTimeInterval = window.setInterval(() => {\n this.remainingTime -= 100;\n }, 100);\n }\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.open) {\n // Show\n this.dispatchEvent(\n new Event('mid-show', { composed: true, bubbles: true })\n );\n\n if (this.duration < Infinity) {\n this.restartAutoHide();\n }\n\n await stopAnimations(this.base);\n this.base.hidden = false;\n const { keyframes, options } = getAnimation(this, 'alert.show');\n await animateTo(this.base, keyframes, options);\n\n this.dispatchEvent(\n new Event('mid-after-show', { composed: true, bubbles: true })\n );\n } else {\n // Hide\n this.dispatchEvent(\n new Event('mid-hide', { composed: true, bubbles: true })\n );\n\n clearTimeout(this.autoHideTimeout);\n clearInterval(this.remainingTimeInterval);\n\n await stopAnimations(this.base);\n const { keyframes, options } = getAnimation(this, 'alert.hide');\n await animateTo(this.base, keyframes, options);\n this.base.hidden = true;\n\n this.dispatchEvent(\n new Event('mid-after-hide', { composed: true, bubbles: true })\n );\n }\n }\n\n @watch('duration')\n handleDurationChange() {\n this.restartAutoHide();\n }\n\n /**\n * Shows the alert.\n */\n async show() {\n if (this.open) {\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, 'mid-after-show');\n }\n\n /**\n * Hides the alert\n */\n async hide() {\n if (!this.open) {\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, 'mid-after-hide');\n }\n\n /**\n * Displays the alert as a toast notification. This will move the alert out of its position in the DOM and, when\n * dismissed, it will be removed from the DOM completely. By storing a reference to the alert, you can reuse it by\n * calling this method again. The returned promise will resolve after the alert is hidden.\n */\n async toast(\n content: MinidAlert['notificationContent'],\n duration?: number,\n severity?: MinidAlert['severity'],\n closable = true\n ) {\n return new Promise<void>((resolve) => {\n if (toastStack.parentElement === null) {\n document.body.append(toastStack);\n }\n\n if (content) {\n this.notificationContent = content;\n }\n\n if (severity) {\n this.severity = severity;\n }\n\n if (duration) {\n this.duration = duration;\n }\n\n this.closable = closable;\n this.elevated = true;\n\n // We wrap this in a timeout for `getBoundingClientRect` to get the height properly\n setTimeout(() => {\n toastStack.appendChild(this);\n\n animateTo(\n toastStack,\n [\n {\n transform: `translateY(${this.getBoundingClientRect().height}px)`,\n },\n { transform: 'translateY(0px)' },\n ],\n { duration: 250, easing: 'ease-out' }\n );\n }, 0);\n\n // Wait for the toast stack to render\n requestAnimationFrame(() => {\n // Force a reflow for the initial transition\n this.clientWidth;\n this.show();\n });\n\n this.addEventListener(\n 'mid-after-hide',\n () => {\n toastStack.removeChild(this);\n resolve();\n\n // Remove the toast stack from the DOM when there are no more alerts\n if (toastStack.querySelector('mid-alert') === null) {\n toastStack.remove();\n }\n },\n { once: true }\n );\n });\n }\n\n override render() {\n const danger = this.severity === 'danger';\n const warning = this.severity === 'warning';\n const info = this.severity === 'info';\n const success = this.severity === 'success';\n const sm = this.size === 'sm';\n const md = this.size === 'md';\n const lg = this.size === 'lg';\n const iconName: MidIconName =\n (danger && 'xmark-octagon-fill') ||\n (warning && 'exclamationmark-triangle-fill') ||\n (success && 'checkmark-circle-fill') ||\n 'information-square-fill';\n this.iconlabel ??=\n (danger && 'Feil') ||\n (warning && 'Advarsel') ||\n (success && 'Suksess') ||\n 'Informasjon';\n\n return html`\n <div\n part=\"base\"\n class=\"${classMap({\n 'text-body-sm': sm,\n 'text-body-md': md,\n 'text-body-lg': lg,\n 'bg-danger-surface-tinted': danger,\n 'bg-info-surface-tinted': info,\n 'bg-success-surface-tinted': success,\n 'bg-warning-surface-tinted': warning,\n 'border-danger': danger,\n 'border-info': info,\n 'border-success': success,\n 'border-warning': warning,\n 'text-danger': danger,\n 'text-info': info,\n 'text-success': success,\n 'text-warning': warning,\n 'shadow-md': this.elevated,\n })} grid grid-cols-[auto_1fr_auto] gap-2 rounded border p-6\"\n @mouseenter=${this.pauseAutoHide}\n @mouseleave=${this.resumeAutoHide}\n >\n <mid-icon\n class=\"${classMap({\n 'text-info-subtle': info,\n 'text-danger-subtle': danger,\n 'text-success-subtle': success,\n 'text-warning-subtle': warning,\n })} size-7\"\n name=\"${iconName}\"\n library=\"system\"\n alt=${ifDefined(this.iconlabel)}\n ></mid-icon>\n <div aria-live=\"polite\">\n <slot>\n ${!this.notificationContent?.title\n ? nothing\n : html`<h2 class=\"text-heading-xs\">\n ${this.notificationContent?.title}\n </h2>`}\n ${this.notificationContent?.message}\n ${!this.notificationContent?.details\n ? nothing\n : html`<div\n class=\"${classMap({\n 'border-danger': danger,\n 'border-info': info,\n 'border-success': success,\n 'border-warning': warning,\n 'bg-danger-surface-hover': danger,\n 'bg-info-surface-hover': info,\n 'bg-success-surface-hover': success,\n 'bg-warning-surface-hover': warning,\n })} text-body-sm mt-0.5 border-l-4 p-3\"\n >\n <pre class=\"break-all whitespace-pre-wrap\">\n${this.notificationContent?.details}</pre\n >\n </div>`}\n </slot>\n </div>\n ${this.closable\n ? html`\n <button\n class=\"${classMap({\n 'text-info-subtle': info,\n 'text-danger-subtle': danger,\n 'text-success-subtle': success,\n 'text-warning-subtle': warning,\n 'hover:bg-danger-surface-hover': danger,\n 'hover:bg-info-surface-hover': info,\n 'hover:bg-success-surface-hover': success,\n 'hover:bg-warning-surface-hover': warning,\n })} -my-4 -mr-4 flex self-center rounded p-4\"\n @click=\"${this.hide}\"\n >\n <mid-icon class=\"size-6\" name=\"xmark\"> </mid-icon>\n </button>\n `\n : nothing}\n </div>\n `;\n }\n}\n\nsetDefaultAnimation('alert.show', {\n keyframes: [\n { opacity: 0, transform: 'translateY(100%)' },\n { opacity: 1, transform: 'translateY(0px)' },\n ],\n options: { duration: 400, easing: 'ease-out' },\n});\n\nsetDefaultAnimation('alert.hide', {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.8 },\n ],\n options: { duration: 250, easing: 'ease-in' },\n});\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.component.d.ts","sourceRoot":"","sources":["../../src/components/button.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,UAAU,EAAE,MAAM,KAAK,CAAC;AAOtC,OAAO,wBAAwB,CAAC;AAEhC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,WAAW,CAAC;KAC3B;CACF;;AAUD;;GAEG;AACH,qBACa,WAAY,SAAQ,gBAEhC;IAEC,MAAM,EAAG,iBAAiB,GAAG,eAAe,CAAC;IAE7C;;OAEG;IAEH,KAAK,SAAM;IAEX;;OAEG;IAEH,OAAO,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,CAAa;IAE1D;;OAEG;IAEH,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEhC;;OAEG;IAEH,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAY;IAE/C;;OAEG;IAEH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAEzB;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,OAAO,UAAS;IAGhB,WAAW,SAAM;IAEjB;;OAEG;IAEH,UAAU,UAAS
|
|
1
|
+
{"version":3,"file":"button.component.d.ts","sourceRoot":"","sources":["../../src/components/button.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,UAAU,EAAE,MAAM,KAAK,CAAC;AAOtC,OAAO,wBAAwB,CAAC;AAEhC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,WAAW,CAAC;KAC3B;CACF;;AAUD;;GAEG;AACH,qBACa,WAAY,SAAQ,gBAEhC;IAEC,MAAM,EAAG,iBAAiB,GAAG,eAAe,CAAC;IAE7C;;OAEG;IAEH,KAAK,SAAM;IAEX;;OAEG;IAEH,OAAO,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,CAAa;IAE1D;;OAEG;IAEH,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEhC;;OAEG;IAEH,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAY;IAE/C;;OAEG;IAEH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAEzB;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,OAAO,UAAS;IAGhB,WAAW,SAAM;IAEjB;;OAEG;IAEH,UAAU,UAAS;IAEnB,WAAW;IASX;;OAEG;IACH,IAAI,MAAM,YAET;IAED,KAAK;IAII,MAAM;CAqEhB"}
|
|
@@ -27,7 +27,7 @@ let MinidButton = class extends FormControllerMixin(
|
|
|
27
27
|
styled(LitElement, styles)
|
|
28
28
|
) {
|
|
29
29
|
constructor() {
|
|
30
|
-
super();
|
|
30
|
+
super(...arguments);
|
|
31
31
|
this.value = "";
|
|
32
32
|
this.variant = "primary";
|
|
33
33
|
this.size = "md";
|
|
@@ -36,7 +36,6 @@ let MinidButton = class extends FormControllerMixin(
|
|
|
36
36
|
this.loading = false;
|
|
37
37
|
this.loadingtext = "";
|
|
38
38
|
this.iconstyled = false;
|
|
39
|
-
this.addEventListener("click", this.handleClick);
|
|
40
39
|
}
|
|
41
40
|
handleClick() {
|
|
42
41
|
if (this.type === "submit") {
|
|
@@ -67,6 +66,7 @@ let MinidButton = class extends FormControllerMixin(
|
|
|
67
66
|
return html`<${tag}
|
|
68
67
|
part="base"
|
|
69
68
|
class="${classMap({
|
|
69
|
+
button: true,
|
|
70
70
|
"w-12": this.iconstyled,
|
|
71
71
|
"h-12": this.iconstyled,
|
|
72
72
|
"py-2": !this.iconstyled,
|
|
@@ -91,11 +91,12 @@ let MinidButton = class extends FormControllerMixin(
|
|
|
91
91
|
relative: spinnerOnly,
|
|
92
92
|
"gap-0": spinnerOnly,
|
|
93
93
|
"opacity-disabled": this.disabled && !this.loading
|
|
94
|
-
})}
|
|
94
|
+
})} grow focus-visible:focus-ring leading-sm flex h-fit min-h-12 min-w-12 items-center justify-center gap-2 rounded border font-medium"
|
|
95
95
|
type=${this.type}
|
|
96
96
|
aria-busy=${this.loading}
|
|
97
97
|
?disabled=${this.disabled}
|
|
98
98
|
href="${ifDefined(this.href)}"
|
|
99
|
+
@click="${this.handleClick}"
|
|
99
100
|
>
|
|
100
101
|
<slot
|
|
101
102
|
class="${classMap({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","sources":["../../src/components/button.component.ts"],"sourcesContent":["import { css, LitElement } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { html, literal } from 'lit/static-html.js';\nimport { styled } from '../mixins/tailwind.mixin.ts';\nimport { FormControllerMixin } from '../mixins/form-controller.mixin.ts';\nimport './spinner.component.ts';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'mid-button': MinidButton;\n }\n}\n\nconst styles = [\n css`\n :host {\n display: inline-flex;\n }\n `,\n];\n\n/**\n * A regular old button\n */\n@customElement('mid-button')\nexport class MinidButton extends FormControllerMixin(\n styled(LitElement, styles)\n) {\n @query('.button')\n button!: HTMLButtonElement | HTMLLinkElement;\n\n /**\n * The value of the button (optional)\n */\n @property({ type: String })\n value = '';\n\n /**\n * The variant of the button\n */\n @property({ type: String })\n variant: 'primary' | 'secondary' | 'tertiary' = 'primary';\n\n /**\n * The size of the button. Defaults to 'md'\n */\n @property({ type: String })\n size: 'md' | 'lg' | 'sm' = 'md';\n\n /**\n * The type of the button. Defaults to normal 'button'\n */\n @property({ type: String })\n type: 'submit' | 'button' | 'reset' = 'button';\n\n /**\n * The href of the button. If set, the button will be rendered as an anchor tag\n */\n @property({ type: String })\n href: string | undefined;\n\n /**\n * Whether the button is disabled\n */\n @property({ type: Boolean })\n disabled = false;\n\n /**\n *\n */\n @property({ type: Boolean })\n loading = false;\n\n @property()\n loadingtext = '';\n\n /**\n * Toggle icon only styling\n */\n @property({ type: Boolean })\n iconstyled = false;\n\n
|
|
1
|
+
{"version":3,"file":"button.js","sources":["../../src/components/button.component.ts"],"sourcesContent":["import { css, LitElement } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { html, literal } from 'lit/static-html.js';\nimport { styled } from '../mixins/tailwind.mixin.ts';\nimport { FormControllerMixin } from '../mixins/form-controller.mixin.ts';\nimport './spinner.component.ts';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'mid-button': MinidButton;\n }\n}\n\nconst styles = [\n css`\n :host {\n display: inline-flex;\n }\n `,\n];\n\n/**\n * A regular old button\n */\n@customElement('mid-button')\nexport class MinidButton extends FormControllerMixin(\n styled(LitElement, styles)\n) {\n @query('.button')\n button!: HTMLButtonElement | HTMLLinkElement;\n\n /**\n * The value of the button (optional)\n */\n @property({ type: String })\n value = '';\n\n /**\n * The variant of the button\n */\n @property({ type: String })\n variant: 'primary' | 'secondary' | 'tertiary' = 'primary';\n\n /**\n * The size of the button. Defaults to 'md'\n */\n @property({ type: String })\n size: 'md' | 'lg' | 'sm' = 'md';\n\n /**\n * The type of the button. Defaults to normal 'button'\n */\n @property({ type: String })\n type: 'submit' | 'button' | 'reset' = 'button';\n\n /**\n * The href of the button. If set, the button will be rendered as an anchor tag\n */\n @property({ type: String })\n href: string | undefined;\n\n /**\n * Whether the button is disabled\n */\n @property({ type: Boolean })\n disabled = false;\n\n /**\n *\n */\n @property({ type: Boolean })\n loading = false;\n\n @property()\n loadingtext = '';\n\n /**\n * Toggle icon only styling\n */\n @property({ type: Boolean })\n iconstyled = false;\n\n handleClick() {\n if (this.type === 'submit') {\n this.value && this.setFormValue(this.value);\n this.internals.form!.requestSubmit();\n } else if (this.type === 'reset') {\n this.internals.form!.reset();\n }\n }\n\n /**\n * @ignore\n */\n get isLink() {\n return !!this.href;\n }\n\n focus() {\n this.button.focus();\n }\n\n override render() {\n const tag = this.isLink ? literal`a` : literal`button`;\n const primary = this.variant === 'primary';\n const secondary = this.variant === 'secondary';\n const tertiary = this.variant === 'tertiary';\n const sm = this.size === 'sm';\n const md = this.size === 'md';\n const lg = this.size === 'lg';\n const spinnerOnly = this.loading && !this.loadingtext;\n\n return html`<${tag}\n part=\"base\"\n class=\"${classMap({\n button: true,\n 'w-12': this.iconstyled,\n 'h-12': this.iconstyled,\n 'py-2': !this.iconstyled,\n 'px-4': !this.iconstyled,\n 'bg-accent-base': primary,\n 'text-accent-base-contrast': primary,\n 'border-transparent': primary || tertiary,\n 'hover:bg-accent-base-hover': primary,\n 'active:bg-accent-base-active': primary,\n 'bg-transparent': secondary || tertiary,\n 'active:bg-accent-surface-active': secondary || tertiary,\n 'hover:bg-accent-surface-hover': secondary || tertiary,\n 'text-accent-subtle': secondary || tertiary,\n 'hover:text-accent': secondary || tertiary,\n 'border-accent-strong': secondary,\n 'text-body-sm': sm,\n 'text-body-md': md,\n 'text-body-lg': lg,\n 'cursor-wait': this.loading && !this.disabled,\n 'cursor-pointer': !this.loading && !this.disabled,\n 'cursor-not-allowed': this.disabled,\n relative: spinnerOnly,\n 'gap-0': spinnerOnly,\n 'opacity-disabled': this.disabled && !this.loading,\n })} grow focus-visible:focus-ring leading-sm flex h-fit min-h-12 min-w-12 items-center justify-center gap-2 rounded border font-medium\"\n type=${this.type}\n aria-busy=${this.loading}\n ?disabled=${this.disabled}\n href=\"${ifDefined(this.href)}\"\n @click=\"${this.handleClick}\"\n >\n <slot\n class=\"${classMap({\n invisible: spinnerOnly,\n hidden: this.loading && this.loadingtext,\n })}\"\n ></slot>\n <span class=\"${classMap({ hidden: !this.loading || !this.loadingtext })}\">\n ${this.loadingtext}\n </span>\n ${\n this.loading\n ? html`<mid-spinner\n class=\"${classMap({\n 'text-[1.4rem]': true,\n absolute: spinnerOnly,\n 'top-[calc(50%_-_0.5em)]': spinnerOnly,\n 'left-[calc(50%_-_0.5em)]': spinnerOnly,\n })}\"\n part=\"spinner\"\n ></mid-spinner>`\n : ''\n }\n </${tag}>`;\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -4,16 +4,56 @@ declare global {
|
|
|
4
4
|
'mid-checkbox': MinidCheckbox;
|
|
5
5
|
}
|
|
6
6
|
}
|
|
7
|
-
declare const MinidCheckbox_base:
|
|
7
|
+
declare const MinidCheckbox_base: import('../types/mixin-constructor.ts').Constructor<import('../types/form-control.ts').FormControlInterface> & typeof LitElement;
|
|
8
|
+
/**
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
8
11
|
export declare class MinidCheckbox extends MinidCheckbox_base {
|
|
9
|
-
|
|
12
|
+
private input;
|
|
13
|
+
/**
|
|
14
|
+
* The name of the checkbox, submitted as a name/value pair with form data.
|
|
15
|
+
*/
|
|
16
|
+
name: string;
|
|
17
|
+
/**
|
|
18
|
+
* The current value of the checkbox, submitted as a name/value pair with form data.
|
|
19
|
+
*/
|
|
20
|
+
value: string;
|
|
10
21
|
checked: boolean;
|
|
11
22
|
disabled: boolean;
|
|
12
23
|
readonly: boolean;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
24
|
+
invalid: boolean;
|
|
25
|
+
required: boolean;
|
|
26
|
+
static get formControlValidators(): import('../types/validator.type.ts').Validator[];
|
|
27
|
+
shouldFormValueUpdate(): boolean;
|
|
28
|
+
get validationTarget(): HTMLInputElement;
|
|
29
|
+
private handleClick;
|
|
30
|
+
/**
|
|
31
|
+
* Simulates a click on the checkbox.
|
|
32
|
+
*/
|
|
33
|
+
click(): void;
|
|
34
|
+
/**
|
|
35
|
+
* Sets focus on the checkbox.
|
|
36
|
+
*/
|
|
37
|
+
focus(options?: FocusOptions): void;
|
|
38
|
+
/**
|
|
39
|
+
* Removes focus from the checkbox.
|
|
40
|
+
*/
|
|
41
|
+
blur(): void;
|
|
42
|
+
/** Gets the validity state object */
|
|
43
|
+
/**
|
|
44
|
+
* Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.
|
|
45
|
+
*/
|
|
46
|
+
checkValidity(): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Checks for validity and shows the browser's validation message if the control is invalid.
|
|
49
|
+
*/
|
|
50
|
+
reportValidity(): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Sets a custom validation message. The value provided will be shown to the user when the form is submitted. To clear
|
|
53
|
+
* the custom validation message, call this method with an empty string.
|
|
54
|
+
*/
|
|
55
|
+
setCustomValidity(message: string): void;
|
|
56
|
+
handleStateChange(): void;
|
|
17
57
|
render(): import('lit-html').TemplateResult<1>;
|
|
18
58
|
}
|
|
19
59
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.component.d.ts","sourceRoot":"","sources":["../../src/components/checkbox.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"checkbox.component.d.ts","sourceRoot":"","sources":["../../src/components/checkbox.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAKvC,OAAO,0BAA0B,CAAC;AAMlC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,aAAa,CAAC;KAC/B;CACF;;AAED;;GAEG;AAEH,qBACa,aAAc,SAAQ,kBAAoC;IAErE,OAAO,CAAC,KAAK,CAAoB;IAEjC;;OAEG;IAEH,IAAI,SAAM;IAEV;;OAEG;IAEH,KAAK,SAAQ;IAGb,OAAO,UAAS;IAGhB,QAAQ,UAAS;IAGjB,QAAQ,UAAS;IAGjB,OAAO,UAAS;IAGhB,QAAQ,UAAS;IAEjB,MAAM,KAAK,qBAAqB,qDAE/B;IAED,qBAAqB,IAAI,OAAO;IAIhC,IAAI,gBAAgB,qBAEnB;IAED,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,KAAK;IAIL;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY;IAI5B;;OAEG;IACH,IAAI;IAIJ,qCAAqC;IAErC;;OAEG;IACH,aAAa;IAIb;;OAEG;IACH,cAAc;IAId;;;OAGG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM;IAKjC,iBAAiB;IAKR,MAAM;CAgDhB"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { LitElement, html } from "lit";
|
|
2
|
-
import {
|
|
2
|
+
import { query, property, customElement } from "lit/decorators.js";
|
|
3
3
|
import { classMap } from "lit/directives/class-map.js";
|
|
4
|
+
import { live } from "lit/directives/live.js";
|
|
4
5
|
import { styled } from "../mixins/tailwind.mixin.js";
|
|
5
|
-
import
|
|
6
|
+
import "./icon/icon.js";
|
|
7
|
+
import { ifDefined } from "lit/directives/if-defined.js";
|
|
8
|
+
import { FormControlMixin } from "../mixins/form-control.mixin.js";
|
|
9
|
+
import { watch } from "../internal/watch.js";
|
|
10
|
+
import { requiredValidator } from "../mixins/validators.js";
|
|
6
11
|
var __defProp = Object.defineProperty;
|
|
7
12
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
8
|
-
var __typeError = (msg) => {
|
|
9
|
-
throw TypeError(msg);
|
|
10
|
-
};
|
|
11
13
|
var __decorateClass = (decorators, target, key, kind) => {
|
|
12
14
|
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
13
15
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
@@ -16,99 +18,125 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
16
18
|
if (kind && result) __defProp(target, key, result);
|
|
17
19
|
return result;
|
|
18
20
|
};
|
|
19
|
-
|
|
20
|
-
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
21
|
-
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
22
|
-
var _MinidCheckbox_instances, handleChange_fn, handleClick_fn, updateDescriptionHidden_fn;
|
|
23
|
-
let MinidCheckbox = class extends FormControllerMixin(styled(LitElement)) {
|
|
21
|
+
let MinidCheckbox = class extends FormControlMixin(styled(LitElement)) {
|
|
24
22
|
constructor() {
|
|
25
23
|
super(...arguments);
|
|
26
|
-
|
|
24
|
+
this.name = "";
|
|
25
|
+
this.value = "on";
|
|
27
26
|
this.checked = false;
|
|
28
27
|
this.disabled = false;
|
|
29
28
|
this.readonly = false;
|
|
30
|
-
this.
|
|
29
|
+
this.invalid = false;
|
|
30
|
+
this.required = false;
|
|
31
|
+
}
|
|
32
|
+
static get formControlValidators() {
|
|
33
|
+
return [requiredValidator];
|
|
34
|
+
}
|
|
35
|
+
shouldFormValueUpdate() {
|
|
36
|
+
return this.checked;
|
|
37
|
+
}
|
|
38
|
+
get validationTarget() {
|
|
39
|
+
return this.input;
|
|
40
|
+
}
|
|
41
|
+
handleClick() {
|
|
42
|
+
this.checked = !this.checked;
|
|
43
|
+
this.dispatchEvent(new Event("mid-change"));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Simulates a click on the checkbox.
|
|
47
|
+
*/
|
|
48
|
+
click() {
|
|
49
|
+
this.input.click();
|
|
31
50
|
}
|
|
32
|
-
|
|
33
|
-
|
|
51
|
+
/**
|
|
52
|
+
* Sets focus on the checkbox.
|
|
53
|
+
*/
|
|
54
|
+
focus(options) {
|
|
55
|
+
this.input.focus(options);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Removes focus from the checkbox.
|
|
59
|
+
*/
|
|
60
|
+
blur() {
|
|
61
|
+
this.input.blur();
|
|
62
|
+
}
|
|
63
|
+
/** Gets the validity state object */
|
|
64
|
+
/**
|
|
65
|
+
* Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.
|
|
66
|
+
*/
|
|
67
|
+
checkValidity() {
|
|
68
|
+
return this.input.checkValidity();
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Checks for validity and shows the browser's validation message if the control is invalid.
|
|
72
|
+
*/
|
|
73
|
+
reportValidity() {
|
|
74
|
+
return this.input.reportValidity();
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Sets a custom validation message. The value provided will be shown to the user when the form is submitted. To clear
|
|
78
|
+
* the custom validation message, call this method with an empty string.
|
|
79
|
+
*/
|
|
80
|
+
setCustomValidity(message) {
|
|
81
|
+
this.input.setCustomValidity(message);
|
|
82
|
+
}
|
|
83
|
+
handleStateChange() {
|
|
84
|
+
this.setValue(this.value);
|
|
34
85
|
}
|
|
35
86
|
render() {
|
|
36
|
-
|
|
37
|
-
const md = this.size === "md";
|
|
38
|
-
const lg = this.size === "lg";
|
|
87
|
+
console.log("invalid: ", this.invalid);
|
|
39
88
|
return html`
|
|
40
|
-
<
|
|
89
|
+
<label
|
|
41
90
|
class="${classMap({
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
"fds-paragraph--sm": sm,
|
|
46
|
-
"fds-checkbox--sm": sm,
|
|
47
|
-
"fds-paragraph--md": md,
|
|
48
|
-
"fds-checkbox--md": md,
|
|
49
|
-
"fds-paragraph--lg": lg,
|
|
50
|
-
"fds-checkbox--lg": lg
|
|
51
|
-
})}"
|
|
91
|
+
"opacity-disabled": this.disabled,
|
|
92
|
+
"cursor-not-allowed": this.disabled
|
|
93
|
+
})} grid grid-cols-[auto_1fr] gap-2"
|
|
52
94
|
>
|
|
53
|
-
<
|
|
54
|
-
id="checkbox"
|
|
55
|
-
class="fds-checkbox__input"
|
|
56
|
-
type="checkbox"
|
|
57
|
-
@change=${__privateMethod(this, _MinidCheckbox_instances, handleChange_fn)}
|
|
58
|
-
@click=${__privateMethod(this, _MinidCheckbox_instances, handleClick_fn)}
|
|
59
|
-
?disabled=${this.disabled}
|
|
60
|
-
?checked=${this.checked}
|
|
61
|
-
?readonly=${this.readonly}
|
|
62
|
-
/>
|
|
63
|
-
<label
|
|
64
|
-
for="checkbox"
|
|
65
|
-
class=${classMap({
|
|
66
|
-
"fds-label": true,
|
|
67
|
-
"fds-checkbox__label": true,
|
|
68
|
-
"fds-label--regular-weight": true,
|
|
69
|
-
"fds-label--sm": sm,
|
|
70
|
-
"fds-label--md": md,
|
|
71
|
-
"fds-label--lg": lg
|
|
72
|
-
})}
|
|
73
|
-
>
|
|
74
|
-
<slot></slot>
|
|
75
|
-
</label>
|
|
76
|
-
<div
|
|
95
|
+
<span
|
|
77
96
|
class="${classMap({
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
|
|
97
|
+
"bg-accent-base": !this.readonly && this.checked && !this.invalid,
|
|
98
|
+
"bg-danger-base": !this.readonly && this.checked && this.invalid,
|
|
99
|
+
"border-accent-base": !this.readonly && this.checked && !this.invalid,
|
|
100
|
+
"border-neutral": !this.readonly && !this.checked && !this.invalid,
|
|
101
|
+
"border-danger-base": !this.readonly && this.invalid,
|
|
102
|
+
"border-neutral-subtle": this.readonly,
|
|
103
|
+
"bg-neutral-surface-tinted": this.readonly
|
|
104
|
+
})} focus-within:focus-ring inline-flex size-6 shrink-0 items-center justify-center rounded-sm border-2"
|
|
84
105
|
>
|
|
85
|
-
<
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
106
|
+
<input
|
|
107
|
+
class="pointer-events-none appearance-none"
|
|
108
|
+
type="checkbox"
|
|
109
|
+
value=${ifDefined(this.value)}
|
|
110
|
+
.checked=${live(this.checked)}
|
|
111
|
+
?disabled=${this.disabled}
|
|
112
|
+
?checked=${this.checked}
|
|
113
|
+
?readonly=${this.readonly}
|
|
114
|
+
.required=${this.required}
|
|
115
|
+
@click=${this.handleClick}
|
|
116
|
+
/>
|
|
117
|
+
${this.checked ? html`<mid-icon
|
|
118
|
+
class="${classMap({
|
|
119
|
+
"text-accent-base-contrast": this.checked && !this.readonly
|
|
120
|
+
})} size-6 shrink-0 scale-125"
|
|
121
|
+
name="checkmark"
|
|
122
|
+
></mid-icon>` : ""}
|
|
123
|
+
</span>
|
|
124
|
+
<div part="label">
|
|
125
|
+
<slot></slot>
|
|
89
126
|
</div>
|
|
90
|
-
</
|
|
127
|
+
</label>
|
|
91
128
|
`;
|
|
92
129
|
}
|
|
93
130
|
};
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
};
|
|
104
|
-
handleClick_fn = function(event) {
|
|
105
|
-
if (this.readonly) {
|
|
106
|
-
event.preventDefault();
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
updateDescriptionHidden_fn = function() {
|
|
110
|
-
this.checkboxDescriptionElement.style.display = !this.descriptionNodes?.length ? "none" : "block";
|
|
111
|
-
};
|
|
131
|
+
__decorateClass([
|
|
132
|
+
query('input[type="checkbox"]')
|
|
133
|
+
], MinidCheckbox.prototype, "input", 2);
|
|
134
|
+
__decorateClass([
|
|
135
|
+
property()
|
|
136
|
+
], MinidCheckbox.prototype, "name", 2);
|
|
137
|
+
__decorateClass([
|
|
138
|
+
property()
|
|
139
|
+
], MinidCheckbox.prototype, "value", 2);
|
|
112
140
|
__decorateClass([
|
|
113
141
|
property({ type: Boolean })
|
|
114
142
|
], MinidCheckbox.prototype, "checked", 2);
|
|
@@ -119,14 +147,14 @@ __decorateClass([
|
|
|
119
147
|
property({ type: Boolean })
|
|
120
148
|
], MinidCheckbox.prototype, "readonly", 2);
|
|
121
149
|
__decorateClass([
|
|
122
|
-
property({ type:
|
|
123
|
-
], MinidCheckbox.prototype, "
|
|
150
|
+
property({ type: Boolean })
|
|
151
|
+
], MinidCheckbox.prototype, "invalid", 2);
|
|
124
152
|
__decorateClass([
|
|
125
|
-
|
|
126
|
-
], MinidCheckbox.prototype, "
|
|
153
|
+
property({ type: Boolean, reflect: true })
|
|
154
|
+
], MinidCheckbox.prototype, "required", 2);
|
|
127
155
|
__decorateClass([
|
|
128
|
-
|
|
129
|
-
], MinidCheckbox.prototype, "
|
|
156
|
+
watch(["checked", "value"])
|
|
157
|
+
], MinidCheckbox.prototype, "handleStateChange", 1);
|
|
130
158
|
MinidCheckbox = __decorateClass([
|
|
131
159
|
customElement("mid-checkbox")
|
|
132
160
|
], MinidCheckbox);
|