@synergy-design-system/components 1.0.0-main.11 → 1.0.0-main.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/chunks/chunk.2XZKXVMR.js +44 -0
  2. package/dist/chunks/chunk.2XZKXVMR.js.map +7 -0
  3. package/dist/chunks/{chunk.HLUOHJUC.js → chunk.7QGGFKPO.js} +11 -9
  4. package/dist/chunks/{chunk.HLUOHJUC.js.map → chunk.7QGGFKPO.js.map} +1 -1
  5. package/dist/chunks/{chunk.3XRGNU3R.js → chunk.FKB4BI2F.js} +2 -2
  6. package/dist/chunks/chunk.FLF2E2W4.js +360 -0
  7. package/dist/chunks/chunk.FLF2E2W4.js.map +7 -0
  8. package/dist/chunks/{chunk.IFBY43YE.js → chunk.FVSP4LXX.js} +3 -3
  9. package/dist/chunks/chunk.FVSP4LXX.js.map +7 -0
  10. package/dist/chunks/chunk.HOGDOKQS.js +224 -0
  11. package/dist/chunks/chunk.HOGDOKQS.js.map +7 -0
  12. package/dist/chunks/chunk.J44T4LO6.js +189 -0
  13. package/dist/chunks/chunk.J44T4LO6.js.map +7 -0
  14. package/dist/chunks/{chunk.C4FLGZ7E.js → chunk.KALIQJUH.js} +5 -5
  15. package/dist/chunks/{chunk.KXCGB2XT.js → chunk.LJVC6UEV.js} +9 -36
  16. package/dist/chunks/{chunk.KXCGB2XT.js.map → chunk.LJVC6UEV.js.map} +4 -4
  17. package/dist/chunks/chunk.MFFJYORB.js +137 -0
  18. package/dist/chunks/chunk.MFFJYORB.js.map +7 -0
  19. package/dist/chunks/chunk.MMNWMRST.js +12 -0
  20. package/dist/chunks/chunk.MMNWMRST.js.map +7 -0
  21. package/dist/chunks/chunk.NXKZDAMQ.js +12 -0
  22. package/dist/chunks/chunk.NXKZDAMQ.js.map +7 -0
  23. package/dist/chunks/{chunk.EFGGZW6Y.js → chunk.SQTGI355.js} +12 -30
  24. package/dist/chunks/{chunk.EFGGZW6Y.js.map → chunk.SQTGI355.js.map} +3 -3
  25. package/dist/chunks/chunk.T5JJNDG6.js +12 -0
  26. package/dist/chunks/chunk.T5JJNDG6.js.map +7 -0
  27. package/dist/chunks/{chunk.4OMRXGQ5.js → chunk.TKXG7VM3.js} +2 -2
  28. package/dist/chunks/{chunk.MRBFJWMS.js → chunk.UFEBKPYW.js} +2 -2
  29. package/dist/chunks/{chunk.MRBFJWMS.js.map → chunk.UFEBKPYW.js.map} +1 -1
  30. package/dist/chunks/chunk.VNC7HKGP.js +123 -0
  31. package/dist/chunks/chunk.VNC7HKGP.js.map +7 -0
  32. package/dist/chunks/chunk.VZ7S7YYN.js +34 -0
  33. package/dist/chunks/chunk.VZ7S7YYN.js.map +7 -0
  34. package/dist/chunks/{chunk.Y7DVVKVJ.js → chunk.WANL6A7U.js} +5 -123
  35. package/dist/chunks/{chunk.Y7DVVKVJ.js.map → chunk.WANL6A7U.js.map} +4 -4
  36. package/dist/chunks/chunk.WFAJR3FN.js +25 -0
  37. package/dist/chunks/chunk.WFAJR3FN.js.map +7 -0
  38. package/dist/chunks/chunk.YBIBWRKC.js +19 -0
  39. package/dist/chunks/chunk.YBIBWRKC.js.map +7 -0
  40. package/dist/chunks/{chunk.2NHBIE4V.js → chunk.YTS5TRJZ.js} +2 -2
  41. package/dist/components/button/button.component.js +10 -9
  42. package/dist/components/button/button.custom.styles.js +1 -1
  43. package/dist/components/button/button.js +11 -10
  44. package/dist/components/button/button.styles.js +2 -2
  45. package/dist/components/checkbox/checkbox.component.d.ts +93 -0
  46. package/dist/components/checkbox/checkbox.component.js +21 -0
  47. package/dist/components/checkbox/checkbox.component.js.map +7 -0
  48. package/dist/components/checkbox/checkbox.custom.styles.js +3 -6
  49. package/dist/components/checkbox/checkbox.custom.styles.js.map +3 -3
  50. package/dist/components/checkbox/checkbox.d.ts +8 -0
  51. package/dist/components/checkbox/checkbox.js +22 -0
  52. package/dist/components/checkbox/checkbox.js.map +7 -0
  53. package/dist/components/checkbox/checkbox.styles.d.ts +2 -0
  54. package/dist/components/checkbox/checkbox.styles.js +10 -0
  55. package/dist/components/checkbox/checkbox.styles.js.map +7 -0
  56. package/dist/components/icon/icon.component.js +4 -3
  57. package/dist/components/icon/icon.js +6 -8
  58. package/dist/components/icon/icon.js.map +3 -3
  59. package/dist/components/input/input.component.js +9 -6
  60. package/dist/components/input/input.js +10 -7
  61. package/dist/components/input/input.styles.js +2 -1
  62. package/dist/components/spinner/spinner.component.js +3 -3
  63. package/dist/components/textarea/textarea.component.d.ts +131 -0
  64. package/dist/components/textarea/textarea.component.js +17 -0
  65. package/dist/components/textarea/textarea.component.js.map +7 -0
  66. package/dist/components/textarea/textarea.custom.styles.js +3 -6
  67. package/dist/components/textarea/textarea.custom.styles.js.map +3 -3
  68. package/dist/components/textarea/textarea.d.ts +8 -0
  69. package/dist/components/textarea/textarea.js +18 -0
  70. package/dist/components/textarea/textarea.js.map +7 -0
  71. package/dist/components/textarea/textarea.styles.d.ts +2 -0
  72. package/dist/components/textarea/textarea.styles.js +11 -0
  73. package/dist/components/textarea/textarea.styles.js.map +7 -0
  74. package/dist/custom-elements.json +1577 -390
  75. package/dist/internal/test.d.ts +28 -0
  76. package/dist/synergy.d.ts +4 -1
  77. package/dist/synergy.js +35 -14
  78. package/dist/vscode.html-custom-data.json +207 -0
  79. package/dist/web-types.json +437 -1
  80. package/package.json +3 -3
  81. package/dist/chunks/chunk.IFBY43YE.js.map +0 -7
  82. /package/dist/chunks/{chunk.3XRGNU3R.js.map → chunk.FKB4BI2F.js.map} +0 -0
  83. /package/dist/chunks/{chunk.C4FLGZ7E.js.map → chunk.KALIQJUH.js.map} +0 -0
  84. /package/dist/chunks/{chunk.4OMRXGQ5.js.map → chunk.TKXG7VM3.js.map} +0 -0
  85. /package/dist/chunks/{chunk.2NHBIE4V.js.map → chunk.YTS5TRJZ.js.map} +0 -0
@@ -0,0 +1,224 @@
1
+ import {
2
+ defaultValue
3
+ } from "./chunk.WFAJR3FN.js";
4
+ import {
5
+ checkbox_styles_default
6
+ } from "./chunk.MFFJYORB.js";
7
+ import {
8
+ FormControlController
9
+ } from "./chunk.WDCAHRYG.js";
10
+ import {
11
+ SynIcon
12
+ } from "./chunk.LJVC6UEV.js";
13
+ import {
14
+ watch
15
+ } from "./chunk.VZ7S7YYN.js";
16
+ import {
17
+ SynergyElement
18
+ } from "./chunk.UFEBKPYW.js";
19
+ import {
20
+ __decorateClass
21
+ } from "./chunk.DJOAQ4JU.js";
22
+
23
+ // src/components/checkbox/checkbox.component.ts
24
+ import { classMap } from "lit/directives/class-map.js";
25
+ import { html } from "lit";
26
+ import { ifDefined } from "lit/directives/if-defined.js";
27
+ import { live } from "lit/directives/live.js";
28
+ import { property, query, state } from "lit/decorators.js";
29
+ var SynCheckbox = class extends SynergyElement {
30
+ constructor() {
31
+ super(...arguments);
32
+ this.formControlController = new FormControlController(this, {
33
+ value: (control) => control.checked ? control.value || "on" : void 0,
34
+ defaultValue: (control) => control.defaultChecked,
35
+ setValue: (control, checked) => control.checked = checked
36
+ });
37
+ this.hasFocus = false;
38
+ this.title = "";
39
+ this.name = "";
40
+ this.size = "medium";
41
+ this.disabled = false;
42
+ this.checked = false;
43
+ this.indeterminate = false;
44
+ this.defaultChecked = false;
45
+ this.form = "";
46
+ this.required = false;
47
+ }
48
+ /** Gets the validity state object */
49
+ get validity() {
50
+ return this.input.validity;
51
+ }
52
+ /** Gets the validation message */
53
+ get validationMessage() {
54
+ return this.input.validationMessage;
55
+ }
56
+ firstUpdated() {
57
+ this.formControlController.updateValidity();
58
+ }
59
+ handleClick() {
60
+ this.checked = !this.checked;
61
+ this.indeterminate = false;
62
+ this.emit("syn-change");
63
+ }
64
+ handleBlur() {
65
+ this.hasFocus = false;
66
+ this.emit("syn-blur");
67
+ }
68
+ handleInput() {
69
+ this.emit("syn-input");
70
+ }
71
+ handleInvalid(event) {
72
+ this.formControlController.setValidity(false);
73
+ this.formControlController.emitInvalidEvent(event);
74
+ }
75
+ handleFocus() {
76
+ this.hasFocus = true;
77
+ this.emit("syn-focus");
78
+ }
79
+ handleDisabledChange() {
80
+ this.formControlController.setValidity(this.disabled);
81
+ }
82
+ handleStateChange() {
83
+ this.input.checked = this.checked;
84
+ this.input.indeterminate = this.indeterminate;
85
+ this.formControlController.updateValidity();
86
+ }
87
+ /** Simulates a click on the checkbox. */
88
+ click() {
89
+ this.input.click();
90
+ }
91
+ /** Sets focus on the checkbox. */
92
+ focus(options) {
93
+ this.input.focus(options);
94
+ }
95
+ /** Removes focus from the checkbox. */
96
+ blur() {
97
+ this.input.blur();
98
+ }
99
+ /** Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid. */
100
+ checkValidity() {
101
+ return this.input.checkValidity();
102
+ }
103
+ /** Gets the associated form, if one exists. */
104
+ getForm() {
105
+ return this.formControlController.getForm();
106
+ }
107
+ /** Checks for validity and shows the browser's validation message if the control is invalid. */
108
+ reportValidity() {
109
+ return this.input.reportValidity();
110
+ }
111
+ /**
112
+ * Sets a custom validation message. The value provided will be shown to the user when the form is submitted. To clear
113
+ * the custom validation message, call this method with an empty string.
114
+ */
115
+ setCustomValidity(message) {
116
+ this.input.setCustomValidity(message);
117
+ this.formControlController.updateValidity();
118
+ }
119
+ render() {
120
+ return html`
121
+ <label
122
+ part="base"
123
+ class=${classMap({
124
+ checkbox: true,
125
+ "checkbox--checked": this.checked,
126
+ "checkbox--disabled": this.disabled,
127
+ "checkbox--focused": this.hasFocus,
128
+ "checkbox--indeterminate": this.indeterminate,
129
+ "checkbox--small": this.size === "small",
130
+ "checkbox--medium": this.size === "medium",
131
+ "checkbox--large": this.size === "large"
132
+ })}
133
+ >
134
+ <input
135
+ class="checkbox__input"
136
+ type="checkbox"
137
+ title=${this.title}
138
+ name=${this.name}
139
+ value=${ifDefined(this.value)}
140
+ .indeterminate=${live(this.indeterminate)}
141
+ .checked=${live(this.checked)}
142
+ .disabled=${this.disabled}
143
+ .required=${this.required}
144
+ aria-checked=${this.checked ? "true" : "false"}
145
+ @click=${this.handleClick}
146
+ @input=${this.handleInput}
147
+ @invalid=${this.handleInvalid}
148
+ @blur=${this.handleBlur}
149
+ @focus=${this.handleFocus}
150
+ />
151
+
152
+ <span
153
+ part="control${this.checked ? " control--checked" : ""}${this.indeterminate ? " control--indeterminate" : ""}"
154
+ class="checkbox__control"
155
+ >
156
+ ${this.checked ? html`
157
+ <syn-icon part="checked-icon" class="checkbox__checked-icon" library="system" name="check"></syn-icon>
158
+ ` : ""}
159
+ ${!this.checked && this.indeterminate ? html`
160
+ <syn-icon
161
+ part="indeterminate-icon"
162
+ class="checkbox__indeterminate-icon"
163
+ library="system"
164
+ name="indeterminate"
165
+ ></syn-icon>
166
+ ` : ""}
167
+ </span>
168
+
169
+ <div part="label" class="checkbox__label">
170
+ <slot></slot>
171
+ </div>
172
+ </label>
173
+ `;
174
+ }
175
+ };
176
+ SynCheckbox.styles = checkbox_styles_default;
177
+ SynCheckbox.dependencies = { "syn-icon": SynIcon };
178
+ __decorateClass([
179
+ query('input[type="checkbox"]')
180
+ ], SynCheckbox.prototype, "input", 2);
181
+ __decorateClass([
182
+ state()
183
+ ], SynCheckbox.prototype, "hasFocus", 2);
184
+ __decorateClass([
185
+ property()
186
+ ], SynCheckbox.prototype, "title", 2);
187
+ __decorateClass([
188
+ property()
189
+ ], SynCheckbox.prototype, "name", 2);
190
+ __decorateClass([
191
+ property()
192
+ ], SynCheckbox.prototype, "value", 2);
193
+ __decorateClass([
194
+ property({ reflect: true })
195
+ ], SynCheckbox.prototype, "size", 2);
196
+ __decorateClass([
197
+ property({ type: Boolean, reflect: true })
198
+ ], SynCheckbox.prototype, "disabled", 2);
199
+ __decorateClass([
200
+ property({ type: Boolean, reflect: true })
201
+ ], SynCheckbox.prototype, "checked", 2);
202
+ __decorateClass([
203
+ property({ type: Boolean, reflect: true })
204
+ ], SynCheckbox.prototype, "indeterminate", 2);
205
+ __decorateClass([
206
+ defaultValue("checked")
207
+ ], SynCheckbox.prototype, "defaultChecked", 2);
208
+ __decorateClass([
209
+ property({ reflect: true })
210
+ ], SynCheckbox.prototype, "form", 2);
211
+ __decorateClass([
212
+ property({ type: Boolean, reflect: true })
213
+ ], SynCheckbox.prototype, "required", 2);
214
+ __decorateClass([
215
+ watch("disabled", { waitUntilFirstUpdate: true })
216
+ ], SynCheckbox.prototype, "handleDisabledChange", 1);
217
+ __decorateClass([
218
+ watch(["checked", "indeterminate"], { waitUntilFirstUpdate: true })
219
+ ], SynCheckbox.prototype, "handleStateChange", 1);
220
+
221
+ export {
222
+ SynCheckbox
223
+ };
224
+ //# sourceMappingURL=chunk.HOGDOKQS.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/checkbox/checkbox.component.ts"],
4
+ "sourcesContent": ["// ---------------------------------------------------------------------\n// \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n// Removing this comment will prevent it from being managed by it.\n// ---------------------------------------------------------------------\n\n/* eslint-disable */\nimport { classMap } from 'lit/directives/class-map.js';\nimport { defaultValue } from '../../internal/default-value.js';\nimport { FormControlController } from '../../internal/form.js';\nimport { html } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { property, query, state } from 'lit/decorators.js';\nimport { watch } from '../../internal/watch.js';\nimport SynergyElement from '../../internal/synergy-element.js';\nimport SynIcon from '../icon/icon.component.js';\nimport styles from './checkbox.styles.js';\nimport type { CSSResultGroup } from 'lit';\nimport type { SynergyFormControl } from '../../internal/synergy-element.js';\n\n/**\n * @summary Checkboxes allow the user to toggle an option on or off.\n * @documentation https://synergy.style/components/checkbox\n * @status stable\n * @since 2.0\n *\n * @dependency syn-icon\n *\n * @slot - The checkbox's label.\n *\n * @event syn-blur - Emitted when the checkbox loses focus.\n * @event syn-change - Emitted when the checked state changes.\n * @event syn-focus - Emitted when the checkbox gains focus.\n * @event syn-input - Emitted when the checkbox receives input.\n * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n *\n * @csspart base - The component's base wrapper.\n * @csspart control - The square container that wraps the checkbox's checked state.\n * @csspart control--checked - Matches the control part when the checkbox is checked.\n * @csspart control--indeterminate - Matches the control part when the checkbox is indeterminate.\n * @csspart checked-icon - The checked icon, an `<syn-icon>` element.\n * @csspart indeterminate-icon - The indeterminate icon, an `<syn-icon>` element.\n * @csspart label - The container that wraps the checkbox's label.\n */\nexport default class SynCheckbox extends SynergyElement implements SynergyFormControl {\n static styles: CSSResultGroup = styles;\n static dependencies = { 'syn-icon': SynIcon };\n\n private readonly formControlController = new FormControlController(this, {\n value: (control: SynCheckbox) => (control.checked ? control.value || 'on' : undefined),\n defaultValue: (control: SynCheckbox) => control.defaultChecked,\n setValue: (control: SynCheckbox, checked: boolean) => (control.checked = checked)\n });\n\n @query('input[type=\"checkbox\"]') input: HTMLInputElement;\n\n @state() private hasFocus = false;\n\n @property() title = ''; // make reactive to pass through\n\n /** The name of the checkbox, submitted as a name/value pair with form data. */\n @property() name = '';\n\n /** The current value of the checkbox, submitted as a name/value pair with form data. */\n @property() value: string;\n\n /** The checkbox's size. */\n @property({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Disables the checkbox. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Draws the checkbox in a checked state. */\n @property({ type: Boolean, reflect: true }) checked = false;\n\n /**\n * Draws the checkbox in an indeterminate state. This is usually applied to checkboxes that represents a \"select\n * all/none\" behavior when associated checkboxes have a mix of checked and unchecked states.\n */\n @property({ type: Boolean, reflect: true }) indeterminate = false;\n\n /** The default value of the form control. Primarily used for resetting the form control. */\n @defaultValue('checked') defaultChecked = false;\n\n /**\n * By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\n * to place the form control outside of a form and associate it with the form that has this `id`. The form must be in\n * the same document or shadow root for this to work.\n */\n @property({ reflect: true }) form = '';\n\n /** Makes the checkbox a required field. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n /** Gets the validity state object */\n get validity() {\n return this.input.validity;\n }\n\n /** Gets the validation message */\n get validationMessage() {\n return this.input.validationMessage;\n }\n\n firstUpdated() {\n this.formControlController.updateValidity();\n }\n\n private handleClick() {\n this.checked = !this.checked;\n this.indeterminate = false;\n this.emit('syn-change');\n }\n\n private handleBlur() {\n this.hasFocus = false;\n this.emit('syn-blur');\n }\n\n private handleInput() {\n this.emit('syn-input');\n }\n\n private handleInvalid(event: Event) {\n this.formControlController.setValidity(false);\n this.formControlController.emitInvalidEvent(event);\n }\n\n private handleFocus() {\n this.hasFocus = true;\n this.emit('syn-focus');\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n handleDisabledChange() {\n // Disabled form controls are always valid\n this.formControlController.setValidity(this.disabled);\n }\n\n @watch(['checked', 'indeterminate'], { waitUntilFirstUpdate: true })\n handleStateChange() {\n this.input.checked = this.checked; // force a sync update\n this.input.indeterminate = this.indeterminate; // force a sync update\n this.formControlController.updateValidity();\n }\n\n /** Simulates a click on the checkbox. */\n click() {\n this.input.click();\n }\n\n /** Sets focus on the checkbox. */\n focus(options?: FocusOptions) {\n this.input.focus(options);\n }\n\n /** Removes focus from the checkbox. */\n blur() {\n this.input.blur();\n }\n\n /** Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid. */\n checkValidity() {\n return this.input.checkValidity();\n }\n\n /** Gets the associated form, if one exists. */\n getForm(): HTMLFormElement | null {\n return this.formControlController.getForm();\n }\n\n /** Checks for validity and shows the browser's validation message if the control is invalid. */\n reportValidity() {\n return this.input.reportValidity();\n }\n\n /**\n * Sets a custom validation message. The value provided will be shown to the user when the form is submitted. To clear\n * the custom validation message, call this method with an empty string.\n */\n setCustomValidity(message: string) {\n this.input.setCustomValidity(message);\n this.formControlController.updateValidity();\n }\n\n render() {\n //\n // NOTE: we use a <div> around the label slot because of this Chrome bug.\n //\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1413733\n //\n return html`\n <label\n part=\"base\"\n class=${classMap({\n checkbox: true,\n 'checkbox--checked': this.checked,\n 'checkbox--disabled': this.disabled,\n 'checkbox--focused': this.hasFocus,\n 'checkbox--indeterminate': this.indeterminate,\n 'checkbox--small': this.size === 'small',\n 'checkbox--medium': this.size === 'medium',\n 'checkbox--large': this.size === 'large'\n })}\n >\n <input\n class=\"checkbox__input\"\n type=\"checkbox\"\n title=${this.title /* An empty title prevents browser validation tooltips from appearing on hover */}\n name=${this.name}\n value=${ifDefined(this.value)}\n .indeterminate=${live(this.indeterminate)}\n .checked=${live(this.checked)}\n .disabled=${this.disabled}\n .required=${this.required}\n aria-checked=${this.checked ? 'true' : 'false'}\n @click=${this.handleClick}\n @input=${this.handleInput}\n @invalid=${this.handleInvalid}\n @blur=${this.handleBlur}\n @focus=${this.handleFocus}\n />\n\n <span\n part=\"control${this.checked ? ' control--checked' : ''}${this.indeterminate ? ' control--indeterminate' : ''}\"\n class=\"checkbox__control\"\n >\n ${this.checked\n ? html`\n <syn-icon part=\"checked-icon\" class=\"checkbox__checked-icon\" library=\"system\" name=\"check\"></syn-icon>\n `\n : ''}\n ${!this.checked && this.indeterminate\n ? html`\n <syn-icon\n part=\"indeterminate-icon\"\n class=\"checkbox__indeterminate-icon\"\n library=\"system\"\n name=\"indeterminate\"\n ></syn-icon>\n `\n : ''}\n </span>\n\n <div part=\"label\" class=\"checkbox__label\">\n <slot></slot>\n </div>\n </label>\n `;\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,189 @@
1
+ import {
2
+ form_control_styles_default
3
+ } from "./chunk.VNC7HKGP.js";
4
+ import {
5
+ textarea_custom_styles_default
6
+ } from "./chunk.YBIBWRKC.js";
7
+ import {
8
+ component_styles_default
9
+ } from "./chunk.O7USYXBT.js";
10
+
11
+ // src/components/textarea/textarea.styles.ts
12
+ import { css } from "lit";
13
+ var textarea_styles_default = css`
14
+ /* stylelint-disable */
15
+ ${component_styles_default}
16
+ ${form_control_styles_default}
17
+
18
+ :host {
19
+ display: block;
20
+ }
21
+
22
+ .textarea {
23
+ display: flex;
24
+ align-items: center;
25
+ position: relative;
26
+ width: 100%;
27
+ font-family: var(--syn-input-font-family);
28
+ font-weight: var(--syn-input-font-weight);
29
+ line-height: var(--syn-line-height-normal);
30
+ letter-spacing: var(--syn-input-letter-spacing);
31
+ vertical-align: middle;
32
+ transition:
33
+ var(--syn-transition-fast) color,
34
+ var(--syn-transition-fast) border,
35
+ var(--syn-transition-fast) box-shadow,
36
+ var(--syn-transition-fast) background-color;
37
+ cursor: text;
38
+ }
39
+
40
+ /* Standard textareas */
41
+ .textarea--standard {
42
+ background-color: var(--syn-input-background-color);
43
+ border: solid var(--syn-input-border-width) var(--syn-input-border-color);
44
+ }
45
+
46
+ .textarea--standard:hover:not(.textarea--disabled) {
47
+ background-color: var(--syn-input-background-color-hover);
48
+ border-color: var(--syn-input-border-color-hover);
49
+ }
50
+ .textarea--standard:hover:not(.textarea--disabled) .textarea__control {
51
+ color: var(--syn-input-color-hover);
52
+ }
53
+
54
+ .textarea--standard.textarea--focused:not(.textarea--disabled) {
55
+ background-color: var(--syn-input-background-color-focus);
56
+ border-color: var(--syn-input-border-color-focus);
57
+ color: var(--syn-input-color-focus);
58
+ box-shadow: 0 0 0 var(--syn-focus-ring-width) var(--syn-input-focus-ring-color);
59
+ }
60
+
61
+ .textarea--standard.textarea--focused:not(.textarea--disabled) .textarea__control {
62
+ color: var(--syn-input-color-focus);
63
+ }
64
+
65
+ .textarea--standard.textarea--disabled {
66
+ background-color: var(--syn-input-background-color-disabled);
67
+ border-color: var(--syn-input-border-color-disabled);
68
+ opacity: 0.5;
69
+ cursor: not-allowed;
70
+ }
71
+
72
+ .textarea--standard.textarea--disabled .textarea__control {
73
+ color: var(--syn-input-color-disabled);
74
+ }
75
+
76
+ .textarea--standard.textarea--disabled .textarea__control::placeholder {
77
+ color: var(--syn-input-placeholder-color-disabled);
78
+ }
79
+
80
+ /* Readonly textareas */
81
+ .textarea--readonly {
82
+ border: none;
83
+ background-color: var(--syn-input-readonly-background-color);
84
+ color: var(--syn-input-color);
85
+ }
86
+
87
+ .textarea--readonly:hover:not(.textarea--disabled) {
88
+ background-color: var(--syn-input-readonly-background-color-hover);
89
+ }
90
+
91
+ .textarea--readonly.textarea--focused:not(.textarea--disabled) {
92
+ background-color: var(--syn-input-readonly-background-color-focus);
93
+ outline: var(--syn-focus-ring);
94
+ outline-offset: var(--syn-focus-ring-offset);
95
+ }
96
+
97
+ .textarea--readonly.textarea--disabled {
98
+ background-color: var(--syn-input-readonly-background-color-disabled);
99
+ opacity: 0.5;
100
+ cursor: not-allowed;
101
+ }
102
+
103
+ .textarea__control {
104
+ flex: 1 1 auto;
105
+ font-family: inherit;
106
+ font-size: inherit;
107
+ font-weight: inherit;
108
+ line-height: 1.4;
109
+ color: var(--syn-input-color);
110
+ border: none;
111
+ background: none;
112
+ box-shadow: none;
113
+ cursor: inherit;
114
+ -webkit-appearance: none;
115
+ }
116
+
117
+ .textarea__control::-webkit-search-decoration,
118
+ .textarea__control::-webkit-search-cancel-button,
119
+ .textarea__control::-webkit-search-results-button,
120
+ .textarea__control::-webkit-search-results-decoration {
121
+ -webkit-appearance: none;
122
+ }
123
+
124
+ .textarea__control::placeholder {
125
+ color: var(--syn-input-placeholder-color);
126
+ user-select: none;
127
+ -webkit-user-select: none;
128
+ }
129
+
130
+ .textarea__control:focus {
131
+ outline: none;
132
+ }
133
+
134
+ /*
135
+ * Size modifiers
136
+ */
137
+
138
+ .textarea--small {
139
+ border-radius: var(--syn-input-border-radius-small);
140
+ font-size: var(--syn-input-font-size-small);
141
+ }
142
+
143
+ .textarea--small .textarea__control {
144
+ padding: 0.5em var(--syn-input-spacing-small);
145
+ }
146
+
147
+ .textarea--medium {
148
+ border-radius: var(--syn-input-border-radius-medium);
149
+ font-size: var(--syn-input-font-size-medium);
150
+ }
151
+
152
+ .textarea--medium .textarea__control {
153
+ padding: 0.5em var(--syn-input-spacing-medium);
154
+ }
155
+
156
+ .textarea--large {
157
+ border-radius: var(--syn-input-border-radius-large);
158
+ font-size: var(--syn-input-font-size-large);
159
+ }
160
+
161
+ .textarea--large .textarea__control {
162
+ padding: 0.5em var(--syn-input-spacing-large);
163
+ }
164
+
165
+ /*
166
+ * Resize types
167
+ */
168
+
169
+ .textarea--resize-none .textarea__control {
170
+ resize: none;
171
+ }
172
+
173
+ .textarea--resize-vertical .textarea__control {
174
+ resize: vertical;
175
+ }
176
+
177
+ .textarea--resize-auto .textarea__control {
178
+ height: auto;
179
+ resize: none;
180
+ overflow-y: hidden;
181
+ }
182
+
183
+ ${textarea_custom_styles_default}
184
+ `;
185
+
186
+ export {
187
+ textarea_styles_default
188
+ };
189
+ //# sourceMappingURL=chunk.J44T4LO6.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/textarea/textarea.styles.ts"],
4
+ "sourcesContent": ["// ---------------------------------------------------------------------\n// \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n// Removing this comment will prevent it from being managed by it.\n// ---------------------------------------------------------------------\n\n/* eslint-disable */\nimport { css } from 'lit';\nimport customStyles from './textarea.custom.styles.js';\nimport componentStyles from '../../styles/component.styles.js';\nimport formControlStyles from '../../styles/form-control.styles.js';\n\nexport default css`\n\t/* stylelint-disable */\n ${componentStyles}\n ${formControlStyles}\n\n :host {\n display: block;\n }\n\n .textarea {\n display: flex;\n align-items: center;\n position: relative;\n width: 100%;\n font-family: var(--syn-input-font-family);\n font-weight: var(--syn-input-font-weight);\n line-height: var(--syn-line-height-normal);\n letter-spacing: var(--syn-input-letter-spacing);\n vertical-align: middle;\n transition:\n var(--syn-transition-fast) color,\n var(--syn-transition-fast) border,\n var(--syn-transition-fast) box-shadow,\n var(--syn-transition-fast) background-color;\n cursor: text;\n }\n\n /* Standard textareas */\n .textarea--standard {\n background-color: var(--syn-input-background-color);\n border: solid var(--syn-input-border-width) var(--syn-input-border-color);\n }\n\n .textarea--standard:hover:not(.textarea--disabled) {\n background-color: var(--syn-input-background-color-hover);\n border-color: var(--syn-input-border-color-hover);\n }\n .textarea--standard:hover:not(.textarea--disabled) .textarea__control {\n color: var(--syn-input-color-hover);\n }\n\n .textarea--standard.textarea--focused:not(.textarea--disabled) {\n background-color: var(--syn-input-background-color-focus);\n border-color: var(--syn-input-border-color-focus);\n color: var(--syn-input-color-focus);\n box-shadow: 0 0 0 var(--syn-focus-ring-width) var(--syn-input-focus-ring-color);\n }\n\n .textarea--standard.textarea--focused:not(.textarea--disabled) .textarea__control {\n color: var(--syn-input-color-focus);\n }\n\n .textarea--standard.textarea--disabled {\n background-color: var(--syn-input-background-color-disabled);\n border-color: var(--syn-input-border-color-disabled);\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .textarea--standard.textarea--disabled .textarea__control {\n color: var(--syn-input-color-disabled);\n }\n\n .textarea--standard.textarea--disabled .textarea__control::placeholder {\n color: var(--syn-input-placeholder-color-disabled);\n }\n\n /* Readonly textareas */\n .textarea--readonly {\n border: none;\n background-color: var(--syn-input-readonly-background-color);\n color: var(--syn-input-color);\n }\n\n .textarea--readonly:hover:not(.textarea--disabled) {\n background-color: var(--syn-input-readonly-background-color-hover);\n }\n\n .textarea--readonly.textarea--focused:not(.textarea--disabled) {\n background-color: var(--syn-input-readonly-background-color-focus);\n outline: var(--syn-focus-ring);\n outline-offset: var(--syn-focus-ring-offset);\n }\n\n .textarea--readonly.textarea--disabled {\n background-color: var(--syn-input-readonly-background-color-disabled);\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .textarea__control {\n flex: 1 1 auto;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n line-height: 1.4;\n color: var(--syn-input-color);\n border: none;\n background: none;\n box-shadow: none;\n cursor: inherit;\n -webkit-appearance: none;\n }\n\n .textarea__control::-webkit-search-decoration,\n .textarea__control::-webkit-search-cancel-button,\n .textarea__control::-webkit-search-results-button,\n .textarea__control::-webkit-search-results-decoration {\n -webkit-appearance: none;\n }\n\n .textarea__control::placeholder {\n color: var(--syn-input-placeholder-color);\n user-select: none;\n -webkit-user-select: none;\n }\n\n .textarea__control:focus {\n outline: none;\n }\n\n /*\n * Size modifiers\n */\n\n .textarea--small {\n border-radius: var(--syn-input-border-radius-small);\n font-size: var(--syn-input-font-size-small);\n }\n\n .textarea--small .textarea__control {\n padding: 0.5em var(--syn-input-spacing-small);\n }\n\n .textarea--medium {\n border-radius: var(--syn-input-border-radius-medium);\n font-size: var(--syn-input-font-size-medium);\n }\n\n .textarea--medium .textarea__control {\n padding: 0.5em var(--syn-input-spacing-medium);\n }\n\n .textarea--large {\n border-radius: var(--syn-input-border-radius-large);\n font-size: var(--syn-input-font-size-large);\n }\n\n .textarea--large .textarea__control {\n padding: 0.5em var(--syn-input-spacing-large);\n }\n\n /*\n * Resize types\n */\n\n .textarea--resize-none .textarea__control {\n resize: none;\n }\n\n .textarea--resize-vertical .textarea__control {\n resize: vertical;\n }\n\n .textarea--resize-auto .textarea__control {\n height: auto;\n resize: none;\n overflow-y: hidden;\n }\n\n ${customStyles}\n`;\n\n"],
5
+ "mappings": ";;;;;;;;;;;AAMA,SAAS,WAAW;AAKpB,IAAO,0BAAQ;AAAA;AAAA,IAEX,wBAAe;AAAA,IACf,2BAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAuKjB,8BAAY;AAAA;",
6
+ "names": []
7
+ }
@@ -1,12 +1,12 @@
1
- import {
2
- spinner_styles_default
3
- } from "./chunk.N2I6HVX3.js";
4
1
  import {
5
2
  LocalizeController
6
3
  } from "./chunk.R6VNLE6N.js";
4
+ import {
5
+ spinner_styles_default
6
+ } from "./chunk.N2I6HVX3.js";
7
7
  import {
8
8
  SynergyElement
9
- } from "./chunk.MRBFJWMS.js";
9
+ } from "./chunk.UFEBKPYW.js";
10
10
 
11
11
  // src/components/spinner/spinner.component.ts
12
12
  import { html } from "lit";
@@ -29,4 +29,4 @@ SynSpinner.styles = spinner_styles_default;
29
29
  export {
30
30
  SynSpinner
31
31
  };
32
- //# sourceMappingURL=chunk.C4FLGZ7E.js.map
32
+ //# sourceMappingURL=chunk.KALIQJUH.js.map
@@ -1,51 +1,25 @@
1
+ import {
2
+ watch
3
+ } from "./chunk.VZ7S7YYN.js";
1
4
  import {
2
5
  SynergyElement
3
- } from "./chunk.MRBFJWMS.js";
6
+ } from "./chunk.UFEBKPYW.js";
7
+ import {
8
+ icon_styles_default
9
+ } from "./chunk.BREU4ILT.js";
4
10
  import {
5
11
  getIconLibrary,
6
12
  unwatchIcon,
7
13
  watchIcon
8
14
  } from "./chunk.5OIEI73E.js";
9
15
  import {
10
- icon_styles_default
11
- } from "./chunk.BREU4ILT.js";
12
- import {
13
- __decorateClass,
14
- __spreadValues
16
+ __decorateClass
15
17
  } from "./chunk.DJOAQ4JU.js";
16
18
 
17
19
  // src/components/icon/icon.component.ts
18
20
  import { html } from "lit";
19
21
  import { isTemplateResult } from "lit/directive-helpers.js";
20
22
  import { property, state } from "lit/decorators.js";
21
-
22
- // src/internal/watch.ts
23
- function watch(propertyName, options) {
24
- const resolvedOptions = __spreadValues({
25
- waitUntilFirstUpdate: false
26
- }, options);
27
- return (proto, decoratedFnName) => {
28
- const { update } = proto;
29
- const watchedProperties = Array.isArray(propertyName) ? propertyName : [propertyName];
30
- proto.update = function(changedProps) {
31
- watchedProperties.forEach((property2) => {
32
- const key = property2;
33
- if (changedProps.has(key)) {
34
- const oldValue = changedProps.get(key);
35
- const newValue = this[key];
36
- if (oldValue !== newValue) {
37
- if (!resolvedOptions.waitUntilFirstUpdate || this.hasUpdated) {
38
- this[decoratedFnName](oldValue, newValue);
39
- }
40
- }
41
- }
42
- });
43
- update.call(this, changedProps);
44
- };
45
- };
46
- }
47
-
48
- // src/components/icon/icon.component.ts
49
23
  var CACHEABLE_ERROR = Symbol();
50
24
  var RETRYABLE_ERROR = Symbol();
51
25
  var parser;
@@ -196,7 +170,6 @@ __decorateClass([
196
170
  ], SynIcon.prototype, "setIcon", 1);
197
171
 
198
172
  export {
199
- watch,
200
173
  SynIcon
201
174
  };
202
- //# sourceMappingURL=chunk.KXCGB2XT.js.map
175
+ //# sourceMappingURL=chunk.LJVC6UEV.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/components/icon/icon.component.ts", "../../src/internal/watch.ts"],
4
- "sourcesContent": ["// ---------------------------------------------------------------------\n// \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n// Removing this comment will prevent it from being managed by it.\n// ---------------------------------------------------------------------\n\n/* eslint-disable */\nimport { getIconLibrary, type IconLibrary, unwatchIcon, watchIcon } from './library.js';\nimport { html } from 'lit';\nimport { isTemplateResult } from 'lit/directive-helpers.js';\nimport { property, state } from 'lit/decorators.js';\nimport { watch } from '../../internal/watch.js';\nimport SynergyElement from '../../internal/synergy-element.js';\nimport styles from './icon.styles.js';\n\nimport type { CSSResultGroup, HTMLTemplateResult } from 'lit';\n\nconst CACHEABLE_ERROR = Symbol();\nconst RETRYABLE_ERROR = Symbol();\ntype SVGResult = HTMLTemplateResult | SVGSVGElement | typeof RETRYABLE_ERROR | typeof CACHEABLE_ERROR;\n\nlet parser: DOMParser;\nconst iconCache = new Map<string, Promise<SVGResult>>();\n\ninterface IconSource {\n url?: string;\n fromLibrary: boolean;\n}\n\n/**\n * @summary Icons are symbols that can be used to represent various options within an application.\n * @documentation https://synergy.style/components/icon\n * @status stable\n * @since 2.0\n *\n * @event syn-load - Emitted when the icon has loaded. When using `spriteSheet: true` this will not emit.\n * @event syn-error - Emitted when the icon fails to load due to an error. When using `spriteSheet: true` this will not emit.\n *\n * @csspart svg - The internal SVG element.\n * @csspart use - The <use> element generated when using `spriteSheet: true`\n */\nexport default class SynIcon extends SynergyElement {\n static styles: CSSResultGroup = styles;\n\n private initialRender = false;\n\n /** Given a URL, this function returns the resulting SVG element or an appropriate error symbol. */\n private async resolveIcon(url: string, library?: IconLibrary): Promise<SVGResult> {\n let fileData: Response;\n\n if (library?.spriteSheet) {\n return html`<svg part=\"svg\">\n <use part=\"use\" href=\"${url}\"></use>\n </svg>`;\n }\n\n try {\n fileData = await fetch(url, { mode: 'cors' });\n if (!fileData.ok) return fileData.status === 410 ? CACHEABLE_ERROR : RETRYABLE_ERROR;\n } catch {\n return RETRYABLE_ERROR;\n }\n\n try {\n const div = document.createElement('div');\n div.innerHTML = await fileData.text();\n\n const svg = div.firstElementChild;\n if (svg?.tagName?.toLowerCase() !== 'svg') return CACHEABLE_ERROR;\n\n if (!parser) parser = new DOMParser();\n const doc = parser.parseFromString(svg.outerHTML, 'text/html');\n\n const svgEl = doc.body.querySelector('svg');\n if (!svgEl) return CACHEABLE_ERROR;\n\n svgEl.part.add('svg');\n return document.adoptNode(svgEl);\n } catch {\n return CACHEABLE_ERROR;\n }\n }\n\n @state() private svg: SVGElement | HTMLTemplateResult | null = null;\n\n /** The name of the icon to draw. Available names depend on the icon library being used. */\n @property({ reflect: true }) name?: string;\n\n /**\n * An external URL of an SVG file. Be sure you trust the content you are including, as it will be executed as code and\n * can result in XSS attacks.\n */\n @property() src?: string;\n\n /**\n * An alternate description to use for assistive devices. If omitted, the icon will be considered presentational and\n * ignored by assistive devices.\n */\n @property() label = '';\n\n /** The name of a registered custom icon library. */\n @property({ reflect: true }) library = 'default';\n\n connectedCallback() {\n super.connectedCallback();\n watchIcon(this);\n }\n\n firstUpdated() {\n this.initialRender = true;\n this.setIcon();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n unwatchIcon(this);\n }\n\n private getIconSource(): IconSource {\n const library = getIconLibrary(this.library);\n if (this.name && library) {\n return {\n url: library.resolver(this.name),\n fromLibrary: true\n };\n }\n\n return {\n url: this.src,\n fromLibrary: false\n };\n }\n\n @watch('label')\n handleLabelChange() {\n const hasLabel = typeof this.label === 'string' && this.label.length > 0;\n\n if (hasLabel) {\n this.setAttribute('role', 'img');\n this.setAttribute('aria-label', this.label);\n this.removeAttribute('aria-hidden');\n } else {\n this.removeAttribute('role');\n this.removeAttribute('aria-label');\n this.setAttribute('aria-hidden', 'true');\n }\n }\n\n @watch(['name', 'src', 'library'])\n async setIcon() {\n const { url, fromLibrary } = this.getIconSource();\n const library = fromLibrary ? getIconLibrary(this.library) : undefined;\n\n if (!url) {\n this.svg = null;\n return;\n }\n\n let iconResolver = iconCache.get(url);\n if (!iconResolver) {\n iconResolver = this.resolveIcon(url, library);\n iconCache.set(url, iconResolver);\n }\n\n // If we haven't rendered yet, exit early. This avoids unnecessary work due to watching multiple props.\n if (!this.initialRender) {\n return;\n }\n\n const svg = await iconResolver;\n\n if (svg === RETRYABLE_ERROR) {\n iconCache.delete(url);\n }\n\n if (url !== this.getIconSource().url) {\n // If the url has changed while fetching the icon, ignore this request\n return;\n }\n\n if (isTemplateResult(svg)) {\n this.svg = svg;\n return;\n }\n\n switch (svg) {\n case RETRYABLE_ERROR:\n case CACHEABLE_ERROR:\n this.svg = null;\n this.emit('syn-error');\n break;\n default:\n this.svg = svg.cloneNode(true) as SVGElement;\n library?.mutator?.(this.svg);\n this.emit('syn-load');\n }\n }\n\n render() {\n return this.svg;\n }\n}\n", "// ---------------------------------------------------------------------\n// \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n// Removing this comment will prevent it from being managed by it.\n// ---------------------------------------------------------------------\n\n/* eslint-disable */\nimport type { LitElement } from 'lit';\n\ntype UpdateHandler = (prev?: unknown, next?: unknown) => void;\n\ntype NonUndefined<A> = A extends undefined ? never : A;\n\ntype UpdateHandlerFunctionKeys<T extends object> = {\n [K in keyof T]-?: NonUndefined<T[K]> extends UpdateHandler ? K : never;\n}[keyof T];\n\ninterface WatchOptions {\n /**\n * If true, will only start watching after the initial update/render\n */\n waitUntilFirstUpdate?: boolean;\n}\n\n/**\n * Runs when observed properties change, e.g. @property or @state, but before the component updates. To wait for an\n * update to complete after a change occurs, use `await this.updateComplete` in the handler. To start watching after the\n * initial update/render, use `{ waitUntilFirstUpdate: true }` or `this.hasUpdated` in the handler.\n *\n * Usage:\n *\n * @watch('propName')\n * handlePropChange(oldValue, newValue) {\n * ...\n * }\n */\nexport function watch(propertyName: string | string[], options?: WatchOptions) {\n const resolvedOptions: Required<WatchOptions> = {\n waitUntilFirstUpdate: false,\n ...options\n };\n return <ElemClass extends LitElement>(proto: ElemClass, decoratedFnName: UpdateHandlerFunctionKeys<ElemClass>) => {\n // @ts-expect-error - update is a protected property\n const { update } = proto;\n const watchedProperties = Array.isArray(propertyName) ? propertyName : [propertyName];\n\n // @ts-expect-error - update is a protected property\n proto.update = function (this: ElemClass, changedProps: Map<keyof ElemClass, ElemClass[keyof ElemClass]>) {\n watchedProperties.forEach(property => {\n const key = property as keyof ElemClass;\n if (changedProps.has(key)) {\n const oldValue = changedProps.get(key);\n const newValue = this[key];\n\n if (oldValue !== newValue) {\n if (!resolvedOptions.waitUntilFirstUpdate || this.hasUpdated) {\n (this[decoratedFnName] as unknown as UpdateHandler)(oldValue, newValue);\n }\n }\n }\n });\n\n update.call(this, changedProps);\n };\n };\n}\n"],
5
- "mappings": "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",
6
- "names": ["property"]
3
+ "sources": ["../../src/components/icon/icon.component.ts"],
4
+ "sourcesContent": ["// ---------------------------------------------------------------------\n// \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n// Removing this comment will prevent it from being managed by it.\n// ---------------------------------------------------------------------\n\n/* eslint-disable */\nimport { getIconLibrary, type IconLibrary, unwatchIcon, watchIcon } from './library.js';\nimport { html } from 'lit';\nimport { isTemplateResult } from 'lit/directive-helpers.js';\nimport { property, state } from 'lit/decorators.js';\nimport { watch } from '../../internal/watch.js';\nimport SynergyElement from '../../internal/synergy-element.js';\nimport styles from './icon.styles.js';\n\nimport type { CSSResultGroup, HTMLTemplateResult } from 'lit';\n\nconst CACHEABLE_ERROR = Symbol();\nconst RETRYABLE_ERROR = Symbol();\ntype SVGResult = HTMLTemplateResult | SVGSVGElement | typeof RETRYABLE_ERROR | typeof CACHEABLE_ERROR;\n\nlet parser: DOMParser;\nconst iconCache = new Map<string, Promise<SVGResult>>();\n\ninterface IconSource {\n url?: string;\n fromLibrary: boolean;\n}\n\n/**\n * @summary Icons are symbols that can be used to represent various options within an application.\n * @documentation https://synergy.style/components/icon\n * @status stable\n * @since 2.0\n *\n * @event syn-load - Emitted when the icon has loaded. When using `spriteSheet: true` this will not emit.\n * @event syn-error - Emitted when the icon fails to load due to an error. When using `spriteSheet: true` this will not emit.\n *\n * @csspart svg - The internal SVG element.\n * @csspart use - The <use> element generated when using `spriteSheet: true`\n */\nexport default class SynIcon extends SynergyElement {\n static styles: CSSResultGroup = styles;\n\n private initialRender = false;\n\n /** Given a URL, this function returns the resulting SVG element or an appropriate error symbol. */\n private async resolveIcon(url: string, library?: IconLibrary): Promise<SVGResult> {\n let fileData: Response;\n\n if (library?.spriteSheet) {\n return html`<svg part=\"svg\">\n <use part=\"use\" href=\"${url}\"></use>\n </svg>`;\n }\n\n try {\n fileData = await fetch(url, { mode: 'cors' });\n if (!fileData.ok) return fileData.status === 410 ? CACHEABLE_ERROR : RETRYABLE_ERROR;\n } catch {\n return RETRYABLE_ERROR;\n }\n\n try {\n const div = document.createElement('div');\n div.innerHTML = await fileData.text();\n\n const svg = div.firstElementChild;\n if (svg?.tagName?.toLowerCase() !== 'svg') return CACHEABLE_ERROR;\n\n if (!parser) parser = new DOMParser();\n const doc = parser.parseFromString(svg.outerHTML, 'text/html');\n\n const svgEl = doc.body.querySelector('svg');\n if (!svgEl) return CACHEABLE_ERROR;\n\n svgEl.part.add('svg');\n return document.adoptNode(svgEl);\n } catch {\n return CACHEABLE_ERROR;\n }\n }\n\n @state() private svg: SVGElement | HTMLTemplateResult | null = null;\n\n /** The name of the icon to draw. Available names depend on the icon library being used. */\n @property({ reflect: true }) name?: string;\n\n /**\n * An external URL of an SVG file. Be sure you trust the content you are including, as it will be executed as code and\n * can result in XSS attacks.\n */\n @property() src?: string;\n\n /**\n * An alternate description to use for assistive devices. If omitted, the icon will be considered presentational and\n * ignored by assistive devices.\n */\n @property() label = '';\n\n /** The name of a registered custom icon library. */\n @property({ reflect: true }) library = 'default';\n\n connectedCallback() {\n super.connectedCallback();\n watchIcon(this);\n }\n\n firstUpdated() {\n this.initialRender = true;\n this.setIcon();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n unwatchIcon(this);\n }\n\n private getIconSource(): IconSource {\n const library = getIconLibrary(this.library);\n if (this.name && library) {\n return {\n url: library.resolver(this.name),\n fromLibrary: true\n };\n }\n\n return {\n url: this.src,\n fromLibrary: false\n };\n }\n\n @watch('label')\n handleLabelChange() {\n const hasLabel = typeof this.label === 'string' && this.label.length > 0;\n\n if (hasLabel) {\n this.setAttribute('role', 'img');\n this.setAttribute('aria-label', this.label);\n this.removeAttribute('aria-hidden');\n } else {\n this.removeAttribute('role');\n this.removeAttribute('aria-label');\n this.setAttribute('aria-hidden', 'true');\n }\n }\n\n @watch(['name', 'src', 'library'])\n async setIcon() {\n const { url, fromLibrary } = this.getIconSource();\n const library = fromLibrary ? getIconLibrary(this.library) : undefined;\n\n if (!url) {\n this.svg = null;\n return;\n }\n\n let iconResolver = iconCache.get(url);\n if (!iconResolver) {\n iconResolver = this.resolveIcon(url, library);\n iconCache.set(url, iconResolver);\n }\n\n // If we haven't rendered yet, exit early. This avoids unnecessary work due to watching multiple props.\n if (!this.initialRender) {\n return;\n }\n\n const svg = await iconResolver;\n\n if (svg === RETRYABLE_ERROR) {\n iconCache.delete(url);\n }\n\n if (url !== this.getIconSource().url) {\n // If the url has changed while fetching the icon, ignore this request\n return;\n }\n\n if (isTemplateResult(svg)) {\n this.svg = svg;\n return;\n }\n\n switch (svg) {\n case RETRYABLE_ERROR:\n case CACHEABLE_ERROR:\n this.svg = null;\n this.emit('syn-error');\n break;\n default:\n this.svg = svg.cloneNode(true) as SVGElement;\n library?.mutator?.(this.svg);\n this.emit('syn-load');\n }\n }\n\n render() {\n return this.svg;\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
7
  }