@tailng-ui/primitives 0.1.0 → 0.12.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 (166) hide show
  1. package/README.md +97 -11
  2. package/package.json +9 -3
  3. package/src/index.d.ts +5 -0
  4. package/src/index.d.ts.map +1 -1
  5. package/src/index.js +5 -0
  6. package/src/index.js.map +1 -1
  7. package/src/lib/feedback/empty/tng-empty.d.ts.map +1 -1
  8. package/src/lib/feedback/empty/tng-empty.js +5 -0
  9. package/src/lib/feedback/empty/tng-empty.js.map +1 -1
  10. package/src/lib/feedback/progress-bar/tng-progress-bar.d.ts.map +1 -1
  11. package/src/lib/feedback/progress-bar/tng-progress-bar.js +4 -1
  12. package/src/lib/feedback/progress-bar/tng-progress-bar.js.map +1 -1
  13. package/src/lib/feedback/progress-spinner/tng-progress-spinner.d.ts.map +1 -1
  14. package/src/lib/feedback/progress-spinner/tng-progress-spinner.js +3 -1
  15. package/src/lib/feedback/progress-spinner/tng-progress-spinner.js.map +1 -1
  16. package/src/lib/feedback/skeleton/tng-skeleton.d.ts +1 -0
  17. package/src/lib/feedback/skeleton/tng-skeleton.d.ts.map +1 -1
  18. package/src/lib/feedback/skeleton/tng-skeleton.js +5 -0
  19. package/src/lib/feedback/skeleton/tng-skeleton.js.map +1 -1
  20. package/src/lib/feedback/toast/tng-toast.d.ts.map +1 -1
  21. package/src/lib/feedback/toast/tng-toast.js +2 -0
  22. package/src/lib/feedback/toast/tng-toast.js.map +1 -1
  23. package/src/lib/form/checkbox/tng-checkbox.d.ts.map +1 -1
  24. package/src/lib/form/checkbox/tng-checkbox.js +1 -0
  25. package/src/lib/form/checkbox/tng-checkbox.js.map +1 -1
  26. package/src/lib/form/chips/tng-chips.d.ts +53 -1
  27. package/src/lib/form/chips/tng-chips.d.ts.map +1 -1
  28. package/src/lib/form/chips/tng-chips.js +284 -1
  29. package/src/lib/form/chips/tng-chips.js.map +1 -1
  30. package/src/lib/form/combobox/tng-combobox.d.ts.map +1 -1
  31. package/src/lib/form/combobox/tng-combobox.js +1 -0
  32. package/src/lib/form/combobox/tng-combobox.js.map +1 -1
  33. package/src/lib/form/input-otp/tng-input-otp.d.ts +22 -0
  34. package/src/lib/form/input-otp/tng-input-otp.d.ts.map +1 -1
  35. package/src/lib/form/input-otp/tng-input-otp.js +106 -1
  36. package/src/lib/form/input-otp/tng-input-otp.js.map +1 -1
  37. package/src/lib/form/label/tng-label.d.ts +2 -0
  38. package/src/lib/form/label/tng-label.d.ts.map +1 -1
  39. package/src/lib/form/label/tng-label.js +10 -0
  40. package/src/lib/form/label/tng-label.js.map +1 -1
  41. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.d.ts +1 -0
  42. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.d.ts.map +1 -1
  43. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js +26 -0
  44. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js.map +1 -1
  45. package/src/lib/form/multiselect/tng-multiselect.d.ts.map +1 -1
  46. package/src/lib/form/multiselect/tng-multiselect.js +1 -0
  47. package/src/lib/form/multiselect/tng-multiselect.js.map +1 -1
  48. package/src/lib/form/radio/tng-radio.d.ts +26 -0
  49. package/src/lib/form/radio/tng-radio.d.ts.map +1 -1
  50. package/src/lib/form/radio/tng-radio.js +130 -1
  51. package/src/lib/form/radio/tng-radio.js.map +1 -1
  52. package/src/lib/form/slider/tng-slider.d.ts.map +1 -1
  53. package/src/lib/form/slider/tng-slider.js +1 -0
  54. package/src/lib/form/slider/tng-slider.js.map +1 -1
  55. package/src/lib/form/switch/tng-switch.d.ts.map +1 -1
  56. package/src/lib/form/switch/tng-switch.js +1 -0
  57. package/src/lib/form/switch/tng-switch.js.map +1 -1
  58. package/src/lib/form/textarea/tng-textarea.d.ts +6 -14
  59. package/src/lib/form/textarea/tng-textarea.d.ts.map +1 -1
  60. package/src/lib/form/textarea/tng-textarea.js +42 -85
  61. package/src/lib/form/textarea/tng-textarea.js.map +1 -1
  62. package/src/lib/form/toggle/tng-toggle.d.ts.map +1 -1
  63. package/src/lib/form/toggle/tng-toggle.js +1 -0
  64. package/src/lib/form/toggle/tng-toggle.js.map +1 -1
  65. package/src/lib/form/toggle-group/tng-toggle-group.d.ts.map +1 -1
  66. package/src/lib/form/toggle-group/tng-toggle-group.js +1 -0
  67. package/src/lib/form/toggle-group/tng-toggle-group.js.map +1 -1
  68. package/src/lib/layout/accordion/tng-accordion.d.ts +9 -0
  69. package/src/lib/layout/accordion/tng-accordion.d.ts.map +1 -1
  70. package/src/lib/layout/accordion/tng-accordion.js +113 -0
  71. package/src/lib/layout/accordion/tng-accordion.js.map +1 -1
  72. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.d.ts.map +1 -1
  73. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js +1 -0
  74. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js.map +1 -1
  75. package/src/lib/layout/card/tng-card.d.ts.map +1 -1
  76. package/src/lib/layout/card/tng-card.js +10 -0
  77. package/src/lib/layout/card/tng-card.js.map +1 -1
  78. package/src/lib/layout/collapsible/tng-collapsible.d.ts.map +1 -1
  79. package/src/lib/layout/collapsible/tng-collapsible.js +3 -0
  80. package/src/lib/layout/collapsible/tng-collapsible.js.map +1 -1
  81. package/src/lib/layout/grid/tng-grid.d.ts.map +1 -1
  82. package/src/lib/layout/grid/tng-grid.js +1 -0
  83. package/src/lib/layout/grid/tng-grid.js.map +1 -1
  84. package/src/lib/layout/separator/tng-separator.d.ts.map +1 -1
  85. package/src/lib/layout/separator/tng-separator.js +1 -0
  86. package/src/lib/layout/separator/tng-separator.js.map +1 -1
  87. package/src/lib/layout/stepper/tng-stepper.d.ts.map +1 -1
  88. package/src/lib/layout/stepper/tng-stepper.js +1 -0
  89. package/src/lib/layout/stepper/tng-stepper.js.map +1 -1
  90. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.d.ts +20 -0
  91. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.d.ts.map +1 -0
  92. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.js +106 -0
  93. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.js.map +1 -0
  94. package/src/lib/layout/tree/index.d.ts +5 -0
  95. package/src/lib/layout/tree/index.d.ts.map +1 -0
  96. package/src/lib/layout/tree/index.js +5 -0
  97. package/src/lib/layout/tree/index.js.map +1 -0
  98. package/src/lib/layout/tree/tng-tree-group.d.ts +10 -0
  99. package/src/lib/layout/tree/tng-tree-group.d.ts.map +1 -0
  100. package/src/lib/layout/tree/tng-tree-group.js +29 -0
  101. package/src/lib/layout/tree/tng-tree-group.js.map +1 -0
  102. package/src/lib/layout/tree/tng-tree-indicator.d.ts +8 -0
  103. package/src/lib/layout/tree/tng-tree-indicator.d.ts.map +1 -0
  104. package/src/lib/layout/tree/tng-tree-indicator.js +36 -0
  105. package/src/lib/layout/tree/tng-tree-indicator.js.map +1 -0
  106. package/src/lib/layout/tree/tng-tree-item.d.ts +36 -0
  107. package/src/lib/layout/tree/tng-tree-item.d.ts.map +1 -0
  108. package/src/lib/layout/tree/tng-tree-item.js +139 -0
  109. package/src/lib/layout/tree/tng-tree-item.js.map +1 -0
  110. package/src/lib/layout/tree/tng-tree.d.ts +64 -1
  111. package/src/lib/layout/tree/tng-tree.d.ts.map +1 -1
  112. package/src/lib/layout/tree/tng-tree.js +536 -1
  113. package/src/lib/layout/tree/tng-tree.js.map +1 -1
  114. package/src/lib/layout/tree/tng-tree.transforms.d.ts +10 -0
  115. package/src/lib/layout/tree/tng-tree.transforms.d.ts.map +1 -0
  116. package/src/lib/layout/tree/tng-tree.transforms.js +46 -0
  117. package/src/lib/layout/tree/tng-tree.transforms.js.map +1 -0
  118. package/src/lib/navigation/breadcrumb/tng-breadcrumb.d.ts.map +1 -1
  119. package/src/lib/navigation/breadcrumb/tng-breadcrumb.js +5 -0
  120. package/src/lib/navigation/breadcrumb/tng-breadcrumb.js.map +1 -1
  121. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.d.ts.map +1 -1
  122. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js +1 -0
  123. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js.map +1 -1
  124. package/src/lib/navigation/navigation-menu/tng-navigation-menu.d.ts.map +1 -1
  125. package/src/lib/navigation/navigation-menu/tng-navigation-menu.js +1 -0
  126. package/src/lib/navigation/navigation-menu/tng-navigation-menu.js.map +1 -1
  127. package/src/lib/navigation/toolbar/tng-toolbar.d.ts.map +1 -1
  128. package/src/lib/navigation/toolbar/tng-toolbar.js +1 -0
  129. package/src/lib/navigation/toolbar/tng-toolbar.js.map +1 -1
  130. package/src/lib/overlay/dialog/tng-dialog.d.ts +158 -0
  131. package/src/lib/overlay/dialog/tng-dialog.d.ts.map +1 -0
  132. package/src/lib/overlay/dialog/tng-dialog.js +854 -0
  133. package/src/lib/overlay/dialog/tng-dialog.js.map +1 -0
  134. package/src/lib/overlay/popover/tng-popover.d.ts +121 -0
  135. package/src/lib/overlay/popover/tng-popover.d.ts.map +1 -0
  136. package/src/lib/overlay/popover/tng-popover.js +614 -0
  137. package/src/lib/overlay/popover/tng-popover.js.map +1 -0
  138. package/src/lib/overlay/tng-overlay-runtime.d.ts +11 -0
  139. package/src/lib/overlay/tng-overlay-runtime.d.ts.map +1 -0
  140. package/src/lib/overlay/tng-overlay-runtime.js +6 -0
  141. package/src/lib/overlay/tng-overlay-runtime.js.map +1 -0
  142. package/src/lib/overlay/tooltip/tng-tooltip.d.ts +92 -3
  143. package/src/lib/overlay/tooltip/tng-tooltip.d.ts.map +1 -1
  144. package/src/lib/overlay/tooltip/tng-tooltip.js +477 -3
  145. package/src/lib/overlay/tooltip/tng-tooltip.js.map +1 -1
  146. package/src/lib/utility/avatar/tng-avatar.d.ts.map +1 -1
  147. package/src/lib/utility/avatar/tng-avatar.js +3 -0
  148. package/src/lib/utility/avatar/tng-avatar.js.map +1 -1
  149. package/src/lib/utility/badge/tng-badge.d.ts +6 -0
  150. package/src/lib/utility/badge/tng-badge.d.ts.map +1 -1
  151. package/src/lib/utility/badge/tng-badge.js +66 -0
  152. package/src/lib/utility/badge/tng-badge.js.map +1 -1
  153. package/src/lib/utility/code-block/tng-code-block.d.ts.map +1 -1
  154. package/src/lib/utility/code-block/tng-code-block.js +5 -0
  155. package/src/lib/utility/code-block/tng-code-block.js.map +1 -1
  156. package/src/lib/utility/copy/tng-copy.d.ts +21 -10
  157. package/src/lib/utility/copy/tng-copy.d.ts.map +1 -1
  158. package/src/lib/utility/copy/tng-copy.js +118 -88
  159. package/src/lib/utility/copy/tng-copy.js.map +1 -1
  160. package/src/lib/utility/press/tng-press.d.ts.map +1 -1
  161. package/src/lib/utility/press/tng-press.js +1 -0
  162. package/src/lib/utility/press/tng-press.js.map +1 -1
  163. package/src/lib/utility/tag/tng-tag.d.ts +37 -0
  164. package/src/lib/utility/tag/tng-tag.d.ts.map +1 -1
  165. package/src/lib/utility/tag/tng-tag.js +198 -1
  166. package/src/lib/utility/tag/tng-tag.js.map +1 -1
@@ -42,6 +42,8 @@ export declare class TngBadge implements OnDestroy {
42
42
  private readonly renderer;
43
43
  private badgeElement;
44
44
  private readonly customStyleKeys;
45
+ private resizeObserver;
46
+ private removeWindowResizeListener;
45
47
  constructor();
46
48
  ngOnDestroy(): void;
47
49
  private configureHost;
@@ -53,11 +55,15 @@ export declare class TngBadge implements OnDestroy {
53
55
  private patchBadgeContent;
54
56
  private patchBadgeCustomStyles;
55
57
  private patchBadgePlacement;
58
+ private patchBadgeRuntimeMetrics;
56
59
  private patchBadgeVisualStyles;
57
60
  private patchContentStyles;
58
61
  private patchDotStyles;
59
62
  private resolveSharedStyles;
60
63
  private setNullableStyle;
64
+ private beginRuntimePositionTracking;
65
+ private endRuntimePositionTracking;
66
+ private syncRuntimePositioning;
61
67
  }
62
68
  export {};
63
69
  //# sourceMappingURL=tng-badge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-badge.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/utility/badge/tng-badge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tng-badge.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/utility/badge/tng-badge.ts"],"names":[],"mappings":"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"}
@@ -116,6 +116,17 @@ function hasVisibleBadge(hidden, dot, content) {
116
116
  }
117
117
  return dot || content.length > 0;
118
118
  }
119
+ function resolveResizeObserverConstructor() {
120
+ const globalObject = globalThis;
121
+ const resizeObserver = globalObject.ResizeObserver;
122
+ return typeof resizeObserver === 'function' ? resizeObserver : null;
123
+ }
124
+ function toCssPixelLength(value) {
125
+ if (!Number.isFinite(value)) {
126
+ return '0px';
127
+ }
128
+ return `${Math.max(0, value)}px`;
129
+ }
119
130
  let TngBadge = class TngBadge {
120
131
  tngBadge = input(null);
121
132
  tngBadgeClass = input(null);
@@ -150,6 +161,8 @@ let TngBadge = class TngBadge {
150
161
  renderer = inject(Renderer2);
151
162
  badgeElement = null;
152
163
  customStyleKeys = new Set();
164
+ resizeObserver = null;
165
+ removeWindowResizeListener = null;
153
166
  constructor() {
154
167
  this.configureHost();
155
168
  effect(() => {
@@ -173,11 +186,13 @@ let TngBadge = class TngBadge {
173
186
  return;
174
187
  }
175
188
  this.ensureBadgeElement();
189
+ this.beginRuntimePositionTracking();
176
190
  this.patchBadgeClasses();
177
191
  this.patchBadgeAttributes();
178
192
  this.patchBadgePlacement();
179
193
  this.patchBadgeVisualStyles();
180
194
  this.patchBadgeCustomStyles();
195
+ this.patchBadgeRuntimeMetrics();
181
196
  this.patchBadgeContent(content);
182
197
  }
183
198
  ensureBadgeElement() {
@@ -190,6 +205,7 @@ let TngBadge = class TngBadge {
190
205
  return badgeElement;
191
206
  }
192
207
  destroyBadge() {
208
+ this.endRuntimePositionTracking();
193
209
  if (this.badgeElement === null) {
194
210
  return;
195
211
  }
@@ -274,6 +290,17 @@ let TngBadge = class TngBadge {
274
290
  const transform = `${placement.transform} translate(${offsetX}, ${offsetY})`;
275
291
  this.renderer.setStyle(this.badgeElement, 'transform', transform);
276
292
  }
293
+ patchBadgeRuntimeMetrics() {
294
+ if (this.badgeElement === null) {
295
+ return;
296
+ }
297
+ const hostRect = this.hostElement.getBoundingClientRect();
298
+ const badgeRect = this.badgeElement.getBoundingClientRect();
299
+ this.badgeElement.style.setProperty('--tng-badge-anchor-width', toCssPixelLength(hostRect.width));
300
+ this.badgeElement.style.setProperty('--tng-badge-anchor-height', toCssPixelLength(hostRect.height));
301
+ this.badgeElement.style.setProperty('--tng-badge-self-width', toCssPixelLength(badgeRect.width));
302
+ this.badgeElement.style.setProperty('--tng-badge-self-height', toCssPixelLength(badgeRect.height));
303
+ }
277
304
  patchBadgeVisualStyles() {
278
305
  if (this.badgeElement === null) {
279
306
  return;
@@ -334,11 +361,50 @@ let TngBadge = class TngBadge {
334
361
  }
335
362
  this.renderer.setStyle(this.badgeElement, property, value);
336
363
  }
364
+ beginRuntimePositionTracking() {
365
+ if (this.badgeElement === null) {
366
+ return;
367
+ }
368
+ const resizeObserverConstructor = resolveResizeObserverConstructor();
369
+ if (resizeObserverConstructor !== null) {
370
+ if (this.resizeObserver === null) {
371
+ this.resizeObserver = new resizeObserverConstructor(() => {
372
+ this.syncRuntimePositioning();
373
+ });
374
+ }
375
+ this.resizeObserver.observe(this.hostElement);
376
+ this.resizeObserver.observe(this.badgeElement);
377
+ return;
378
+ }
379
+ if (this.removeWindowResizeListener === null) {
380
+ this.removeWindowResizeListener = this.renderer.listen('window', 'resize', () => {
381
+ this.syncRuntimePositioning();
382
+ });
383
+ }
384
+ }
385
+ endRuntimePositionTracking() {
386
+ if (this.resizeObserver !== null) {
387
+ this.resizeObserver.disconnect();
388
+ this.resizeObserver = null;
389
+ }
390
+ if (this.removeWindowResizeListener !== null) {
391
+ this.removeWindowResizeListener();
392
+ this.removeWindowResizeListener = null;
393
+ }
394
+ }
395
+ syncRuntimePositioning() {
396
+ if (this.badgeElement === null) {
397
+ return;
398
+ }
399
+ this.patchBadgePlacement();
400
+ this.patchBadgeRuntimeMetrics();
401
+ }
337
402
  };
338
403
  TngBadge = __decorate([
339
404
  Directive({
340
405
  selector: '[tngBadge]',
341
406
  exportAs: 'tngBadge',
407
+ standalone: true,
342
408
  })
343
409
  ], TngBadge);
344
410
  export { TngBadge };
@@ -1 +1 @@
1
- {"version":3,"file":"tng-badge.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/utility/badge/tng-badge.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n booleanAttribute,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n type OnDestroy,\n Renderer2,\n} from '@angular/core';\n\nconst badgePositions = ['bottom-end', 'bottom-start', 'top-end', 'top-start'] as const;\nconst badgeSizes = ['lg', 'md', 'sm'] as const;\nconst badgeTones = ['danger', 'info', 'neutral', 'success', 'warning'] as const;\nconst badgeVariants = ['outline', 'soft', 'solid'] as const;\n\nconst badgePositionSet = new Set<TngBadgePosition>(badgePositions);\nconst badgeSizeSet = new Set<TngBadgeSize>(badgeSizes);\nconst badgeToneSet = new Set<TngBadgeTone>(badgeTones);\nconst badgeVariantSet = new Set<TngBadgeVariant>(badgeVariants);\n\nconst defaultBadgeMax = 99;\nconst defaultBadgePosition: TngBadgePosition = 'top-end';\nconst defaultBadgeSize: TngBadgeSize = 'md';\nconst defaultBadgeTone: TngBadgeTone = 'danger';\nconst defaultBadgeVariant: TngBadgeVariant = 'solid';\n\nexport type TngBadgePosition = (typeof badgePositions)[number];\nexport type TngBadgeSize = (typeof badgeSizes)[number];\nexport type TngBadgeStyleMap = Readonly<Record<string, number | string>>;\nexport type TngBadgeTone = (typeof badgeTones)[number];\nexport type TngBadgeVariant = (typeof badgeVariants)[number];\n\ntype TngBadgeToneColors = Readonly<{\n background: string;\n foreground: string;\n}>;\n\ntype TngResolvedBadgePlacement = Readonly<{\n bottom: string | null;\n left: string | null;\n right: string | null;\n top: string | null;\n transform: string;\n}>;\n\nfunction isNonEmptyText(value: string): boolean {\n return value.trim().length > 0;\n}\n\nfunction toNumber(value: number | string): number {\n return typeof value === 'number' ? value : Number(value);\n}\n\nfunction toRoundedNonNegative(value: number): number {\n return Math.max(0, Math.round(value));\n}\n\nexport function normalizeTngBadgeMax(value: number): number {\n if (!Number.isFinite(value)) {\n return defaultBadgeMax;\n }\n\n return toRoundedNonNegative(value);\n}\n\nexport function coerceTngBadgeMax(value: number | string): number {\n return normalizeTngBadgeMax(toNumber(value));\n}\n\nexport function coerceTngBadgePosition(value: string): TngBadgePosition {\n if (badgePositionSet.has(value as TngBadgePosition)) {\n return value as TngBadgePosition;\n }\n\n return defaultBadgePosition;\n}\n\nexport function coerceTngBadgeSize(value: string): TngBadgeSize {\n if (badgeSizeSet.has(value as TngBadgeSize)) {\n return value as TngBadgeSize;\n }\n\n return defaultBadgeSize;\n}\n\nexport function coerceTngBadgeTone(value: string): TngBadgeTone {\n if (badgeToneSet.has(value as TngBadgeTone)) {\n return value as TngBadgeTone;\n }\n\n return defaultBadgeTone;\n}\n\nexport function coerceTngBadgeVariant(value: string): TngBadgeVariant {\n if (badgeVariantSet.has(value as TngBadgeVariant)) {\n return value as TngBadgeVariant;\n }\n\n return defaultBadgeVariant;\n}\n\nexport function resolveTngBadgeContent(\n value: number | string | null | undefined,\n max: number,\n dot: boolean,\n): string {\n if (dot || value === null || value === undefined) {\n return '';\n }\n\n if (typeof value === 'number') {\n if (!Number.isFinite(value)) {\n return '';\n }\n\n const normalized = toRoundedNonNegative(value);\n if (normalized > max) {\n return `${max}+`;\n }\n\n return String(normalized);\n }\n\n return isNonEmptyText(value) ? value : '';\n}\n\nexport function resolveTngBadgePlacement(position: TngBadgePosition): TngResolvedBadgePlacement {\n if (position === 'top-start') {\n return { bottom: null, left: '0', right: null, top: '0', transform: 'translate(-50%, -50%)' };\n }\n\n if (position === 'bottom-start') {\n return { bottom: '0', left: '0', right: null, top: null, transform: 'translate(-50%, 50%)' };\n }\n\n if (position === 'bottom-end') {\n return { bottom: '0', left: null, right: '0', top: null, transform: 'translate(50%, 50%)' };\n }\n\n return { bottom: null, left: null, right: '0', top: '0', transform: 'translate(50%, -50%)' };\n}\n\nexport function toTngBadgeCssLength(value: number | string | null | undefined): string | null {\n if (value === null || value === undefined) {\n return null;\n }\n\n if (typeof value === 'number') {\n if (!Number.isFinite(value)) {\n return null;\n }\n\n return `${value}px`;\n }\n\n return isNonEmptyText(value) ? value.trim() : null;\n}\n\nfunction resolveTngBadgeToneColors(tone: TngBadgeTone): TngBadgeToneColors {\n if (tone === 'success') {\n return { background: '#16a34a', foreground: '#f0fdf4' };\n }\n\n if (tone === 'warning') {\n return { background: '#d97706', foreground: '#fffbeb' };\n }\n\n if (tone === 'danger') {\n return { background: '#dc2626', foreground: '#fef2f2' };\n }\n\n if (tone === 'neutral') {\n return { background: '#334155', foreground: '#f8fafc' };\n }\n\n return { background: '#2563eb', foreground: '#eff6ff' };\n}\n\nfunction hasVisibleBadge(hidden: boolean, dot: boolean, content: string): boolean {\n if (hidden) {\n return false;\n }\n\n return dot || content.length > 0;\n}\n\n@Directive({\n selector: '[tngBadge]',\n exportAs: 'tngBadge',\n})\nexport class TngBadge implements OnDestroy {\n public readonly tngBadge = input<number | string | null | undefined>(null);\n public readonly tngBadgeClass = input<string | null | undefined>(null);\n public readonly tngBadgeDisabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly tngBadgeStyle = input<TngBadgeStyleMap | null | undefined>(null);\n public readonly tngBadgeDot = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly tngBadgeHidden = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly tngBadgeMax = input<number, number | string>(defaultBadgeMax, {\n transform: coerceTngBadgeMax,\n });\n public readonly tngBadgeOffsetX = input<number | string | null | undefined>(null);\n public readonly tngBadgeOffsetY = input<number | string | null | undefined>(null);\n public readonly tngBadgePosition = input<TngBadgePosition, string>(defaultBadgePosition, {\n transform: coerceTngBadgePosition,\n });\n public readonly tngBadgeSize = input<TngBadgeSize, string>(defaultBadgeSize, {\n transform: coerceTngBadgeSize,\n });\n public readonly tngBadgeTone = input<TngBadgeTone, string>(defaultBadgeTone, {\n transform: coerceTngBadgeTone,\n });\n public readonly tngBadgeVariant = input<TngBadgeVariant, string>(defaultBadgeVariant, {\n transform: coerceTngBadgeVariant,\n });\n\n private readonly hostElement = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n private readonly renderer = inject(Renderer2);\n private badgeElement: HTMLElement | null = null;\n private readonly customStyleKeys = new Set<string>();\n\n public constructor() {\n this.configureHost();\n effect((): void => {\n this.renderBadge();\n });\n }\n\n public ngOnDestroy(): void {\n this.destroyBadge();\n }\n\n private configureHost(): void {\n this.renderer.addClass(this.hostElement, 'tng-badge-host');\n this.renderer.setAttribute(this.hostElement, 'data-tng-badge-host', '');\n\n if (this.hostElement.style.position.length === 0) {\n this.renderer.setStyle(this.hostElement, 'position', 'relative');\n }\n }\n\n private renderBadge(): void {\n const content = resolveTngBadgeContent(this.tngBadge(), this.tngBadgeMax(), this.tngBadgeDot());\n if (!hasVisibleBadge(this.tngBadgeHidden(), this.tngBadgeDot(), content)) {\n this.destroyBadge();\n return;\n }\n\n this.ensureBadgeElement();\n this.patchBadgeClasses();\n this.patchBadgeAttributes();\n this.patchBadgePlacement();\n this.patchBadgeVisualStyles();\n this.patchBadgeCustomStyles();\n this.patchBadgeContent(content);\n }\n\n private ensureBadgeElement(): HTMLElement {\n if (this.badgeElement !== null) {\n return this.badgeElement;\n }\n\n const badgeElement = this.renderer.createElement('span') as HTMLElement;\n this.renderer.appendChild(this.hostElement, badgeElement);\n this.badgeElement = badgeElement;\n return badgeElement;\n }\n\n private destroyBadge(): void {\n if (this.badgeElement === null) {\n return;\n }\n\n this.renderer.removeChild(this.hostElement, this.badgeElement);\n this.badgeElement = null;\n this.customStyleKeys.clear();\n }\n\n private patchBadgeAttributes(): void {\n if (this.badgeElement === null) {\n return;\n }\n\n const badgeElement = this.badgeElement;\n this.renderer.setAttribute(badgeElement, 'aria-hidden', 'true');\n this.renderer.setAttribute(badgeElement, 'data-placement', this.tngBadgePosition());\n this.renderer.setAttribute(badgeElement, 'data-position', this.tngBadgePosition());\n this.renderer.setAttribute(badgeElement, 'data-size', this.tngBadgeSize());\n this.renderer.setAttribute(badgeElement, 'data-slot', 'badge');\n this.renderer.setAttribute(badgeElement, 'data-tone', this.tngBadgeTone());\n this.renderer.setAttribute(badgeElement, 'data-variant', this.tngBadgeVariant());\n\n if (this.tngBadgeDisabled()) {\n this.renderer.setAttribute(badgeElement, 'data-disabled', '');\n } else {\n this.renderer.removeAttribute(badgeElement, 'data-disabled');\n }\n\n if (this.tngBadgeDot()) {\n this.renderer.setAttribute(badgeElement, 'data-dot', '');\n return;\n }\n\n this.renderer.removeAttribute(badgeElement, 'data-dot');\n }\n\n private patchBadgeClasses(): void {\n if (this.badgeElement === null) {\n return;\n }\n\n const badgeElement = this.badgeElement;\n const className = this.tngBadgeClass() ?? '';\n const normalizedClassName = className.trim();\n const classes =\n normalizedClassName.length > 0 ? `tng-badge ${normalizedClassName}` : 'tng-badge';\n this.renderer.setAttribute(badgeElement, 'class', classes);\n }\n\n private patchBadgeContent(content: string): void {\n if (this.badgeElement === null) {\n return;\n }\n\n this.renderer.setProperty(this.badgeElement, 'textContent', content);\n }\n\n private patchBadgeCustomStyles(): void {\n if (this.badgeElement === null) {\n return;\n }\n\n const badgeElement = this.badgeElement;\n const nextStyleKeys = new Set<string>();\n const styleMap = this.tngBadgeStyle();\n if (styleMap !== null && styleMap !== undefined) {\n for (const [key, value] of Object.entries(styleMap)) {\n this.renderer.setStyle(badgeElement, key, String(value));\n nextStyleKeys.add(key);\n }\n }\n\n for (const key of this.customStyleKeys) {\n if (!nextStyleKeys.has(key)) {\n this.renderer.removeStyle(badgeElement, key);\n }\n }\n\n this.customStyleKeys.clear();\n for (const key of nextStyleKeys) {\n this.customStyleKeys.add(key);\n }\n }\n\n private patchBadgePlacement(): void {\n if (this.badgeElement === null) {\n return;\n }\n\n const placement = resolveTngBadgePlacement(this.tngBadgePosition());\n this.setNullableStyle('bottom', placement.bottom);\n this.setNullableStyle('left', placement.left);\n this.setNullableStyle('right', placement.right);\n this.setNullableStyle('top', placement.top);\n\n const offsetX = toTngBadgeCssLength(this.tngBadgeOffsetX()) ?? '0px';\n const offsetY = toTngBadgeCssLength(this.tngBadgeOffsetY()) ?? '0px';\n const transform = `${placement.transform} translate(${offsetX}, ${offsetY})`;\n this.renderer.setStyle(this.badgeElement, 'transform', transform);\n }\n\n private patchBadgeVisualStyles(): void {\n if (this.badgeElement === null) {\n return;\n }\n\n const badgeElement = this.badgeElement;\n const toneColors = resolveTngBadgeToneColors(this.tngBadgeTone());\n const sharedStyles = this.resolveSharedStyles(toneColors);\n for (const [property, value] of sharedStyles) {\n this.renderer.setStyle(badgeElement, property, value);\n }\n\n if (this.tngBadgeDot()) {\n this.patchDotStyles();\n return;\n }\n\n this.patchContentStyles();\n }\n\n private patchContentStyles(): void {\n if (this.badgeElement === null) {\n return;\n }\n\n this.renderer.setStyle(this.badgeElement, 'height', 'var(--tng-badge-size, 1.125rem)');\n this.renderer.setStyle(this.badgeElement, 'min-width', 'var(--tng-badge-size, 1.125rem)');\n this.renderer.setStyle(\n this.badgeElement,\n 'padding-inline',\n 'var(--tng-badge-padding-x, 0.3rem)',\n );\n }\n\n private patchDotStyles(): void {\n if (this.badgeElement === null) {\n return;\n }\n\n this.renderer.setStyle(this.badgeElement, 'height', 'var(--tng-badge-dot-size, 0.625rem)');\n this.renderer.setStyle(this.badgeElement, 'min-width', 'var(--tng-badge-dot-size, 0.625rem)');\n this.renderer.setStyle(this.badgeElement, 'padding-inline', '0');\n }\n\n private resolveSharedStyles(\n toneColors: TngBadgeToneColors,\n ): readonly Readonly<[string, string]>[] {\n return [\n ['align-items', 'center'],\n ['background', `var(--tng-badge-bg, ${toneColors.background})`],\n ['border-radius', 'var(--tng-badge-radius, 9999px)'],\n ['box-sizing', 'border-box'],\n ['color', `var(--tng-badge-fg, ${toneColors.foreground})`],\n ['display', 'inline-flex'],\n ['font-size', 'var(--tng-badge-font-size, 0.7rem)'],\n ['font-weight', 'var(--tng-badge-font-weight, 700)'],\n ['justify-content', 'center'],\n ['line-height', '1'],\n ['pointer-events', 'none'],\n ['position', 'absolute'],\n ['white-space', 'nowrap'],\n ['z-index', 'var(--tng-badge-z-index, 1)'],\n ];\n }\n\n private setNullableStyle(property: string, value: string | null): void {\n if (this.badgeElement === null) {\n return;\n }\n\n if (value === null) {\n this.renderer.removeStyle(this.badgeElement, property);\n return;\n }\n\n this.renderer.setStyle(this.badgeElement, property, value);\n }\n}\n"]}
1
+ {"version":3,"file":"tng-badge.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/utility/badge/tng-badge.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n booleanAttribute,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n type OnDestroy,\n Renderer2,\n} from '@angular/core';\n\nconst badgePositions = ['bottom-end', 'bottom-start', 'top-end', 'top-start'] as const;\nconst badgeSizes = ['lg', 'md', 'sm'] as const;\nconst badgeTones = ['danger', 'info', 'neutral', 'success', 'warning'] as const;\nconst badgeVariants = ['outline', 'soft', 'solid'] as const;\n\nconst badgePositionSet = new Set<TngBadgePosition>(badgePositions);\nconst badgeSizeSet = new Set<TngBadgeSize>(badgeSizes);\nconst badgeToneSet = new Set<TngBadgeTone>(badgeTones);\nconst badgeVariantSet = new Set<TngBadgeVariant>(badgeVariants);\n\nconst defaultBadgeMax = 99;\nconst defaultBadgePosition: TngBadgePosition = 'top-end';\nconst defaultBadgeSize: TngBadgeSize = 'md';\nconst defaultBadgeTone: TngBadgeTone = 'danger';\nconst defaultBadgeVariant: TngBadgeVariant = 'solid';\n\nexport type TngBadgePosition = (typeof badgePositions)[number];\nexport type TngBadgeSize = (typeof badgeSizes)[number];\nexport type TngBadgeStyleMap = Readonly<Record<string, number | string>>;\nexport type TngBadgeTone = (typeof badgeTones)[number];\nexport type TngBadgeVariant = (typeof badgeVariants)[number];\n\ntype TngBadgeToneColors = Readonly<{\n background: string;\n foreground: string;\n}>;\n\ntype TngResolvedBadgePlacement = Readonly<{\n bottom: string | null;\n left: string | null;\n right: string | null;\n top: string | null;\n transform: string;\n}>;\n\ntype ResizeObserverConstructor = new (callback: ResizeObserverCallback) => ResizeObserver;\n\nfunction isNonEmptyText(value: string): boolean {\n return value.trim().length > 0;\n}\n\nfunction toNumber(value: number | string): number {\n return typeof value === 'number' ? value : Number(value);\n}\n\nfunction toRoundedNonNegative(value: number): number {\n return Math.max(0, Math.round(value));\n}\n\nexport function normalizeTngBadgeMax(value: number): number {\n if (!Number.isFinite(value)) {\n return defaultBadgeMax;\n }\n\n return toRoundedNonNegative(value);\n}\n\nexport function coerceTngBadgeMax(value: number | string): number {\n return normalizeTngBadgeMax(toNumber(value));\n}\n\nexport function coerceTngBadgePosition(value: string): TngBadgePosition {\n if (badgePositionSet.has(value as TngBadgePosition)) {\n return value as TngBadgePosition;\n }\n\n return defaultBadgePosition;\n}\n\nexport function coerceTngBadgeSize(value: string): TngBadgeSize {\n if (badgeSizeSet.has(value as TngBadgeSize)) {\n return value as TngBadgeSize;\n }\n\n return defaultBadgeSize;\n}\n\nexport function coerceTngBadgeTone(value: string): TngBadgeTone {\n if (badgeToneSet.has(value as TngBadgeTone)) {\n return value as TngBadgeTone;\n }\n\n return defaultBadgeTone;\n}\n\nexport function coerceTngBadgeVariant(value: string): TngBadgeVariant {\n if (badgeVariantSet.has(value as TngBadgeVariant)) {\n return value as TngBadgeVariant;\n }\n\n return defaultBadgeVariant;\n}\n\nexport function resolveTngBadgeContent(\n value: number | string | null | undefined,\n max: number,\n dot: boolean,\n): string {\n if (dot || value === null || value === undefined) {\n return '';\n }\n\n if (typeof value === 'number') {\n if (!Number.isFinite(value)) {\n return '';\n }\n\n const normalized = toRoundedNonNegative(value);\n if (normalized > max) {\n return `${max}+`;\n }\n\n return String(normalized);\n }\n\n return isNonEmptyText(value) ? value : '';\n}\n\nexport function resolveTngBadgePlacement(position: TngBadgePosition): TngResolvedBadgePlacement {\n if (position === 'top-start') {\n return { bottom: null, left: '0', right: null, top: '0', transform: 'translate(-50%, -50%)' };\n }\n\n if (position === 'bottom-start') {\n return { bottom: '0', left: '0', right: null, top: null, transform: 'translate(-50%, 50%)' };\n }\n\n if (position === 'bottom-end') {\n return { bottom: '0', left: null, right: '0', top: null, transform: 'translate(50%, 50%)' };\n }\n\n return { bottom: null, left: null, right: '0', top: '0', transform: 'translate(50%, -50%)' };\n}\n\nexport function toTngBadgeCssLength(value: number | string | null | undefined): string | null {\n if (value === null || value === undefined) {\n return null;\n }\n\n if (typeof value === 'number') {\n if (!Number.isFinite(value)) {\n return null;\n }\n\n return `${value}px`;\n }\n\n return isNonEmptyText(value) ? value.trim() : null;\n}\n\nfunction resolveTngBadgeToneColors(tone: TngBadgeTone): TngBadgeToneColors {\n if (tone === 'success') {\n return { background: '#16a34a', foreground: '#f0fdf4' };\n }\n\n if (tone === 'warning') {\n return { background: '#d97706', foreground: '#fffbeb' };\n }\n\n if (tone === 'danger') {\n return { background: '#dc2626', foreground: '#fef2f2' };\n }\n\n if (tone === 'neutral') {\n return { background: '#334155', foreground: '#f8fafc' };\n }\n\n return { background: '#2563eb', foreground: '#eff6ff' };\n}\n\nfunction hasVisibleBadge(hidden: boolean, dot: boolean, content: string): boolean {\n if (hidden) {\n return false;\n }\n\n return dot || content.length > 0;\n}\n\nfunction resolveResizeObserverConstructor(): ResizeObserverConstructor | null {\n const globalObject = globalThis as { ResizeObserver?: ResizeObserverConstructor };\n const resizeObserver = globalObject.ResizeObserver;\n return typeof resizeObserver === 'function' ? resizeObserver : null;\n}\n\nfunction toCssPixelLength(value: number): string {\n if (!Number.isFinite(value)) {\n return '0px';\n }\n\n return `${Math.max(0, value)}px`;\n}\n\n@Directive({\n selector: '[tngBadge]',\n exportAs: 'tngBadge',\n standalone: true,\n})\nexport class TngBadge implements OnDestroy {\n public readonly tngBadge = input<number | string | null | undefined>(null);\n public readonly tngBadgeClass = input<string | null | undefined>(null);\n public readonly tngBadgeDisabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly tngBadgeStyle = input<TngBadgeStyleMap | null | undefined>(null);\n public readonly tngBadgeDot = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly tngBadgeHidden = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly tngBadgeMax = input<number, number | string>(defaultBadgeMax, {\n transform: coerceTngBadgeMax,\n });\n public readonly tngBadgeOffsetX = input<number | string | null | undefined>(null);\n public readonly tngBadgeOffsetY = input<number | string | null | undefined>(null);\n public readonly tngBadgePosition = input<TngBadgePosition, string>(defaultBadgePosition, {\n transform: coerceTngBadgePosition,\n });\n public readonly tngBadgeSize = input<TngBadgeSize, string>(defaultBadgeSize, {\n transform: coerceTngBadgeSize,\n });\n public readonly tngBadgeTone = input<TngBadgeTone, string>(defaultBadgeTone, {\n transform: coerceTngBadgeTone,\n });\n public readonly tngBadgeVariant = input<TngBadgeVariant, string>(defaultBadgeVariant, {\n transform: coerceTngBadgeVariant,\n });\n\n private readonly hostElement = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n private readonly renderer = inject(Renderer2);\n private badgeElement: HTMLElement | null = null;\n private readonly customStyleKeys = new Set<string>();\n private resizeObserver: ResizeObserver | null = null;\n private removeWindowResizeListener: (() => void) | null = null;\n\n public constructor() {\n this.configureHost();\n effect((): void => {\n this.renderBadge();\n });\n }\n\n public ngOnDestroy(): void {\n this.destroyBadge();\n }\n\n private configureHost(): void {\n this.renderer.addClass(this.hostElement, 'tng-badge-host');\n this.renderer.setAttribute(this.hostElement, 'data-tng-badge-host', '');\n\n if (this.hostElement.style.position.length === 0) {\n this.renderer.setStyle(this.hostElement, 'position', 'relative');\n }\n }\n\n private renderBadge(): void {\n const content = resolveTngBadgeContent(this.tngBadge(), this.tngBadgeMax(), this.tngBadgeDot());\n if (!hasVisibleBadge(this.tngBadgeHidden(), this.tngBadgeDot(), content)) {\n this.destroyBadge();\n return;\n }\n\n this.ensureBadgeElement();\n this.beginRuntimePositionTracking();\n this.patchBadgeClasses();\n this.patchBadgeAttributes();\n this.patchBadgePlacement();\n this.patchBadgeVisualStyles();\n this.patchBadgeCustomStyles();\n this.patchBadgeRuntimeMetrics();\n this.patchBadgeContent(content);\n }\n\n private ensureBadgeElement(): HTMLElement {\n if (this.badgeElement !== null) {\n return this.badgeElement;\n }\n\n const badgeElement = this.renderer.createElement('span') as HTMLElement;\n this.renderer.appendChild(this.hostElement, badgeElement);\n this.badgeElement = badgeElement;\n return badgeElement;\n }\n\n private destroyBadge(): void {\n this.endRuntimePositionTracking();\n\n if (this.badgeElement === null) {\n return;\n }\n\n this.renderer.removeChild(this.hostElement, this.badgeElement);\n this.badgeElement = null;\n this.customStyleKeys.clear();\n }\n\n private patchBadgeAttributes(): void {\n if (this.badgeElement === null) {\n return;\n }\n\n const badgeElement = this.badgeElement;\n this.renderer.setAttribute(badgeElement, 'aria-hidden', 'true');\n this.renderer.setAttribute(badgeElement, 'data-placement', this.tngBadgePosition());\n this.renderer.setAttribute(badgeElement, 'data-position', this.tngBadgePosition());\n this.renderer.setAttribute(badgeElement, 'data-size', this.tngBadgeSize());\n this.renderer.setAttribute(badgeElement, 'data-slot', 'badge');\n this.renderer.setAttribute(badgeElement, 'data-tone', this.tngBadgeTone());\n this.renderer.setAttribute(badgeElement, 'data-variant', this.tngBadgeVariant());\n\n if (this.tngBadgeDisabled()) {\n this.renderer.setAttribute(badgeElement, 'data-disabled', '');\n } else {\n this.renderer.removeAttribute(badgeElement, 'data-disabled');\n }\n\n if (this.tngBadgeDot()) {\n this.renderer.setAttribute(badgeElement, 'data-dot', '');\n return;\n }\n\n this.renderer.removeAttribute(badgeElement, 'data-dot');\n }\n\n private patchBadgeClasses(): void {\n if (this.badgeElement === null) {\n return;\n }\n\n const badgeElement = this.badgeElement;\n const className = this.tngBadgeClass() ?? '';\n const normalizedClassName = className.trim();\n const classes =\n normalizedClassName.length > 0 ? `tng-badge ${normalizedClassName}` : 'tng-badge';\n this.renderer.setAttribute(badgeElement, 'class', classes);\n }\n\n private patchBadgeContent(content: string): void {\n if (this.badgeElement === null) {\n return;\n }\n\n this.renderer.setProperty(this.badgeElement, 'textContent', content);\n }\n\n private patchBadgeCustomStyles(): void {\n if (this.badgeElement === null) {\n return;\n }\n\n const badgeElement = this.badgeElement;\n const nextStyleKeys = new Set<string>();\n const styleMap = this.tngBadgeStyle();\n if (styleMap !== null && styleMap !== undefined) {\n for (const [key, value] of Object.entries(styleMap)) {\n this.renderer.setStyle(badgeElement, key, String(value));\n nextStyleKeys.add(key);\n }\n }\n\n for (const key of this.customStyleKeys) {\n if (!nextStyleKeys.has(key)) {\n this.renderer.removeStyle(badgeElement, key);\n }\n }\n\n this.customStyleKeys.clear();\n for (const key of nextStyleKeys) {\n this.customStyleKeys.add(key);\n }\n }\n\n private patchBadgePlacement(): void {\n if (this.badgeElement === null) {\n return;\n }\n\n const placement = resolveTngBadgePlacement(this.tngBadgePosition());\n this.setNullableStyle('bottom', placement.bottom);\n this.setNullableStyle('left', placement.left);\n this.setNullableStyle('right', placement.right);\n this.setNullableStyle('top', placement.top);\n\n const offsetX = toTngBadgeCssLength(this.tngBadgeOffsetX()) ?? '0px';\n const offsetY = toTngBadgeCssLength(this.tngBadgeOffsetY()) ?? '0px';\n const transform = `${placement.transform} translate(${offsetX}, ${offsetY})`;\n this.renderer.setStyle(this.badgeElement, 'transform', transform);\n }\n\n private patchBadgeRuntimeMetrics(): void {\n if (this.badgeElement === null) {\n return;\n }\n\n const hostRect = this.hostElement.getBoundingClientRect();\n const badgeRect = this.badgeElement.getBoundingClientRect();\n this.badgeElement.style.setProperty('--tng-badge-anchor-width', toCssPixelLength(hostRect.width));\n this.badgeElement.style.setProperty('--tng-badge-anchor-height', toCssPixelLength(hostRect.height));\n this.badgeElement.style.setProperty('--tng-badge-self-width', toCssPixelLength(badgeRect.width));\n this.badgeElement.style.setProperty('--tng-badge-self-height', toCssPixelLength(badgeRect.height));\n }\n\n private patchBadgeVisualStyles(): void {\n if (this.badgeElement === null) {\n return;\n }\n\n const badgeElement = this.badgeElement;\n const toneColors = resolveTngBadgeToneColors(this.tngBadgeTone());\n const sharedStyles = this.resolveSharedStyles(toneColors);\n for (const [property, value] of sharedStyles) {\n this.renderer.setStyle(badgeElement, property, value);\n }\n\n if (this.tngBadgeDot()) {\n this.patchDotStyles();\n return;\n }\n\n this.patchContentStyles();\n }\n\n private patchContentStyles(): void {\n if (this.badgeElement === null) {\n return;\n }\n\n this.renderer.setStyle(this.badgeElement, 'height', 'var(--tng-badge-size, 1.125rem)');\n this.renderer.setStyle(this.badgeElement, 'min-width', 'var(--tng-badge-size, 1.125rem)');\n this.renderer.setStyle(\n this.badgeElement,\n 'padding-inline',\n 'var(--tng-badge-padding-x, 0.3rem)',\n );\n }\n\n private patchDotStyles(): void {\n if (this.badgeElement === null) {\n return;\n }\n\n this.renderer.setStyle(this.badgeElement, 'height', 'var(--tng-badge-dot-size, 0.625rem)');\n this.renderer.setStyle(this.badgeElement, 'min-width', 'var(--tng-badge-dot-size, 0.625rem)');\n this.renderer.setStyle(this.badgeElement, 'padding-inline', '0');\n }\n\n private resolveSharedStyles(\n toneColors: TngBadgeToneColors,\n ): readonly Readonly<[string, string]>[] {\n return [\n ['align-items', 'center'],\n ['background', `var(--tng-badge-bg, ${toneColors.background})`],\n ['border-radius', 'var(--tng-badge-radius, 9999px)'],\n ['box-sizing', 'border-box'],\n ['color', `var(--tng-badge-fg, ${toneColors.foreground})`],\n ['display', 'inline-flex'],\n ['font-size', 'var(--tng-badge-font-size, 0.7rem)'],\n ['font-weight', 'var(--tng-badge-font-weight, 700)'],\n ['justify-content', 'center'],\n ['line-height', '1'],\n ['pointer-events', 'none'],\n ['position', 'absolute'],\n ['white-space', 'nowrap'],\n ['z-index', 'var(--tng-badge-z-index, 1)'],\n ];\n }\n\n private setNullableStyle(property: string, value: string | null): void {\n if (this.badgeElement === null) {\n return;\n }\n\n if (value === null) {\n this.renderer.removeStyle(this.badgeElement, property);\n return;\n }\n\n this.renderer.setStyle(this.badgeElement, property, value);\n }\n\n private beginRuntimePositionTracking(): void {\n if (this.badgeElement === null) {\n return;\n }\n\n const resizeObserverConstructor = resolveResizeObserverConstructor();\n if (resizeObserverConstructor !== null) {\n if (this.resizeObserver === null) {\n this.resizeObserver = new resizeObserverConstructor(() => {\n this.syncRuntimePositioning();\n });\n }\n\n this.resizeObserver.observe(this.hostElement);\n this.resizeObserver.observe(this.badgeElement);\n return;\n }\n\n if (this.removeWindowResizeListener === null) {\n this.removeWindowResizeListener = this.renderer.listen('window', 'resize', () => {\n this.syncRuntimePositioning();\n });\n }\n }\n\n private endRuntimePositionTracking(): void {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n\n if (this.removeWindowResizeListener !== null) {\n this.removeWindowResizeListener();\n this.removeWindowResizeListener = null;\n }\n }\n\n private syncRuntimePositioning(): void {\n if (this.badgeElement === null) {\n return;\n }\n\n this.patchBadgePlacement();\n this.patchBadgeRuntimeMetrics();\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tng-code-block.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/utility/code-block/tng-code-block.ts"],"names":[],"mappings":"AAEA,qBAIa,YAAY;IAEvB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,YAAY,CAAU;CACrD;AAED,qBAIa,kBAAkB;IAE7B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,mBAAmB,CAAU;CAC5D;AAED,qBAIa,gBAAgB;IAE3B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,iBAAiB,CAAU;CAC1D;AAED,qBAIa,kBAAkB;IAE7B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,mBAAmB,CAAU;CAC5D;AAED,qBAIa,gBAAgB;IAE3B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,iBAAiB,CAAU;CAC1D"}
1
+ {"version":3,"file":"tng-code-block.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/utility/code-block/tng-code-block.ts"],"names":[],"mappings":"AAEA,qBAKa,YAAY;IAEvB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,YAAY,CAAU;CACrD;AAED,qBAKa,kBAAkB;IAE7B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,mBAAmB,CAAU;CAC5D;AAED,qBAKa,gBAAgB;IAE3B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,iBAAiB,CAAU;CAC1D;AAED,qBAKa,kBAAkB;IAE7B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,mBAAmB,CAAU;CAC5D;AAED,qBAKa,gBAAgB;IAE3B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,iBAAiB,CAAU;CAC1D"}
@@ -10,6 +10,7 @@ TngCodeBlock = __decorate([
10
10
  Directive({
11
11
  selector: '[tngCodeBlock]',
12
12
  exportAs: 'tngCodeBlock',
13
+ standalone: true,
13
14
  })
14
15
  ], TngCodeBlock);
15
16
  export { TngCodeBlock };
@@ -23,6 +24,7 @@ TngCodeBlockHeader = __decorate([
23
24
  Directive({
24
25
  selector: '[tngCodeBlockHeader]',
25
26
  exportAs: 'tngCodeBlockHeader',
27
+ standalone: true,
26
28
  })
27
29
  ], TngCodeBlockHeader);
28
30
  export { TngCodeBlockHeader };
@@ -36,6 +38,7 @@ TngCodeBlockBody = __decorate([
36
38
  Directive({
37
39
  selector: '[tngCodeBlockBody]',
38
40
  exportAs: 'tngCodeBlockBody',
41
+ standalone: true,
39
42
  })
40
43
  ], TngCodeBlockBody);
41
44
  export { TngCodeBlockBody };
@@ -49,6 +52,7 @@ TngCodeBlockGutter = __decorate([
49
52
  Directive({
50
53
  selector: '[tngCodeBlockGutter]',
51
54
  exportAs: 'tngCodeBlockGutter',
55
+ standalone: true,
52
56
  })
53
57
  ], TngCodeBlockGutter);
54
58
  export { TngCodeBlockGutter };
@@ -62,6 +66,7 @@ TngCodeBlockCode = __decorate([
62
66
  Directive({
63
67
  selector: '[tngCodeBlockCode]',
64
68
  exportAs: 'tngCodeBlockCode',
69
+ standalone: true,
65
70
  })
66
71
  ], TngCodeBlockCode);
67
72
  export { TngCodeBlockCode };
@@ -1 +1 @@
1
- {"version":3,"file":"tng-code-block.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/utility/code-block/tng-code-block.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAMhD,IAAM,YAAY,GAAlB,MAAM,YAAY;IAEJ,QAAQ,GAAG,YAAqB,CAAC;CACrD,CAAA;AADoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;8CACsB;AAFzC,YAAY;IAJxB,SAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,cAAc;KACzB,CAAC;GACW,YAAY,CAGxB;;AAMM,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAEV,QAAQ,GAAG,mBAA4B,CAAC;CAC5D,CAAA;AADoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;oDAC6B;AAFhD,kBAAkB;IAJ9B,SAAS,CAAC;QACT,QAAQ,EAAE,sBAAsB;QAChC,QAAQ,EAAE,oBAAoB;KAC/B,CAAC;GACW,kBAAkB,CAG9B;;AAMM,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAER,QAAQ,GAAG,iBAA0B,CAAC;CAC1D,CAAA;AADoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;kDAC2B;AAF9C,gBAAgB;IAJ5B,SAAS,CAAC;QACT,QAAQ,EAAE,oBAAoB;QAC9B,QAAQ,EAAE,kBAAkB;KAC7B,CAAC;GACW,gBAAgB,CAG5B;;AAMM,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAEV,QAAQ,GAAG,mBAA4B,CAAC;CAC5D,CAAA;AADoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;oDAC6B;AAFhD,kBAAkB;IAJ9B,SAAS,CAAC;QACT,QAAQ,EAAE,sBAAsB;QAChC,QAAQ,EAAE,oBAAoB;KAC/B,CAAC;GACW,kBAAkB,CAG9B;;AAMM,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAER,QAAQ,GAAG,iBAA0B,CAAC;CAC1D,CAAA;AADoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;kDAC2B;AAF9C,gBAAgB;IAJ5B,SAAS,CAAC;QACT,QAAQ,EAAE,oBAAoB;QAC9B,QAAQ,EAAE,kBAAkB;KAC7B,CAAC;GACW,gBAAgB,CAG5B","sourcesContent":["import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[tngCodeBlock]',\n exportAs: 'tngCodeBlock',\n})\nexport class TngCodeBlock {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'code-block' as const;\n}\n\n@Directive({\n selector: '[tngCodeBlockHeader]',\n exportAs: 'tngCodeBlockHeader',\n})\nexport class TngCodeBlockHeader {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'code-block-header' as const;\n}\n\n@Directive({\n selector: '[tngCodeBlockBody]',\n exportAs: 'tngCodeBlockBody',\n})\nexport class TngCodeBlockBody {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'code-block-body' as const;\n}\n\n@Directive({\n selector: '[tngCodeBlockGutter]',\n exportAs: 'tngCodeBlockGutter',\n})\nexport class TngCodeBlockGutter {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'code-block-gutter' as const;\n}\n\n@Directive({\n selector: '[tngCodeBlockCode]',\n exportAs: 'tngCodeBlockCode',\n})\nexport class TngCodeBlockCode {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'code-block-code' as const;\n}\n"]}
1
+ {"version":3,"file":"tng-code-block.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/utility/code-block/tng-code-block.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAOhD,IAAM,YAAY,GAAlB,MAAM,YAAY;IAEJ,QAAQ,GAAG,YAAqB,CAAC;CACrD,CAAA;AADoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;8CACsB;AAFzC,YAAY;IALxB,SAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,cAAc;QACxB,UAAU,EAAE,IAAI;KACjB,CAAC;GACW,YAAY,CAGxB;;AAOM,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAEV,QAAQ,GAAG,mBAA4B,CAAC;CAC5D,CAAA;AADoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;oDAC6B;AAFhD,kBAAkB;IAL9B,SAAS,CAAC;QACT,QAAQ,EAAE,sBAAsB;QAChC,QAAQ,EAAE,oBAAoB;QAC9B,UAAU,EAAE,IAAI;KACjB,CAAC;GACW,kBAAkB,CAG9B;;AAOM,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAER,QAAQ,GAAG,iBAA0B,CAAC;CAC1D,CAAA;AADoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;kDAC2B;AAF9C,gBAAgB;IAL5B,SAAS,CAAC;QACT,QAAQ,EAAE,oBAAoB;QAC9B,QAAQ,EAAE,kBAAkB;QAC5B,UAAU,EAAE,IAAI;KACjB,CAAC;GACW,gBAAgB,CAG5B;;AAOM,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAEV,QAAQ,GAAG,mBAA4B,CAAC;CAC5D,CAAA;AADoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;oDAC6B;AAFhD,kBAAkB;IAL9B,SAAS,CAAC;QACT,QAAQ,EAAE,sBAAsB;QAChC,QAAQ,EAAE,oBAAoB;QAC9B,UAAU,EAAE,IAAI;KACjB,CAAC;GACW,kBAAkB,CAG9B;;AAOM,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAER,QAAQ,GAAG,iBAA0B,CAAC;CAC1D,CAAA;AADoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;kDAC2B;AAF9C,gBAAgB;IAL5B,SAAS,CAAC;QACT,QAAQ,EAAE,oBAAoB;QAC9B,QAAQ,EAAE,kBAAkB;QAC5B,UAAU,EAAE,IAAI;KACjB,CAAC;GACW,gBAAgB,CAG5B","sourcesContent":["import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[tngCodeBlock]',\n exportAs: 'tngCodeBlock',\n standalone: true,\n})\nexport class TngCodeBlock {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'code-block' as const;\n}\n\n@Directive({\n selector: '[tngCodeBlockHeader]',\n exportAs: 'tngCodeBlockHeader',\n standalone: true,\n})\nexport class TngCodeBlockHeader {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'code-block-header' as const;\n}\n\n@Directive({\n selector: '[tngCodeBlockBody]',\n exportAs: 'tngCodeBlockBody',\n standalone: true,\n})\nexport class TngCodeBlockBody {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'code-block-body' as const;\n}\n\n@Directive({\n selector: '[tngCodeBlockGutter]',\n exportAs: 'tngCodeBlockGutter',\n standalone: true,\n})\nexport class TngCodeBlockGutter {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'code-block-gutter' as const;\n}\n\n@Directive({\n selector: '[tngCodeBlockCode]',\n exportAs: 'tngCodeBlockCode',\n standalone: true,\n})\nexport class TngCodeBlockCode {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'code-block-code' as const;\n}\n"]}
@@ -8,23 +8,32 @@ export type TngCopyButtonTextInput = string | (() => string) | Signal<string> |
8
8
  export type TngCopyButtonTrigger = 'keyboard' | 'pointer' | 'programmatic';
9
9
  export type TngCopyButtonStatus = 'copying' | 'error' | 'idle' | 'success';
10
10
  export type TngCopyFormat = 'text/html' | 'text/plain';
11
+ /**
12
+ * Accept string because template/attribute bindings commonly arrive as strings.
13
+ * Keeping this broad also avoids `no-redundant-type-constituents` (string + literals).
14
+ */
15
+ export type TngCopyFormatInput = string | null | undefined;
11
16
  export type TngCopyMethod = 'clipboard' | 'execCommand';
12
- export type TngCopyAnnounce = boolean | 'auto';
13
- export interface TngCopyEvent {
17
+ export type TngCopyAnnounce = 'auto' | boolean;
18
+ export type TngCopyAnnounceInput = string | boolean | null | undefined;
19
+ export type TngCopyEvent = {
14
20
  text: string;
15
21
  trigger: TngCopyButtonTrigger;
16
- }
17
- export interface TngCopySuccessEvent {
22
+ };
23
+ export type TngCopySuccessEvent = {
18
24
  method: TngCopyMethod;
19
25
  text: string;
20
- }
21
- export interface TngCopyErrorEvent {
26
+ };
27
+ export type TngCopyErrorEvent = {
22
28
  error: unknown;
23
- }
29
+ };
24
30
  export declare const defaultTngCopyIgnoreSelectors: readonly string[];
25
31
  export declare const defaultTngCopySuccessDurationMs = 1500;
26
32
  export declare const defaultTngCopySuccessAnnouncement = "Copied to clipboard";
27
33
  export declare const defaultTngCopyErrorAnnouncement = "Copy failed";
34
+ export declare function eventMatchesHotkey(event: KeyboardEvent, hotkey: string): boolean;
35
+ export declare function coerceTngCopyAnnounce(value: TngCopyAnnounceInput): TngCopyAnnounce;
36
+ export declare function coerceTngCopyFormat(value: TngCopyFormatInput): TngCopyFormat;
28
37
  export declare function normalizeTngCopyIgnoreSelectors(value: TngCopyIgnoreSelectorsInput): readonly string[];
29
38
  export declare function resolveTngCopyPayload(directText: string | null | undefined, sourceText: string | null): string | null;
30
39
  export declare function writeTngClipboardText(text: string, ownerDocument: unknown, format?: TngCopyFormat): Promise<TngCopyMethod>;
@@ -32,11 +41,11 @@ export declare class TngCopy {
32
41
  readonly tngCopy: import("@angular/core").OutputEmitterRef<TngCopyEvent>;
33
42
  readonly tngCopyButtonText: import("@angular/core").InputSignal<TngCopyButtonTextInput>;
34
43
  readonly tngCopyButtonTarget: import("@angular/core").InputSignal<TngCopyFromTarget>;
35
- readonly tngCopyButtonFormat: import("@angular/core").InputSignalWithTransform<TngCopyFormat, string | null | undefined>;
44
+ readonly tngCopyButtonFormat: import("@angular/core").InputSignalWithTransform<TngCopyFormat, TngCopyFormatInput>;
36
45
  readonly tngCopyButtonSuccessDurationMs: import("@angular/core").InputSignalWithTransform<number, string | number>;
37
46
  readonly tngCopyButtonDisabled: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
38
47
  readonly tngCopyButtonHotkey: import("@angular/core").InputSignal<string | null>;
39
- readonly tngCopyButtonAnnounce: import("@angular/core").InputSignalWithTransform<TngCopyAnnounce, string | boolean | null | undefined>;
48
+ readonly tngCopyButtonAnnounce: import("@angular/core").InputSignalWithTransform<TngCopyAnnounce, TngCopyAnnounceInput>;
40
49
  readonly tngCopyButtonSuccessMessage: import("@angular/core").InputSignal<string>;
41
50
  readonly tngCopyButtonErrorMessage: import("@angular/core").InputSignal<string>;
42
51
  readonly tngCopyDisabled: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
@@ -49,7 +58,7 @@ export declare class TngCopy {
49
58
  readonly tngCopyAnnounced: import("@angular/core").OutputEmitterRef<string>;
50
59
  readonly status: import("@angular/core").WritableSignal<TngCopyButtonStatus>;
51
60
  readonly lastCopiedText: import("@angular/core").WritableSignal<string | null>;
52
- readonly error: import("@angular/core").WritableSignal<unknown>;
61
+ readonly error: import("@angular/core").WritableSignal<Error | null>;
53
62
  private readonly hostElement;
54
63
  private readonly destroyRef;
55
64
  private successResetTimer;
@@ -68,7 +77,9 @@ export declare class TngCopy {
68
77
  private scheduleSuccessReset;
69
78
  private announce;
70
79
  private emitError;
80
+ private doCopy;
71
81
  private tryCopy;
82
+ private findSourceText;
72
83
  private resolvePayload;
73
84
  }
74
85
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"tng-copy.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/utility/copy/tng-copy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tng-copy.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/utility/copy/tng-copy.ts"],"names":[],"mappings":"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"}