@tedi-design-system/angular 9.0.0-rc.13 → 9.0.0-rc.14

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tedi-design-system/angular",
3
- "version": "9.0.0-rc.13",
3
+ "version": "9.0.0-rc.14",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "community.mjs",
package/tedi/index.d.ts CHANGED
@@ -6454,8 +6454,14 @@ interface FormFieldControl<T = unknown> {
6454
6454
  */
6455
6455
  readOnly?: Signal<boolean>;
6456
6456
  /**
6457
- * Set to `false` by controls that never take a clear button — a textarea, per
6458
- * the design. The field then skips its button whatever `clearable` says.
6457
+ * Width in pixels of the control's own vertical scrollbar, 0 when it has none.
6458
+ * Reported by controls that reach under the field's additions — a textarea —
6459
+ * so the field can move them clear of the scrollbar.
6460
+ */
6461
+ scrollbarWidth?: Signal<number>;
6462
+ /**
6463
+ * Set to `false` by controls that never take a clear button. The field then
6464
+ * skips its button whatever `clearable` says.
6459
6465
  */
6460
6466
  readonly clearButton?: false;
6461
6467
  }
@@ -7150,7 +7156,7 @@ declare class FormFieldComponent implements FieldContext {
7150
7156
  /**
7151
7157
  * Whether the field shows a clear button once the control holds a value. The
7152
7158
  * single source of truth for every control inside it — date and time fields
7153
- * read it too instead of declaring their own input. A textarea never gets one.
7159
+ * read it too instead of declaring their own input.
7154
7160
  * @default true
7155
7161
  */
7156
7162
  clearable: _angular_core.InputSignalWithTransform<boolean, unknown>;
@@ -7190,6 +7196,7 @@ declare class FormFieldComponent implements FieldContext {
7190
7196
  */
7191
7197
  readonly renderClearButton: _angular_core.Signal<boolean>;
7192
7198
  readonly ownsSurface: _angular_core.Signal<boolean>;
7199
+ readonly controlScrollbarWidth: _angular_core.Signal<string>;
7193
7200
  readonly disabled: _angular_core.Signal<boolean>;
7194
7201
  readonly invalid: _angular_core.Signal<boolean>;
7195
7202
  readonly valid: _angular_core.Signal<boolean>;
@@ -7209,6 +7216,10 @@ declare class FormFieldComponent implements FieldContext {
7209
7216
  readonly resolvedIcon: _angular_core.Signal<FormFieldIcon | undefined>;
7210
7217
  readonly iconSize: _angular_core.Signal<IconSize>;
7211
7218
  readonly showClearButton: _angular_core.Signal<boolean>;
7219
+ /**
7220
+ * Focus goes back to the control: the button hides once the value is gone, so
7221
+ * it would otherwise drop to the page.
7222
+ */
7212
7223
  clear(): void;
7213
7224
  /**
7214
7225
  * The box padding and the layout wrappers around the control are outside its
@@ -8533,7 +8544,7 @@ declare class TextFieldComponent implements OnInit, ControlValueAccessor, FormFi
8533
8544
  }
8534
8545
 
8535
8546
  type TextareaSize = Exclude<InputSize, "large">;
8536
- declare class TextareaComponent implements OnInit, ControlValueAccessor, FormFieldControl {
8547
+ declare class TextareaComponent implements OnInit, OnDestroy, ControlValueAccessor, FormFieldControl {
8537
8548
  private el;
8538
8549
  private renderer;
8539
8550
  private readonly fieldContext;
@@ -8574,18 +8585,19 @@ declare class TextareaComponent implements OnInit, ControlValueAccessor, FormFie
8574
8585
  * Number of rows the field rests at, and the fewest it can ever show. With no
8575
8586
  * `height` set this is what sizes the textarea, so it is the input to reach
8576
8587
  * for when a field needs to be taller or shorter — in every mode, not just
8577
- * while `autoGrow` is on.
8588
+ * while `autoGrow` is on. Values below 1 are treated as 1. It never rests
8589
+ * below the native `rows` (2 by default), so set `rows="1"` for a single-row
8590
+ * field.
8578
8591
  *
8579
8592
  * @default 3
8580
8593
  */
8581
8594
  minRows: _angular_core.InputSignal<number>;
8582
8595
  /**
8583
8596
  * Most rows the field shows before it starts scrolling. Caps `autoGrow`'s
8584
- * growth and how far the resize grip can be dragged.
8585
- *
8586
- * @default 12
8597
+ * growth and how far the resize grip can be dragged. Unset, neither has a
8598
+ * row limit.
8587
8599
  */
8588
- maxRows: _angular_core.InputSignal<number>;
8600
+ maxRows: _angular_core.InputSignal<number | undefined>;
8589
8601
  /**
8590
8602
  * Exact resting height (e.g. `'7.5rem'`, `200` → `200px`), for the rare field
8591
8603
  * that has to match something other than a whole number of rows. Prefer
@@ -8605,25 +8617,39 @@ declare class TextareaComponent implements OnInit, ControlValueAccessor, FormFie
8605
8617
  readonly paintsSurface: _angular_core.Signal<boolean>;
8606
8618
  readonly valid: _angular_core.Signal<boolean>;
8607
8619
  readonly heightStyle: _angular_core.Signal<string | null>;
8620
+ readonly resolvedMinRows: _angular_core.Signal<number>;
8608
8621
  /**
8609
8622
  * `minRows` is the resting height as much as it is the floor: with no `height`
8610
8623
  * the textarea has nothing else to size to, so the floor is what it settles
8611
8624
  * at. That makes it the one number a consumer has to change.
8612
8625
  */
8613
8626
  readonly minHeightStyle: _angular_core.Signal<string>;
8614
- readonly maxHeightStyle: _angular_core.Signal<string>;
8627
+ readonly maxHeightStyle: _angular_core.Signal<string | null>;
8615
8628
  readonly readOnlyAttribute: _angular_core.InputSignalWithTransform<boolean, unknown>;
8616
8629
  readonly readOnlyProperty: _angular_core.InputSignalWithTransform<boolean, unknown>;
8617
8630
  readonly readOnly: _angular_core.Signal<boolean>;
8618
- /** Textareas take no clear button, even inside a `clearable` form field. */
8619
- readonly clearButton = false;
8631
+ /**
8632
+ * Disables the textarea from a parent template. Combined with the
8633
+ * reactive-forms disabled state and any input-group state, so a wrapping
8634
+ * `tedi-form-field` sees it too.
8635
+ */
8636
+ readonly disabledInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
8620
8637
  readonly disabled: _angular_core.Signal<boolean>;
8621
8638
  private readonly derived;
8622
8639
  readonly describedBy: _tedi_design_system_angular_tedi.ControlDescribedBy;
8623
8640
  readonly touched: _angular_core.Signal<boolean>;
8624
8641
  readonly dirty: _angular_core.Signal<boolean>;
8625
8642
  readonly invalid: _angular_core.Signal<boolean>;
8643
+ /**
8644
+ * The textarea reaches under a wrapping field's clear button and icon, so a
8645
+ * classic scrollbar would land beneath them. Reported so the field can move
8646
+ * them clear of it; overlay scrollbars take no room and stay at 0.
8647
+ */
8648
+ readonly scrollbarWidth: _angular_core.WritableSignal<number>;
8649
+ private resizeObserver;
8626
8650
  ngOnInit(): void;
8651
+ ngOnDestroy(): void;
8652
+ private measureScrollbarWidth;
8627
8653
  setDescribedBy(ids: string[]): void;
8628
8654
  private formDisabled;
8629
8655
  private onChange;
@@ -8639,7 +8665,7 @@ declare class TextareaComponent implements OnInit, ControlValueAccessor, FormFie
8639
8665
  focus(): void;
8640
8666
  reset(): void;
8641
8667
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextareaComponent, never>;
8642
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextareaComponent, "textarea[tedi-textarea]", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "invalidInput": { "alias": "invalid"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "autoGrow": { "alias": "autoGrow"; "required": false; "isSignal": true; }; "minRows": { "alias": "minRows"; "required": false; "isSignal": true; }; "maxRows": { "alias": "maxRows"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "readOnlyAttribute": { "alias": "readonly"; "required": false; "isSignal": true; }; "readOnlyProperty": { "alias": "readOnly"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
8668
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextareaComponent, "textarea[tedi-textarea]", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "invalidInput": { "alias": "invalid"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "autoGrow": { "alias": "autoGrow"; "required": false; "isSignal": true; }; "minRows": { "alias": "minRows"; "required": false; "isSignal": true; }; "maxRows": { "alias": "maxRows"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "readOnlyAttribute": { "alias": "readonly"; "required": false; "isSignal": true; }; "readOnlyProperty": { "alias": "readOnly"; "required": false; "isSignal": true; }; "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
8643
8669
  }
8644
8670
 
8645
8671
  type TimePickerVariant = "scroll" | "slots" | "dropdown";