@politiet/sheriff-web-components 2.1.3 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/frameworks/preact.d.ts +7 -1
- package/dist/frameworks/preact.d.ts.map +1 -1
- package/dist/frameworks/react.d.ts +7 -1
- package/dist/frameworks/react.d.ts.map +1 -1
- package/dist/frameworks/solidjs.d.ts +2 -0
- package/dist/frameworks/solidjs.d.ts.map +1 -1
- package/dist/frameworks/svelte.d.ts +2 -0
- package/dist/frameworks/svelte.d.ts.map +1 -1
- package/dist/frameworks/vue.d.ts +2 -0
- package/dist/frameworks/vue.d.ts.map +1 -1
- package/dist/index.d.ts +9 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/react-wrappers/SDSDialogWrapper.d.ts +6 -0
- package/dist/react-wrappers/SDSDialogWrapper.d.ts.map +1 -0
- package/dist/react-wrappers/SDSDialogWrapper.js +12 -0
- package/dist/react-wrappers/SDSDialogWrapper.js.map +1 -0
- package/dist/react-wrappers/SDSSelectWrapper.d.ts +8 -0
- package/dist/react-wrappers/SDSSelectWrapper.d.ts.map +1 -0
- package/dist/react-wrappers/SDSSelectWrapper.js +14 -0
- package/dist/react-wrappers/SDSSelectWrapper.js.map +1 -0
- package/dist/react-wrappers/index.d.ts +2 -0
- package/dist/react-wrappers/index.d.ts.map +1 -1
- package/dist/react-wrappers/index.js +2 -0
- package/dist/react-wrappers/index.js.map +1 -1
- package/dist/sds-alert/sds-alert.component.d.ts +25 -0
- package/dist/sds-alert/sds-alert.component.d.ts.map +1 -0
- package/dist/sds-alert/sds-alert.component.js +73 -0
- package/dist/sds-alert/sds-alert.component.js.map +1 -0
- package/dist/sds-alert/sds-alert.d.ts +3 -19
- package/dist/sds-alert/sds-alert.d.ts.map +1 -1
- package/dist/sds-alert/sds-alert.js +2 -55
- package/dist/sds-alert/sds-alert.js.map +1 -1
- package/dist/sds-alert/sds-alert.styles.d.ts.map +1 -1
- package/dist/sds-alert/sds-alert.styles.js +12 -7
- package/dist/sds-alert/sds-alert.styles.js.map +1 -1
- package/dist/sds-button/sds-button.component.d.ts +45 -0
- package/dist/sds-button/sds-button.component.d.ts.map +1 -0
- package/dist/sds-button/sds-button.component.js +162 -0
- package/dist/sds-button/sds-button.component.js.map +1 -0
- package/dist/sds-button/sds-button.d.ts +2 -42
- package/dist/sds-button/sds-button.d.ts.map +1 -1
- package/dist/sds-button/sds-button.js +2 -151
- package/dist/sds-button/sds-button.js.map +1 -1
- package/dist/sds-card/sds-card.d.ts +4 -0
- package/dist/sds-card/sds-card.d.ts.map +1 -1
- package/dist/sds-card/sds-card.js +18 -15
- package/dist/sds-card/sds-card.js.map +1 -1
- package/dist/sds-checkbox/sds-checkbox.d.ts +1 -0
- package/dist/sds-checkbox/sds-checkbox.d.ts.map +1 -1
- package/dist/sds-checkbox/sds-checkbox.js +4 -1
- package/dist/sds-checkbox/sds-checkbox.js.map +1 -1
- package/dist/sds-chip/sds-chip.d.ts +1 -0
- package/dist/sds-chip/sds-chip.d.ts.map +1 -1
- package/dist/sds-chip/sds-chip.js +4 -1
- package/dist/sds-chip/sds-chip.js.map +1 -1
- package/dist/sds-chip/sds-chip.styles.d.ts.map +1 -1
- package/dist/sds-chip/sds-chip.styles.js +2 -1
- package/dist/sds-chip/sds-chip.styles.js.map +1 -1
- package/dist/sds-dialog/sds-dialog.d.ts +61 -0
- package/dist/sds-dialog/sds-dialog.d.ts.map +1 -0
- package/dist/sds-dialog/sds-dialog.js +162 -0
- package/dist/sds-dialog/sds-dialog.js.map +1 -0
- package/dist/sds-dialog/sds-dialog.styles.d.ts +2 -0
- package/dist/sds-dialog/sds-dialog.styles.d.ts.map +1 -0
- package/dist/sds-dialog/sds-dialog.styles.js +115 -0
- package/dist/sds-dialog/sds-dialog.styles.js.map +1 -0
- package/dist/sds-heading/sds-heading.component.d.ts +16 -0
- package/dist/sds-heading/sds-heading.component.d.ts.map +1 -0
- package/dist/sds-heading/sds-heading.component.js +50 -0
- package/dist/sds-heading/sds-heading.component.js.map +1 -0
- package/dist/sds-heading/sds-heading.d.ts +2 -14
- package/dist/sds-heading/sds-heading.d.ts.map +1 -1
- package/dist/sds-heading/sds-heading.js +2 -42
- package/dist/sds-heading/sds-heading.js.map +1 -1
- package/dist/sds-icon/sds-icon.component.d.ts +31 -0
- package/dist/sds-icon/sds-icon.component.d.ts.map +1 -0
- package/dist/sds-icon/sds-icon.component.js +73 -0
- package/dist/sds-icon/sds-icon.component.js.map +1 -0
- package/dist/sds-icon/sds-icon.d.ts +2 -29
- package/dist/sds-icon/sds-icon.d.ts.map +1 -1
- package/dist/sds-icon/sds-icon.js +3 -67
- package/dist/sds-icon/sds-icon.js.map +1 -1
- package/dist/sds-radio/sds-radio.d.ts +1 -0
- package/dist/sds-radio/sds-radio.d.ts.map +1 -1
- package/dist/sds-radio/sds-radio.js +4 -1
- package/dist/sds-radio/sds-radio.js.map +1 -1
- package/dist/sds-select/sds-select.d.ts +72 -0
- package/dist/sds-select/sds-select.d.ts.map +1 -0
- package/dist/sds-select/sds-select.js +324 -0
- package/dist/sds-select/sds-select.js.map +1 -0
- package/dist/sds-select/sds-select.styles.d.ts +2 -0
- package/dist/sds-select/sds-select.styles.d.ts.map +1 -0
- package/dist/sds-select/sds-select.styles.js +179 -0
- package/dist/sds-select/sds-select.styles.js.map +1 -0
- package/dist/sds-switch/sds-switch.d.ts +1 -0
- package/dist/sds-switch/sds-switch.d.ts.map +1 -1
- package/dist/sds-switch/sds-switch.js +4 -1
- package/dist/sds-switch/sds-switch.js.map +1 -1
- package/dist/sds-text/sds-text.component.d.ts +17 -0
- package/dist/sds-text/sds-text.component.d.ts.map +1 -0
- package/dist/sds-text/sds-text.component.js +33 -0
- package/dist/sds-text/sds-text.component.js.map +1 -0
- package/dist/sds-text/sds-text.d.ts +2 -15
- package/dist/sds-text/sds-text.d.ts.map +1 -1
- package/dist/sds-text/sds-text.js +2 -25
- package/dist/sds-text/sds-text.js.map +1 -1
- package/dist/sds-textarea/sds-textarea.d.ts +1 -0
- package/dist/sds-textarea/sds-textarea.d.ts.map +1 -1
- package/dist/sds-textarea/sds-textarea.js +4 -1
- package/dist/sds-textarea/sds-textarea.js.map +1 -1
- package/dist/sds-textfield/sds-textfield.d.ts +1 -0
- package/dist/sds-textfield/sds-textfield.d.ts.map +1 -1
- package/dist/sds-textfield/sds-textfield.js +4 -1
- package/dist/sds-textfield/sds-textfield.js.map +1 -1
- package/dist/sheriff-web-components.js +461 -120
- package/dist/utils/slot-validator.js +2 -2
- package/dist/utils/slot-validator.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sds-dialog.js","sourceRoot":"","sources":["../../src/sds-dialog/sds-dialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, nothing, type PropertyValues } from 'lit';\nimport { property, query, queryAssignedElements } from 'lit/decorators.js';\nimport { guardedCustomElement } from '../utils/guarded-custom-element';\nimport { styles } from './sds-dialog.styles';\nimport { SheriffEvent } from '../types';\n\nimport '../sds-icon/sds-icon';\nimport '../sds-button/sds-button';\n\ntype ClosedBy = 'none' | 'closerequest' | 'any';\n\nexport interface SDSDialogProps {\n\topen?: boolean;\n\t/**\n\t * Set if dialog opens as a modal or not\n\t *\n\t * If non-modal, the user is allowed to interact with content outside of the dialog.\n\t * If modal, the dialog is placed in the top layer with a ::backdrop pseudo-element.\n\t *\n\t * Docs:\n\t * - https://developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement/show\n\t * - https://developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement/showModal\n\t */\n\tmodal?: boolean;\n\t/**\n\t * Set what type of dismiss behavior closes the dialog\n\t * - 'none': Dialog can only be closed programmatically\n\t * - 'closerequest': Dialog closes on ESC key (default)\n\t * - 'any': Dialog closes on ESC key or clicking outside\n\t *\n\t * Docs: https://developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement/closedBy\n\t */\n\tclosedby?: ClosedBy;\n\t'close-button-label'?: string;\n}\n\n@guardedCustomElement('sds-dialog')\nexport class SDSDialog extends LitElement {\n\tstatic override styles = [styles];\n\n\t@property({ type: Boolean, reflect: true }) open: boolean = false;\n\t@property({ type: Boolean, reflect: true }) modal: boolean = false;\n\t@property({ type: String, reflect: true }) closedby: ClosedBy = 'closerequest';\n\t@property({ type: String, attribute: 'close-button-label' }) closeButtonLabel: string = 'Lukk dialogvindu';\n\n\t@query('dialog') private _dialog!: HTMLDialogElement;\n\n\t@queryAssignedElements({ slot: 'header', flatten: false }) private headerSlotElements!: Element[];\n\n\toverride firstUpdated(): void {\n\t\tthis._setupEventListeners();\n\t\tif (this.open) {\n\t\t\tthis._openDialog();\n\t\t}\n\t}\n\n\toverride updated(changedProperties: PropertyValues): void {\n\t\tif (!changedProperties.has('open')) {\n\t\t\treturn;\n\t\t}\n\t\tthis.open ? this._openDialog() : this._closeDialog();\n\t}\n\n\tprivate _setupEventListeners(): void {\n\t\tthis._dialog.addEventListener('close', this._handleClose);\n\t\tthis._dialog.addEventListener('cancel', this._handleCancel);\n\t\tthis._dialog.addEventListener('click', this._handleClick);\n\t\tthis._dialog.addEventListener('animationend', this._handleAutoFocus);\n\t}\n\n\tprivate _openDialog(): void {\n\t\tif (!this._dialog) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.modal ? this._dialog.showModal() : this._dialog.show();\n\t}\n\n\tprivate _closeDialog(): void {\n\t\tif (!this._dialog) {\n\t\t\treturn;\n\t\t}\n\t\tthis._dialog.close();\n\t}\n\n\tprivate readonly _handleClose = (): void => {\n\t\tthis.open = false;\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('sds-close', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t})\n\t\t);\n\t};\n\n\tprivate readonly _handleClick = (event: MouseEvent): void => {\n\t\tconst target = event.target as Element | null;\n\n\t\tif (target?.closest('[data-command=\"close\"]')) {\n\t\t\tthis._closeDialog();\n\t\t\treturn;\n\t\t}\n\n\t\t// Clicking the backdrop will have the dialog as the target in Safari/Chrome.\n\t\t// Firefox does not fire this callback when ::backdrop is clicked.\n\t\tif (target !== this._dialog) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.closedby !== 'any') {\n\t\t\treturn;\n\t\t}\n\n\t\t// Cast _dialog to its own type to avoid it being narrowed to never by TS.\n\t\t// The types defines that `closedBy` _is_ in dialog.\n\t\t// So, if it is not, it can't be that type and is cast to never.\n\t\t// Do this test to check if closedBy is supported in current browser.\n\t\tconst hasClosedBy = 'closedBy' in (this._dialog as typeof this._dialog);\n\t\tif (hasClosedBy) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Manual bounds checking for Safari as it does not (yet) support closedby=\"any\".\n\t\tconst { clientX: x, clientY: y } = event;\n\t\tconst { top, bottom, left, right } = this._dialog.getBoundingClientRect();\n\t\tconst clickedOutsideDialog = top > y || bottom < y || left > x || right < x;\n\t\tif (clickedOutsideDialog) {\n\t\t\tthis._closeDialog();\n\t\t}\n\t};\n\n\tprivate readonly _handleCancel = (event: Event): void => {\n\t\tif (this.closedby === 'none') {\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\tprivate readonly _handleAutoFocus = (): void => {\n\t\t// slot:not([name]) finds the default nameless slot\n\t\tconst contentSlotElements = this.shadowRoot?.querySelector<HTMLSlotElement>('slot:not([name])')?.assignedElements({ flatten: true });\n\t\tif (!contentSlotElements || contentSlotElements.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst elementToFocus = contentSlotElements.find((element) => {\n\t\t\treturn element.getAttribute('autofocus') != null;\n\t\t});\n\n\t\tif (!(elementToFocus instanceof HTMLElement)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (document.activeElement !== elementToFocus) {\n\t\t\telementToFocus.focus();\n\t\t}\n\t};\n\n\tpublic show(): void {\n\t\tthis.open = true;\n\t}\n\n\tpublic showModal(): void {\n\t\tthis.modal = true;\n\t\tthis.open = true;\n\t}\n\n\tpublic close(): void {\n\t\tthis.open = false;\n\t}\n\n\toverride render() {\n\t\tconst headerIsEmpty = this.headerSlotElements.length === 0;\n\t\treturn html`\n\t\t\t<dialog closedby=\"${this.closedby}\" class=${headerIsEmpty ? 'sds-dialog__empty-header' : ''}>\n\t\t\t\t<div class=\"sds-dialog__header\">\n\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t${this.closeButtonLabel\n\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t<sds-button class=\"sds-dialog__close-button\" icon variant=\"tertiary\" size=\"md\" data-command=\"close\" aria-label=\"${this.closeButtonLabel}\">\n\t\t\t\t\t\t\t\t\t<sds-icon name=\"close-material-outlined\" size=\"md\"></sds-icon>\n\t\t\t\t\t\t\t\t</sds-button>\n\t\t\t\t\t\t\t`\n\t\t\t\t\t\t: nothing}\n\t\t\t\t</div>\n\t\t\t\t<slot></slot>\n\t\t\t\t<slot name=\"footer\"></slot>\n\t\t\t</dialog>\n\t\t`;\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'sds-dialog': SDSDialog;\n\t}\n\tinterface GlobalEventHandlersEventMap {\n\t\t'sds-close': SheriffEvent;\n\t}\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sds-dialog.styles.d.ts","sourceRoot":"","sources":["../../src/sds-dialog/sds-dialog.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAgHlB,CAAC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
export const styles = css `
|
|
3
|
+
:host {
|
|
4
|
+
--_sds-dialog-background-color: var(--sds-dialog-background-color, var(--sds-color-surface-default, var(--sds-color-main-surface-default)));
|
|
5
|
+
--_sds-dialog-backdrop-color: var(--sds-dialog-backdrop-color, rgba(0, 0, 0, 0.5));
|
|
6
|
+
|
|
7
|
+
--_sds-dialog-border-color: var(--sds-dialog-border-color, var(--sds-color-border-subtle, var(--sds-color-main-border-subtle)));
|
|
8
|
+
--_sds-dialog-border-radius: var(--sds-dialog-border-radius, var(--sds-radius-md));
|
|
9
|
+
--_sds-dialog-border-width: var(--sds-dialog-border-width, var(--sds-border-sm));
|
|
10
|
+
|
|
11
|
+
--_sds-dialog-max-width: var(--sds-dialog-max-width, min(80ch, 100vw));
|
|
12
|
+
--_sds-dialog-max-height: var(--sds-dialog-max-height, calc(100dvh - var(--sds-spacing-lg)));
|
|
13
|
+
|
|
14
|
+
--_sds-dialog-padding-block: var(--sds-dialog-padding-block, var(--sds-spacing-sm));
|
|
15
|
+
--_sds-dialog-padding-inline: var(--sds-dialog-padding-inline, var(--sds-spacing-sm));
|
|
16
|
+
--_sds-dialog-gap: var(--sds-dialog-gap, var(--sds-spacing-xs));
|
|
17
|
+
|
|
18
|
+
--_sds-dialog-font-family: var(--sds-dialog-font-family, var(--sds-typography-font-family-roboto));
|
|
19
|
+
--_sds-dialog-text-color: var(--sds-dialog-text-color, var(--sds-color-text-default, var(--sds-color-main-text-default)));
|
|
20
|
+
|
|
21
|
+
--_sds-dialog-box-shadow: var(--sds-dialog-box-shadow, 0 4px 6px -1px rgba(0, 0, 0, 0.1));
|
|
22
|
+
|
|
23
|
+
--_sds-dialog-animation-duration: var(--sds-dialog-animation-duration, 200ms);
|
|
24
|
+
--_sds-dialog-close-button-offset: var(--sds-dialog-close-button-offset, var(--sds-spacing-3xs));
|
|
25
|
+
|
|
26
|
+
display: contents;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
dialog {
|
|
30
|
+
color: var(--_sds-dialog-text-color);
|
|
31
|
+
background-color: var(--_sds-dialog-background-color);
|
|
32
|
+
box-shadow: var(--_sds-dialog-box-shadow);
|
|
33
|
+
|
|
34
|
+
border: var(--_sds-dialog-border-width) solid var(--_sds-dialog-border-color);
|
|
35
|
+
border-radius: var(--_sds-dialog-border-radius);
|
|
36
|
+
|
|
37
|
+
font-family: var(--_sds-dialog-font-family);
|
|
38
|
+
|
|
39
|
+
max-width: var(--_sds-dialog-max-width);
|
|
40
|
+
max-height: var(--_sds-dialog-max-height);
|
|
41
|
+
|
|
42
|
+
overflow: auto;
|
|
43
|
+
padding: 0;
|
|
44
|
+
|
|
45
|
+
opacity: 0;
|
|
46
|
+
transform: translateY(-1rem);
|
|
47
|
+
animation: sds-dialog-fade-in var(--_sds-dialog-animation-duration) ease-out forwards;
|
|
48
|
+
|
|
49
|
+
&:focus-visible {
|
|
50
|
+
outline: 3px solid var(--sds-color-states-focus-outer);
|
|
51
|
+
outline-offset: 3px;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
&[open] {
|
|
55
|
+
display: flex;
|
|
56
|
+
flex-direction: column;
|
|
57
|
+
padding-block: var(--_sds-dialog-padding-block);
|
|
58
|
+
padding-inline: var(--_sds-dialog-padding-inline);
|
|
59
|
+
gap: var(--_sds-dialog-gap);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
&.sds-dialog__empty-header {
|
|
63
|
+
/* Set gap to 0 to collapse empty header */
|
|
64
|
+
--_sds-dialog-gap: var(--sds-dialog-gap, var(--sds-spacing-zero));
|
|
65
|
+
/* Set padding right to avoid overflowing the close button */
|
|
66
|
+
padding-right: var(--sds-dialog-padding-right, var(--sds-spacing-lg));
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
&::backdrop {
|
|
70
|
+
background-color: var(--_sds-dialog-backdrop-color);
|
|
71
|
+
/* @keyframes does not work for ::backdrop in Firefox, so use transition instead */
|
|
72
|
+
transition: opacity var(--_sds-dialog-animation-duration) ease-out;
|
|
73
|
+
opacity: 0;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
&[open]::backdrop {
|
|
77
|
+
opacity: 1;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
@keyframes sds-dialog-fade-in {
|
|
82
|
+
to {
|
|
83
|
+
opacity: 1;
|
|
84
|
+
transform: translateY(0);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.sds-dialog__close-button {
|
|
89
|
+
--sds-button-text-color: var(--sds-dialog-close-button-color, var(--sds-color-text-subtle, var(--sds-color-main-text-subtle)));
|
|
90
|
+
--sds-button-padding-inline: 0;
|
|
91
|
+
|
|
92
|
+
position: absolute;
|
|
93
|
+
top: var(--_sds-dialog-close-button-offset);
|
|
94
|
+
right: var(--_sds-dialog-close-button-offset);
|
|
95
|
+
z-index: 1;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.sds-dialog__header {
|
|
99
|
+
margin-right: var(--sds-spacing-lg);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
@media (max-width: 640px) {
|
|
103
|
+
:host {
|
|
104
|
+
--_sds-dialog-max-width: var(--sds-dialog-max-width, 100%);
|
|
105
|
+
--_sds-dialog-border-radius: var(--sds-dialog-border-radius, var(--sds-spacing-zero));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
@media (prefers-reduced-motion: reduce) {
|
|
110
|
+
:host {
|
|
111
|
+
--_sds-dialog-animation-duration: 0ms;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
`;
|
|
115
|
+
//# sourceMappingURL=sds-dialog.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sds-dialog.styles.js","sourceRoot":"","sources":["../../src/sds-dialog/sds-dialog.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgHxB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`\n\t:host {\n\t\t--_sds-dialog-background-color: var(--sds-dialog-background-color, var(--sds-color-surface-default, var(--sds-color-main-surface-default)));\n\t\t--_sds-dialog-backdrop-color: var(--sds-dialog-backdrop-color, rgba(0, 0, 0, 0.5));\n\n\t\t--_sds-dialog-border-color: var(--sds-dialog-border-color, var(--sds-color-border-subtle, var(--sds-color-main-border-subtle)));\n\t\t--_sds-dialog-border-radius: var(--sds-dialog-border-radius, var(--sds-radius-md));\n\t\t--_sds-dialog-border-width: var(--sds-dialog-border-width, var(--sds-border-sm));\n\n\t\t--_sds-dialog-max-width: var(--sds-dialog-max-width, min(80ch, 100vw));\n\t\t--_sds-dialog-max-height: var(--sds-dialog-max-height, calc(100dvh - var(--sds-spacing-lg)));\n\n\t\t--_sds-dialog-padding-block: var(--sds-dialog-padding-block, var(--sds-spacing-sm));\n\t\t--_sds-dialog-padding-inline: var(--sds-dialog-padding-inline, var(--sds-spacing-sm));\n\t\t--_sds-dialog-gap: var(--sds-dialog-gap, var(--sds-spacing-xs));\n\n\t\t--_sds-dialog-font-family: var(--sds-dialog-font-family, var(--sds-typography-font-family-roboto));\n\t\t--_sds-dialog-text-color: var(--sds-dialog-text-color, var(--sds-color-text-default, var(--sds-color-main-text-default)));\n\n\t\t--_sds-dialog-box-shadow: var(--sds-dialog-box-shadow, 0 4px 6px -1px rgba(0, 0, 0, 0.1));\n\n\t\t--_sds-dialog-animation-duration: var(--sds-dialog-animation-duration, 200ms);\n\t\t--_sds-dialog-close-button-offset: var(--sds-dialog-close-button-offset, var(--sds-spacing-3xs));\n\n\t\tdisplay: contents;\n\t}\n\n\tdialog {\n\t\tcolor: var(--_sds-dialog-text-color);\n\t\tbackground-color: var(--_sds-dialog-background-color);\n\t\tbox-shadow: var(--_sds-dialog-box-shadow);\n\n\t\tborder: var(--_sds-dialog-border-width) solid var(--_sds-dialog-border-color);\n\t\tborder-radius: var(--_sds-dialog-border-radius);\n\n\t\tfont-family: var(--_sds-dialog-font-family);\n\n\t\tmax-width: var(--_sds-dialog-max-width);\n\t\tmax-height: var(--_sds-dialog-max-height);\n\n\t\toverflow: auto;\n\t\tpadding: 0;\n\n\t\topacity: 0;\n\t\ttransform: translateY(-1rem);\n\t\tanimation: sds-dialog-fade-in var(--_sds-dialog-animation-duration) ease-out forwards;\n\n\t\t&:focus-visible {\n\t\t\toutline: 3px solid var(--sds-color-states-focus-outer);\n\t\t\toutline-offset: 3px;\n\t\t}\n\n\t\t&[open] {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tpadding-block: var(--_sds-dialog-padding-block);\n\t\t\tpadding-inline: var(--_sds-dialog-padding-inline);\n\t\t\tgap: var(--_sds-dialog-gap);\n\t\t}\n\n\t\t&.sds-dialog__empty-header {\n\t\t\t/* Set gap to 0 to collapse empty header */\n\t\t\t--_sds-dialog-gap: var(--sds-dialog-gap, var(--sds-spacing-zero));\n\t\t\t/* Set padding right to avoid overflowing the close button */\n\t\t\tpadding-right: var(--sds-dialog-padding-right, var(--sds-spacing-lg));\n\t\t}\n\n\t\t&::backdrop {\n\t\t\tbackground-color: var(--_sds-dialog-backdrop-color);\n\t\t\t/* @keyframes does not work for ::backdrop in Firefox, so use transition instead */\n\t\t\ttransition: opacity var(--_sds-dialog-animation-duration) ease-out;\n\t\t\topacity: 0;\n\t\t}\n\n\t\t&[open]::backdrop {\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t@keyframes sds-dialog-fade-in {\n\t\tto {\n\t\t\topacity: 1;\n\t\t\ttransform: translateY(0);\n\t\t}\n\t}\n\n\t.sds-dialog__close-button {\n\t\t--sds-button-text-color: var(--sds-dialog-close-button-color, var(--sds-color-text-subtle, var(--sds-color-main-text-subtle)));\n\t\t--sds-button-padding-inline: 0;\n\n\t\tposition: absolute;\n\t\ttop: var(--_sds-dialog-close-button-offset);\n\t\tright: var(--_sds-dialog-close-button-offset);\n\t\tz-index: 1;\n\t}\n\n\t.sds-dialog__header {\n\t\tmargin-right: var(--sds-spacing-lg);\n\t}\n\n\t@media (max-width: 640px) {\n\t\t:host {\n\t\t\t--_sds-dialog-max-width: var(--sds-dialog-max-width, 100%);\n\t\t\t--_sds-dialog-border-radius: var(--sds-dialog-border-radius, var(--sds-spacing-zero));\n\t\t}\n\t}\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\t:host {\n\t\t\t--_sds-dialog-animation-duration: 0ms;\n\t\t}\n\t}\n`;\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import { SDS_SIZES } from '../types';
|
|
3
|
+
type Level = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
|
|
4
|
+
type DisplaySize = 'l' | 'm' | 's' | SDS_SIZES;
|
|
5
|
+
export interface SDSHeadingProps {
|
|
6
|
+
level?: Level;
|
|
7
|
+
size?: DisplaySize;
|
|
8
|
+
}
|
|
9
|
+
export declare class SDSHeadingComponent extends LitElement {
|
|
10
|
+
static styles: import("lit").CSSResult[];
|
|
11
|
+
level: SDSHeadingProps['level'];
|
|
12
|
+
size?: SDSHeadingProps['size'];
|
|
13
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=sds-heading.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sds-heading.component.d.ts","sourceRoot":"","sources":["../../src/sds-heading/sds-heading.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAIvC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,KAAK,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACrD,KAAK,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,CAAC,EAAE,WAAW,CAAC;CACnB;AAED,qBAAa,mBAAoB,SAAQ,UAAU;IAClD,OAAgB,MAAM,4BAAY;IAES,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,CAAQ;IACvC,IAAI,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAEjE,MAAM;CA2Bf"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { LitElement, html } from 'lit';
|
|
8
|
+
import { property } from 'lit/decorators.js';
|
|
9
|
+
import { classMap } from 'lit/directives/class-map.js';
|
|
10
|
+
import { styles } from './sds-heading.styles';
|
|
11
|
+
export class SDSHeadingComponent extends LitElement {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.level = 'h1';
|
|
15
|
+
}
|
|
16
|
+
render() {
|
|
17
|
+
const headingClasses = {
|
|
18
|
+
'sds-heading': true,
|
|
19
|
+
'sds-heading--xl': this.size === 'xl',
|
|
20
|
+
'sds-heading--lg': this.size === 'l' || this.size === 'lg',
|
|
21
|
+
'sds-heading--md': this.size === 'm' || this.size === 'md',
|
|
22
|
+
'sds-heading--sm': this.size === 's' || this.size === 'sm',
|
|
23
|
+
'sds-heading--xs': this.size === 'xs',
|
|
24
|
+
};
|
|
25
|
+
switch (this.level?.toLowerCase()) {
|
|
26
|
+
case 'h1':
|
|
27
|
+
return html `<h1 class=${classMap(headingClasses)}><slot></slot></h1>`;
|
|
28
|
+
case 'h2':
|
|
29
|
+
return html `<h2 class=${classMap(headingClasses)}><slot></slot></h2>`;
|
|
30
|
+
case 'h3':
|
|
31
|
+
return html `<h3 class=${classMap(headingClasses)}><slot></slot></h3>`;
|
|
32
|
+
case 'h4':
|
|
33
|
+
return html `<h4 class=${classMap(headingClasses)}><slot></slot></h4>`;
|
|
34
|
+
case 'h5':
|
|
35
|
+
return html `<h5 class=${classMap(headingClasses)}><slot></slot></h5>`;
|
|
36
|
+
case 'h6':
|
|
37
|
+
return html `<h6 class=${classMap(headingClasses)}><slot></slot></h6>`;
|
|
38
|
+
default:
|
|
39
|
+
return html `<h1 class=${classMap(headingClasses)}><slot></slot></h1>`;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
SDSHeadingComponent.styles = [styles];
|
|
44
|
+
__decorate([
|
|
45
|
+
property({ type: String, reflect: true })
|
|
46
|
+
], SDSHeadingComponent.prototype, "level", void 0);
|
|
47
|
+
__decorate([
|
|
48
|
+
property({ type: String, reflect: true })
|
|
49
|
+
], SDSHeadingComponent.prototype, "size", void 0);
|
|
50
|
+
//# sourceMappingURL=sds-heading.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sds-heading.component.js","sourceRoot":"","sources":["../../src/sds-heading/sds-heading.component.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAW9C,MAAM,OAAO,mBAAoB,SAAQ,UAAU;IAAnD;;QAG4C,UAAK,GAA6B,IAAI,CAAC;IA8BnF,CAAC;IA3BS,MAAM;QACd,MAAM,cAAc,GAAG;YACtB,aAAa,EAAE,IAAI;YACnB,iBAAiB,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI;YACrC,iBAAiB,EAAE,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;YAC1D,iBAAiB,EAAE,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;YAC1D,iBAAiB,EAAE,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;YAC1D,iBAAiB,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI;SACrC,CAAC;QAEF,QAAQ,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC;YACnC,KAAK,IAAI;gBACR,OAAO,IAAI,CAAA,aAAa,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC;YACvE,KAAK,IAAI;gBACR,OAAO,IAAI,CAAA,aAAa,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC;YACvE,KAAK,IAAI;gBACR,OAAO,IAAI,CAAA,aAAa,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC;YACvE,KAAK,IAAI;gBACR,OAAO,IAAI,CAAA,aAAa,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC;YACvE,KAAK,IAAI;gBACR,OAAO,IAAI,CAAA,aAAa,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC;YACvE,KAAK,IAAI;gBACR,OAAO,IAAI,CAAA,aAAa,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC;YACvE;gBACC,OAAO,IAAI,CAAA,aAAa,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC;QACxE,CAAC;IACF,CAAC;;AA/Be,0BAAM,GAAG,CAAC,MAAM,CAAC,AAAX,CAAY;AAES;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;kDAAwC;AACvC;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iDAAgC","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styles } from './sds-heading.styles';\nimport { SDS_SIZES } from '../types';\n\ntype Level = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\ntype DisplaySize = 'l' | 'm' | 's' | SDS_SIZES;\n\nexport interface SDSHeadingProps {\n\tlevel?: Level;\n\tsize?: DisplaySize;\n}\n\nexport class SDSHeadingComponent extends LitElement {\n\tstatic override styles = [styles];\n\n\t@property({ type: String, reflect: true }) level: SDSHeadingProps['level'] = 'h1';\n\t@property({ type: String, reflect: true }) size?: SDSHeadingProps['size'];\n\n\toverride render() {\n\t\tconst headingClasses = {\n\t\t\t'sds-heading': true,\n\t\t\t'sds-heading--xl': this.size === 'xl',\n\t\t\t'sds-heading--lg': this.size === 'l' || this.size === 'lg',\n\t\t\t'sds-heading--md': this.size === 'm' || this.size === 'md',\n\t\t\t'sds-heading--sm': this.size === 's' || this.size === 'sm',\n\t\t\t'sds-heading--xs': this.size === 'xs',\n\t\t};\n\n\t\tswitch (this.level?.toLowerCase()) {\n\t\t\tcase 'h1':\n\t\t\t\treturn html`<h1 class=${classMap(headingClasses)}><slot></slot></h1>`;\n\t\t\tcase 'h2':\n\t\t\t\treturn html`<h2 class=${classMap(headingClasses)}><slot></slot></h2>`;\n\t\t\tcase 'h3':\n\t\t\t\treturn html`<h3 class=${classMap(headingClasses)}><slot></slot></h3>`;\n\t\t\tcase 'h4':\n\t\t\t\treturn html`<h4 class=${classMap(headingClasses)}><slot></slot></h4>`;\n\t\t\tcase 'h5':\n\t\t\t\treturn html`<h5 class=${classMap(headingClasses)}><slot></slot></h5>`;\n\t\t\tcase 'h6':\n\t\t\t\treturn html`<h6 class=${classMap(headingClasses)}><slot></slot></h6>`;\n\t\t\tdefault:\n\t\t\t\treturn html`<h1 class=${classMap(headingClasses)}><slot></slot></h1>`;\n\t\t}\n\t}\n}\n"]}
|
|
@@ -1,21 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
type Level = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
|
|
4
|
-
type DisplaySize = 'l' | 'm' | 's' | SDS_SIZES;
|
|
5
|
-
export interface SDSHeadingProps {
|
|
6
|
-
level?: Level;
|
|
7
|
-
size?: DisplaySize;
|
|
8
|
-
}
|
|
9
|
-
export declare class SDSHeading extends LitElement {
|
|
10
|
-
static styles: import("lit").CSSResult[];
|
|
11
|
-
level: SDSHeadingProps['level'];
|
|
12
|
-
size?: SDSHeadingProps['size'];
|
|
13
|
-
render(): import("lit-html").TemplateResult<1>;
|
|
1
|
+
import { SDSHeadingComponent } from './sds-heading.component';
|
|
2
|
+
export declare class SDSHeading extends SDSHeadingComponent {
|
|
14
3
|
}
|
|
15
4
|
declare global {
|
|
16
5
|
interface HTMLElementTagNameMap {
|
|
17
6
|
'sds-heading': SDSHeading;
|
|
18
7
|
}
|
|
19
8
|
}
|
|
20
|
-
export {};
|
|
21
9
|
//# sourceMappingURL=sds-heading.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sds-heading.d.ts","sourceRoot":"","sources":["../../src/sds-heading/sds-heading.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sds-heading.d.ts","sourceRoot":"","sources":["../../src/sds-heading/sds-heading.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBACa,UAAW,SAAQ,mBAAmB;CAAG;AAEtD,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,aAAa,EAAE,UAAU,CAAC;KAC1B;CACD"}
|
|
@@ -4,50 +4,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { LitElement, html } from 'lit';
|
|
8
|
-
import { property } from 'lit/decorators.js';
|
|
9
|
-
import { classMap } from 'lit/directives/class-map.js';
|
|
10
7
|
import { guardedCustomElement } from '../utils/guarded-custom-element';
|
|
11
|
-
import {
|
|
12
|
-
let SDSHeading = class SDSHeading extends
|
|
13
|
-
constructor() {
|
|
14
|
-
super(...arguments);
|
|
15
|
-
this.level = 'h1';
|
|
16
|
-
}
|
|
17
|
-
render() {
|
|
18
|
-
const headingClasses = {
|
|
19
|
-
'sds-heading': true,
|
|
20
|
-
'sds-heading--xl': this.size === 'xl',
|
|
21
|
-
'sds-heading--lg': this.size === 'l' || this.size === 'lg',
|
|
22
|
-
'sds-heading--md': this.size === 'm' || this.size === 'md',
|
|
23
|
-
'sds-heading--sm': this.size === 's' || this.size === 'sm',
|
|
24
|
-
'sds-heading--xs': this.size === 'xs',
|
|
25
|
-
};
|
|
26
|
-
switch (this.level?.toLowerCase()) {
|
|
27
|
-
case 'h1':
|
|
28
|
-
return html `<h1 class=${classMap(headingClasses)}><slot></slot></h1>`;
|
|
29
|
-
case 'h2':
|
|
30
|
-
return html `<h2 class=${classMap(headingClasses)}><slot></slot></h2>`;
|
|
31
|
-
case 'h3':
|
|
32
|
-
return html `<h3 class=${classMap(headingClasses)}><slot></slot></h3>`;
|
|
33
|
-
case 'h4':
|
|
34
|
-
return html `<h4 class=${classMap(headingClasses)}><slot></slot></h4>`;
|
|
35
|
-
case 'h5':
|
|
36
|
-
return html `<h5 class=${classMap(headingClasses)}><slot></slot></h5>`;
|
|
37
|
-
case 'h6':
|
|
38
|
-
return html `<h6 class=${classMap(headingClasses)}><slot></slot></h6>`;
|
|
39
|
-
default:
|
|
40
|
-
return html `<h1 class=${classMap(headingClasses)}><slot></slot></h1>`;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
8
|
+
import { SDSHeadingComponent } from './sds-heading.component';
|
|
9
|
+
let SDSHeading = class SDSHeading extends SDSHeadingComponent {
|
|
43
10
|
};
|
|
44
|
-
SDSHeading.styles = [styles];
|
|
45
|
-
__decorate([
|
|
46
|
-
property({ type: String, reflect: true })
|
|
47
|
-
], SDSHeading.prototype, "level", void 0);
|
|
48
|
-
__decorate([
|
|
49
|
-
property({ type: String, reflect: true })
|
|
50
|
-
], SDSHeading.prototype, "size", void 0);
|
|
51
11
|
SDSHeading = __decorate([
|
|
52
12
|
guardedCustomElement('sds-heading')
|
|
53
13
|
], SDSHeading);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sds-heading.js","sourceRoot":"","sources":["../../src/sds-heading/sds-heading.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sds-heading.js","sourceRoot":"","sources":["../../src/sds-heading/sds-heading.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGvD,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,mBAAmB;CAAG,CAAA;AAAzC,UAAU;IADtB,oBAAoB,CAAC,aAAa,CAAC;GACvB,UAAU,CAA+B","sourcesContent":["import { guardedCustomElement } from '../utils/guarded-custom-element';\nimport { SDSHeadingComponent } from './sds-heading.component';\n\n@guardedCustomElement('sds-heading')\nexport class SDSHeading extends SDSHeadingComponent {}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'sds-heading': SDSHeading;\n\t}\n}\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import { type IconPromise } from './sds-icon-loader';
|
|
3
|
+
import { SDS_SIZES } from '../types';
|
|
4
|
+
type IconSizes = Extract<SDS_SIZES, 'sm' | 'md' | 'lg'>;
|
|
5
|
+
export interface SDSIconProps {
|
|
6
|
+
name?: string;
|
|
7
|
+
size?: 's' | 'm' | IconSizes;
|
|
8
|
+
color?: string;
|
|
9
|
+
label?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare class SDSIconComponent extends LitElement {
|
|
12
|
+
static styles: import("lit").CSSResult[];
|
|
13
|
+
private static readonly iconLoader;
|
|
14
|
+
static setLoadLocal(loadLocal: boolean): void;
|
|
15
|
+
static registerResolver(resolver: IconPromise): void;
|
|
16
|
+
name: string;
|
|
17
|
+
size?: 's' | 'm' | IconSizes;
|
|
18
|
+
color: string;
|
|
19
|
+
label: string;
|
|
20
|
+
private svg;
|
|
21
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
22
|
+
/**
|
|
23
|
+
* Wraps the icon loader's callback in a promise. Even if the loader
|
|
24
|
+
* calls the callback synchronously, awaiting the promise defers the
|
|
25
|
+
* property update to the next microtask.
|
|
26
|
+
*/
|
|
27
|
+
private fetchIcon;
|
|
28
|
+
updated(changedProperties: Map<string | number | symbol, unknown>): void;
|
|
29
|
+
}
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=sds-icon.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sds-icon.component.d.ts","sourceRoot":"","sources":["../../src/sds-icon/sds-icon.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAIvC,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AACxD,MAAM,WAAW,YAAY;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,gBAAiB,SAAQ,UAAU;IAC/C,OAAgB,MAAM,4BAAY;IAElC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAEzD,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAI7C,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAIT,IAAI,EAAE,MAAM,CAAM;IAClB,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAM;IACnB,KAAK,EAAE,MAAM,CAAM;IAErD,OAAO,CAAC,GAAG,CAAc;IAEzB,MAAM;IAQf;;;;OAIG;YACW,SAAS;IAWd,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAMjF"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { LitElement, html } from 'lit';
|
|
8
|
+
import { property, state } from 'lit/decorators.js';
|
|
9
|
+
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
10
|
+
import { unsafeSVG } from 'lit/directives/unsafe-svg.js';
|
|
11
|
+
import { SDSIconLoader } from './sds-icon-loader';
|
|
12
|
+
import { styles } from './sds-icon.styles';
|
|
13
|
+
export class SDSIconComponent extends LitElement {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
this.name = '';
|
|
17
|
+
this.color = '';
|
|
18
|
+
this.label = '';
|
|
19
|
+
this.svg = '';
|
|
20
|
+
}
|
|
21
|
+
static setLoadLocal(loadLocal) {
|
|
22
|
+
this.iconLoader.loadLocal = loadLocal;
|
|
23
|
+
}
|
|
24
|
+
static registerResolver(resolver) {
|
|
25
|
+
this.iconLoader.resolver = resolver;
|
|
26
|
+
}
|
|
27
|
+
render() {
|
|
28
|
+
return html `
|
|
29
|
+
<div class="sds-icon" role="${ifDefined(this.label ? 'img' : undefined)}" style="${ifDefined(this.color ? `color:${this.color}` : undefined)}" aria-label="${ifDefined(this.label)}">
|
|
30
|
+
${this.name ? html `<slot aria-hidden="true">${unsafeSVG(this.svg)}</slot>` : html `<slot aria-hidden="true"></slot>`}
|
|
31
|
+
</div>
|
|
32
|
+
`;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Wraps the icon loader's callback in a promise. Even if the loader
|
|
36
|
+
* calls the callback synchronously, awaiting the promise defers the
|
|
37
|
+
* property update to the next microtask.
|
|
38
|
+
*/
|
|
39
|
+
async fetchIcon() {
|
|
40
|
+
if (!this.name) {
|
|
41
|
+
this.svg = '';
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const svg = await new Promise((resolve) => {
|
|
45
|
+
SDSIconComponent.iconLoader.resolve(this.name, resolve);
|
|
46
|
+
});
|
|
47
|
+
this.svg = svg;
|
|
48
|
+
}
|
|
49
|
+
updated(changedProperties) {
|
|
50
|
+
super.updated(changedProperties);
|
|
51
|
+
if (changedProperties.has('name') && this.name) {
|
|
52
|
+
void this.fetchIcon();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
SDSIconComponent.styles = [styles];
|
|
57
|
+
SDSIconComponent.iconLoader = new SDSIconLoader();
|
|
58
|
+
__decorate([
|
|
59
|
+
property({ type: String, reflect: true })
|
|
60
|
+
], SDSIconComponent.prototype, "name", void 0);
|
|
61
|
+
__decorate([
|
|
62
|
+
property({ type: String, reflect: true })
|
|
63
|
+
], SDSIconComponent.prototype, "size", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
property({ type: String, reflect: true })
|
|
66
|
+
], SDSIconComponent.prototype, "color", void 0);
|
|
67
|
+
__decorate([
|
|
68
|
+
property({ type: String, reflect: true })
|
|
69
|
+
], SDSIconComponent.prototype, "label", void 0);
|
|
70
|
+
__decorate([
|
|
71
|
+
state()
|
|
72
|
+
], SDSIconComponent.prototype, "svg", void 0);
|
|
73
|
+
//# sourceMappingURL=sds-icon.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sds-icon.component.js","sourceRoot":"","sources":["../../src/sds-icon/sds-icon.component.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAW3C,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAAhD;;QAa4C,SAAI,GAAW,EAAE,CAAC;QAElB,UAAK,GAAW,EAAE,CAAC;QACnB,UAAK,GAAW,EAAE,CAAC;QAE7C,QAAG,GAAW,EAAE,CAAC;IAgCnC,CAAC;IA7CA,MAAM,CAAC,YAAY,CAAC,SAAkB;QACrC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,QAAqB;QAC5C,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACrC,CAAC;IASQ,MAAM;QACd,OAAO,IAAI,CAAA;iCACoB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;MAC/K,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA,4BAA4B,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA,kCAAkC;;GAEpH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,SAAS;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;YACd,OAAO;QACR,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;YACjD,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,CAAC;IAEQ,OAAO,CAAC,iBAAyD;QACzE,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACjC,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAChD,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,CAAC;IACF,CAAC;;AAhDe,uBAAM,GAAG,CAAC,MAAM,CAAC,AAAX,CAAY;AAEV,2BAAU,GAAG,IAAI,aAAa,EAAE,AAAtB,CAAuB;AAUd;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;8CAAmB;AAClB;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;8CAA8B;AAC7B;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CAAoB;AACnB;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CAAoB;AAE7C;IAAhB,KAAK,EAAE;6CAA0B","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { SDSIconLoader, type IconPromise } from './sds-icon-loader';\nimport { styles } from './sds-icon.styles';\nimport { SDS_SIZES } from '../types';\n\ntype IconSizes = Extract<SDS_SIZES, 'sm' | 'md' | 'lg'>;\nexport interface SDSIconProps {\n\tname?: string;\n\tsize?: 's' | 'm' | IconSizes;\n\tcolor?: string;\n\tlabel?: string;\n}\n\nexport class SDSIconComponent extends LitElement {\n\tstatic override styles = [styles];\n\n\tprivate static readonly iconLoader = new SDSIconLoader();\n\n\tstatic setLoadLocal(loadLocal: boolean): void {\n\t\tthis.iconLoader.loadLocal = loadLocal;\n\t}\n\n\tstatic registerResolver(resolver: IconPromise): void {\n\t\tthis.iconLoader.resolver = resolver;\n\t}\n\n\t@property({ type: String, reflect: true }) name: string = '';\n\t@property({ type: String, reflect: true }) size?: 's' | 'm' | IconSizes;\n\t@property({ type: String, reflect: true }) color: string = '';\n\t@property({ type: String, reflect: true }) label: string = '';\n\n\t@state() private svg: string = '';\n\n\toverride render() {\n\t\treturn html`\n\t\t\t<div class=\"sds-icon\" role=\"${ifDefined(this.label ? 'img' : undefined)}\" style=\"${ifDefined(this.color ? `color:${this.color}` : undefined)}\" aria-label=\"${ifDefined(this.label)}\">\n\t\t\t\t${this.name ? html`<slot aria-hidden=\"true\">${unsafeSVG(this.svg)}</slot>` : html`<slot aria-hidden=\"true\"></slot>`}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t/**\n\t * Wraps the icon loader's callback in a promise. Even if the loader\n\t * calls the callback synchronously, awaiting the promise defers the\n\t * property update to the next microtask.\n\t */\n\tprivate async fetchIcon() {\n\t\tif (!this.name) {\n\t\t\tthis.svg = '';\n\t\t\treturn;\n\t\t}\n\t\tconst svg = await new Promise<string>((resolve) => {\n\t\t\tSDSIconComponent.iconLoader.resolve(this.name, resolve);\n\t\t});\n\t\tthis.svg = svg;\n\t}\n\n\toverride updated(changedProperties: Map<string | number | symbol, unknown>): void {\n\t\tsuper.updated(changedProperties);\n\t\tif (changedProperties.has('name') && this.name) {\n\t\t\tvoid this.fetchIcon();\n\t\t}\n\t}\n}\n"]}
|
|
@@ -1,36 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { SDS_SIZES } from '../types';
|
|
4
|
-
type IconSizes = Extract<SDS_SIZES, 'sm' | 'md' | 'lg'>;
|
|
5
|
-
export interface SDSIconProps {
|
|
6
|
-
name?: string;
|
|
7
|
-
size?: 's' | 'm' | IconSizes;
|
|
8
|
-
color?: string;
|
|
9
|
-
label?: string;
|
|
10
|
-
}
|
|
11
|
-
export declare class SDSIcon extends LitElement {
|
|
12
|
-
static styles: import("lit").CSSResult[];
|
|
13
|
-
private static readonly iconLoader;
|
|
14
|
-
static setLoadLocal(loadLocal: boolean): void;
|
|
15
|
-
static registerResolver(resolver: IconPromise): void;
|
|
16
|
-
name: string;
|
|
17
|
-
size?: 's' | 'm' | IconSizes;
|
|
18
|
-
color: string;
|
|
19
|
-
label: string;
|
|
20
|
-
private svg;
|
|
21
|
-
render(): import("lit-html").TemplateResult<1>;
|
|
22
|
-
/**
|
|
23
|
-
* Wraps the icon loader's callback in a promise. Even if the loader
|
|
24
|
-
* calls the callback synchronously, awaiting the promise defers the
|
|
25
|
-
* property update to the next microtask.
|
|
26
|
-
*/
|
|
27
|
-
private fetchIcon;
|
|
28
|
-
updated(changedProperties: Map<string | number | symbol, unknown>): void;
|
|
1
|
+
import { SDSIconComponent } from './sds-icon.component';
|
|
2
|
+
export declare class SDSIcon extends SDSIconComponent {
|
|
29
3
|
}
|
|
30
4
|
declare global {
|
|
31
5
|
interface HTMLElementTagNameMap {
|
|
32
6
|
'sds-icon': SDSIcon;
|
|
33
7
|
}
|
|
34
8
|
}
|
|
35
|
-
export {};
|
|
36
9
|
//# sourceMappingURL=sds-icon.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sds-icon.d.ts","sourceRoot":"","sources":["../../src/sds-icon/sds-icon.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sds-icon.d.ts","sourceRoot":"","sources":["../../src/sds-icon/sds-icon.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,qBACa,OAAQ,SAAQ,gBAAgB;CAAG;AAEhD,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,UAAU,EAAE,OAAO,CAAC;KACpB;CACD"}
|
|
@@ -4,75 +4,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
var SDSIcon_1;
|
|
8
|
-
import { LitElement, html } from 'lit';
|
|
9
|
-
import { property, state } from 'lit/decorators.js';
|
|
10
|
-
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
11
|
-
import { unsafeSVG } from 'lit/directives/unsafe-svg.js';
|
|
12
|
-
import { SDSIconLoader } from './sds-icon-loader';
|
|
13
7
|
import { guardedCustomElement } from '../utils/guarded-custom-element';
|
|
14
|
-
import {
|
|
15
|
-
let SDSIcon =
|
|
16
|
-
constructor() {
|
|
17
|
-
super(...arguments);
|
|
18
|
-
this.name = '';
|
|
19
|
-
this.color = '';
|
|
20
|
-
this.label = '';
|
|
21
|
-
this.svg = '';
|
|
22
|
-
}
|
|
23
|
-
static setLoadLocal(loadLocal) {
|
|
24
|
-
this.iconLoader.loadLocal = loadLocal;
|
|
25
|
-
}
|
|
26
|
-
static registerResolver(resolver) {
|
|
27
|
-
this.iconLoader.resolver = resolver;
|
|
28
|
-
}
|
|
29
|
-
render() {
|
|
30
|
-
return html `
|
|
31
|
-
<div class="sds-icon" role="${ifDefined(this.label ? 'img' : undefined)}" style="${ifDefined(this.color ? `color:${this.color}` : undefined)}" aria-label="${ifDefined(this.label)}">
|
|
32
|
-
${this.name ? html `<slot aria-hidden="true">${unsafeSVG(this.svg)}</slot>` : html `<slot aria-hidden="true"></slot>`}
|
|
33
|
-
</div>
|
|
34
|
-
`;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Wraps the icon loader's callback in a promise. Even if the loader
|
|
38
|
-
* calls the callback synchronously, awaiting the promise defers the
|
|
39
|
-
* property update to the next microtask.
|
|
40
|
-
*/
|
|
41
|
-
async fetchIcon() {
|
|
42
|
-
if (!this.name) {
|
|
43
|
-
this.svg = '';
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
const svg = await new Promise((resolve) => {
|
|
47
|
-
SDSIcon_1.iconLoader.resolve(this.name, resolve);
|
|
48
|
-
});
|
|
49
|
-
this.svg = svg;
|
|
50
|
-
}
|
|
51
|
-
updated(changedProperties) {
|
|
52
|
-
super.updated(changedProperties);
|
|
53
|
-
if (changedProperties.has('name') && this.name) {
|
|
54
|
-
void this.fetchIcon();
|
|
55
|
-
}
|
|
56
|
-
}
|
|
8
|
+
import { SDSIconComponent } from './sds-icon.component';
|
|
9
|
+
let SDSIcon = class SDSIcon extends SDSIconComponent {
|
|
57
10
|
};
|
|
58
|
-
SDSIcon
|
|
59
|
-
SDSIcon.iconLoader = new SDSIconLoader();
|
|
60
|
-
__decorate([
|
|
61
|
-
property({ type: String, reflect: true })
|
|
62
|
-
], SDSIcon.prototype, "name", void 0);
|
|
63
|
-
__decorate([
|
|
64
|
-
property({ type: String, reflect: true })
|
|
65
|
-
], SDSIcon.prototype, "size", void 0);
|
|
66
|
-
__decorate([
|
|
67
|
-
property({ type: String, reflect: true })
|
|
68
|
-
], SDSIcon.prototype, "color", void 0);
|
|
69
|
-
__decorate([
|
|
70
|
-
property({ type: String, reflect: true })
|
|
71
|
-
], SDSIcon.prototype, "label", void 0);
|
|
72
|
-
__decorate([
|
|
73
|
-
state()
|
|
74
|
-
], SDSIcon.prototype, "svg", void 0);
|
|
75
|
-
SDSIcon = SDSIcon_1 = __decorate([
|
|
11
|
+
SDSIcon = __decorate([
|
|
76
12
|
guardedCustomElement('sds-icon')
|
|
77
13
|
], SDSIcon);
|
|
78
14
|
export { SDSIcon };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sds-icon.js","sourceRoot":"","sources":["../../src/sds-icon/sds-icon.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sds-icon.js","sourceRoot":"","sources":["../../src/sds-icon/sds-icon.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGjD,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,gBAAgB;CAAG,CAAA;AAAnC,OAAO;IADnB,oBAAoB,CAAC,UAAU,CAAC;GACpB,OAAO,CAA4B","sourcesContent":["import { guardedCustomElement } from '../utils/guarded-custom-element';\nimport { SDSIconComponent } from './sds-icon.component';\n\n@guardedCustomElement('sds-icon')\nexport class SDSIcon extends SDSIconComponent {}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'sds-icon': SDSIcon;\n\t}\n}\n"]}
|
|
@@ -19,6 +19,7 @@ export declare class SDSRadio extends LitElement {
|
|
|
19
19
|
static styles: import("lit").CSSResult[];
|
|
20
20
|
static formAssociated: boolean;
|
|
21
21
|
readonly internals: ElementInternals;
|
|
22
|
+
static shadowRootOptions: ShadowRootInit;
|
|
22
23
|
required: SDSRadioProps['required'];
|
|
23
24
|
label: SDSRadioProps['label'];
|
|
24
25
|
hideLabel: SDSRadioProps['hide-label'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sds-radio.d.ts","sourceRoot":"","sources":["../../src/sds-radio/sds-radio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAiB,MAAM,KAAK,CAAC;AAMhE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AAExD,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,qBACa,QAAS,SAAQ,UAAU;IAEvC,OAAgB,MAAM,4BAAY;IAElC,MAAM,CAAC,cAAc,UAAQ;IAC7B,SAAgB,SAAS,EAAE,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"sds-radio.d.ts","sourceRoot":"","sources":["../../src/sds-radio/sds-radio.ts"],"names":[],"mappings":"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"}
|