@tailng-ui/components 0.16.0 → 0.18.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 (257) hide show
  1. package/package.json +17 -6
  2. package/src/lib/feedback/empty/tng-empty.component.d.ts +16 -1
  3. package/src/lib/feedback/empty/tng-empty.component.d.ts.map +1 -1
  4. package/src/lib/feedback/empty/tng-empty.component.js +47 -57
  5. package/src/lib/feedback/empty/tng-empty.component.js.map +1 -1
  6. package/src/lib/feedback/index.d.ts +0 -5
  7. package/src/lib/feedback/index.d.ts.map +1 -1
  8. package/src/lib/feedback/index.js +4 -5
  9. package/src/lib/feedback/index.js.map +1 -1
  10. package/src/lib/feedback/progress-bar/tng-progress-bar.component.d.ts +4 -0
  11. package/src/lib/feedback/progress-bar/tng-progress-bar.component.d.ts.map +1 -1
  12. package/src/lib/feedback/progress-bar/tng-progress-bar.component.js +16 -26
  13. package/src/lib/feedback/progress-bar/tng-progress-bar.component.js.map +1 -1
  14. package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.d.ts +4 -0
  15. package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.d.ts.map +1 -1
  16. package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.js +18 -32
  17. package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.js.map +1 -1
  18. package/src/lib/feedback/skeleton/tng-skeleton.component.d.ts +4 -0
  19. package/src/lib/feedback/skeleton/tng-skeleton.component.d.ts.map +1 -1
  20. package/src/lib/feedback/skeleton/tng-skeleton.component.js +14 -20
  21. package/src/lib/feedback/skeleton/tng-skeleton.component.js.map +1 -1
  22. package/src/lib/feedback/toast/tng-toast.component.d.ts +4 -1
  23. package/src/lib/feedback/toast/tng-toast.component.d.ts.map +1 -1
  24. package/src/lib/feedback/toast/tng-toast.component.js +17 -19
  25. package/src/lib/feedback/toast/tng-toast.component.js.map +1 -1
  26. package/src/lib/form/autocomplete/tng-autocomplete.component.d.ts +4 -0
  27. package/src/lib/form/autocomplete/tng-autocomplete.component.d.ts.map +1 -1
  28. package/src/lib/form/autocomplete/tng-autocomplete.component.js +46 -49
  29. package/src/lib/form/autocomplete/tng-autocomplete.component.js.map +1 -1
  30. package/src/lib/form/button-toggle/tng-button-toggle-group.component.d.ts +3 -0
  31. package/src/lib/form/button-toggle/tng-button-toggle-group.component.d.ts.map +1 -1
  32. package/src/lib/form/button-toggle/tng-button-toggle-group.component.js +33 -58
  33. package/src/lib/form/button-toggle/tng-button-toggle-group.component.js.map +1 -1
  34. package/src/lib/form/button-toggle/tng-button-toggle.component.d.ts +3 -0
  35. package/src/lib/form/button-toggle/tng-button-toggle.component.d.ts.map +1 -1
  36. package/src/lib/form/button-toggle/tng-button-toggle.component.js +15 -26
  37. package/src/lib/form/button-toggle/tng-button-toggle.component.js.map +1 -1
  38. package/src/lib/form/checkbox/tng-checkbox.component.d.ts +3 -0
  39. package/src/lib/form/checkbox/tng-checkbox.component.d.ts.map +1 -1
  40. package/src/lib/form/checkbox/tng-checkbox.component.js +32 -42
  41. package/src/lib/form/checkbox/tng-checkbox.component.js.map +1 -1
  42. package/src/lib/form/chips/tng-chips.component.d.ts +3 -0
  43. package/src/lib/form/chips/tng-chips.component.d.ts.map +1 -1
  44. package/src/lib/form/chips/tng-chips.component.js +14 -19
  45. package/src/lib/form/chips/tng-chips.component.js.map +1 -1
  46. package/src/lib/form/combobox/tng-combobox.component.d.ts +3 -0
  47. package/src/lib/form/combobox/tng-combobox.component.d.ts.map +1 -1
  48. package/src/lib/form/combobox/tng-combobox.component.js +10 -13
  49. package/src/lib/form/combobox/tng-combobox.component.js.map +1 -1
  50. package/src/lib/form/datepicker/tng-datepicker.component.d.ts +4 -1
  51. package/src/lib/form/datepicker/tng-datepicker.component.d.ts.map +1 -1
  52. package/src/lib/form/datepicker/tng-datepicker.component.js +58 -98
  53. package/src/lib/form/datepicker/tng-datepicker.component.js.map +1 -1
  54. package/src/lib/form/form-field/tng-form-field.component.d.ts +3 -0
  55. package/src/lib/form/form-field/tng-form-field.component.d.ts.map +1 -1
  56. package/src/lib/form/form-field/tng-form-field.component.js +28 -33
  57. package/src/lib/form/form-field/tng-form-field.component.js.map +1 -1
  58. package/src/lib/form/index.d.ts +0 -20
  59. package/src/lib/form/index.d.ts.map +1 -1
  60. package/src/lib/form/index.js +4 -20
  61. package/src/lib/form/index.js.map +1 -1
  62. package/src/lib/form/input/tng-input.component.d.ts +9 -3
  63. package/src/lib/form/input/tng-input.component.d.ts.map +1 -1
  64. package/src/lib/form/input/tng-input.component.js +96 -81
  65. package/src/lib/form/input/tng-input.component.js.map +1 -1
  66. package/src/lib/form/input-otp/tng-input-otp.component.d.ts +3 -0
  67. package/src/lib/form/input-otp/tng-input-otp.component.d.ts.map +1 -1
  68. package/src/lib/form/input-otp/tng-input-otp.component.js +55 -69
  69. package/src/lib/form/input-otp/tng-input-otp.component.js.map +1 -1
  70. package/src/lib/form/label/tng-label.component.d.ts +3 -0
  71. package/src/lib/form/label/tng-label.component.d.ts.map +1 -1
  72. package/src/lib/form/label/tng-label.component.js +12 -19
  73. package/src/lib/form/label/tng-label.component.js.map +1 -1
  74. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.d.ts +4 -0
  75. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.d.ts.map +1 -1
  76. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.js +40 -43
  77. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.js.map +1 -1
  78. package/src/lib/form/multiselect/tng-multiselect.component.d.ts +4 -0
  79. package/src/lib/form/multiselect/tng-multiselect.component.d.ts.map +1 -1
  80. package/src/lib/form/multiselect/tng-multiselect.component.js +49 -52
  81. package/src/lib/form/multiselect/tng-multiselect.component.js.map +1 -1
  82. package/src/lib/form/radio/tng-radio.component.d.ts +3 -0
  83. package/src/lib/form/radio/tng-radio.component.d.ts.map +1 -1
  84. package/src/lib/form/radio/tng-radio.component.js +18 -33
  85. package/src/lib/form/radio/tng-radio.component.js.map +1 -1
  86. package/src/lib/form/select/tng-select.component.d.ts +4 -0
  87. package/src/lib/form/select/tng-select.component.d.ts.map +1 -1
  88. package/src/lib/form/select/tng-select.component.js +52 -53
  89. package/src/lib/form/select/tng-select.component.js.map +1 -1
  90. package/src/lib/form/select/tng-select.slots.d.ts +5 -0
  91. package/src/lib/form/select/tng-select.slots.d.ts.map +1 -1
  92. package/src/lib/form/select/tng-select.slots.js +21 -17
  93. package/src/lib/form/select/tng-select.slots.js.map +1 -1
  94. package/src/lib/form/slider/tng-slider.component.d.ts +3 -0
  95. package/src/lib/form/slider/tng-slider.component.d.ts.map +1 -1
  96. package/src/lib/form/slider/tng-slider.component.js +14 -27
  97. package/src/lib/form/slider/tng-slider.component.js.map +1 -1
  98. package/src/lib/form/switch/tng-switch.component.d.ts +3 -0
  99. package/src/lib/form/switch/tng-switch.component.d.ts.map +1 -1
  100. package/src/lib/form/switch/tng-switch.component.js +15 -24
  101. package/src/lib/form/switch/tng-switch.component.js.map +1 -1
  102. package/src/lib/form/textarea/tng-textarea.component.d.ts +3 -0
  103. package/src/lib/form/textarea/tng-textarea.component.d.ts.map +1 -1
  104. package/src/lib/form/textarea/tng-textarea.component.js +19 -36
  105. package/src/lib/form/textarea/tng-textarea.component.js.map +1 -1
  106. package/src/lib/form/toggle/tng-toggle.component.d.ts +3 -0
  107. package/src/lib/form/toggle/tng-toggle.component.d.ts.map +1 -1
  108. package/src/lib/form/toggle/tng-toggle.component.js +41 -41
  109. package/src/lib/form/toggle/tng-toggle.component.js.map +1 -1
  110. package/src/lib/form/toggle-group/tng-toggle-group.component.d.ts +4 -0
  111. package/src/lib/form/toggle-group/tng-toggle-group.component.d.ts.map +1 -1
  112. package/src/lib/form/toggle-group/tng-toggle-group.component.js +28 -31
  113. package/src/lib/form/toggle-group/tng-toggle-group.component.js.map +1 -1
  114. package/src/lib/layout/accordion/tng-accordion.component.d.ts +10 -0
  115. package/src/lib/layout/accordion/tng-accordion.component.d.ts.map +1 -1
  116. package/src/lib/layout/accordion/tng-accordion.component.js +49 -148
  117. package/src/lib/layout/accordion/tng-accordion.component.js.map +1 -1
  118. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.d.ts +3 -0
  119. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.d.ts.map +1 -1
  120. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.js +10 -13
  121. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.js.map +1 -1
  122. package/src/lib/layout/card/tng-card.component.d.ts +21 -0
  123. package/src/lib/layout/card/tng-card.component.d.ts.map +1 -1
  124. package/src/lib/layout/card/tng-card.component.js +92 -136
  125. package/src/lib/layout/card/tng-card.component.js.map +1 -1
  126. package/src/lib/layout/collapsible/tng-collapsible.component.d.ts +3 -0
  127. package/src/lib/layout/collapsible/tng-collapsible.component.d.ts.map +1 -1
  128. package/src/lib/layout/collapsible/tng-collapsible.component.js +17 -24
  129. package/src/lib/layout/collapsible/tng-collapsible.component.js.map +1 -1
  130. package/src/lib/layout/drawer/tng-drawer.component.d.ts +4 -0
  131. package/src/lib/layout/drawer/tng-drawer.component.d.ts.map +1 -1
  132. package/src/lib/layout/drawer/tng-drawer.component.js +48 -51
  133. package/src/lib/layout/drawer/tng-drawer.component.js.map +1 -1
  134. package/src/lib/layout/grid/tng-grid.component.d.ts +8 -0
  135. package/src/lib/layout/grid/tng-grid.component.d.ts.map +1 -1
  136. package/src/lib/layout/grid/tng-grid.component.js +48 -110
  137. package/src/lib/layout/grid/tng-grid.component.js.map +1 -1
  138. package/src/lib/layout/index.d.ts +1 -8
  139. package/src/lib/layout/index.d.ts.map +1 -1
  140. package/src/lib/layout/index.js +5 -8
  141. package/src/lib/layout/index.js.map +1 -1
  142. package/src/lib/layout/separator/tng-separator.component.d.ts +3 -0
  143. package/src/lib/layout/separator/tng-separator.component.d.ts.map +1 -1
  144. package/src/lib/layout/separator/tng-separator.component.js +11 -16
  145. package/src/lib/layout/separator/tng-separator.component.js.map +1 -1
  146. package/src/lib/layout/stepper/tng-stepper.component.d.ts +3 -0
  147. package/src/lib/layout/stepper/tng-stepper.component.d.ts.map +1 -1
  148. package/src/lib/layout/stepper/tng-stepper.component.js +10 -13
  149. package/src/lib/layout/stepper/tng-stepper.component.js.map +1 -1
  150. package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.d.ts +4 -0
  151. package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.d.ts.map +1 -1
  152. package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.js +47 -49
  153. package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.js.map +1 -1
  154. package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.d.ts +4 -0
  155. package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.d.ts.map +1 -1
  156. package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.js +16 -18
  157. package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.js.map +1 -1
  158. package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.d.ts +4 -0
  159. package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.d.ts.map +1 -1
  160. package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.js +10 -12
  161. package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.js.map +1 -1
  162. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.d.ts +3 -0
  163. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.d.ts.map +1 -1
  164. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.js +12 -10
  165. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.js.map +1 -1
  166. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.d.ts +4 -0
  167. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.d.ts.map +1 -1
  168. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.js +12 -14
  169. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.js.map +1 -1
  170. package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.d.ts +4 -0
  171. package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.d.ts.map +1 -1
  172. package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.js +23 -25
  173. package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.js.map +1 -1
  174. package/src/lib/navigation/context-menu/tng-context-menu.component.d.ts +5 -0
  175. package/src/lib/navigation/context-menu/tng-context-menu.component.d.ts.map +1 -1
  176. package/src/lib/navigation/context-menu/tng-context-menu.component.js +24 -26
  177. package/src/lib/navigation/context-menu/tng-context-menu.component.js.map +1 -1
  178. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.d.ts +4 -0
  179. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.d.ts.map +1 -1
  180. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.js +19 -23
  181. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.js.map +1 -1
  182. package/src/lib/navigation/index.d.ts +0 -12
  183. package/src/lib/navigation/index.d.ts.map +1 -1
  184. package/src/lib/navigation/index.js +4 -12
  185. package/src/lib/navigation/index.js.map +1 -1
  186. package/src/lib/navigation/menu/tng-menu-trigger-for.directive.d.ts +3 -0
  187. package/src/lib/navigation/menu/tng-menu-trigger-for.directive.d.ts.map +1 -1
  188. package/src/lib/navigation/menu/tng-menu-trigger-for.directive.js +22 -20
  189. package/src/lib/navigation/menu/tng-menu-trigger-for.directive.js.map +1 -1
  190. package/src/lib/navigation/menu/tng-menu.component.d.ts +5 -0
  191. package/src/lib/navigation/menu/tng-menu.component.d.ts.map +1 -1
  192. package/src/lib/navigation/menu/tng-menu.component.js +21 -23
  193. package/src/lib/navigation/menu/tng-menu.component.js.map +1 -1
  194. package/src/lib/navigation/menubar/tng-menubar.component.d.ts +5 -0
  195. package/src/lib/navigation/menubar/tng-menubar.component.d.ts.map +1 -1
  196. package/src/lib/navigation/menubar/tng-menubar.component.js +20 -22
  197. package/src/lib/navigation/menubar/tng-menubar.component.js.map +1 -1
  198. package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.d.ts +4 -0
  199. package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.d.ts.map +1 -1
  200. package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.js +11 -13
  201. package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.js.map +1 -1
  202. package/src/lib/navigation/tabs/tng-tabs.component.d.ts +5 -0
  203. package/src/lib/navigation/tabs/tng-tabs.component.d.ts.map +1 -1
  204. package/src/lib/navigation/tabs/tng-tabs.component.js +32 -34
  205. package/src/lib/navigation/tabs/tng-tabs.component.js.map +1 -1
  206. package/src/lib/navigation/toolbar/tng-toolbar.component.d.ts +4 -0
  207. package/src/lib/navigation/toolbar/tng-toolbar.component.d.ts.map +1 -1
  208. package/src/lib/navigation/toolbar/tng-toolbar.component.js +11 -13
  209. package/src/lib/navigation/toolbar/tng-toolbar.component.js.map +1 -1
  210. package/src/lib/overlay/dialog/tng-dialog.component.d.ts +4 -0
  211. package/src/lib/overlay/dialog/tng-dialog.component.d.ts.map +1 -1
  212. package/src/lib/overlay/dialog/tng-dialog.component.js +18 -25
  213. package/src/lib/overlay/dialog/tng-dialog.component.js.map +1 -1
  214. package/src/lib/overlay/index.d.ts +0 -3
  215. package/src/lib/overlay/index.d.ts.map +1 -1
  216. package/src/lib/overlay/index.js +4 -3
  217. package/src/lib/overlay/index.js.map +1 -1
  218. package/src/lib/overlay/popover/tng-popover.component.d.ts +4 -0
  219. package/src/lib/overlay/popover/tng-popover.component.d.ts.map +1 -1
  220. package/src/lib/overlay/popover/tng-popover.component.js +23 -37
  221. package/src/lib/overlay/popover/tng-popover.component.js.map +1 -1
  222. package/src/lib/overlay/tooltip/tng-tooltip.component.d.ts +4 -0
  223. package/src/lib/overlay/tooltip/tng-tooltip.component.d.ts.map +1 -1
  224. package/src/lib/overlay/tooltip/tng-tooltip.component.js +17 -21
  225. package/src/lib/overlay/tooltip/tng-tooltip.component.js.map +1 -1
  226. package/src/lib/utility/avatar/tng-avatar.component.d.ts +4 -1
  227. package/src/lib/utility/avatar/tng-avatar.component.d.ts.map +1 -1
  228. package/src/lib/utility/avatar/tng-avatar.component.js +20 -22
  229. package/src/lib/utility/avatar/tng-avatar.component.js.map +1 -1
  230. package/src/lib/utility/badge/tng-badge.component.d.ts +4 -0
  231. package/src/lib/utility/badge/tng-badge.component.d.ts.map +1 -1
  232. package/src/lib/utility/badge/tng-badge.component.js +13 -10
  233. package/src/lib/utility/badge/tng-badge.component.js.map +1 -1
  234. package/src/lib/utility/button/tng-button.component.d.ts +4 -1
  235. package/src/lib/utility/button/tng-button.component.d.ts.map +1 -1
  236. package/src/lib/utility/button/tng-button.component.js +19 -29
  237. package/src/lib/utility/button/tng-button.component.js.map +1 -1
  238. package/src/lib/utility/code-block/tng-code-block.component.d.ts +4 -0
  239. package/src/lib/utility/code-block/tng-code-block.component.d.ts.map +1 -1
  240. package/src/lib/utility/code-block/tng-code-block.component.js +73 -103
  241. package/src/lib/utility/code-block/tng-code-block.component.js.map +1 -1
  242. package/src/lib/utility/copy-button/tng-copy-button.component.d.ts +4 -1
  243. package/src/lib/utility/copy-button/tng-copy-button.component.d.ts.map +1 -1
  244. package/src/lib/utility/copy-button/tng-copy-button.component.js +28 -36
  245. package/src/lib/utility/copy-button/tng-copy-button.component.js.map +1 -1
  246. package/src/lib/utility/index.d.ts +1 -9
  247. package/src/lib/utility/index.d.ts.map +1 -1
  248. package/src/lib/utility/index.js +5 -8
  249. package/src/lib/utility/index.js.map +1 -1
  250. package/src/lib/utility/tag/tng-tag.component.d.ts +4 -1
  251. package/src/lib/utility/tag/tng-tag.component.d.ts.map +1 -1
  252. package/src/lib/utility/tag/tng-tag.component.js +18 -24
  253. package/src/lib/utility/tag/tng-tag.component.js.map +1 -1
  254. package/src/lib/utility/tree/tng-tree.component.d.ts +4 -1
  255. package/src/lib/utility/tree/tng-tree.component.d.ts.map +1 -1
  256. package/src/lib/utility/tree/tng-tree.component.js +23 -25
  257. package/src/lib/utility/tree/tng-tree.component.js.map +1 -1
@@ -1,6 +1,6 @@
1
- import { __decorate } from "tslib";
2
1
  import { Component, booleanAttribute, input, output, } from '@angular/core';
3
2
  import { TngButtonToggleGroup as TngButtonToggleGroupPrimitive, } from '@tailng-ui/primitives';
3
+ import * as i0 from "@angular/core";
4
4
  function normalizeOptionalButtonToggleValue(value) {
5
5
  if (value === undefined) {
6
6
  return undefined;
@@ -31,53 +31,31 @@ function normalizeOptionalButtonToggleValues(value) {
31
31
  }
32
32
  return [normalized];
33
33
  }
34
- let TngButtonToggleGroupComponent = class TngButtonToggleGroupComponent {
35
- ariaLabel = input('Button Toggle Group');
36
- type = input('single');
37
- activation = input('auto');
38
- orientation = input('horizontal');
39
- dir = input('auto');
40
- allowEmpty = input(false, {
41
- transform: booleanAttribute,
42
- });
43
- disabled = input(false, {
44
- transform: booleanAttribute,
45
- });
46
- loop = input(true, {
47
- transform: booleanAttribute,
48
- });
49
- valueInput = input(undefined, {
50
- alias: 'tngButtonToggleValue',
51
- transform: normalizeOptionalButtonToggleValue,
52
- });
53
- valuesInput = input(undefined, {
54
- alias: 'tngButtonToggleValues',
55
- transform: normalizeOptionalButtonToggleValues,
56
- });
57
- defaultValueInput = input(undefined, {
58
- alias: 'tngButtonToggleDefaultValue',
59
- transform: normalizeOptionalButtonToggleValue,
60
- });
61
- defaultValuesInput = input(undefined, {
62
- alias: 'tngButtonToggleDefaultValues',
63
- transform: normalizeOptionalButtonToggleValues,
64
- });
65
- valueFallbackInput = input(undefined, {
66
- alias: 'value',
67
- transform: normalizeOptionalButtonToggleValue,
68
- });
69
- valuesFallbackInput = input(undefined, {
70
- alias: 'values',
71
- transform: normalizeOptionalButtonToggleValues,
72
- });
73
- defaultValueFallbackInput = input(undefined, {
74
- alias: 'defaultValue',
75
- transform: normalizeOptionalButtonToggleValue,
76
- });
77
- defaultValuesFallbackInput = input(undefined, {
78
- alias: 'defaultValues',
79
- transform: normalizeOptionalButtonToggleValues,
80
- });
34
+ export class TngButtonToggleGroupComponent {
35
+ ariaLabel = input('Button Toggle Group', ...(ngDevMode ? [{ debugName: "ariaLabel" }] : []));
36
+ type = input('single', ...(ngDevMode ? [{ debugName: "type" }] : []));
37
+ activation = input('auto', ...(ngDevMode ? [{ debugName: "activation" }] : []));
38
+ orientation = input('horizontal', ...(ngDevMode ? [{ debugName: "orientation" }] : []));
39
+ dir = input('auto', ...(ngDevMode ? [{ debugName: "dir" }] : []));
40
+ allowEmpty = input(false, { ...(ngDevMode ? { debugName: "allowEmpty" } : {}), transform: booleanAttribute });
41
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: booleanAttribute });
42
+ loop = input(true, { ...(ngDevMode ? { debugName: "loop" } : {}), transform: booleanAttribute });
43
+ valueInput = input(undefined, { ...(ngDevMode ? { debugName: "valueInput" } : {}), alias: 'tngButtonToggleValue',
44
+ transform: normalizeOptionalButtonToggleValue });
45
+ valuesInput = input(undefined, { ...(ngDevMode ? { debugName: "valuesInput" } : {}), alias: 'tngButtonToggleValues',
46
+ transform: normalizeOptionalButtonToggleValues });
47
+ defaultValueInput = input(undefined, { ...(ngDevMode ? { debugName: "defaultValueInput" } : {}), alias: 'tngButtonToggleDefaultValue',
48
+ transform: normalizeOptionalButtonToggleValue });
49
+ defaultValuesInput = input(undefined, { ...(ngDevMode ? { debugName: "defaultValuesInput" } : {}), alias: 'tngButtonToggleDefaultValues',
50
+ transform: normalizeOptionalButtonToggleValues });
51
+ valueFallbackInput = input(undefined, { ...(ngDevMode ? { debugName: "valueFallbackInput" } : {}), alias: 'value',
52
+ transform: normalizeOptionalButtonToggleValue });
53
+ valuesFallbackInput = input(undefined, { ...(ngDevMode ? { debugName: "valuesFallbackInput" } : {}), alias: 'values',
54
+ transform: normalizeOptionalButtonToggleValues });
55
+ defaultValueFallbackInput = input(undefined, { ...(ngDevMode ? { debugName: "defaultValueFallbackInput" } : {}), alias: 'defaultValue',
56
+ transform: normalizeOptionalButtonToggleValue });
57
+ defaultValuesFallbackInput = input(undefined, { ...(ngDevMode ? { debugName: "defaultValuesFallbackInput" } : {}), alias: 'defaultValues',
58
+ transform: normalizeOptionalButtonToggleValues });
81
59
  valueChange = output();
82
60
  valuesChange = output();
83
61
  toggleChange = output();
@@ -110,14 +88,11 @@ let TngButtonToggleGroupComponent = class TngButtonToggleGroupComponent {
110
88
  }
111
89
  return this.defaultValuesFallbackInput();
112
90
  }
113
- };
114
- TngButtonToggleGroupComponent = __decorate([
115
- Component({
116
- selector: 'tng-button-toggle-group',
117
- imports: [TngButtonToggleGroupPrimitive],
118
- templateUrl: './tng-button-toggle-group.component.html',
119
- styleUrl: './tng-button-toggle-group.component.css',
120
- })
121
- ], TngButtonToggleGroupComponent);
122
- export { TngButtonToggleGroupComponent };
91
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngButtonToggleGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
92
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.1", type: TngButtonToggleGroupComponent, isStandalone: true, selector: "tng-button-toggle-group", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, activation: { classPropertyName: "activation", publicName: "activation", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, allowEmpty: { classPropertyName: "allowEmpty", publicName: "allowEmpty", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, loop: { classPropertyName: "loop", publicName: "loop", isSignal: true, isRequired: false, transformFunction: null }, valueInput: { classPropertyName: "valueInput", publicName: "tngButtonToggleValue", isSignal: true, isRequired: false, transformFunction: null }, valuesInput: { classPropertyName: "valuesInput", publicName: "tngButtonToggleValues", isSignal: true, isRequired: false, transformFunction: null }, defaultValueInput: { classPropertyName: "defaultValueInput", publicName: "tngButtonToggleDefaultValue", isSignal: true, isRequired: false, transformFunction: null }, defaultValuesInput: { classPropertyName: "defaultValuesInput", publicName: "tngButtonToggleDefaultValues", isSignal: true, isRequired: false, transformFunction: null }, valueFallbackInput: { classPropertyName: "valueFallbackInput", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valuesFallbackInput: { classPropertyName: "valuesFallbackInput", publicName: "values", isSignal: true, isRequired: false, transformFunction: null }, defaultValueFallbackInput: { classPropertyName: "defaultValueFallbackInput", publicName: "defaultValue", isSignal: true, isRequired: false, transformFunction: null }, defaultValuesFallbackInput: { classPropertyName: "defaultValuesFallbackInput", publicName: "defaultValues", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", valuesChange: "valuesChange", toggleChange: "toggleChange", focusChange: "focusChange" }, ngImport: i0, template: "<section\n tngButtonToggleGroup\n class=\"tng-button-toggle-group\"\n [attr.aria-label]=\"ariaLabel()\"\n [type]=\"type()\"\n [activation]=\"activation()\"\n [orientation]=\"orientation()\"\n [dir]=\"dir()\"\n [allowEmpty]=\"allowEmpty()\"\n [disabled]=\"disabled()\"\n [loop]=\"loop()\"\n [tngButtonToggleValue]=\"resolvedValue()\"\n [tngButtonToggleValues]=\"resolvedValues()\"\n [tngButtonToggleDefaultValue]=\"resolvedDefaultValue()\"\n [tngButtonToggleDefaultValues]=\"resolvedDefaultValues()\"\n (valueChange)=\"valueChange.emit($event)\"\n (valuesChange)=\"valuesChange.emit($event)\"\n (toggleChange)=\"toggleChange.emit($event)\"\n (focusChange)=\"focusChange.emit($event)\"\n>\n <ng-content />\n</section>\n", styles: [":host {\n display: inline-flex;\n}\n\n.tng-button-toggle-group {\n align-items: center;\n border: 1px solid var(--tng-semantic-border-subtle);\n border-radius: 0.85rem;\n display: inline-flex;\n flex-wrap: wrap;\n gap: 0.45rem;\n padding: 0.4rem;\n}\n"], dependencies: [{ kind: "directive", type: TngButtonToggleGroupPrimitive, selector: "[tngButtonToggleGroup]", inputs: ["type", "tngButtonToggleValue", "tngButtonToggleValues", "tngButtonToggleDefaultValue", "tngButtonToggleDefaultValues", "value", "values", "defaultValue", "defaultValues", "allowEmpty", "disabled", "orientation", "loop", "activation", "dir"], outputs: ["valueChange", "valuesChange", "toggleChange", "focusChange"], exportAs: ["tngButtonToggleGroup"] }] });
93
+ }
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngButtonToggleGroupComponent, decorators: [{
95
+ type: Component,
96
+ args: [{ selector: 'tng-button-toggle-group', imports: [TngButtonToggleGroupPrimitive], template: "<section\n tngButtonToggleGroup\n class=\"tng-button-toggle-group\"\n [attr.aria-label]=\"ariaLabel()\"\n [type]=\"type()\"\n [activation]=\"activation()\"\n [orientation]=\"orientation()\"\n [dir]=\"dir()\"\n [allowEmpty]=\"allowEmpty()\"\n [disabled]=\"disabled()\"\n [loop]=\"loop()\"\n [tngButtonToggleValue]=\"resolvedValue()\"\n [tngButtonToggleValues]=\"resolvedValues()\"\n [tngButtonToggleDefaultValue]=\"resolvedDefaultValue()\"\n [tngButtonToggleDefaultValues]=\"resolvedDefaultValues()\"\n (valueChange)=\"valueChange.emit($event)\"\n (valuesChange)=\"valuesChange.emit($event)\"\n (toggleChange)=\"toggleChange.emit($event)\"\n (focusChange)=\"focusChange.emit($event)\"\n>\n <ng-content />\n</section>\n", styles: [":host {\n display: inline-flex;\n}\n\n.tng-button-toggle-group {\n align-items: center;\n border: 1px solid var(--tng-semantic-border-subtle);\n border-radius: 0.85rem;\n display: inline-flex;\n flex-wrap: wrap;\n gap: 0.45rem;\n padding: 0.4rem;\n}\n"] }]
97
+ }], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], activation: [{ type: i0.Input, args: [{ isSignal: true, alias: "activation", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], dir: [{ type: i0.Input, args: [{ isSignal: true, alias: "dir", required: false }] }], allowEmpty: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowEmpty", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], loop: [{ type: i0.Input, args: [{ isSignal: true, alias: "loop", required: false }] }], valueInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "tngButtonToggleValue", required: false }] }], valuesInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "tngButtonToggleValues", required: false }] }], defaultValueInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "tngButtonToggleDefaultValue", required: false }] }], defaultValuesInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "tngButtonToggleDefaultValues", required: false }] }], valueFallbackInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], valuesFallbackInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "values", required: false }] }], defaultValueFallbackInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValue", required: false }] }], defaultValuesFallbackInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValues", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], valuesChange: [{ type: i0.Output, args: ["valuesChange"] }], toggleChange: [{ type: i0.Output, args: ["toggleChange"] }], focusChange: [{ type: i0.Output, args: ["focusChange"] }] } });
123
98
  //# sourceMappingURL=tng-button-toggle-group.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-button-toggle-group.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/button-toggle/tng-button-toggle-group.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n booleanAttribute,\n input,\n output,\n} from '@angular/core';\nimport {\n TngButtonToggleChangeEvent,\n TngButtonToggleFocusChangeEvent,\n TngButtonToggleGroup as TngButtonToggleGroupPrimitive,\n type TngButtonToggleValue,\n} from '@tailng-ui/primitives';\n\ntype TngButtonToggleDirection = 'auto' | 'ltr' | 'rtl';\ntype TngButtonToggleOrientation = 'horizontal' | 'vertical';\ntype TngButtonToggleType = 'multiple' | 'single';\ntype TngButtonToggleActivationMode = 'auto' | 'manual';\n\nfunction normalizeOptionalButtonToggleValue(\n value: unknown,\n): TngButtonToggleValue | null | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n if (value === null) {\n return null;\n }\n\n if (typeof value === 'number' || typeof value === 'string') {\n return value;\n }\n\n return String(value);\n}\n\nfunction normalizeOptionalButtonToggleValues(\n value: unknown,\n): readonly TngButtonToggleValue[] | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n if (value === null) {\n return [];\n }\n\n if (Array.isArray(value)) {\n return value\n .map((item) => normalizeOptionalButtonToggleValue(item))\n .filter((item): item is TngButtonToggleValue => item !== null && item !== undefined);\n }\n\n const normalized = normalizeOptionalButtonToggleValue(value);\n if (normalized === null || normalized === undefined) {\n return [];\n }\n\n return [normalized];\n}\n\n@Component({\n selector: 'tng-button-toggle-group',\n imports: [TngButtonToggleGroupPrimitive],\n templateUrl: './tng-button-toggle-group.component.html',\n styleUrl: './tng-button-toggle-group.component.css',\n})\nexport class TngButtonToggleGroupComponent {\n public readonly ariaLabel = input<string>('Button Toggle Group');\n\n public readonly type = input<TngButtonToggleType>('single');\n public readonly activation = input<TngButtonToggleActivationMode>('auto');\n public readonly orientation = input<TngButtonToggleOrientation>('horizontal');\n public readonly dir = input<TngButtonToggleDirection>('auto');\n public readonly allowEmpty = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n public readonly disabled = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n public readonly loop = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n\n public readonly valueInput = input<TngButtonToggleValue | null | undefined, unknown>(undefined, {\n alias: 'tngButtonToggleValue',\n transform: normalizeOptionalButtonToggleValue,\n });\n public readonly valuesInput = input<readonly TngButtonToggleValue[] | undefined, unknown>(\n undefined,\n {\n alias: 'tngButtonToggleValues',\n transform: normalizeOptionalButtonToggleValues,\n },\n );\n public readonly defaultValueInput = input<TngButtonToggleValue | null | undefined, unknown>(\n undefined,\n {\n alias: 'tngButtonToggleDefaultValue',\n transform: normalizeOptionalButtonToggleValue,\n },\n );\n public readonly defaultValuesInput = input<readonly TngButtonToggleValue[] | undefined, unknown>(\n undefined,\n {\n alias: 'tngButtonToggleDefaultValues',\n transform: normalizeOptionalButtonToggleValues,\n },\n );\n\n public readonly valueFallbackInput = input<TngButtonToggleValue | null | undefined, unknown>(\n undefined,\n {\n alias: 'value',\n transform: normalizeOptionalButtonToggleValue,\n },\n );\n public readonly valuesFallbackInput = input<readonly TngButtonToggleValue[] | undefined, unknown>(\n undefined,\n {\n alias: 'values',\n transform: normalizeOptionalButtonToggleValues,\n },\n );\n public readonly defaultValueFallbackInput = input<TngButtonToggleValue | null | undefined, unknown>(\n undefined,\n {\n alias: 'defaultValue',\n transform: normalizeOptionalButtonToggleValue,\n },\n );\n public readonly defaultValuesFallbackInput = input<\n readonly TngButtonToggleValue[] | undefined,\n unknown\n >(undefined, {\n alias: 'defaultValues',\n transform: normalizeOptionalButtonToggleValues,\n });\n\n public readonly valueChange = output<TngButtonToggleValue | null>();\n public readonly valuesChange = output<readonly TngButtonToggleValue[]>();\n public readonly toggleChange = output<TngButtonToggleChangeEvent>();\n public readonly focusChange = output<TngButtonToggleFocusChangeEvent>();\n\n protected resolvedValue(): TngButtonToggleValue | null | undefined {\n const explicit = this.valueInput();\n if (explicit !== undefined) {\n return explicit;\n }\n\n return this.valueFallbackInput();\n }\n\n protected resolvedValues(): readonly TngButtonToggleValue[] | undefined {\n const explicit = this.valuesInput();\n if (explicit !== undefined) {\n return explicit;\n }\n\n return this.valuesFallbackInput();\n }\n\n protected resolvedDefaultValue(): TngButtonToggleValue | null | undefined {\n const explicit = this.defaultValueInput();\n if (explicit !== undefined) {\n return explicit;\n }\n\n return this.defaultValueFallbackInput();\n }\n\n protected resolvedDefaultValues(): readonly TngButtonToggleValue[] | undefined {\n const explicit = this.defaultValuesInput();\n if (explicit !== undefined) {\n return explicit;\n }\n\n return this.defaultValuesFallbackInput();\n }\n}\n"]}
1
+ {"version":3,"file":"tng-button-toggle-group.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/button-toggle/tng-button-toggle-group.component.ts","../../../../../../../../libs/tailng-ui/components/src/lib/form/button-toggle/tng-button-toggle-group.component.html"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,KAAK,EACL,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAGL,oBAAoB,IAAI,6BAA6B,GAEtD,MAAM,uBAAuB,CAAC;;AAO/B,SAAS,kCAAkC,CACzC,KAAc;IAEd,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,mCAAmC,CAC1C,KAAc;IAEd,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK;aACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kCAAkC,CAAC,IAAI,CAAC,CAAC;aACvD,MAAM,CAAC,CAAC,IAAI,EAAgC,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,UAAU,GAAG,kCAAkC,CAAC,KAAK,CAAC,CAAC;IAC7D,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QACpD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,CAAC,UAAU,CAAC,CAAC;AACtB,CAAC;AAQD,MAAM,OAAO,6BAA6B;IACxB,SAAS,GAAG,KAAK,CAAS,qBAAqB,qDAAC,CAAC;IAEjD,IAAI,GAAG,KAAK,CAAsB,QAAQ,gDAAC,CAAC;IAC5C,UAAU,GAAG,KAAK,CAAgC,MAAM,sDAAC,CAAC;IAC1D,WAAW,GAAG,KAAK,CAA6B,YAAY,uDAAC,CAAC;IAC9D,GAAG,GAAG,KAAK,CAA2B,MAAM,+CAAC,CAAC;IAC9C,UAAU,GAAG,KAAK,CAAmB,KAAK,uDACxD,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,QAAQ,GAAG,KAAK,CAAmB,KAAK,qDACtD,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,IAAI,GAAG,KAAK,CAAmB,IAAI,iDACjD,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IAEa,UAAU,GAAG,KAAK,CAAmD,SAAS,uDAC5F,KAAK,EAAE,sBAAsB;QAC7B,SAAS,EAAE,kCAAkC,GAC7C,CAAC;IACa,WAAW,GAAG,KAAK,CACjC,SAAS,wDAEP,KAAK,EAAE,uBAAuB;QAC9B,SAAS,EAAE,mCAAmC,GAEjD,CAAC;IACc,iBAAiB,GAAG,KAAK,CACvC,SAAS,8DAEP,KAAK,EAAE,6BAA6B;QACpC,SAAS,EAAE,kCAAkC,GAEhD,CAAC;IACc,kBAAkB,GAAG,KAAK,CACxC,SAAS,+DAEP,KAAK,EAAE,8BAA8B;QACrC,SAAS,EAAE,mCAAmC,GAEjD,CAAC;IAEc,kBAAkB,GAAG,KAAK,CACxC,SAAS,+DAEP,KAAK,EAAE,OAAO;QACd,SAAS,EAAE,kCAAkC,GAEhD,CAAC;IACc,mBAAmB,GAAG,KAAK,CACzC,SAAS,gEAEP,KAAK,EAAE,QAAQ;QACf,SAAS,EAAE,mCAAmC,GAEjD,CAAC;IACc,yBAAyB,GAAG,KAAK,CAC/C,SAAS,sEAEP,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,kCAAkC,GAEhD,CAAC;IACc,0BAA0B,GAAG,KAAK,CAGhD,SAAS,uEACT,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,mCAAmC,GAC9C,CAAC;IAEa,WAAW,GAAG,MAAM,EAA+B,CAAC;IACpD,YAAY,GAAG,MAAM,EAAmC,CAAC;IACzD,YAAY,GAAG,MAAM,EAA8B,CAAC;IACpD,WAAW,GAAG,MAAM,EAAmC,CAAC;IAE9D,aAAa;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACnC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACnC,CAAC;IAES,cAAc;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC;IACpC,CAAC;IAES,oBAAoB;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,OAAO,IAAI,CAAC,yBAAyB,EAAE,CAAC;IAC1C,CAAC;IAES,qBAAqB;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC3C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,OAAO,IAAI,CAAC,0BAA0B,EAAE,CAAC;IAC3C,CAAC;uGA/GU,6BAA6B;2FAA7B,6BAA6B,q8ECnE1C,kuBAsBA,6TDyCY,6BAA6B;;2FAI5B,6BAA6B;kBANzC,SAAS;+BACE,yBAAyB,WAC1B,CAAC,6BAA6B,CAAC","sourcesContent":["import {\n Component,\n booleanAttribute,\n input,\n output,\n} from '@angular/core';\nimport {\n TngButtonToggleChangeEvent,\n TngButtonToggleFocusChangeEvent,\n TngButtonToggleGroup as TngButtonToggleGroupPrimitive,\n type TngButtonToggleValue,\n} from '@tailng-ui/primitives';\n\ntype TngButtonToggleDirection = 'auto' | 'ltr' | 'rtl';\ntype TngButtonToggleOrientation = 'horizontal' | 'vertical';\ntype TngButtonToggleType = 'multiple' | 'single';\ntype TngButtonToggleActivationMode = 'auto' | 'manual';\n\nfunction normalizeOptionalButtonToggleValue(\n value: unknown,\n): TngButtonToggleValue | null | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n if (value === null) {\n return null;\n }\n\n if (typeof value === 'number' || typeof value === 'string') {\n return value;\n }\n\n return String(value);\n}\n\nfunction normalizeOptionalButtonToggleValues(\n value: unknown,\n): readonly TngButtonToggleValue[] | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n if (value === null) {\n return [];\n }\n\n if (Array.isArray(value)) {\n return value\n .map((item) => normalizeOptionalButtonToggleValue(item))\n .filter((item): item is TngButtonToggleValue => item !== null && item !== undefined);\n }\n\n const normalized = normalizeOptionalButtonToggleValue(value);\n if (normalized === null || normalized === undefined) {\n return [];\n }\n\n return [normalized];\n}\n\n@Component({\n selector: 'tng-button-toggle-group',\n imports: [TngButtonToggleGroupPrimitive],\n templateUrl: './tng-button-toggle-group.component.html',\n styleUrl: './tng-button-toggle-group.component.css',\n})\nexport class TngButtonToggleGroupComponent {\n public readonly ariaLabel = input<string>('Button Toggle Group');\n\n public readonly type = input<TngButtonToggleType>('single');\n public readonly activation = input<TngButtonToggleActivationMode>('auto');\n public readonly orientation = input<TngButtonToggleOrientation>('horizontal');\n public readonly dir = input<TngButtonToggleDirection>('auto');\n public readonly allowEmpty = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n public readonly disabled = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n public readonly loop = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n\n public readonly valueInput = input<TngButtonToggleValue | null | undefined, unknown>(undefined, {\n alias: 'tngButtonToggleValue',\n transform: normalizeOptionalButtonToggleValue,\n });\n public readonly valuesInput = input<readonly TngButtonToggleValue[] | undefined, unknown>(\n undefined,\n {\n alias: 'tngButtonToggleValues',\n transform: normalizeOptionalButtonToggleValues,\n },\n );\n public readonly defaultValueInput = input<TngButtonToggleValue | null | undefined, unknown>(\n undefined,\n {\n alias: 'tngButtonToggleDefaultValue',\n transform: normalizeOptionalButtonToggleValue,\n },\n );\n public readonly defaultValuesInput = input<readonly TngButtonToggleValue[] | undefined, unknown>(\n undefined,\n {\n alias: 'tngButtonToggleDefaultValues',\n transform: normalizeOptionalButtonToggleValues,\n },\n );\n\n public readonly valueFallbackInput = input<TngButtonToggleValue | null | undefined, unknown>(\n undefined,\n {\n alias: 'value',\n transform: normalizeOptionalButtonToggleValue,\n },\n );\n public readonly valuesFallbackInput = input<readonly TngButtonToggleValue[] | undefined, unknown>(\n undefined,\n {\n alias: 'values',\n transform: normalizeOptionalButtonToggleValues,\n },\n );\n public readonly defaultValueFallbackInput = input<TngButtonToggleValue | null | undefined, unknown>(\n undefined,\n {\n alias: 'defaultValue',\n transform: normalizeOptionalButtonToggleValue,\n },\n );\n public readonly defaultValuesFallbackInput = input<\n readonly TngButtonToggleValue[] | undefined,\n unknown\n >(undefined, {\n alias: 'defaultValues',\n transform: normalizeOptionalButtonToggleValues,\n });\n\n public readonly valueChange = output<TngButtonToggleValue | null>();\n public readonly valuesChange = output<readonly TngButtonToggleValue[]>();\n public readonly toggleChange = output<TngButtonToggleChangeEvent>();\n public readonly focusChange = output<TngButtonToggleFocusChangeEvent>();\n\n protected resolvedValue(): TngButtonToggleValue | null | undefined {\n const explicit = this.valueInput();\n if (explicit !== undefined) {\n return explicit;\n }\n\n return this.valueFallbackInput();\n }\n\n protected resolvedValues(): readonly TngButtonToggleValue[] | undefined {\n const explicit = this.valuesInput();\n if (explicit !== undefined) {\n return explicit;\n }\n\n return this.valuesFallbackInput();\n }\n\n protected resolvedDefaultValue(): TngButtonToggleValue | null | undefined {\n const explicit = this.defaultValueInput();\n if (explicit !== undefined) {\n return explicit;\n }\n\n return this.defaultValueFallbackInput();\n }\n\n protected resolvedDefaultValues(): readonly TngButtonToggleValue[] | undefined {\n const explicit = this.defaultValuesInput();\n if (explicit !== undefined) {\n return explicit;\n }\n\n return this.defaultValuesFallbackInput();\n }\n}\n","<section\n tngButtonToggleGroup\n class=\"tng-button-toggle-group\"\n [attr.aria-label]=\"ariaLabel()\"\n [type]=\"type()\"\n [activation]=\"activation()\"\n [orientation]=\"orientation()\"\n [dir]=\"dir()\"\n [allowEmpty]=\"allowEmpty()\"\n [disabled]=\"disabled()\"\n [loop]=\"loop()\"\n [tngButtonToggleValue]=\"resolvedValue()\"\n [tngButtonToggleValues]=\"resolvedValues()\"\n [tngButtonToggleDefaultValue]=\"resolvedDefaultValue()\"\n [tngButtonToggleDefaultValues]=\"resolvedDefaultValues()\"\n (valueChange)=\"valueChange.emit($event)\"\n (valuesChange)=\"valuesChange.emit($event)\"\n (toggleChange)=\"toggleChange.emit($event)\"\n (focusChange)=\"focusChange.emit($event)\"\n>\n <ng-content />\n</section>\n"]}
@@ -1,4 +1,5 @@
1
1
  import { type TngButtonToggleValue } from '@tailng-ui/primitives';
2
+ import * as i0 from "@angular/core";
2
3
  export declare function toggleTngButtonToggleState(pressed: boolean): boolean;
3
4
  export declare class TngButtonToggleComponent {
4
5
  private readonly hostRef;
@@ -10,5 +11,7 @@ export declare class TngButtonToggleComponent {
10
11
  onToggle(): void;
11
12
  protected resolvedValue(): TngButtonToggleValue | null | undefined;
12
13
  private isInsideToggleGroup;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngButtonToggleComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<TngButtonToggleComponent, "tng-button-toggle", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "pressed": { "alias": "pressed"; "required": false; "isSignal": true; }; "toggleValueInput": { "alias": "tngButtonToggleValue"; "required": false; "isSignal": true; }; "valueInput": { "alias": "value"; "required": false; "isSignal": true; }; }, { "pressedChange": "pressedChange"; }, never, ["*"], true, never>;
13
16
  }
14
17
  //# sourceMappingURL=tng-button-toggle.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-button-toggle.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/button-toggle/tng-button-toggle.component.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAE/B,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEpE;AAoBD,qBAMa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IAEvE,SAAgB,QAAQ,8EAErB;IACH,SAAgB,OAAO,8EAEpB;IACH,SAAgB,gBAAgB,qGAM9B;IACF,SAAgB,UAAU,qGAGvB;IAEH,SAAgB,aAAa,oDAAqB;IAE3C,QAAQ,IAAI,IAAI;IAYvB,SAAS,CAAC,aAAa,IAAI,oBAAoB,GAAG,IAAI,GAAG,SAAS;IASlE,OAAO,CAAC,mBAAmB;CAG5B"}
1
+ {"version":3,"file":"tng-button-toggle.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/button-toggle/tng-button-toggle.component.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;;AAE/B,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEpE;AAoBD,qBAMa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IAEvE,SAAgB,QAAQ,8EAErB;IACH,SAAgB,OAAO,8EAEpB;IACH,SAAgB,gBAAgB,qGAM9B;IACF,SAAgB,UAAU,qGAGvB;IAEH,SAAgB,aAAa,oDAAqB;IAE3C,QAAQ,IAAI,IAAI;IAYvB,SAAS,CAAC,aAAa,IAAI,oBAAoB,GAAG,IAAI,GAAG,SAAS;IASlE,OAAO,CAAC,mBAAmB;yCA5ChB,wBAAwB;2CAAxB,wBAAwB;CA+CpC"}
@@ -1,6 +1,6 @@
1
- import { __decorate } from "tslib";
2
1
  import { ElementRef, booleanAttribute, Component, inject, input, output, } from '@angular/core';
3
2
  import { TngButtonToggle as TngButtonTogglePrimitive, } from '@tailng-ui/primitives';
3
+ import * as i0 from "@angular/core";
4
4
  export function toggleTngButtonToggleState(pressed) {
5
5
  return !pressed;
6
6
  }
@@ -16,22 +16,14 @@ function normalizeOptionalButtonToggleValue(value) {
16
16
  }
17
17
  return String(value);
18
18
  }
19
- let TngButtonToggleComponent = class TngButtonToggleComponent {
19
+ export class TngButtonToggleComponent {
20
20
  hostRef = inject(ElementRef);
21
- disabled = input(false, {
22
- transform: booleanAttribute,
23
- });
24
- pressed = input(false, {
25
- transform: booleanAttribute,
26
- });
27
- toggleValueInput = input(undefined, {
28
- alias: 'tngButtonToggleValue',
29
- transform: normalizeOptionalButtonToggleValue,
30
- });
31
- valueInput = input(undefined, {
32
- alias: 'value',
33
- transform: normalizeOptionalButtonToggleValue,
34
- });
21
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: booleanAttribute });
22
+ pressed = input(false, { ...(ngDevMode ? { debugName: "pressed" } : {}), transform: booleanAttribute });
23
+ toggleValueInput = input(undefined, { ...(ngDevMode ? { debugName: "toggleValueInput" } : {}), alias: 'tngButtonToggleValue',
24
+ transform: normalizeOptionalButtonToggleValue });
25
+ valueInput = input(undefined, { ...(ngDevMode ? { debugName: "valueInput" } : {}), alias: 'value',
26
+ transform: normalizeOptionalButtonToggleValue });
35
27
  pressedChange = output();
36
28
  onToggle() {
37
29
  if (this.disabled()) {
@@ -52,14 +44,11 @@ let TngButtonToggleComponent = class TngButtonToggleComponent {
52
44
  isInsideToggleGroup() {
53
45
  return this.hostRef.nativeElement.closest('[data-slot="button-toggle-group"]') !== null;
54
46
  }
55
- };
56
- TngButtonToggleComponent = __decorate([
57
- Component({
58
- selector: 'tng-button-toggle',
59
- imports: [TngButtonTogglePrimitive],
60
- templateUrl: './tng-button-toggle.component.html',
61
- styleUrl: './tng-button-toggle.component.css',
62
- })
63
- ], TngButtonToggleComponent);
64
- export { TngButtonToggleComponent };
47
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngButtonToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
48
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.1", type: TngButtonToggleComponent, isStandalone: true, selector: "tng-button-toggle", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, pressed: { classPropertyName: "pressed", publicName: "pressed", isSignal: true, isRequired: false, transformFunction: null }, toggleValueInput: { classPropertyName: "toggleValueInput", publicName: "tngButtonToggleValue", isSignal: true, isRequired: false, transformFunction: null }, valueInput: { classPropertyName: "valueInput", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pressedChange: "pressedChange" }, ngImport: i0, template: "<button\n tngButtonToggle\n class=\"tng-button-toggle\"\n [tngButtonToggleValue]=\"resolvedValue()\"\n [pressed]=\"pressed()\"\n [disabled]=\"disabled()\"\n [class.tng-button-toggle--pressed]=\"pressed()\"\n (click)=\"onToggle()\"\n>\n <ng-content />\n</button>\n", styles: [":host {\n display: inline-flex;\n}\n\n.tng-button-toggle {\n align-items: center;\n background: var(--tng-semantic-background-surface);\n border: 1px solid var(--tng-semantic-border-subtle);\n border-radius: 0.65rem;\n color: var(--tng-semantic-foreground-primary);\n cursor: pointer;\n display: inline-flex;\n font: inherit;\n font-size: 0.875rem;\n gap: 0.375rem;\n justify-content: center;\n min-height: 2.25rem;\n min-width: 2.75rem;\n padding: 0.35rem 0.75rem;\n transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease;\n}\n\n.tng-button-toggle:hover {\n background: var(--tng-semantic-background-muted);\n}\n\n.tng-button-toggle[data-selected='true'],\n.tng-button-toggle--pressed {\n background: var(--tng-semantic-accent-brand);\n border-color: var(--tng-semantic-accent-brand);\n color: var(--tng-color-white);\n}\n\n.tng-button-toggle:focus-visible {\n outline: 2px solid color-mix(in srgb, var(--tng-semantic-accent-brand) 55%, transparent);\n outline-offset: 2px;\n}\n\n.tng-button-toggle:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n}\n"], dependencies: [{ kind: "directive", type: TngButtonTogglePrimitive, selector: "button[tngButtonToggle]", inputs: ["tngButtonToggleValue", "value", "disabled", "pressed"], exportAs: ["tngButtonToggle"] }] });
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngButtonToggleComponent, decorators: [{
51
+ type: Component,
52
+ args: [{ selector: 'tng-button-toggle', imports: [TngButtonTogglePrimitive], template: "<button\n tngButtonToggle\n class=\"tng-button-toggle\"\n [tngButtonToggleValue]=\"resolvedValue()\"\n [pressed]=\"pressed()\"\n [disabled]=\"disabled()\"\n [class.tng-button-toggle--pressed]=\"pressed()\"\n (click)=\"onToggle()\"\n>\n <ng-content />\n</button>\n", styles: [":host {\n display: inline-flex;\n}\n\n.tng-button-toggle {\n align-items: center;\n background: var(--tng-semantic-background-surface);\n border: 1px solid var(--tng-semantic-border-subtle);\n border-radius: 0.65rem;\n color: var(--tng-semantic-foreground-primary);\n cursor: pointer;\n display: inline-flex;\n font: inherit;\n font-size: 0.875rem;\n gap: 0.375rem;\n justify-content: center;\n min-height: 2.25rem;\n min-width: 2.75rem;\n padding: 0.35rem 0.75rem;\n transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease;\n}\n\n.tng-button-toggle:hover {\n background: var(--tng-semantic-background-muted);\n}\n\n.tng-button-toggle[data-selected='true'],\n.tng-button-toggle--pressed {\n background: var(--tng-semantic-accent-brand);\n border-color: var(--tng-semantic-accent-brand);\n color: var(--tng-color-white);\n}\n\n.tng-button-toggle:focus-visible {\n outline: 2px solid color-mix(in srgb, var(--tng-semantic-accent-brand) 55%, transparent);\n outline-offset: 2px;\n}\n\n.tng-button-toggle:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n}\n"] }]
53
+ }], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], pressed: [{ type: i0.Input, args: [{ isSignal: true, alias: "pressed", required: false }] }], toggleValueInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "tngButtonToggleValue", required: false }] }], valueInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], pressedChange: [{ type: i0.Output, args: ["pressedChange"] }] } });
65
54
  //# sourceMappingURL=tng-button-toggle.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-button-toggle.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/button-toggle/tng-button-toggle.component.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,MAAM,EACN,KAAK,EACL,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,IAAI,wBAAwB,GAE5C,MAAM,uBAAuB,CAAC;AAE/B,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IACzD,OAAO,CAAC,OAAO,CAAC;AAClB,CAAC;AAED,SAAS,kCAAkC,CACzC,KAAc;IAEd,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAQM,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAClB,OAAO,GAAG,MAAM,CAA0B,UAAU,CAAC,CAAC;IAEvD,QAAQ,GAAG,KAAK,CAA4B,KAAK,EAAE;QACjE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,OAAO,GAAG,KAAK,CAA4B,KAAK,EAAE;QAChE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,gBAAgB,GAAG,KAAK,CACtC,SAAS,EACT;QACE,KAAK,EAAE,sBAAsB;QAC7B,SAAS,EAAE,kCAAkC;KAC9C,CACF,CAAC;IACc,UAAU,GAAG,KAAK,CAAmD,SAAS,EAAE;QAC9F,KAAK,EAAE,OAAO;QACd,SAAS,EAAE,kCAAkC;KAC9C,CAAC,CAAC;IAEa,aAAa,GAAG,MAAM,EAAW,CAAC;IAE3C,QAAQ;QACb,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAES,aAAa;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;IAEO,mBAAmB;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,mCAAmC,CAAC,KAAK,IAAI,CAAC;IAC1F,CAAC;CACF,CAAA;AA/CY,wBAAwB;IANpC,SAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;QAC7B,OAAO,EAAE,CAAC,wBAAwB,CAAC;QACnC,WAAW,EAAE,oCAAoC;QACjD,QAAQ,EAAE,mCAAmC;KAC9C,CAAC;GACW,wBAAwB,CA+CpC","sourcesContent":["import {\n ElementRef,\n booleanAttribute,\n Component,\n inject,\n input,\n output,\n} from '@angular/core';\nimport {\n TngButtonToggle as TngButtonTogglePrimitive,\n type TngButtonToggleValue,\n} from '@tailng-ui/primitives';\n\nexport function toggleTngButtonToggleState(pressed: boolean): boolean {\n return !pressed;\n}\n\nfunction normalizeOptionalButtonToggleValue(\n value: unknown,\n): TngButtonToggleValue | null | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n if (value === null) {\n return null;\n }\n\n if (typeof value === 'number' || typeof value === 'string') {\n return value;\n }\n\n return String(value);\n}\n\n@Component({\n selector: 'tng-button-toggle',\n imports: [TngButtonTogglePrimitive],\n templateUrl: './tng-button-toggle.component.html',\n styleUrl: './tng-button-toggle.component.css',\n})\nexport class TngButtonToggleComponent {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly pressed = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly toggleValueInput = input<TngButtonToggleValue | null | undefined, unknown>(\n undefined,\n {\n alias: 'tngButtonToggleValue',\n transform: normalizeOptionalButtonToggleValue,\n },\n );\n public readonly valueInput = input<TngButtonToggleValue | null | undefined, unknown>(undefined, {\n alias: 'value',\n transform: normalizeOptionalButtonToggleValue,\n });\n\n public readonly pressedChange = output<boolean>();\n\n public onToggle(): void {\n if (this.disabled()) {\n return;\n }\n\n if (this.isInsideToggleGroup()) {\n return;\n }\n\n this.pressedChange.emit(toggleTngButtonToggleState(this.pressed()));\n }\n\n protected resolvedValue(): TngButtonToggleValue | null | undefined {\n const explicit = this.toggleValueInput();\n if (explicit !== undefined) {\n return explicit;\n }\n\n return this.valueInput();\n }\n\n private isInsideToggleGroup(): boolean {\n return this.hostRef.nativeElement.closest('[data-slot=\"button-toggle-group\"]') !== null;\n }\n}\n"]}
1
+ {"version":3,"file":"tng-button-toggle.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/button-toggle/tng-button-toggle.component.ts","../../../../../../../../libs/tailng-ui/components/src/lib/form/button-toggle/tng-button-toggle.component.html"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,MAAM,EACN,KAAK,EACL,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,IAAI,wBAAwB,GAE5C,MAAM,uBAAuB,CAAC;;AAE/B,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IACzD,OAAO,CAAC,OAAO,CAAC;AAClB,CAAC;AAED,SAAS,kCAAkC,CACzC,KAAc;IAEd,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAQD,MAAM,OAAO,wBAAwB;IAClB,OAAO,GAAG,MAAM,CAA0B,UAAU,CAAC,CAAC;IAEvD,QAAQ,GAAG,KAAK,CAA4B,KAAK,qDAC/D,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,OAAO,GAAG,KAAK,CAA4B,KAAK,oDAC9D,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,gBAAgB,GAAG,KAAK,CACtC,SAAS,6DAEP,KAAK,EAAE,sBAAsB;QAC7B,SAAS,EAAE,kCAAkC,GAEhD,CAAC;IACc,UAAU,GAAG,KAAK,CAAmD,SAAS,uDAC5F,KAAK,EAAE,OAAO;QACd,SAAS,EAAE,kCAAkC,GAC7C,CAAC;IAEa,aAAa,GAAG,MAAM,EAAW,CAAC;IAE3C,QAAQ;QACb,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAES,aAAa;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;IAEO,mBAAmB;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,mCAAmC,CAAC,KAAK,IAAI,CAAC;IAC1F,CAAC;uGA9CU,wBAAwB;2FAAxB,wBAAwB,oqBCzCrC,iRAWA,4oCD0BY,wBAAwB;;2FAIvB,wBAAwB;kBANpC,SAAS;+BACE,mBAAmB,WACpB,CAAC,wBAAwB,CAAC","sourcesContent":["import {\n ElementRef,\n booleanAttribute,\n Component,\n inject,\n input,\n output,\n} from '@angular/core';\nimport {\n TngButtonToggle as TngButtonTogglePrimitive,\n type TngButtonToggleValue,\n} from '@tailng-ui/primitives';\n\nexport function toggleTngButtonToggleState(pressed: boolean): boolean {\n return !pressed;\n}\n\nfunction normalizeOptionalButtonToggleValue(\n value: unknown,\n): TngButtonToggleValue | null | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n if (value === null) {\n return null;\n }\n\n if (typeof value === 'number' || typeof value === 'string') {\n return value;\n }\n\n return String(value);\n}\n\n@Component({\n selector: 'tng-button-toggle',\n imports: [TngButtonTogglePrimitive],\n templateUrl: './tng-button-toggle.component.html',\n styleUrl: './tng-button-toggle.component.css',\n})\nexport class TngButtonToggleComponent {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly pressed = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly toggleValueInput = input<TngButtonToggleValue | null | undefined, unknown>(\n undefined,\n {\n alias: 'tngButtonToggleValue',\n transform: normalizeOptionalButtonToggleValue,\n },\n );\n public readonly valueInput = input<TngButtonToggleValue | null | undefined, unknown>(undefined, {\n alias: 'value',\n transform: normalizeOptionalButtonToggleValue,\n });\n\n public readonly pressedChange = output<boolean>();\n\n public onToggle(): void {\n if (this.disabled()) {\n return;\n }\n\n if (this.isInsideToggleGroup()) {\n return;\n }\n\n this.pressedChange.emit(toggleTngButtonToggleState(this.pressed()));\n }\n\n protected resolvedValue(): TngButtonToggleValue | null | undefined {\n const explicit = this.toggleValueInput();\n if (explicit !== undefined) {\n return explicit;\n }\n\n return this.valueInput();\n }\n\n private isInsideToggleGroup(): boolean {\n return this.hostRef.nativeElement.closest('[data-slot=\"button-toggle-group\"]') !== null;\n }\n}\n","<button\n tngButtonToggle\n class=\"tng-button-toggle\"\n [tngButtonToggleValue]=\"resolvedValue()\"\n [pressed]=\"pressed()\"\n [disabled]=\"disabled()\"\n [class.tng-button-toggle--pressed]=\"pressed()\"\n (click)=\"onToggle()\"\n>\n <ng-content />\n</button>\n"]}
@@ -1,4 +1,5 @@
1
1
  import { type ControlValueAccessor } from '@angular/forms';
2
+ import * as i0 from "@angular/core";
2
3
  export type TngCheckboxChange = Readonly<{
3
4
  checked: boolean;
4
5
  indeterminate: boolean;
@@ -34,5 +35,7 @@ export declare class TngCheckboxComponent implements ControlValueAccessor {
34
35
  registerOnTouched(fn: () => void): void;
35
36
  setDisabledState(isDisabled: boolean): void;
36
37
  writeValue(value: unknown): void;
38
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngCheckboxComponent, never>;
39
+ static ɵcmp: i0.ɵɵComponentDeclaration<TngCheckboxComponent, "tng-checkbox", never, { "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "checkedChange": "checkedChange"; "indeterminateChange": "indeterminateChange"; }, never, ["*"], true, never>;
37
40
  }
38
41
  //# sourceMappingURL=tng-checkbox.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-checkbox.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/checkbox/tng-checkbox.component.ts"],"names":[],"mappings":"AAUA,OAAO,EAAqB,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAG9E,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,OAAO,CAAC;AAEtD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAU7E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,GAAG,IAAI,CAc9E;AAKD,qBAaa,oBAAqB,YAAW,oBAAoB;IAC/D,SAAgB,eAAe,qDAA8B;IAC7D,SAAgB,OAAO,8EAEpB;IACH,SAAgB,QAAQ,8EAErB;IACH,SAAgB,OAAO,8EAEpB;IACH,SAAgB,aAAa,8EAE1B;IACH,SAAgB,IAAI,qDAA8B;IAClD,SAAgB,QAAQ,8EAErB;IACH,SAAgB,QAAQ,8EAErB;IACH,SAAgB,KAAK,8CAAuB;IAE5C,SAAgB,aAAa,oDAAqB;IAClD,SAAgB,mBAAmB,oDAAqB;IAExD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiB;IACvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAE7C,OAAO,CAAC,eAAe,CAA2D;IAClF,OAAO,CAAC,gBAAgB,CAA8B;IAEtD,SAAS,CAAC,QAAQ,CAAC,eAAe,0CAM/B;IAEH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,0CAMhC;IAEH,SAAS,CAAC,QAAQ,CAAC,qBAAqB,0CAMrC;;IAgBI,MAAM,IAAI,IAAI;IAId,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAkB9B,gBAAgB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,GAAG,IAAI;IAKlE,iBAAiB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAKvC,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAK3C,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;CAMxC"}
1
+ {"version":3,"file":"tng-checkbox.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/checkbox/tng-checkbox.component.ts"],"names":[],"mappings":"AAUA,OAAO,EAAqB,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;;AAG9E,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,OAAO,CAAC;AAEtD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAU7E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,GAAG,IAAI,CAc9E;AAKD,qBAaa,oBAAqB,YAAW,oBAAoB;IAC/D,SAAgB,eAAe,qDAA8B;IAC7D,SAAgB,OAAO,8EAEpB;IACH,SAAgB,QAAQ,8EAErB;IACH,SAAgB,OAAO,8EAEpB;IACH,SAAgB,aAAa,8EAE1B;IACH,SAAgB,IAAI,qDAA8B;IAClD,SAAgB,QAAQ,8EAErB;IACH,SAAgB,QAAQ,8EAErB;IACH,SAAgB,KAAK,8CAAuB;IAE5C,SAAgB,aAAa,oDAAqB;IAClD,SAAgB,mBAAmB,oDAAqB;IAExD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiB;IACvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAE7C,OAAO,CAAC,eAAe,CAA2D;IAClF,OAAO,CAAC,gBAAgB,CAA8B;IAEtD,SAAS,CAAC,QAAQ,CAAC,eAAe,0CAM/B;IAEH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,0CAMhC;IAEH,SAAS,CAAC,QAAQ,CAAC,qBAAqB,0CAMrC;;IAgBI,MAAM,IAAI,IAAI;IAId,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAkB9B,gBAAgB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,GAAG,IAAI;IAKlE,iBAAiB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAKvC,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAK3C,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;yCA7G5B,oBAAoB;2CAApB,oBAAoB;CAmHhC"}
@@ -1,7 +1,7 @@
1
- import { __decorate } from "tslib";
2
1
  import { booleanAttribute, Component, computed, effect, forwardRef, input, output, signal, } from '@angular/core';
3
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
3
  import { TngCheckbox as TngCheckboxPrimitive } from '@tailng-ui/primitives';
4
+ import * as i0 from "@angular/core";
5
5
  export function coerceTngCheckboxModelValue(value) {
6
6
  if (value === 'mixed') {
7
7
  return { checked: false, indeterminate: true };
@@ -26,34 +26,22 @@ export function readTngCheckboxChange(event) {
26
26
  }
27
27
  const noControlChange = (_value) => undefined;
28
28
  const noControlTouch = () => undefined;
29
- let TngCheckboxComponent = class TngCheckboxComponent {
30
- ariaDescribedBy = input(null);
31
- checked = input(false, {
32
- transform: booleanAttribute,
33
- });
34
- disabled = input(false, {
35
- transform: booleanAttribute,
36
- });
37
- invalid = input(false, {
38
- transform: booleanAttribute,
39
- });
40
- indeterminate = input(false, {
41
- transform: booleanAttribute,
42
- });
43
- name = input(null);
44
- readonly = input(false, {
45
- transform: booleanAttribute,
46
- });
47
- required = input(false, {
48
- transform: booleanAttribute,
49
- });
50
- value = input('on');
29
+ export class TngCheckboxComponent {
30
+ ariaDescribedBy = input(null, ...(ngDevMode ? [{ debugName: "ariaDescribedBy" }] : []));
31
+ checked = input(false, { ...(ngDevMode ? { debugName: "checked" } : {}), transform: booleanAttribute });
32
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: booleanAttribute });
33
+ invalid = input(false, { ...(ngDevMode ? { debugName: "invalid" } : {}), transform: booleanAttribute });
34
+ indeterminate = input(false, { ...(ngDevMode ? { debugName: "indeterminate" } : {}), transform: booleanAttribute });
35
+ name = input(null, ...(ngDevMode ? [{ debugName: "name" }] : []));
36
+ readonly = input(false, { ...(ngDevMode ? { debugName: "readonly" } : {}), transform: booleanAttribute });
37
+ required = input(false, { ...(ngDevMode ? { debugName: "required" } : {}), transform: booleanAttribute });
38
+ value = input('on', ...(ngDevMode ? [{ debugName: "value" }] : []));
51
39
  checkedChange = output();
52
40
  indeterminateChange = output();
53
- internalChecked = signal(false);
54
- internalIndeterminate = signal(false);
55
- cvaModeEnabled = signal(false);
56
- cvaDisabled = signal(false);
41
+ internalChecked = signal(false, ...(ngDevMode ? [{ debugName: "internalChecked" }] : []));
42
+ internalIndeterminate = signal(false, ...(ngDevMode ? [{ debugName: "internalIndeterminate" }] : []));
43
+ cvaModeEnabled = signal(false, ...(ngDevMode ? [{ debugName: "cvaModeEnabled" }] : []));
44
+ cvaDisabled = signal(false, ...(ngDevMode ? [{ debugName: "cvaDisabled" }] : []));
57
45
  onControlChange = noControlChange;
58
46
  onControlTouched = noControlTouch;
59
47
  resolvedChecked = computed(() => {
@@ -61,19 +49,19 @@ let TngCheckboxComponent = class TngCheckboxComponent {
61
49
  return this.internalChecked();
62
50
  }
63
51
  return this.checked();
64
- });
52
+ }, ...(ngDevMode ? [{ debugName: "resolvedChecked" }] : []));
65
53
  resolvedDisabled = computed(() => {
66
54
  if (this.cvaModeEnabled()) {
67
55
  return this.cvaDisabled();
68
56
  }
69
57
  return this.disabled();
70
- });
58
+ }, ...(ngDevMode ? [{ debugName: "resolvedDisabled" }] : []));
71
59
  resolvedIndeterminate = computed(() => {
72
60
  if (this.cvaModeEnabled()) {
73
61
  return this.internalIndeterminate();
74
62
  }
75
63
  return this.indeterminate();
76
- });
64
+ }, ...(ngDevMode ? [{ debugName: "resolvedIndeterminate" }] : []));
77
65
  constructor() {
78
66
  effect(() => {
79
67
  if (this.cvaModeEnabled()) {
@@ -118,21 +106,23 @@ let TngCheckboxComponent = class TngCheckboxComponent {
118
106
  this.internalChecked.set(normalized.checked);
119
107
  this.internalIndeterminate.set(normalized.indeterminate);
120
108
  }
121
- };
122
- TngCheckboxComponent = __decorate([
123
- Component({
124
- selector: 'tng-checkbox',
125
- imports: [TngCheckboxPrimitive],
126
- templateUrl: './tng-checkbox.component.html',
127
- styleUrl: './tng-checkbox.component.css',
128
- providers: [
109
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
110
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.1", type: TngCheckboxComponent, isStandalone: true, selector: "tng-checkbox", inputs: { ariaDescribedBy: { classPropertyName: "ariaDescribedBy", publicName: "ariaDescribedBy", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checkedChange: "checkedChange", indeterminateChange: "indeterminateChange" }, providers: [
129
111
  {
130
112
  provide: NG_VALUE_ACCESSOR,
131
113
  useExisting: forwardRef(() => TngCheckboxComponent),
132
114
  multi: true,
133
115
  },
134
- ],
135
- })
136
- ], TngCheckboxComponent);
137
- export { TngCheckboxComponent };
116
+ ], ngImport: i0, template: "<label\n class=\"tng-checkbox-root\"\n [attr.data-disabled]=\"resolvedDisabled() ? '' : null\"\n [attr.data-invalid]=\"invalid() ? '' : null\"\n [attr.data-readonly]=\"readonly() ? '' : null\"\n>\n <input\n tngCheckbox\n class=\"tng-checkbox-control\"\n [checked]=\"resolvedChecked()\"\n [disabled]=\"resolvedDisabled()\"\n [indeterminate]=\"resolvedIndeterminate()\"\n [invalid]=\"invalid()\"\n [readonly]=\"readonly()\"\n [required]=\"required()\"\n [name]=\"name()\"\n [value]=\"value()\"\n [ariaDescribedBy]=\"ariaDescribedBy()\"\n (change)=\"onChange($event)\"\n (blur)=\"onBlur()\"\n />\n <span class=\"tng-checkbox-label\">\n <ng-content />\n </span>\n</label>\n", styles: [":host {\n display: inline-flex;\n}\n\n.tng-checkbox-root {\n align-items: center;\n color: var(--tng-semantic-foreground-primary);\n cursor: pointer;\n display: inline-flex;\n gap: 0.55rem;\n user-select: none;\n}\n\n.tng-checkbox-root[data-disabled] {\n cursor: not-allowed;\n opacity: 0.65;\n}\n\n.tng-checkbox-root[data-readonly] {\n cursor: default;\n}\n\n.tng-checkbox-control {\n accent-color: var(--tng-semantic-accent-brand);\n block-size: 1rem;\n inline-size: 1rem;\n margin: 0;\n}\n\n.tng-checkbox-control:focus-visible {\n box-shadow: 0 0 0 3px var(--tng-semantic-focus-ring);\n outline: none;\n}\n\n.tng-checkbox-control[data-invalid] {\n accent-color: var(--tng-semantic-accent-danger);\n}\n\n.tng-checkbox-label {\n font-size: 0.925rem;\n line-height: 1.2;\n}\n"], dependencies: [{ kind: "directive", type: TngCheckboxPrimitive, selector: "input[tngCheckbox]", inputs: ["ariaDescribedBy", "ariaInvalid", "checked", "disabled", "invalid", "indeterminate", "name", "readonly", "required", "value"], exportAs: ["tngCheckbox"] }] });
117
+ }
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngCheckboxComponent, decorators: [{
119
+ type: Component,
120
+ args: [{ selector: 'tng-checkbox', imports: [TngCheckboxPrimitive], providers: [
121
+ {
122
+ provide: NG_VALUE_ACCESSOR,
123
+ useExisting: forwardRef(() => TngCheckboxComponent),
124
+ multi: true,
125
+ },
126
+ ], template: "<label\n class=\"tng-checkbox-root\"\n [attr.data-disabled]=\"resolvedDisabled() ? '' : null\"\n [attr.data-invalid]=\"invalid() ? '' : null\"\n [attr.data-readonly]=\"readonly() ? '' : null\"\n>\n <input\n tngCheckbox\n class=\"tng-checkbox-control\"\n [checked]=\"resolvedChecked()\"\n [disabled]=\"resolvedDisabled()\"\n [indeterminate]=\"resolvedIndeterminate()\"\n [invalid]=\"invalid()\"\n [readonly]=\"readonly()\"\n [required]=\"required()\"\n [name]=\"name()\"\n [value]=\"value()\"\n [ariaDescribedBy]=\"ariaDescribedBy()\"\n (change)=\"onChange($event)\"\n (blur)=\"onBlur()\"\n />\n <span class=\"tng-checkbox-label\">\n <ng-content />\n </span>\n</label>\n", styles: [":host {\n display: inline-flex;\n}\n\n.tng-checkbox-root {\n align-items: center;\n color: var(--tng-semantic-foreground-primary);\n cursor: pointer;\n display: inline-flex;\n gap: 0.55rem;\n user-select: none;\n}\n\n.tng-checkbox-root[data-disabled] {\n cursor: not-allowed;\n opacity: 0.65;\n}\n\n.tng-checkbox-root[data-readonly] {\n cursor: default;\n}\n\n.tng-checkbox-control {\n accent-color: var(--tng-semantic-accent-brand);\n block-size: 1rem;\n inline-size: 1rem;\n margin: 0;\n}\n\n.tng-checkbox-control:focus-visible {\n box-shadow: 0 0 0 3px var(--tng-semantic-focus-ring);\n outline: none;\n}\n\n.tng-checkbox-control[data-invalid] {\n accent-color: var(--tng-semantic-accent-danger);\n}\n\n.tng-checkbox-label {\n font-size: 0.925rem;\n line-height: 1.2;\n}\n"] }]
127
+ }], ctorParameters: () => [], propDecorators: { ariaDescribedBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaDescribedBy", required: false }] }], checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], indeterminate: [{ type: i0.Input, args: [{ isSignal: true, alias: "indeterminate", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], checkedChange: [{ type: i0.Output, args: ["checkedChange"] }], indeterminateChange: [{ type: i0.Output, args: ["indeterminateChange"] }] } });
138
128
  //# sourceMappingURL=tng-checkbox.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-checkbox.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/checkbox/tng-checkbox.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n booleanAttribute,\n Component,\n computed,\n effect,\n forwardRef,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport { TngCheckbox as TngCheckboxPrimitive } from '@tailng-ui/primitives';\n\nexport type TngCheckboxChange = Readonly<{\n checked: boolean;\n indeterminate: boolean;\n}>;\n\nexport type TngCheckboxModelValue = 'mixed' | boolean;\n\nexport function coerceTngCheckboxModelValue(value: unknown): TngCheckboxChange {\n if (value === 'mixed') {\n return { checked: false, indeterminate: true };\n }\n\n if (value === true) {\n return { checked: true, indeterminate: false };\n }\n\n return { checked: false, indeterminate: false };\n}\n\nexport function readTngCheckboxChange(event: unknown): TngCheckboxChange | null {\n if (!(event instanceof Event)) {\n return null;\n }\n\n const target = event.target;\n if (!(target instanceof HTMLInputElement)) {\n return null;\n }\n\n return {\n checked: target.checked,\n indeterminate: target.indeterminate,\n };\n}\n\nconst noControlChange = (_value: TngCheckboxModelValue): void => undefined;\nconst noControlTouch = (): void => undefined;\n\n@Component({\n selector: 'tng-checkbox',\n imports: [TngCheckboxPrimitive],\n templateUrl: './tng-checkbox.component.html',\n styleUrl: './tng-checkbox.component.css',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TngCheckboxComponent),\n multi: true,\n },\n ],\n})\nexport class TngCheckboxComponent implements ControlValueAccessor {\n public readonly ariaDescribedBy = input<string | null>(null);\n public readonly checked = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly invalid = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly indeterminate = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly name = input<string | null>(null);\n public readonly readonly = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly required = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly value = input<string>('on');\n\n public readonly checkedChange = output<boolean>();\n public readonly indeterminateChange = output<boolean>();\n\n private readonly internalChecked = signal(false);\n private readonly internalIndeterminate = signal(false);\n private readonly cvaModeEnabled = signal(false);\n private readonly cvaDisabled = signal(false);\n\n private onControlChange: (value: TngCheckboxModelValue) => void = noControlChange;\n private onControlTouched: () => void = noControlTouch;\n\n protected readonly resolvedChecked = computed<boolean>(() => {\n if (this.cvaModeEnabled()) {\n return this.internalChecked();\n }\n\n return this.checked();\n });\n\n protected readonly resolvedDisabled = computed<boolean>(() => {\n if (this.cvaModeEnabled()) {\n return this.cvaDisabled();\n }\n\n return this.disabled();\n });\n\n protected readonly resolvedIndeterminate = computed<boolean>(() => {\n if (this.cvaModeEnabled()) {\n return this.internalIndeterminate();\n }\n\n return this.indeterminate();\n });\n\n public constructor() {\n effect(\n () => {\n if (this.cvaModeEnabled()) {\n return;\n }\n\n this.internalChecked.set(this.checked());\n this.internalIndeterminate.set(this.indeterminate());\n },\n { allowSignalWrites: true },\n );\n }\n\n public onBlur(): void {\n this.onControlTouched();\n }\n\n public onChange(event: unknown): void {\n const change = readTngCheckboxChange(event);\n if (change === null) {\n return;\n }\n\n if (this.readonly() || this.resolvedDisabled()) {\n return;\n }\n\n this.internalChecked.set(change.checked);\n this.internalIndeterminate.set(change.indeterminate);\n\n this.checkedChange.emit(change.checked);\n this.indeterminateChange.emit(change.indeterminate);\n this.onControlChange(change.indeterminate ? 'mixed' : change.checked);\n }\n\n public registerOnChange(fn: (value: TngCheckboxModelValue) => void): void {\n this.cvaModeEnabled.set(true);\n this.onControlChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.cvaModeEnabled.set(true);\n this.onControlTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.cvaModeEnabled.set(true);\n this.cvaDisabled.set(isDisabled);\n }\n\n public writeValue(value: unknown): void {\n this.cvaModeEnabled.set(true);\n const normalized = coerceTngCheckboxModelValue(value);\n this.internalChecked.set(normalized.checked);\n this.internalIndeterminate.set(normalized.indeterminate);\n }\n}\n"]}
1
+ {"version":3,"file":"tng-checkbox.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/checkbox/tng-checkbox.component.ts","../../../../../../../../libs/tailng-ui/components/src/lib/form/checkbox/tng-checkbox.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n booleanAttribute,\n Component,\n computed,\n effect,\n forwardRef,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport { TngCheckbox as TngCheckboxPrimitive } from '@tailng-ui/primitives';\n\nexport type TngCheckboxChange = Readonly<{\n checked: boolean;\n indeterminate: boolean;\n}>;\n\nexport type TngCheckboxModelValue = 'mixed' | boolean;\n\nexport function coerceTngCheckboxModelValue(value: unknown): TngCheckboxChange {\n if (value === 'mixed') {\n return { checked: false, indeterminate: true };\n }\n\n if (value === true) {\n return { checked: true, indeterminate: false };\n }\n\n return { checked: false, indeterminate: false };\n}\n\nexport function readTngCheckboxChange(event: unknown): TngCheckboxChange | null {\n if (!(event instanceof Event)) {\n return null;\n }\n\n const target = event.target;\n if (!(target instanceof HTMLInputElement)) {\n return null;\n }\n\n return {\n checked: target.checked,\n indeterminate: target.indeterminate,\n };\n}\n\nconst noControlChange = (_value: TngCheckboxModelValue): void => undefined;\nconst noControlTouch = (): void => undefined;\n\n@Component({\n selector: 'tng-checkbox',\n imports: [TngCheckboxPrimitive],\n templateUrl: './tng-checkbox.component.html',\n styleUrl: './tng-checkbox.component.css',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TngCheckboxComponent),\n multi: true,\n },\n ],\n})\nexport class TngCheckboxComponent implements ControlValueAccessor {\n public readonly ariaDescribedBy = input<string | null>(null);\n public readonly checked = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly invalid = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly indeterminate = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly name = input<string | null>(null);\n public readonly readonly = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly required = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly value = input<string>('on');\n\n public readonly checkedChange = output<boolean>();\n public readonly indeterminateChange = output<boolean>();\n\n private readonly internalChecked = signal(false);\n private readonly internalIndeterminate = signal(false);\n private readonly cvaModeEnabled = signal(false);\n private readonly cvaDisabled = signal(false);\n\n private onControlChange: (value: TngCheckboxModelValue) => void = noControlChange;\n private onControlTouched: () => void = noControlTouch;\n\n protected readonly resolvedChecked = computed<boolean>(() => {\n if (this.cvaModeEnabled()) {\n return this.internalChecked();\n }\n\n return this.checked();\n });\n\n protected readonly resolvedDisabled = computed<boolean>(() => {\n if (this.cvaModeEnabled()) {\n return this.cvaDisabled();\n }\n\n return this.disabled();\n });\n\n protected readonly resolvedIndeterminate = computed<boolean>(() => {\n if (this.cvaModeEnabled()) {\n return this.internalIndeterminate();\n }\n\n return this.indeterminate();\n });\n\n public constructor() {\n effect(\n () => {\n if (this.cvaModeEnabled()) {\n return;\n }\n\n this.internalChecked.set(this.checked());\n this.internalIndeterminate.set(this.indeterminate());\n },\n { allowSignalWrites: true },\n );\n }\n\n public onBlur(): void {\n this.onControlTouched();\n }\n\n public onChange(event: unknown): void {\n const change = readTngCheckboxChange(event);\n if (change === null) {\n return;\n }\n\n if (this.readonly() || this.resolvedDisabled()) {\n return;\n }\n\n this.internalChecked.set(change.checked);\n this.internalIndeterminate.set(change.indeterminate);\n\n this.checkedChange.emit(change.checked);\n this.indeterminateChange.emit(change.indeterminate);\n this.onControlChange(change.indeterminate ? 'mixed' : change.checked);\n }\n\n public registerOnChange(fn: (value: TngCheckboxModelValue) => void): void {\n this.cvaModeEnabled.set(true);\n this.onControlChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.cvaModeEnabled.set(true);\n this.onControlTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.cvaModeEnabled.set(true);\n this.cvaDisabled.set(isDisabled);\n }\n\n public writeValue(value: unknown): void {\n this.cvaModeEnabled.set(true);\n const normalized = coerceTngCheckboxModelValue(value);\n this.internalChecked.set(normalized.checked);\n this.internalIndeterminate.set(normalized.indeterminate);\n }\n}\n","<label\n class=\"tng-checkbox-root\"\n [attr.data-disabled]=\"resolvedDisabled() ? '' : null\"\n [attr.data-invalid]=\"invalid() ? '' : null\"\n [attr.data-readonly]=\"readonly() ? '' : null\"\n>\n <input\n tngCheckbox\n class=\"tng-checkbox-control\"\n [checked]=\"resolvedChecked()\"\n [disabled]=\"resolvedDisabled()\"\n [indeterminate]=\"resolvedIndeterminate()\"\n [invalid]=\"invalid()\"\n [readonly]=\"readonly()\"\n [required]=\"required()\"\n [name]=\"name()\"\n [value]=\"value()\"\n [ariaDescribedBy]=\"ariaDescribedBy()\"\n (change)=\"onChange($event)\"\n (blur)=\"onBlur()\"\n />\n <span class=\"tng-checkbox-label\">\n <ng-content />\n </span>\n</label>\n"]}
@@ -1,3 +1,4 @@
1
+ import * as i0 from "@angular/core";
1
2
  export declare class TngChipsComponent {
2
3
  private readonly projectedChips;
3
4
  readonly ariaLabel: import("@angular/core").InputSignal<string | null>;
@@ -8,5 +9,7 @@ export declare class TngChipsComponent {
8
9
  readonly valuesChange: import("@angular/core").OutputEmitterRef<readonly unknown[]>;
9
10
  constructor();
10
11
  private onProjectedChipRemove;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngChipsComponent, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<TngChipsComponent, "tng-chips", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "values": { "alias": "values"; "required": false; "isSignal": true; }; "defaultValues": { "alias": "defaultValues"; "required": false; "isSignal": true; }; }, { "chipRemove": "chipRemove"; "valuesChange": "valuesChange"; }, ["projectedChips"], ["*"], true, never>;
11
14
  }
12
15
  //# sourceMappingURL=tng-chips.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-chips.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/chips/tng-chips.component.ts"],"names":[],"mappings":"AAGA,qBAMa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmD;IAElF,SAAgB,SAAS,qDAA0C;IACnE,SAAgB,QAAQ,8EAErB;IACH,SAAgB,MAAM,sEAAoD;IAC1E,SAAgB,aAAa,0DAAiC;IAE9D,SAAgB,UAAU,oDAAqB;IAC/C,SAAgB,YAAY,+DAAgC;;IAkB5D,OAAO,CAAC,qBAAqB;CAoB9B"}
1
+ {"version":3,"file":"tng-chips.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/chips/tng-chips.component.ts"],"names":[],"mappings":";AAGA,qBAMa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmD;IAElF,SAAgB,SAAS,qDAA0C;IACnE,SAAgB,QAAQ,8EAErB;IACH,SAAgB,MAAM,sEAAoD;IAC1E,SAAgB,aAAa,0DAAiC;IAE9D,SAAgB,UAAU,oDAAqB;IAC/C,SAAgB,YAAY,+DAAgC;;IAkB5D,OAAO,CAAC,qBAAqB;yCA7BlB,iBAAiB;2CAAjB,iBAAiB;CAiD7B"}
@@ -1,14 +1,12 @@
1
- import { __decorate } from "tslib";
2
1
  import { Component, booleanAttribute, contentChildren, effect, input, output } from '@angular/core';
3
2
  import { TngChip, TngChips as TngChipsPrimitive } from '@tailng-ui/primitives';
4
- let TngChipsComponent = class TngChipsComponent {
5
- projectedChips = contentChildren(TngChip, { descendants: true });
6
- ariaLabel = input('Selected items');
7
- disabled = input(false, {
8
- transform: booleanAttribute,
9
- });
10
- values = input(undefined);
11
- defaultValues = input([]);
3
+ import * as i0 from "@angular/core";
4
+ export class TngChipsComponent {
5
+ projectedChips = contentChildren(TngChip, { ...(ngDevMode ? { debugName: "projectedChips" } : {}), descendants: true });
6
+ ariaLabel = input('Selected items', ...(ngDevMode ? [{ debugName: "ariaLabel" }] : []));
7
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: booleanAttribute });
8
+ values = input(undefined, ...(ngDevMode ? [{ debugName: "values" }] : []));
9
+ defaultValues = input([], ...(ngDevMode ? [{ debugName: "defaultValues" }] : []));
12
10
  chipRemove = output();
13
11
  valuesChange = output();
14
12
  constructor() {
@@ -39,14 +37,11 @@ let TngChipsComponent = class TngChipsComponent {
39
37
  const nextValues = [...currentValues.slice(0, index), ...currentValues.slice(index + 1)];
40
38
  this.valuesChange.emit(nextValues);
41
39
  }
42
- };
43
- TngChipsComponent = __decorate([
44
- Component({
45
- selector: 'tng-chips',
46
- imports: [TngChipsPrimitive],
47
- templateUrl: './tng-chips.component.html',
48
- styleUrl: './tng-chips.component.css',
49
- })
50
- ], TngChipsComponent);
51
- export { TngChipsComponent };
40
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngChipsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
41
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.1", type: TngChipsComponent, isStandalone: true, selector: "tng-chips", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, values: { classPropertyName: "values", publicName: "values", isSignal: true, isRequired: false, transformFunction: null }, defaultValues: { classPropertyName: "defaultValues", publicName: "defaultValues", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { chipRemove: "chipRemove", valuesChange: "valuesChange" }, queries: [{ propertyName: "projectedChips", predicate: TngChip, descendants: true, isSignal: true }], ngImport: i0, template: "<section\n tngChips\n class=\"tng-chips\"\n [tngChipsAriaLabel]=\"ariaLabel()\"\n [tngChipsDisabled]=\"disabled()\"\n [tngChipsValues]=\"values()\"\n [tngChipsDefaultValues]=\"defaultValues()\"\n>\n <ng-content />\n</section>\n", styles: [":host {\n display: block;\n}\n\n.tng-chips {\n background: var(--tng-semantic-background-base);\n border: 1px solid var(--tng-semantic-border-subtle);\n border-radius: 0.75rem;\n color: var(--tng-semantic-foreground-primary);\n display: grid;\n gap: 0.5rem;\n padding: 0.9rem 1rem;\n}\n"], dependencies: [{ kind: "directive", type: TngChipsPrimitive, selector: "[tngChips]", inputs: ["tngChipsValues", "tngChipsDefaultValues", "tngChipsDisabled", "tngChipsAriaLabel"], outputs: ["chipRemove", "valuesChange"], exportAs: ["tngChips"] }] });
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngChipsComponent, decorators: [{
44
+ type: Component,
45
+ args: [{ selector: 'tng-chips', imports: [TngChipsPrimitive], template: "<section\n tngChips\n class=\"tng-chips\"\n [tngChipsAriaLabel]=\"ariaLabel()\"\n [tngChipsDisabled]=\"disabled()\"\n [tngChipsValues]=\"values()\"\n [tngChipsDefaultValues]=\"defaultValues()\"\n>\n <ng-content />\n</section>\n", styles: [":host {\n display: block;\n}\n\n.tng-chips {\n background: var(--tng-semantic-background-base);\n border: 1px solid var(--tng-semantic-border-subtle);\n border-radius: 0.75rem;\n color: var(--tng-semantic-foreground-primary);\n display: grid;\n gap: 0.5rem;\n padding: 0.9rem 1rem;\n}\n"] }]
46
+ }], ctorParameters: () => [], propDecorators: { projectedChips: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => TngChip), { ...{ descendants: true }, isSignal: true }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], values: [{ type: i0.Input, args: [{ isSignal: true, alias: "values", required: false }] }], defaultValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValues", required: false }] }], chipRemove: [{ type: i0.Output, args: ["chipRemove"] }], valuesChange: [{ type: i0.Output, args: ["valuesChange"] }] } });
52
47
  //# sourceMappingURL=tng-chips.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-chips.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/chips/tng-chips.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EAAE,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAQxE,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IACX,cAAc,GAAG,eAAe,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAElE,SAAS,GAAG,KAAK,CAAgB,gBAAgB,CAAC,CAAC;IACnD,QAAQ,GAAG,KAAK,CAA4B,KAAK,EAAE;QACjE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,MAAM,GAAG,KAAK,CAAiC,SAAS,CAAC,CAAC;IAC1D,aAAa,GAAG,KAAK,CAAqB,EAAE,CAAC,CAAC;IAE9C,UAAU,GAAG,MAAM,EAAW,CAAC;IAC/B,YAAY,GAAG,MAAM,EAAsB,CAAC;IAE5D;QACE,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE;YACnB,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACvD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gBAClC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC,CAAC,CACH,CAAC;YAEF,SAAS,CAAC,GAAG,EAAE;gBACb,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;oBACzC,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC7B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,qBAAqB,CAAC,KAAc;QAC1C,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE5B,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACpC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACxE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QACzF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;CACF,CAAA;AAjDY,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,CAiD7B","sourcesContent":["import { Component, booleanAttribute, contentChildren, effect, input, output } from '@angular/core';\nimport { TngChip, TngChips as TngChipsPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-chips',\n imports: [TngChipsPrimitive],\n templateUrl: './tng-chips.component.html',\n styleUrl: './tng-chips.component.css',\n})\nexport class TngChipsComponent {\n private readonly projectedChips = contentChildren(TngChip, { descendants: true });\n\n public readonly ariaLabel = input<string | null>('Selected items');\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly values = input<readonly unknown[] | undefined>(undefined);\n public readonly defaultValues = input<readonly unknown[]>([]);\n\n public readonly chipRemove = output<unknown>();\n public readonly valuesChange = output<readonly unknown[]>();\n\n public constructor() {\n effect((onCleanup) => {\n const subscriptions = this.projectedChips().map((chip) =>\n chip.chipRemove.subscribe((value) => {\n this.onProjectedChipRemove(value);\n }),\n );\n\n onCleanup(() => {\n for (const subscription of subscriptions) {\n subscription.unsubscribe();\n }\n });\n });\n }\n\n private onProjectedChipRemove(value: unknown): void {\n if (this.disabled()) {\n return;\n }\n\n this.chipRemove.emit(value);\n\n const currentValues = this.values();\n if (currentValues === undefined) {\n return;\n }\n\n const index = currentValues.findIndex((item) => Object.is(item, value));\n if (index < 0) {\n return;\n }\n\n const nextValues = [...currentValues.slice(0, index), ...currentValues.slice(index + 1)];\n this.valuesChange.emit(nextValues);\n }\n}\n"]}
1
+ {"version":3,"file":"tng-chips.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/chips/tng-chips.component.ts","../../../../../../../../libs/tailng-ui/components/src/lib/form/chips/tng-chips.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EAAE,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;;AAQ/E,MAAM,OAAO,iBAAiB;IACX,cAAc,GAAG,eAAe,CAAC,OAAO,2DAAI,WAAW,EAAE,IAAI,GAAG,CAAC;IAElE,SAAS,GAAG,KAAK,CAAgB,gBAAgB,qDAAC,CAAC;IACnD,QAAQ,GAAG,KAAK,CAA4B,KAAK,qDAC/D,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,MAAM,GAAG,KAAK,CAAiC,SAAS,kDAAC,CAAC;IAC1D,aAAa,GAAG,KAAK,CAAqB,EAAE,yDAAC,CAAC;IAE9C,UAAU,GAAG,MAAM,EAAW,CAAC;IAC/B,YAAY,GAAG,MAAM,EAAsB,CAAC;IAE5D;QACE,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE;YACnB,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACvD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gBAClC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC,CAAC,CACH,CAAC;YAEF,SAAS,CAAC,GAAG,EAAE;gBACb,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;oBACzC,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC7B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,qBAAqB,CAAC,KAAc;QAC1C,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE5B,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACpC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACxE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QACzF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;uGAhDU,iBAAiB;2FAAjB,iBAAiB,qsBACsB,OAAO,gECV3D,4OAUA,gWDLY,iBAAiB;;2FAIhB,iBAAiB;kBAN7B,SAAS;+BACE,WAAW,WACZ,CAAC,iBAAiB,CAAC;gIAKsB,OAAO,QAAE,EAAE,WAAW,EAAE,IAAI,EAAE","sourcesContent":["import { Component, booleanAttribute, contentChildren, effect, input, output } from '@angular/core';\nimport { TngChip, TngChips as TngChipsPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-chips',\n imports: [TngChipsPrimitive],\n templateUrl: './tng-chips.component.html',\n styleUrl: './tng-chips.component.css',\n})\nexport class TngChipsComponent {\n private readonly projectedChips = contentChildren(TngChip, { descendants: true });\n\n public readonly ariaLabel = input<string | null>('Selected items');\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly values = input<readonly unknown[] | undefined>(undefined);\n public readonly defaultValues = input<readonly unknown[]>([]);\n\n public readonly chipRemove = output<unknown>();\n public readonly valuesChange = output<readonly unknown[]>();\n\n public constructor() {\n effect((onCleanup) => {\n const subscriptions = this.projectedChips().map((chip) =>\n chip.chipRemove.subscribe((value) => {\n this.onProjectedChipRemove(value);\n }),\n );\n\n onCleanup(() => {\n for (const subscription of subscriptions) {\n subscription.unsubscribe();\n }\n });\n });\n }\n\n private onProjectedChipRemove(value: unknown): void {\n if (this.disabled()) {\n return;\n }\n\n this.chipRemove.emit(value);\n\n const currentValues = this.values();\n if (currentValues === undefined) {\n return;\n }\n\n const index = currentValues.findIndex((item) => Object.is(item, value));\n if (index < 0) {\n return;\n }\n\n const nextValues = [...currentValues.slice(0, index), ...currentValues.slice(index + 1)];\n this.valuesChange.emit(nextValues);\n }\n}\n","<section\n tngChips\n class=\"tng-chips\"\n [tngChipsAriaLabel]=\"ariaLabel()\"\n [tngChipsDisabled]=\"disabled()\"\n [tngChipsValues]=\"values()\"\n [tngChipsDefaultValues]=\"defaultValues()\"\n>\n <ng-content />\n</section>\n"]}