@limetech/lime-elements 40.14.3 → 40.14.5
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/CHANGELOG.md +18 -0
- package/dist/cjs/lime-elements.cjs.js +1 -1
- package/dist/cjs/limel-breadcrumbs_6.cjs.entry.js +9 -7
- package/dist/cjs/limel-checkbox.cjs.entry.js +9 -6
- package/dist/cjs/limel-chip-set.cjs.entry.js +34 -3
- package/dist/cjs/limel-helper-line_3.cjs.entry.js +1 -1
- package/dist/cjs/limel-picker.cjs.entry.js +3 -3
- package/dist/cjs/limel-select.cjs.entry.js +13 -10
- package/dist/cjs/limel-slider.cjs.entry.js +7 -6
- package/dist/cjs/limel-switch.cjs.entry.js +5 -4
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/checkbox/checkbox.js +11 -8
- package/dist/collection/components/chip-set/chip-set-input-helpers.js +3 -0
- package/dist/collection/components/chip-set/chip-set.css +2 -2
- package/dist/collection/components/chip-set/chip-set.js +30 -2
- package/dist/collection/components/input-field/input-field.css +28 -24
- package/dist/collection/components/input-field/input-field.js +8 -6
- package/dist/collection/components/notched-outline/notched-outline.css +3 -1
- package/dist/collection/components/picker/picker.js +3 -3
- package/dist/collection/components/select/select.css +4 -8
- package/dist/collection/components/select/select.js +9 -6
- package/dist/collection/components/select/select.template.js +4 -4
- package/dist/collection/components/slider/slider.js +8 -7
- package/dist/collection/components/switch/switch.js +6 -5
- package/dist/collection/style/internal/shared_input-select-picker.scss +2 -2
- package/dist/esm/lime-elements.js +1 -1
- package/dist/esm/limel-breadcrumbs_6.entry.js +9 -7
- package/dist/esm/limel-checkbox.entry.js +9 -6
- package/dist/esm/limel-chip-set.entry.js +34 -3
- package/dist/esm/limel-helper-line_3.entry.js +1 -1
- package/dist/esm/limel-picker.entry.js +3 -3
- package/dist/esm/limel-select.entry.js +13 -10
- package/dist/esm/limel-slider.entry.js +7 -6
- package/dist/esm/limel-switch.entry.js +5 -4
- package/dist/esm/loader.js +1 -1
- package/dist/lime-elements/lime-elements.esm.js +1 -1
- package/dist/lime-elements/{p-1663fa9d.entry.js → p-150010b5.entry.js} +1 -1
- package/dist/lime-elements/p-5633c069.entry.js +1 -0
- package/dist/lime-elements/p-88dcba1e.entry.js +1 -0
- package/dist/lime-elements/p-bb40b96c.entry.js +23 -0
- package/dist/lime-elements/{p-95ca7426.entry.js → p-d1eaba10.entry.js} +1 -1
- package/dist/lime-elements/{p-4a272ac2.entry.js → p-d94f1c0f.entry.js} +1 -1
- package/dist/lime-elements/p-f0e3a147.entry.js +159 -0
- package/dist/lime-elements/{p-9aa921a2.entry.js → p-f96a8e2c.entry.js} +1 -1
- package/dist/lime-elements/style/internal/shared_input-select-picker.scss +2 -2
- package/dist/types/components/checkbox/checkbox.d.ts +8 -5
- package/dist/types/components/chip-set/chip-set.d.ts +2 -0
- package/dist/types/components/select/select.d.ts +4 -4
- package/dist/types/components/slider/slider.d.ts +4 -3
- package/dist/types/components/switch/switch.d.ts +4 -3
- package/dist/types/components.d.ts +10 -10
- package/package.json +1 -1
- package/dist/lime-elements/p-3de45ea6.entry.js +0 -159
- package/dist/lime-elements/p-677836c9.entry.js +0 -1
- package/dist/lime-elements/p-ec531ecb.entry.js +0 -1
- package/dist/lime-elements/p-ed73fb0f.entry.js +0 -23
|
@@ -1662,12 +1662,12 @@
|
|
|
1662
1662
|
padding-right: 2rem;
|
|
1663
1663
|
}
|
|
1664
1664
|
|
|
1665
|
-
.mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field__input {
|
|
1665
|
+
.mdc-text-field:not(.mdc-text-field--disabled):not(.lime-text-field--readonly) .mdc-text-field__input {
|
|
1666
1666
|
color: rgba(var(--contrast-1400), 1);
|
|
1667
1667
|
font-size: var(--limel-theme-default-font-size) !important;
|
|
1668
1668
|
font-family: inherit !important;
|
|
1669
1669
|
}
|
|
1670
|
-
.mdc-text-field.mdc-text-field--disabled .mdc-text-field__input {
|
|
1670
|
+
.mdc-text-field.mdc-text-field--disabled .mdc-text-field__input, .mdc-text-field.lime-text-field--readonly .mdc-text-field__input {
|
|
1671
1671
|
color: rgba(var(--contrast-1400), 0.5);
|
|
1672
1672
|
}
|
|
1673
1673
|
|
|
@@ -309,6 +309,28 @@ export class ChipSet {
|
|
|
309
309
|
getDescribedBy() {
|
|
310
310
|
return this.helperText ? this.helperTextId : undefined;
|
|
311
311
|
}
|
|
312
|
+
handleReadonlyChange(isReadonly) {
|
|
313
|
+
if (isReadonly) {
|
|
314
|
+
this.endEditing();
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
const input = this.host.shadowRoot.querySelector('input');
|
|
318
|
+
if (this.disabled ||
|
|
319
|
+
!input ||
|
|
320
|
+
this.host.shadowRoot.activeElement !== input) {
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
323
|
+
this.editMode = true;
|
|
324
|
+
this.startEdit.emit();
|
|
325
|
+
}
|
|
326
|
+
endEditing() {
|
|
327
|
+
if (!this.editMode) {
|
|
328
|
+
return;
|
|
329
|
+
}
|
|
330
|
+
this.editMode = false;
|
|
331
|
+
this.inputChipIndexSelected = null;
|
|
332
|
+
this.stopEdit.emit();
|
|
333
|
+
}
|
|
312
334
|
handleChangeChips(newValue, oldValue) {
|
|
313
335
|
if (isEqual(newValue, oldValue)) {
|
|
314
336
|
return;
|
|
@@ -321,13 +343,13 @@ export class ChipSet {
|
|
|
321
343
|
renderInputChips() {
|
|
322
344
|
return [
|
|
323
345
|
this.value.map(this.renderInputChip),
|
|
324
|
-
h("input", { tabIndex: this.disabled
|
|
346
|
+
h("input", { tabIndex: this.disabled ? -1 : 0, type: this.inputType, id: this.labelId, "aria-describedby": this.getDescribedBy(), "aria-invalid": this.isOutlineInvalid() ? 'true' : undefined, "aria-required": this.required ? 'true' : undefined, disabled: this.disabled, class: {
|
|
325
347
|
'mdc-text-field__input': true,
|
|
326
348
|
hidden: this.inputHidden(),
|
|
327
349
|
}, value: this.textValue, onBlur: this.handleInputBlur, onFocus: this.handleTextFieldFocus, onKeyDown: this.handleKeyDown, onInput: this.handleTextInput,
|
|
328
350
|
// Some browsers emit a change event on input elements, we need to stop
|
|
329
351
|
// that event from propagating since we are emitting our own change event
|
|
330
|
-
onChange: this.inputFieldOnChange, placeholder: this.isFull() ? '' : this.searchLabel, readonly: this.isFull(), autocomplete: this.autocomplete }),
|
|
352
|
+
onChange: this.inputFieldOnChange, placeholder: this.isFull() ? '' : this.searchLabel, readonly: this.readonly || this.isFull(), autocomplete: this.autocomplete }),
|
|
331
353
|
this.renderLeadingIcon(),
|
|
332
354
|
this.renderClearAllChipsButton(),
|
|
333
355
|
];
|
|
@@ -378,6 +400,9 @@ export class ChipSet {
|
|
|
378
400
|
* additional space when the user it not typing anything
|
|
379
401
|
*/
|
|
380
402
|
handleInputBlur() {
|
|
403
|
+
if (this.readonly) {
|
|
404
|
+
return;
|
|
405
|
+
}
|
|
381
406
|
if (this.emptyInputOnBlur) {
|
|
382
407
|
this.syncEmptyInput();
|
|
383
408
|
}
|
|
@@ -1079,6 +1104,9 @@ export class ChipSet {
|
|
|
1079
1104
|
static get elementRef() { return "host"; }
|
|
1080
1105
|
static get watchers() {
|
|
1081
1106
|
return [{
|
|
1107
|
+
"propName": "readonly",
|
|
1108
|
+
"methodName": "handleReadonlyChange"
|
|
1109
|
+
}, {
|
|
1082
1110
|
"propName": "value",
|
|
1083
1111
|
"methodName": "handleChangeChips"
|
|
1084
1112
|
}];
|
|
@@ -1709,32 +1709,32 @@
|
|
|
1709
1709
|
/*rtl:end:ignore*/
|
|
1710
1710
|
}
|
|
1711
1711
|
|
|
1712
|
-
.mdc-text-field.
|
|
1712
|
+
.mdc-text-field.lime-text-field--readonly .mdc-text-field__input {
|
|
1713
1713
|
background-color: transparent;
|
|
1714
1714
|
color: rgba(var(--contrast-1400), 1);
|
|
1715
1715
|
}
|
|
1716
|
-
.mdc-text-field.
|
|
1716
|
+
.mdc-text-field.lime-text-field--readonly.mdc-text-field--with-leading-icon .lime-looks-like-input-value, .mdc-text-field.lime-text-field--readonly.has-leading-icon .lime-looks-like-input-value {
|
|
1717
1717
|
padding-left: 1rem;
|
|
1718
1718
|
}
|
|
1719
|
-
.mdc-text-field.
|
|
1719
|
+
.mdc-text-field.lime-text-field--readonly .lime-looks-like-input-value {
|
|
1720
1720
|
color: rgba(var(--contrast-1400), 1);
|
|
1721
1721
|
opacity: 1;
|
|
1722
1722
|
}
|
|
1723
|
-
.mdc-text-field.
|
|
1723
|
+
.mdc-text-field.lime-text-field--readonly .mdc-floating-label {
|
|
1724
1724
|
color: rgba(var(--contrast-1200), 1);
|
|
1725
1725
|
}
|
|
1726
|
-
.mdc-text-field.
|
|
1727
|
-
.mdc-text-field.
|
|
1728
|
-
.mdc-text-field.
|
|
1726
|
+
.mdc-text-field.lime-text-field--readonly .mdc-notched-outline__leading,
|
|
1727
|
+
.mdc-text-field.lime-text-field--readonly .mdc-notched-outline__notch,
|
|
1728
|
+
.mdc-text-field.lime-text-field--readonly .mdc-notched-outline__trailing {
|
|
1729
1729
|
border-color: transparent;
|
|
1730
1730
|
}
|
|
1731
|
-
.mdc-text-field.
|
|
1731
|
+
.mdc-text-field.lime-text-field--readonly.mdc-text-field--invalid + .mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg {
|
|
1732
1732
|
color: var(--limel-theme-error-text-color);
|
|
1733
1733
|
}
|
|
1734
|
-
.mdc-text-field.
|
|
1734
|
+
.mdc-text-field.lime-text-field--readonly.mdc-text-field--with-trailing-icon input.mdc-text-field__input {
|
|
1735
1735
|
pointer-events: none;
|
|
1736
1736
|
}
|
|
1737
|
-
.mdc-text-field.
|
|
1737
|
+
.mdc-text-field.lime-text-field--readonly.mdc-text-field--with-trailing-icon .mdc-text-field__icon--trailing, .mdc-text-field.lime-text-field--readonly.mdc-text-field--with-trailing-icon a.lime-trailing-icon-for-link {
|
|
1738
1738
|
width: calc(100% - 1rem);
|
|
1739
1739
|
position: absolute;
|
|
1740
1740
|
left: 0;
|
|
@@ -1745,14 +1745,14 @@
|
|
|
1745
1745
|
color: rgba(var(--contrast-1200), 1);
|
|
1746
1746
|
border-radius: 0.25rem;
|
|
1747
1747
|
}
|
|
1748
|
-
.mdc-text-field.
|
|
1748
|
+
.mdc-text-field.lime-text-field--readonly.mdc-text-field--with-trailing-icon .mdc-text-field__icon--trailing limel-icon, .mdc-text-field.lime-text-field--readonly.mdc-text-field--with-trailing-icon a.lime-trailing-icon-for-link limel-icon {
|
|
1749
1749
|
width: 1.5rem;
|
|
1750
1750
|
margin-right: 0.25rem;
|
|
1751
1751
|
}
|
|
1752
|
-
.mdc-text-field.
|
|
1752
|
+
.mdc-text-field.lime-text-field--readonly.mdc-text-field--with-trailing-icon:hover .mdc-text-field__icon--trailing:hover, .mdc-text-field.lime-text-field--readonly.mdc-text-field--with-trailing-icon:hover a.lime-trailing-icon-for-link:hover {
|
|
1753
1753
|
box-shadow: var(--button-shadow-hovered);
|
|
1754
1754
|
}
|
|
1755
|
-
.mdc-text-field.
|
|
1755
|
+
.mdc-text-field.lime-text-field--readonly.mdc-text-field--with-trailing-icon:hover .mdc-text-field__icon--trailing:active, .mdc-text-field.lime-text-field--readonly.mdc-text-field--with-trailing-icon:hover a.lime-trailing-icon-for-link:active {
|
|
1756
1756
|
box-shadow: var(--button-shadow-pressed);
|
|
1757
1757
|
}
|
|
1758
1758
|
|
|
@@ -1778,15 +1778,15 @@
|
|
|
1778
1778
|
.mdc-text-field--with-trailing-icon .mdc-text-field__icon--trailing:focus-visible, .mdc-text-field--with-trailing-icon a.lime-trailing-icon-for-link:focus-visible {
|
|
1779
1779
|
box-shadow: 0 0 0 0.125rem var(--lime-primary-color, var(--limel-theme-primary-color)) !important;
|
|
1780
1780
|
}
|
|
1781
|
-
.mdc-text-field--with-trailing-icon:not(.mdc-text-field--disabled):hover .mdc-text-field__icon--trailing, .mdc-text-field--with-trailing-icon:not(.mdc-text-field--disabled):hover a.lime-trailing-icon-for-link {
|
|
1781
|
+
.mdc-text-field--with-trailing-icon:not(.mdc-text-field--disabled):not(.lime-text-field--readonly):hover .mdc-text-field__icon--trailing, .mdc-text-field--with-trailing-icon:not(.mdc-text-field--disabled):not(.lime-text-field--readonly):hover a.lime-trailing-icon-for-link {
|
|
1782
1782
|
box-shadow: var(--button-shadow-normal);
|
|
1783
1783
|
background-color: rgba(var(--contrast-100), 0.4);
|
|
1784
1784
|
}
|
|
1785
|
-
.mdc-text-field--with-trailing-icon:not(.mdc-text-field--disabled):hover .mdc-text-field__icon--trailing:hover, .mdc-text-field--with-trailing-icon:not(.mdc-text-field--disabled):hover a.lime-trailing-icon-for-link:hover {
|
|
1785
|
+
.mdc-text-field--with-trailing-icon:not(.mdc-text-field--disabled):not(.lime-text-field--readonly):hover .mdc-text-field__icon--trailing:hover, .mdc-text-field--with-trailing-icon:not(.mdc-text-field--disabled):not(.lime-text-field--readonly):hover a.lime-trailing-icon-for-link:hover {
|
|
1786
1786
|
background-color: rgb(var(--contrast-100));
|
|
1787
1787
|
box-shadow: var(--button-shadow-hovered);
|
|
1788
1788
|
}
|
|
1789
|
-
.mdc-text-field--with-trailing-icon:not(.mdc-text-field--disabled):hover .mdc-text-field__icon--trailing:active, .mdc-text-field--with-trailing-icon:not(.mdc-text-field--disabled):hover a.lime-trailing-icon-for-link:active {
|
|
1789
|
+
.mdc-text-field--with-trailing-icon:not(.mdc-text-field--disabled):not(.lime-text-field--readonly):hover .mdc-text-field__icon--trailing:active, .mdc-text-field--with-trailing-icon:not(.mdc-text-field--disabled):not(.lime-text-field--readonly):hover a.lime-trailing-icon-for-link:active {
|
|
1790
1790
|
box-shadow: var(--button-shadow-pressed);
|
|
1791
1791
|
}
|
|
1792
1792
|
.mdc-text-field--with-trailing-icon.mdc-text-field--invalid i.mdc-text-field__icon.invalid-icon limel-icon {
|
|
@@ -1826,12 +1826,13 @@ limel-notched-outline[has-value] .mdc-text-field__affix, limel-notched-outline:f
|
|
|
1826
1826
|
.mdc-text-field {
|
|
1827
1827
|
width: 100%;
|
|
1828
1828
|
}
|
|
1829
|
-
.mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field__affix,
|
|
1830
|
-
.mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field__icon {
|
|
1829
|
+
.mdc-text-field:not(.mdc-text-field--disabled):not(.lime-text-field--readonly) .mdc-text-field__affix,
|
|
1830
|
+
.mdc-text-field:not(.mdc-text-field--disabled):not(.lime-text-field--readonly) .mdc-text-field__icon {
|
|
1831
1831
|
color: rgb(var(--contrast-900));
|
|
1832
1832
|
}
|
|
1833
1833
|
.mdc-text-field.mdc-text-field--disabled .mdc-text-field__affix,
|
|
1834
|
-
.mdc-text-field.mdc-text-field--disabled .mdc-text-field__icon
|
|
1834
|
+
.mdc-text-field.mdc-text-field--disabled .mdc-text-field__icon, .mdc-text-field.lime-text-field--readonly .mdc-text-field__affix,
|
|
1835
|
+
.mdc-text-field.lime-text-field--readonly .mdc-text-field__icon {
|
|
1835
1836
|
color: rgb(var(--contrast-700));
|
|
1836
1837
|
}
|
|
1837
1838
|
|
|
@@ -1841,7 +1842,7 @@ limel-notched-outline[has-value] .mdc-text-field__affix, limel-notched-outline:f
|
|
|
1841
1842
|
z-index: 1;
|
|
1842
1843
|
pointer-events: none;
|
|
1843
1844
|
}
|
|
1844
|
-
.mdc-text-field:not(.mdc-text-field--focused):not(.mdc-text-field--invalid) .lime-formatted-input {
|
|
1845
|
+
.mdc-text-field:not(.mdc-text-field--focused):not(.mdc-text-field--invalid) .lime-formatted-input, .mdc-text-field.lime-text-field--readonly .lime-formatted-input {
|
|
1845
1846
|
display: block;
|
|
1846
1847
|
}
|
|
1847
1848
|
.lime-formatted-input + .mdc-text-field__input {
|
|
@@ -1852,8 +1853,11 @@ limel-notched-outline[has-value] .mdc-text-field__affix, limel-notched-outline:f
|
|
|
1852
1853
|
color: transparent;
|
|
1853
1854
|
-webkit-text-fill-color: transparent;
|
|
1854
1855
|
}
|
|
1855
|
-
|
|
1856
|
-
|
|
1856
|
+
|
|
1857
|
+
.mdc-text-field.lime-text-field--readonly .mdc-text-field__input[type=number] {
|
|
1858
|
+
color: transparent;
|
|
1859
|
+
-webkit-text-fill-color: transparent;
|
|
1860
|
+
user-select: none;
|
|
1857
1861
|
}
|
|
1858
1862
|
|
|
1859
1863
|
.autocomplete-list-container {
|
|
@@ -1878,10 +1882,10 @@ limel-notched-outline[has-value] .mdc-text-field__affix, limel-notched-outline:f
|
|
|
1878
1882
|
font-size: var(--limel-theme-default-font-size) !important;
|
|
1879
1883
|
font-family: inherit !important;
|
|
1880
1884
|
}
|
|
1881
|
-
.mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field__input {
|
|
1885
|
+
.mdc-text-field:not(.mdc-text-field--disabled):not(.lime-text-field--readonly) .mdc-text-field__input {
|
|
1882
1886
|
color: rgba(var(--contrast-1400), 1);
|
|
1883
1887
|
}
|
|
1884
|
-
.mdc-text-field.mdc-text-field--disabled .mdc-text-field__input {
|
|
1888
|
+
.mdc-text-field.mdc-text-field--disabled .mdc-text-field__input, .mdc-text-field.lime-text-field--readonly .mdc-text-field__input {
|
|
1885
1889
|
color: rgba(var(--contrast-1400), 0.5);
|
|
1886
1890
|
}
|
|
1887
1891
|
|
|
@@ -124,7 +124,7 @@ export class InputField {
|
|
|
124
124
|
'mdc-text-field': true,
|
|
125
125
|
'mdc-text-field--outlined': true,
|
|
126
126
|
'mdc-text-field--invalid': this.isInvalid(),
|
|
127
|
-
'mdc-text-field--disabled': this.disabled
|
|
127
|
+
'mdc-text-field--disabled': this.disabled,
|
|
128
128
|
'lime-text-field--readonly': this.readonly,
|
|
129
129
|
'mdc-text-field--required': this.required,
|
|
130
130
|
'lime-text-field--empty': this.isEmpty(),
|
|
@@ -365,7 +365,7 @@ export class InputField {
|
|
|
365
365
|
return;
|
|
366
366
|
}
|
|
367
367
|
}
|
|
368
|
-
return (h("span", { class: "lime-formatted-input lime-looks-like-input-value" }, renderValue));
|
|
368
|
+
return (h("span", { class: "lime-formatted-input lime-looks-like-input-value", "aria-hidden": this.readonly ? 'true' : undefined }, renderValue));
|
|
369
369
|
};
|
|
370
370
|
/**
|
|
371
371
|
* Key handler for the input field
|
|
@@ -419,7 +419,9 @@ export class InputField {
|
|
|
419
419
|
this.changeEmitter.flush();
|
|
420
420
|
};
|
|
421
421
|
this.renderAutocompleteList = () => {
|
|
422
|
-
if (this.
|
|
422
|
+
if (this.readonly ||
|
|
423
|
+
this.type === 'textarea' ||
|
|
424
|
+
this.completions.length === 0) {
|
|
423
425
|
return;
|
|
424
426
|
}
|
|
425
427
|
const dropdownZIndex = getComputedStyle(this.limelInputField).getPropertyValue('--dropdown-z-index');
|
|
@@ -524,7 +526,7 @@ export class InputField {
|
|
|
524
526
|
// flagged it either.
|
|
525
527
|
this.mdcTextField.valid = true;
|
|
526
528
|
}
|
|
527
|
-
this.mdcTextField.disabled = this.disabled
|
|
529
|
+
this.mdcTextField.disabled = this.disabled;
|
|
528
530
|
}
|
|
529
531
|
/**
|
|
530
532
|
* Returns the start position of the current text selection.
|
|
@@ -589,7 +591,7 @@ export class InputField {
|
|
|
589
591
|
properties.onBlur = this.onBlur;
|
|
590
592
|
properties.required = this.required;
|
|
591
593
|
properties.readonly = this.readonly;
|
|
592
|
-
properties.disabled = this.disabled
|
|
594
|
+
properties.disabled = this.disabled;
|
|
593
595
|
if (this.hasHelperText()) {
|
|
594
596
|
properties['aria-describedby'] = this.helperTextId;
|
|
595
597
|
}
|
|
@@ -599,7 +601,7 @@ export class InputField {
|
|
|
599
601
|
if (this.renderAutocompleteList()) {
|
|
600
602
|
properties['aria-controls'] = this.portalId;
|
|
601
603
|
}
|
|
602
|
-
return (h(Host, { key: '
|
|
604
|
+
return (h(Host, { key: '0f3e3dadc4345adb1abbbca32cd13a041172767b' }, h("limel-notched-outline", { key: '1f833a0fcb202529209ce58ce1c6ab313ab5e0e6', labelId: this.inputId, labelElementId: this.labelElementId, label: this.label, required: this.required, invalid: this.invalid || this.isInvalid(), disabled: this.disabled, readonly: this.readonly, hasValue: !!this.value, hasLeadingIcon: !!this.leadingIcon }, h("label", { key: '1f866999f40bd57e11dc80cb2c04935dcfe0f31b', slot: "content", class: this.getContainerClassList() }, this.renderLeadingIcon(), this.renderPrefix(), this.renderFormattedNumber(), this.renderInput(properties), this.renderSuffix(), this.renderTextarea(properties), this.renderTrailingLinkOrButton())), this.renderHelperLine(), this.renderAutocompleteList()));
|
|
603
605
|
}
|
|
604
606
|
valueWatcher(newValue) {
|
|
605
607
|
if (!this.mdcTextField || this.changeWaiting) {
|
|
@@ -236,9 +236,11 @@ limel-notched-outline[invalid]:not([invalid=false]) .limel-notched-outline--notc
|
|
|
236
236
|
color: var(--limel-theme-error-text-color);
|
|
237
237
|
}
|
|
238
238
|
limel-notched-outline[readonly]:not([readonly=false]) {
|
|
239
|
-
--limel-notched-outline-border-color: transparent !important;
|
|
240
239
|
--limel-notched-outline-background-color: transparent !important;
|
|
241
240
|
}
|
|
241
|
+
limel-notched-outline[readonly]:not([readonly=false]):not(:has([slot=content]:is(:focus-visible, :focus-within))) {
|
|
242
|
+
--limel-notched-outline-border-color: transparent !important;
|
|
243
|
+
}
|
|
242
244
|
limel-notched-outline[readonly]:not([readonly=false]) .limel-notched-outline--notch label {
|
|
243
245
|
transition-duration: 0s;
|
|
244
246
|
}
|
|
@@ -181,7 +181,7 @@ export class Picker {
|
|
|
181
181
|
this.updateTabIndex();
|
|
182
182
|
}
|
|
183
183
|
updateTabIndex() {
|
|
184
|
-
if (this.disabled
|
|
184
|
+
if (this.disabled) {
|
|
185
185
|
this.host.setAttribute('tabindex', '-1');
|
|
186
186
|
return;
|
|
187
187
|
}
|
|
@@ -199,7 +199,7 @@ export class Picker {
|
|
|
199
199
|
props.maxItems = 1;
|
|
200
200
|
}
|
|
201
201
|
return [
|
|
202
|
-
h("limel-chip-set", Object.assign({ key: '
|
|
202
|
+
h("limel-chip-set", Object.assign({ key: '48b339e4313ecdd3541e4256d96b54cebb04b0d8', type: "input", inputType: "search", label: this.label, helperText: this.helperText, leadingIcon: this.leadingIcon, value: this.chips, disabled: this.disabled, invalid: this.invalid, delimiter: this.renderDelimiter(), readonly: this.readonly, required: this.required, searchLabel: this.searchLabel, language: this.language, onInput: this.handleTextInput, onKeyDown: this.handleInputKeyDown, onChange: this.handleChange, onInteract: this.handleInteract, onStartEdit: this.handleInputFieldFocus, onStopEdit: this.handleStopEditAndBlur, emptyInputOnBlur: false, emptyInputOnChange: false, clearAllButton: this.multiple && !this.chipSetEditMode }, props)),
|
|
203
203
|
this.renderDropdown(),
|
|
204
204
|
];
|
|
205
205
|
}
|
|
@@ -254,7 +254,7 @@ export class Picker {
|
|
|
254
254
|
return Object.assign(Object.assign({}, action), { actions: [] });
|
|
255
255
|
}
|
|
256
256
|
shouldShowDropDownContent() {
|
|
257
|
-
if (this.isFull()) {
|
|
257
|
+
if (this.readonly || this.isFull()) {
|
|
258
258
|
return false;
|
|
259
259
|
}
|
|
260
260
|
return !!this.chipSetEditMode;
|
|
@@ -1674,7 +1674,7 @@ div.limel-select__field--open limel-helper-line {
|
|
|
1674
1674
|
display: none;
|
|
1675
1675
|
}
|
|
1676
1676
|
|
|
1677
|
-
limel-notched-outline:not([invalid]:not([invalid=false])) .limel-notched-outline--outlines {
|
|
1677
|
+
limel-notched-outline:not([invalid]:not([invalid=false])):not(:has([slot=content]:focus-visible)) .limel-notched-outline--outlines {
|
|
1678
1678
|
--limel-notched-outline-border-color: transparent;
|
|
1679
1679
|
}
|
|
1680
1680
|
|
|
@@ -1751,6 +1751,9 @@ limel-notched-outline:not([invalid]:not([invalid=false])) .limel-notched-outline
|
|
|
1751
1751
|
align-items: center;
|
|
1752
1752
|
border-radius: 0.375rem;
|
|
1753
1753
|
}
|
|
1754
|
+
.limel-select .limel-select-trigger:focus, .limel-select .limel-select-trigger:focus-visible {
|
|
1755
|
+
outline: none;
|
|
1756
|
+
}
|
|
1754
1757
|
.limel-select .limel-select-trigger,
|
|
1755
1758
|
.limel-select .limel-select__selected-option {
|
|
1756
1759
|
width: 100%;
|
|
@@ -1800,13 +1803,6 @@ limel-notched-outline:not([invalid]:not([invalid=false])) .limel-notched-outline
|
|
|
1800
1803
|
--limel-clickable-transition-speed: 0.2s;
|
|
1801
1804
|
--limel-clickable-transform-speed: 0.16s;
|
|
1802
1805
|
}
|
|
1803
|
-
.limel-select:not(.mdc-select--disabled) .limel-select-trigger:focus {
|
|
1804
|
-
outline: none;
|
|
1805
|
-
}
|
|
1806
|
-
.limel-select:not(.mdc-select--disabled) .limel-select-trigger:focus-visible {
|
|
1807
|
-
outline: none;
|
|
1808
|
-
box-shadow: var(--shadow-depth-8-focused);
|
|
1809
|
-
}
|
|
1810
1806
|
.limel-select:not(.mdc-select--disabled) .limel-select-trigger.limel-select--focused {
|
|
1811
1807
|
background-color: rgba(var(--contrast-100), 0.8);
|
|
1812
1808
|
}
|
|
@@ -57,10 +57,10 @@ export class Select {
|
|
|
57
57
|
*/
|
|
58
58
|
this.disabled = false;
|
|
59
59
|
/**
|
|
60
|
-
* Set to `true` to make the
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
60
|
+
* Set to `true` to make the select read-only.
|
|
61
|
+
* Use `readonly` when the select is only there to present the data it holds,
|
|
62
|
+
* and will not become possible for the current user to edit.
|
|
63
|
+
* It is then drawn without any sign that it could be interacted with.
|
|
64
64
|
*/
|
|
65
65
|
this.readonly = false;
|
|
66
66
|
/**
|
|
@@ -81,6 +81,9 @@ export class Select {
|
|
|
81
81
|
this.checkValid = false;
|
|
82
82
|
this.typeaheadBuffer = new TypeaheadBuffer();
|
|
83
83
|
this.handleMenuTriggerKeyDown = (event) => {
|
|
84
|
+
if (this.readonly) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
84
87
|
// Typeahead runs first, so that a space extends an ongoing typeahead
|
|
85
88
|
// instead of just opening the dropdown. A *bare* space is declined by
|
|
86
89
|
// `handleTypeaheadKey`, and keeps its usual meaning below.
|
|
@@ -180,7 +183,7 @@ export class Select {
|
|
|
180
183
|
}
|
|
181
184
|
render() {
|
|
182
185
|
const dropdownZIndex = getComputedStyle(this.host).getPropertyValue('--dropdown-z-index');
|
|
183
|
-
return (h(SelectTemplate, { key: '
|
|
186
|
+
return (h(SelectTemplate, { key: '768d4f7e5dae3eb741ab6e01eeda2379c76c62df', id: this.portalId, disabled: this.disabled, readonly: this.readonly, required: this.required, invalid: this.invalid, label: this.label, helperText: this.helperText, value: this.value, options: this.options, onMenuChange: this.handleMenuChange, onNativeChange: this.handleNativeChange, onTriggerKeyDown: this.handleMenuTriggerKeyDown, listRef: this.setListElement, multiple: this.multiple, isOpen: this.menuOpen, open: this.openMenu, close: this.closeMenu, checkValid: this.checkValid, native: this.shouldRenderNative(), dropdownZIndex: dropdownZIndex, anchor: this.getAnchorElement() }));
|
|
184
187
|
}
|
|
185
188
|
watchOpen(newValue, oldValue) {
|
|
186
189
|
if (this.checkValid) {
|
|
@@ -552,7 +555,7 @@ export class Select {
|
|
|
552
555
|
"optional": false,
|
|
553
556
|
"docs": {
|
|
554
557
|
"tags": [],
|
|
555
|
-
"text": "Set to `true` to make the
|
|
558
|
+
"text": "Set to `true` to make the select read-only.\nUse `readonly` when the select is only there to present the data it holds,\nand will not become possible for the current user to edit.\nIt is then drawn without any sign that it could be interacted with."
|
|
556
559
|
},
|
|
557
560
|
"getter": false,
|
|
558
561
|
"setter": false,
|
|
@@ -24,7 +24,7 @@ export const SelectTemplate = (props) => {
|
|
|
24
24
|
const classList = {
|
|
25
25
|
'limel-select': true,
|
|
26
26
|
'mdc-select': true,
|
|
27
|
-
'mdc-select--disabled': props.disabled,
|
|
27
|
+
'mdc-select--disabled': props.disabled || props.readonly,
|
|
28
28
|
'limel-select--readonly': props.readonly,
|
|
29
29
|
'limel-select--invalid': !isValid,
|
|
30
30
|
'limel-select--with-helper-text': typeof props.helperText === 'string',
|
|
@@ -62,9 +62,9 @@ const SelectValue = (props) => {
|
|
|
62
62
|
'limel-select-trigger': true,
|
|
63
63
|
'limel-select--focused': props.isOpen,
|
|
64
64
|
};
|
|
65
|
-
return (h("button", { id: TRIGGER_ID, slot: "content", class: anchorClassList, onClick: props.open, onKeyDown: props.onTriggerKeyDown, role: isCombobox ? 'combobox' : undefined, "aria-haspopup": "listbox", "aria-expanded": isCombobox ? String(props.isOpen) : undefined, "aria-controls": props.id, "aria-labelledby": props.label
|
|
65
|
+
return (h("button", { id: TRIGGER_ID, slot: "content", class: anchorClassList, onClick: props.readonly ? undefined : props.open, onKeyDown: props.onTriggerKeyDown, role: isCombobox ? 'combobox' : undefined, "aria-haspopup": "listbox", "aria-expanded": isCombobox ? String(props.isOpen) : undefined, "aria-controls": props.id, "aria-labelledby": props.label
|
|
66
66
|
? `${LABEL_ID} ${SELECTED_TEXT_ID}`
|
|
67
|
-
: SELECTED_TEXT_ID, "aria-describedby": getDescribedBy(props), "aria-required": isCombobox && props.required ? 'true' : undefined, "aria-invalid": isCombobox && !props.isValid ? 'true' : undefined, disabled: props.disabled || props.readonly }, h("span", { class: "mdc-select__selected-text-container limel-select__selected-option" }, getSelectedIcon(props.value), getSelectedPrimaryComponent(props.value), h("span", { id: SELECTED_TEXT_ID, class: "mdc-select__selected-text limel-select__selected-option__text" }, getSelectedText(props.value))), h(ShowIcon, Object.assign({}, props, { isValid: props.isValid })), h("span", { class: "mdc-select__dropdown-icon" }, h("svg", { class: "mdc-select__dropdown-icon-graphic", viewBox: "7 10 10 5", focusable: "false" }, h("polygon", { stroke: "none", "fill-rule": "evenodd", points: "7 10 12 15 17 10" })))));
|
|
67
|
+
: SELECTED_TEXT_ID, "aria-describedby": getDescribedBy(props), "aria-required": isCombobox && props.required ? 'true' : undefined, "aria-invalid": isCombobox && !props.isValid ? 'true' : undefined, "aria-readonly": isCombobox && props.readonly ? 'true' : undefined, disabled: props.disabled || (props.native && props.readonly) }, h("span", { class: "mdc-select__selected-text-container limel-select__selected-option" }, getSelectedIcon(props.value), getSelectedPrimaryComponent(props.value), h("span", { id: SELECTED_TEXT_ID, class: "mdc-select__selected-text limel-select__selected-option__text" }, getSelectedText(props.value))), h(ShowIcon, Object.assign({}, props, { isValid: props.isValid })), h("span", { class: "mdc-select__dropdown-icon" }, h("svg", { class: "mdc-select__dropdown-icon-graphic", viewBox: "7 10 10 5", focusable: "false" }, h("polygon", { stroke: "none", "fill-rule": "evenodd", points: "7 10 12 15 17 10" })))));
|
|
68
68
|
};
|
|
69
69
|
const ShowIcon = (props) => {
|
|
70
70
|
if (props.isValid) {
|
|
@@ -98,7 +98,7 @@ const NativeDropdown = (props) => {
|
|
|
98
98
|
const options = props.options
|
|
99
99
|
.filter((option) => !('separator' in option))
|
|
100
100
|
.map(renderOption(props.value));
|
|
101
|
-
return (h("select", { required: props.required, "aria-labelledby": props.label ? LABEL_ID : undefined, "aria-describedby": getDescribedBy(props), "aria-disabled": props.disabled, "aria-invalid": props.isValid ? undefined : 'true', onChange: props.onNativeChange, onFocus: props.open, onBlur: props.close, class: "limel-select__native-control", disabled: props.disabled, multiple: props.multiple }, options));
|
|
101
|
+
return (h("select", { required: props.required, "aria-labelledby": props.label ? LABEL_ID : undefined, "aria-describedby": getDescribedBy(props), "aria-disabled": props.disabled, "aria-invalid": props.isValid ? undefined : 'true', onChange: props.onNativeChange, onFocus: props.open, onBlur: props.close, class: "limel-select__native-control", disabled: props.disabled || props.readonly, multiple: props.multiple }, options));
|
|
102
102
|
};
|
|
103
103
|
const renderOption = (selectedOption) => {
|
|
104
104
|
return (option) => {
|
|
@@ -35,9 +35,10 @@ export class Slider {
|
|
|
35
35
|
*/
|
|
36
36
|
this.disabled = false;
|
|
37
37
|
/**
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
38
|
+
* Set to `true` to make the slider read-only.
|
|
39
|
+
* Use `readonly` when the slider is only there to present the data it holds,
|
|
40
|
+
* and will not become possible for the current user to edit.
|
|
41
|
+
* It is then drawn without any sign that it could be interacted with.
|
|
41
42
|
*/
|
|
42
43
|
this.readonly = false;
|
|
43
44
|
/**
|
|
@@ -270,15 +271,15 @@ export class Slider {
|
|
|
270
271
|
if (this.disabled || this.readonly) {
|
|
271
272
|
inputProps.disabled = true;
|
|
272
273
|
}
|
|
273
|
-
return (h(Host, { key: '
|
|
274
|
+
return (h(Host, { key: '4fe4c4d105e9b5cbee5299d8eccb215a2da9e79e', class: this.getContainerClassList() }, h("limel-notched-outline", { key: 'e5a0b3e92e1a91c61e2da6489b0b02a684126c98', labelId: this.inputId, label: this.label, required: this.required, invalid: this.invalid, disabled: this.disabled, readonly: this.readonly, hasValue: !this.isUnset, hasFloatingLabel: true }, h("div", { key: 'd4c854c56f632778ad84444de663883af90066f0', slot: "content" }, h("div", { key: '8ee47dd4e40db9ba9645d3725e6153df874318c1', class: "slider", style: { '--slider-fraction': `${fraction}` } }, h("input", Object.assign({ key: '44943cd55fcd376686cf7912665834932fc0f244', id: this.inputId, type: "range", min: min, max: max, value: this.displayValue, "aria-describedby": this.helperText
|
|
274
275
|
? this.helperTextId
|
|
275
276
|
: undefined, "aria-invalid": this.invalid ? 'true' : undefined, "aria-valuetext": this.isUnset
|
|
276
277
|
? translate.get('value-not-set', this.language)
|
|
277
278
|
: undefined, ref: (el) => {
|
|
278
279
|
this.inputElement = el;
|
|
279
|
-
}, onInput: this.handleInput, onChange: this.handleChange, onClick: this.handleClick }, inputProps)), h("div", { key: '
|
|
280
|
+
}, onInput: this.handleInput, onChange: this.handleChange, onClick: this.handleClick }, inputProps)), h("div", { key: 'fd5746650df94db4fd49a80566ae984b491c449d', class: "track" }, h("div", { key: '0096471f182419bcb738282520b3cd23bff091fd', class: "active" }), this.renderStepDots(min, max)), h("div", { key: '1babaa01bf6238f0728f19ad14b84355dc094498', class: "thumb" }, h("div", { key: 'b3d3cb4785a1aaed224961e3809fa1ea18ccbd94', class: "knob" }), h("div", { key: '2ca4e3cc659ecf02fd05a144a35e6bd9969ca7bf', class: "indicator", "aria-hidden": "true" }, this.isUnset
|
|
280
281
|
? '\u{2194}\u{FE0E}'
|
|
281
|
-
: this.displayValue))), h("div", { key: '
|
|
282
|
+
: this.displayValue))), h("div", { key: '4309cea286f1f2a22ac2ae625cb7a9cd286df3c5', class: "range-labels" }, h("span", { key: 'd60949614cd7ce926f3c745ef731ee7a132ae342', class: "min" }, this.multiplyByFactor(this.valuemin), this.unit), h("span", { key: '4aa7e0b42c83079738fd83b85e8d8e8b796df7c3', class: "max" }, this.multiplyByFactor(this.valuemax), this.unit)))), this.renderClearButton(), this.renderHelperLine()));
|
|
282
283
|
}
|
|
283
284
|
watchValue() {
|
|
284
285
|
this.syncStateFromValue();
|
|
@@ -329,7 +330,7 @@ export class Slider {
|
|
|
329
330
|
"optional": false,
|
|
330
331
|
"docs": {
|
|
331
332
|
"tags": [],
|
|
332
|
-
"text": "
|
|
333
|
+
"text": "Set to `true` to make the slider read-only.\nUse `readonly` when the slider is only there to present the data it holds,\nand will not become possible for the current user to edit.\nIt is then drawn without any sign that it could be interacted with."
|
|
333
334
|
},
|
|
334
335
|
"getter": false,
|
|
335
336
|
"setter": false,
|
|
@@ -29,9 +29,10 @@ export class Switch {
|
|
|
29
29
|
*/
|
|
30
30
|
this.disabled = false;
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
32
|
+
* Set to `true` to make the switch read-only.
|
|
33
|
+
* Use `readonly` when the switch is only there to present the data it holds,
|
|
34
|
+
* and will not become possible for the current user to edit.
|
|
35
|
+
* It is then drawn without any sign that it could be interacted with.
|
|
35
36
|
*/
|
|
36
37
|
this.readonly = false;
|
|
37
38
|
/**
|
|
@@ -78,7 +79,7 @@ export class Switch {
|
|
|
78
79
|
removeEnterClickable(this.host);
|
|
79
80
|
}
|
|
80
81
|
render() {
|
|
81
|
-
return (h(Host, { key: '
|
|
82
|
+
return (h(Host, { key: 'c85cef5b79b367de3c8ce07e486873f2311b47be' }, this.readonly
|
|
82
83
|
? this.renderReadonly()
|
|
83
84
|
: this.renderInteractive(), this.renderHelperLine()));
|
|
84
85
|
}
|
|
@@ -150,7 +151,7 @@ export class Switch {
|
|
|
150
151
|
"optional": false,
|
|
151
152
|
"docs": {
|
|
152
153
|
"tags": [],
|
|
153
|
-
"text": "
|
|
154
|
+
"text": "Set to `true` to make the switch read-only.\nUse `readonly` when the switch is only there to present the data it holds,\nand will not become possible for the current user to edit.\nIt is then drawn without any sign that it could be interacted with."
|
|
154
155
|
},
|
|
155
156
|
"getter": false,
|
|
156
157
|
"setter": false,
|
|
@@ -86,7 +86,7 @@ $height-of-mdc-text-field: 2.5rem; //This is written directly in `rem`, becurse
|
|
|
86
86
|
var(--lime-primary-color, var(--limel-theme-primary-color)) !important; // has to be `!important` since we're using `box-shadow` insted of `outline` which is also used in `hover` mode
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
|
-
&:not(.mdc-text-field--disabled):hover {
|
|
89
|
+
&:not(.mdc-text-field--disabled):not(.lime-text-field--readonly):hover {
|
|
90
90
|
.mdc-text-field__icon--trailing {
|
|
91
91
|
box-shadow: var(--button-shadow-normal);
|
|
92
92
|
background-color: rgba(var(--contrast-100), 0.4);
|
|
@@ -113,7 +113,7 @@ $height-of-mdc-text-field: 2.5rem; //This is written directly in `rem`, becurse
|
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
@mixin readonly-overrides {
|
|
116
|
-
.mdc-text-field.
|
|
116
|
+
.mdc-text-field.lime-text-field--readonly {
|
|
117
117
|
.mdc-text-field__input {
|
|
118
118
|
background-color: transparent;
|
|
119
119
|
color: $input-text-color;
|