@tailng-ui/primitives 0.1.0 → 0.11.0

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 (99) hide show
  1. package/package.json +9 -3
  2. package/src/index.d.ts +5 -0
  3. package/src/index.d.ts.map +1 -1
  4. package/src/index.js +5 -0
  5. package/src/index.js.map +1 -1
  6. package/src/lib/feedback/progress-bar/tng-progress-bar.d.ts.map +1 -1
  7. package/src/lib/feedback/progress-bar/tng-progress-bar.js +2 -1
  8. package/src/lib/feedback/progress-bar/tng-progress-bar.js.map +1 -1
  9. package/src/lib/feedback/progress-spinner/tng-progress-spinner.d.ts.map +1 -1
  10. package/src/lib/feedback/progress-spinner/tng-progress-spinner.js +2 -1
  11. package/src/lib/feedback/progress-spinner/tng-progress-spinner.js.map +1 -1
  12. package/src/lib/feedback/skeleton/tng-skeleton.d.ts +1 -0
  13. package/src/lib/feedback/skeleton/tng-skeleton.d.ts.map +1 -1
  14. package/src/lib/feedback/skeleton/tng-skeleton.js +4 -0
  15. package/src/lib/feedback/skeleton/tng-skeleton.js.map +1 -1
  16. package/src/lib/form/chips/tng-chips.d.ts +53 -1
  17. package/src/lib/form/chips/tng-chips.d.ts.map +1 -1
  18. package/src/lib/form/chips/tng-chips.js +281 -1
  19. package/src/lib/form/chips/tng-chips.js.map +1 -1
  20. package/src/lib/form/input-otp/tng-input-otp.d.ts +22 -0
  21. package/src/lib/form/input-otp/tng-input-otp.d.ts.map +1 -1
  22. package/src/lib/form/input-otp/tng-input-otp.js +105 -1
  23. package/src/lib/form/input-otp/tng-input-otp.js.map +1 -1
  24. package/src/lib/form/label/tng-label.d.ts +2 -0
  25. package/src/lib/form/label/tng-label.d.ts.map +1 -1
  26. package/src/lib/form/label/tng-label.js +9 -0
  27. package/src/lib/form/label/tng-label.js.map +1 -1
  28. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.d.ts +1 -0
  29. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.d.ts.map +1 -1
  30. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js +26 -0
  31. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js.map +1 -1
  32. package/src/lib/form/radio/tng-radio.d.ts +26 -0
  33. package/src/lib/form/radio/tng-radio.d.ts.map +1 -1
  34. package/src/lib/form/radio/tng-radio.js +129 -1
  35. package/src/lib/form/radio/tng-radio.js.map +1 -1
  36. package/src/lib/form/textarea/tng-textarea.d.ts +6 -14
  37. package/src/lib/form/textarea/tng-textarea.d.ts.map +1 -1
  38. package/src/lib/form/textarea/tng-textarea.js +42 -85
  39. package/src/lib/form/textarea/tng-textarea.js.map +1 -1
  40. package/src/lib/layout/accordion/tng-accordion.d.ts +9 -0
  41. package/src/lib/layout/accordion/tng-accordion.d.ts.map +1 -1
  42. package/src/lib/layout/accordion/tng-accordion.js +113 -0
  43. package/src/lib/layout/accordion/tng-accordion.js.map +1 -1
  44. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.d.ts +20 -0
  45. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.d.ts.map +1 -0
  46. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.js +106 -0
  47. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.js.map +1 -0
  48. package/src/lib/layout/tree/index.d.ts +5 -0
  49. package/src/lib/layout/tree/index.d.ts.map +1 -0
  50. package/src/lib/layout/tree/index.js +5 -0
  51. package/src/lib/layout/tree/index.js.map +1 -0
  52. package/src/lib/layout/tree/tng-tree-group.d.ts +10 -0
  53. package/src/lib/layout/tree/tng-tree-group.d.ts.map +1 -0
  54. package/src/lib/layout/tree/tng-tree-group.js +29 -0
  55. package/src/lib/layout/tree/tng-tree-group.js.map +1 -0
  56. package/src/lib/layout/tree/tng-tree-indicator.d.ts +8 -0
  57. package/src/lib/layout/tree/tng-tree-indicator.d.ts.map +1 -0
  58. package/src/lib/layout/tree/tng-tree-indicator.js +36 -0
  59. package/src/lib/layout/tree/tng-tree-indicator.js.map +1 -0
  60. package/src/lib/layout/tree/tng-tree-item.d.ts +36 -0
  61. package/src/lib/layout/tree/tng-tree-item.d.ts.map +1 -0
  62. package/src/lib/layout/tree/tng-tree-item.js +139 -0
  63. package/src/lib/layout/tree/tng-tree-item.js.map +1 -0
  64. package/src/lib/layout/tree/tng-tree.d.ts +64 -1
  65. package/src/lib/layout/tree/tng-tree.d.ts.map +1 -1
  66. package/src/lib/layout/tree/tng-tree.js +536 -1
  67. package/src/lib/layout/tree/tng-tree.js.map +1 -1
  68. package/src/lib/layout/tree/tng-tree.transforms.d.ts +10 -0
  69. package/src/lib/layout/tree/tng-tree.transforms.d.ts.map +1 -0
  70. package/src/lib/layout/tree/tng-tree.transforms.js +46 -0
  71. package/src/lib/layout/tree/tng-tree.transforms.js.map +1 -0
  72. package/src/lib/overlay/dialog/tng-dialog.d.ts +158 -0
  73. package/src/lib/overlay/dialog/tng-dialog.d.ts.map +1 -0
  74. package/src/lib/overlay/dialog/tng-dialog.js +854 -0
  75. package/src/lib/overlay/dialog/tng-dialog.js.map +1 -0
  76. package/src/lib/overlay/popover/tng-popover.d.ts +121 -0
  77. package/src/lib/overlay/popover/tng-popover.d.ts.map +1 -0
  78. package/src/lib/overlay/popover/tng-popover.js +614 -0
  79. package/src/lib/overlay/popover/tng-popover.js.map +1 -0
  80. package/src/lib/overlay/tng-overlay-runtime.d.ts +11 -0
  81. package/src/lib/overlay/tng-overlay-runtime.d.ts.map +1 -0
  82. package/src/lib/overlay/tng-overlay-runtime.js +6 -0
  83. package/src/lib/overlay/tng-overlay-runtime.js.map +1 -0
  84. package/src/lib/overlay/tooltip/tng-tooltip.d.ts +92 -3
  85. package/src/lib/overlay/tooltip/tng-tooltip.d.ts.map +1 -1
  86. package/src/lib/overlay/tooltip/tng-tooltip.js +474 -3
  87. package/src/lib/overlay/tooltip/tng-tooltip.js.map +1 -1
  88. package/src/lib/utility/badge/tng-badge.d.ts +6 -0
  89. package/src/lib/utility/badge/tng-badge.d.ts.map +1 -1
  90. package/src/lib/utility/badge/tng-badge.js +65 -0
  91. package/src/lib/utility/badge/tng-badge.js.map +1 -1
  92. package/src/lib/utility/copy/tng-copy.d.ts +21 -10
  93. package/src/lib/utility/copy/tng-copy.d.ts.map +1 -1
  94. package/src/lib/utility/copy/tng-copy.js +117 -88
  95. package/src/lib/utility/copy/tng-copy.js.map +1 -1
  96. package/src/lib/utility/tag/tng-tag.d.ts +37 -0
  97. package/src/lib/utility/tag/tng-tag.d.ts.map +1 -1
  98. package/src/lib/utility/tag/tng-tag.js +195 -1
  99. package/src/lib/utility/tag/tng-tag.js.map +1 -1
@@ -1,5 +1,5 @@
1
1
  import { __decorate } from "tslib";
2
- import { Directive, HostBinding, booleanAttribute, input } from '@angular/core';
2
+ import { Directive, ElementRef, HostBinding, HostListener, booleanAttribute, inject, input, } from '@angular/core';
3
3
  export function normalizeTngRadioStringValue(value) {
4
4
  if (value === undefined || value === null) {
5
5
  return null;
@@ -7,15 +7,51 @@ export function normalizeTngRadioStringValue(value) {
7
7
  const normalized = value.trim();
8
8
  return normalized.length > 0 ? normalized : null;
9
9
  }
10
+ export function coerceTngRadioNullableBoolean(value) {
11
+ if (value === undefined || value === null) {
12
+ return null;
13
+ }
14
+ if (value === '' || value === true || value === 'true') {
15
+ return true;
16
+ }
17
+ if (value === false || value === 'false') {
18
+ return false;
19
+ }
20
+ return null;
21
+ }
22
+ export function resolveTngRadioDataState(checked) {
23
+ return checked ? 'checked' : 'unchecked';
24
+ }
25
+ export function resolveTngRadioInvalidState(invalid, ariaInvalid) {
26
+ if (invalid !== null) {
27
+ return invalid;
28
+ }
29
+ if (ariaInvalid !== null) {
30
+ return ariaInvalid;
31
+ }
32
+ return false;
33
+ }
10
34
  let TngRadio = class TngRadio {
35
+ elementRef = inject(ElementRef);
36
+ focused = false;
37
+ focusVisible = false;
11
38
  ariaDescribedBy = input(null);
39
+ ariaInvalid = input(null, {
40
+ transform: coerceTngRadioNullableBoolean,
41
+ });
12
42
  checked = input(false, {
13
43
  transform: booleanAttribute,
14
44
  });
15
45
  disabled = input(false, {
16
46
  transform: booleanAttribute,
17
47
  });
48
+ invalid = input(null, {
49
+ transform: coerceTngRadioNullableBoolean,
50
+ });
18
51
  name = input(null);
52
+ readonly = input(false, {
53
+ transform: booleanAttribute,
54
+ });
19
55
  required = input(false, {
20
56
  transform: booleanAttribute,
21
57
  });
@@ -27,12 +63,45 @@ let TngRadio = class TngRadio {
27
63
  get ariaCheckedAttr() {
28
64
  return this.checked() ? 'true' : 'false';
29
65
  }
66
+ get ariaDisabledAttr() {
67
+ return this.disabled() ? 'true' : null;
68
+ }
30
69
  get ariaDescribedByAttr() {
31
70
  return normalizeTngRadioStringValue(this.ariaDescribedBy());
32
71
  }
72
+ get ariaInvalidAttr() {
73
+ return this.isInvalid() ? 'true' : null;
74
+ }
75
+ get ariaReadonlyAttr() {
76
+ return this.readonly() ? 'true' : null;
77
+ }
78
+ get dataCheckedAttr() {
79
+ return this.checked() ? '' : null;
80
+ }
33
81
  get dataDisabledAttr() {
34
82
  return this.disabled() ? '' : null;
35
83
  }
84
+ get dataFocusedAttr() {
85
+ return this.focused ? '' : null;
86
+ }
87
+ get dataFocusVisibleAttr() {
88
+ return this.focusVisible ? '' : null;
89
+ }
90
+ get dataInvalidAttr() {
91
+ return this.isInvalid() ? '' : null;
92
+ }
93
+ get dataReadonlyAttr() {
94
+ return this.readonly() ? '' : null;
95
+ }
96
+ get dataRequiredAttr() {
97
+ return this.required() ? '' : null;
98
+ }
99
+ get dataStateAttr() {
100
+ return resolveTngRadioDataState(this.checked());
101
+ }
102
+ get dataUncheckedAttr() {
103
+ return this.checked() ? null : '';
104
+ }
36
105
  get disabledAttr() {
37
106
  return this.disabled() ? '' : null;
38
107
  }
@@ -48,6 +117,23 @@ let TngRadio = class TngRadio {
48
117
  get valueAttr() {
49
118
  return normalizeTngRadioStringValue(this.value());
50
119
  }
120
+ onBlur() {
121
+ this.focused = false;
122
+ this.focusVisible = false;
123
+ }
124
+ onFocus() {
125
+ this.focused = true;
126
+ this.focusVisible = this.elementRef.nativeElement.matches(':focus-visible');
127
+ }
128
+ onReadonlyChange() {
129
+ if (!this.readonly() || this.disabled()) {
130
+ return;
131
+ }
132
+ this.elementRef.nativeElement.checked = this.checked();
133
+ }
134
+ isInvalid() {
135
+ return resolveTngRadioInvalidState(this.invalid(), this.ariaInvalid());
136
+ }
51
137
  };
52
138
  __decorate([
53
139
  HostBinding('checked')
@@ -55,12 +141,45 @@ __decorate([
55
141
  __decorate([
56
142
  HostBinding('attr.aria-checked')
57
143
  ], TngRadio.prototype, "ariaCheckedAttr", null);
144
+ __decorate([
145
+ HostBinding('attr.aria-disabled')
146
+ ], TngRadio.prototype, "ariaDisabledAttr", null);
58
147
  __decorate([
59
148
  HostBinding('attr.aria-describedby')
60
149
  ], TngRadio.prototype, "ariaDescribedByAttr", null);
150
+ __decorate([
151
+ HostBinding('attr.aria-invalid')
152
+ ], TngRadio.prototype, "ariaInvalidAttr", null);
153
+ __decorate([
154
+ HostBinding('attr.aria-readonly')
155
+ ], TngRadio.prototype, "ariaReadonlyAttr", null);
156
+ __decorate([
157
+ HostBinding('attr.data-checked')
158
+ ], TngRadio.prototype, "dataCheckedAttr", null);
61
159
  __decorate([
62
160
  HostBinding('attr.data-disabled')
63
161
  ], TngRadio.prototype, "dataDisabledAttr", null);
162
+ __decorate([
163
+ HostBinding('attr.data-focused')
164
+ ], TngRadio.prototype, "dataFocusedAttr", null);
165
+ __decorate([
166
+ HostBinding('attr.data-focus-visible')
167
+ ], TngRadio.prototype, "dataFocusVisibleAttr", null);
168
+ __decorate([
169
+ HostBinding('attr.data-invalid')
170
+ ], TngRadio.prototype, "dataInvalidAttr", null);
171
+ __decorate([
172
+ HostBinding('attr.data-readonly')
173
+ ], TngRadio.prototype, "dataReadonlyAttr", null);
174
+ __decorate([
175
+ HostBinding('attr.data-required')
176
+ ], TngRadio.prototype, "dataRequiredAttr", null);
177
+ __decorate([
178
+ HostBinding('attr.data-state')
179
+ ], TngRadio.prototype, "dataStateAttr", null);
180
+ __decorate([
181
+ HostBinding('attr.data-unchecked')
182
+ ], TngRadio.prototype, "dataUncheckedAttr", null);
64
183
  __decorate([
65
184
  HostBinding('attr.disabled')
66
185
  ], TngRadio.prototype, "disabledAttr", null);
@@ -76,6 +195,15 @@ __decorate([
76
195
  __decorate([
77
196
  HostBinding('attr.value')
78
197
  ], TngRadio.prototype, "valueAttr", null);
198
+ __decorate([
199
+ HostListener('blur')
200
+ ], TngRadio.prototype, "onBlur", null);
201
+ __decorate([
202
+ HostListener('focus')
203
+ ], TngRadio.prototype, "onFocus", null);
204
+ __decorate([
205
+ HostListener('change')
206
+ ], TngRadio.prototype, "onReadonlyChange", null);
79
207
  TngRadio = __decorate([
80
208
  Directive({
81
209
  selector: 'input[tngRadio]',
@@ -1 +1 @@
1
- {"version":3,"file":"tng-radio.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/radio/tng-radio.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEhF,MAAM,UAAU,4BAA4B,CAAC,KAAgC;IAC3E,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAMM,IAAM,QAAQ,GAAd,MAAM,QAAQ;IACH,eAAe,GAAG,KAAK,CAAgB,IAAI,CAAC,CAAC;IAC7C,OAAO,GAAG,KAAK,CAA4B,KAAK,EAAE;QAChE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,QAAQ,GAAG,KAAK,CAA4B,KAAK,EAAE;QACjE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,IAAI,GAAG,KAAK,CAAgB,IAAI,CAAC,CAAC;IAClC,QAAQ,GAAG,KAAK,CAA4B,KAAK,EAAE;QACjE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,KAAK,GAAG,KAAK,CAAgB,IAAI,CAAC,CAAC;IAChC,QAAQ,GAAG,OAAgB,CAAC;IAG/C,IAAc,WAAW;QACvB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAGD,IAAc,eAAe;QAC3B,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3C,CAAC;IAGD,IAAc,mBAAmB;QAC/B,OAAO,4BAA4B,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IAC9D,CAAC;IAGD,IAAc,gBAAgB;QAC5B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,CAAC;IAGD,IAAc,YAAY;QACxB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,CAAC;IAGD,IAAc,QAAQ;QACpB,OAAO,4BAA4B,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAGD,IAAc,YAAY;QACxB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,CAAC;IAGD,IAAc,YAAY;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAGD,IAAc,SAAS;QACrB,OAAO,4BAA4B,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;CACF,CAAA;AA3CC;IADC,WAAW,CAAC,SAAS,CAAC;2CAGtB;AAGD;IADC,WAAW,CAAC,mBAAmB,CAAC;+CAGhC;AAGD;IADC,WAAW,CAAC,uBAAuB,CAAC;mDAGpC;AAGD;IADC,WAAW,CAAC,oBAAoB,CAAC;gDAGjC;AAGD;IADC,WAAW,CAAC,eAAe,CAAC;4CAG5B;AAGD;IADC,WAAW,CAAC,WAAW,CAAC;wCAGxB;AAGD;IADC,WAAW,CAAC,eAAe,CAAC;4CAG5B;AAGD;IADC,WAAW,CAAC,WAAW,CAAC;4CAGxB;AAGD;IADC,WAAW,CAAC,YAAY,CAAC;yCAGzB;AA1DU,QAAQ;IAJpB,SAAS,CAAC;QACT,QAAQ,EAAE,iBAAiB;QAC3B,QAAQ,EAAE,UAAU;KACrB,CAAC;GACW,QAAQ,CA2DpB","sourcesContent":["import { Directive, HostBinding, booleanAttribute, input } from '@angular/core';\n\nexport function normalizeTngRadioStringValue(value: string | null | undefined): string | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : null;\n}\n\n@Directive({\n selector: 'input[tngRadio]',\n exportAs: 'tngRadio',\n})\nexport class TngRadio {\n public readonly ariaDescribedBy = input<string | null>(null);\n public readonly checked = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly name = input<string | null>(null);\n public readonly required = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly value = input<string | null>(null);\n protected readonly typeAttr = 'radio' as const;\n\n @HostBinding('checked')\n protected get checkedProp(): boolean {\n return this.checked();\n }\n\n @HostBinding('attr.aria-checked')\n protected get ariaCheckedAttr(): 'false' | 'true' {\n return this.checked() ? 'true' : 'false';\n }\n\n @HostBinding('attr.aria-describedby')\n protected get ariaDescribedByAttr(): string | null {\n return normalizeTngRadioStringValue(this.ariaDescribedBy());\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.disabled')\n protected get disabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.name')\n protected get nameAttr(): string | null {\n return normalizeTngRadioStringValue(this.name());\n }\n\n @HostBinding('attr.required')\n protected get requiredAttr(): '' | null {\n return this.required() ? '' : null;\n }\n\n @HostBinding('attr.type')\n protected get hostTypeAttr(): 'radio' {\n return this.typeAttr;\n }\n\n @HostBinding('attr.value')\n protected get valueAttr(): string | null {\n return normalizeTngRadioStringValue(this.value());\n }\n}\n"]}
1
+ {"version":3,"file":"tng-radio.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/radio/tng-radio.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n booleanAttribute,\n inject,\n input,\n} from '@angular/core';\n\ntype NullableBooleanInput = '' | 'false' | 'true' | boolean | null | undefined;\n\nexport function normalizeTngRadioStringValue(value: string | null | undefined): string | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : null;\n}\n\nexport function coerceTngRadioNullableBoolean(value: NullableBooleanInput): boolean | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n if (value === '' || value === true || value === 'true') {\n return true;\n }\n\n if (value === false || value === 'false') {\n return false;\n }\n\n return null;\n}\n\nexport function resolveTngRadioDataState(checked: boolean): 'checked' | 'unchecked' {\n return checked ? 'checked' : 'unchecked';\n}\n\nexport function resolveTngRadioInvalidState(\n invalid: boolean | null,\n ariaInvalid: boolean | null,\n): boolean {\n if (invalid !== null) {\n return invalid;\n }\n\n if (ariaInvalid !== null) {\n return ariaInvalid;\n }\n\n return false;\n}\n\n@Directive({\n selector: 'input[tngRadio]',\n exportAs: 'tngRadio',\n})\nexport class TngRadio {\n private readonly elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n private focused = false;\n private focusVisible = false;\n\n public readonly ariaDescribedBy = input<string | null>(null);\n public readonly ariaInvalid = input<boolean | null, NullableBooleanInput>(null, {\n transform: coerceTngRadioNullableBoolean,\n });\n public readonly checked = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly invalid = input<boolean | null, NullableBooleanInput>(null, {\n transform: coerceTngRadioNullableBoolean,\n });\n public readonly name = input<string | null>(null);\n public readonly readonly = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly required = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly value = input<string | null>(null);\n protected readonly typeAttr = 'radio' as const;\n\n @HostBinding('checked')\n protected get checkedProp(): boolean {\n return this.checked();\n }\n\n @HostBinding('attr.aria-checked')\n protected get ariaCheckedAttr(): 'false' | 'true' {\n return this.checked() ? 'true' : 'false';\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabledAttr(): 'true' | null {\n return this.disabled() ? 'true' : null;\n }\n\n @HostBinding('attr.aria-describedby')\n protected get ariaDescribedByAttr(): string | null {\n return normalizeTngRadioStringValue(this.ariaDescribedBy());\n }\n\n @HostBinding('attr.aria-invalid')\n protected get ariaInvalidAttr(): 'true' | null {\n return this.isInvalid() ? 'true' : null;\n }\n\n @HostBinding('attr.aria-readonly')\n protected get ariaReadonlyAttr(): 'true' | null {\n return this.readonly() ? 'true' : null;\n }\n\n @HostBinding('attr.data-checked')\n protected get dataCheckedAttr(): '' | null {\n return this.checked() ? '' : null;\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.data-focused')\n protected get dataFocusedAttr(): '' | null {\n return this.focused ? '' : null;\n }\n\n @HostBinding('attr.data-focus-visible')\n protected get dataFocusVisibleAttr(): '' | null {\n return this.focusVisible ? '' : null;\n }\n\n @HostBinding('attr.data-invalid')\n protected get dataInvalidAttr(): '' | null {\n return this.isInvalid() ? '' : null;\n }\n\n @HostBinding('attr.data-readonly')\n protected get dataReadonlyAttr(): '' | null {\n return this.readonly() ? '' : null;\n }\n\n @HostBinding('attr.data-required')\n protected get dataRequiredAttr(): '' | null {\n return this.required() ? '' : null;\n }\n\n @HostBinding('attr.data-state')\n protected get dataStateAttr(): 'checked' | 'unchecked' {\n return resolveTngRadioDataState(this.checked());\n }\n\n @HostBinding('attr.data-unchecked')\n protected get dataUncheckedAttr(): '' | null {\n return this.checked() ? null : '';\n }\n\n @HostBinding('attr.disabled')\n protected get disabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.name')\n protected get nameAttr(): string | null {\n return normalizeTngRadioStringValue(this.name());\n }\n\n @HostBinding('attr.required')\n protected get requiredAttr(): '' | null {\n return this.required() ? '' : null;\n }\n\n @HostBinding('attr.type')\n protected get hostTypeAttr(): 'radio' {\n return this.typeAttr;\n }\n\n @HostBinding('attr.value')\n protected get valueAttr(): string | null {\n return normalizeTngRadioStringValue(this.value());\n }\n\n @HostListener('blur')\n public onBlur(): void {\n this.focused = false;\n this.focusVisible = false;\n }\n\n @HostListener('focus')\n public onFocus(): void {\n this.focused = true;\n this.focusVisible = this.elementRef.nativeElement.matches(':focus-visible');\n }\n\n @HostListener('change')\n public onReadonlyChange(): void {\n if (!this.readonly() || this.disabled()) {\n return;\n }\n\n this.elementRef.nativeElement.checked = this.checked();\n }\n\n private isInvalid(): boolean {\n return resolveTngRadioInvalidState(this.invalid(), this.ariaInvalid());\n }\n}\n"]}
@@ -1,23 +1,15 @@
1
1
  type NullableBooleanInput = boolean | null | string | undefined;
2
+ export type TngTextareaResize = 'both' | 'horizontal' | 'none' | 'vertical';
3
+ /** @deprecated Use `coerceTngInputNullableBoolean` from `tng-input`. */
2
4
  export declare function coerceTngTextareaNullableBoolean(value: NullableBooleanInput): boolean | null;
3
5
  export declare function normalizeTngTextareaRows(value: number): number;
6
+ export declare function normalizeTngTextareaResize(value: unknown): TngTextareaResize;
4
7
  export declare class TngTextarea {
5
- readonly ariaDescribedBy: import("@angular/core").InputSignal<string | null>;
6
- readonly ariaInvalid: import("@angular/core").InputSignalWithTransform<boolean | null, NullableBooleanInput>;
7
- readonly ariaRequired: import("@angular/core").InputSignalWithTransform<boolean | null, NullableBooleanInput>;
8
- readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
9
- readonly readonly: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
10
- readonly required: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
8
+ readonly resize: import("@angular/core").InputSignalWithTransform<TngTextareaResize, string>;
11
9
  readonly rows: import("@angular/core").InputSignalWithTransform<number, string | number>;
12
- protected get ariaDescribedByAttr(): string | null;
13
- protected get ariaInvalidAttr(): 'false' | 'true' | null;
14
- protected get ariaRequiredAttr(): 'false' | 'true' | null;
15
- protected get dataDisabledAttr(): '' | null;
16
- protected get dataInvalidAttr(): '' | null;
17
- protected get disabledAttr(): '' | null;
18
- protected get readonlyAttr(): '' | null;
19
- protected get requiredAttr(): '' | null;
10
+ protected get dataResizeAttr(): TngTextareaResize;
20
11
  protected get rowsAttr(): number;
12
+ protected get resizeStyle(): TngTextareaResize;
21
13
  }
22
14
  export {};
23
15
  //# sourceMappingURL=tng-textarea.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-textarea.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/textarea/tng-textarea.ts"],"names":[],"mappings":"AAEA,KAAK,oBAAoB,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;AAEhE,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,GAAG,IAAI,CAc5F;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM9D;AAmBD,qBAIa,WAAW;IACtB,SAAgB,eAAe,qDAA8B;IAC7D,SAAgB,WAAW,yFAExB;IACH,SAAgB,YAAY,yFAEzB;IACH,SAAgB,QAAQ,8EAErB;IACH,SAAgB,QAAQ,8EAErB;IACH,SAAgB,QAAQ,8EAErB;IACH,SAAgB,IAAI,4EAEjB;IAGH,SAAS,KAAK,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAEjD;IAGD,SAAS,KAAK,eAAe,IAAI,OAAO,GAAG,MAAM,GAAG,IAAI,CAEvD;IAGD,SAAS,KAAK,gBAAgB,IAAI,OAAO,GAAG,MAAM,GAAG,IAAI,CAMxD;IAGD,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,KAAK,eAAe,IAAI,EAAE,GAAG,IAAI,CAEzC;IAGD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAEtC;IAGD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAEtC;IAGD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAEtC;IAGD,SAAS,KAAK,QAAQ,IAAI,MAAM,CAE/B;CACF"}
1
+ {"version":3,"file":"tng-textarea.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/textarea/tng-textarea.ts"],"names":[],"mappings":"AAGA,KAAK,oBAAoB,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;AAChE,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,GAAG,UAAU,CAAC;AAE5E,wEAAwE;AACxE,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,GAAG,IAAI,CAE5F;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM9D;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAgB5E;AAED,qBAoBa,WAAW;IACtB,SAAgB,MAAM,8EAEnB;IACH,SAAgB,IAAI,4EAEjB;IAGH,SAAS,KAAK,cAAc,IAAI,iBAAiB,CAEhD;IAGD,SAAS,KAAK,QAAQ,IAAI,MAAM,CAE/B;IAGD,SAAS,KAAK,WAAW,IAAI,iBAAiB,CAE7C;CACF"}
@@ -1,16 +1,9 @@
1
1
  import { __decorate } from "tslib";
2
- import { Directive, HostBinding, booleanAttribute, input, numberAttribute } from '@angular/core';
2
+ import { Directive, HostBinding, input, numberAttribute } from '@angular/core';
3
+ import { coerceTngInputNullableBoolean, TngInput } from '../input/tng-input';
4
+ /** @deprecated Use `coerceTngInputNullableBoolean` from `tng-input`. */
3
5
  export function coerceTngTextareaNullableBoolean(value) {
4
- if (value === undefined || value === null) {
5
- return null;
6
- }
7
- if (value === '' || value === true || value === 'true') {
8
- return true;
9
- }
10
- if (value === false || value === 'false') {
11
- return false;
12
- }
13
- return null;
6
+ return coerceTngInputNullableBoolean(value);
14
7
  }
15
8
  export function normalizeTngTextareaRows(value) {
16
9
  if (!Number.isFinite(value)) {
@@ -18,101 +11,65 @@ export function normalizeTngTextareaRows(value) {
18
11
  }
19
12
  return Math.max(1, Math.trunc(value));
20
13
  }
21
- function normalizeStringValue(value) {
22
- if (value === undefined || value === null) {
23
- return null;
14
+ export function normalizeTngTextareaResize(value) {
15
+ if (typeof value !== 'string') {
16
+ return 'vertical';
24
17
  }
25
- const normalized = value.trim();
26
- return normalized.length > 0 ? normalized : null;
27
- }
28
- function toAriaBoolean(value) {
29
- if (value === null) {
30
- return null;
18
+ const normalized = value.trim().toLowerCase();
19
+ if (normalized === 'none' ||
20
+ normalized === 'vertical' ||
21
+ normalized === 'horizontal' ||
22
+ normalized === 'both') {
23
+ return normalized;
31
24
  }
32
- return value ? 'true' : 'false';
25
+ return 'vertical';
33
26
  }
34
27
  let TngTextarea = class TngTextarea {
35
- ariaDescribedBy = input(null);
36
- ariaInvalid = input(null, {
37
- transform: coerceTngTextareaNullableBoolean,
38
- });
39
- ariaRequired = input(null, {
40
- transform: coerceTngTextareaNullableBoolean,
41
- });
42
- disabled = input(false, {
43
- transform: booleanAttribute,
44
- });
45
- readonly = input(false, {
46
- transform: booleanAttribute,
47
- });
48
- required = input(false, {
49
- transform: booleanAttribute,
28
+ resize = input('vertical', {
29
+ transform: normalizeTngTextareaResize,
50
30
  });
51
31
  rows = input(3, {
52
32
  transform: (value) => normalizeTngTextareaRows(numberAttribute(value)),
53
33
  });
54
- get ariaDescribedByAttr() {
55
- return normalizeStringValue(this.ariaDescribedBy());
56
- }
57
- get ariaInvalidAttr() {
58
- return toAriaBoolean(this.ariaInvalid());
59
- }
60
- get ariaRequiredAttr() {
61
- if (this.required()) {
62
- return 'true';
63
- }
64
- return toAriaBoolean(this.ariaRequired());
65
- }
66
- get dataDisabledAttr() {
67
- return this.disabled() ? '' : null;
68
- }
69
- get dataInvalidAttr() {
70
- return this.ariaInvalid() === true ? '' : null;
71
- }
72
- get disabledAttr() {
73
- return this.disabled() ? '' : null;
74
- }
75
- get readonlyAttr() {
76
- return this.readonly() ? '' : null;
77
- }
78
- get requiredAttr() {
79
- return this.required() ? '' : null;
34
+ get dataResizeAttr() {
35
+ return this.resize();
80
36
  }
81
37
  get rowsAttr() {
82
38
  return this.rows();
83
39
  }
40
+ get resizeStyle() {
41
+ return this.resize();
42
+ }
84
43
  };
85
44
  __decorate([
86
- HostBinding('attr.aria-describedby')
87
- ], TngTextarea.prototype, "ariaDescribedByAttr", null);
88
- __decorate([
89
- HostBinding('attr.aria-invalid')
90
- ], TngTextarea.prototype, "ariaInvalidAttr", null);
91
- __decorate([
92
- HostBinding('attr.aria-required')
93
- ], TngTextarea.prototype, "ariaRequiredAttr", null);
94
- __decorate([
95
- HostBinding('attr.data-disabled')
96
- ], TngTextarea.prototype, "dataDisabledAttr", null);
97
- __decorate([
98
- HostBinding('attr.data-invalid')
99
- ], TngTextarea.prototype, "dataInvalidAttr", null);
100
- __decorate([
101
- HostBinding('attr.disabled')
102
- ], TngTextarea.prototype, "disabledAttr", null);
103
- __decorate([
104
- HostBinding('attr.readonly')
105
- ], TngTextarea.prototype, "readonlyAttr", null);
106
- __decorate([
107
- HostBinding('attr.required')
108
- ], TngTextarea.prototype, "requiredAttr", null);
45
+ HostBinding('attr.data-resize')
46
+ ], TngTextarea.prototype, "dataResizeAttr", null);
109
47
  __decorate([
110
48
  HostBinding('attr.rows')
111
49
  ], TngTextarea.prototype, "rowsAttr", null);
50
+ __decorate([
51
+ HostBinding('style.resize')
52
+ ], TngTextarea.prototype, "resizeStyle", null);
112
53
  TngTextarea = __decorate([
113
54
  Directive({
114
55
  selector: 'textarea[tngTextarea]',
115
56
  exportAs: 'tngTextarea',
57
+ standalone: true,
58
+ hostDirectives: [
59
+ {
60
+ directive: TngInput,
61
+ inputs: [
62
+ 'ariaDescribedBy',
63
+ 'ariaInvalid',
64
+ 'ariaLabel',
65
+ 'ariaLabelledby',
66
+ 'ariaRequired',
67
+ 'disabled',
68
+ 'readonly',
69
+ 'required',
70
+ ],
71
+ },
72
+ ],
116
73
  })
117
74
  ], TngTextarea);
118
75
  export { TngTextarea };
@@ -1 +1 @@
1
- {"version":3,"file":"tng-textarea.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/textarea/tng-textarea.ts"],"names":[],"mappings":"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","sourcesContent":["import { Directive, HostBinding, booleanAttribute, input, numberAttribute } from '@angular/core';\n\ntype NullableBooleanInput = boolean | null | string | undefined;\n\nexport function coerceTngTextareaNullableBoolean(value: NullableBooleanInput): boolean | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n if (value === '' || value === true || value === 'true') {\n return true;\n }\n\n if (value === false || value === 'false') {\n return false;\n }\n\n return null;\n}\n\nexport function normalizeTngTextareaRows(value: number): number {\n if (!Number.isFinite(value)) {\n return 3;\n }\n\n return Math.max(1, Math.trunc(value));\n}\n\nfunction normalizeStringValue(value: string | null | undefined): string | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : null;\n}\n\nfunction toAriaBoolean(value: boolean | null): 'false' | 'true' | null {\n if (value === null) {\n return null;\n }\n\n return value ? 'true' : 'false';\n}\n\n@Directive({\n selector: 'textarea[tngTextarea]',\n exportAs: 'tngTextarea',\n})\nexport class TngTextarea {\n public readonly ariaDescribedBy = input<string | null>(null);\n public readonly ariaInvalid = input<boolean | null, NullableBooleanInput>(null, {\n transform: coerceTngTextareaNullableBoolean,\n });\n public readonly ariaRequired = input<boolean | null, NullableBooleanInput>(null, {\n transform: coerceTngTextareaNullableBoolean,\n });\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly readonly = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly required = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly rows = input<number, number | string>(3, {\n transform: (value: number | string): number => normalizeTngTextareaRows(numberAttribute(value)),\n });\n\n @HostBinding('attr.aria-describedby')\n protected get ariaDescribedByAttr(): string | null {\n return normalizeStringValue(this.ariaDescribedBy());\n }\n\n @HostBinding('attr.aria-invalid')\n protected get ariaInvalidAttr(): 'false' | 'true' | null {\n return toAriaBoolean(this.ariaInvalid());\n }\n\n @HostBinding('attr.aria-required')\n protected get ariaRequiredAttr(): 'false' | 'true' | null {\n if (this.required()) {\n return 'true';\n }\n\n return toAriaBoolean(this.ariaRequired());\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.data-invalid')\n protected get dataInvalidAttr(): '' | null {\n return this.ariaInvalid() === true ? '' : null;\n }\n\n @HostBinding('attr.disabled')\n protected get disabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.readonly')\n protected get readonlyAttr(): '' | null {\n return this.readonly() ? '' : null;\n }\n\n @HostBinding('attr.required')\n protected get requiredAttr(): '' | null {\n return this.required() ? '' : null;\n }\n\n @HostBinding('attr.rows')\n protected get rowsAttr(): number {\n return this.rows();\n }\n}\n"]}
1
+ {"version":3,"file":"tng-textarea.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/textarea/tng-textarea.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK7E,wEAAwE;AACxE,MAAM,UAAU,gCAAgC,CAAC,KAA2B;IAC1E,OAAO,6BAA6B,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAa;IACpD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IACE,UAAU,KAAK,MAAM;QACrB,UAAU,KAAK,UAAU;QACzB,UAAU,KAAK,YAAY;QAC3B,UAAU,KAAK,MAAM,EACrB,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAsBM,IAAM,WAAW,GAAjB,MAAM,WAAW;IACN,MAAM,GAAG,KAAK,CAAgD,UAAU,EAAE;QACxF,SAAS,EAAE,0BAA0B;KACtC,CAAC,CAAC;IACa,IAAI,GAAG,KAAK,CAA0B,CAAC,EAAE;QACvD,SAAS,EAAE,CAAC,KAAsB,EAAU,EAAE,CAAC,wBAAwB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;KAChG,CAAC,CAAC;IAGH,IAAc,cAAc;QAC1B,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAGD,IAAc,QAAQ;QACpB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAGD,IAAc,WAAW;QACvB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF,CAAA;AAbC;IADC,WAAW,CAAC,kBAAkB,CAAC;iDAG/B;AAGD;IADC,WAAW,CAAC,WAAW,CAAC;2CAGxB;AAGD;IADC,WAAW,CAAC,cAAc,CAAC;8CAG3B;AArBU,WAAW;IApBvB,SAAS,CAAC;QACT,QAAQ,EAAE,uBAAuB;QACjC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,IAAI;QAChB,cAAc,EAAE;YACd;gBACE,SAAS,EAAE,QAAQ;gBACnB,MAAM,EAAE;oBACN,iBAAiB;oBACjB,aAAa;oBACb,WAAW;oBACX,gBAAgB;oBAChB,cAAc;oBACd,UAAU;oBACV,UAAU;oBACV,UAAU;iBACX;aACF;SACF;KACF,CAAC;GACW,WAAW,CAsBvB","sourcesContent":["import { Directive, HostBinding, input, numberAttribute } from '@angular/core';\nimport { coerceTngInputNullableBoolean, TngInput } from '../input/tng-input';\n\ntype NullableBooleanInput = boolean | null | string | undefined;\nexport type TngTextareaResize = 'both' | 'horizontal' | 'none' | 'vertical';\n\n/** @deprecated Use `coerceTngInputNullableBoolean` from `tng-input`. */\nexport function coerceTngTextareaNullableBoolean(value: NullableBooleanInput): boolean | null {\n return coerceTngInputNullableBoolean(value);\n}\n\nexport function normalizeTngTextareaRows(value: number): number {\n if (!Number.isFinite(value)) {\n return 3;\n }\n\n return Math.max(1, Math.trunc(value));\n}\n\nexport function normalizeTngTextareaResize(value: unknown): TngTextareaResize {\n if (typeof value !== 'string') {\n return 'vertical';\n }\n\n const normalized = value.trim().toLowerCase();\n if (\n normalized === 'none' ||\n normalized === 'vertical' ||\n normalized === 'horizontal' ||\n normalized === 'both'\n ) {\n return normalized;\n }\n\n return 'vertical';\n}\n\n@Directive({\n selector: 'textarea[tngTextarea]',\n exportAs: 'tngTextarea',\n standalone: true,\n hostDirectives: [\n {\n directive: TngInput,\n inputs: [\n 'ariaDescribedBy',\n 'ariaInvalid',\n 'ariaLabel',\n 'ariaLabelledby',\n 'ariaRequired',\n 'disabled',\n 'readonly',\n 'required',\n ],\n },\n ],\n})\nexport class TngTextarea {\n public readonly resize = input<TngTextareaResize, TngTextareaResize | string>('vertical', {\n transform: normalizeTngTextareaResize,\n });\n public readonly rows = input<number, number | string>(3, {\n transform: (value: number | string): number => normalizeTngTextareaRows(numberAttribute(value)),\n });\n\n @HostBinding('attr.data-resize')\n protected get dataResizeAttr(): TngTextareaResize {\n return this.resize();\n }\n\n @HostBinding('attr.rows')\n protected get rowsAttr(): number {\n return this.rows();\n }\n\n @HostBinding('style.resize')\n protected get resizeStyle(): TngTextareaResize {\n return this.resize();\n }\n}\n"]}
@@ -42,6 +42,7 @@ export declare class TngAccordion {
42
42
  protected get dataType(): TngAccordionType;
43
43
  protected get dataDisabled(): 'true' | 'false';
44
44
  ngDoCheck(): void;
45
+ protected onHostKeydown(event: KeyboardEvent): void;
45
46
  ngOnDestroy(): void;
46
47
  registerItem(item: TngAccordionItem): void;
47
48
  unregisterItem(item: TngAccordionItem): void;
@@ -52,6 +53,7 @@ export declare class TngAccordion {
52
53
  onTriggerFocused(item: TngAccordionItem): void;
53
54
  onTriggerClicked(item: TngAccordionItem): void;
54
55
  onTriggerKeydown(item: TngAccordionItem, event: KeyboardEvent): void;
56
+ onTabWithinAccordion(source: HTMLElement, shiftKey: boolean): boolean;
55
57
  isPanelMounted(item: TngAccordionItem): boolean;
56
58
  open(value: TngAccordionValue): void;
57
59
  close(value: TngAccordionValue): void;
@@ -73,6 +75,11 @@ export declare class TngAccordion {
73
75
  private mapSetToOrderedValues;
74
76
  private getOrderedItems;
75
77
  private getEnabledItems;
78
+ private shouldHandleCustomTabNavigation;
79
+ private getCustomTabSequence;
80
+ private findSequenceIndex;
81
+ private isInHiddenSubtree;
82
+ private isNaturallyTabbable;
76
83
  private resolveCurrentFocusableItem;
77
84
  getHostElement(): HTMLElement;
78
85
  }
@@ -102,6 +109,7 @@ export declare class TngAccordionItem {
102
109
  unregisterPanel(panel: TngAccordionPanel): void;
103
110
  focusTrigger(): void;
104
111
  getTriggerId(): string | null;
112
+ getTriggerElement(): HTMLElement | null;
105
113
  getPanelId(): string | null;
106
114
  markExpandedOnce(): void;
107
115
  hasExpandedOnce(): boolean;
@@ -125,6 +133,7 @@ export declare class TngAccordionTrigger {
125
133
  ngOnDestroy(): void;
126
134
  getTriggerId(): string;
127
135
  focusSelf(): void;
136
+ getHostElement(): HTMLElement;
128
137
  private resolveTriggerId;
129
138
  protected onFocus(): void;
130
139
  protected onClick(event: MouseEvent): void;
@@ -1 +1 @@
1
- {"version":3,"file":"tng-accordion.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/accordion/tng-accordion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tng-accordion.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/accordion/tng-accordion.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,CAAC;AACrD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;AAChD,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,UAAU,GAAG,cAAc,CAAC;AAEhF,MAAM,MAAM,+BAA+B,GAAG,QAAQ,CAAC;IACrD,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC7C,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACrC,OAAO,EAAE,yBAAyB,CAAC;CACpC,CAAC,CAAC;AA8HH,qBAKa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IACvE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+B;IACrD,OAAO,CAAC,kBAAkB,CAAgC;IAC1D,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,qBAAqB,CAAoC;IACjE,OAAO,CAAC,kBAAkB,CAAS;IAEnC,QAAQ,CAAC,IAAI,8EAEV;IACH,QAAQ,CAAC,KAAK,iIAKZ;IACF,QAAQ,CAAC,YAAY,iIAKnB;IACF,QAAQ,CAAC,WAAW,qEAEjB;IACH,QAAQ,CAAC,QAAQ,qEAEd;IACH,QAAQ,CAAC,IAAI,qEAEV;IACH,QAAQ,CAAC,IAAI,qEAEV;IACH,QAAQ,CAAC,SAAS,qEAEf;IAEH,QAAQ,CAAC,WAAW,oGAAqE;IACzF,QAAQ,CAAC,YAAY,yEAA0C;IAC/D,QAAQ,CAAC,cAAc;eAnLhB,iBAAiB;kBACd,OAAO;wBACD,SAAS,iBAAiB,EAAE;gBACpC,SAAS,iBAAiB,EAAE;iBAC3B,yBAAyB;QA+KkC;IACpE,QAAQ,CAAC,SAAS,8DAA+B;IACjD,QAAQ,CAAC,MAAM,8DAA+B;IAC9C,QAAQ,CAAC,UAAU,8DAA+B;IAClD,QAAQ,CAAC,MAAM,8DAA+B;IAG9C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,WAAW,CAAU;IAGnD,SAAS,KAAK,QAAQ,IAAI,gBAAgB,CAEzC;IAGD,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,OAAO,CAE7C;IAED,SAAS,IAAI,IAAI;IAKjB,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAmBnD,WAAW,IAAI,IAAI;IAInB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAK1C,cAAc,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAkB5C,iBAAiB,IAAI,IAAI;IAIzB,cAAc,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO;IAI/C,cAAc,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO;IAI/C,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM;IAalD,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAQ9C,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAI9C,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI;IAqBpE,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO;IAyBrE,cAAc,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO;IAiB/C,IAAI,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAIpC,KAAK,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAIrC,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAKtC,iBAAiB,IAAI,SAAS,iBAAiB,EAAE;IAOjD,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,aAAa;IAiDrB,OAAO,CAAC,oBAAoB;IAoC5B,OAAO,CAAC,uBAAuB;IAoB/B,OAAO,CAAC,SAAS;IA4CjB,OAAO,CAAC,mBAAmB;IAgC3B,OAAO,CAAC,2BAA2B;IA4BnC,OAAO,CAAC,uCAAuC;IAsB/C,OAAO,CAAC,4BAA4B;IAkBpC,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,2BAA2B;IAkBnC,OAAO,CAAC,0BAA0B;IAclC,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,+BAA+B;IAOvC,OAAO,CAAC,oBAAoB;IA+B5B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,2BAA2B;IAsBnC,cAAc,IAAI,WAAW;CAG9B;AAED,qBAKa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwD;IAC7E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IACvE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwC;IAC1E,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,YAAY,CAAS;IAE7B,QAAQ,CAAC,KAAK,2FAEX;IACH,QAAQ,CAAC,QAAQ,qEAEd;IAGH,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,gBAAgB,CAAU;IAGxD,SAAS,KAAK,SAAS,IAAI,MAAM,GAAG,QAAQ,CAE3C;IAGD,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,OAAO,CAE7C;IAED,QAAQ,IAAI,IAAI;IAIhB,SAAS,IAAI,IAAI;IAIjB,WAAW,IAAI,IAAI;IAInB,cAAc,IAAI,WAAW;IAI7B,oBAAoB,IAAI,MAAM;IAI9B,QAAQ,IAAI,iBAAiB;IAI7B,YAAY,IAAI,YAAY,GAAG,IAAI;IAInC,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAInD,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAMrD,aAAa,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAI7C,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAM/C,YAAY,IAAI,IAAI;IAIpB,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,iBAAiB,IAAI,WAAW,GAAG,IAAI;IAIvC,UAAU,IAAI,MAAM,GAAG,IAAI;IAI3B,gBAAgB,IAAI,IAAI;IAIxB,eAAe,IAAI,OAAO;CAG3B;AAED,qBAKa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4D;IACjF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IACvE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAC4C;IAG9E,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,mBAAmB,CAAU;IAG3D,SAAS,KAAK,MAAM,IAAI,MAAM,CAE7B;IAGD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAG5C,SAAS,KAAK,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAExC;IAGD,SAAS,KAAK,YAAY,IAAI,MAAM,CAOnC;IAGD,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,OAAO,CAM7C;IAGD,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,IAAI,CAE1C;IAGD,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,IAAI,CAM1C;IAGD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAMtC;IAGD,SAAS,KAAK,SAAS,IAAI,MAAM,GAAG,QAAQ,CAM3C;IAGD,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,OAAO,CAM7C;IAED,QAAQ,IAAI,IAAI;IAIhB,WAAW,IAAI,IAAI;IAInB,YAAY,IAAI,MAAM;IAItB,SAAS,IAAI,IAAI;IAIjB,cAAc,IAAI,WAAW;IAI7B,OAAO,CAAC,gBAAgB;IAUxB,SAAS,CAAC,OAAO,IAAI,IAAI;IASzB,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAe1C,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;CAOhD;AAED,qBAKa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4D;IACjF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IACvE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6E;IAG7G,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,iBAAiB,CAAU;IAGzD,SAAS,KAAK,MAAM,IAAI,MAAM,CAE7B;IAGD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAG5C,SAAS,KAAK,cAAc,IAAI,MAAM,GAAG,IAAI,CAE5C;IAGD,SAAS,KAAK,UAAU,IAAI,EAAE,GAAG,IAAI,CAYpC;IAGD,SAAS,KAAK,SAAS,IAAI,MAAM,GAAG,QAAQ,CAM3C;IAGD,SAAS,KAAK,WAAW,IAAI,MAAM,GAAG,OAAO,CAM5C;IAED,QAAQ,IAAI,IAAI;IAIhB,SAAS,IAAI,IAAI;IAMjB,WAAW,IAAI,IAAI;IAInB,UAAU,IAAI,MAAM;IAIpB,OAAO,CAAC,cAAc;CAQvB"}