@tailng-ui/components 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 (159) hide show
  1. package/README.md +83 -5
  2. package/package.json +9 -4
  3. package/src/lib/feedback/empty/tng-empty.component.d.ts.map +1 -1
  4. package/src/lib/feedback/empty/tng-empty.component.js +5 -0
  5. package/src/lib/feedback/empty/tng-empty.component.js.map +1 -1
  6. package/src/lib/feedback/progress-bar/tng-progress-bar.component.d.ts.map +1 -1
  7. package/src/lib/feedback/progress-bar/tng-progress-bar.component.js +1 -0
  8. package/src/lib/feedback/progress-bar/tng-progress-bar.component.js.map +1 -1
  9. package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.d.ts.map +1 -1
  10. package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.js +1 -0
  11. package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.js.map +1 -1
  12. package/src/lib/feedback/skeleton/tng-skeleton.component.d.ts.map +1 -1
  13. package/src/lib/feedback/skeleton/tng-skeleton.component.js +1 -0
  14. package/src/lib/feedback/skeleton/tng-skeleton.component.js.map +1 -1
  15. package/src/lib/feedback/toast/tng-toast.component.d.ts +55 -6
  16. package/src/lib/feedback/toast/tng-toast.component.d.ts.map +1 -1
  17. package/src/lib/feedback/toast/tng-toast.component.js +235 -23
  18. package/src/lib/feedback/toast/tng-toast.component.js.map +1 -1
  19. package/src/lib/form/autocomplete/tng-autocomplete.component.js +1 -1
  20. package/src/lib/form/autocomplete/tng-autocomplete.component.js.map +1 -1
  21. package/src/lib/form/button-toggle/tng-button-toggle-group.component.d.ts.map +1 -1
  22. package/src/lib/form/button-toggle/tng-button-toggle-group.component.js +1 -0
  23. package/src/lib/form/button-toggle/tng-button-toggle-group.component.js.map +1 -1
  24. package/src/lib/form/button-toggle/tng-button-toggle.component.d.ts.map +1 -1
  25. package/src/lib/form/button-toggle/tng-button-toggle.component.js +1 -0
  26. package/src/lib/form/button-toggle/tng-button-toggle.component.js.map +1 -1
  27. package/src/lib/form/checkbox/tng-checkbox.component.d.ts.map +1 -1
  28. package/src/lib/form/checkbox/tng-checkbox.component.js +1 -0
  29. package/src/lib/form/checkbox/tng-checkbox.component.js.map +1 -1
  30. package/src/lib/form/chips/tng-chips.component.d.ts +9 -1
  31. package/src/lib/form/chips/tng-chips.component.d.ts.map +1 -1
  32. package/src/lib/form/chips/tng-chips.component.js +40 -3
  33. package/src/lib/form/chips/tng-chips.component.js.map +1 -1
  34. package/src/lib/form/combobox/tng-combobox.component.d.ts.map +1 -1
  35. package/src/lib/form/combobox/tng-combobox.component.js +1 -0
  36. package/src/lib/form/combobox/tng-combobox.component.js.map +1 -1
  37. package/src/lib/form/index.d.ts +2 -2
  38. package/src/lib/form/index.d.ts.map +1 -1
  39. package/src/lib/form/index.js +2 -2
  40. package/src/lib/form/index.js.map +1 -1
  41. package/src/lib/form/input-otp/index.d.ts +3 -0
  42. package/src/lib/form/input-otp/index.d.ts.map +1 -0
  43. package/src/lib/form/input-otp/index.js +3 -0
  44. package/src/lib/form/input-otp/index.js.map +1 -0
  45. package/src/lib/form/input-otp/tng-input-otp.component.d.ts +79 -7
  46. package/src/lib/form/input-otp/tng-input-otp.component.d.ts.map +1 -1
  47. package/src/lib/form/input-otp/tng-input-otp.component.js +441 -81
  48. package/src/lib/form/input-otp/tng-input-otp.component.js.map +1 -1
  49. package/src/lib/form/label/tng-label.component.d.ts.map +1 -1
  50. package/src/lib/form/label/tng-label.component.js +1 -0
  51. package/src/lib/form/label/tng-label.component.js.map +1 -1
  52. package/src/lib/form/radio/tng-radio.component.d.ts +4 -0
  53. package/src/lib/form/radio/tng-radio.component.d.ts.map +1 -1
  54. package/src/lib/form/radio/tng-radio.component.js +16 -0
  55. package/src/lib/form/radio/tng-radio.component.js.map +1 -1
  56. package/src/lib/form/slider/tng-slider.component.d.ts.map +1 -1
  57. package/src/lib/form/slider/tng-slider.component.js +1 -0
  58. package/src/lib/form/slider/tng-slider.component.js.map +1 -1
  59. package/src/lib/form/switch/tng-switch.component.d.ts.map +1 -1
  60. package/src/lib/form/switch/tng-switch.component.js +1 -0
  61. package/src/lib/form/switch/tng-switch.component.js.map +1 -1
  62. package/src/lib/form/textarea/tng-textarea.component.d.ts +2 -0
  63. package/src/lib/form/textarea/tng-textarea.component.d.ts.map +1 -1
  64. package/src/lib/form/textarea/tng-textarea.component.js +8 -4
  65. package/src/lib/form/textarea/tng-textarea.component.js.map +1 -1
  66. package/src/lib/form/toggle/tng-toggle.component.d.ts.map +1 -1
  67. package/src/lib/form/toggle/tng-toggle.component.js +1 -0
  68. package/src/lib/form/toggle/tng-toggle.component.js.map +1 -1
  69. package/src/lib/form/toggle-group/tng-toggle-group.component.d.ts.map +1 -1
  70. package/src/lib/form/toggle-group/tng-toggle-group.component.js +1 -0
  71. package/src/lib/form/toggle-group/tng-toggle-group.component.js.map +1 -1
  72. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.d.ts.map +1 -1
  73. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.js +1 -0
  74. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.js.map +1 -1
  75. package/src/lib/layout/card/tng-card.component.d.ts.map +1 -1
  76. package/src/lib/layout/card/tng-card.component.js +10 -0
  77. package/src/lib/layout/card/tng-card.component.js.map +1 -1
  78. package/src/lib/layout/collapsible/tng-collapsible.component.d.ts.map +1 -1
  79. package/src/lib/layout/collapsible/tng-collapsible.component.js +1 -0
  80. package/src/lib/layout/collapsible/tng-collapsible.component.js.map +1 -1
  81. package/src/lib/layout/grid/tng-grid.component.d.ts.map +1 -1
  82. package/src/lib/layout/grid/tng-grid.component.js +1 -0
  83. package/src/lib/layout/grid/tng-grid.component.js.map +1 -1
  84. package/src/lib/layout/separator/tng-separator.component.d.ts.map +1 -1
  85. package/src/lib/layout/separator/tng-separator.component.js +1 -0
  86. package/src/lib/layout/separator/tng-separator.component.js.map +1 -1
  87. package/src/lib/layout/stepper/tng-stepper.component.d.ts.map +1 -1
  88. package/src/lib/layout/stepper/tng-stepper.component.js +1 -0
  89. package/src/lib/layout/stepper/tng-stepper.component.js.map +1 -1
  90. package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.d.ts +10 -0
  91. package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.d.ts.map +1 -1
  92. package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.js +53 -1
  93. package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.js.map +1 -1
  94. package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.d.ts.map +1 -1
  95. package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.js +1 -0
  96. package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.js.map +1 -1
  97. package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.d.ts.map +1 -1
  98. package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.js +1 -0
  99. package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.js.map +1 -1
  100. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.d.ts.map +1 -1
  101. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.js +1 -0
  102. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.js.map +1 -1
  103. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.d.ts.map +1 -1
  104. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.js +1 -0
  105. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.js.map +1 -1
  106. package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.d.ts.map +1 -1
  107. package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.js +1 -0
  108. package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.js.map +1 -1
  109. package/src/lib/navigation/context-menu/tng-context-menu.component.d.ts +1 -0
  110. package/src/lib/navigation/context-menu/tng-context-menu.component.d.ts.map +1 -1
  111. package/src/lib/navigation/context-menu/tng-context-menu.component.js +21 -4
  112. package/src/lib/navigation/context-menu/tng-context-menu.component.js.map +1 -1
  113. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.d.ts.map +1 -1
  114. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.js +1 -0
  115. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.js.map +1 -1
  116. package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.d.ts.map +1 -1
  117. package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.js +1 -0
  118. package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.js.map +1 -1
  119. package/src/lib/navigation/toolbar/tng-toolbar.component.d.ts.map +1 -1
  120. package/src/lib/navigation/toolbar/tng-toolbar.component.js +1 -0
  121. package/src/lib/navigation/toolbar/tng-toolbar.component.js.map +1 -1
  122. package/src/lib/overlay/dialog/tng-dialog.component.d.ts.map +1 -1
  123. package/src/lib/overlay/dialog/tng-dialog.component.js +1 -0
  124. package/src/lib/overlay/dialog/tng-dialog.component.js.map +1 -1
  125. package/src/lib/overlay/popover/tng-popover.component.d.ts +14 -19
  126. package/src/lib/overlay/popover/tng-popover.component.d.ts.map +1 -1
  127. package/src/lib/overlay/popover/tng-popover.component.js +25 -105
  128. package/src/lib/overlay/popover/tng-popover.component.js.map +1 -1
  129. package/src/lib/overlay/tng-overlay-focus-handoff.d.ts +10 -0
  130. package/src/lib/overlay/tng-overlay-focus-handoff.d.ts.map +1 -0
  131. package/src/lib/overlay/tng-overlay-focus-handoff.js +3 -0
  132. package/src/lib/overlay/tng-overlay-focus-handoff.js.map +1 -0
  133. package/src/lib/overlay/tng-overlay-runtime.d.ts +2 -2
  134. package/src/lib/overlay/tooltip/tng-tooltip.component.d.ts +1 -18
  135. package/src/lib/overlay/tooltip/tng-tooltip.component.d.ts.map +1 -1
  136. package/src/lib/overlay/tooltip/tng-tooltip.component.js +6 -85
  137. package/src/lib/overlay/tooltip/tng-tooltip.component.js.map +1 -1
  138. package/src/lib/utility/avatar/tng-avatar.component.d.ts.map +1 -1
  139. package/src/lib/utility/avatar/tng-avatar.component.js +9 -1
  140. package/src/lib/utility/avatar/tng-avatar.component.js.map +1 -1
  141. package/src/lib/utility/badge/tng-badge.component.d.ts.map +1 -1
  142. package/src/lib/utility/badge/tng-badge.component.js +1 -0
  143. package/src/lib/utility/badge/tng-badge.component.js.map +1 -1
  144. package/src/lib/utility/button/tng-button.component.d.ts.map +1 -1
  145. package/src/lib/utility/button/tng-button.component.js +1 -0
  146. package/src/lib/utility/button/tng-button.component.js.map +1 -1
  147. package/src/lib/utility/code-block/tng-code-block.component.d.ts.map +1 -1
  148. package/src/lib/utility/code-block/tng-code-block.component.js +1 -0
  149. package/src/lib/utility/code-block/tng-code-block.component.js.map +1 -1
  150. package/src/lib/utility/copy-button/tng-copy-button.component.d.ts.map +1 -1
  151. package/src/lib/utility/copy-button/tng-copy-button.component.js +1 -0
  152. package/src/lib/utility/copy-button/tng-copy-button.component.js.map +1 -1
  153. package/src/lib/utility/tag/tng-tag.component.d.ts +8 -0
  154. package/src/lib/utility/tag/tng-tag.component.d.ts.map +1 -1
  155. package/src/lib/utility/tag/tng-tag.component.js +17 -3
  156. package/src/lib/utility/tag/tng-tag.component.js.map +1 -1
  157. package/src/lib/utility/tree/tng-tree.component.d.ts.map +1 -1
  158. package/src/lib/utility/tree/tng-tree.component.js +1 -0
  159. package/src/lib/utility/tree/tng-tree.component.js.map +1 -1
package/README.md CHANGED
@@ -1,26 +1,104 @@
1
+ # @tailng-ui/components
2
+
3
+ Ready-to-use styled Angular components for TailNG UI, built on top of `@tailng-ui/primitives` with accessibility-first behavior and clean APIs.
4
+
1
5
  <div align="center">
2
6
  <img
3
7
  src="https://raw.githubusercontent.com/tailng/tailng-ui/main/apps/tailng-ui/docs/src/assets/logo.svg"
4
- width="96"
8
+ width="120"
5
9
  alt="TailNG logo"
6
10
  />
11
+
12
+ <h1>@tailng-ui/components</h1>
13
+
14
+ <p>
15
+ <strong>Scalability of Angular. Simplicity of Tailwind.</strong>
16
+ </p>
17
+
18
+ <p>
19
+ Installable component wrappers for Angular 21+ applications and design systems.
20
+ </p>
21
+
22
+ <p>
23
+ <a href="https://github.com/tailng/tailng-ui">GitHub</a>
24
+ ·
25
+ <a href="https://tailng.dev">Documentation</a>
26
+ </p>
7
27
  </div>
8
28
 
9
- # @tailng-ui/components
29
+ [![PROD - Release & Deploy (Tailng)](https://github.com/tailng/tailng-ui/actions/workflows/prod-build-deploy.yml/badge.svg)](https://github.com/tailng/tailng-ui/actions/workflows/prod-build-deploy.yml)
30
+ [![NPM Version](https://img.shields.io/npm/v/@tailng-ui/components.svg)](https://www.npmjs.com/package/@tailng-ui/components)
31
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
32
+
33
+ `@tailng-ui/components` provides styled components across navigation, form, layout, overlay, feedback, and utility categories.
34
+
35
+ ## Installation
36
+
37
+ ### pnpm
38
+
39
+ ```bash
40
+ pnpm add @tailng-ui/components @tailng-ui/primitives
41
+ ```
42
+
43
+ ### yarn
44
+
45
+ ```bash
46
+ yarn add @tailng-ui/components @tailng-ui/primitives
47
+ ```
48
+
49
+ ### npm
50
+
51
+ ```bash
52
+ npm install @tailng-ui/components @tailng-ui/primitives
53
+ ```
10
54
 
11
- Owned, installable components built on top of `@tailng-ui/primitives`.
55
+ Peer dependencies:
12
56
 
13
- ## TngButton
57
+ - `@angular/core` `^21.1.0`
58
+ - `tslib` `^2.3.0`
14
59
 
15
- `TngButton` provides a styled wrapper over the `tngPress` primitive behavior.
60
+ ## Quick example
16
61
 
17
62
  ```ts
18
63
  import { Component } from '@angular/core';
19
64
  import { TngButton } from '@tailng-ui/components';
20
65
 
21
66
  @Component({
67
+ standalone: true,
22
68
  imports: [TngButton],
23
69
  template: `<tng-button tone="success">Continue</tng-button>`,
24
70
  })
25
71
  export class ExampleComponent {}
26
72
  ```
73
+
74
+ ## What you get
75
+
76
+ - **Styled wrappers** over TailNG primitives with production-ready defaults.
77
+ - **Accessible behavior** inherited from headless primitive contracts.
78
+ - **Composable APIs** that remain flexible for app-specific customization.
79
+ - **Consistent package surface** across component groups.
80
+
81
+ ## Package surface
82
+
83
+ The root package exports component groups:
84
+
85
+ - `navigation`
86
+ - `form`
87
+ - `layout`
88
+ - `overlay`
89
+ - `feedback`
90
+ - `utility`
91
+
92
+ ## When to use components vs primitives
93
+
94
+ - Use `@tailng-ui/components` when you want ready-made styled building blocks.
95
+ - Use `@tailng-ui/primitives` when you need full control over markup and styling.
96
+
97
+ ## Documentation
98
+
99
+ - Package docs: [https://tailng.dev](https://tailng.dev)
100
+ - Repository: [https://github.com/tailng/tailng-ui](https://github.com/tailng/tailng-ui)
101
+
102
+ ## License
103
+
104
+ See the repository license at the root of the monorepo.
package/package.json CHANGED
@@ -1,14 +1,19 @@
1
1
  {
2
2
  "name": "@tailng-ui/components",
3
- "version": "0.1.0",
3
+ "version": "0.12.0",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "https://github.com/tailng/tailng-ui"
7
+ },
8
+ "dependencies": {
9
+ "@tailng-ui/primitives": "^0.12.0"
10
+ },
4
11
  "peerDependencies": {
5
12
  "@angular/core": "^21.1.0",
6
- "@tailng-ui/cdk": "workspace:*",
7
- "@tailng-ui/primitives": "workspace:*",
8
13
  "tslib": "^2.3.0"
9
14
  },
10
15
  "sideEffects": false,
11
16
  "types": "./src/index.d.ts",
12
17
  "main": "./src/index.js",
13
18
  "type": "commonjs"
14
- }
19
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"tng-empty.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/feedback/empty/tng-empty.component.ts"],"names":[],"mappings":"AASA,KAAK,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC;AAExC,qBAMa,iBAAiB;IAC5B,SAAgB,KAAK,qDAAkC;CACxD;AAED,qBAMa,qBAAqB;CAAG;AAErC,qBAMa,sBAAsB;CAAG;AAEtC,qBAMa,4BAA4B;CAAG;AAE5C,qBAMa,wBAAwB;CAAG"}
1
+ {"version":3,"file":"tng-empty.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/feedback/empty/tng-empty.component.ts"],"names":[],"mappings":"AASA,KAAK,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC;AAExC,qBAOa,iBAAiB;IAC5B,SAAgB,KAAK,qDAAkC;CACxD;AAED,qBAOa,qBAAqB;CAAG;AAErC,qBAOa,sBAAsB;CAAG;AAEtC,qBAOa,4BAA4B;CAAG;AAE5C,qBAOa,wBAAwB;CAAG"}
@@ -6,6 +6,7 @@ let TngEmptyComponent = class TngEmptyComponent {
6
6
  };
7
7
  TngEmptyComponent = __decorate([
8
8
  Component({
9
+ standalone: true,
9
10
  selector: 'tng-empty',
10
11
  imports: [TngEmptyPrimitive],
11
12
  templateUrl: './tng-empty.component.html',
@@ -17,6 +18,7 @@ let TngEmptyIconComponent = class TngEmptyIconComponent {
17
18
  };
18
19
  TngEmptyIconComponent = __decorate([
19
20
  Component({
21
+ standalone: true,
20
22
  selector: 'tng-empty-icon',
21
23
  imports: [TngEmptyIconPrimitive],
22
24
  templateUrl: './tng-empty-icon.component.html',
@@ -28,6 +30,7 @@ let TngEmptyTitleComponent = class TngEmptyTitleComponent {
28
30
  };
29
31
  TngEmptyTitleComponent = __decorate([
30
32
  Component({
33
+ standalone: true,
31
34
  selector: 'tng-empty-title',
32
35
  imports: [TngEmptyTitlePrimitive],
33
36
  templateUrl: './tng-empty-title.component.html',
@@ -39,6 +42,7 @@ let TngEmptyDescriptionComponent = class TngEmptyDescriptionComponent {
39
42
  };
40
43
  TngEmptyDescriptionComponent = __decorate([
41
44
  Component({
45
+ standalone: true,
42
46
  selector: 'tng-empty-description',
43
47
  imports: [TngEmptyDescriptionPrimitive],
44
48
  templateUrl: './tng-empty-description.component.html',
@@ -50,6 +54,7 @@ let TngEmptyActionsComponent = class TngEmptyActionsComponent {
50
54
  };
51
55
  TngEmptyActionsComponent = __decorate([
52
56
  Component({
57
+ standalone: true,
53
58
  selector: 'tng-empty-actions',
54
59
  imports: [TngEmptyActionsPrimitive],
55
60
  templateUrl: './tng-empty-actions.component.html',
@@ -1 +1 @@
1
- {"version":3,"file":"tng-empty.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/feedback/empty/tng-empty.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EACL,QAAQ,IAAI,iBAAiB,EAC7B,eAAe,IAAI,wBAAwB,EAC3C,mBAAmB,IAAI,4BAA4B,EACnD,YAAY,IAAI,qBAAqB,EACrC,aAAa,IAAI,sBAAsB,GACxC,MAAM,uBAAuB,CAAC;AAUxB,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IACZ,KAAK,GAAG,KAAK,CAAgB,QAAQ,CAAC,CAAC;CACxD,CAAA;AAFY,iBAAiB;IAN7B,SAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,CAAC,iBAAiB,CAAC;QAC5B,WAAW,EAAE,4BAA4B;QACzC,QAAQ,EAAE,2BAA2B;KACtC,CAAC;GACW,iBAAiB,CAE7B;;AAQM,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;CAAG,CAAA;AAAxB,qBAAqB;IANjC,SAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;QAC1B,OAAO,EAAE,CAAC,qBAAqB,CAAC;QAChC,WAAW,EAAE,iCAAiC;QAC9C,QAAQ,EAAE,2BAA2B;KACtC,CAAC;GACW,qBAAqB,CAAG;;AAQ9B,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;CAAG,CAAA;AAAzB,sBAAsB;IANlC,SAAS,CAAC;QACT,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE,CAAC,sBAAsB,CAAC;QACjC,WAAW,EAAE,kCAAkC;QAC/C,QAAQ,EAAE,2BAA2B;KACtC,CAAC;GACW,sBAAsB,CAAG;;AAQ/B,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;CAAG,CAAA;AAA/B,4BAA4B;IANxC,SAAS,CAAC;QACT,QAAQ,EAAE,uBAAuB;QACjC,OAAO,EAAE,CAAC,4BAA4B,CAAC;QACvC,WAAW,EAAE,wCAAwC;QACrD,QAAQ,EAAE,2BAA2B;KACtC,CAAC;GACW,4BAA4B,CAAG;;AAQrC,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;CAAG,CAAA;AAA3B,wBAAwB;IANpC,SAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;QAC7B,OAAO,EAAE,CAAC,wBAAwB,CAAC;QACnC,WAAW,EAAE,oCAAoC;QACjD,QAAQ,EAAE,2BAA2B;KACtC,CAAC;GACW,wBAAwB,CAAG","sourcesContent":["import { Component, input } from '@angular/core';\nimport {\n TngEmpty as TngEmptyPrimitive,\n TngEmptyActions as TngEmptyActionsPrimitive,\n TngEmptyDescription as TngEmptyDescriptionPrimitive,\n TngEmptyIcon as TngEmptyIconPrimitive,\n TngEmptyTitle as TngEmptyTitlePrimitive,\n} from '@tailng-ui/primitives';\n\ntype TngEmptyAlign = 'center' | 'start';\n\n@Component({\n selector: 'tng-empty',\n imports: [TngEmptyPrimitive],\n templateUrl: './tng-empty.component.html',\n styleUrl: './tng-empty.component.css',\n})\nexport class TngEmptyComponent {\n public readonly align = input<TngEmptyAlign>('center');\n}\n\n@Component({\n selector: 'tng-empty-icon',\n imports: [TngEmptyIconPrimitive],\n templateUrl: './tng-empty-icon.component.html',\n styleUrl: './tng-empty.component.css',\n})\nexport class TngEmptyIconComponent {}\n\n@Component({\n selector: 'tng-empty-title',\n imports: [TngEmptyTitlePrimitive],\n templateUrl: './tng-empty-title.component.html',\n styleUrl: './tng-empty.component.css',\n})\nexport class TngEmptyTitleComponent {}\n\n@Component({\n selector: 'tng-empty-description',\n imports: [TngEmptyDescriptionPrimitive],\n templateUrl: './tng-empty-description.component.html',\n styleUrl: './tng-empty.component.css',\n})\nexport class TngEmptyDescriptionComponent {}\n\n@Component({\n selector: 'tng-empty-actions',\n imports: [TngEmptyActionsPrimitive],\n templateUrl: './tng-empty-actions.component.html',\n styleUrl: './tng-empty.component.css',\n})\nexport class TngEmptyActionsComponent {}\n"]}
1
+ {"version":3,"file":"tng-empty.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/feedback/empty/tng-empty.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EACL,QAAQ,IAAI,iBAAiB,EAC7B,eAAe,IAAI,wBAAwB,EAC3C,mBAAmB,IAAI,4BAA4B,EACnD,YAAY,IAAI,qBAAqB,EACrC,aAAa,IAAI,sBAAsB,GACxC,MAAM,uBAAuB,CAAC;AAWxB,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IACZ,KAAK,GAAG,KAAK,CAAgB,QAAQ,CAAC,CAAC;CACxD,CAAA;AAFY,iBAAiB;IAP7B,SAAS,CAAC;QACT,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,CAAC,iBAAiB,CAAC;QAC5B,WAAW,EAAE,4BAA4B;QACzC,QAAQ,EAAE,2BAA2B;KACtC,CAAC;GACW,iBAAiB,CAE7B;;AASM,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;CAAG,CAAA;AAAxB,qBAAqB;IAPjC,SAAS,CAAC;QACT,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,gBAAgB;QAC1B,OAAO,EAAE,CAAC,qBAAqB,CAAC;QAChC,WAAW,EAAE,iCAAiC;QAC9C,QAAQ,EAAE,2BAA2B;KACtC,CAAC;GACW,qBAAqB,CAAG;;AAS9B,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;CAAG,CAAA;AAAzB,sBAAsB;IAPlC,SAAS,CAAC;QACT,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE,CAAC,sBAAsB,CAAC;QACjC,WAAW,EAAE,kCAAkC;QAC/C,QAAQ,EAAE,2BAA2B;KACtC,CAAC;GACW,sBAAsB,CAAG;;AAS/B,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;CAAG,CAAA;AAA/B,4BAA4B;IAPxC,SAAS,CAAC;QACT,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,uBAAuB;QACjC,OAAO,EAAE,CAAC,4BAA4B,CAAC;QACvC,WAAW,EAAE,wCAAwC;QACrD,QAAQ,EAAE,2BAA2B;KACtC,CAAC;GACW,4BAA4B,CAAG;;AASrC,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;CAAG,CAAA;AAA3B,wBAAwB;IAPpC,SAAS,CAAC;QACT,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,mBAAmB;QAC7B,OAAO,EAAE,CAAC,wBAAwB,CAAC;QACnC,WAAW,EAAE,oCAAoC;QACjD,QAAQ,EAAE,2BAA2B;KACtC,CAAC;GACW,wBAAwB,CAAG","sourcesContent":["import { Component, input } from '@angular/core';\nimport {\n TngEmpty as TngEmptyPrimitive,\n TngEmptyActions as TngEmptyActionsPrimitive,\n TngEmptyDescription as TngEmptyDescriptionPrimitive,\n TngEmptyIcon as TngEmptyIconPrimitive,\n TngEmptyTitle as TngEmptyTitlePrimitive,\n} from '@tailng-ui/primitives';\n\ntype TngEmptyAlign = 'center' | 'start';\n\n@Component({\n standalone: true,\n selector: 'tng-empty',\n imports: [TngEmptyPrimitive],\n templateUrl: './tng-empty.component.html',\n styleUrl: './tng-empty.component.css',\n})\nexport class TngEmptyComponent {\n public readonly align = input<TngEmptyAlign>('center');\n}\n\n@Component({\n standalone: true,\n selector: 'tng-empty-icon',\n imports: [TngEmptyIconPrimitive],\n templateUrl: './tng-empty-icon.component.html',\n styleUrl: './tng-empty.component.css',\n})\nexport class TngEmptyIconComponent {}\n\n@Component({\n standalone: true,\n selector: 'tng-empty-title',\n imports: [TngEmptyTitlePrimitive],\n templateUrl: './tng-empty-title.component.html',\n styleUrl: './tng-empty.component.css',\n})\nexport class TngEmptyTitleComponent {}\n\n@Component({\n standalone: true,\n selector: 'tng-empty-description',\n imports: [TngEmptyDescriptionPrimitive],\n templateUrl: './tng-empty-description.component.html',\n styleUrl: './tng-empty.component.css',\n})\nexport class TngEmptyDescriptionComponent {}\n\n@Component({\n standalone: true,\n selector: 'tng-empty-actions',\n imports: [TngEmptyActionsPrimitive],\n templateUrl: './tng-empty-actions.component.html',\n styleUrl: './tng-empty.component.css',\n})\nexport class TngEmptyActionsComponent {}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tng-progress-bar.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/feedback/progress-bar/tng-progress-bar.component.ts"],"names":[],"mappings":"AASA,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQvF;AAED,qBAMa,uBAAuB;IAClC,SAAgB,SAAS,qDAA8B;IACvD,SAAgB,aAAa,8EAE1B;IACH,SAAgB,GAAG,4EAGhB;IACH,SAAgB,GAAG,4EAGhB;IACH,SAAgB,KAAK,4EAGlB;IAEH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,yCAEjC;CACH"}
1
+ {"version":3,"file":"tng-progress-bar.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/feedback/progress-bar/tng-progress-bar.component.ts"],"names":[],"mappings":"AASA,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQvF;AAED,qBAOa,uBAAuB;IAClC,SAAgB,SAAS,qDAA8B;IACvD,SAAgB,aAAa,8EAE1B;IACH,SAAgB,GAAG,4EAGhB;IACH,SAAgB,GAAG,4EAGhB;IACH,SAAgB,KAAK,4EAGlB;IAEH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,yCAEjC;CACH"}
@@ -27,6 +27,7 @@ let TngProgressBarComponent = class TngProgressBarComponent {
27
27
  };
28
28
  TngProgressBarComponent = __decorate([
29
29
  Component({
30
+ standalone: true,
30
31
  selector: 'tng-progress-bar',
31
32
  imports: [TngProgressBarPrimitive, TngProgressBarIndicator],
32
33
  templateUrl: './tng-progress-bar.component.html',
@@ -1 +1 @@
1
- {"version":3,"file":"tng-progress-bar.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/feedback/progress-bar/tng-progress-bar.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,0BAA0B,EAC1B,cAAc,IAAI,uBAAuB,EACzC,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,UAAU,uBAAuB,CAAC,GAAW,EAAE,GAAW,EAAE,KAAa;IAC7E,MAAM,KAAK,GAAG,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IAC1C,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC;AACzD,CAAC;AAQM,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAClB,SAAS,GAAG,KAAK,CAAgB,IAAI,CAAC,CAAC;IACvC,aAAa,GAAG,KAAK,CAA4B,KAAK,EAAE;QACtE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,GAAG,GAAG,KAAK,CAA0B,GAAG,EAAE;QACxD,SAAS,EAAE,CAAC,KAAsB,EAAU,EAAE,CAC5C,0BAA0B,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAChF,CAAC,CAAC;IACa,GAAG,GAAG,KAAK,CAA0B,CAAC,EAAE;QACtD,SAAS,EAAE,CAAC,KAAsB,EAAU,EAAE,CAC5C,0BAA0B,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAChF,CAAC,CAAC;IACa,KAAK,GAAG,KAAK,CAA0B,CAAC,EAAE;QACxD,SAAS,EAAE,CAAC,KAAsB,EAAU,EAAE,CAC5C,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;KACpD,CAAC,CAAC;IAEgB,gBAAgB,GAAG,QAAQ,CAAS,GAAG,EAAE,CAC1D,uBAAuB,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAC9D,CAAC;CACH,CAAA;AArBY,uBAAuB;IANnC,SAAS,CAAC;QACT,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;QAC3D,WAAW,EAAE,mCAAmC;QAChD,QAAQ,EAAE,kCAAkC;KAC7C,CAAC;GACW,uBAAuB,CAqBnC","sourcesContent":["import { booleanAttribute, Component, computed, input } from '@angular/core';\nimport {\n normalizeTngProgressBarMax,\n normalizeTngProgressBarMin,\n resolveTngProgressBarRange,\n TngProgressBar as TngProgressBarPrimitive,\n TngProgressBarIndicator,\n} from '@tailng-ui/primitives';\n\nexport function toTngProgressBarPercent(min: number, max: number, value: number): number {\n const range = resolveTngProgressBarRange(min, max, value);\n const denominator = range.max - range.min;\n if (denominator <= 0) {\n return 100;\n }\n\n return ((range.value - range.min) / denominator) * 100;\n}\n\n@Component({\n selector: 'tng-progress-bar',\n imports: [TngProgressBarPrimitive, TngProgressBarIndicator],\n templateUrl: './tng-progress-bar.component.html',\n styleUrl: './tng-progress-bar.component.css',\n})\nexport class TngProgressBarComponent {\n public readonly ariaLabel = input<string | null>(null);\n public readonly indeterminate = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly max = input<number, number | string>(100, {\n transform: (value: number | string): number =>\n normalizeTngProgressBarMax(typeof value === 'number' ? value : Number(value)),\n });\n public readonly min = input<number, number | string>(0, {\n transform: (value: number | string): number =>\n normalizeTngProgressBarMin(typeof value === 'number' ? value : Number(value)),\n });\n public readonly value = input<number, number | string>(0, {\n transform: (value: number | string): number =>\n typeof value === 'number' ? value : Number(value),\n });\n\n protected readonly indicatorPercent = computed<number>(() =>\n toTngProgressBarPercent(this.min(), this.max(), this.value()),\n );\n}\n"]}
1
+ {"version":3,"file":"tng-progress-bar.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/feedback/progress-bar/tng-progress-bar.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,0BAA0B,EAC1B,cAAc,IAAI,uBAAuB,EACzC,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,UAAU,uBAAuB,CAAC,GAAW,EAAE,GAAW,EAAE,KAAa;IAC7E,MAAM,KAAK,GAAG,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IAC1C,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC;AACzD,CAAC;AASM,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAClB,SAAS,GAAG,KAAK,CAAgB,IAAI,CAAC,CAAC;IACvC,aAAa,GAAG,KAAK,CAA4B,KAAK,EAAE;QACtE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,GAAG,GAAG,KAAK,CAA0B,GAAG,EAAE;QACxD,SAAS,EAAE,CAAC,KAAsB,EAAU,EAAE,CAC5C,0BAA0B,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAChF,CAAC,CAAC;IACa,GAAG,GAAG,KAAK,CAA0B,CAAC,EAAE;QACtD,SAAS,EAAE,CAAC,KAAsB,EAAU,EAAE,CAC5C,0BAA0B,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAChF,CAAC,CAAC;IACa,KAAK,GAAG,KAAK,CAA0B,CAAC,EAAE;QACxD,SAAS,EAAE,CAAC,KAAsB,EAAU,EAAE,CAC5C,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;KACpD,CAAC,CAAC;IAEgB,gBAAgB,GAAG,QAAQ,CAAS,GAAG,EAAE,CAC1D,uBAAuB,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAC9D,CAAC;CACH,CAAA;AArBY,uBAAuB;IAPnC,SAAS,CAAC;QACT,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;QAC3D,WAAW,EAAE,mCAAmC;QAChD,QAAQ,EAAE,kCAAkC;KAC7C,CAAC;GACW,uBAAuB,CAqBnC","sourcesContent":["import { booleanAttribute, Component, computed, input } from '@angular/core';\nimport {\n normalizeTngProgressBarMax,\n normalizeTngProgressBarMin,\n resolveTngProgressBarRange,\n TngProgressBar as TngProgressBarPrimitive,\n TngProgressBarIndicator,\n} from '@tailng-ui/primitives';\n\nexport function toTngProgressBarPercent(min: number, max: number, value: number): number {\n const range = resolveTngProgressBarRange(min, max, value);\n const denominator = range.max - range.min;\n if (denominator <= 0) {\n return 100;\n }\n\n return ((range.value - range.min) / denominator) * 100;\n}\n\n@Component({\n standalone: true,\n selector: 'tng-progress-bar',\n imports: [TngProgressBarPrimitive, TngProgressBarIndicator],\n templateUrl: './tng-progress-bar.component.html',\n styleUrl: './tng-progress-bar.component.css',\n})\nexport class TngProgressBarComponent {\n public readonly ariaLabel = input<string | null>(null);\n public readonly indeterminate = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly max = input<number, number | string>(100, {\n transform: (value: number | string): number =>\n normalizeTngProgressBarMax(typeof value === 'number' ? value : Number(value)),\n });\n public readonly min = input<number, number | string>(0, {\n transform: (value: number | string): number =>\n normalizeTngProgressBarMin(typeof value === 'number' ? value : Number(value)),\n });\n public readonly value = input<number, number | string>(0, {\n transform: (value: number | string): number =>\n typeof value === 'number' ? value : Number(value),\n });\n\n protected readonly indicatorPercent = computed<number>(() =>\n toTngProgressBarPercent(this.min(), this.max(), this.value()),\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tng-progress-spinner.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/feedback/progress-spinner/tng-progress-spinner.component.ts"],"names":[],"mappings":"AAmBA,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ3F;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,qBAMa,2BAA2B;IACtC,SAAgB,SAAS,qDAA8B;IACvD,SAAgB,aAAa,8EAE1B;IACH,SAAgB,GAAG,4EAGhB;IACH,SAAgB,GAAG,4EAGhB;IACH,SAAgB,IAAI,4EAGjB;IACH,SAAgB,WAAW,4EAGxB;IACH,SAAgB,KAAK,4EAGlB;IAEH,SAAS,CAAC,QAAQ,CAAC,aAAa,SAAwB;IACxD,SAAS,CAAC,QAAQ,CAAC,UAAU,yCAI3B;CACH"}
1
+ {"version":3,"file":"tng-progress-spinner.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/feedback/progress-spinner/tng-progress-spinner.component.ts"],"names":[],"mappings":"AAmBA,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ3F;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,qBAOa,2BAA2B;IACtC,SAAgB,SAAS,qDAA8B;IACvD,SAAgB,aAAa,8EAE1B;IACH,SAAgB,GAAG,4EAGhB;IACH,SAAgB,GAAG,4EAGhB;IACH,SAAgB,IAAI,4EAGjB;IACH,SAAgB,WAAW,4EAGxB;IACH,SAAgB,KAAK,4EAGlB;IAEH,SAAS,CAAC,QAAQ,CAAC,aAAa,SAAwB;IACxD,SAAS,CAAC,QAAQ,CAAC,UAAU,yCAI3B;CACH"}
@@ -45,6 +45,7 @@ let TngProgressSpinnerComponent = class TngProgressSpinnerComponent {
45
45
  };
46
46
  TngProgressSpinnerComponent = __decorate([
47
47
  Component({
48
+ standalone: true,
48
49
  selector: 'tng-progress-spinner',
49
50
  imports: [TngProgressSpinnerPrimitive],
50
51
  templateUrl: './tng-progress-spinner.component.html',
@@ -1 +1 @@
1
- {"version":3,"file":"tng-progress-spinner.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/feedback/progress-spinner/tng-progress-spinner.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { booleanAttribute, Component, computed, input } from '@angular/core';\nimport {\n normalizeTngProgressSpinnerMax,\n normalizeTngProgressSpinnerMin,\n resolveTngProgressSpinnerRange,\n TngProgressSpinner as TngProgressSpinnerPrimitive,\n} from '@tailng-ui/primitives';\n\nconst spinnerRadius = 18;\nconst spinnerCircumference = 2 * Math.PI * spinnerRadius;\n\nfunction normalizePositiveNumber(value: number, fallback: number): number {\n if (!Number.isFinite(value)) {\n return fallback;\n }\n\n return value > 0 ? value : fallback;\n}\n\nexport function toTngProgressSpinnerPercent(min: number, max: number, value: number): number {\n const range = resolveTngProgressSpinnerRange(min, max, value);\n const denominator = range.max - range.min;\n if (denominator <= 0) {\n return 100;\n }\n\n return ((range.value - range.min) / denominator) * 100;\n}\n\nexport function toTngProgressSpinnerDashOffset(percent: number): number {\n return spinnerCircumference - (spinnerCircumference * percent) / 100;\n}\n\n@Component({\n selector: 'tng-progress-spinner',\n imports: [TngProgressSpinnerPrimitive],\n templateUrl: './tng-progress-spinner.component.html',\n styleUrl: './tng-progress-spinner.component.css',\n})\nexport class TngProgressSpinnerComponent {\n public readonly ariaLabel = input<string | null>(null);\n public readonly indeterminate = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly max = input<number, number | string>(100, {\n transform: (value: number | string): number =>\n normalizeTngProgressSpinnerMax(typeof value === 'number' ? value : Number(value)),\n });\n public readonly min = input<number, number | string>(0, {\n transform: (value: number | string): number =>\n normalizeTngProgressSpinnerMin(typeof value === 'number' ? value : Number(value)),\n });\n public readonly size = input<number, number | string>(40, {\n transform: (value: number | string): number =>\n normalizePositiveNumber(typeof value === 'number' ? value : Number(value), 40),\n });\n public readonly strokeWidth = input<number, number | string>(4, {\n transform: (value: number | string): number =>\n normalizePositiveNumber(typeof value === 'number' ? value : Number(value), 4),\n });\n public readonly value = input<number, number | string>(0, {\n transform: (value: number | string): number =>\n typeof value === 'number' ? value : Number(value),\n });\n\n protected readonly circumference = spinnerCircumference;\n protected readonly dashOffset = computed<number>(() =>\n toTngProgressSpinnerDashOffset(\n toTngProgressSpinnerPercent(this.min(), this.max(), this.value()),\n ),\n );\n}\n"]}
1
+ {"version":3,"file":"tng-progress-spinner.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/feedback/progress-spinner/tng-progress-spinner.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { booleanAttribute, Component, computed, input } from '@angular/core';\nimport {\n normalizeTngProgressSpinnerMax,\n normalizeTngProgressSpinnerMin,\n resolveTngProgressSpinnerRange,\n TngProgressSpinner as TngProgressSpinnerPrimitive,\n} from '@tailng-ui/primitives';\n\nconst spinnerRadius = 18;\nconst spinnerCircumference = 2 * Math.PI * spinnerRadius;\n\nfunction normalizePositiveNumber(value: number, fallback: number): number {\n if (!Number.isFinite(value)) {\n return fallback;\n }\n\n return value > 0 ? value : fallback;\n}\n\nexport function toTngProgressSpinnerPercent(min: number, max: number, value: number): number {\n const range = resolveTngProgressSpinnerRange(min, max, value);\n const denominator = range.max - range.min;\n if (denominator <= 0) {\n return 100;\n }\n\n return ((range.value - range.min) / denominator) * 100;\n}\n\nexport function toTngProgressSpinnerDashOffset(percent: number): number {\n return spinnerCircumference - (spinnerCircumference * percent) / 100;\n}\n\n@Component({\n standalone: true,\n selector: 'tng-progress-spinner',\n imports: [TngProgressSpinnerPrimitive],\n templateUrl: './tng-progress-spinner.component.html',\n styleUrl: './tng-progress-spinner.component.css',\n})\nexport class TngProgressSpinnerComponent {\n public readonly ariaLabel = input<string | null>(null);\n public readonly indeterminate = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly max = input<number, number | string>(100, {\n transform: (value: number | string): number =>\n normalizeTngProgressSpinnerMax(typeof value === 'number' ? value : Number(value)),\n });\n public readonly min = input<number, number | string>(0, {\n transform: (value: number | string): number =>\n normalizeTngProgressSpinnerMin(typeof value === 'number' ? value : Number(value)),\n });\n public readonly size = input<number, number | string>(40, {\n transform: (value: number | string): number =>\n normalizePositiveNumber(typeof value === 'number' ? value : Number(value), 40),\n });\n public readonly strokeWidth = input<number, number | string>(4, {\n transform: (value: number | string): number =>\n normalizePositiveNumber(typeof value === 'number' ? value : Number(value), 4),\n });\n public readonly value = input<number, number | string>(0, {\n transform: (value: number | string): number =>\n typeof value === 'number' ? value : Number(value),\n });\n\n protected readonly circumference = spinnerCircumference;\n protected readonly dashOffset = computed<number>(() =>\n toTngProgressSpinnerDashOffset(\n toTngProgressSpinnerPercent(this.min(), this.max(), this.value()),\n ),\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tng-skeleton.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/feedback/skeleton/tng-skeleton.component.ts"],"names":[],"mappings":"AAGA,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGjF;AAED,qBAMa,oBAAoB;IAC/B,SAAgB,QAAQ,8EAErB;IACH,SAAgB,MAAM,8CAAyB;IAC/C,SAAgB,OAAO,8EAEpB;IACH,SAAgB,KAAK,8CAAyB;IAEvC,aAAa,IAAI,MAAM;IAIvB,YAAY,IAAI,MAAM;CAG9B"}
1
+ {"version":3,"file":"tng-skeleton.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/feedback/skeleton/tng-skeleton.component.ts"],"names":[],"mappings":"AAGA,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGjF;AAED,qBAOa,oBAAoB;IAC/B,SAAgB,QAAQ,8EAErB;IACH,SAAgB,MAAM,8CAAyB;IAC/C,SAAgB,OAAO,8EAEpB;IACH,SAAgB,KAAK,8CAAyB;IAEvC,aAAa,IAAI,MAAM;IAIvB,YAAY,IAAI,MAAM;CAG9B"}
@@ -23,6 +23,7 @@ let TngSkeletonComponent = class TngSkeletonComponent {
23
23
  };
24
24
  TngSkeletonComponent = __decorate([
25
25
  Component({
26
+ standalone: true,
26
27
  selector: 'tng-skeleton',
27
28
  imports: [TngSkeletonPrimitive],
28
29
  templateUrl: './tng-skeleton.component.html',
@@ -1 +1 @@
1
- {"version":3,"file":"tng-skeleton.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/feedback/skeleton/tng-skeleton.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,WAAW,IAAI,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE5E,MAAM,UAAU,yBAAyB,CAAC,KAAa,EAAE,QAAgB;IACvE,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACrC,OAAO,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC;AACjE,CAAC;AAQM,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IACf,QAAQ,GAAG,KAAK,CAA4B,IAAI,EAAE;QAChE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,MAAM,GAAG,KAAK,CAAS,MAAM,CAAC,CAAC;IAC/B,OAAO,GAAG,KAAK,CAA4B,IAAI,EAAE;QAC/D,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,KAAK,GAAG,KAAK,CAAS,MAAM,CAAC,CAAC;IAEvC,aAAa;QAClB,OAAO,yBAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAEM,YAAY;QACjB,OAAO,yBAAyB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;CACF,CAAA;AAjBY,oBAAoB;IANhC,SAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,OAAO,EAAE,CAAC,oBAAoB,CAAC;QAC/B,WAAW,EAAE,+BAA+B;QAC5C,QAAQ,EAAE,8BAA8B;KACzC,CAAC;GACW,oBAAoB,CAiBhC","sourcesContent":["import { booleanAttribute, Component, input } from '@angular/core';\nimport { TngSkeleton as TngSkeletonPrimitive } from '@tailng-ui/primitives';\n\nexport function resolveTngSkeletonCssSize(value: string, fallback: string): string {\n const normalizedValue = value.trim();\n return normalizedValue.length > 0 ? normalizedValue : fallback;\n}\n\n@Component({\n selector: 'tng-skeleton',\n imports: [TngSkeletonPrimitive],\n templateUrl: './tng-skeleton.component.html',\n styleUrl: './tng-skeleton.component.css',\n})\nexport class TngSkeletonComponent {\n public readonly animated = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly height = input<string>('1rem');\n public readonly rounded = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly width = input<string>('100%');\n\n public resolveHeight(): string {\n return resolveTngSkeletonCssSize(this.height(), '1rem');\n }\n\n public resolveWidth(): string {\n return resolveTngSkeletonCssSize(this.width(), '100%');\n }\n}\n"]}
1
+ {"version":3,"file":"tng-skeleton.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/feedback/skeleton/tng-skeleton.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,WAAW,IAAI,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE5E,MAAM,UAAU,yBAAyB,CAAC,KAAa,EAAE,QAAgB;IACvE,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACrC,OAAO,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC;AACjE,CAAC;AASM,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IACf,QAAQ,GAAG,KAAK,CAA4B,IAAI,EAAE;QAChE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,MAAM,GAAG,KAAK,CAAS,MAAM,CAAC,CAAC;IAC/B,OAAO,GAAG,KAAK,CAA4B,IAAI,EAAE;QAC/D,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,KAAK,GAAG,KAAK,CAAS,MAAM,CAAC,CAAC;IAEvC,aAAa;QAClB,OAAO,yBAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAEM,YAAY;QACjB,OAAO,yBAAyB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;CACF,CAAA;AAjBY,oBAAoB;IAPhC,SAAS,CAAC;QACT,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,cAAc;QACxB,OAAO,EAAE,CAAC,oBAAoB,CAAC;QAC/B,WAAW,EAAE,+BAA+B;QAC5C,QAAQ,EAAE,8BAA8B;KACzC,CAAC;GACW,oBAAoB,CAiBhC","sourcesContent":["import { booleanAttribute, Component, input } from '@angular/core';\nimport { TngSkeleton as TngSkeletonPrimitive } from '@tailng-ui/primitives';\n\nexport function resolveTngSkeletonCssSize(value: string, fallback: string): string {\n const normalizedValue = value.trim();\n return normalizedValue.length > 0 ? normalizedValue : fallback;\n}\n\n@Component({\n standalone: true,\n selector: 'tng-skeleton',\n imports: [TngSkeletonPrimitive],\n templateUrl: './tng-skeleton.component.html',\n styleUrl: './tng-skeleton.component.css',\n})\nexport class TngSkeletonComponent {\n public readonly animated = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly height = input<string>('1rem');\n public readonly rounded = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly width = input<string>('100%');\n\n public resolveHeight(): string {\n return resolveTngSkeletonCssSize(this.height(), '1rem');\n }\n\n public resolveWidth(): string {\n return resolveTngSkeletonCssSize(this.width(), '100%');\n }\n}\n"]}
@@ -1,39 +1,88 @@
1
1
  import type { OnDestroy } from '@angular/core';
2
+ import type { ElementRef } from '@angular/core';
2
3
  import type { TngToastTone } from '@tailng-ui/primitives';
3
4
  export type TngToastMode = 'snackbar' | 'toast';
4
5
  export type TngToastPosition = 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right';
6
+ export type TngToastDismissReason = 'escape' | 'manual' | 'timeout';
7
+ export type TngToastDismissEvent = Readonly<{
8
+ id: string;
9
+ reason: TngToastDismissReason;
10
+ }>;
11
+ export type TngToastAction = Readonly<{
12
+ dismissOnSelect: boolean;
13
+ label: string;
14
+ onSelect?: (id: string) => void;
15
+ }>;
16
+ export type TngToastActionOptions = Readonly<{
17
+ dismissOnSelect?: boolean;
18
+ label: string;
19
+ onSelect?: (id: string) => void;
20
+ }>;
5
21
  export type TngToastOptions = Readonly<Partial<{
22
+ action: TngToastActionOptions | null;
6
23
  duration: number;
7
24
  title: string | null;
8
25
  tone: TngToastTone;
9
26
  }>>;
10
- type TngToastKeyboardEvent = Readonly<Pick<KeyboardEvent, 'key'>> & Readonly<{
11
- preventDefault: () => void;
27
+ type TngToastRecord = Readonly<{
28
+ action: TngToastAction | null;
29
+ duration: number;
30
+ id: string;
31
+ message: string;
32
+ title: string | null;
33
+ tone: TngToastTone;
12
34
  }>;
13
35
  export declare function normalizeTngToastDuration(value: number, fallback: number): number;
14
36
  export declare function normalizeTngToastMaxVisible(value: number): number;
15
37
  export declare function resolveTngToastNextSlice<TValue>(values: readonly TValue[], maxVisible: number): readonly TValue[];
16
38
  export declare function shouldDismissTngToastForKey(key: string): boolean;
17
39
  export declare class TngToastComponent implements OnDestroy {
18
- private sequence;
19
- private readonly timeoutByToastId;
40
+ private readonly createToastId;
41
+ private readonly dismissTimers;
42
+ private readonly documentRef;
43
+ private readonly overlayLayerId;
44
+ private readonly createToastFocusId;
45
+ private isFocusLayerActive;
46
+ private isFocusLayerRegistered;
47
+ private isOverlayLayerRegistered;
20
48
  readonly duration: import("@angular/core").InputSignal<number>;
21
49
  readonly maxVisible: import("@angular/core").InputSignal<number>;
22
50
  readonly mode: import("@angular/core").InputSignal<TngToastMode>;
23
51
  readonly position: import("@angular/core").InputSignal<TngToastPosition>;
24
52
  readonly dismissed: import("@angular/core").OutputEmitterRef<string>;
53
+ readonly dismissedWithReason: import("@angular/core").OutputEmitterRef<Readonly<{
54
+ id: string;
55
+ reason: TngToastDismissReason;
56
+ }>>;
25
57
  protected readonly toasts: import("@angular/core").WritableSignal<readonly Readonly<{
58
+ action: TngToastAction | null;
26
59
  duration: number;
27
60
  id: string;
28
61
  message: string;
29
62
  title: string | null;
30
63
  tone: TngToastTone;
31
64
  }>[]>;
32
- dismiss(id: string): void;
65
+ protected readonly viewportRef: import("@angular/core").Signal<ElementRef<HTMLElement> | undefined>;
66
+ private readonly overlayLayerEffect;
67
+ dismiss(id: string, reason?: TngToastDismissReason): void;
33
68
  ngOnDestroy(): void;
34
69
  show(message: string, options?: TngToastOptions): string;
35
- protected onToastKeydown(id: string, event: TngToastKeyboardEvent): void;
70
+ protected onActionClick(toast: TngToastRecord): void;
71
+ protected onViewportFocusin(event: FocusEvent): void;
36
72
  private clearDismissTimer;
73
+ private handleOverlayDismiss;
74
+ private registerOverlayLayer;
75
+ private resolveEscapeDismissToastId;
76
+ private activateFocusLayer;
77
+ private deactivateFocusLayer;
78
+ private ensureElementId;
79
+ private registerFocusLayer;
80
+ private resolveActiveElementId;
81
+ private resolveElementById;
82
+ private resolveFocusableMemberIds;
83
+ private shouldRestoreFocus;
84
+ private unregisterFocusLayer;
85
+ private unregisterOverlayLayer;
37
86
  private scheduleDismiss;
38
87
  }
39
88
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"tng-toast.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/feedback/toast/tng-toast.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAM1D,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,OAAO,CAAC;AAChD,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC;AAEzF,MAAM,MAAM,eAAe,GAAG,QAAQ,CACpC,OAAO,CAAC;IACN,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC,CACH,CAAC;AAEF,KAAK,qBAAqB,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,GAC/D,QAAQ,CAAC;IAAE,cAAc,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,CAAC;AAU3C,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMjF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMjE;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAC7C,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,UAAU,EAAE,MAAM,GACjB,SAAS,MAAM,EAAE,CAMnB;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,qBAMa,iBAAkB,YAAW,SAAS;IACjD,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoD;IAErF,SAAgB,QAAQ,8CAAuB;IAC/C,SAAgB,UAAU,8CAAoB;IAC9C,SAAgB,IAAI,oDAAgC;IACpD,SAAgB,QAAQ,wDAA2C;IAEnE,SAAgB,SAAS,mDAAoB;IAC7C,SAAS,CAAC,QAAQ,CAAC,MAAM;kBAtDf,MAAM;YACZ,MAAM;iBACD,MAAM;eACR,MAAM,GAAG,IAAI;cACd,YAAY;UAkDgD;IAE3D,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAYzB,WAAW,IAAI,IAAI;IAQnB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,MAAM;IAgCnE,SAAS,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,IAAI;IASxE,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,eAAe;CAaxB"}
1
+ {"version":3,"file":"tng-toast.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/feedback/toast/tng-toast.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAM/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAQ1D,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,OAAO,CAAC;AAChD,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC;AACzF,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEpE,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,qBAAqB,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IACpC,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,QAAQ,CACpC,OAAO,CAAC;IACN,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC,CACH,CAAC;AAEF,KAAK,cAAc,GAAG,QAAQ,CAAC;IAC7B,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC,CAAC;AAIH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMjF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMjE;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAC7C,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,UAAU,EAAE,MAAM,GACjB,SAAS,MAAM,EAAE,CAMnB;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEhE;AA+BD,qBAOa,iBAAkB,YAAW,SAAS;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmC;IACjE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA2C;IACzE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqD;IACjF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IACvD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8D;IACjG,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,wBAAwB,CAAS;IAEzC,SAAgB,QAAQ,8CAAuB;IAC/C,SAAgB,UAAU,8CAAoB;IAC9C,SAAgB,IAAI,oDAAgC;IACpD,SAAgB,QAAQ,wDAA2C;IAEnE,SAAgB,SAAS,mDAAoB;IAC7C,SAAgB,mBAAmB;YAvH/B,MAAM;gBACF,qBAAqB;QAsHwC;IACrE,SAAS,CAAC,QAAQ,CAAC,MAAM;gBA9FjB,cAAc,GAAG,IAAI;kBACnB,MAAM;YACZ,MAAM;iBACD,MAAM;eACR,MAAM,GAAG,IAAI;cACd,YAAY;UAyFgD;IAClE,SAAS,CAAC,QAAQ,CAAC,WAAW,sEAAqD;IAEnF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAShC;IAEI,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,qBAAgC,GAAG,IAAI;IAgBnE,WAAW,IAAI,IAAI;IAQnB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,MAAM;IAiCnE,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAOpD,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAepD,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,oBAAoB;IA6B5B,OAAO,CAAC,2BAA2B;IAkBnC,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,yBAAyB;IAkBjC,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,eAAe;CAUxB"}