@ni/nimble-components 18.8.4 → 18.9.1

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 (58) hide show
  1. package/dist/all-components-bundle.js +472 -285
  2. package/dist/all-components-bundle.js.map +1 -1
  3. package/dist/all-components-bundle.min.js +570 -507
  4. package/dist/all-components-bundle.min.js.map +1 -1
  5. package/dist/esm/patterns/error/styles.js +2 -6
  6. package/dist/esm/patterns/error/styles.js.map +1 -1
  7. package/dist/esm/table/components/cell/index.d.ts +4 -13
  8. package/dist/esm/table/components/cell/index.js +4 -35
  9. package/dist/esm/table/components/cell/index.js.map +1 -1
  10. package/dist/esm/table/components/cell/styles.js +1 -1
  11. package/dist/esm/table/components/cell/template.d.ts +3 -1
  12. package/dist/esm/table/components/cell/template.js +7 -3
  13. package/dist/esm/table/components/cell/template.js.map +1 -1
  14. package/dist/esm/table/components/row/index.d.ts +1 -0
  15. package/dist/esm/table/components/row/index.js +9 -0
  16. package/dist/esm/table/components/row/index.js.map +1 -1
  17. package/dist/esm/table/components/row/template.js +1 -2
  18. package/dist/esm/table/components/row/template.js.map +1 -1
  19. package/dist/esm/table/index.d.ts +9 -0
  20. package/dist/esm/table/index.js +10 -0
  21. package/dist/esm/table/index.js.map +1 -1
  22. package/dist/esm/table/models/virtualizer.d.ts +1 -0
  23. package/dist/esm/table/models/virtualizer.js +21 -0
  24. package/dist/esm/table/models/virtualizer.js.map +1 -1
  25. package/dist/esm/table/template.js +1 -1
  26. package/dist/esm/table/template.js.map +1 -1
  27. package/dist/esm/table-column/base/cell-view/index.d.ts +16 -0
  28. package/dist/esm/table-column/base/cell-view/index.js +22 -0
  29. package/dist/esm/table-column/base/cell-view/index.js.map +1 -0
  30. package/dist/esm/table-column/base/index.d.ts +10 -13
  31. package/dist/esm/table-column/base/index.js +12 -0
  32. package/dist/esm/table-column/base/index.js.map +1 -1
  33. package/dist/esm/table-column/text/cell-view/index.d.ts +18 -0
  34. package/dist/esm/table-column/text/cell-view/index.js +35 -0
  35. package/dist/esm/table-column/text/cell-view/index.js.map +1 -0
  36. package/dist/esm/table-column/text/cell-view/styles.d.ts +1 -0
  37. package/dist/esm/table-column/text/{styles.js → cell-view/styles.js} +2 -2
  38. package/dist/esm/table-column/text/cell-view/styles.js.map +1 -0
  39. package/dist/esm/table-column/text/cell-view/template.d.ts +2 -0
  40. package/dist/esm/table-column/text/cell-view/template.js +17 -0
  41. package/dist/esm/table-column/text/cell-view/template.js.map +1 -0
  42. package/dist/esm/table-column/text/index.d.ts +2 -3
  43. package/dist/esm/table-column/text/index.js +2 -4
  44. package/dist/esm/table-column/text/index.js.map +1 -1
  45. package/dist/esm/text-area/index.d.ts +48 -1
  46. package/dist/esm/text-area/index.js +84 -2
  47. package/dist/esm/text-area/index.js.map +1 -1
  48. package/dist/esm/text-area/styles.js +72 -18
  49. package/dist/esm/text-area/styles.js.map +1 -1
  50. package/dist/esm/text-area/template.d.ts +4 -0
  51. package/dist/esm/text-area/template.js +62 -0
  52. package/dist/esm/text-area/template.js.map +1 -0
  53. package/package.json +1 -1
  54. package/dist/esm/table-column/text/styles.d.ts +0 -1
  55. package/dist/esm/table-column/text/styles.js.map +0 -1
  56. package/dist/esm/table-column/text/template.d.ts +0 -3
  57. package/dist/esm/table-column/text/template.js +0 -24
  58. package/dist/esm/table-column/text/template.js.map +0 -1
@@ -0,0 +1,35 @@
1
+ import { __decorate } from "tslib";
2
+ import { observable, volatile } from '@microsoft/fast-element';
3
+ import { DesignSystem } from '@microsoft/fast-foundation';
4
+ import { TableCellView } from '../../base/cell-view';
5
+ import { styles } from './styles';
6
+ import { template } from './template';
7
+ /**
8
+ * A cell view for displaying strings
9
+ */
10
+ export class TableColumnTextCellView extends TableCellView {
11
+ constructor() {
12
+ super(...arguments);
13
+ /** @internal */
14
+ this.isValidContentAndHasOverflow = false;
15
+ }
16
+ get content() {
17
+ return typeof this.cellRecord.value === 'string'
18
+ ? this.cellRecord.value
19
+ : this.columnConfig.placeholder;
20
+ }
21
+ }
22
+ __decorate([
23
+ observable
24
+ ], TableColumnTextCellView.prototype, "isValidContentAndHasOverflow", void 0);
25
+ __decorate([
26
+ volatile
27
+ ], TableColumnTextCellView.prototype, "content", null);
28
+ const textCellView = TableColumnTextCellView.compose({
29
+ baseName: 'table-column-text-cell-view',
30
+ template,
31
+ styles
32
+ });
33
+ DesignSystem.getOrCreate().withPrefix('nimble').register(textCellView());
34
+ export const tableColumnTextCellViewTag = DesignSystem.tagFor(TableColumnTextCellView);
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/table-column/text/cell-view/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAK1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQtC;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,aAG5C;IAHD;;QAII,gBAAgB;QAET,iCAA4B,GAAG,KAAK,CAAC;IAWhD,CAAC;IALG,IAAW,OAAO;QACd,OAAO,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,QAAQ;YAC5C,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK;YACvB,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;IACxC,CAAC;CACJ;AAXG;IADC,UAAU;6EACiC;AAM5C;IADC,QAAQ;sDAKR;AAGL,MAAM,YAAY,GAAG,uBAAuB,CAAC,OAAO,CAAC;IACjD,QAAQ,EAAE,6BAA6B;IACvC,QAAQ;IACR,MAAM;CACT,CAAC,CAAC;AACH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,0BAA0B,GAAG,YAAY,CAAC,MAAM,CACzD,uBAAuB,CAC1B,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const styles: import("@microsoft/fast-element").ElementStyles;
@@ -1,6 +1,6 @@
1
1
  import { css } from '@microsoft/fast-element';
2
- import { bodyFont, bodyFontColor, controlLabelFontColor } from '../../theme-provider/design-tokens';
3
- export const cellStyles = css `
2
+ import { bodyFont, bodyFontColor, controlLabelFontColor } from '../../../theme-provider/design-tokens';
3
+ export const styles = css `
4
4
  span {
5
5
  font: ${bodyFont};
6
6
  color: ${bodyFontColor};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../../src/table-column/text/cell-view/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EACH,QAAQ,EACR,aAAa,EACb,qBAAqB,EACxB,MAAM,uCAAuC,CAAC;AAE/C,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;gBAET,QAAQ;iBACP,aAAa;;;;;;;iBAOb,qBAAqB;;CAErC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { TableColumnTextCellView } from '.';
2
+ export declare const template: import("@microsoft/fast-element").ViewTemplate<TableColumnTextCellView, any>;
@@ -0,0 +1,17 @@
1
+ import { html, ref } from '@microsoft/fast-element';
2
+ export const template = html `
3
+ <span
4
+ ${ref('textSpan')}
5
+ class="${x => (typeof x.cellRecord.value === 'string' ? '' : 'placeholder')}"
6
+ @mouseover="${x => {
7
+ x.isValidContentAndHasOverflow = !!x.content && x.textSpan.offsetWidth < x.textSpan.scrollWidth;
8
+ }}"
9
+ @mouseout="${x => {
10
+ x.isValidContentAndHasOverflow = false;
11
+ }}"
12
+ title=${x => (x.isValidContentAndHasOverflow ? x.content : null)}
13
+ >
14
+ ${x => x.content}
15
+ </span>
16
+ `;
17
+ //# sourceMappingURL=template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../src/table-column/text/cell-view/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAIpD,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAyB;;UAE3C,GAAG,CAAC,UAAU,CAAC;iBACR,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;sBAC7D,CAAC,CAAC,EAAE;IAClB,CAAC,CAAC,4BAA4B,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;AACpG,CAAC;qBACgB,CAAC,CAAC,EAAE;IACjB,CAAC,CAAC,4BAA4B,GAAG,KAAK,CAAC;AAC3C,CAAC;gBACW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;;UAE9D,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO;;CAEvB,CAAC"}
@@ -12,12 +12,11 @@ declare global {
12
12
  /**
13
13
  * The base class for a table column for displaying strings.
14
14
  */
15
- declare class TableColumnTextBase extends TableColumn<TableColumnTextCellRecord, TableColumnTextColumnConfig> {
15
+ declare class TableColumnTextBase extends TableColumn<TableColumnTextColumnConfig> {
16
16
  cellRecordFieldNames: readonly ["value"];
17
17
  fieldName?: string;
18
18
  placeholder?: string;
19
- readonly cellStyles: import("@microsoft/fast-element").ElementStyles;
20
- readonly cellTemplate: import("@microsoft/fast-element").ViewTemplate<import("../base/types").TableCellState<TableColumnTextCellRecord, TableColumnTextColumnConfig>, any>;
19
+ readonly cellViewTag: string;
21
20
  constructor();
22
21
  protected fieldNameChanged(): void;
23
22
  protected placeholderChanged(): void;
@@ -7,8 +7,7 @@ import { template } from '../base/template';
7
7
  import { mixinFractionalWidthColumnAPI } from '../mixins/fractional-width-column';
8
8
  import { TableColumn } from '../base';
9
9
  import { TableColumnSortOperation } from '../base/types';
10
- import { cellStyles } from './styles';
11
- import { cellTemplate } from './template';
10
+ import { tableColumnTextCellViewTag } from './cell-view';
12
11
  /**
13
12
  * The base class for a table column for displaying strings.
14
13
  */
@@ -16,8 +15,7 @@ class TableColumnTextBase extends TableColumn {
16
15
  constructor() {
17
16
  super();
18
17
  this.cellRecordFieldNames = ['value'];
19
- this.cellStyles = cellStyles;
20
- this.cellTemplate = cellTemplate;
18
+ this.cellViewTag = tableColumnTextCellViewTag;
21
19
  this.sortOperation = TableColumnSortOperation.localeAwareCaseSensitive;
22
20
  }
23
21
  fieldNameChanged() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/table-column/text/index.ts"],"names":[],"mappings":";AAAA,yCAAyC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAElF,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAa1C;;GAEG;AACH,MAAM,mBAAoB,SAAQ,WAGjC;IAaG;QACI,KAAK,EAAE,CAAC;QAbL,yBAAoB,GAAG,CAAC,OAAO,CAAU,CAAC;QAQjC,eAAU,GAAG,UAAU,CAAC;QAExB,iBAAY,GAAG,YAAY,CAAC;QAIxC,IAAI,CAAC,aAAa,GAAG,wBAAwB,CAAC,wBAAwB,CAAC;IAC3E,CAAC;IAES,gBAAgB;QACtB,IAAI,CAAC,oBAAoB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAU,CAAC;QACtD,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,SAAS,CAAC;IACrD,CAAC;IAES,kBAAkB;QACxB,IAAI,CAAC,YAAY,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;IAChE,CAAC;CACJ;AAtBG;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;sDACR;AAG1B;IADC,IAAI;wDACuB;AAqBhC;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,6BAA6B,CAC9D,mBAAmB,CACtB;CAAG;AAEJ,MAAM,qBAAqB,GAAG,eAAe,CAAC,OAAO,CAAC;IAClD,QAAQ,EAAE,mBAAmB;IAC7B,QAAQ;IACR,MAAM;CACT,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE;KACrB,UAAU,CAAC,QAAQ,CAAC;KACpB,QAAQ,CAAC,qBAAqB,EAAE,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/table-column/text/index.ts"],"names":[],"mappings":";AAAA,yCAAyC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAElF,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAazD;;GAEG;AACH,MAAM,mBAAoB,SAAQ,WAAwC;IAWtE;QACI,KAAK,EAAE,CAAC;QAXL,yBAAoB,GAAG,CAAC,OAAO,CAAU,CAAC;QAQjC,gBAAW,GAAG,0BAA0B,CAAC;QAIrD,IAAI,CAAC,aAAa,GAAG,wBAAwB,CAAC,wBAAwB,CAAC;IAC3E,CAAC;IAES,gBAAgB;QACtB,IAAI,CAAC,oBAAoB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAU,CAAC;QACtD,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,SAAS,CAAC;IACrD,CAAC;IAES,kBAAkB;QACxB,IAAI,CAAC,YAAY,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;IAChE,CAAC;CACJ;AApBG;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;sDACR;AAG1B;IADC,IAAI;wDACuB;AAmBhC;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,6BAA6B,CAC9D,mBAAmB,CACtB;CAAG;AAEJ,MAAM,qBAAqB,GAAG,eAAe,CAAC,OAAO,CAAC;IAClD,QAAQ,EAAE,mBAAmB;IAC7B,QAAQ;IACR,MAAM;CACT,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE;KACrB,UAAU,CAAC,QAAQ,CAAC;KACpB,QAAQ,CAAC,qBAAqB,EAAE,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { TextArea as FoundationTextArea } from '@microsoft/fast-foundation';
2
+ import type { ErrorPattern } from '../patterns/error/types';
2
3
  import { TextAreaAppearance } from './types';
3
4
  declare global {
4
5
  interface HTMLElementTagNameMap {
@@ -8,7 +9,7 @@ declare global {
8
9
  /**
9
10
  * A nimble-styed HTML text area
10
11
  */
11
- export declare class TextArea extends FoundationTextArea {
12
+ export declare class TextArea extends FoundationTextArea implements ErrorPattern {
12
13
  /**
13
14
  * The appearance the text area should have.
14
15
  *
@@ -17,5 +18,51 @@ export declare class TextArea extends FoundationTextArea {
17
18
  * HTML Attribute: appearance
18
19
  */
19
20
  appearance: TextAreaAppearance;
21
+ /**
22
+ * A message explaining why the value is invalid.
23
+ *
24
+ * @public
25
+ * @remarks
26
+ * HTML Attribute: error-text
27
+ */
28
+ errorText?: string;
29
+ /**
30
+ * Whether to display the error state.
31
+ *
32
+ * @public
33
+ * @remarks
34
+ * HTML Attribute: error-visible
35
+ */
36
+ errorVisible: boolean;
37
+ /**
38
+ * The width of the vertical scrollbar, if displayed.
39
+ * @internal
40
+ */
41
+ scrollbarWidth: number;
42
+ private resizeObserver?;
43
+ private updateScrollbarWidthQueued;
44
+ /**
45
+ * @internal
46
+ */
47
+ connectedCallback(): void;
48
+ /**
49
+ * @internal
50
+ */
51
+ disconnectedCallback(): void;
52
+ /**
53
+ * @internal
54
+ */
55
+ onTextAreaInput(): void;
56
+ /**
57
+ * @internal
58
+ */
59
+ placeholderChanged(): void;
60
+ /**
61
+ * @internal
62
+ */
63
+ valueChanged(previous: string, next: string): void;
64
+ private onResize;
65
+ private queueUpdateScrollbarWidth;
66
+ private updateScrollbarWidth;
20
67
  }
21
68
  export declare const textAreaTag: string;
@@ -1,7 +1,8 @@
1
1
  import { __decorate } from "tslib";
2
- import { attr } from '@microsoft/fast-element';
3
- import { DesignSystem, TextArea as FoundationTextArea, textAreaTemplate as template } from '@microsoft/fast-foundation';
2
+ import { attr, DOM, observable } from '@microsoft/fast-element';
3
+ import { DesignSystem, TextArea as FoundationTextArea } from '@microsoft/fast-foundation';
4
4
  import { styles } from './styles';
5
+ import { template } from './template';
5
6
  import { TextAreaAppearance } from './types';
6
7
  /**
7
8
  * A nimble-styed HTML text area
@@ -17,11 +18,92 @@ export class TextArea extends FoundationTextArea {
17
18
  * HTML Attribute: appearance
18
19
  */
19
20
  this.appearance = TextAreaAppearance.outline;
21
+ /**
22
+ * Whether to display the error state.
23
+ *
24
+ * @public
25
+ * @remarks
26
+ * HTML Attribute: error-visible
27
+ */
28
+ this.errorVisible = false;
29
+ /**
30
+ * The width of the vertical scrollbar, if displayed.
31
+ * @internal
32
+ */
33
+ this.scrollbarWidth = -1;
34
+ this.updateScrollbarWidthQueued = false;
35
+ }
36
+ /**
37
+ * @internal
38
+ */
39
+ connectedCallback() {
40
+ super.connectedCallback();
41
+ this.resizeObserver = new ResizeObserver(() => this.onResize());
42
+ this.resizeObserver.observe(this);
43
+ }
44
+ /**
45
+ * @internal
46
+ */
47
+ disconnectedCallback() {
48
+ this.resizeObserver?.disconnect();
49
+ }
50
+ /**
51
+ * @internal
52
+ */
53
+ onTextAreaInput() {
54
+ this.handleTextInput();
55
+ this.queueUpdateScrollbarWidth();
56
+ }
57
+ // If a property can affect whether a scrollbar is visible, we need to
58
+ // call queueUpdateScrollbarWidth() when it changes. The exceptions are
59
+ // properties that affect size (e.g. height, width, cols, rows), because
60
+ // we already have a ResizeObserver handling those changes. Also,
61
+ // a change to errorVisible cannot cause scrollbar visibility to change,
62
+ // because we always reserve space for the error icon.
63
+ /**
64
+ * @internal
65
+ */
66
+ placeholderChanged() {
67
+ this.queueUpdateScrollbarWidth();
68
+ }
69
+ /**
70
+ * @internal
71
+ */
72
+ valueChanged(previous, next) {
73
+ super.valueChanged(previous, next);
74
+ this.queueUpdateScrollbarWidth();
75
+ }
76
+ onResize() {
77
+ // Do this directly instead of calling updateScrollbarWidth, b/c we don't want to
78
+ // interfere with queue.
79
+ this.scrollbarWidth = this.control.offsetWidth - this.control.clientWidth;
80
+ }
81
+ queueUpdateScrollbarWidth() {
82
+ if (!this.$fastController.isConnected) {
83
+ return;
84
+ }
85
+ if (!this.updateScrollbarWidthQueued) {
86
+ this.updateScrollbarWidthQueued = true;
87
+ DOM.queueUpdate(() => this.updateScrollbarWidth());
88
+ }
89
+ }
90
+ updateScrollbarWidth() {
91
+ this.updateScrollbarWidthQueued = false;
92
+ this.scrollbarWidth = this.control.offsetWidth - this.control.clientWidth;
20
93
  }
21
94
  }
22
95
  __decorate([
23
96
  attr
24
97
  ], TextArea.prototype, "appearance", void 0);
98
+ __decorate([
99
+ attr({ attribute: 'error-text' })
100
+ ], TextArea.prototype, "errorText", void 0);
101
+ __decorate([
102
+ attr({ attribute: 'error-visible', mode: 'boolean' })
103
+ ], TextArea.prototype, "errorVisible", void 0);
104
+ __decorate([
105
+ observable
106
+ ], TextArea.prototype, "scrollbarWidth", void 0);
25
107
  const nimbleTextArea = TextArea.compose({
26
108
  baseName: 'text-area',
27
109
  baseClass: FoundationTextArea,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/text-area/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EACH,YAAY,EACZ,QAAQ,IAAI,kBAAkB,EAC9B,gBAAgB,IAAI,QAAQ,EAC/B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAQ7C;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,kBAAkB;IAAhD;;QACI;;;;;;WAMG;QAEI,eAAU,GAAuB,kBAAkB,CAAC,OAAO,CAAC;IACvE,CAAC;CAAA;AADG;IADC,IAAI;4CAC8D;AAGvE,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC;IACpC,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,kBAAkB;IAC7B,QAAQ;IACR,MAAM;IACN,aAAa,EAAE;QACX,cAAc,EAAE,IAAI;KACvB;CACJ,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC;AAC3E,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/text-area/index.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  import { css } from '@microsoft/fast-element';
2
2
  import { display } from '@microsoft/fast-foundation';
3
- import { borderRgbPartialColor, borderHoverColor, borderWidth, smallDelay, bodyFontColor, bodyDisabledFontColor, controlLabelFont, controlLabelFontColor, bodyFont, controlLabelDisabledFontColor } from '../theme-provider/design-tokens';
3
+ import { borderRgbPartialColor, borderHoverColor, borderWidth, smallDelay, bodyFontColor, bodyDisabledFontColor, controlLabelFont, controlLabelFontColor, bodyFont, controlLabelDisabledFontColor, iconSize, failColor, standardPadding } from '../theme-provider/design-tokens';
4
4
  import { appearanceBehavior } from '../utilities/style/appearance';
5
5
  import { TextAreaAppearance } from './types';
6
+ import { styles as errorStyles } from '../patterns/error/styles';
6
7
  export const styles = css `
7
8
  ${display('inline-flex')}
9
+ ${errorStyles}
8
10
 
9
11
  :host {
10
12
  font: ${bodyFont};
@@ -13,6 +15,7 @@ export const styles = css `
13
15
  color: ${bodyFontColor};
14
16
  flex-direction: column;
15
17
  vertical-align: top;
18
+ --ni-private-hover-indicator-width: calc(${borderWidth} + 1px);
16
19
  }
17
20
 
18
21
  :host([disabled]) {
@@ -29,10 +32,47 @@ export const styles = css `
29
32
  color: ${controlLabelDisabledFontColor};
30
33
  }
31
34
 
35
+ .container {
36
+ display: flex;
37
+ justify-content: center;
38
+ position: relative;
39
+ height: 100%;
40
+ width: 100%;
41
+ }
42
+
43
+ .container::after {
44
+ content: ' ';
45
+ position: absolute;
46
+ bottom: calc(-1 * ${borderWidth});
47
+ width: 0px;
48
+ height: 0px;
49
+ border-bottom: ${borderHoverColor}
50
+ var(--ni-private-hover-indicator-width) solid;
51
+ transition: width ${smallDelay} ease-in;
52
+ }
53
+
54
+ @media (prefers-reduced-motion) {
55
+ .container::after {
56
+ transition-duration: 0s;
57
+ }
58
+ }
59
+
60
+ :host([error-visible]) .container::after {
61
+ border-bottom-color: ${failColor};
62
+ }
63
+
64
+ :host(:hover) .container::after {
65
+ width: 100%;
66
+ }
67
+
68
+ :host([disabled]:hover) .container::after,
69
+ :host([readonly]:hover) .container::after {
70
+ width: 0px;
71
+ }
72
+
32
73
  .control {
33
74
  -webkit-appearance: none;
34
75
  font: inherit;
35
- width: 100%;
36
76
  flex-grow: 1;
37
77
  outline: none;
38
78
  box-sizing: border-box;
@@ -41,8 +81,13 @@ export const styles = css `
41
81
  border-radius: 0px;
42
82
  align-items: flex-end;
43
83
  border: ${borderWidth} solid transparent;
84
+ min-width: 100px;
85
+ min-height: calc(${iconSize} + ${standardPadding});
44
86
  padding: 8px;
45
- transition: box-shadow ${smallDelay}, border ${smallDelay};
87
+ ${
88
+ /* This padding ensures that showing/hiding the error icon doesn't affect text layout */ ''}
89
+ padding-right: calc(${iconSize});
90
+ margin: 0px;
46
91
  resize: none;
47
92
  }
48
93
 
@@ -52,13 +97,8 @@ export const styles = css `
52
97
  }
53
98
  }
54
99
 
55
- .control:hover {
56
- border-color: ${borderHoverColor};
57
- box-shadow: 0px 0px 0px 1px ${borderHoverColor};
58
- }
59
-
60
100
  .control:focus-within {
61
- border-color: ${borderHoverColor};
101
+ border-bottom-color: ${borderHoverColor};
62
102
  }
63
103
 
64
104
  .control[readonly],
@@ -67,23 +107,22 @@ export const styles = css `
67
107
  .control[disabled],
68
108
  .control[disabled]:hover {
69
109
  border-color: rgba(${borderRgbPartialColor}, 0.1);
70
- box-shadow: none;
71
110
  }
72
111
 
73
- .control::placeholder {
74
- color: ${controlLabelFontColor};
112
+ :host([error-visible]) .control {
113
+ border-bottom-color: ${failColor};
75
114
  }
76
115
 
77
- .control[disabled]::placeholder {
78
- color: ${controlLabelDisabledFontColor};
116
+ :host([error-visible]) .control[readonly]:hover:focus-within {
117
+ border-bottom-color: ${failColor};
79
118
  }
80
119
 
81
- :host([cols]) .control {
82
- width: auto;
120
+ .control::placeholder {
121
+ color: ${controlLabelFontColor};
83
122
  }
84
123
 
85
- :host([rows]) .control {
86
- flex: none;
124
+ .control[disabled]::placeholder {
125
+ color: ${controlLabelDisabledFontColor};
87
126
  }
88
127
 
89
128
  :host([resize='both']) .control {
@@ -95,6 +134,17 @@ export const styles = css `
95
134
  :host([resize='vertical']) .control {
96
135
  resize: vertical;
97
136
  }
137
+
138
+ :host([error-visible]) .error-icon {
139
+ display: none;
140
+ }
141
+
142
+ :host([error-visible]) .error-icon.scrollbar-width-calculated {
143
+ display: inline-flex;
144
+ position: absolute;
145
+ top: calc(${standardPadding} / 2);
146
+ right: var(--ni-private-scrollbar-width);
147
+ }
98
148
  `.withBehaviors(appearanceBehavior(TextAreaAppearance.outline, css `
99
149
  .control {
100
150
  border-color: rgba(${borderRgbPartialColor}, 0.3);
@@ -113,5 +163,9 @@ export const styles = css `
113
163
  border-color: transparent;
114
164
  background-color: rgba(${borderRgbPartialColor}, 0.1);
115
165
  }
166
+
167
+ :host([error-visible][disabled]) .control {
168
+ border-bottom-color: ${failColor};
169
+ }
116
170
  `));
117
171
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/text-area/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EACH,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,QAAQ,EACR,6BAA6B,EAChC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,aAAa,CAAC;;;gBAGZ,QAAQ;;;iBAGP,aAAa;;;;;;iBAMb,qBAAqB;;;;;iBAKrB,qBAAqB;gBACtB,gBAAgB;;;;iBAIf,6BAA6B;;;;;;;;;;;;;;kBAc5B,WAAW;;iCAEI,UAAU,YAAY,UAAU;;;;;;;;;;;wBAWzC,gBAAgB;sCACF,gBAAgB;;;;wBAI9B,gBAAgB;;;;;;;;6BAQX,qBAAqB;;;;;iBAKjC,qBAAqB;;;;iBAIrB,6BAA6B;;;;;;;;;;;;;;;;;;;;CAoB7C,CAAC,aAAa,CACX,kBAAkB,CACd,kBAAkB,CAAC,OAAO,EAC1B,GAAG,CAAA;;qCAE0B,qBAAqB;;;SAGjD,CACJ,EACD,kBAAkB,CACd,kBAAkB,CAAC,KAAK,EACxB,GAAG,CAAA;;yCAE8B,qBAAqB;;;;;;;;;yCASrB,qBAAqB;;SAErD,CACJ,CACJ,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/text-area/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EACH,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,QAAQ,EACR,6BAA6B,EAC7B,QAAQ,EACR,SAAS,EACT,eAAe,EAClB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEjE,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,aAAa,CAAC;MACtB,WAAW;;;gBAGD,QAAQ;;;iBAGP,aAAa;;;mDAGqB,WAAW;;;;iBAI7C,qBAAqB;;;;;iBAKrB,qBAAqB;gBACtB,gBAAgB;;;;iBAIf,6BAA6B;;;;;;;;;;;;;;4BAclB,WAAW;;;yBAGd,gBAAgB;;4BAEb,UAAU;;;;;;;;;;+BAUP,SAAS;;;;;;;;;;;;;;;;;;;;;;kBAsBtB,WAAW;;2BAEF,QAAQ,MAAM,eAAe;;UAE9C;AACE,wFAAwF,CAAC,EAC7F;8BACsB,QAAQ;;;;;;;;;;;;+BAYP,gBAAgB;;;;;;;;6BAQlB,qBAAqB;;;;+BAInB,SAAS;;;;+BAIT,SAAS;;;;iBAIvB,qBAAqB;;;;iBAIrB,6BAA6B;;;;;;;;;;;;;;;;;;;;oBAoB1B,eAAe;;;CAGlC,CAAC,aAAa,CACX,kBAAkB,CACd,kBAAkB,CAAC,OAAO,EAC1B,GAAG,CAAA;;qCAE0B,qBAAqB;;;SAGjD,CACJ,EACD,kBAAkB,CACd,kBAAkB,CAAC,KAAK,EACxB,GAAG,CAAA;;yCAE8B,qBAAqB;;;;;;;;;yCASrB,qBAAqB;;;;uCAIvB,SAAS;;SAEvC,CACJ,CACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { ViewTemplate } from '@microsoft/fast-element';
2
+ import type { FoundationElementTemplate } from '@microsoft/fast-foundation';
3
+ import type { TextArea } from '.';
4
+ export declare const template: FoundationElementTemplate<ViewTemplate<TextArea>>;
@@ -0,0 +1,62 @@
1
+ import { html, ref, slotted } from '@microsoft/fast-element';
2
+ import { iconExclamationMarkTag } from '../icons/exclamation-mark';
3
+ import { errorTextTemplate } from '../patterns/error/template';
4
+ export const template = () => html `
5
+ <label
6
+ part="label"
7
+ for="control"
8
+ class="${x => (x.defaultSlottedNodes?.length ? 'label' : 'label label__hidden')}"
9
+ >
10
+ <slot ${slotted('defaultSlottedNodes')}></slot>
11
+ </label>
12
+ <div class="container">
13
+ <textarea
14
+ part="control"
15
+ class="control"
16
+ id="control"
17
+ ?autofocus="${x => x.autofocus}"
18
+ cols="${x => x.cols}"
19
+ ?disabled="${x => x.disabled}"
20
+ form="${x => x.form}"
21
+ list="${x => x.list}"
22
+ maxlength="${x => x.maxlength}"
23
+ minlength="${x => x.minlength}"
24
+ name="${x => x.name}"
25
+ placeholder="${x => x.placeholder}"
26
+ ?readonly="${x => x.readOnly}"
27
+ ?required="${x => x.required}"
28
+ rows="${x => x.rows}"
29
+ ?spellcheck="${x => x.spellcheck}"
30
+ :value="${x => x.value}"
31
+ aria-atomic="${x => x.ariaAtomic}"
32
+ aria-busy="${x => x.ariaBusy}"
33
+ aria-controls="${x => x.ariaControls}"
34
+ aria-current="${x => x.ariaCurrent}"
35
+ aria-describedby="${x => x.ariaDescribedby}"
36
+ aria-details="${x => x.ariaDetails}"
37
+ aria-disabled="${x => x.ariaDisabled}"
38
+ aria-errormessage="${x => x.ariaErrormessage}"
39
+ aria-flowto="${x => x.ariaFlowto}"
40
+ aria-haspopup="${x => x.ariaHaspopup}"
41
+ aria-hidden="${x => x.ariaHidden}"
42
+ aria-invalid="${x => x.ariaInvalid}"
43
+ aria-keyshortcuts="${x => x.ariaKeyshortcuts}"
44
+ aria-label="${x => x.ariaLabel}"
45
+ aria-labelledby="${x => x.ariaLabelledby}"
46
+ aria-live="${x => x.ariaLive}"
47
+ aria-owns="${x => x.ariaOwns}"
48
+ aria-relevant="${x => x.ariaRelevant}"
49
+ aria-roledescription="${x => x.ariaRoledescription}"
50
+ @input="${x => x.onTextAreaInput()}"
51
+ @change="${x => x.handleChange()}"
52
+ ${ref('control')}
53
+ ></textarea>
54
+ <${iconExclamationMarkTag}
55
+ severity="error"
56
+ class="error-icon ${x => (x.scrollbarWidth >= 0 ? 'scrollbar-width-calculated' : '')}"
57
+ style="--ni-private-scrollbar-width: ${x => x.scrollbarWidth}px;"
58
+ ></${iconExclamationMarkTag}>
59
+ ${errorTextTemplate}
60
+ </div>
61
+ `;
62
+ //# sourceMappingURL=template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/text-area/template.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ni/nimble-components",
3
- "version": "18.8.4",
3
+ "version": "18.9.1",
4
4
  "description": "Styled web components for the NI Nimble Design System",
5
5
  "scripts": {
6
6
  "build": "npm run generate-icons && npm run build-components && npm run bundle-components && npm run generate-scss && npm run build-storybook",
@@ -1 +0,0 @@
1
- export declare const cellStyles: import("@microsoft/fast-element").ElementStyles;
@@ -1 +0,0 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../src/table-column/text/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EACH,QAAQ,EACR,aAAa,EACb,qBAAqB,EACxB,MAAM,oCAAoC,CAAC;AAE5C,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAA;;gBAEb,QAAQ;iBACP,aAAa;;;;;;;iBAOb,qBAAqB;;CAErC,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { TableColumnTextCellRecord, TableColumnTextColumnConfig } from '.';
2
- import type { TableCellState } from '../base/types';
3
- export declare const cellTemplate: import("@microsoft/fast-element").ViewTemplate<TableCellState<TableColumnTextCellRecord, TableColumnTextColumnConfig>, any>;
@@ -1,24 +0,0 @@
1
- import { html } from '@microsoft/fast-element';
2
- const getCellContent = (cellState) => {
3
- return typeof cellState.cellRecord.value === 'string'
4
- ? cellState.cellRecord.value
5
- : cellState.columnConfig.placeholder;
6
- };
7
- const setTitleWhenOverflow = (span, title) => {
8
- if (title && span.offsetWidth < span.scrollWidth) {
9
- span.setAttribute('title', title);
10
- }
11
- };
12
- const removeTitle = (span) => {
13
- span.removeAttribute('title');
14
- };
15
- export const cellTemplate = html `
16
- <span
17
- class="${x => (typeof x.cellRecord.value === 'string' ? '' : 'placeholder')}"
18
- @mouseover="${(x, c) => setTitleWhenOverflow(c.event.target, getCellContent(x))}"
19
- @mouseout="${(_x, c) => removeTitle(c.event.target)}"
20
- >
21
- ${x => getCellContent(x)}
22
- </span>
23
- `;
24
- //# sourceMappingURL=template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../src/table-column/text/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAI/C,MAAM,cAAc,GAAG,CACnB,SAGC,EACK,EAAE;IACR,OAAO,OAAO,SAAS,CAAC,UAAU,CAAC,KAAK,KAAK,QAAQ;QACjD,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK;QAC5B,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,CAAC;AAC7C,CAAC,CAAC;AACF,MAAM,oBAAoB,GAAG,CAAC,IAAiB,EAAE,KAAa,EAAQ,EAAE;IACpE,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;QAC9C,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;KACrC;AACL,CAAC,CAAC;AACF,MAAM,WAAW,GAAG,CAAC,IAAiB,EAAQ,EAAE;IAC5C,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAE/B;;iBAEgB,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;sBAC7D,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAC5C,CAAC,CAAC,KAAK,CAAC,MAAqB,EAC7B,cAAc,CAAC,CAAC,CAAC,CACpB;qBACgB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,MAAqB,CAAC;;UAEhE,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;;CAE/B,CAAC"}