@momentum-design/components 0.141.2 → 0.141.3

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.
@@ -110,7 +110,7 @@ class Textarea extends CharacterLimitMixin(KeyDownHandledMixin(KeyToActionMixin(
110
110
  * @param event - The pointer event.
111
111
  */
112
112
  this.handlePointerDown = (event) => {
113
- if (this.readonly) {
113
+ if (this.disabled || this.softDisabled || this.readonly) {
114
114
  return;
115
115
  }
116
116
  const resizeButton = event.currentTarget;
@@ -129,6 +129,8 @@ class Textarea extends CharacterLimitMixin(KeyDownHandledMixin(KeyToActionMixin(
129
129
  * @param event - The pointer event.
130
130
  */
131
131
  this.handlePointerMove = (event) => {
132
+ if (this.disabled || this.softDisabled || this.readonly)
133
+ return;
132
134
  if (!this.textarea)
133
135
  return;
134
136
  const deltaY = event.clientY - this.resizeStartY;
@@ -241,7 +243,9 @@ class Textarea extends CharacterLimitMixin(KeyDownHandledMixin(KeyToActionMixin(
241
243
  * Sets the form value.
242
244
  * @returns void
243
245
  */
244
- updateValue() {
246
+ updateValue(event) {
247
+ if (this.preventSoftDisabledChange(event, this.value))
248
+ return;
245
249
  this.value = this.textarea.value;
246
250
  this.internals.setFormValue(this.textarea.value);
247
251
  this.announceCharacterLimitWarning();
@@ -257,7 +261,9 @@ class Textarea extends CharacterLimitMixin(KeyDownHandledMixin(KeyToActionMixin(
257
261
  * @param event - Event which contains information about the value change.
258
262
  */
259
263
  onChange(event) {
260
- this.updateValue();
264
+ if (this.preventSoftDisabledChange(event, this.value))
265
+ return;
266
+ this.updateValue(event);
261
267
  const EventConstructor = event.constructor;
262
268
  this.dispatchEvent(new EventConstructor(event.type, event));
263
269
  }
@@ -272,7 +278,7 @@ class Textarea extends CharacterLimitMixin(KeyDownHandledMixin(KeyToActionMixin(
272
278
  * @param event - The keyboard event.
273
279
  */
274
280
  handleResizeKeyDown(event) {
275
- if (this.readonly) {
281
+ if (this.disabled || this.softDisabled || this.readonly) {
276
282
  return;
277
283
  }
278
284
  const currentRows = this.rows || DEFAULTS.ROWS;
@@ -307,6 +313,7 @@ class Textarea extends CharacterLimitMixin(KeyDownHandledMixin(KeyToActionMixin(
307
313
  .value="${this.value}"
308
314
  ?disabled="${this.disabled}"
309
315
  ?readonly="${this.readonly}"
316
+ aria-disabled="${this.disabled || this.softDisabled}"
310
317
  ?required="${this.required}"
311
318
  placeholder=${ifDefined(this.placeholder)}
312
319
  rows=${ifDefined(this.rows)}
@@ -317,6 +324,7 @@ class Textarea extends CharacterLimitMixin(KeyDownHandledMixin(KeyToActionMixin(
317
324
  minlength=${ifDefined(this.minlength)}
318
325
  maxlength=${ifDefined(this.maxlength)}
319
326
  dirname=${ifDefined(this.dirname)}
327
+ @beforeinput=${this.preventSoftDisabledInput}
320
328
  @input=${this.updateValue}
321
329
  @change=${this.onChange}
322
330
  aria-describedby="${ifDefined(this.helpText ? FORMFIELD_DEFAULTS.HELPER_TEXT_ID : '')}"
@@ -337,7 +345,8 @@ class Textarea extends CharacterLimitMixin(KeyDownHandledMixin(KeyToActionMixin(
337
345
  size="24"
338
346
  prefix-icon="resize-corner-regular"
339
347
  aria-label=${(_b = this.resizeButtonAriaLabel) !== null && _b !== void 0 ? _b : ''}
340
- ?disabled="${this.disabled || this.readonly}"
348
+ ?disabled="${this.disabled || this.softDisabled || this.readonly}"
349
+ ?soft-disabled="${this.softDisabled}"
341
350
  @keydown=${this.handleResizeKeyDown}
342
351
  @pointerdown=${this.handlePointerDown}
343
352
  ></mdc-button>
@@ -191,6 +191,10 @@ class TimePicker extends FormInternalsMixin(DataAriaLabelMixin(FormfieldWrapper)
191
191
  changedProperties.has('readonly')) {
192
192
  if (this.disabled || this.softDisabled || this.readonly) {
193
193
  this.displayPopover = false;
194
+ if (this.pendingDigitTimeout)
195
+ clearTimeout(this.pendingDigitTimeout);
196
+ this.pendingDigits = '';
197
+ this.parseValueToInternal();
194
198
  }
195
199
  }
196
200
  }
@@ -326,6 +330,8 @@ class TimePicker extends FormInternalsMixin(DataAriaLabelMixin(FormfieldWrapper)
326
330
  * @internal
327
331
  */
328
332
  commitValue() {
333
+ if (this.disabled || this.softDisabled || this.readonly)
334
+ return;
329
335
  const newValue = this.internalToValue();
330
336
  if (newValue && newValue !== this.value) {
331
337
  this.value = newValue;
@@ -380,6 +386,8 @@ class TimePicker extends FormInternalsMixin(DataAriaLabelMixin(FormfieldWrapper)
380
386
  */
381
387
  handleOptionClick(optionValue) {
382
388
  var _a;
389
+ if (this.disabled || this.softDisabled || this.readonly)
390
+ return;
383
391
  this.value = optionValue;
384
392
  this.parseValueToInternal();
385
393
  this.displayPopover = false;
@@ -510,6 +518,11 @@ class TimePicker extends FormInternalsMixin(DataAriaLabelMixin(FormfieldWrapper)
510
518
  */
511
519
  handlePeriodKeydown(event) {
512
520
  var _a, _b;
521
+ if (this.disabled || this.softDisabled || this.readonly) {
522
+ if (event.key === KEYS.ARROW_UP || event.key === KEYS.ARROW_DOWN)
523
+ event.preventDefault();
524
+ return;
525
+ }
513
526
  switch (event.key) {
514
527
  case KEYS.ARROW_UP:
515
528
  case KEYS.ARROW_DOWN:
@@ -551,6 +564,11 @@ class TimePicker extends FormInternalsMixin(DataAriaLabelMixin(FormfieldWrapper)
551
564
  */
552
565
  handleSpinbuttonKeydown(event, field) {
553
566
  var _a, _b, _c, _d, _e, _f;
567
+ if (this.disabled || this.softDisabled || this.readonly) {
568
+ if (event.key === KEYS.ARROW_UP || event.key === KEYS.ARROW_DOWN)
569
+ event.preventDefault();
570
+ return;
571
+ }
554
572
  const is12h = this.timeFormat === TIME_FORMAT.TWELVE_HOUR;
555
573
  let minVal;
556
574
  let maxVal;
@@ -795,7 +813,10 @@ class TimePicker extends FormInternalsMixin(DataAriaLabelMixin(FormfieldWrapper)
795
813
  placeholder="${this.hoursPlaceholder}"
796
814
  ?disabled="${this.disabled}"
797
815
  ?readonly="${this.readonly}"
816
+ aria-disabled="${this.disabled || this.softDisabled}"
817
+ @beforeinput="${this.preventSoftDisabledInput}"
798
818
  tabindex="${this.disabled ? '-1' : '0'}"
819
+ @input="${(event) => this.preventSoftDisabledChange(event, this.internalHours)}"
799
820
  @keydown="${this.handleHoursKeydown}"
800
821
  @focus="${this.handleSpinbuttonFocus}"
801
822
  />
@@ -813,7 +834,10 @@ class TimePicker extends FormInternalsMixin(DataAriaLabelMixin(FormfieldWrapper)
813
834
  placeholder="${this.minutesPlaceholder}"
814
835
  ?disabled="${this.disabled}"
815
836
  ?readonly="${this.readonly}"
837
+ aria-disabled="${this.disabled || this.softDisabled}"
838
+ @beforeinput="${this.preventSoftDisabledInput}"
816
839
  tabindex="${this.disabled ? '-1' : '0'}"
840
+ @input="${(event) => this.preventSoftDisabledChange(event, this.internalMinutes)}"
817
841
  @keydown="${this.handleMinutesKeydown}"
818
842
  @focus="${this.handleSpinbuttonFocus}"
819
843
  />
@@ -830,7 +854,10 @@ class TimePicker extends FormInternalsMixin(DataAriaLabelMixin(FormfieldWrapper)
830
854
  placeholder="${this.periodPlaceholder}"
831
855
  ?disabled="${this.disabled}"
832
856
  ?readonly="${this.readonly}"
857
+ aria-disabled="${this.disabled || this.softDisabled}"
858
+ @beforeinput="${this.preventSoftDisabledInput}"
833
859
  tabindex="${this.disabled ? '-1' : '0'}"
860
+ @input="${(event) => this.preventSoftDisabledChange(event, this.displayPeriod || '')}"
834
861
  @keydown="${this.handlePeriodKeydown}"
835
862
  @focus="${this.handleSpinbuttonFocus}"
836
863
  />
@@ -846,6 +873,7 @@ class TimePicker extends FormInternalsMixin(DataAriaLabelMixin(FormfieldWrapper)
846
873
  aria-expanded="${this.displayPopover ? 'true' : 'false'}"
847
874
  aria-haspopup="true"
848
875
  ?disabled="${this.disabled}"
876
+ ?soft-disabled="${this.softDisabled}"
849
877
  size="20"
850
878
  @click="${this.handleDropdownClick}"
851
879
  ></mdc-button>
@@ -158,6 +158,10 @@ class Toggle extends KeyToActionMixin(ControlTypeMixin(AutoFocusOnMountMixin(For
158
158
  handleKeyDown(event) {
159
159
  var _a;
160
160
  const action = this.getActionForKeyEvent(event);
161
+ if (this.softDisabled && action === ACTIONS.ENTER) {
162
+ event.preventDefault();
163
+ return;
164
+ }
161
165
  if ((this.readonly || this.softDisabled) && action === ACTIONS.SPACE) {
162
166
  event.preventDefault();
163
167
  }
@@ -217,6 +221,7 @@ class Toggle extends KeyToActionMixin(ControlTypeMixin(AutoFocusOnMountMixin(For
217
221
  value="${ifDefined(this.value)}"
218
222
  .checked="${this.checked}"
219
223
  aria-checked="${this.checked}"
224
+ aria-disabled="${this.disabled || this.softDisabled}"
220
225
  .disabled="${this.disabled}"
221
226
  ?readonly="${this.readonly}"
222
227
  aria-describedby="${ifDefined(this.helpText ? FORMFIELD_DEFAULTS.HELPER_TEXT_ID : '')}"
@@ -47825,6 +47825,24 @@
47825
47825
  ],
47826
47826
  "description": "Prevents default behavior for mouse and keyboard events.\nThis prevents user interaction with the slider when it is soft-disabled."
47827
47827
  },
47828
+ {
47829
+ "kind": "method",
47830
+ "name": "preventSoftDisabledChange",
47831
+ "privacy": "private",
47832
+ "return": {
47833
+ "type": {
47834
+ "text": "boolean"
47835
+ }
47836
+ },
47837
+ "parameters": [
47838
+ {
47839
+ "name": "event",
47840
+ "type": {
47841
+ "text": "Event"
47842
+ }
47843
+ }
47844
+ ]
47845
+ },
47828
47846
  {
47829
47847
  "kind": "field",
47830
47848
  "name": "range",
@@ -47841,12 +47859,6 @@
47841
47859
  "name": "renderTicks",
47842
47860
  "privacy": "private"
47843
47861
  },
47844
- {
47845
- "kind": "method",
47846
- "name": "setSoftDisabled",
47847
- "privacy": "private",
47848
- "description": "Sets the soft-disabled state for the slider.\nApplies the appropriate ARIA attributes."
47849
- },
47850
47862
  {
47851
47863
  "kind": "field",
47852
47864
  "name": "softDisabled",
@@ -51924,6 +51936,14 @@
51924
51936
  "kind": "method",
51925
51937
  "name": "updateValue",
51926
51938
  "privacy": "private",
51939
+ "parameters": [
51940
+ {
51941
+ "name": "event",
51942
+ "type": {
51943
+ "text": "Event"
51944
+ }
51945
+ }
51946
+ ],
51927
51947
  "description": "Updates the value of the textarea field.\nSets the form value.",
51928
51948
  "return": {
51929
51949
  "type": {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@momentum-design/components",
3
3
  "packageManager": "yarn@3.2.4",
4
- "version": "0.141.2",
4
+ "version": "0.141.3",
5
5
  "engines": {
6
6
  "node": ">=24.0.0",
7
7
  "npm": ">=8.0.0"