@tony-ui-library/core 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/README.md +188 -0
  2. package/fesm2022/tony-ui-library-core.mjs +8756 -0
  3. package/fesm2022/tony-ui-library-core.mjs.map +1 -0
  4. package/package.json +55 -0
  5. package/schematics/collection.json +16 -0
  6. package/schematics/ng-add/index.d.ts +5 -0
  7. package/schematics/ng-add/index.js +53 -0
  8. package/schematics/ng-add/schema.json +19 -0
  9. package/schematics/ng-generate/component/index.d.ts +9 -0
  10. package/schematics/ng-generate/component/index.js +439 -0
  11. package/schematics/ng-generate/component/schema.json +32 -0
  12. package/src/lib/accordion/accordion.directives.spec.ts +173 -0
  13. package/src/lib/accordion/accordion.directives.ts +143 -0
  14. package/src/lib/accordion/index.ts +8 -0
  15. package/src/lib/alert/alert.directives.spec.ts +154 -0
  16. package/src/lib/alert/alert.directives.ts +67 -0
  17. package/src/lib/alert/alert.variants.ts +25 -0
  18. package/src/lib/alert/index.ts +6 -0
  19. package/src/lib/avatar/avatar.component.spec.ts +75 -0
  20. package/src/lib/avatar/avatar.component.ts +43 -0
  21. package/src/lib/avatar/avatar.variants.ts +26 -0
  22. package/src/lib/avatar/index.ts +2 -0
  23. package/src/lib/avatar-group/avatar-group.component.spec.ts +74 -0
  24. package/src/lib/avatar-group/avatar-group.component.ts +88 -0
  25. package/src/lib/avatar-group/index.ts +1 -0
  26. package/src/lib/badge/badge.directive.spec.ts +74 -0
  27. package/src/lib/badge/badge.directive.ts +17 -0
  28. package/src/lib/badge/badge.variants.ts +29 -0
  29. package/src/lib/badge/index.ts +2 -0
  30. package/src/lib/breadcrumb/breadcrumb.directives.spec.ts +80 -0
  31. package/src/lib/breadcrumb/breadcrumb.directives.ts +78 -0
  32. package/src/lib/breadcrumb/index.ts +8 -0
  33. package/src/lib/button/button.directive.spec.ts +92 -0
  34. package/src/lib/button/button.directive.ts +28 -0
  35. package/src/lib/button/button.variants.ts +30 -0
  36. package/src/lib/button/index.ts +2 -0
  37. package/src/lib/button-group/button-group.directive.spec.ts +46 -0
  38. package/src/lib/button-group/button-group.directive.ts +19 -0
  39. package/src/lib/button-group/button-group.variants.ts +18 -0
  40. package/src/lib/button-group/index.ts +2 -0
  41. package/src/lib/calendar/calendar.component.spec.ts +192 -0
  42. package/src/lib/calendar/calendar.component.ts +342 -0
  43. package/src/lib/calendar/calendar.types.ts +24 -0
  44. package/src/lib/calendar/index.ts +7 -0
  45. package/src/lib/card/card.directives.spec.ts +104 -0
  46. package/src/lib/card/card.directives.ts +72 -0
  47. package/src/lib/card/card.variants.ts +28 -0
  48. package/src/lib/card/index.ts +9 -0
  49. package/src/lib/carousel/carousel.directives.spec.ts +85 -0
  50. package/src/lib/carousel/carousel.directives.ts +159 -0
  51. package/src/lib/carousel/index.ts +8 -0
  52. package/src/lib/chat-bubble/chat-bubble.directives.spec.ts +52 -0
  53. package/src/lib/chat-bubble/chat-bubble.directives.ts +96 -0
  54. package/src/lib/chat-bubble/index.ts +11 -0
  55. package/src/lib/checkbox/checkbox.directive.spec.ts +57 -0
  56. package/src/lib/checkbox/checkbox.directive.ts +16 -0
  57. package/src/lib/checkbox/checkbox.variants.ts +19 -0
  58. package/src/lib/checkbox/index.ts +2 -0
  59. package/src/lib/color-picker/color-picker.component.spec.ts +328 -0
  60. package/src/lib/color-picker/color-picker.component.ts +537 -0
  61. package/src/lib/color-picker/color-picker.types.ts +24 -0
  62. package/src/lib/color-picker/color-picker.utils.ts +183 -0
  63. package/src/lib/color-picker/color-picker.variants.ts +17 -0
  64. package/src/lib/color-picker/index.ts +20 -0
  65. package/src/lib/combobox/combobox.component.spec.ts +151 -0
  66. package/src/lib/combobox/combobox.component.ts +264 -0
  67. package/src/lib/combobox/combobox.variants.ts +19 -0
  68. package/src/lib/combobox/index.ts +2 -0
  69. package/src/lib/command-palette/command-palette.component.spec.ts +178 -0
  70. package/src/lib/command-palette/command-palette.component.ts +194 -0
  71. package/src/lib/command-palette/command-palette.service.ts +36 -0
  72. package/src/lib/command-palette/command-palette.types.ts +23 -0
  73. package/src/lib/command-palette/index.ts +7 -0
  74. package/src/lib/data-table/data-table.component.spec.ts +443 -0
  75. package/src/lib/data-table/data-table.component.ts +622 -0
  76. package/src/lib/data-table/data-table.directives.ts +31 -0
  77. package/src/lib/data-table/data-table.types.ts +26 -0
  78. package/src/lib/data-table/index.ts +14 -0
  79. package/src/lib/date-picker/date-picker.component.spec.ts +131 -0
  80. package/src/lib/date-picker/date-picker.component.ts +220 -0
  81. package/src/lib/date-picker/date-picker.variants.ts +17 -0
  82. package/src/lib/date-picker/index.ts +2 -0
  83. package/src/lib/date-range-picker/date-range-picker.component.spec.ts +151 -0
  84. package/src/lib/date-range-picker/date-range-picker.component.ts +340 -0
  85. package/src/lib/date-range-picker/index.ts +1 -0
  86. package/src/lib/diff/diff.component.spec.ts +47 -0
  87. package/src/lib/diff/diff.component.ts +82 -0
  88. package/src/lib/diff/index.ts +1 -0
  89. package/src/lib/divider/divider.component.spec.ts +48 -0
  90. package/src/lib/divider/divider.component.ts +51 -0
  91. package/src/lib/divider/divider.variants.ts +22 -0
  92. package/src/lib/divider/index.ts +2 -0
  93. package/src/lib/dock/dock.directives.spec.ts +85 -0
  94. package/src/lib/dock/dock.directives.ts +81 -0
  95. package/src/lib/dock/index.ts +1 -0
  96. package/src/lib/drawer/drawer.directives.spec.ts +62 -0
  97. package/src/lib/drawer/drawer.directives.ts +80 -0
  98. package/src/lib/drawer/index.ts +8 -0
  99. package/src/lib/dropdown/dropdown.directives.spec.ts +106 -0
  100. package/src/lib/dropdown/dropdown.directives.ts +136 -0
  101. package/src/lib/dropdown/dropdown.variants.ts +27 -0
  102. package/src/lib/dropdown/index.ts +15 -0
  103. package/src/lib/fab/fab.directives.spec.ts +60 -0
  104. package/src/lib/fab/fab.directives.ts +77 -0
  105. package/src/lib/fab/index.ts +8 -0
  106. package/src/lib/fieldset/fieldset.directives.spec.ts +74 -0
  107. package/src/lib/fieldset/fieldset.directives.ts +49 -0
  108. package/src/lib/fieldset/fieldset.variants.ts +15 -0
  109. package/src/lib/fieldset/index.ts +6 -0
  110. package/src/lib/file-input/file-input.component.spec.ts +114 -0
  111. package/src/lib/file-input/file-input.component.ts +155 -0
  112. package/src/lib/file-input/file-input.variants.ts +25 -0
  113. package/src/lib/file-input/index.ts +6 -0
  114. package/src/lib/indicator/index.ts +6 -0
  115. package/src/lib/indicator/indicator.directives.spec.ts +64 -0
  116. package/src/lib/indicator/indicator.directives.ts +59 -0
  117. package/src/lib/input/index.ts +3 -0
  118. package/src/lib/input/input.directive.spec.ts +103 -0
  119. package/src/lib/input/input.directive.ts +25 -0
  120. package/src/lib/input/input.variants.ts +42 -0
  121. package/src/lib/input/label.directive.ts +16 -0
  122. package/src/lib/kbd/index.ts +2 -0
  123. package/src/lib/kbd/kbd.directive.spec.ts +42 -0
  124. package/src/lib/kbd/kbd.directive.ts +18 -0
  125. package/src/lib/kbd/kbd.variants.ts +19 -0
  126. package/src/lib/link/index.ts +2 -0
  127. package/src/lib/link/link.directive.spec.ts +41 -0
  128. package/src/lib/link/link.directive.ts +18 -0
  129. package/src/lib/link/link.variants.ts +20 -0
  130. package/src/lib/list/index.ts +8 -0
  131. package/src/lib/list/list.directives.spec.ts +65 -0
  132. package/src/lib/list/list.directives.ts +81 -0
  133. package/src/lib/loader/index.ts +2 -0
  134. package/src/lib/loader/loader.component.spec.ts +58 -0
  135. package/src/lib/loader/loader.component.ts +47 -0
  136. package/src/lib/loader/loader.variants.ts +21 -0
  137. package/src/lib/modal/dialog-ref.ts +19 -0
  138. package/src/lib/modal/dialog.directives.ts +84 -0
  139. package/src/lib/modal/dialog.service.spec.ts +52 -0
  140. package/src/lib/modal/dialog.service.ts +61 -0
  141. package/src/lib/modal/dialog.types.ts +16 -0
  142. package/src/lib/modal/index.ts +11 -0
  143. package/src/lib/navbar/index.ts +7 -0
  144. package/src/lib/navbar/navbar.directives.spec.ts +59 -0
  145. package/src/lib/navbar/navbar.directives.ts +57 -0
  146. package/src/lib/number-input/index.ts +2 -0
  147. package/src/lib/number-input/number-input.component.spec.ts +151 -0
  148. package/src/lib/number-input/number-input.component.ts +152 -0
  149. package/src/lib/number-input/number-input.variants.ts +17 -0
  150. package/src/lib/otp-input/index.ts +2 -0
  151. package/src/lib/otp-input/otp-input.component.spec.ts +252 -0
  152. package/src/lib/otp-input/otp-input.component.ts +274 -0
  153. package/src/lib/otp-input/otp-input.variants.ts +18 -0
  154. package/src/lib/pagination/index.ts +6 -0
  155. package/src/lib/pagination/pagination.component.spec.ts +59 -0
  156. package/src/lib/pagination/pagination.component.ts +143 -0
  157. package/src/lib/pagination/pagination.variants.ts +31 -0
  158. package/src/lib/popover/index.ts +6 -0
  159. package/src/lib/popover/popover.directives.spec.ts +147 -0
  160. package/src/lib/popover/popover.directives.ts +151 -0
  161. package/src/lib/progress/index.ts +7 -0
  162. package/src/lib/progress/progress.component.spec.ts +117 -0
  163. package/src/lib/progress/progress.component.ts +64 -0
  164. package/src/lib/progress/progress.variants.ts +43 -0
  165. package/src/lib/radial-progress/index.ts +5 -0
  166. package/src/lib/radial-progress/radial-progress.component.spec.ts +41 -0
  167. package/src/lib/radial-progress/radial-progress.component.ts +70 -0
  168. package/src/lib/radio/index.ts +2 -0
  169. package/src/lib/radio/radio.directive.spec.ts +46 -0
  170. package/src/lib/radio/radio.directive.ts +16 -0
  171. package/src/lib/radio/radio.variants.ts +19 -0
  172. package/src/lib/rating/index.ts +2 -0
  173. package/src/lib/rating/rating.component.spec.ts +157 -0
  174. package/src/lib/rating/rating.component.ts +163 -0
  175. package/src/lib/rating/rating.variants.ts +20 -0
  176. package/src/lib/select/index.ts +2 -0
  177. package/src/lib/select/select.component.spec.ts +112 -0
  178. package/src/lib/select/select.component.ts +235 -0
  179. package/src/lib/select/select.variants.ts +19 -0
  180. package/src/lib/sheet/index.ts +10 -0
  181. package/src/lib/sheet/sheet-ref.ts +18 -0
  182. package/src/lib/sheet/sheet.component.spec.ts +67 -0
  183. package/src/lib/sheet/sheet.directives.ts +70 -0
  184. package/src/lib/sheet/sheet.service.ts +100 -0
  185. package/src/lib/sheet/sheet.types.ts +23 -0
  186. package/src/lib/skeleton/index.ts +2 -0
  187. package/src/lib/skeleton/skeleton.directive.spec.ts +63 -0
  188. package/src/lib/skeleton/skeleton.directive.ts +21 -0
  189. package/src/lib/skeleton/skeleton.variants.ts +27 -0
  190. package/src/lib/slider/index.ts +2 -0
  191. package/src/lib/slider/slider.component.spec.ts +104 -0
  192. package/src/lib/slider/slider.component.ts +181 -0
  193. package/src/lib/slider/slider.variants.ts +25 -0
  194. package/src/lib/stat/index.ts +8 -0
  195. package/src/lib/stat/stat.directives.spec.ts +60 -0
  196. package/src/lib/stat/stat.directives.ts +79 -0
  197. package/src/lib/status/index.ts +2 -0
  198. package/src/lib/status/status.directive.spec.ts +43 -0
  199. package/src/lib/status/status.directive.ts +37 -0
  200. package/src/lib/status/status.variants.ts +26 -0
  201. package/src/lib/steps/index.ts +8 -0
  202. package/src/lib/steps/steps.directives.spec.ts +52 -0
  203. package/src/lib/steps/steps.directives.ts +78 -0
  204. package/src/lib/switch/index.ts +2 -0
  205. package/src/lib/switch/switch.component.spec.ts +98 -0
  206. package/src/lib/switch/switch.component.ts +76 -0
  207. package/src/lib/switch/switch.variants.ts +31 -0
  208. package/src/lib/table/index.ts +12 -0
  209. package/src/lib/table/table.directives.spec.ts +111 -0
  210. package/src/lib/table/table.directives.ts +126 -0
  211. package/src/lib/table/table.variants.ts +36 -0
  212. package/src/lib/tabs/index.ts +8 -0
  213. package/src/lib/tabs/tabs.directives.spec.ts +136 -0
  214. package/src/lib/tabs/tabs.directives.ts +126 -0
  215. package/src/lib/tabs/tabs.variants.ts +17 -0
  216. package/src/lib/tag-input/index.ts +2 -0
  217. package/src/lib/tag-input/tag-input.component.spec.ts +190 -0
  218. package/src/lib/tag-input/tag-input.component.ts +172 -0
  219. package/src/lib/tag-input/tag-input.variants.ts +31 -0
  220. package/src/lib/textarea/index.ts +7 -0
  221. package/src/lib/textarea/textarea.directive.spec.ts +84 -0
  222. package/src/lib/textarea/textarea.directive.ts +71 -0
  223. package/src/lib/textarea/textarea.variants.ts +34 -0
  224. package/src/lib/timeline/index.ts +11 -0
  225. package/src/lib/timeline/timeline.directives.spec.ts +55 -0
  226. package/src/lib/timeline/timeline.directives.ts +85 -0
  227. package/src/lib/toast/index.ts +3 -0
  228. package/src/lib/toast/toast.service.spec.ts +71 -0
  229. package/src/lib/toast/toast.service.ts +60 -0
  230. package/src/lib/toast/toast.variants.ts +38 -0
  231. package/src/lib/toast/toaster.component.spec.ts +38 -0
  232. package/src/lib/toast/toaster.component.ts +81 -0
  233. package/src/lib/toggle/index.ts +2 -0
  234. package/src/lib/toggle/toggle.directive.spec.ts +100 -0
  235. package/src/lib/toggle/toggle.directive.ts +61 -0
  236. package/src/lib/toggle/toggle.variants.ts +25 -0
  237. package/src/lib/tooltip/index.ts +2 -0
  238. package/src/lib/tooltip/tooltip.directive.spec.ts +113 -0
  239. package/src/lib/tooltip/tooltip.directive.ts +130 -0
  240. package/src/lib/tooltip/tooltip.variants.ts +20 -0
  241. package/src/lib/validator/index.ts +5 -0
  242. package/src/lib/validator/validator.directives.spec.ts +47 -0
  243. package/src/lib/validator/validator.directives.ts +50 -0
  244. package/src/styles/sonny-theme.css +171 -0
  245. package/types/tony-ui-library-core.d.ts +2179 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tony-ui-library-core.mjs","sources":["../../../projects/core/src/lib/core/utils/cn.ts","../../../projects/core/src/lib/core/providers/theme.service.ts","../../../projects/core/src/lib/core/providers/sonny-config.ts","../../../projects/core/src/lib/button/button.variants.ts","../../../projects/core/src/lib/button/button.directive.ts","../../../projects/core/src/lib/card/card.variants.ts","../../../projects/core/src/lib/card/card.directives.ts","../../../projects/core/src/lib/input/input.variants.ts","../../../projects/core/src/lib/input/input.directive.ts","../../../projects/core/src/lib/input/label.directive.ts","../../../projects/core/src/lib/toast/toast.service.ts","../../../projects/core/src/lib/toast/toast.variants.ts","../../../projects/core/src/lib/toast/toaster.component.ts","../../../projects/core/src/lib/modal/dialog-ref.ts","../../../projects/core/src/lib/modal/dialog.types.ts","../../../projects/core/src/lib/modal/dialog.service.ts","../../../projects/core/src/lib/modal/dialog.directives.ts","../../../projects/core/src/lib/accordion/accordion.directives.ts","../../../projects/core/src/lib/avatar/avatar.variants.ts","../../../projects/core/src/lib/avatar/avatar.component.ts","../../../projects/core/src/lib/badge/badge.variants.ts","../../../projects/core/src/lib/badge/badge.directive.ts","../../../projects/core/src/lib/breadcrumb/breadcrumb.directives.ts","../../../projects/core/src/lib/button-group/button-group.variants.ts","../../../projects/core/src/lib/button-group/button-group.directive.ts","../../../projects/core/src/lib/checkbox/checkbox.variants.ts","../../../projects/core/src/lib/checkbox/checkbox.directive.ts","../../../projects/core/src/lib/combobox/combobox.variants.ts","../../../projects/core/src/lib/combobox/combobox.component.ts","../../../projects/core/src/lib/skeleton/skeleton.variants.ts","../../../projects/core/src/lib/skeleton/skeleton.directive.ts","../../../projects/core/src/lib/radio/radio.variants.ts","../../../projects/core/src/lib/radio/radio.directive.ts","../../../projects/core/src/lib/switch/switch.variants.ts","../../../projects/core/src/lib/switch/switch.component.ts","../../../projects/core/src/lib/toggle/toggle.variants.ts","../../../projects/core/src/lib/toggle/toggle.directive.ts","../../../projects/core/src/lib/slider/slider.variants.ts","../../../projects/core/src/lib/slider/slider.component.ts","../../../projects/core/src/lib/loader/loader.variants.ts","../../../projects/core/src/lib/loader/loader.component.ts","../../../projects/core/src/lib/tabs/tabs.directives.ts","../../../projects/core/src/lib/tabs/tabs.variants.ts","../../../projects/core/src/lib/select/select.variants.ts","../../../projects/core/src/lib/select/select.component.ts","../../../projects/core/src/lib/table/table.variants.ts","../../../projects/core/src/lib/table/table.directives.ts","../../../projects/core/src/lib/pagination/pagination.variants.ts","../../../projects/core/src/lib/pagination/pagination.component.ts","../../../projects/core/src/lib/dropdown/dropdown.variants.ts","../../../projects/core/src/lib/dropdown/dropdown.directives.ts","../../../projects/core/src/lib/data-table/data-table.directives.ts","../../../projects/core/src/lib/data-table/data-table.component.ts","../../../projects/core/src/lib/sheet/sheet-ref.ts","../../../projects/core/src/lib/sheet/sheet.types.ts","../../../projects/core/src/lib/sheet/sheet.service.ts","../../../projects/core/src/lib/sheet/sheet.directives.ts","../../../projects/core/src/lib/alert/alert.variants.ts","../../../projects/core/src/lib/alert/alert.directives.ts","../../../projects/core/src/lib/textarea/textarea.variants.ts","../../../projects/core/src/lib/textarea/textarea.directive.ts","../../../projects/core/src/lib/progress/progress.variants.ts","../../../projects/core/src/lib/progress/progress.component.ts","../../../projects/core/src/lib/tooltip/tooltip.variants.ts","../../../projects/core/src/lib/tooltip/tooltip.directive.ts","../../../projects/core/src/lib/file-input/file-input.variants.ts","../../../projects/core/src/lib/file-input/file-input.component.ts","../../../projects/core/src/lib/fieldset/fieldset.variants.ts","../../../projects/core/src/lib/fieldset/fieldset.directives.ts","../../../projects/core/src/lib/rating/rating.variants.ts","../../../projects/core/src/lib/rating/rating.component.ts","../../../projects/core/src/lib/navbar/navbar.directives.ts","../../../projects/core/src/lib/drawer/drawer.directives.ts","../../../projects/core/src/lib/divider/divider.variants.ts","../../../projects/core/src/lib/divider/divider.component.ts","../../../projects/core/src/lib/steps/steps.directives.ts","../../../projects/core/src/lib/stat/stat.directives.ts","../../../projects/core/src/lib/timeline/timeline.directives.ts","../../../projects/core/src/lib/kbd/kbd.variants.ts","../../../projects/core/src/lib/kbd/kbd.directive.ts","../../../projects/core/src/lib/list/list.directives.ts","../../../projects/core/src/lib/status/status.variants.ts","../../../projects/core/src/lib/status/status.directive.ts","../../../projects/core/src/lib/indicator/indicator.directives.ts","../../../projects/core/src/lib/chat-bubble/chat-bubble.directives.ts","../../../projects/core/src/lib/carousel/carousel.directives.ts","../../../projects/core/src/lib/dock/dock.directives.ts","../../../projects/core/src/lib/fab/fab.directives.ts","../../../projects/core/src/lib/radial-progress/radial-progress.component.ts","../../../projects/core/src/lib/diff/diff.component.ts","../../../projects/core/src/lib/link/link.variants.ts","../../../projects/core/src/lib/link/link.directive.ts","../../../projects/core/src/lib/calendar/calendar.component.ts","../../../projects/core/src/lib/date-picker/date-picker.variants.ts","../../../projects/core/src/lib/date-picker/date-picker.component.ts","../../../projects/core/src/lib/date-range-picker/date-range-picker.component.ts","../../../projects/core/src/lib/color-picker/color-picker.utils.ts","../../../projects/core/src/lib/color-picker/color-picker.variants.ts","../../../projects/core/src/lib/color-picker/color-picker.component.ts","../../../projects/core/src/lib/otp-input/otp-input.variants.ts","../../../projects/core/src/lib/otp-input/otp-input.component.ts","../../../projects/core/src/lib/command-palette/command-palette.component.ts","../../../projects/core/src/lib/command-palette/command-palette.service.ts","../../../projects/core/src/lib/number-input/number-input.variants.ts","../../../projects/core/src/lib/number-input/number-input.component.ts","../../../projects/core/src/lib/avatar-group/avatar-group.component.ts","../../../projects/core/src/lib/tag-input/tag-input.variants.ts","../../../projects/core/src/lib/tag-input/tag-input.component.ts","../../../projects/core/src/lib/popover/popover.directives.ts","../../../projects/core/src/lib/validator/validator.directives.ts","../../../projects/core/src/public-api.ts","../../../projects/core/src/tony-ui-library-core.ts"],"sourcesContent":["import { clsx, type ClassValue } from 'clsx';\r\nimport { twMerge } from 'tailwind-merge';\r\n\r\nexport function cn(...inputs: ClassValue[]): string {\r\n return twMerge(clsx(inputs));\r\n}\r\n","import { Injectable, signal, computed, inject, PLATFORM_ID } from '@angular/core';\r\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\r\nimport { TON_CONFIG } from './sonny-config';\r\n\r\nexport type Theme = 'light' | 'dark' | 'corporate';\r\n\r\nconst STORAGE_KEY = 'ton-theme';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ThemeService {\r\n private readonly document = inject(DOCUMENT);\r\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\r\n private readonly config = inject(TON_CONFIG);\r\n\r\n private readonly _theme = signal<Theme>('light');\r\n\r\n readonly theme = this._theme.asReadonly();\r\n readonly isDark = computed(() => this._theme() === 'dark');\r\n\r\n constructor() {\r\n this.setTheme(this.resolveInitialTheme());\r\n }\r\n\r\n setTheme(theme: Theme): void {\r\n this._theme.set(theme);\r\n\r\n if (!this.isBrowser) return;\r\n\r\n localStorage.setItem(STORAGE_KEY, theme);\r\n\r\n const root = this.document.documentElement;\r\n root.classList.remove('dark');\r\n root.removeAttribute('data-theme');\r\n\r\n if (theme === 'dark') {\r\n root.classList.add('dark');\r\n root.setAttribute('data-theme', 'dark');\r\n } else if (theme !== 'light') {\r\n root.setAttribute('data-theme', theme);\r\n }\r\n }\r\n\r\n toggleDark(): void {\r\n this.setTheme(this._theme() === 'dark' ? 'light' : 'dark');\r\n }\r\n\r\n private resolveInitialTheme(): Theme {\r\n if (this.isBrowser) {\r\n const stored = localStorage.getItem(STORAGE_KEY) as Theme | null;\r\n if (stored) return stored;\r\n }\r\n\r\n const defaultTheme = this.config.defaultTheme ?? 'light';\r\n\r\n if (defaultTheme === 'system') {\r\n if (this.isBrowser && window.matchMedia('(prefers-color-scheme: dark)').matches) {\r\n return 'dark';\r\n }\r\n return 'light';\r\n }\r\n\r\n return defaultTheme;\r\n }\r\n}\r\n","import {\r\n type EnvironmentProviders,\r\n inject,\r\n InjectionToken,\r\n makeEnvironmentProviders,\r\n provideEnvironmentInitializer,\r\n} from '@angular/core';\r\nimport { ThemeService } from './theme.service';\r\n\r\nexport interface TonyConfig {\r\n prefix?: string;\r\n defaultTheme?: 'light' | 'dark' | 'corporate' | 'system';\r\n}\r\n\r\nconst DEFAULT_CONFIG: TonyConfig = { prefix: 'ton', defaultTheme: 'light' };\r\n\r\nexport const TON_CONFIG = new InjectionToken<TonyConfig>('TON_CONFIG', {\r\n providedIn: 'root',\r\n factory: () => DEFAULT_CONFIG,\r\n});\r\n\r\nexport function provideTonyUI(config: Partial<TonyConfig> = {}): EnvironmentProviders {\r\n return makeEnvironmentProviders([\r\n { provide: TON_CONFIG, useValue: { ...DEFAULT_CONFIG, ...config } },\r\n provideEnvironmentInitializer(() => inject(ThemeService)),\r\n ]);\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const buttonVariants = cva(\r\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-sm text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\r\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\r\n outline: 'border border-border bg-background hover:bg-accent hover:text-accent-foreground',\r\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\r\n ghost: 'hover:bg-accent hover:text-accent-foreground',\r\n link: 'text-primary underline-offset-4 hover:underline',\r\n },\r\n size: {\r\n sm: 'h-9 rounded-sm px-3',\r\n md: 'h-10 px-4 py-2',\r\n lg: 'h-11 rounded-sm px-8',\r\n icon: 'h-10 w-10',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n size: 'md',\r\n },\r\n }\r\n);\r\n\r\nexport type ButtonVariant = 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link';\r\nexport type ButtonSize = 'sm' | 'md' | 'lg' | 'icon';\r\n","import { Directive, computed, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport { buttonVariants, type ButtonVariant, type ButtonSize } from './button.variants';\r\n\r\n@Directive({\r\n selector: 'button[tonBtn], a[tonBtn]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n '[attr.aria-disabled]': 'disabled() || loading() || null',\r\n '[attr.disabled]': 'disabled() || loading() || null',\r\n '[attr.tabindex]': '(disabled() || loading()) ? -1 : null',\r\n },\r\n})\r\nexport class TonButtonDirective {\r\n readonly variant = input<ButtonVariant>('default');\r\n readonly size = input<ButtonSize>('md');\r\n readonly disabled = input(false);\r\n readonly loading = input(false);\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n buttonVariants({ variant: this.variant(), size: this.size() }),\r\n this.loading() && 'cursor-wait opacity-70',\r\n this.class()\r\n )\r\n );\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const cardVariants = cva(\r\n 'rounded-sm text-card-foreground',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'bg-card border border-border',\r\n outline: 'border-2 border-border bg-transparent',\r\n elevated: 'bg-card shadow-lg',\r\n ghost: 'bg-transparent',\r\n },\r\n padding: {\r\n none: '',\r\n sm: 'p-4',\r\n md: 'p-6',\r\n lg: 'p-8',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n padding: 'none',\r\n },\r\n }\r\n);\r\n\r\nexport type CardVariant = 'default' | 'outline' | 'elevated' | 'ghost';\r\nexport type CardPadding = 'none' | 'sm' | 'md' | 'lg';\r\n","import { Directive, computed, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport { cardVariants, type CardVariant, type CardPadding } from './card.variants';\r\n\r\n@Directive({\r\n selector: '[tonCard]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonCardDirective {\r\n readonly variant = input<CardVariant>('default');\r\n readonly padding = input<CardPadding>('none');\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(cardVariants({ variant: this.variant(), padding: this.padding() }), this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonCardHeader]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonCardHeaderDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('flex flex-col space-y-1.5 p-6', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonCardTitle]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonCardTitleDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('text-2xl font-semibold leading-none tracking-tight', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonCardDescription]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonCardDescriptionDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('text-sm text-muted-foreground', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonCardContent]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonCardContentDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('p-6 pt-0', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonCardFooter]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonCardFooterDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('flex items-center p-6 pt-0', this.class())\r\n );\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const inputVariants = cva(\r\n 'flex w-full rounded-sm border bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'border-input',\r\n error: 'border-destructive focus-visible:ring-destructive',\r\n success: 'border-green-500 focus-visible:ring-green-500',\r\n },\r\n inputSize: {\r\n sm: 'h-9 text-xs',\r\n md: 'h-10',\r\n lg: 'h-11 text-base',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n inputSize: 'md',\r\n },\r\n }\r\n);\r\n\r\nexport const labelVariants = cva(\r\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\r\n {\r\n variants: {\r\n variant: {\r\n default: '',\r\n error: 'text-destructive',\r\n success: 'text-green-600',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n }\r\n);\r\n\r\nexport type InputVariant = 'default' | 'error' | 'success';\r\nexport type InputSize = 'sm' | 'md' | 'lg';\r\n","import { Directive, computed, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport { inputVariants, type InputVariant, type InputSize } from './input.variants';\r\n\r\n@Directive({\r\n selector: 'input[tonInput], textarea[tonInput]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n '[attr.aria-invalid]': 'variant() === \"error\" || null',\r\n '[attr.aria-describedby]': 'ariaDescribedBy() || null',\r\n },\r\n})\r\nexport class TonInputDirective {\r\n readonly variant = input<InputVariant>('default');\r\n readonly inputSize = input<InputSize>('md');\r\n readonly class = input<string>('');\r\n readonly ariaDescribedBy = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n inputVariants({ variant: this.variant(), inputSize: this.inputSize() }),\r\n this.class()\r\n )\r\n );\r\n}\r\n","import { Directive, computed, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport { labelVariants, type InputVariant } from './input.variants';\r\n\r\n@Directive({\r\n selector: 'label[tonLabel]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonLabelDirective {\r\n readonly variant = input<InputVariant>('default');\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(labelVariants({ variant: this.variant() }), this.class())\r\n );\r\n}\r\n","import { Injectable, signal, computed } from '@angular/core';\r\nimport type { ToastConfig, ToastData } from './toast.variants';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TonToastService {\r\n private readonly _toasts = signal<ToastData[]>([]);\r\n private readonly _timers = new Map<string, ReturnType<typeof setTimeout>>();\r\n private _idCounter = 0;\r\n\r\n readonly toasts = this._toasts.asReadonly();\r\n readonly count = computed(() => this._toasts().length);\r\n\r\n show(config: ToastConfig): string {\r\n const id = `ton-toast-${++this._idCounter}`;\r\n const toast: ToastData = {\r\n id,\r\n variant: 'default',\r\n duration: 5000,\r\n ...config,\r\n };\r\n\r\n this._toasts.update(toasts => [...toasts, toast]);\r\n\r\n if (toast.duration && toast.duration > 0) {\r\n const timer = setTimeout(() => this.dismiss(id), toast.duration);\r\n this._timers.set(id, timer);\r\n }\r\n\r\n return id;\r\n }\r\n\r\n dismiss(id: string): void {\r\n const timer = this._timers.get(id);\r\n if (timer) {\r\n clearTimeout(timer);\r\n this._timers.delete(id);\r\n }\r\n this._toasts.update(toasts => toasts.filter(t => t.id !== id));\r\n }\r\n\r\n dismissAll(): void {\r\n for (const timer of this._timers.values()) {\r\n clearTimeout(timer);\r\n }\r\n this._timers.clear();\r\n this._toasts.set([]);\r\n }\r\n\r\n success(title: string, description?: string): string {\r\n return this.show({ title, description, variant: 'success' });\r\n }\r\n\r\n error(title: string, description?: string): string {\r\n return this.show({ title, description, variant: 'destructive' });\r\n }\r\n\r\n warning(title: string, description?: string): string {\r\n return this.show({ title, description, variant: 'warning' });\r\n }\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const toastVariants = cva(\r\n 'group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-sm border p-6 pr-8 shadow-lg transition-all',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'bg-background border-border text-foreground',\r\n destructive: 'bg-destructive border-destructive text-destructive-foreground',\r\n success: 'bg-green-600 border-green-600 text-white',\r\n warning: 'bg-yellow-500 border-yellow-500 text-white',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n }\r\n);\r\n\r\nexport type ToastVariant = 'default' | 'destructive' | 'success' | 'warning';\r\nexport type ToastPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top-center' | 'bottom-center';\r\n\r\nexport interface ToastAction {\r\n label: string;\r\n onClick: () => void;\r\n}\r\n\r\nexport interface ToastConfig {\r\n title: string;\r\n description?: string;\r\n variant?: ToastVariant;\r\n duration?: number;\r\n action?: ToastAction;\r\n}\r\n\r\nexport interface ToastData extends ToastConfig {\r\n id: string;\r\n}\r\n","import { ChangeDetectionStrategy, Component, inject, input, computed } from '@angular/core';\r\nimport { TonToastService } from './toast.service';\r\nimport { toastVariants, type ToastPosition, type ToastVariant } from './toast.variants';\r\nimport { cn } from '../core/utils/cn';\r\n\r\n@Component({\r\n selector: 'ton-toaster',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n template: `\r\n <div [class]=\"containerClass()\" role=\"region\" aria-label=\"Notifications\" tabindex=\"-1\">\r\n @for (toast of visibleToasts(); track toast.id) {\r\n <div\r\n [class]=\"toastClasses[toast.variant ?? 'default']\"\r\n role=\"alert\"\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n >\r\n <div class=\"grid gap-1\">\r\n <div class=\"text-sm font-semibold\">{{ toast.title }}</div>\r\n @if (toast.description) {\r\n <div class=\"text-sm opacity-90\">{{ toast.description }}</div>\r\n }\r\n </div>\r\n <div class=\"flex items-center gap-2\">\r\n @if (toast.action) {\r\n <button\r\n class=\"inline-flex h-8 shrink-0 items-center justify-center rounded-sm border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary\"\r\n (click)=\"toast.action!.onClick()\"\r\n >\r\n {{ toast.action!.label }}\r\n </button>\r\n }\r\n <button\r\n class=\"absolute right-2 top-2 rounded-sm p-1 opacity-0 transition-opacity hover:opacity-100 group-hover:opacity-100 focus:opacity-100\"\r\n aria-label=\"Close\"\r\n (click)=\"dismiss(toast.id)\"\r\n >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>\r\n </button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n `,\r\n})\r\nexport class TonToasterComponent {\r\n private readonly toastService = inject(TonToastService);\r\n\r\n readonly position = input<ToastPosition>('bottom-right');\r\n readonly maxToasts = input(5);\r\n\r\n readonly visibleToasts = computed(() =>\r\n this.toastService.toasts().slice(-this.maxToasts())\r\n );\r\n\r\n readonly containerClass = computed(() => {\r\n const pos = this.position();\r\n const base = 'fixed z-[100] flex max-h-screen w-full flex-col-reverse gap-2 p-4 sm:max-w-[420px]';\r\n const posMap: Record<ToastPosition, string> = {\r\n 'top-right': 'top-0 right-0',\r\n 'top-left': 'top-0 left-0',\r\n 'bottom-right': 'bottom-0 right-0',\r\n 'bottom-left': 'bottom-0 left-0',\r\n 'top-center': 'top-0 left-1/2 -translate-x-1/2',\r\n 'bottom-center': 'bottom-0 left-1/2 -translate-x-1/2',\r\n };\r\n return cn(base, posMap[pos]);\r\n });\r\n\r\n /** Pre-computed toast classes by variant — avoids method calls in the template. */\r\n readonly toastClasses: Record<ToastVariant, string> = {\r\n default: cn(toastVariants({ variant: 'default' })),\r\n destructive: cn(toastVariants({ variant: 'destructive' })),\r\n success: cn(toastVariants({ variant: 'success' })),\r\n warning: cn(toastVariants({ variant: 'warning' })),\r\n };\r\n\r\n dismiss(id: string): void {\r\n this.toastService.dismiss(id);\r\n }\r\n}\r\n","import type { Observable } from 'rxjs';\r\n\r\n/** Structural interface for the subset of CDK DialogRef we consume. */\r\ninterface CdkDialogRefLike<R> {\r\n close(result?: R): void;\r\n readonly closed: Observable<R | undefined>;\r\n}\r\n\r\nexport class TonDialogRef<R = unknown> {\r\n constructor(private readonly cdkRef: CdkDialogRefLike<R>) {}\r\n\r\n close(result?: R): void {\r\n this.cdkRef.close(result);\r\n }\r\n\r\n get closed(): Observable<R | undefined> {\r\n return this.cdkRef.closed;\r\n }\r\n}\r\n","export interface TonDialogConfig {\r\n width?: string;\r\n maxWidth?: string;\r\n closeOnBackdrop?: boolean;\r\n closeOnEsc?: boolean;\r\n data?: unknown;\r\n ariaLabelledBy?: string;\r\n ariaDescribedBy?: string;\r\n}\r\n\r\nexport const DEFAULT_DIALOG_CONFIG: TonDialogConfig = {\r\n width: '28rem',\r\n maxWidth: '90vw',\r\n closeOnBackdrop: true,\r\n closeOnEsc: true,\r\n};\r\n","import { Injectable, inject, InjectionToken } from '@angular/core';\r\nimport { Dialog, DialogRef as CdkDialogRef } from '@angular/cdk/dialog';\r\nimport type { ComponentType } from '@angular/cdk/overlay';\r\nimport { TonDialogRef } from './dialog-ref';\r\nimport { DEFAULT_DIALOG_CONFIG, type TonDialogConfig } from './dialog.types';\r\n\r\nexport const TON_DIALOG_DATA = new InjectionToken<unknown>('TON_DIALOG_DATA');\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TonDialogService {\r\n private readonly cdkDialog = inject(Dialog);\r\n\r\n open<T, R = unknown>(\r\n component: ComponentType<T>,\r\n config: TonDialogConfig = {}\r\n ): TonDialogRef<R> {\r\n const merged = { ...DEFAULT_DIALOG_CONFIG, ...config };\r\n\r\n // CDK's disableClose controls both backdrop and ESC together.\r\n // To support independent closeOnBackdrop / closeOnEsc, we disable both\r\n // at the CDK level and handle them manually.\r\n const disableClose = !merged.closeOnBackdrop || !merged.closeOnEsc;\r\n\r\n const cdkRef: CdkDialogRef<R, T> = this.cdkDialog.open(component, {\r\n width: merged.width,\r\n maxWidth: merged.maxWidth,\r\n disableClose,\r\n hasBackdrop: true,\r\n backdropClass: 'ton-dialog-backdrop',\r\n panelClass: 'ton-dialog-panel',\r\n ariaLabelledBy: merged.ariaLabelledBy,\r\n ariaDescribedBy: merged.ariaDescribedBy,\r\n data: merged.data,\r\n providers: merged.data != null\r\n ? [{ provide: TON_DIALOG_DATA, useValue: merged.data }]\r\n : [],\r\n });\r\n\r\n // When CDK disableClose is true, manually handle backdrop/ESC based on config\r\n if (disableClose) {\r\n if (merged.closeOnBackdrop) {\r\n const sub = cdkRef.backdropClick.subscribe(() => cdkRef.close());\r\n cdkRef.closed.subscribe(() => sub.unsubscribe());\r\n }\r\n if (merged.closeOnEsc) {\r\n const sub = cdkRef.keydownEvents.subscribe(event => {\r\n if (event.key === 'Escape') {\r\n cdkRef.close();\r\n }\r\n });\r\n cdkRef.closed.subscribe(() => sub.unsubscribe());\r\n }\r\n }\r\n\r\n return new TonDialogRef<R>(cdkRef);\r\n }\r\n\r\n closeAll(): void {\r\n this.cdkDialog.closeAll();\r\n }\r\n}\r\n","import { Directive, computed, input, inject } from '@angular/core';\r\nimport { DialogRef } from '@angular/cdk/dialog';\r\nimport { cn } from '../core/utils/cn';\r\n\r\n@Directive({\r\n selector: '[tonDialogHeader]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonDialogHeaderDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('flex flex-col space-y-1.5 text-center sm:text-left px-6 pt-6 shrink-0', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonDialogTitle]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonDialogTitleDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('text-lg font-semibold leading-none tracking-tight', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonDialogDescription]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonDialogDescriptionDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('text-sm text-muted-foreground', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonDialogContent]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonDialogContentDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n 'flex-1 overflow-y-auto px-6 py-4',\r\n this.class()\r\n )\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonDialogFooter]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonDialogFooterDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2 px-6 pb-6 shrink-0', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonDialogClose]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n '(click)': 'onClick()',\r\n },\r\n})\r\nexport class TonDialogCloseDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n 'absolute right-4 top-4 z-10 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none cursor-pointer',\r\n this.class()\r\n )\r\n );\r\n\r\n private readonly dialogRef = inject(DialogRef, { optional: true });\r\n\r\n onClick(): void {\r\n this.dialogRef?.close();\r\n }\r\n}\r\n","import { Directive, ElementRef, computed, inject, input, signal, InjectionToken } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\n\r\nexport const TON_ACCORDION = new InjectionToken<TonAccordionDirective>('TonAccordion');\r\nexport const TON_ACCORDION_ITEM = new InjectionToken<TonAccordionItemDirective>('TonAccordionItem');\r\n\r\n@Directive({\r\n selector: '[tonAccordion]',\r\n exportAs: 'tonAccordion',\r\n providers: [{ provide: TON_ACCORDION, useExisting: TonAccordionDirective }],\r\n host: {\r\n '[class]': 'computedClass()',\r\n '(keydown)': 'onKeydown($event)',\r\n },\r\n})\r\nexport class TonAccordionDirective {\r\n readonly multi = input(false);\r\n readonly class = input<string>('');\r\n\r\n private readonly elRef = inject(ElementRef);\r\n private readonly _openItems = signal(new Set<string>());\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn('divide-y divide-border', this.class())\r\n );\r\n\r\n isOpen(id: string): boolean {\r\n return this._openItems().has(id);\r\n }\r\n\r\n toggle(id: string): void {\r\n this._openItems.update(set => {\r\n const next = new Set(set);\r\n if (next.has(id)) {\r\n next.delete(id);\r\n } else {\r\n if (!this.multi()) next.clear();\r\n next.add(id);\r\n }\r\n return next;\r\n });\r\n }\r\n\r\n onKeydown(event: KeyboardEvent): void {\r\n const target = event.target as HTMLElement;\r\n if (!target.hasAttribute('tonaccordiontrigger') && !target.closest('[tonAccordionTrigger]')) return;\r\n\r\n const triggers = Array.from(\r\n (this.elRef.nativeElement as HTMLElement).querySelectorAll<HTMLElement>('[tonAccordionTrigger]')\r\n );\r\n if (triggers.length === 0) return;\r\n\r\n const currentIndex = triggers.indexOf(target.closest('[tonAccordionTrigger]') as HTMLElement || target);\r\n if (currentIndex === -1) return;\r\n\r\n let nextIndex: number | null = null;\r\n switch (event.key) {\r\n case 'ArrowDown':\r\n event.preventDefault();\r\n nextIndex = (currentIndex + 1) % triggers.length;\r\n break;\r\n case 'ArrowUp':\r\n event.preventDefault();\r\n nextIndex = (currentIndex - 1 + triggers.length) % triggers.length;\r\n break;\r\n case 'Home':\r\n event.preventDefault();\r\n nextIndex = 0;\r\n break;\r\n case 'End':\r\n event.preventDefault();\r\n nextIndex = triggers.length - 1;\r\n break;\r\n }\r\n if (nextIndex !== null) {\r\n triggers[nextIndex].focus();\r\n }\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[tonAccordionItem]',\r\n exportAs: 'tonAccordionItem',\r\n providers: [{ provide: TON_ACCORDION_ITEM, useExisting: TonAccordionItemDirective }],\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonAccordionItemDirective {\r\n readonly value = input.required<string>();\r\n readonly class = input<string>('');\r\n private readonly accordion = inject(TON_ACCORDION);\r\n\r\n readonly isOpen = computed(() => this.accordion.isOpen(this.value()));\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn('', this.class())\r\n );\r\n\r\n toggle(): void {\r\n this.accordion.toggle(this.value());\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[tonAccordionTrigger]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n '[attr.aria-expanded]': 'item.isOpen()',\r\n 'tabindex': '0',\r\n '(click)': 'item.toggle()',\r\n },\r\n})\r\nexport class TonAccordionTriggerDirective {\r\n readonly class = input<string>('');\r\n readonly item = inject(TON_ACCORDION_ITEM);\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n 'flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline cursor-pointer [&>svg]:transition-transform',\r\n this.item.isOpen() && '[&>svg]:rotate-180',\r\n this.class()\r\n )\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonAccordionContent]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n role: 'region',\r\n },\r\n})\r\nexport class TonAccordionContentDirective {\r\n readonly class = input<string>('');\r\n readonly item = inject(TON_ACCORDION_ITEM);\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n 'grid transition-all duration-200',\r\n this.item.isOpen() ? 'grid-rows-[1fr] opacity-100 pb-4' : 'grid-rows-[0fr] opacity-0 overflow-hidden',\r\n this.class()\r\n )\r\n );\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const avatarVariants = cva(\r\n 'relative inline-flex shrink-0 items-center justify-center overflow-hidden bg-muted',\r\n {\r\n variants: {\r\n size: {\r\n sm: 'h-8 w-8 text-xs',\r\n md: 'h-10 w-10 text-sm',\r\n lg: 'h-12 w-12 text-base',\r\n xl: 'h-16 w-16 text-lg',\r\n },\r\n variant: {\r\n circle: 'rounded-full',\r\n rounded: 'rounded-md',\r\n },\r\n },\r\n defaultVariants: {\r\n size: 'md',\r\n variant: 'circle',\r\n },\r\n }\r\n);\r\n\r\nexport type AvatarSize = 'sm' | 'md' | 'lg' | 'xl';\r\nexport type AvatarVariant = 'circle' | 'rounded';\r\n","import { ChangeDetectionStrategy, Component, computed, input, signal } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport { avatarVariants, type AvatarSize, type AvatarVariant } from './avatar.variants';\r\n\r\n@Component({\r\n selector: 'ton-avatar',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { '[class]': 'computedClass()' },\r\n template: `\r\n @if (src() && !error()) {\r\n <img\r\n [src]=\"src()\"\r\n [alt]=\"alt()\"\r\n class=\"aspect-square h-full w-full object-cover\"\r\n (error)=\"error.set(true)\"\r\n />\r\n } @else {\r\n <span class=\"font-medium text-muted-foreground\">{{ fallbackText() }}</span>\r\n }\r\n `,\r\n})\r\nexport class TonAvatarComponent {\r\n readonly src = input<string>('');\r\n readonly alt = input<string>('');\r\n readonly fallback = input<string>('');\r\n readonly size = input<AvatarSize>('md');\r\n readonly variant = input<AvatarVariant>('circle');\r\n readonly class = input<string>('');\r\n\r\n readonly error = signal(false);\r\n\r\n protected readonly fallbackText = computed(() => {\r\n const fb = this.fallback();\r\n if (fb) return fb;\r\n const a = this.alt();\r\n if (a) return a.split(' ').map(w => w[0]).join('').toUpperCase().slice(0, 2);\r\n return '?';\r\n });\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(avatarVariants({ size: this.size(), variant: this.variant() }), this.class())\r\n );\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const badgeVariants = cva(\r\n 'inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'border-transparent bg-primary text-primary-foreground',\r\n secondary: 'border-transparent bg-secondary text-secondary-foreground',\r\n outline: 'border-border text-foreground',\r\n destructive: 'border-transparent bg-destructive text-destructive-foreground',\r\n success: 'border-transparent bg-green-600 text-white dark:bg-green-500',\r\n warning: 'border-transparent bg-yellow-500 text-white dark:bg-yellow-400 dark:text-black',\r\n },\r\n size: {\r\n sm: 'px-2 py-0.5 text-[10px]',\r\n md: 'px-2.5 py-0.5 text-xs',\r\n lg: 'px-3 py-1 text-sm',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n size: 'md',\r\n },\r\n }\r\n);\r\n\r\nexport type BadgeVariant = 'default' | 'secondary' | 'outline' | 'destructive' | 'success' | 'warning';\r\nexport type BadgeSize = 'sm' | 'md' | 'lg';\r\n","import { Directive, computed, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport { badgeVariants, type BadgeVariant, type BadgeSize } from './badge.variants';\r\n\r\n@Directive({\r\n selector: '[tonBadge]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonBadgeDirective {\r\n readonly variant = input<BadgeVariant>('default');\r\n readonly size = input<BadgeSize>('md');\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(badgeVariants({ variant: this.variant(), size: this.size() }), this.class())\r\n );\r\n}\r\n","import { Directive, computed, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\n\r\n@Directive({\r\n selector: 'nav[tonBreadcrumb]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n 'aria-label': 'Breadcrumb',\r\n },\r\n})\r\nexport class TonBreadcrumbDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() => cn('', this.class()));\r\n}\r\n\r\n@Directive({\r\n selector: 'ol[tonBreadcrumbList]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonBreadcrumbListDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: 'li[tonBreadcrumbItem]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonBreadcrumbItemDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('inline-flex items-center gap-1.5', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonBreadcrumbLink]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonBreadcrumbLinkDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('transition-colors hover:text-foreground', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonBreadcrumbSeparator]',\r\n host: {\r\n role: 'presentation',\r\n '[aria-hidden]': 'true',\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonBreadcrumbSeparatorDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('[&>svg]:size-3.5 text-muted-foreground', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonBreadcrumbPage]',\r\n host: {\r\n role: 'link',\r\n 'aria-disabled': 'true',\r\n '[attr.aria-current]': '\"page\"',\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonBreadcrumbPageDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('font-normal text-foreground', this.class())\r\n );\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const buttonGroupVariants = cva(\r\n 'inline-flex [&>*:not(:first-child):not(:last-child)]:rounded-none [&>*:first-child:not(:last-child)]:rounded-r-none [&>*:last-child:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:-ml-px',\r\n {\r\n variants: {\r\n orientation: {\r\n horizontal: 'flex-row',\r\n vertical: 'flex-col [&>*:not(:first-child):not(:last-child)]:rounded-none [&>*:first-child:not(:last-child)]:rounded-b-none [&>*:first-child:not(:last-child)]:rounded-r-sm [&>*:last-child:not(:first-child)]:rounded-t-none [&>*:last-child:not(:first-child)]:rounded-l-sm [&>*:not(:first-child)]:-mt-px [&>*:not(:first-child)]:ml-0',\r\n },\r\n },\r\n defaultVariants: {\r\n orientation: 'horizontal',\r\n },\r\n }\r\n);\r\n\r\nexport type ButtonGroupOrientation = 'horizontal' | 'vertical';\r\n","import { Directive, computed, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport { buttonGroupVariants, type ButtonGroupOrientation } from './button-group.variants';\r\n\r\n@Directive({\r\n selector: '[tonButtonGroup]',\r\n host: {\r\n role: 'group',\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonButtonGroupDirective {\r\n readonly orientation = input<ButtonGroupOrientation>('horizontal');\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(buttonGroupVariants({ orientation: this.orientation() }), this.class())\r\n );\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const checkboxVariants = cva(\r\n 'peer appearance-none shrink-0 rounded-sm border border-border bg-background transition-colors checked:bg-primary checked:border-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\r\n {\r\n variants: {\r\n size: {\r\n sm: 'h-3.5 w-3.5',\r\n md: 'h-4 w-4',\r\n lg: 'h-5 w-5',\r\n },\r\n },\r\n defaultVariants: {\r\n size: 'md',\r\n },\r\n }\r\n);\r\n\r\nexport type CheckboxSize = 'sm' | 'md' | 'lg';\r\n","import { Directive, computed, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport { checkboxVariants, type CheckboxSize } from './checkbox.variants';\r\n\r\n@Directive({\r\n selector: 'input[type=\"checkbox\"][tonCheckbox]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonCheckboxDirective {\r\n readonly size = input<CheckboxSize>('md');\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(checkboxVariants({ size: this.size() }), this.class())\r\n );\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const comboboxTriggerVariants = cva(\r\n 'inline-flex w-full items-center justify-between whitespace-nowrap rounded-sm border border-border bg-background px-3 py-2 text-sm ring-offset-background transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\r\n {\r\n variants: {\r\n size: {\r\n sm: 'h-9 text-xs',\r\n md: 'h-10 text-sm',\r\n lg: 'h-11 text-base',\r\n },\r\n },\r\n defaultVariants: {\r\n size: 'md',\r\n },\r\n }\r\n);\r\n\r\nexport type ComboboxSize = 'sm' | 'md' | 'lg';\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n ElementRef,\r\n forwardRef,\r\n inject,\r\n input,\r\n model,\r\n OnDestroy,\r\n signal,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { cn } from '../core/utils/cn';\r\nimport { comboboxTriggerVariants, type ComboboxSize } from './combobox.variants';\r\n\r\nexport interface ComboboxOption {\r\n value: string;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'ton-combobox',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'relative inline-block w-full',\r\n '(document:click)': 'onDocumentClick($event)',\r\n },\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TonComboboxComponent), multi: true },\r\n ],\r\n template: `\r\n <!-- Trigger button -->\r\n <button\r\n #triggerEl\r\n type=\"button\"\r\n role=\"combobox\"\r\n [attr.aria-expanded]=\"open()\"\r\n aria-haspopup=\"listbox\"\r\n [class]=\"triggerClass()\"\r\n (click)=\"toggle()\"\r\n (blur)=\"onTouched()\"\r\n >\r\n <span [class]=\"selectedLabel() ? '' : 'text-muted-foreground'\">\r\n {{ selectedLabel() || placeholder() }}\r\n </span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"shrink-0 opacity-50\"><path d=\"m7 15 5 5 5-5\"/><path d=\"m7 9 5-5 5 5\"/></svg>\r\n </button>\r\n\r\n <!-- Dropdown popover -->\r\n @if (open()) {\r\n <div\r\n #dropdownEl\r\n class=\"fixed z-50 rounded-sm border border-border bg-popover text-popover-foreground shadow-md\"\r\n >\r\n <!-- Search input -->\r\n <div class=\"flex items-center border-b border-border px-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"mr-2 shrink-0 opacity-50\"><circle cx=\"11\" cy=\"11\" r=\"8\"/><path d=\"m21 21-4.3-4.3\"/></svg>\r\n <input\r\n #searchEl\r\n type=\"text\"\r\n class=\"flex h-10 w-full bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground\"\r\n [placeholder]=\"searchPlaceholder()\"\r\n [value]=\"query()\"\r\n (input)=\"onSearchInput($event)\"\r\n (keydown)=\"onKeydown($event)\"\r\n />\r\n </div>\r\n\r\n <!-- Options list -->\r\n @if (filtered().length > 0) {\r\n <ul role=\"listbox\" class=\"max-h-60 overflow-auto p-1 ton-scrollbar\">\r\n @for (opt of filtered(); track opt.value; let i = $index) {\r\n <li\r\n role=\"option\"\r\n [id]=\"'ton-cb-opt-' + opt.value\"\r\n [attr.aria-selected]=\"value() === opt.value\"\r\n [class]=\"optionClass(i)\"\r\n (mousedown)=\"select(opt); $event.preventDefault()\"\r\n (mouseenter)=\"activeIndex.set(i)\"\r\n >\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\"\r\n fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\r\n [class]=\"value() === opt.value ? 'mr-2 shrink-0 opacity-100' : 'mr-2 shrink-0 opacity-0'\"\r\n ><path d=\"M20 6 9 17l-5-5\"/></svg>\r\n {{ opt.label }}\r\n </li>\r\n }\r\n </ul>\r\n } @else {\r\n <div class=\"py-6 text-center text-sm text-muted-foreground\">No results found.</div>\r\n }\r\n </div>\r\n }\r\n `,\r\n})\r\nexport class TonComboboxComponent implements ControlValueAccessor, OnDestroy {\r\n readonly options = input<ComboboxOption[]>([]);\r\n readonly placeholder = input('Select...');\r\n readonly searchPlaceholder = input('Search...');\r\n readonly size = input<ComboboxSize>('md');\r\n readonly class = input<string>('');\r\n readonly value = model<string>('');\r\n\r\n readonly open = signal(false);\r\n readonly query = signal('');\r\n readonly activeIndex = signal(0);\r\n\r\n private readonly _disabledByCva = signal(false);\r\n\r\n private readonly triggerRef = viewChild<ElementRef<HTMLButtonElement>>('triggerEl');\r\n private readonly searchRef = viewChild<ElementRef<HTMLInputElement>>('searchEl');\r\n private readonly dropdownRef = viewChild<ElementRef<HTMLDivElement>>('dropdownEl');\r\n private readonly elRef = inject(ElementRef);\r\n\r\n private scrollHandler: (() => void) | null = null;\r\n private resizeHandler: (() => void) | null = null;\r\n\r\n private _onChange: (value: string) => void = () => {};\r\n protected onTouched: () => void = () => {};\r\n\r\n writeValue(val: string): void {\r\n this.value.set(val ?? '');\r\n }\r\n\r\n registerOnChange(fn: (value: string) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(_isDisabled: boolean): void {\r\n this._disabledByCva.set(_isDisabled);\r\n }\r\n\r\n readonly selectedLabel = computed(() => {\r\n const v = this.value();\r\n if (!v) return '';\r\n const opt = this.options().find(o => o.value === v);\r\n return opt?.label ?? '';\r\n });\r\n\r\n readonly filtered = computed(() => {\r\n const q = this.query().toLowerCase();\r\n if (!q) return this.options();\r\n return this.options().filter(o => o.label.toLowerCase().includes(q));\r\n });\r\n\r\n protected readonly triggerClass = computed(() =>\r\n cn(comboboxTriggerVariants({ size: this.size() }), this.class())\r\n );\r\n\r\n optionClass(index: number): string {\r\n const base = 'relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors';\r\n const active = index === this.activeIndex() ? 'bg-accent text-accent-foreground' : 'hover:bg-accent/50';\r\n return cn(base, active);\r\n }\r\n\r\n private updateDropdownPosition(): void {\r\n const trigger = this.triggerRef()?.nativeElement;\r\n if (!trigger) return;\r\n const rect = trigger.getBoundingClientRect();\r\n const dropdown = this.dropdownRef()?.nativeElement;\r\n if (dropdown) {\r\n dropdown.style.top = `${rect.bottom + 4}px`;\r\n dropdown.style.left = `${rect.left}px`;\r\n dropdown.style.width = `${rect.width}px`;\r\n }\r\n }\r\n\r\n private addGlobalListeners(): void {\r\n this.removeGlobalListeners();\r\n this.scrollHandler = () => {\r\n requestAnimationFrame(() => this.updateDropdownPosition());\r\n };\r\n this.resizeHandler = () => {\r\n requestAnimationFrame(() => this.updateDropdownPosition());\r\n };\r\n document.addEventListener('scroll', this.scrollHandler, { capture: true, passive: true });\r\n window.addEventListener('resize', this.resizeHandler, { passive: true });\r\n }\r\n\r\n private removeGlobalListeners(): void {\r\n if (this.scrollHandler) {\r\n document.removeEventListener('scroll', this.scrollHandler, { capture: true } as EventListenerOptions);\r\n this.scrollHandler = null;\r\n }\r\n if (this.resizeHandler) {\r\n window.removeEventListener('resize', this.resizeHandler);\r\n this.resizeHandler = null;\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.removeGlobalListeners();\r\n }\r\n\r\n toggle(): void {\r\n if (this.open()) {\r\n this.close();\r\n } else {\r\n this.updateDropdownPosition();\r\n this.open.set(true);\r\n this.query.set('');\r\n this.activeIndex.set(0);\r\n this.addGlobalListeners();\r\n setTimeout(() => {\r\n this.updateDropdownPosition();\r\n this.searchRef()?.nativeElement.focus();\r\n });\r\n }\r\n }\r\n\r\n close(): void {\r\n this.open.set(false);\r\n this.query.set('');\r\n this.removeGlobalListeners();\r\n }\r\n\r\n onSearchInput(event: Event): void {\r\n const val = (event.target as HTMLInputElement).value;\r\n this.query.set(val);\r\n this.activeIndex.set(0);\r\n }\r\n\r\n select(opt: ComboboxOption): void {\r\n this.value.set(opt.value);\r\n this._onChange(opt.value);\r\n this.close();\r\n }\r\n\r\n onKeydown(event: KeyboardEvent): void {\r\n const items = this.filtered();\r\n switch (event.key) {\r\n case 'ArrowDown':\r\n event.preventDefault();\r\n this.activeIndex.update(i => Math.min(i + 1, items.length - 1));\r\n break;\r\n case 'ArrowUp':\r\n event.preventDefault();\r\n this.activeIndex.update(i => Math.max(i - 1, 0));\r\n break;\r\n case 'Enter':\r\n event.preventDefault();\r\n if (items[this.activeIndex()]) {\r\n this.select(items[this.activeIndex()]);\r\n }\r\n break;\r\n case 'Escape':\r\n this.close();\r\n break;\r\n }\r\n }\r\n\r\n onDocumentClick(event: MouseEvent): void {\r\n if (!this.elRef.nativeElement.contains(event.target)) {\r\n this.close();\r\n }\r\n }\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const skeletonVariants = cva(\r\n 'animate-pulse bg-muted block',\r\n {\r\n variants: {\r\n variant: {\r\n line: 'rounded-sm',\r\n circular: 'rounded-full aspect-square',\r\n rounded: 'rounded-lg',\r\n },\r\n size: {\r\n sm: 'h-4',\r\n md: 'h-6',\r\n lg: 'h-8',\r\n xl: 'h-12',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'line',\r\n size: 'md',\r\n },\r\n }\r\n);\r\n\r\nexport type SkeletonVariant = 'line' | 'circular' | 'rounded';\r\nexport type SkeletonSize = 'sm' | 'md' | 'lg' | 'xl';\r\n","import { Directive, computed, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport { skeletonVariants, type SkeletonVariant, type SkeletonSize } from './skeleton.variants';\r\n\r\n@Directive({\r\n selector: '[tonSkeleton]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n 'aria-busy': 'true',\r\n 'aria-hidden': 'true',\r\n },\r\n})\r\nexport class TonSkeletonDirective {\r\n readonly variant = input<SkeletonVariant>('line');\r\n readonly size = input<SkeletonSize>('md');\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(skeletonVariants({ variant: this.variant(), size: this.size() }), this.class())\r\n );\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const radioVariants = cva(\r\n 'appearance-none rounded-full border border-border bg-background transition-colors checked:border-primary checked:shadow-[inset_0_0_0_3px] checked:shadow-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\r\n {\r\n variants: {\r\n size: {\r\n sm: 'h-3.5 w-3.5',\r\n md: 'h-4 w-4',\r\n lg: 'h-5 w-5',\r\n },\r\n },\r\n defaultVariants: {\r\n size: 'md',\r\n },\r\n }\r\n);\r\n\r\nexport type RadioSize = 'sm' | 'md' | 'lg';\r\n","import { Directive, computed, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport { radioVariants, type RadioSize } from './radio.variants';\r\n\r\n@Directive({\r\n selector: 'input[type=\"radio\"][tonRadio]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonRadioDirective {\r\n readonly size = input<RadioSize>('md');\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(radioVariants({ size: this.size() }), this.class())\r\n );\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const switchTrackVariants = cva(\r\n 'peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\r\n {\r\n variants: {\r\n size: {\r\n sm: 'h-5 w-9',\r\n md: 'h-6 w-11',\r\n lg: 'h-7 w-14',\r\n },\r\n },\r\n defaultVariants: {\r\n size: 'md',\r\n },\r\n }\r\n);\r\n\r\nexport const switchThumbSize: Record<string, string> = {\r\n sm: 'h-4 w-4',\r\n md: 'h-5 w-5',\r\n lg: 'h-6 w-6',\r\n};\r\n\r\nexport const switchThumbTranslate: Record<string, string> = {\r\n sm: 'translate-x-4',\r\n md: 'translate-x-5',\r\n lg: 'translate-x-7',\r\n};\r\n\r\nexport type SwitchSize = 'sm' | 'md' | 'lg';\r\n","import { ChangeDetectionStrategy, Component, computed, forwardRef, input, model, signal } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { cn } from '../core/utils/cn';\r\nimport { switchTrackVariants, switchThumbSize, switchThumbTranslate, type SwitchSize } from './switch.variants';\r\n\r\n@Component({\r\n selector: 'ton-switch',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'inline-flex' },\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TonSwitchComponent), multi: true },\r\n ],\r\n template: `\r\n <button\r\n type=\"button\"\r\n role=\"switch\"\r\n [attr.aria-checked]=\"checked()\"\r\n [disabled]=\"isDisabled()\"\r\n [class]=\"trackClass()\"\r\n (click)=\"toggle()\"\r\n (blur)=\"onTouched()\"\r\n >\r\n <span [class]=\"thumbClass()\"></span>\r\n </button>\r\n `,\r\n})\r\nexport class TonSwitchComponent implements ControlValueAccessor {\r\n readonly checked = model(false);\r\n readonly disabled = input(false);\r\n readonly size = input<SwitchSize>('md');\r\n readonly class = input<string>('');\r\n\r\n private readonly _disabledByCva = signal(false);\r\n protected readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\r\n\r\n private _onChange: (value: boolean) => void = () => {};\r\n protected onTouched: () => void = () => {};\r\n\r\n writeValue(val: boolean): void {\r\n this.checked.set(val ?? false);\r\n }\r\n\r\n registerOnChange(fn: (value: boolean) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._disabledByCva.set(isDisabled);\r\n }\r\n\r\n toggle(): void {\r\n const newVal = !this.checked();\r\n this.checked.set(newVal);\r\n this._onChange(newVal);\r\n }\r\n\r\n protected readonly trackClass = computed(() =>\r\n cn(\r\n switchTrackVariants({ size: this.size() }),\r\n this.checked() ? 'bg-primary' : 'bg-input',\r\n this.class()\r\n )\r\n );\r\n\r\n protected readonly thumbClass = computed(() =>\r\n cn(\r\n 'pointer-events-none block rounded-full bg-background shadow-lg ring-0 transition-transform',\r\n switchThumbSize[this.size()],\r\n this.checked() ? switchThumbTranslate[this.size()] : 'translate-x-0'\r\n )\r\n );\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const toggleVariants = cva(\r\n 'inline-flex items-center justify-center rounded-sm text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'bg-transparent hover:bg-muted hover:text-muted-foreground',\r\n outline: 'border border-border bg-transparent hover:bg-accent hover:text-accent-foreground',\r\n },\r\n size: {\r\n sm: 'h-9 px-2.5',\r\n md: 'h-10 px-3',\r\n lg: 'h-11 px-5',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n size: 'md',\r\n },\r\n }\r\n);\r\n\r\nexport type ToggleVariant = 'default' | 'outline';\r\nexport type ToggleSize = 'sm' | 'md' | 'lg';\r\n","import { Directive, computed, forwardRef, input, model, signal } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { cn } from '../core/utils/cn';\r\nimport { toggleVariants, type ToggleVariant, type ToggleSize } from './toggle.variants';\r\n\r\n@Directive({\r\n selector: 'button[tonToggle]',\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TonToggleDirective), multi: true },\r\n ],\r\n host: {\r\n '[class]': 'computedClass()',\r\n '[attr.aria-pressed]': 'pressed()',\r\n '[attr.disabled]': 'isDisabled() || null',\r\n '(click)': 'toggle()',\r\n '(blur)': 'onTouched()',\r\n },\r\n})\r\nexport class TonToggleDirective implements ControlValueAccessor {\r\n readonly variant = input<ToggleVariant>('default');\r\n readonly size = input<ToggleSize>('md');\r\n readonly pressed = model(false);\r\n readonly class = input<string>('');\r\n\r\n private readonly _disabledByCva = signal(false);\r\n protected readonly isDisabled = computed(() => this._disabledByCva());\r\n\r\n private _onChange: (value: boolean) => void = () => {};\r\n protected onTouched: () => void = () => {};\r\n\r\n writeValue(val: boolean): void {\r\n this.pressed.set(val ?? false);\r\n }\r\n\r\n registerOnChange(fn: (value: boolean) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._disabledByCva.set(isDisabled);\r\n }\r\n\r\n protected toggle(): void {\r\n if (this.isDisabled()) return;\r\n const newVal = !this.pressed();\r\n this.pressed.set(newVal);\r\n this._onChange(newVal);\r\n }\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n toggleVariants({ variant: this.variant(), size: this.size() }),\r\n this.pressed() ? 'bg-accent text-accent-foreground' : '',\r\n this.class()\r\n )\r\n );\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const sliderTrackVariants = cva(\r\n 'relative w-full rounded-full bg-secondary cursor-pointer',\r\n {\r\n variants: {\r\n size: {\r\n sm: 'h-1.5',\r\n md: 'h-2',\r\n lg: 'h-3',\r\n },\r\n },\r\n defaultVariants: {\r\n size: 'md',\r\n },\r\n }\r\n);\r\n\r\nexport const sliderThumbSize: Record<string, string> = {\r\n sm: 'h-4 w-4',\r\n md: 'h-5 w-5',\r\n lg: 'h-6 w-6',\r\n};\r\n\r\nexport type SliderSize = 'sm' | 'md' | 'lg';\r\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, forwardRef, input, model, OnDestroy, signal, viewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { cn } from '../core/utils/cn';\r\nimport { sliderTrackVariants, sliderThumbSize, type SliderSize } from './slider.variants';\r\n\r\n@Component({\r\n selector: 'ton-slider',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'block',\r\n '(keydown)': 'onKeydown($event)',\r\n },\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TonSliderComponent), multi: true },\r\n ],\r\n template: `\r\n <div\r\n #trackEl\r\n [class]=\"trackClass()\"\r\n (mousedown)=\"onTrackMousedown($event)\"\r\n (touchstart)=\"onTrackTouchstart($event)\"\r\n >\r\n <div class=\"absolute h-full rounded-full bg-primary\" [style.width.%]=\"percentage()\"></div>\r\n <button\r\n type=\"button\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"value()\"\r\n [disabled]=\"isDisabled()\"\r\n [class]=\"thumbClass()\"\r\n [style.left.%]=\"percentage()\"\r\n tabindex=\"0\"\r\n (blur)=\"onTouched()\"\r\n ></button>\r\n </div>\r\n `,\r\n})\r\nexport class TonSliderComponent implements ControlValueAccessor, OnDestroy {\r\n readonly value = model(0);\r\n readonly min = input(0);\r\n readonly max = input(100);\r\n readonly step = input(1);\r\n readonly disabled = input(false);\r\n readonly size = input<SliderSize>('md');\r\n readonly class = input<string>('');\r\n\r\n private readonly _disabledByCva = signal(false);\r\n protected readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\r\n\r\n private readonly trackRef = viewChild<ElementRef<HTMLDivElement>>('trackEl');\r\n private moveHandler: ((e: MouseEvent | TouchEvent) => void) | null = null;\r\n private upHandler: (() => void) | null = null;\r\n\r\n private _onChange: (value: number) => void = () => {};\r\n protected onTouched: () => void = () => {};\r\n\r\n writeValue(val: number): void {\r\n this.value.set(val ?? 0);\r\n }\r\n\r\n registerOnChange(fn: (value: number) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._disabledByCva.set(isDisabled);\r\n }\r\n\r\n protected readonly percentage = computed(() => {\r\n const range = this.max() - this.min();\r\n if (range <= 0) return 0;\r\n return ((this.value() - this.min()) / range) * 100;\r\n });\r\n\r\n protected readonly trackClass = computed(() =>\r\n cn(sliderTrackVariants({ size: this.size() }), this.isDisabled() && 'opacity-50 cursor-not-allowed', this.class())\r\n );\r\n\r\n protected readonly thumbClass = computed(() =>\r\n cn(\r\n 'absolute top-1/2 -translate-x-1/2 -translate-y-1/2 block rounded-full border-2 border-primary bg-background shadow ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\r\n sliderThumbSize[this.size()]\r\n )\r\n );\r\n\r\n private updateValueFromPosition(clientX: number): void {\r\n if (this.isDisabled()) return;\r\n const track = this.trackRef()?.nativeElement;\r\n if (!track) return;\r\n const rect = track.getBoundingClientRect();\r\n const percent = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width));\r\n const raw = this.min() + percent * (this.max() - this.min());\r\n const stepped = Math.round(raw / this.step()) * this.step();\r\n const clamped = Math.max(this.min(), Math.min(this.max(), stepped));\r\n this.value.set(clamped);\r\n this._onChange(clamped);\r\n }\r\n\r\n onTrackMousedown(event: MouseEvent): void {\r\n if (this.isDisabled()) return;\r\n event.preventDefault();\r\n this.updateValueFromPosition(event.clientX);\r\n this.moveHandler = (e: MouseEvent | TouchEvent) => {\r\n const clientX = e instanceof MouseEvent ? e.clientX : e.touches[0].clientX;\r\n this.updateValueFromPosition(clientX);\r\n };\r\n this.upHandler = () => {\r\n this.onTouched();\r\n this.removeListeners();\r\n };\r\n document.addEventListener('mousemove', this.moveHandler as EventListener);\r\n document.addEventListener('mouseup', this.upHandler);\r\n }\r\n\r\n onTrackTouchstart(event: TouchEvent): void {\r\n if (this.isDisabled()) return;\r\n this.updateValueFromPosition(event.touches[0].clientX);\r\n this.moveHandler = (e: MouseEvent | TouchEvent) => {\r\n const clientX = e instanceof MouseEvent ? e.clientX : e.touches[0].clientX;\r\n this.updateValueFromPosition(clientX);\r\n };\r\n this.upHandler = () => {\r\n this.onTouched();\r\n this.removeListeners();\r\n };\r\n document.addEventListener('touchmove', this.moveHandler as EventListener, { passive: true });\r\n document.addEventListener('touchend', this.upHandler);\r\n }\r\n\r\n onKeydown(event: KeyboardEvent): void {\r\n if (this.isDisabled()) return;\r\n const step = this.step();\r\n let newVal: number | undefined;\r\n switch (event.key) {\r\n case 'ArrowRight':\r\n case 'ArrowUp':\r\n event.preventDefault();\r\n newVal = Math.min(this.max(), this.value() + step);\r\n break;\r\n case 'ArrowLeft':\r\n case 'ArrowDown':\r\n event.preventDefault();\r\n newVal = Math.max(this.min(), this.value() - step);\r\n break;\r\n case 'Home':\r\n event.preventDefault();\r\n newVal = this.min();\r\n break;\r\n case 'End':\r\n event.preventDefault();\r\n newVal = this.max();\r\n break;\r\n }\r\n if (newVal !== undefined) {\r\n this.value.set(newVal);\r\n this._onChange(newVal);\r\n }\r\n }\r\n\r\n private removeListeners(): void {\r\n if (this.moveHandler) {\r\n document.removeEventListener('mousemove', this.moveHandler as EventListener);\r\n document.removeEventListener('touchmove', this.moveHandler as EventListener);\r\n this.moveHandler = null;\r\n }\r\n if (this.upHandler) {\r\n document.removeEventListener('mouseup', this.upHandler);\r\n document.removeEventListener('touchend', this.upHandler);\r\n this.upHandler = null;\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.removeListeners();\r\n }\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const loaderVariants = cva(\r\n 'inline-flex items-center justify-center text-current',\r\n {\r\n variants: {\r\n size: {\r\n sm: 'h-4 w-4',\r\n md: 'h-6 w-6',\r\n lg: 'h-8 w-8',\r\n xl: 'h-12 w-12',\r\n },\r\n },\r\n defaultVariants: {\r\n size: 'md',\r\n },\r\n }\r\n);\r\n\r\nexport type LoaderSize = 'sm' | 'md' | 'lg' | 'xl';\r\nexport type LoaderVariant = 'spinner' | 'dots' | 'bars';\r\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport { loaderVariants, type LoaderSize, type LoaderVariant } from './loader.variants';\r\n\r\n@Component({\r\n selector: 'ton-loader',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n '[class]': 'computedClass()',\r\n role: 'status',\r\n '[attr.aria-label]': '\"Loading\"',\r\n },\r\n template: `\r\n @switch (variant()) {\r\n @case ('spinner') {\r\n <svg class=\"animate-spin h-full w-full\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\r\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>\r\n <path class=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\r\n </svg>\r\n }\r\n @case ('dots') {\r\n <span class=\"flex items-center gap-1\">\r\n <span class=\"h-1.5 w-1.5 rounded-full bg-current animate-bounce [animation-delay:-0.3s]\"></span>\r\n <span class=\"h-1.5 w-1.5 rounded-full bg-current animate-bounce [animation-delay:-0.15s]\"></span>\r\n <span class=\"h-1.5 w-1.5 rounded-full bg-current animate-bounce\"></span>\r\n </span>\r\n }\r\n @case ('bars') {\r\n <span class=\"flex items-end gap-0.5 h-full\">\r\n <span class=\"w-1 bg-current animate-pulse rounded-sm [animation-delay:-0.3s]\" style=\"height:60%\"></span>\r\n <span class=\"w-1 bg-current animate-pulse rounded-sm [animation-delay:-0.15s]\" style=\"height:100%\"></span>\r\n <span class=\"w-1 bg-current animate-pulse rounded-sm\" style=\"height:40%\"></span>\r\n <span class=\"w-1 bg-current animate-pulse rounded-sm [animation-delay:-0.2s]\" style=\"height:80%\"></span>\r\n </span>\r\n }\r\n }\r\n `,\r\n})\r\nexport class TonLoaderComponent {\r\n readonly variant = input<LoaderVariant>('spinner');\r\n readonly size = input<LoaderSize>('md');\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(loaderVariants({ size: this.size() }), this.class())\r\n );\r\n}\r\n","import { Directive, ElementRef, computed, inject, input, model, InjectionToken } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\n\r\nexport const TON_TABS = new InjectionToken<TonTabsDirective>('TonTabs');\r\n\r\n@Directive({\r\n selector: '[tonTabs]',\r\n exportAs: 'tonTabs',\r\n providers: [{ provide: TON_TABS, useExisting: TonTabsDirective }],\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonTabsDirective {\r\n readonly value = model<string>('');\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn('', this.class())\r\n );\r\n\r\n select(value: string): void {\r\n this.value.set(value);\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[tonTabsList]',\r\n host: {\r\n role: 'tablist',\r\n '[class]': 'computedClass()',\r\n '(keydown)': 'onKeydown($event)',\r\n },\r\n})\r\nexport class TonTabsListDirective {\r\n readonly class = input<string>('');\r\n private readonly elRef = inject(ElementRef);\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n 'inline-flex h-10 items-center justify-center rounded-sm bg-muted p-1 text-muted-foreground',\r\n this.class()\r\n )\r\n );\r\n\r\n onKeydown(event: KeyboardEvent): void {\r\n const triggers = Array.from(\r\n (this.elRef.nativeElement as HTMLElement).querySelectorAll<HTMLElement>('[role=\"tab\"]')\r\n );\r\n if (triggers.length === 0) return;\r\n\r\n const currentIndex = triggers.indexOf(document.activeElement as HTMLElement);\r\n if (currentIndex === -1) return;\r\n\r\n let nextIndex: number | null = null;\r\n switch (event.key) {\r\n case 'ArrowRight':\r\n case 'ArrowDown':\r\n event.preventDefault();\r\n nextIndex = (currentIndex + 1) % triggers.length;\r\n break;\r\n case 'ArrowLeft':\r\n case 'ArrowUp':\r\n event.preventDefault();\r\n nextIndex = (currentIndex - 1 + triggers.length) % triggers.length;\r\n break;\r\n case 'Home':\r\n event.preventDefault();\r\n nextIndex = 0;\r\n break;\r\n case 'End':\r\n event.preventDefault();\r\n nextIndex = triggers.length - 1;\r\n break;\r\n }\r\n if (nextIndex !== null) {\r\n triggers[nextIndex].focus();\r\n }\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[tonTabsTrigger]',\r\n host: {\r\n role: 'tab',\r\n '[class]': 'computedClass()',\r\n '[attr.aria-selected]': 'isActive()',\r\n '[attr.tabindex]': 'isActive() ? 0 : -1',\r\n '(click)': 'tabs.select(value())',\r\n },\r\n})\r\nexport class TonTabsTriggerDirective {\r\n readonly value = input.required<string>();\r\n readonly class = input<string>('');\r\n readonly tabs = inject(TON_TABS);\r\n\r\n readonly isActive = computed(() => this.tabs.value() === this.value());\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n 'inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 cursor-pointer',\r\n this.isActive()\r\n ? 'bg-background text-foreground shadow-sm'\r\n : 'hover:bg-background/50',\r\n this.class()\r\n )\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonTabsContent]',\r\n host: {\r\n role: 'tabpanel',\r\n '[class]': 'computedClass()',\r\n '[style.display]': 'isActive() ? null : \"none\"',\r\n },\r\n})\r\nexport class TonTabsContentDirective {\r\n readonly value = input.required<string>();\r\n readonly class = input<string>('');\r\n private readonly tabs = inject(TON_TABS);\r\n\r\n readonly isActive = computed(() => this.tabs.value() === this.value());\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn('mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2', this.class())\r\n );\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const tabsListVariants = cva(\r\n 'inline-flex h-10 items-center justify-center rounded-sm bg-muted p-1 text-muted-foreground',\r\n {\r\n variants: {},\r\n defaultVariants: {},\r\n }\r\n);\r\n\r\nexport const tabsTriggerVariants = cva(\r\n 'inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\r\n {\r\n variants: {},\r\n defaultVariants: {},\r\n }\r\n);\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const selectTriggerVariants = cva(\r\n 'inline-flex w-full items-center justify-between whitespace-nowrap rounded-sm border border-border bg-background px-3 py-2 text-sm ring-offset-background transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\r\n {\r\n variants: {\r\n size: {\r\n sm: 'h-9 text-xs',\r\n md: 'h-10 text-sm',\r\n lg: 'h-11 text-base',\r\n },\r\n },\r\n defaultVariants: {\r\n size: 'md',\r\n },\r\n }\r\n);\r\n\r\nexport type SelectSize = 'sm' | 'md' | 'lg';\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n ElementRef,\r\n forwardRef,\r\n inject,\r\n input,\r\n model,\r\n OnDestroy,\r\n signal,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { cn } from '../core/utils/cn';\r\nimport { selectTriggerVariants, type SelectSize } from './select.variants';\r\n\r\nexport interface SelectOption {\r\n value: string;\r\n label: string;\r\n}\r\n\r\n@Component({\r\n selector: 'ton-select',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'relative inline-block w-full',\r\n '(document:click)': 'onDocumentClick($event)',\r\n },\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TonSelectComponent), multi: true },\r\n ],\r\n template: `\r\n <button\r\n #triggerEl\r\n type=\"button\"\r\n role=\"combobox\"\r\n [attr.aria-expanded]=\"open()\"\r\n aria-haspopup=\"listbox\"\r\n [disabled]=\"isDisabled()\"\r\n [class]=\"triggerClass()\"\r\n (click)=\"toggle()\"\r\n (keydown)=\"onTriggerKeydown($event)\"\r\n (blur)=\"onTouched()\"\r\n >\r\n <span [class]=\"selectedLabel() ? '' : 'text-muted-foreground'\">\r\n {{ selectedLabel() || placeholder() }}\r\n </span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"shrink-0 opacity-50\"><path d=\"m6 9 6 6 6-6\"/></svg>\r\n </button>\r\n\r\n @if (open()) {\r\n <div\r\n #dropdownEl\r\n class=\"fixed z-50 rounded-sm border border-border bg-popover text-popover-foreground shadow-md\"\r\n >\r\n <ul role=\"listbox\" class=\"max-h-60 overflow-auto p-1 ton-scrollbar\">\r\n @for (opt of options(); track opt.value; let i = $index) {\r\n <li\r\n role=\"option\"\r\n [attr.aria-selected]=\"value() === opt.value\"\r\n [class]=\"optionClass(i)\"\r\n (mousedown)=\"select(opt); $event.preventDefault()\"\r\n (mouseenter)=\"activeIndex.set(i)\"\r\n >\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\"\r\n fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\r\n [class]=\"value() === opt.value ? 'mr-2 shrink-0 opacity-100' : 'mr-2 shrink-0 opacity-0'\"\r\n ><path d=\"M20 6 9 17l-5-5\"/></svg>\r\n {{ opt.label }}\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n }\r\n `,\r\n})\r\nexport class TonSelectComponent implements ControlValueAccessor, OnDestroy {\r\n readonly options = input<SelectOption[]>([]);\r\n readonly placeholder = input('Select...');\r\n readonly size = input<SelectSize>('md');\r\n readonly disabled = input(false);\r\n readonly class = input<string>('');\r\n readonly value = model<string>('');\r\n\r\n readonly open = signal(false);\r\n readonly activeIndex = signal(0);\r\n\r\n private readonly _disabledByCva = signal(false);\r\n protected readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\r\n\r\n private readonly triggerRef = viewChild<ElementRef<HTMLButtonElement>>('triggerEl');\r\n private readonly dropdownRef = viewChild<ElementRef<HTMLDivElement>>('dropdownEl');\r\n private readonly elRef = inject(ElementRef);\r\n\r\n private scrollHandler: (() => void) | null = null;\r\n private resizeHandler: (() => void) | null = null;\r\n\r\n private _onChange: (value: string) => void = () => {};\r\n protected onTouched: () => void = () => {};\r\n\r\n writeValue(val: string): void {\r\n this.value.set(val ?? '');\r\n }\r\n\r\n registerOnChange(fn: (value: string) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._disabledByCva.set(isDisabled);\r\n }\r\n\r\n readonly selectedLabel = computed(() => {\r\n const v = this.value();\r\n if (!v) return '';\r\n const opt = this.options().find(o => o.value === v);\r\n return opt?.label ?? '';\r\n });\r\n\r\n protected readonly triggerClass = computed(() =>\r\n cn(selectTriggerVariants({ size: this.size() }), this.class())\r\n );\r\n\r\n optionClass(index: number): string {\r\n const base = 'relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors';\r\n const active = index === this.activeIndex() ? 'bg-accent text-accent-foreground' : 'hover:bg-accent/50';\r\n return cn(base, active);\r\n }\r\n\r\n private updateDropdownPosition(): void {\r\n const trigger = this.triggerRef()?.nativeElement;\r\n if (!trigger) return;\r\n const rect = trigger.getBoundingClientRect();\r\n const dropdown = this.dropdownRef()?.nativeElement;\r\n if (dropdown) {\r\n dropdown.style.top = `${rect.bottom + 4}px`;\r\n dropdown.style.left = `${rect.left}px`;\r\n dropdown.style.width = `${rect.width}px`;\r\n }\r\n }\r\n\r\n private addGlobalListeners(): void {\r\n this.removeGlobalListeners();\r\n this.scrollHandler = () => {\r\n requestAnimationFrame(() => this.updateDropdownPosition());\r\n };\r\n this.resizeHandler = () => {\r\n requestAnimationFrame(() => this.updateDropdownPosition());\r\n };\r\n document.addEventListener('scroll', this.scrollHandler, { capture: true, passive: true });\r\n window.addEventListener('resize', this.resizeHandler, { passive: true });\r\n }\r\n\r\n private removeGlobalListeners(): void {\r\n if (this.scrollHandler) {\r\n document.removeEventListener('scroll', this.scrollHandler, { capture: true } as EventListenerOptions);\r\n this.scrollHandler = null;\r\n }\r\n if (this.resizeHandler) {\r\n window.removeEventListener('resize', this.resizeHandler);\r\n this.resizeHandler = null;\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.removeGlobalListeners();\r\n }\r\n\r\n toggle(): void {\r\n if (this.open()) {\r\n this.close();\r\n } else {\r\n this.open.set(true);\r\n this.activeIndex.set(\r\n Math.max(0, this.options().findIndex(o => o.value === this.value()))\r\n );\r\n this.addGlobalListeners();\r\n setTimeout(() => this.updateDropdownPosition());\r\n }\r\n }\r\n\r\n close(): void {\r\n this.open.set(false);\r\n this.removeGlobalListeners();\r\n }\r\n\r\n select(opt: SelectOption): void {\r\n this.value.set(opt.value);\r\n this._onChange(opt.value);\r\n this.close();\r\n }\r\n\r\n onTriggerKeydown(event: KeyboardEvent): void {\r\n const items = this.options();\r\n if (!this.open()) {\r\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\r\n event.preventDefault();\r\n this.toggle();\r\n }\r\n return;\r\n }\r\n switch (event.key) {\r\n case 'ArrowDown':\r\n event.preventDefault();\r\n this.activeIndex.update(i => Math.min(i + 1, items.length - 1));\r\n break;\r\n case 'ArrowUp':\r\n event.preventDefault();\r\n this.activeIndex.update(i => Math.max(i - 1, 0));\r\n break;\r\n case 'Enter':\r\n case ' ':\r\n event.preventDefault();\r\n if (items[this.activeIndex()]) {\r\n this.select(items[this.activeIndex()]);\r\n }\r\n break;\r\n case 'Escape':\r\n this.close();\r\n break;\r\n }\r\n }\r\n\r\n onDocumentClick(event: MouseEvent): void {\r\n if (!this.elRef.nativeElement.contains(event.target)) {\r\n this.close();\r\n }\r\n }\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const tableVariants = cva(\r\n 'w-full caption-bottom text-sm border-collapse',\r\n {\r\n variants: {\r\n variant: {\r\n default: '',\r\n striped: '[&_tbody_tr:nth-child(even)]:bg-muted/50',\r\n bordered: 'border border-border [&_th]:border [&_th]:border-border [&_td]:border [&_td]:border-border',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n }\r\n);\r\n\r\nexport const tableCellVariants = cva(\r\n '',\r\n {\r\n variants: {\r\n density: {\r\n compact: 'px-2 py-1 text-xs',\r\n normal: 'px-4 py-3 text-sm',\r\n comfortable: 'px-6 py-4 text-base',\r\n },\r\n },\r\n defaultVariants: {\r\n density: 'normal',\r\n },\r\n }\r\n);\r\n\r\nexport type TableVariant = 'default' | 'striped' | 'bordered';\r\nexport type TableDensity = 'compact' | 'normal' | 'comfortable';\r\n","import { Directive, computed, inject, input, InjectionToken } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport { tableVariants, tableCellVariants, type TableVariant, type TableDensity } from './table.variants';\r\n\r\nexport const TON_TABLE = new InjectionToken<TonTableDirective>('TonTable');\r\n\r\n@Directive({\r\n selector: 'table[tonTable]',\r\n providers: [{ provide: TON_TABLE, useExisting: TonTableDirective }],\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonTableDirective {\r\n readonly variant = input<TableVariant>('default');\r\n readonly density = input<TableDensity>('normal');\r\n readonly hoverable = input(false);\r\n readonly stickyHeader = input(false);\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(tableVariants({ variant: this.variant() }), this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: 'thead[tonTableHeader]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonTableHeaderDirective {\r\n readonly class = input<string>('');\r\n private readonly table = inject(TON_TABLE, { optional: true });\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n '[&_tr]:border-b',\r\n this.table?.stickyHeader() ? 'sticky top-0 z-10 bg-background' : '',\r\n this.class()\r\n )\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: 'tbody[tonTableBody]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonTableBodyDirective {\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn('[&_tr:last-child]:border-0', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: 'tr[tonTableRow]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonTableRowDirective {\r\n readonly class = input<string>('');\r\n private readonly table = inject(TON_TABLE, { optional: true });\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n 'border-b border-border transition-colors data-[state=selected]:bg-muted',\r\n this.table?.hoverable() ? 'hover:bg-muted/50' : '',\r\n this.class()\r\n )\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: 'th[tonTableHead]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonTableHeadDirective {\r\n readonly class = input<string>('');\r\n private readonly table = inject(TON_TABLE, { optional: true });\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n 'text-left font-medium text-muted-foreground [&[align=center]]:text-center [&[align=right]]:text-right',\r\n tableCellVariants({ density: this.table?.density() ?? 'normal' }),\r\n this.class()\r\n )\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: 'td[tonTableCell]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonTableCellDirective {\r\n readonly class = input<string>('');\r\n private readonly table = inject(TON_TABLE, { optional: true });\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n '[&[align=center]]:text-center [&[align=right]]:text-right',\r\n tableCellVariants({ density: this.table?.density() ?? 'normal' }),\r\n this.class()\r\n )\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: 'tfoot[tonTableFooter]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonTableFooterDirective {\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn('border-t border-border font-medium [&>tr]:last:border-b-0', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: 'caption[tonTableCaption]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonTableCaptionDirective {\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn('mt-4 text-sm text-muted-foreground', this.class())\r\n );\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const paginationItemVariants = cva(\r\n 'inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'bg-background hover:bg-accent hover:text-accent-foreground',\r\n outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',\r\n ghost: 'hover:bg-accent hover:text-accent-foreground',\r\n },\r\n size: {\r\n sm: 'h-8 w-8 text-xs',\r\n md: 'h-9 w-9',\r\n lg: 'h-10 w-10',\r\n },\r\n active: {\r\n true: 'bg-primary text-primary-foreground hover:bg-primary/90 hover:text-primary-foreground',\r\n false: '',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n size: 'md',\r\n active: false,\r\n },\r\n }\r\n);\r\n\r\nexport type PaginationVariant = 'default' | 'outline' | 'ghost';\r\nexport type PaginationSize = 'sm' | 'md' | 'lg';\r\n","import { ChangeDetectionStrategy, Component, computed, input, model } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport {\r\n paginationItemVariants,\r\n type PaginationVariant,\r\n type PaginationSize,\r\n} from './pagination.variants';\r\n\r\nfunction computePageRange(\r\n totalPages: number,\r\n currentPage: number,\r\n siblingCount: number,\r\n boundaryCount: number\r\n): (number | 'ellipsis')[] {\r\n const range = (start: number, end: number) =>\r\n Array.from({ length: end - start + 1 }, (_, i) => start + i);\r\n\r\n const startPages = range(1, Math.min(boundaryCount, totalPages));\r\n const endPages = range(Math.max(totalPages - boundaryCount + 1, boundaryCount + 1), totalPages);\r\n\r\n const siblingsStart = Math.max(\r\n Math.min(currentPage - siblingCount, totalPages - boundaryCount - siblingCount * 2 - 1),\r\n boundaryCount + 2\r\n );\r\n const siblingsEnd = Math.min(\r\n Math.max(currentPage + siblingCount, boundaryCount + siblingCount * 2 + 2),\r\n endPages.length > 0 ? endPages[0] - 2 : totalPages - 1\r\n );\r\n\r\n const result: (number | 'ellipsis')[] = [...startPages];\r\n\r\n if (siblingsStart > boundaryCount + 2) {\r\n result.push('ellipsis');\r\n } else if (boundaryCount + 1 < totalPages - boundaryCount) {\r\n result.push(boundaryCount + 1);\r\n }\r\n\r\n result.push(...range(siblingsStart, siblingsEnd));\r\n\r\n if (siblingsEnd < totalPages - boundaryCount - 1) {\r\n result.push('ellipsis');\r\n } else if (totalPages - boundaryCount > boundaryCount) {\r\n result.push(totalPages - boundaryCount);\r\n }\r\n\r\n result.push(...endPages);\r\n\r\n return [...new Set(result)].sort((a, b) => {\r\n if (a === 'ellipsis') return 0;\r\n if (b === 'ellipsis') return 0;\r\n return a - b;\r\n });\r\n}\r\n\r\n@Component({\r\n selector: 'ton-pagination',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n 'role': 'navigation',\r\n 'aria-label': 'Pagination',\r\n },\r\n template: `\r\n <div class=\"flex items-center gap-1\">\r\n <button\r\n [class]=\"navBtnClass()\"\r\n [disabled]=\"!hasPrev()\"\r\n [attr.aria-label]=\"'Go to previous page'\"\r\n (click)=\"prev()\"\r\n >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m15 18-6-6 6-6\"/></svg>\r\n </button>\r\n\r\n @for (page of pages(); track $index) {\r\n @if (page === 'ellipsis') {\r\n <span class=\"flex h-9 w-9 items-center justify-center\" aria-hidden=\"true\">...</span>\r\n } @else {\r\n <button\r\n [class]=\"pageClass(page)\"\r\n [attr.aria-label]=\"'Page ' + page\"\r\n [attr.aria-current]=\"page === currentPage() ? 'page' : null\"\r\n (click)=\"goToPage(page)\"\r\n >\r\n {{ page }}\r\n </button>\r\n }\r\n }\r\n\r\n <button\r\n [class]=\"navBtnClass()\"\r\n [disabled]=\"!hasNext()\"\r\n [attr.aria-label]=\"'Go to next page'\"\r\n (click)=\"next()\"\r\n >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m9 18 6-6-6-6\"/></svg>\r\n </button>\r\n </div>\r\n `,\r\n})\r\nexport class TonPaginationComponent {\r\n readonly currentPage = model(1);\r\n readonly totalPages = input.required<number>();\r\n readonly siblingCount = input(1);\r\n readonly boundaryCount = input(1);\r\n readonly size = input<PaginationSize>('md');\r\n readonly variant = input<PaginationVariant>('default');\r\n readonly class = input<string>('');\r\n\r\n readonly pages = computed(() =>\r\n computePageRange(this.totalPages(), this.currentPage(), this.siblingCount(), this.boundaryCount())\r\n );\r\n\r\n readonly hasPrev = computed(() => this.currentPage() > 1);\r\n readonly hasNext = computed(() => this.currentPage() < this.totalPages());\r\n\r\n goToPage(page: number | 'ellipsis'): void {\r\n if (page === 'ellipsis') return;\r\n this.currentPage.set(page);\r\n }\r\n\r\n prev(): void {\r\n if (this.hasPrev()) this.currentPage.update((p) => p - 1);\r\n }\r\n\r\n next(): void {\r\n if (this.hasNext()) this.currentPage.update((p) => p + 1);\r\n }\r\n\r\n pageClass(page: number): string {\r\n return cn(\r\n paginationItemVariants({\r\n variant: this.variant(),\r\n size: this.size(),\r\n active: page === this.currentPage(),\r\n })\r\n );\r\n }\r\n\r\n navBtnClass(): string {\r\n return cn(\r\n paginationItemVariants({ variant: this.variant(), size: this.size(), active: false })\r\n );\r\n }\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const dropdownContentVariants = cva(\r\n 'z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md',\r\n {\r\n variants: {},\r\n defaultVariants: {},\r\n }\r\n);\r\n\r\nexport const dropdownItemVariants = cva(\r\n 'relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[active]:bg-accent data-[active]:text-accent-foreground',\r\n {\r\n variants: {\r\n variant: {\r\n default: '',\r\n destructive:\r\n 'text-destructive data-[active]:bg-destructive/10 data-[active]:text-destructive',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n }\r\n);\r\n\r\nexport type DropdownItemVariant = 'default' | 'destructive';\r\n","import { Directive, ElementRef, InjectionToken, computed, inject, input, signal } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport {\r\n dropdownContentVariants,\r\n dropdownItemVariants,\r\n type DropdownItemVariant,\r\n} from './dropdown.variants';\r\n\r\nexport const TON_DROPDOWN = new InjectionToken<TonDropdownDirective>('TonDropdown');\r\n\r\n@Directive({\r\n selector: '[tonDropdown]',\r\n exportAs: 'tonDropdown',\r\n providers: [{ provide: TON_DROPDOWN, useExisting: TonDropdownDirective }],\r\n host: {\r\n '[class]': '\"relative inline-block\"',\r\n '(document:click)': 'onDocumentClick($event)',\r\n '(keydown.escape)': 'onEscape()',\r\n },\r\n})\r\nexport class TonDropdownDirective {\r\n private readonly elementRef = inject(ElementRef);\r\n readonly isOpen = signal(false);\r\n\r\n toggle(): void { this.isOpen.update((v) => !v); }\r\n open(): void { this.isOpen.set(true); }\r\n close(): void { this.isOpen.set(false); }\r\n\r\n onDocumentClick(event: MouseEvent): void {\r\n if (!this.elementRef.nativeElement.contains(event.target)) {\r\n this.close();\r\n }\r\n }\r\n\r\n onEscape(): void {\r\n this.close();\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[tonDropdownTrigger]',\r\n host: {\r\n '(click)': 'dropdown.toggle()',\r\n '[attr.aria-expanded]': 'dropdown.isOpen()',\r\n '[attr.aria-haspopup]': '\"menu\"',\r\n },\r\n})\r\nexport class TonDropdownTriggerDirective {\r\n readonly dropdown = inject(TON_DROPDOWN);\r\n}\r\n\r\n@Directive({\r\n selector: '[tonDropdownContent]',\r\n host: {\r\n 'role': 'menu',\r\n '[class]': 'computedClass()',\r\n '[style.display]': 'dropdown.isOpen() ? \"\" : \"none\"',\r\n },\r\n})\r\nexport class TonDropdownContentDirective {\r\n readonly dropdown = inject(TON_DROPDOWN);\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n dropdownContentVariants(),\r\n 'absolute mt-1 left-0 animate-in fade-in-0 zoom-in-95',\r\n this.class()\r\n )\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonMenuContent]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonMenuContentDirective {\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(dropdownContentVariants(), this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonMenuItem]',\r\n host: {\r\n 'role': 'menuitem',\r\n '[class]': 'computedClass()',\r\n '(click)': 'onClick()',\r\n },\r\n})\r\nexport class TonMenuItemDirective {\r\n private readonly dropdown = inject(TON_DROPDOWN, { optional: true });\r\n readonly variant = input<DropdownItemVariant>('default');\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(dropdownItemVariants({ variant: this.variant() }), 'cursor-pointer hover:bg-accent hover:text-accent-foreground', this.class())\r\n );\r\n\r\n onClick(): void {\r\n this.dropdown?.close();\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[tonMenuSeparator]',\r\n host: {\r\n 'role': 'separator',\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonMenuSeparatorDirective {\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn('-mx-1 my-1 h-px bg-muted', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonMenuLabel]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonMenuLabelDirective {\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn('px-2 py-1.5 text-sm font-semibold', this.class())\r\n );\r\n}\r\n","import { Directive, TemplateRef, inject, input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[tonCell]',\r\n})\r\nexport class TonCellDefDirective {\r\n readonly tonCell = input.required<string>();\r\n readonly template = inject(TemplateRef);\r\n}\r\n\r\n@Directive({\r\n selector: '[tonHeaderCell]',\r\n})\r\nexport class TonHeaderCellDefDirective {\r\n readonly tonHeaderCell = input.required<string>();\r\n readonly template = inject(TemplateRef);\r\n}\r\n\r\n@Directive({\r\n selector: '[tonBulkActions]',\r\n})\r\nexport class TonBulkActionsDefDirective {\r\n readonly template = inject(TemplateRef);\r\n}\r\n\r\n@Directive({\r\n selector: '[tonRowExpand]',\r\n})\r\nexport class TonRowExpandDefDirective {\r\n readonly template = inject(TemplateRef);\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n TemplateRef,\r\n computed,\r\n contentChild,\r\n contentChildren,\r\n effect,\r\n input,\r\n model,\r\n output,\r\n signal,\r\n untracked,\r\n} from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport {\r\n TonTableDirective,\r\n TonTableHeaderDirective,\r\n TonTableBodyDirective,\r\n TonTableRowDirective,\r\n TonTableHeadDirective,\r\n TonTableCellDirective,\r\n} from '../table/table.directives';\r\nimport type { TableVariant, TableDensity } from '../table/table.variants';\r\nimport { TonPaginationComponent } from '../pagination/pagination.component';\r\nimport { TonCheckboxDirective } from '../checkbox/checkbox.directive';\r\nimport { TonInputDirective } from '../input/input.directive';\r\nimport { TonButtonDirective } from '../button/button.directive';\r\nimport { TonSelectComponent, type SelectOption } from '../select/select.component';\r\nimport { TonSkeletonDirective } from '../skeleton/skeleton.directive';\r\nimport {\r\n TonDropdownDirective,\r\n TonDropdownTriggerDirective,\r\n TonDropdownContentDirective,\r\n TonMenuItemDirective,\r\n} from '../dropdown/dropdown.directives';\r\nimport {\r\n TonCellDefDirective,\r\n TonHeaderCellDefDirective,\r\n TonBulkActionsDefDirective,\r\n TonRowExpandDefDirective,\r\n} from './data-table.directives';\r\nimport type {\r\n DataTableColumn,\r\n DataTableLabels,\r\n DataTablePaginationConfig,\r\n SortState,\r\n SortDirection,\r\n} from './data-table.types';\r\n\r\nconst DEFAULT_PAGINATION: DataTablePaginationConfig = {\r\n pageSize: 10,\r\n pageSizeOptions: [5, 10, 25, 50],\r\n};\r\n\r\nconst DEFAULT_LABELS: Required<DataTableLabels> = {\r\n rowsPerPage: 'Rows per page',\r\n rowsSelected: (selected, total) => `${selected} of ${total} row(s) selected`,\r\n totalRows: (total) => `${total} row(s)`,\r\n};\r\n\r\n@Component({\r\n selector: 'ton-data-table',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n NgTemplateOutlet,\r\n TonTableDirective,\r\n TonTableHeaderDirective,\r\n TonTableBodyDirective,\r\n TonTableRowDirective,\r\n TonTableHeadDirective,\r\n TonTableCellDirective,\r\n TonPaginationComponent,\r\n TonCheckboxDirective,\r\n TonInputDirective,\r\n TonButtonDirective,\r\n TonSelectComponent,\r\n TonSkeletonDirective,\r\n TonDropdownDirective,\r\n TonDropdownTriggerDirective,\r\n TonDropdownContentDirective,\r\n TonMenuItemDirective,\r\n ],\r\n template: `\r\n <!-- Toolbar -->\r\n @if (filterable() || showExport() || showColumnToggle()) {\r\n <div class=\"flex items-center justify-between gap-4 mb-4 flex-wrap\">\r\n @if (filterable()) {\r\n <input\r\n tonInput\r\n [value]=\"filterText()\"\r\n (input)=\"onFilterInput($event)\"\r\n placeholder=\"Filter...\"\r\n class=\"w-full sm:max-w-sm\"\r\n />\r\n }\r\n <div class=\"flex items-center gap-2\">\r\n @if (showExport()) {\r\n <button tonBtn variant=\"outline\" size=\"sm\" (click)=\"onExport()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"sm:mr-2\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z\"/><path d=\"M14 2v6h6\"/><path d=\"M12 18v-6\"/><path d=\"m9 15 3-3 3 3\"/></svg>\r\n <span class=\"hidden sm:inline\">Export</span>\r\n </button>\r\n }\r\n @if (showColumnToggle()) {\r\n <div tonDropdown class=\"relative\">\r\n <button tonBtn variant=\"outline\" size=\"sm\" tonDropdownTrigger>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"sm:mr-2\"><path d=\"M12 3v18\"/><rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"/><path d=\"M3 9h18\"/><path d=\"M3 15h18\"/></svg>\r\n <span class=\"hidden sm:inline\">Columns</span>\r\n </button>\r\n <div tonDropdownContent class=\"w-48 right-0 left-auto\">\r\n @for (col of columns(); track col.key) {\r\n <label tonMenuItem class=\"flex items-center gap-2 cursor-pointer\">\r\n <input\r\n type=\"checkbox\"\r\n tonCheckbox\r\n [checked]=\"!hiddenColumns().has(col.key)\"\r\n (change)=\"toggleColumnVisibility(col.key)\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n {{ col.label }}\r\n </label>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n\r\n <!-- Bulk Actions Bar -->\r\n @if (showBulkActions()) {\r\n @let selected = selectedRows();\r\n <div class=\"flex items-center gap-2 mb-4 p-3 bg-muted/50 rounded-sm border border-border flex-wrap\">\r\n <span class=\"text-sm font-medium text-muted-foreground mr-2\">\r\n {{ selected.length }} selected\r\n </span>\r\n <ng-container\r\n [ngTemplateOutlet]=\"bulkActionsDef()!.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: selected }\"\r\n />\r\n <button\r\n tonBtn variant=\"ghost\" size=\"sm\" class=\"ml-auto\"\r\n (click)=\"selectedRows.set([])\"\r\n >\r\n Clear\r\n </button>\r\n </div>\r\n }\r\n\r\n <!-- Table -->\r\n <div class=\"overflow-auto border border-border rounded-sm\">\r\n <table\r\n tonTable\r\n [variant]=\"variant()\"\r\n [density]=\"density()\"\r\n [hoverable]=\"hoverable()\"\r\n [stickyHeader]=\"stickyHeader()\"\r\n >\r\n <thead tonTableHeader>\r\n <tr tonTableRow>\r\n @if (selectable()) {\r\n <th tonTableHead class=\"w-12\">\r\n <input\r\n type=\"checkbox\"\r\n tonCheckbox\r\n [checked]=\"allSelected()\"\r\n [indeterminate]=\"someSelected() && !allSelected()\"\r\n (change)=\"toggleSelectAll()\"\r\n />\r\n </th>\r\n }\r\n @if (expandable()) {\r\n <th tonTableHead class=\"w-10\"></th>\r\n }\r\n @let sort = sortState();\r\n @let headerDefs = headerCellDefMap();\r\n @for (col of visibleColumns(); track col.key) {\r\n <th\r\n tonTableHead\r\n [style.width]=\"col.width ?? null\"\r\n [class]=\"col.sortable ? 'cursor-pointer select-none' : ''\"\r\n (click)=\"col.sortable ? toggleSort(col.key) : null\"\r\n >\r\n @if (headerDefs.has(col.key)) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"headerDefs.get(col.key)!\"\r\n [ngTemplateOutletContext]=\"{ $implicit: col }\"\r\n />\r\n } @else {\r\n <div class=\"flex items-center gap-1\">\r\n <span>{{ col.label }}</span>\r\n @if (col.sortable) {\r\n @let isActive = sort.key === col.key;\r\n @if (isActive && sort.direction === 'asc') {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m5 12 7-7 7 7\"/></svg>\r\n } @else if (isActive && sort.direction === 'desc') {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m19 12-7 7-7-7\"/></svg>\r\n } @else {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"opacity-30\"><path d=\"m7 15 5 5 5-5\"/><path d=\"m7 9 5-5 5 5\"/></svg>\r\n }\r\n }\r\n </div>\r\n }\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody tonTableBody>\r\n @if (loading()) {\r\n @for (i of skeletonRows(); track i) {\r\n <tr tonTableRow>\r\n @if (selectable()) {\r\n <td tonTableCell class=\"w-12\"><div tonSkeleton class=\"w-4 h-4 rounded\"></div></td>\r\n }\r\n @if (expandable()) {\r\n <td tonTableCell class=\"w-10\"><div tonSkeleton class=\"w-4 h-4 rounded\"></div></td>\r\n }\r\n @for (col of visibleColumns(); track col.key) {\r\n <td tonTableCell [style.width]=\"col.width ?? null\">\r\n <div tonSkeleton class=\"w-full h-4 rounded\"></div>\r\n </td>\r\n }\r\n </tr>\r\n }\r\n } @else if (paginatedData().length === 0) {\r\n <tr tonTableRow>\r\n <td\r\n tonTableCell\r\n [attr.colspan]=\"totalColSpan()\"\r\n class=\"text-center text-muted-foreground py-8\"\r\n >\r\n {{ noDataText() }}\r\n </td>\r\n </tr>\r\n } @else {\r\n @let cellDefs = cellDefMap();\r\n @let cols = visibleColumns();\r\n @let expandTpl = rowExpandDef();\r\n @for (row of paginatedData(); track trackByFn(row, $index)) {\r\n <tr\r\n tonTableRow\r\n [attr.data-state]=\"isSelected(row) ? 'selected' : null\"\r\n (click)=\"onRowClick(row)\"\r\n class=\"cursor-pointer\"\r\n >\r\n @if (selectable()) {\r\n <td tonTableCell class=\"w-12\">\r\n <input\r\n type=\"checkbox\"\r\n tonCheckbox\r\n [checked]=\"isSelected(row)\"\r\n (change)=\"toggleRowSelection(row)\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n </td>\r\n }\r\n @if (expandable()) {\r\n <td tonTableCell class=\"w-10\">\r\n <button\r\n class=\"p-0.5 rounded hover:bg-accent transition-transform duration-150\"\r\n [class.rotate-90]=\"isExpanded(row)\"\r\n (click)=\"toggleRowExpansion(row); $event.stopPropagation()\"\r\n >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m9 18 6-6-6-6\"/></svg>\r\n </button>\r\n </td>\r\n }\r\n @for (col of cols; track col.key) {\r\n <td tonTableCell [style.width]=\"col.width ?? null\">\r\n @if (cellDefs.has(col.key)) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"cellDefs.get(col.key)!\"\r\n [ngTemplateOutletContext]=\"{ $implicit: row[col.key], row: row }\"\r\n />\r\n } @else {\r\n {{ row[col.key] }}\r\n }\r\n </td>\r\n }\r\n </tr>\r\n @if (expandable() && isExpanded(row) && expandTpl) {\r\n <tr tonTableRow>\r\n <td tonTableCell [attr.colspan]=\"totalColSpan()\" class=\"bg-muted/30\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"expandTpl.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: row }\"\r\n />\r\n </td>\r\n </tr>\r\n }\r\n }\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n <!-- Footer -->\r\n @if (paginated()) {\r\n <div class=\"flex flex-col sm:flex-row items-start sm:items-center justify-between mt-4 gap-3 sm:gap-4\">\r\n <span class=\"text-sm text-muted-foreground\">\r\n @if (selectable()) {\r\n {{ resolvedLabels().rowsSelected(selectedRows().length, filteredData().length) }}\r\n } @else {\r\n {{ resolvedLabels().totalRows(filteredData().length) }}\r\n }\r\n </span>\r\n <div class=\"flex items-center gap-3 sm:gap-4 flex-wrap\">\r\n <div class=\"flex items-center gap-2\">\r\n <span class=\"hidden sm:inline text-sm text-muted-foreground whitespace-nowrap\">{{ resolvedLabels().rowsPerPage }}</span>\r\n <ton-select\r\n [options]=\"pageSizeOptions()\"\r\n [value]=\"pageSizeValue()\"\r\n (valueChange)=\"onPageSizeChange($event)\"\r\n size=\"sm\"\r\n class=\"w-20\"\r\n />\r\n </div>\r\n <ton-pagination\r\n [currentPage]=\"currentPage()\"\r\n (currentPageChange)=\"currentPage.set($event)\"\r\n [totalPages]=\"totalPages()\"\r\n />\r\n </div>\r\n </div>\r\n }\r\n `,\r\n})\r\nexport class TonDataTableComponent {\r\n // Inputs\r\n readonly columns = input.required<DataTableColumn[]>();\r\n readonly data = input.required<Record<string, unknown>[]>();\r\n readonly variant = input<TableVariant>('default');\r\n readonly density = input<TableDensity>('normal');\r\n readonly hoverable = input(true);\r\n readonly stickyHeader = input(false);\r\n readonly selectable = input(false);\r\n readonly paginated = input(true);\r\n readonly filterable = input(true);\r\n readonly showExport = input(false);\r\n readonly showColumnToggle = input(false);\r\n readonly expandable = input(false);\r\n readonly loading = input(false);\r\n readonly loadingRows = input(5);\r\n readonly paginationConfig = input<DataTablePaginationConfig>(DEFAULT_PAGINATION);\r\n readonly trackBy = input('');\r\n readonly noDataText = input('No data available');\r\n readonly labels = input<DataTableLabels>({});\r\n\r\n // Model\r\n readonly selectedRows = model<Record<string, unknown>[]>([]);\r\n\r\n // Outputs\r\n readonly sortChanged = output<SortState>();\r\n readonly rowClicked = output<Record<string, unknown>>();\r\n readonly dataExported = output<Record<string, unknown>[]>();\r\n\r\n // Content queries\r\n readonly cellDefs = contentChildren(TonCellDefDirective);\r\n readonly headerCellDefs = contentChildren(TonHeaderCellDefDirective);\r\n readonly bulkActionsDef = contentChild(TonBulkActionsDefDirective);\r\n readonly rowExpandDef = contentChild(TonRowExpandDefDirective);\r\n\r\n // Resolved labels\r\n readonly resolvedLabels = computed(() => ({ ...DEFAULT_LABELS, ...this.labels() }));\r\n\r\n // Internal state\r\n readonly sortState = signal<SortState>({ key: '', direction: null });\r\n readonly filterText = signal('');\r\n readonly currentPage = signal(1);\r\n readonly pageSize = signal(10);\r\n readonly hiddenColumns = signal<Set<string>>(new Set());\r\n readonly expandedRows = signal<Set<unknown>>(new Set());\r\n\r\n // Template def maps\r\n readonly cellDefMap = computed(() => {\r\n const map = new Map<string, TemplateRef<unknown>>();\r\n for (const def of this.cellDefs()) {\r\n map.set(def.tonCell(), def.template);\r\n }\r\n return map;\r\n });\r\n\r\n readonly headerCellDefMap = computed(() => {\r\n const map = new Map<string, TemplateRef<unknown>>();\r\n for (const def of this.headerCellDefs()) {\r\n map.set(def.tonHeaderCell(), def.template);\r\n }\r\n return map;\r\n });\r\n\r\n // Visible columns\r\n readonly visibleColumns = computed(() =>\r\n this.columns().filter(\r\n (col) => col.visible !== false && !this.hiddenColumns().has(col.key)\r\n )\r\n );\r\n\r\n // Page size options\r\n readonly pageSizeOptions = computed<SelectOption[]>(() =>\r\n this.paginationConfig().pageSizeOptions.map((n) => ({\r\n value: String(n),\r\n label: String(n),\r\n }))\r\n );\r\n\r\n readonly pageSizeValue = computed(() => String(this.pageSize()));\r\n\r\n // Skeleton rows\r\n readonly skeletonRows = computed(() =>\r\n Array.from({ length: this.loadingRows() }, (_, i) => i)\r\n );\r\n\r\n // Bulk actions visibility\r\n readonly showBulkActions = computed(\r\n () =>\r\n this.selectable() &&\r\n this.selectedRows().length > 0 &&\r\n this.bulkActionsDef() != null\r\n );\r\n\r\n // Data pipeline (filter uses all columns, not just visible)\r\n readonly filteredData = computed(() => {\r\n const text = this.filterText().toLowerCase().trim();\r\n const rows = this.data();\r\n if (!text) return rows;\r\n const cols = this.columns().filter((c) => c.filterable !== false);\r\n return rows.filter((row) =>\r\n cols.some((col) =>\r\n String(row[col.key] ?? '').toLowerCase().includes(text)\r\n )\r\n );\r\n });\r\n\r\n readonly sortedData = computed(() => {\r\n const { key, direction } = this.sortState();\r\n const rows = this.filteredData();\r\n if (!key || !direction) return rows;\r\n return [...rows].sort((a, b) => {\r\n const aVal = a[key];\r\n const bVal = b[key];\r\n if (aVal == null && bVal == null) return 0;\r\n if (aVal == null) return direction === 'asc' ? -1 : 1;\r\n if (bVal == null) return direction === 'asc' ? 1 : -1;\r\n if (typeof aVal === 'number' && typeof bVal === 'number') {\r\n return direction === 'asc' ? aVal - bVal : bVal - aVal;\r\n }\r\n const cmp = String(aVal).localeCompare(String(bVal));\r\n return direction === 'asc' ? cmp : -cmp;\r\n });\r\n });\r\n\r\n readonly totalPages = computed(() =>\r\n Math.max(1, Math.ceil(this.filteredData().length / this.pageSize()))\r\n );\r\n\r\n readonly paginatedData = computed(() => {\r\n if (!this.paginated()) return this.sortedData();\r\n const start = (this.currentPage() - 1) * this.pageSize();\r\n return this.sortedData().slice(start, start + this.pageSize());\r\n });\r\n\r\n readonly totalColSpan = computed(\r\n () =>\r\n this.visibleColumns().length +\r\n (this.selectable() ? 1 : 0) +\r\n (this.expandable() ? 1 : 0)\r\n );\r\n\r\n // Selection computed\r\n readonly allSelected = computed(() => {\r\n const page = this.paginatedData();\r\n if (page.length === 0) return false;\r\n const selected = this.selectedRows();\r\n return page.every((row) => this.isRowInList(row, selected));\r\n });\r\n\r\n readonly someSelected = computed(() => {\r\n const page = this.paginatedData();\r\n const selected = this.selectedRows();\r\n return page.some((row) => this.isRowInList(row, selected));\r\n });\r\n\r\n constructor() {\r\n effect(() => {\r\n const config = this.paginationConfig();\r\n untracked(() => this.pageSize.set(config.pageSize));\r\n });\r\n\r\n effect(() => {\r\n this.filterText();\r\n this.pageSize();\r\n const data = this.data();\r\n untracked(() => {\r\n this.currentPage.set(1);\r\n const selected = this.selectedRows();\r\n if (selected.length) {\r\n const cleaned = selected.filter((row) => this.isRowInList(row, data));\r\n if (cleaned.length !== selected.length) {\r\n this.selectedRows.set(cleaned);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n // Sort\r\n toggleSort(key: string): void {\r\n const current = this.sortState();\r\n let direction: SortDirection;\r\n if (current.key !== key) {\r\n direction = 'asc';\r\n } else if (current.direction === 'asc') {\r\n direction = 'desc';\r\n } else if (current.direction === 'desc') {\r\n direction = null;\r\n } else {\r\n direction = 'asc';\r\n }\r\n const next: SortState = { key: direction ? key : '', direction };\r\n this.sortState.set(next);\r\n this.sortChanged.emit(next);\r\n }\r\n\r\n // Filter\r\n onFilterInput(event: Event): void {\r\n this.filterText.set((event.target as HTMLInputElement).value);\r\n }\r\n\r\n // Page size\r\n onPageSizeChange(value: string): void {\r\n this.pageSize.set(Number(value));\r\n }\r\n\r\n // Selection\r\n toggleSelectAll(): void {\r\n if (this.allSelected()) {\r\n const page = this.paginatedData();\r\n this.selectedRows.update((sel) =>\r\n sel.filter((r) => !page.some((p) => this.rowsEqual(r, p)))\r\n );\r\n } else {\r\n const page = this.paginatedData();\r\n this.selectedRows.update((sel) => {\r\n const newSel = [...sel];\r\n for (const row of page) {\r\n if (!this.isRowInList(row, newSel)) newSel.push(row);\r\n }\r\n return newSel;\r\n });\r\n }\r\n }\r\n\r\n toggleRowSelection(row: Record<string, unknown>): void {\r\n this.selectedRows.update((sel) =>\r\n this.isRowInList(row, sel)\r\n ? sel.filter((r) => !this.rowsEqual(r, row))\r\n : [...sel, row]\r\n );\r\n }\r\n\r\n // Row click\r\n onRowClick(row: Record<string, unknown>): void {\r\n this.rowClicked.emit(row);\r\n }\r\n\r\n // Export\r\n onExport(): void {\r\n this.dataExported.emit(this.filteredData());\r\n }\r\n\r\n // Column visibility\r\n toggleColumnVisibility(key: string): void {\r\n this.hiddenColumns.update((set) => {\r\n const next = new Set(set);\r\n if (next.has(key)) next.delete(key);\r\n else next.add(key);\r\n return next;\r\n });\r\n }\r\n\r\n // Expansion\r\n toggleRowExpansion(row: Record<string, unknown>): void {\r\n const key = this.trackBy() ? row[this.trackBy()] : row;\r\n this.expandedRows.update((set) => {\r\n const next = new Set(set);\r\n if (next.has(key)) next.delete(key);\r\n else next.add(key);\r\n return next;\r\n });\r\n }\r\n\r\n isExpanded(row: Record<string, unknown>): boolean {\r\n const key = this.trackBy() ? row[this.trackBy()] : row;\r\n return this.expandedRows().has(key);\r\n }\r\n\r\n // Helpers\r\n isSelected(row: Record<string, unknown>): boolean {\r\n return this.isRowInList(row, this.selectedRows());\r\n }\r\n\r\n trackByFn(row: Record<string, unknown>, index: number): unknown {\r\n const key = this.trackBy();\r\n return key ? row[key] : index;\r\n }\r\n\r\n private isRowInList(\r\n row: Record<string, unknown>,\r\n list: Record<string, unknown>[]\r\n ): boolean {\r\n return list.some((r) => this.rowsEqual(r, row));\r\n }\r\n\r\n private rowsEqual(\r\n a: Record<string, unknown>,\r\n b: Record<string, unknown>\r\n ): boolean {\r\n const key = this.trackBy();\r\n if (key) return a[key] === b[key];\r\n return a === b;\r\n }\r\n}\r\n","import type { Observable } from 'rxjs';\r\n\r\ninterface CdkDialogRefLike<R> {\r\n close(result?: R): void;\r\n readonly closed: Observable<R | undefined>;\r\n}\r\n\r\nexport class TonSheetRef<R = unknown> {\r\n constructor(private readonly cdkRef: CdkDialogRefLike<R>) {}\r\n\r\n close(result?: R): void {\r\n this.cdkRef.close(result);\r\n }\r\n\r\n get closed(): Observable<R | undefined> {\r\n return this.cdkRef.closed;\r\n }\r\n}\r\n","export type SheetSide = 'left' | 'right' | 'top' | 'bottom';\r\n\r\nexport interface TonSheetConfig {\r\n side?: SheetSide;\r\n closeOnBackdrop?: boolean;\r\n closeOnEsc?: boolean;\r\n data?: unknown;\r\n ariaLabelledBy?: string;\r\n ariaDescribedBy?: string;\r\n}\r\n\r\nexport const DEFAULT_SHEET_CONFIG: TonSheetConfig = {\r\n side: 'right',\r\n closeOnBackdrop: true,\r\n closeOnEsc: true,\r\n};\r\n\r\nexport const SHEET_PANEL_CLASS: Record<SheetSide, string> = {\r\n right: 'ton-sheet-right',\r\n left: 'ton-sheet-left',\r\n top: 'ton-sheet-top',\r\n bottom: 'ton-sheet-bottom',\r\n};\r\n","import { Injectable, inject, InjectionToken, Injector } from '@angular/core';\r\nimport { Dialog, DialogRef as CdkDialogRef } from '@angular/cdk/dialog';\r\nimport { type ComponentType, createGlobalPositionStrategy, type GlobalPositionStrategy } from '@angular/cdk/overlay';\r\nimport { TonSheetRef } from './sheet-ref';\r\nimport { DEFAULT_SHEET_CONFIG, SHEET_PANEL_CLASS, type SheetSide, type TonSheetConfig } from './sheet.types';\r\n\r\nexport const TON_SHEET_DATA = new InjectionToken<unknown>('TON_SHEET_DATA');\r\n\r\ninterface SheetOverlayConfig {\r\n positionStrategy: GlobalPositionStrategy;\r\n width?: string;\r\n maxWidth?: string;\r\n height?: string;\r\n maxHeight?: string;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TonSheetService {\r\n private readonly cdkDialog = inject(Dialog);\r\n private readonly injector = inject(Injector);\r\n\r\n open<T, R = unknown>(component: ComponentType<T>, config: TonSheetConfig = {}): TonSheetRef<R> {\r\n const merged = { ...DEFAULT_SHEET_CONFIG, ...config };\r\n const side = merged.side ?? 'right';\r\n const disableClose = !merged.closeOnBackdrop || !merged.closeOnEsc;\r\n const overlay = this._getOverlayConfig(side);\r\n\r\n const cdkRef: CdkDialogRef<R, T> = this.cdkDialog.open(component, {\r\n disableClose,\r\n hasBackdrop: true,\r\n backdropClass: 'ton-dialog-backdrop',\r\n panelClass: ['ton-sheet-panel', SHEET_PANEL_CLASS[side]],\r\n positionStrategy: overlay.positionStrategy,\r\n width: overlay.width,\r\n maxWidth: overlay.maxWidth,\r\n height: overlay.height,\r\n maxHeight: overlay.maxHeight,\r\n ariaLabelledBy: merged.ariaLabelledBy,\r\n ariaDescribedBy: merged.ariaDescribedBy,\r\n data: merged.data,\r\n providers: merged.data != null\r\n ? [{ provide: TON_SHEET_DATA, useValue: merged.data }]\r\n : [],\r\n });\r\n\r\n if (disableClose) {\r\n if (merged.closeOnBackdrop) {\r\n const sub = cdkRef.backdropClick.subscribe(() => cdkRef.close());\r\n cdkRef.closed.subscribe(() => sub.unsubscribe());\r\n }\r\n if (merged.closeOnEsc) {\r\n const sub = cdkRef.keydownEvents.subscribe(event => {\r\n if (event.key === 'Escape') cdkRef.close();\r\n });\r\n cdkRef.closed.subscribe(() => sub.unsubscribe());\r\n }\r\n }\r\n\r\n return new TonSheetRef<R>(cdkRef);\r\n }\r\n\r\n closeAll(): void {\r\n this.cdkDialog.closeAll();\r\n }\r\n\r\n private _getOverlayConfig(side: SheetSide): SheetOverlayConfig {\r\n const strategy = createGlobalPositionStrategy(this.injector);\r\n\r\n switch (side) {\r\n case 'right':\r\n return {\r\n positionStrategy: strategy.top('0').right('0'),\r\n width: '75%',\r\n maxWidth: '24rem',\r\n height: '100vh',\r\n maxHeight: '100vh',\r\n };\r\n case 'left':\r\n return {\r\n positionStrategy: strategy.top('0').left('0'),\r\n width: '75%',\r\n maxWidth: '24rem',\r\n height: '100vh',\r\n maxHeight: '100vh',\r\n };\r\n case 'top':\r\n return {\r\n positionStrategy: strategy.top('0').centerHorizontally(),\r\n width: '100vw',\r\n maxWidth: '100vw',\r\n };\r\n case 'bottom':\r\n return {\r\n positionStrategy: strategy.bottom('0').centerHorizontally(),\r\n width: '100vw',\r\n maxWidth: '100vw',\r\n };\r\n }\r\n }\r\n}\r\n","import { Directive, computed, input, inject } from '@angular/core';\r\nimport { DialogRef } from '@angular/cdk/dialog';\r\nimport { cn } from '../core/utils/cn';\r\n\r\n@Directive({\r\n selector: '[tonSheetHeader]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonSheetHeaderDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('flex flex-col space-y-2', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonSheetTitle]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonSheetTitleDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('text-lg font-semibold text-foreground', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonSheetDescription]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonSheetDescriptionDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('text-sm text-muted-foreground', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonSheetContent]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonSheetContentDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('py-4', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonSheetClose]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n '(click)': 'onClick()',\r\n },\r\n})\r\nexport class TonSheetCloseDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n 'absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\r\n this.class()\r\n )\r\n );\r\n\r\n private readonly dialogRef = inject(DialogRef, { optional: true });\r\n\r\n onClick(): void {\r\n this.dialogRef?.close();\r\n }\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const alertVariants = cva(\r\n 'relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground',\r\n {\r\n variants: {\r\n variant: {\r\n default:\r\n 'bg-background text-foreground border-border',\r\n destructive:\r\n 'border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive bg-destructive/10',\r\n success:\r\n 'border-green-500/50 text-green-700 dark:text-green-400 dark:border-green-500 [&>svg]:text-green-600 bg-green-50 dark:bg-green-950/30',\r\n warning:\r\n 'border-yellow-500/50 text-yellow-700 dark:text-yellow-400 dark:border-yellow-500 [&>svg]:text-yellow-600 bg-yellow-50 dark:bg-yellow-950/30',\r\n info: 'border-blue-500/50 text-blue-700 dark:text-blue-400 dark:border-blue-500 [&>svg]:text-blue-600 bg-blue-50 dark:bg-blue-950/30',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n }\r\n);\r\n\r\nexport type AlertVariant = 'default' | 'destructive' | 'success' | 'warning' | 'info';\r\n","import { Directive, computed, input, signal } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport { alertVariants, type AlertVariant } from './alert.variants';\r\n\r\n@Directive({\r\n selector: '[tonAlert]',\r\n exportAs: 'tonAlert',\r\n host: {\r\n '[class]': 'computedClass()',\r\n '[attr.role]': 'role()',\r\n '[attr.aria-live]': 'ariaLive()',\r\n '[style.display]': 'visible() ? null : \"none\"',\r\n },\r\n})\r\nexport class TonAlertDirective {\r\n readonly variant = input<AlertVariant>('default');\r\n readonly dismissible = input(false);\r\n readonly class = input<string>('');\r\n\r\n readonly visible = signal(true);\r\n\r\n protected readonly role = computed(() => {\r\n const v = this.variant();\r\n return v === 'destructive' || v === 'warning' || v === 'info' ? 'alert' : 'status';\r\n });\r\n\r\n protected readonly ariaLive = computed(() => {\r\n const v = this.variant();\r\n return v === 'destructive' || v === 'warning' ? 'assertive' : 'polite';\r\n });\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(alertVariants({ variant: this.variant() }), this.class())\r\n );\r\n\r\n dismiss(): void {\r\n this.visible.set(false);\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[tonAlertTitle]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonAlertTitleDirective {\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn('mb-1 font-medium leading-none tracking-tight', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonAlertDescription]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonAlertDescriptionDirective {\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn('text-sm [&_p]:leading-relaxed', this.class())\r\n );\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const textareaVariants = cva(\r\n 'flex w-full rounded-md border bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'border-input',\r\n error:\r\n 'border-destructive focus-visible:ring-destructive text-destructive placeholder:text-destructive/60',\r\n },\r\n textareaSize: {\r\n sm: 'min-h-[60px] text-xs',\r\n md: 'min-h-[80px] text-sm',\r\n lg: 'min-h-[120px] text-base',\r\n },\r\n resize: {\r\n none: 'resize-none',\r\n vertical: 'resize-y',\r\n horizontal: 'resize-x',\r\n both: 'resize',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n textareaSize: 'md',\r\n resize: 'vertical',\r\n },\r\n }\r\n);\r\n\r\nexport type TextareaVariant = 'default' | 'error';\r\nexport type TextareaSize = 'sm' | 'md' | 'lg';\r\nexport type TextareaResize = 'none' | 'vertical' | 'horizontal' | 'both';\r\n","import {\r\n Directive,\r\n computed,\r\n input,\r\n effect,\r\n inject,\r\n ElementRef,\r\n afterNextRender,\r\n} from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport {\r\n textareaVariants,\r\n type TextareaVariant,\r\n type TextareaSize,\r\n type TextareaResize,\r\n} from './textarea.variants';\r\n\r\n@Directive({\r\n selector: 'textarea[tonTextarea]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n '[attr.aria-invalid]': 'variant() === \"error\" || null',\r\n '(input)': 'onInput()',\r\n },\r\n})\r\nexport class TonTextareaDirective {\r\n readonly variant = input<TextareaVariant>('default');\r\n readonly textareaSize = input<TextareaSize>('md');\r\n readonly resize = input<TextareaResize>('vertical');\r\n readonly autoResize = input(false);\r\n readonly class = input<string>('');\r\n\r\n private readonly el = inject(ElementRef<HTMLTextAreaElement>);\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n textareaVariants({\r\n variant: this.variant(),\r\n textareaSize: this.textareaSize(),\r\n resize: this.autoResize() ? 'none' : this.resize(),\r\n }),\r\n this.class()\r\n )\r\n );\r\n\r\n constructor() {\r\n afterNextRender(() => {\r\n if (this.autoResize()) {\r\n this.adjustHeight();\r\n }\r\n });\r\n\r\n effect(() => {\r\n if (this.autoResize()) {\r\n this.adjustHeight();\r\n }\r\n });\r\n }\r\n\r\n protected onInput(): void {\r\n if (this.autoResize()) {\r\n this.adjustHeight();\r\n }\r\n }\r\n\r\n private adjustHeight(): void {\r\n const textarea = this.el.nativeElement;\r\n textarea.style.height = 'auto';\r\n textarea.style.height = `${textarea.scrollHeight}px`;\r\n }\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const progressTrackVariants = cva(\r\n 'relative w-full overflow-hidden rounded-full bg-secondary',\r\n {\r\n variants: {\r\n size: {\r\n sm: 'h-1.5',\r\n md: 'h-2.5',\r\n lg: 'h-4',\r\n },\r\n },\r\n defaultVariants: {\r\n size: 'md',\r\n },\r\n }\r\n);\r\n\r\nexport const progressBarVariants = cva(\r\n 'h-full rounded-full transition-all duration-300 ease-in-out',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'bg-primary',\r\n success: 'bg-green-600 dark:bg-green-500',\r\n warning: 'bg-yellow-500 dark:bg-yellow-400',\r\n error: 'bg-destructive',\r\n info: 'bg-blue-600 dark:bg-blue-500',\r\n },\r\n indeterminate: {\r\n true: 'animate-progress-indeterminate w-1/3',\r\n false: '',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n indeterminate: false,\r\n },\r\n }\r\n);\r\n\r\nexport type ProgressVariant = 'default' | 'success' | 'warning' | 'error' | 'info';\r\nexport type ProgressSize = 'sm' | 'md' | 'lg';\r\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport {\r\n progressTrackVariants,\r\n progressBarVariants,\r\n type ProgressVariant,\r\n type ProgressSize,\r\n} from './progress.variants';\r\n\r\n@Component({\r\n selector: 'ton-progress',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n 'role': 'progressbar',\r\n '[attr.aria-valuenow]': 'indeterminate() ? null : value()',\r\n '[attr.aria-valuemin]': '0',\r\n '[attr.aria-valuemax]': 'max()',\r\n '[attr.aria-label]': 'label()',\r\n '[class]': '\"w-full\"',\r\n },\r\n template: `\r\n <div [class]=\"trackClass()\">\r\n <div\r\n [class]=\"barClass()\"\r\n [style.width.%]=\"indeterminate() ? null : percentage()\"\r\n ></div>\r\n </div>\r\n `,\r\n styles: `\r\n @keyframes progress-indeterminate {\r\n 0% { transform: translateX(-100%); }\r\n 100% { transform: translateX(400%); }\r\n }\r\n :host .animate-progress-indeterminate {\r\n animation: progress-indeterminate 1.5s ease-in-out infinite;\r\n }\r\n `,\r\n})\r\nexport class TonProgressComponent {\r\n readonly value = input(0);\r\n readonly max = input(100);\r\n readonly variant = input<ProgressVariant>('default');\r\n readonly size = input<ProgressSize>('md');\r\n readonly indeterminate = input(false);\r\n readonly label = input('Progress');\r\n readonly class = input<string>('');\r\n\r\n readonly percentage = computed(() =>\r\n Math.min(100, (this.value() / this.max()) * 100)\r\n );\r\n\r\n protected readonly trackClass = computed(() =>\r\n cn(progressTrackVariants({ size: this.size() }), this.class())\r\n );\r\n\r\n protected readonly barClass = computed(() =>\r\n cn(\r\n progressBarVariants({\r\n variant: this.variant(),\r\n indeterminate: this.indeterminate(),\r\n })\r\n )\r\n );\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const tooltipVariants = cva(\r\n 'z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95',\r\n {\r\n variants: {\r\n position: {\r\n top: 'slide-in-from-bottom-2',\r\n bottom: 'slide-in-from-top-2',\r\n left: 'slide-in-from-right-2',\r\n right: 'slide-in-from-left-2',\r\n },\r\n },\r\n defaultVariants: {\r\n position: 'top',\r\n },\r\n }\r\n);\r\n\r\nexport type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';\r\n","import {\r\n Directive,\r\n ElementRef,\r\n OnDestroy,\r\n Renderer2,\r\n computed,\r\n inject,\r\n input,\r\n signal,\r\n afterNextRender,\r\n} from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport { tooltipVariants, type TooltipPosition } from './tooltip.variants';\r\n\r\nlet tooltipIdCounter = 0;\r\n\r\n@Directive({\r\n selector: '[tonTooltip]',\r\n exportAs: 'tonTooltip',\r\n host: {\r\n '(mouseenter)': 'show()',\r\n '(mouseleave)': 'hide()',\r\n '(focus)': 'show()',\r\n '(blur)': 'hide()',\r\n '(keydown.escape)': 'hide()',\r\n '[attr.aria-describedby]': 'isOpen() ? tooltipId : null',\r\n },\r\n})\r\nexport class TonTooltipDirective implements OnDestroy {\r\n readonly tonTooltip = input.required<string>();\r\n readonly tooltipPosition = input<TooltipPosition>('top');\r\n readonly tooltipDelay = input(300);\r\n readonly tooltipDisabled = input(false);\r\n readonly class = input<string>('');\r\n\r\n readonly isOpen = signal(false);\r\n readonly tooltipId = `ton-tooltip-${++tooltipIdCounter}`;\r\n\r\n private readonly el = inject(ElementRef<HTMLElement>);\r\n private readonly renderer = inject(Renderer2);\r\n private showTimeout: ReturnType<typeof setTimeout> | null = null;\r\n private tooltipEl: HTMLElement | null = null;\r\n\r\n constructor() {\r\n afterNextRender(() => {\r\n // cleanup handled in ngOnDestroy\r\n });\r\n }\r\n\r\n show(): void {\r\n if (this.tooltipDisabled()) return;\r\n this.showTimeout = setTimeout(() => {\r\n this.createTooltip();\r\n this.isOpen.set(true);\r\n }, this.tooltipDelay());\r\n }\r\n\r\n hide(): void {\r\n if (this.showTimeout) {\r\n clearTimeout(this.showTimeout);\r\n this.showTimeout = null;\r\n }\r\n this.destroyTooltip();\r\n this.isOpen.set(false);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.hide();\r\n }\r\n\r\n private createTooltip(): void {\r\n if (this.tooltipEl) return;\r\n\r\n const tooltip = this.renderer.createElement('div') as HTMLElement;\r\n tooltip.id = this.tooltipId;\r\n tooltip.setAttribute('role', 'tooltip');\r\n tooltip.className = cn(\r\n tooltipVariants({ position: this.tooltipPosition() }),\r\n 'fixed pointer-events-none',\r\n this.class()\r\n );\r\n tooltip.textContent = this.tonTooltip();\r\n\r\n this.renderer.appendChild(document.body, tooltip);\r\n this.tooltipEl = tooltip;\r\n\r\n this.positionTooltip();\r\n }\r\n\r\n private positionTooltip(): void {\r\n if (!this.tooltipEl) return;\r\n\r\n const hostRect = this.el.nativeElement.getBoundingClientRect();\r\n const tooltipRect = this.tooltipEl.getBoundingClientRect();\r\n const position = this.tooltipPosition();\r\n const gap = 8;\r\n\r\n let top = 0;\r\n let left = 0;\r\n\r\n switch (position) {\r\n case 'top':\r\n top = hostRect.top - tooltipRect.height - gap;\r\n left = hostRect.left + (hostRect.width - tooltipRect.width) / 2;\r\n break;\r\n case 'bottom':\r\n top = hostRect.bottom + gap;\r\n left = hostRect.left + (hostRect.width - tooltipRect.width) / 2;\r\n break;\r\n case 'left':\r\n top = hostRect.top + (hostRect.height - tooltipRect.height) / 2;\r\n left = hostRect.left - tooltipRect.width - gap;\r\n break;\r\n case 'right':\r\n top = hostRect.top + (hostRect.height - tooltipRect.height) / 2;\r\n left = hostRect.right + gap;\r\n break;\r\n }\r\n\r\n this.tooltipEl.style.top = `${top}px`;\r\n this.tooltipEl.style.left = `${left}px`;\r\n }\r\n\r\n private destroyTooltip(): void {\r\n if (this.tooltipEl) {\r\n this.tooltipEl.remove();\r\n this.tooltipEl = null;\r\n }\r\n }\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const fileInputVariants = cva(\r\n 'flex w-full cursor-pointer items-center gap-2 rounded-md border bg-background px-3 py-2 text-sm ring-offset-background transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'border-input',\r\n error: 'border-destructive focus-visible:ring-destructive',\r\n },\r\n size: {\r\n sm: 'h-8 text-xs',\r\n md: 'h-10 text-sm',\r\n lg: 'h-12 text-base',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n size: 'md',\r\n },\r\n }\r\n);\r\n\r\nexport type FileInputVariant = 'default' | 'error';\r\nexport type FileInputSize = 'sm' | 'md' | 'lg';\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n forwardRef,\r\n input,\r\n model,\r\n output,\r\n signal,\r\n viewChild,\r\n ElementRef,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { cn } from '../core/utils/cn';\r\nimport {\r\n fileInputVariants,\r\n type FileInputVariant,\r\n type FileInputSize,\r\n} from './file-input.variants';\r\n\r\n@Component({\r\n selector: 'ton-file-input',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n '[class]': '\"w-full\"',\r\n },\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TonFileInputComponent), multi: true },\r\n ],\r\n template: `\r\n <label\r\n [class]=\"labelClass()\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n >\r\n <input\r\n #fileInput\r\n type=\"file\"\r\n class=\"sr-only\"\r\n [accept]=\"accept()\"\r\n [multiple]=\"multiple()\"\r\n [disabled]=\"isDisabled()\"\r\n [attr.aria-label]=\"placeholder()\"\r\n [attr.aria-invalid]=\"variant() === 'error' || null\"\r\n (change)=\"onFileSelected($event)\"\r\n (blur)=\"onTouched()\"\r\n />\r\n <span class=\"truncate text-muted-foreground\">{{ fileName() }}</span>\r\n </label>\r\n `,\r\n})\r\nexport class TonFileInputComponent implements ControlValueAccessor {\r\n readonly accept = input('');\r\n readonly multiple = input(false);\r\n readonly disabled = input(false);\r\n readonly placeholder = input('Choose file...');\r\n readonly variant = input<FileInputVariant>('default');\r\n readonly size = input<FileInputSize>('md');\r\n readonly maxSize = input(0);\r\n readonly class = input<string>('');\r\n\r\n readonly value = model<FileList | null>(null);\r\n readonly fileChange = output<FileList>();\r\n readonly error = output<string>();\r\n\r\n private readonly _disabledByCva = signal(false);\r\n protected readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\r\n\r\n private readonly fileInputRef = viewChild<ElementRef<HTMLInputElement>>('fileInput');\r\n readonly isDragOver = signal(false);\r\n\r\n private _onChange: (value: FileList | null) => void = () => {};\r\n protected onTouched: () => void = () => {};\r\n\r\n writeValue(val: FileList | null): void {\r\n this.value.set(val ?? null);\r\n }\r\n\r\n registerOnChange(fn: (value: FileList | null) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._disabledByCva.set(isDisabled);\r\n }\r\n\r\n readonly fileName = computed(() => {\r\n const files = this.value();\r\n if (!files || files.length === 0) return this.placeholder();\r\n if (files.length === 1) return files[0].name;\r\n return `${files.length} files selected`;\r\n });\r\n\r\n protected readonly labelClass = computed(() =>\r\n cn(\r\n fileInputVariants({ variant: this.variant(), size: this.size() }),\r\n this.isDragOver() && 'ring-2 ring-ring',\r\n this.class()\r\n )\r\n );\r\n\r\n onFileSelected(event: Event): void {\r\n const input = event.target as HTMLInputElement;\r\n if (input.files) {\r\n this.processFiles(input.files);\r\n }\r\n }\r\n\r\n onDragOver(event: DragEvent): void {\r\n event.preventDefault();\r\n if (!this.isDisabled()) {\r\n this.isDragOver.set(true);\r\n }\r\n }\r\n\r\n onDragLeave(event: DragEvent): void {\r\n event.preventDefault();\r\n this.isDragOver.set(false);\r\n }\r\n\r\n onDrop(event: DragEvent): void {\r\n event.preventDefault();\r\n this.isDragOver.set(false);\r\n if (!this.isDisabled() && event.dataTransfer?.files) {\r\n this.processFiles(event.dataTransfer.files);\r\n }\r\n }\r\n\r\n clear(): void {\r\n this.value.set(null);\r\n this._onChange(null);\r\n const inputEl = this.fileInputRef()?.nativeElement;\r\n if (inputEl) inputEl.value = '';\r\n }\r\n\r\n private processFiles(files: FileList): void {\r\n const maxSize = this.maxSize();\r\n if (maxSize > 0) {\r\n for (let i = 0; i < files.length; i++) {\r\n if (files[i].size > maxSize) {\r\n this.error.emit(`File \"${files[i].name}\" exceeds maximum size of ${maxSize} bytes`);\r\n return;\r\n }\r\n }\r\n }\r\n this.value.set(files);\r\n this._onChange(files);\r\n this.fileChange.emit(files);\r\n }\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const fieldsetVariants = cva('space-y-4', {\r\n variants: {\r\n variant: {\r\n default: '',\r\n bordered: 'rounded-lg border border-border p-4',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n});\r\n\r\nexport type FieldsetVariant = 'default' | 'bordered';\r\n","import { Directive, computed, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport { fieldsetVariants, type FieldsetVariant } from './fieldset.variants';\r\n\r\n@Directive({\r\n selector: 'fieldset[tonFieldset]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n '[attr.disabled]': 'disabled() || null',\r\n '[attr.aria-disabled]': 'disabled() || null',\r\n },\r\n})\r\nexport class TonFieldsetDirective {\r\n readonly variant = input<FieldsetVariant>('default');\r\n readonly disabled = input(false);\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(fieldsetVariants({ variant: this.variant() }), this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: 'legend[tonFieldsetLegend]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonFieldsetLegendDirective {\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn('text-sm font-medium leading-none', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonFieldsetContent]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonFieldsetContentDirective {\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn('space-y-2', this.class())\r\n );\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const ratingVariants = cva(\r\n 'inline-flex items-center gap-0.5 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 rounded',\r\n {\r\n variants: {\r\n size: {\r\n sm: '[&_svg]:w-4 [&_svg]:h-4',\r\n md: '[&_svg]:w-5 [&_svg]:h-5',\r\n lg: '[&_svg]:w-7 [&_svg]:h-7',\r\n },\r\n },\r\n defaultVariants: {\r\n size: 'md',\r\n },\r\n }\r\n);\r\n\r\nexport type RatingSize = 'sm' | 'md' | 'lg';\r\nexport type RatingVariant = 'star' | 'heart';\r\n","import { ChangeDetectionStrategy, Component, computed, forwardRef, input, model, signal } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { cn } from '../core/utils/cn';\r\nimport { ratingVariants, type RatingSize, type RatingVariant } from './rating.variants';\r\n\r\ninterface StarState {\r\n index: number;\r\n fill: 'full' | 'half' | 'empty';\r\n}\r\n\r\n@Component({\r\n selector: 'ton-rating',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n 'role': 'slider',\r\n 'tabindex': '0',\r\n '[attr.aria-valuenow]': 'value()',\r\n '[attr.aria-valuemin]': '0',\r\n '[attr.aria-valuemax]': 'max()',\r\n '[attr.aria-label]': '\"Rating\"',\r\n '[attr.aria-readonly]': 'readonly() || null',\r\n '[class]': 'computedClass()',\r\n '(keydown)': 'onKeydown($event)',\r\n '(mouseleave)': 'onMouseLeave()',\r\n '(blur)': 'onTouched()',\r\n },\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TonRatingComponent), multi: true },\r\n ],\r\n template: `\r\n @for (star of stars(); track star.index) {\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 24 24\"\r\n [class]=\"starClass(star)\"\r\n (click)=\"onStarClick(star.index + 1)\"\r\n (mouseenter)=\"onStarHover(star.index + 1)\"\r\n >\r\n @if (ratingVariant() === 'star') {\r\n <polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\" />\r\n } @else {\r\n <path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\" />\r\n }\r\n </svg>\r\n }\r\n `,\r\n})\r\nexport class TonRatingComponent implements ControlValueAccessor {\r\n readonly value = model(0);\r\n readonly max = input(5);\r\n readonly readonly = input(false);\r\n readonly size = input<RatingSize>('md');\r\n readonly ratingVariant = input<RatingVariant>('star');\r\n readonly half = input(false);\r\n readonly class = input<string>('');\r\n\r\n private readonly _disabledByCva = signal(false);\r\n protected readonly isDisabled = computed(() => this.readonly() || this._disabledByCva());\r\n\r\n readonly hoverValue = signal<number | null>(null);\r\n\r\n private _onChange: (value: number) => void = () => {};\r\n protected onTouched: () => void = () => {};\r\n\r\n writeValue(val: number): void {\r\n this.value.set(val ?? 0);\r\n }\r\n\r\n registerOnChange(fn: (value: number) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._disabledByCva.set(isDisabled);\r\n }\r\n\r\n readonly displayValue = computed(() => this.hoverValue() ?? this.value());\r\n\r\n readonly stars = computed<StarState[]>(() => {\r\n const display = this.displayValue();\r\n const m = this.max();\r\n return Array.from({ length: m }, (_, i) => {\r\n let fill: 'full' | 'half' | 'empty';\r\n if (i + 1 <= display) {\r\n fill = 'full';\r\n } else if (this.half() && i + 0.5 <= display) {\r\n fill = 'half';\r\n } else {\r\n fill = 'empty';\r\n }\r\n return { index: i, fill };\r\n });\r\n });\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n ratingVariants({ size: this.size() }),\r\n this.isDisabled() && 'pointer-events-none',\r\n this.class()\r\n )\r\n );\r\n\r\n starClass(star: StarState): string {\r\n const base = 'cursor-pointer transition-colors';\r\n switch (star.fill) {\r\n case 'full':\r\n return cn(base, 'fill-yellow-400 stroke-yellow-400');\r\n case 'half':\r\n return cn(base, 'fill-yellow-400/50 stroke-yellow-400');\r\n case 'empty':\r\n return cn(base, 'fill-none stroke-muted-foreground');\r\n }\r\n }\r\n\r\n onStarClick(index: number): void {\r\n if (this.isDisabled()) return;\r\n this.value.set(index);\r\n this._onChange(index);\r\n }\r\n\r\n onStarHover(index: number): void {\r\n if (this.isDisabled()) return;\r\n this.hoverValue.set(index);\r\n }\r\n\r\n onMouseLeave(): void {\r\n this.hoverValue.set(null);\r\n }\r\n\r\n onKeydown(event: KeyboardEvent): void {\r\n if (this.isDisabled()) return;\r\n const step = this.half() ? 0.5 : 1;\r\n let newVal: number | undefined;\r\n switch (event.key) {\r\n case 'ArrowRight':\r\n case 'ArrowUp':\r\n event.preventDefault();\r\n newVal = Math.min(this.max(), this.value() + step);\r\n break;\r\n case 'ArrowLeft':\r\n case 'ArrowDown':\r\n event.preventDefault();\r\n newVal = Math.max(0, this.value() - step);\r\n break;\r\n case 'Home':\r\n event.preventDefault();\r\n newVal = 0;\r\n break;\r\n case 'End':\r\n event.preventDefault();\r\n newVal = this.max();\r\n break;\r\n }\r\n if (newVal !== undefined) {\r\n this.value.set(newVal);\r\n this._onChange(newVal);\r\n }\r\n }\r\n}\r\n","import { Directive, computed, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\n\r\nexport type NavbarVariant = 'default' | 'bordered' | 'floating';\r\n\r\n@Directive({\r\n selector: '[tonNavbar]',\r\n host: {\r\n 'role': 'navigation',\r\n '[attr.aria-label]': 'ariaLabel()',\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonNavbarDirective {\r\n readonly variant = input<NavbarVariant>('default');\r\n readonly sticky = input(false);\r\n readonly ariaLabel = input<string>('Main navigation');\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() => {\r\n const v = this.variant();\r\n const base = 'flex items-center justify-between px-4 py-2 w-full bg-background';\r\n const variantClass =\r\n v === 'bordered' ? 'border-b border-border' :\r\n v === 'floating' ? 'mx-4 mt-2 rounded-lg border border-border shadow-sm' :\r\n '';\r\n const stickyClass = this.sticky() ? 'sticky top-0 z-40' : '';\r\n return cn(base, variantClass, stickyClass, this.class());\r\n });\r\n}\r\n\r\n@Directive({\r\n selector: '[tonNavbarBrand]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonNavbarBrandDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() => cn('flex items-center gap-2 font-bold text-lg', this.class()));\r\n}\r\n\r\n@Directive({\r\n selector: '[tonNavbarContent]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonNavbarContentDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() => cn('flex items-center gap-1', this.class()));\r\n}\r\n\r\n@Directive({\r\n selector: '[tonNavbarEnd]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonNavbarEndDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() => cn('flex items-center gap-2 ml-auto', this.class()));\r\n}\r\n","import { ChangeDetectionStrategy, Component, Directive, InjectionToken, computed, inject, input, signal } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\n\r\nexport const TON_DRAWER = new InjectionToken<TonDrawerLayoutComponent>('TonDrawer');\r\n\r\n@Component({\r\n selector: '[tonDrawerLayout]',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'tonDrawerLayout',\r\n providers: [{ provide: TON_DRAWER, useExisting: TonDrawerLayoutComponent }],\r\n host: {\r\n '[class]': 'computedClass()',\r\n },\r\n template: `\r\n <ng-content />\r\n @if (isOpen() && overlay()) {\r\n <div\r\n class=\"fixed inset-0 z-30 bg-black/50 transition-opacity\"\r\n (click)=\"close()\"\r\n ></div>\r\n }\r\n `,\r\n})\r\nexport class TonDrawerLayoutComponent {\r\n readonly class = input<string>('');\r\n readonly overlay = input(true);\r\n readonly isOpen = signal(false);\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn('relative flex h-full w-full overflow-hidden', this.class())\r\n );\r\n\r\n toggle(): void { this.isOpen.update((v) => !v); }\r\n open(): void { this.isOpen.set(true); }\r\n close(): void { this.isOpen.set(false); }\r\n}\r\n\r\n/** @deprecated Use TonDrawerLayoutComponent instead */\r\nexport const TonDrawerLayoutDirective = TonDrawerLayoutComponent;\r\n\r\n@Directive({\r\n selector: '[tonDrawerContent]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonDrawerContentDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('flex-1 overflow-auto', this.class())\r\n );\r\n}\r\n\r\nexport type DrawerSide = 'left' | 'right';\r\n\r\n@Directive({\r\n selector: '[tonDrawerSide]',\r\n host: {\r\n 'role': 'navigation',\r\n 'aria-label': 'Sidebar navigation',\r\n '[attr.aria-modal]': 'drawer.overlay() && drawer.isOpen() || null',\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonDrawerSideDirective {\r\n protected readonly drawer = inject(TON_DRAWER);\r\n readonly side = input<DrawerSide>('left');\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() => {\r\n const isOpen = this.drawer.isOpen();\r\n const s = this.side();\r\n const base = 'fixed inset-y-0 z-50 w-64 bg-background border-r border-border transition-transform duration-300 ease-in-out overflow-y-auto';\r\n const sideClass = s === 'left' ? 'left-0' : 'right-0 border-l border-r-0';\r\n const transformClass = isOpen\r\n ? 'translate-x-0'\r\n : s === 'left' ? '-translate-x-full' : 'translate-x-full';\r\n return cn(base, sideClass, transformClass, this.class());\r\n });\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const dividerVariants = cva('shrink-0 bg-border', {\r\n variants: {\r\n orientation: {\r\n horizontal: 'h-[1px] w-full',\r\n vertical: 'h-full w-[1px]',\r\n },\r\n variant: {\r\n solid: '',\r\n dashed: 'border-dashed',\r\n dotted: 'border-dotted',\r\n },\r\n },\r\n defaultVariants: {\r\n orientation: 'horizontal',\r\n variant: 'solid',\r\n },\r\n});\r\n\r\nexport type DividerOrientation = 'horizontal' | 'vertical';\r\nexport type DividerVariant = 'solid' | 'dashed' | 'dotted';\r\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport {\r\n dividerVariants,\r\n type DividerOrientation,\r\n type DividerVariant,\r\n} from './divider.variants';\r\n\r\n@Component({\r\n selector: 'ton-divider',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n 'role': 'separator',\r\n '[attr.aria-orientation]': 'orientation()',\r\n },\r\n template: `\r\n @if (hasLabel()) {\r\n <div [class]=\"labelContainerClass()\">\r\n <div [class]=\"lineClass()\"></div>\r\n <span class=\"px-2 text-xs text-muted-foreground\">{{ label() }}</span>\r\n <div [class]=\"lineClass()\"></div>\r\n </div>\r\n } @else {\r\n <div [class]=\"dividerClass()\"></div>\r\n }\r\n `,\r\n})\r\nexport class TonDividerComponent {\r\n readonly orientation = input<DividerOrientation>('horizontal');\r\n readonly variant = input<DividerVariant>('solid');\r\n readonly label = input<string>('');\r\n readonly class = input<string>('');\r\n\r\n readonly hasLabel = computed(() => !!this.label());\r\n\r\n protected readonly dividerClass = computed(() =>\r\n cn(dividerVariants({ orientation: this.orientation(), variant: this.variant() }), this.class())\r\n );\r\n\r\n protected readonly lineClass = computed(() =>\r\n cn('flex-1 bg-border', this.orientation() === 'horizontal' ? 'h-[1px]' : 'w-[1px]')\r\n );\r\n\r\n protected readonly labelContainerClass = computed(() =>\r\n cn(\r\n 'flex items-center',\r\n this.orientation() === 'horizontal' ? 'flex-row' : 'flex-col',\r\n this.class()\r\n )\r\n );\r\n}\r\n","import { Directive, InjectionToken, computed, contentChildren, inject, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\n\r\nexport const TON_STEPS = new InjectionToken<TonStepsDirective>('TonSteps');\r\n\r\nexport type StepStatus = 'default' | 'active' | 'completed' | 'error';\r\nexport type StepsOrientation = 'horizontal' | 'vertical';\r\nexport type StepsSize = 'sm' | 'md' | 'lg';\r\n\r\n@Directive({\r\n selector: '[tonStep]',\r\n host: {\r\n 'role': 'listitem',\r\n '[class]': 'computedClass()',\r\n '[attr.aria-current]': 'status() === \"active\" ? \"step\" : null',\r\n },\r\n})\r\nexport class TonStepDirective {\r\n readonly status = input<StepStatus>('default');\r\n readonly icon = input<string>('');\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() => {\r\n const s = this.status();\r\n const base = 'flex items-center gap-2';\r\n\r\n // Step indicator via before: pseudo-element\r\n const indicatorBase = 'before:flex before:items-center before:justify-center before:w-8 before:h-8 before:rounded-full before:border-2 before:text-xs before:shrink-0';\r\n\r\n const statusIndicator =\r\n s === 'completed' ? 'before:bg-primary before:border-primary before:text-primary-foreground before:content-[\"✓\"]' :\r\n s === 'active' ? 'before:border-primary before:text-primary before:content-[\"●\"]' :\r\n s === 'error' ? 'before:border-destructive before:text-destructive before:content-[\"!\"]' :\r\n 'before:border-muted-foreground/30 before:text-muted-foreground before:content-[\"○\"]';\r\n\r\n const statusClass =\r\n s === 'completed' ? 'text-primary' :\r\n s === 'active' ? 'text-primary font-medium' :\r\n s === 'error' ? 'text-destructive' :\r\n 'text-muted-foreground';\r\n\r\n return cn(base, indicatorBase, statusIndicator, statusClass, this.class());\r\n });\r\n}\r\n\r\n@Directive({\r\n selector: '[tonSteps]',\r\n exportAs: 'tonSteps',\r\n providers: [{ provide: TON_STEPS, useExisting: TonStepsDirective }],\r\n host: {\r\n 'role': 'list',\r\n 'aria-label': 'Progress steps',\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonStepsDirective {\r\n readonly orientation = input<StepsOrientation>('horizontal');\r\n readonly size = input<StepsSize>('md');\r\n readonly class = input<string>('');\r\n\r\n readonly steps = contentChildren(TonStepDirective);\r\n\r\n readonly activeIndex = computed(() => {\r\n const s = this.steps();\r\n return s.findIndex((step) => step.status() === 'active');\r\n });\r\n\r\n protected readonly computedClass = computed(() => {\r\n const o = this.orientation();\r\n const s = this.size();\r\n const base = 'flex';\r\n const orientationClass = o === 'horizontal'\r\n ? 'flex-row items-center gap-2 [&>*+*]:before:content-[\"\"] [&>*+*]:before:flex-1 [&>*+*]:before:h-px [&>*+*]:before:bg-border [&>*+*]:before:mx-2 [&>*+*]:before:min-w-[2rem]'\r\n : 'flex-col gap-2 [&>*+*]:before:content-[\"\"] [&>*+*]:before:w-px [&>*+*]:before:h-4 [&>*+*]:before:bg-border [&>*+*]:before:ml-4';\r\n const sizeClass = s === 'sm' ? 'text-xs' : s === 'lg' ? 'text-base' : 'text-sm';\r\n return cn(base, orientationClass, sizeClass, this.class());\r\n });\r\n}\r\n","import { Directive, InjectionToken, computed, inject, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\n\r\nexport const TON_STAT = new InjectionToken<TonStatDirective>('TonStat');\r\n\r\nlet statIdCounter = 0;\r\n\r\n@Directive({\r\n selector: '[tonStat]',\r\n providers: [{ provide: TON_STAT, useExisting: TonStatDirective }],\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonStatDirective {\r\n readonly class = input<string>('');\r\n readonly titleId = `ton-stat-title-${++statIdCounter}`;\r\n protected readonly computedClass = computed(() =>\r\n cn('flex flex-col gap-0.5', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonStatTitle]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n '[id]': 'stat.titleId',\r\n },\r\n})\r\nexport class TonStatTitleDirective {\r\n readonly class = input<string>('');\r\n readonly stat = inject(TON_STAT);\r\n protected readonly computedClass = computed(() =>\r\n cn('text-sm text-muted-foreground', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonStatValue]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n '[attr.aria-labelledby]': 'stat.titleId',\r\n },\r\n})\r\nexport class TonStatValueDirective {\r\n readonly class = input<string>('');\r\n readonly stat = inject(TON_STAT);\r\n protected readonly computedClass = computed(() =>\r\n cn('text-2xl font-bold', this.class())\r\n );\r\n}\r\n\r\nexport type StatDescriptionVariant = 'default' | 'success' | 'error';\r\n\r\n@Directive({\r\n selector: '[tonStatDescription]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonStatDescriptionDirective {\r\n readonly variant = input<StatDescriptionVariant>('default');\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() => {\r\n const v = this.variant();\r\n const variantClass =\r\n v === 'success' ? 'text-green-600 dark:text-green-400' :\r\n v === 'error' ? 'text-destructive' :\r\n 'text-muted-foreground';\r\n return cn('text-xs', variantClass, this.class());\r\n });\r\n}\r\n\r\n@Directive({\r\n selector: '[tonStatFigure]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonStatFigureDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('text-muted-foreground', this.class())\r\n );\r\n}\r\n","import { Directive, InjectionToken, computed, contentChildren, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\n\r\nexport const TON_TIMELINE = new InjectionToken<TonTimelineDirective>('TonTimeline');\r\nexport type TimelineOrientation = 'vertical' | 'horizontal';\r\nexport type TimelineConnect = 'start' | 'end' | 'both' | 'none';\r\nexport type TimelineMiddleVariant = 'default' | 'primary' | 'success' | 'error';\r\n\r\n@Directive({\r\n selector: '[tonTimelineItem]',\r\n host: { 'role': 'listitem', '[class]': 'computedClass()' },\r\n})\r\nexport class TonTimelineItemDirective {\r\n readonly connect = input<TimelineConnect>('both');\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('relative flex gap-4', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonTimelineStart]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonTimelineStartDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('text-sm text-muted-foreground min-w-[80px] text-right', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonTimelineMiddle]',\r\n host: { '[class]': 'computedClass()', 'aria-hidden': 'true' },\r\n})\r\nexport class TonTimelineMiddleDirective {\r\n readonly variant = input<TimelineMiddleVariant>('default');\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() => {\r\n const v = this.variant();\r\n const variantClass =\r\n v === 'primary' ? 'bg-primary' :\r\n v === 'success' ? 'bg-green-600 dark:bg-green-500' :\r\n v === 'error' ? 'bg-destructive' :\r\n 'bg-border';\r\n return cn('flex flex-col items-center', variantClass, this.class());\r\n });\r\n}\r\n\r\n@Directive({\r\n selector: '[tonTimelineEnd]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonTimelineEndDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('flex-1 pb-8', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonTimeline]',\r\n exportAs: 'tonTimeline',\r\n providers: [{ provide: TON_TIMELINE, useExisting: TonTimelineDirective }],\r\n host: {\r\n 'role': 'list',\r\n 'aria-label': 'Timeline',\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonTimelineDirective {\r\n readonly orientation = input<TimelineOrientation>('vertical');\r\n readonly class = input<string>('');\r\n\r\n readonly items = contentChildren(TonTimelineItemDirective);\r\n\r\n protected readonly computedClass = computed(() => {\r\n const o = this.orientation();\r\n return cn(\r\n 'relative',\r\n o === 'vertical' ? 'flex flex-col' : 'flex flex-row',\r\n this.class()\r\n );\r\n });\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const kbdVariants = cva(\r\n 'pointer-events-none inline-flex select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono font-medium text-muted-foreground',\r\n {\r\n variants: {\r\n size: {\r\n sm: 'h-5 text-[10px]',\r\n md: 'h-6 text-xs',\r\n lg: 'h-7 text-sm',\r\n },\r\n },\r\n defaultVariants: {\r\n size: 'md',\r\n },\r\n }\r\n);\r\n\r\nexport type KbdSize = 'sm' | 'md' | 'lg';\r\n","import { Directive, computed, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport { kbdVariants, type KbdSize } from './kbd.variants';\r\n\r\n@Directive({\r\n selector: 'kbd[tonKbd]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonKbdDirective {\r\n readonly size = input<KbdSize>('md');\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(kbdVariants({ size: this.size() }), this.class())\r\n );\r\n}\r\n","import { Directive, computed, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\n\r\nexport type ListVariant = 'default' | 'bordered' | 'hover';\r\n\r\n@Directive({\r\n selector: '[tonList]',\r\n host: {\r\n 'role': 'list',\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonListDirective {\r\n readonly variant = input<ListVariant>('default');\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() => {\r\n const v = this.variant();\r\n const variantClass =\r\n v === 'bordered' ? 'divide-y divide-border border rounded-md' :\r\n v === 'hover' ? '[&>[tonListItem]]:hover:bg-accent' :\r\n '';\r\n return cn('flex flex-col', variantClass, this.class());\r\n });\r\n}\r\n\r\n@Directive({\r\n selector: '[tonListItem]',\r\n host: {\r\n 'role': 'listitem',\r\n '[class]': 'computedClass()',\r\n '[attr.aria-disabled]': 'disabled() || null',\r\n },\r\n})\r\nexport class TonListItemDirective {\r\n readonly active = input(false);\r\n readonly disabled = input(false);\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n 'flex items-center gap-3 px-3 py-2 transition-colors',\r\n this.active() && 'bg-accent text-accent-foreground',\r\n this.disabled() && 'opacity-50 pointer-events-none',\r\n this.class()\r\n )\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonListItemIcon]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonListItemIconDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('flex-shrink-0 text-muted-foreground', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonListItemContent]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonListItemContentDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('flex-1 min-w-0', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonListItemAction]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonListItemActionDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('flex-shrink-0', this.class())\r\n );\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const statusVariants = cva('inline-block rounded-full', {\r\n variants: {\r\n variant: {\r\n default: 'bg-primary',\r\n success: 'bg-green-500',\r\n warning: 'bg-yellow-500',\r\n error: 'bg-destructive',\r\n info: 'bg-blue-500',\r\n neutral: 'bg-muted-foreground',\r\n },\r\n size: {\r\n xs: 'h-1.5 w-1.5',\r\n sm: 'h-2 w-2',\r\n md: 'h-2.5 w-2.5',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n size: 'md',\r\n },\r\n});\r\n\r\nexport type StatusVariant = 'default' | 'success' | 'warning' | 'error' | 'info' | 'neutral';\r\nexport type StatusSize = 'xs' | 'sm' | 'md';\r\n","import { Directive, computed, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport { statusVariants, type StatusVariant, type StatusSize } from './status.variants';\r\n\r\nconst variantLabels: Record<StatusVariant, string> = {\r\n default: 'Active',\r\n success: 'Online',\r\n warning: 'Away',\r\n error: 'Error',\r\n info: 'Info',\r\n neutral: 'Offline',\r\n};\r\n\r\n@Directive({\r\n selector: '[tonStatus]',\r\n host: {\r\n 'role': 'status',\r\n '[attr.aria-label]': 'ariaLabel()',\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonStatusDirective {\r\n readonly variant = input<StatusVariant>('default');\r\n readonly size = input<StatusSize>('md');\r\n readonly pulse = input(false);\r\n readonly class = input<string>('');\r\n\r\n protected readonly ariaLabel = computed(() => variantLabels[this.variant()]);\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n statusVariants({ variant: this.variant(), size: this.size() }),\r\n this.pulse() && 'animate-pulse',\r\n this.class()\r\n )\r\n );\r\n}\r\n","import { Directive, computed, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\n\r\nexport type IndicatorPosition = 'top-start' | 'top-center' | 'top-end' | 'middle-start' | 'middle-end' | 'bottom-start' | 'bottom-center' | 'bottom-end';\r\nexport type IndicatorVariant = 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error';\r\n\r\nconst positionMap: Record<IndicatorPosition, string> = {\r\n 'top-start': 'top-0 left-0 -translate-x-1/2 -translate-y-1/2',\r\n 'top-center': 'top-0 left-1/2 -translate-x-1/2 -translate-y-1/2',\r\n 'top-end': 'top-0 right-0 translate-x-1/2 -translate-y-1/2',\r\n 'middle-start': 'top-1/2 left-0 -translate-x-1/2 -translate-y-1/2',\r\n 'middle-end': 'top-1/2 right-0 translate-x-1/2 -translate-y-1/2',\r\n 'bottom-start': 'bottom-0 left-0 -translate-x-1/2 translate-y-1/2',\r\n 'bottom-center': 'bottom-0 left-1/2 -translate-x-1/2 translate-y-1/2',\r\n 'bottom-end': 'bottom-0 right-0 translate-x-1/2 translate-y-1/2',\r\n};\r\n\r\nconst variantMap: Record<IndicatorVariant, string> = {\r\n default: 'bg-primary text-primary-foreground',\r\n primary: 'bg-primary text-primary-foreground',\r\n secondary: 'bg-secondary text-secondary-foreground',\r\n success: 'bg-green-600 text-white dark:bg-green-500',\r\n warning: 'bg-yellow-500 text-white dark:bg-yellow-400 dark:text-black',\r\n error: 'bg-destructive text-destructive-foreground',\r\n};\r\n\r\n@Directive({\r\n selector: '[tonIndicator]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonIndicatorDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('relative inline-flex', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonIndicatorBadge]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n '[attr.aria-label]': 'ariaLabel() || null',\r\n },\r\n})\r\nexport class TonIndicatorBadgeDirective {\r\n readonly position = input<IndicatorPosition>('top-end');\r\n readonly variant = input<IndicatorVariant>('default');\r\n readonly ariaLabel = input<string>('');\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n 'absolute z-10 inline-flex items-center justify-center rounded-full text-xs font-bold min-w-[1.25rem] h-5 px-1',\r\n positionMap[this.position()],\r\n variantMap[this.variant()],\r\n this.class()\r\n )\r\n );\r\n}\r\n","import { Directive, InjectionToken, computed, inject, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\n\r\nexport type ChatBubbleAlign = 'start' | 'end';\r\nexport type ChatBubbleContentVariant = 'default' | 'primary' | 'secondary' | 'accent';\r\n\r\nexport const TON_CHAT_BUBBLE = new InjectionToken<TonChatBubbleDirective>('TonChatBubble');\r\n\r\n@Directive({\r\n selector: '[tonChatBubble]',\r\n providers: [{ provide: TON_CHAT_BUBBLE, useExisting: TonChatBubbleDirective }],\r\n host: {\r\n 'role': 'article',\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonChatBubbleDirective {\r\n readonly align = input<ChatBubbleAlign>('start');\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n 'flex gap-3 mb-4',\r\n this.align() === 'end' && 'flex-row-reverse',\r\n this.class()\r\n )\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonChatBubbleAvatar]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonChatBubbleAvatarDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('flex-shrink-0 w-10 h-10 rounded-full overflow-hidden', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonChatBubbleHeader]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonChatBubbleHeaderDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('text-xs text-muted-foreground mb-1', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonChatBubbleContent]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonChatBubbleContentDirective {\r\n readonly variant = input<ChatBubbleContentVariant>('default');\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() => {\r\n const v = this.variant();\r\n const variantClass =\r\n v === 'primary' ? 'bg-primary text-primary-foreground' :\r\n v === 'secondary' ? 'bg-blue-100 text-blue-900 dark:bg-blue-900 dark:text-blue-100' :\r\n v === 'accent' ? 'bg-violet-100 text-violet-900 dark:bg-violet-900 dark:text-violet-100' :\r\n 'bg-muted';\r\n return cn('rounded-lg px-3 py-2 text-sm max-w-[80%]', variantClass, this.class());\r\n });\r\n}\r\n\r\n@Directive({\r\n selector: '[tonChatBubbleFooter]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonChatBubbleFooterDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('text-xs text-muted-foreground mt-1', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonChatBubbleBody]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonChatBubbleBodyDirective {\r\n private readonly chatBubble = inject(TON_CHAT_BUBBLE);\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n 'flex flex-col',\r\n this.chatBubble.align() === 'end' && 'items-end',\r\n this.class()\r\n )\r\n );\r\n}\r\n","import {\r\n Directive, InjectionToken, computed, contentChildren, inject, input, signal, effect, OnDestroy,\r\n} from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\n\r\nexport const TON_CAROUSEL = new InjectionToken<TonCarouselDirective>('TonCarousel');\r\n\r\n@Directive({\r\n selector: '[tonCarouselItem]',\r\n host: {\r\n 'role': 'group',\r\n '[attr.aria-roledescription]': '\"slide\"',\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonCarouselItemDirective {\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('min-w-0 shrink-0 grow-0 basis-full pl-4', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonCarouselContent]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n '[style.transform]': 'transformStyle()',\r\n },\r\n})\r\nexport class TonCarouselContentDirective {\r\n private readonly carousel = inject(TON_CAROUSEL);\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn('flex -ml-4 transition-transform duration-300 ease-in-out', this.class())\r\n );\r\n\r\n protected readonly transformStyle = computed(() =>\r\n `translateX(-${this.carousel.currentIndex() * 100}%)`\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonCarousel]',\r\n exportAs: 'tonCarousel',\r\n providers: [{ provide: TON_CAROUSEL, useExisting: TonCarouselDirective }],\r\n host: {\r\n 'role': 'region',\r\n '[attr.aria-roledescription]': '\"carousel\"',\r\n 'aria-label': 'Carousel',\r\n 'tabindex': '0',\r\n '[class]': 'computedClass()',\r\n '(keydown)': 'onKeydown($event)',\r\n },\r\n})\r\nexport class TonCarouselDirective implements OnDestroy {\r\n readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\r\n readonly loop = input(false);\r\n readonly autoplay = input(0);\r\n readonly class = input<string>('');\r\n\r\n readonly items = contentChildren(TonCarouselItemDirective, { descendants: true });\r\n readonly currentIndex = signal(0);\r\n readonly totalItems = computed(() => this.items().length);\r\n\r\n private autoplayInterval: ReturnType<typeof setInterval> | null = null;\r\n\r\n constructor() {\r\n effect(() => {\r\n const ms = this.autoplay();\r\n this.clearAutoplay();\r\n if (ms > 0) {\r\n this.autoplayInterval = setInterval(() => this.next(), ms);\r\n }\r\n });\r\n }\r\n\r\n next(): void {\r\n const total = this.totalItems();\r\n if (total === 0) return;\r\n this.currentIndex.update((i) => {\r\n if (i >= total - 1) return this.loop() ? 0 : i;\r\n return i + 1;\r\n });\r\n }\r\n\r\n prev(): void {\r\n const total = this.totalItems();\r\n if (total === 0) return;\r\n this.currentIndex.update((i) => {\r\n if (i <= 0) return this.loop() ? total - 1 : i;\r\n return i - 1;\r\n });\r\n }\r\n\r\n goTo(index: number): void {\r\n this.currentIndex.set(Math.max(0, Math.min(index, this.totalItems() - 1)));\r\n }\r\n\r\n onKeydown(event: KeyboardEvent): void {\r\n switch (event.key) {\r\n case 'ArrowLeft':\r\n event.preventDefault();\r\n this.prev();\r\n break;\r\n case 'ArrowRight':\r\n event.preventDefault();\r\n this.next();\r\n break;\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.clearAutoplay();\r\n }\r\n\r\n private clearAutoplay(): void {\r\n if (this.autoplayInterval) {\r\n clearInterval(this.autoplayInterval);\r\n this.autoplayInterval = null;\r\n }\r\n }\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn('relative overflow-hidden', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonCarouselPrev]',\r\n host: {\r\n '(click)': 'carousel.prev()',\r\n '[attr.aria-label]': '\"Previous slide\"',\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonCarouselPrevDirective {\r\n readonly carousel = inject(TON_CAROUSEL);\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('absolute left-2 top-1/2 -translate-y-1/2 z-10', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonCarouselNext]',\r\n host: {\r\n '(click)': 'carousel.next()',\r\n '[attr.aria-label]': '\"Next slide\"',\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonCarouselNextDirective {\r\n readonly carousel = inject(TON_CAROUSEL);\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn('absolute right-2 top-1/2 -translate-y-1/2 z-10', this.class())\r\n );\r\n}\r\n","import { Directive, ElementRef, computed, inject, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\n\r\nexport type DockPosition = 'bottom' | 'top';\r\n\r\n@Directive({\r\n selector: '[tonDock]',\r\n host: {\r\n 'role': 'toolbar',\r\n 'aria-label': 'Dock',\r\n '[class]': 'computedClass()',\r\n '(keydown)': 'onKeydown($event)',\r\n },\r\n})\r\nexport class TonDockDirective {\r\n readonly position = input<DockPosition>('bottom');\r\n readonly class = input<string>('');\r\n\r\n private readonly elRef = inject(ElementRef);\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n 'fixed left-1/2 -translate-x-1/2 z-50 flex items-center gap-1 rounded-full border bg-background/80 backdrop-blur-sm px-3 py-2 shadow-lg',\r\n this.position() === 'bottom' ? 'bottom-4' : 'top-4',\r\n this.class()\r\n )\r\n );\r\n\r\n onKeydown(event: KeyboardEvent): void {\r\n const items = Array.from(\r\n (this.elRef.nativeElement as HTMLElement).querySelectorAll<HTMLElement>('[tonDockItem]')\r\n );\r\n if (items.length === 0) return;\r\n\r\n const currentIndex = items.indexOf(document.activeElement as HTMLElement);\r\n if (currentIndex === -1) return;\r\n\r\n let nextIndex: number | null = null;\r\n switch (event.key) {\r\n case 'ArrowRight':\r\n event.preventDefault();\r\n nextIndex = (currentIndex + 1) % items.length;\r\n break;\r\n case 'ArrowLeft':\r\n event.preventDefault();\r\n nextIndex = (currentIndex - 1 + items.length) % items.length;\r\n break;\r\n case 'Home':\r\n event.preventDefault();\r\n nextIndex = 0;\r\n break;\r\n case 'End':\r\n event.preventDefault();\r\n nextIndex = items.length - 1;\r\n break;\r\n }\r\n if (nextIndex !== null) {\r\n items[nextIndex].focus();\r\n }\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[tonDockItem]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n '[attr.tabindex]': 'active() ? 0 : -1',\r\n },\r\n})\r\nexport class TonDockItemDirective {\r\n readonly active = input(false);\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n 'inline-flex items-center justify-center rounded-full p-2 transition-all hover:scale-110',\r\n this.active() && 'bg-primary text-primary-foreground',\r\n this.class()\r\n )\r\n );\r\n}\r\n","import { Directive, InjectionToken, computed, inject, input, signal } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\n\r\nexport const TON_FAB = new InjectionToken<TonFabDirective>('TonFab');\r\nexport type FabPosition = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';\r\nexport type FabDirection = 'up' | 'down' | 'left' | 'right';\r\n\r\nconst positionMap: Record<FabPosition, string> = {\r\n 'bottom-right': 'fixed bottom-6 right-6',\r\n 'bottom-left': 'fixed bottom-6 left-6',\r\n 'top-right': 'fixed top-6 right-6',\r\n 'top-left': 'fixed top-6 left-6',\r\n};\r\n\r\n@Directive({\r\n selector: '[tonFab]',\r\n exportAs: 'tonFab',\r\n providers: [{ provide: TON_FAB, useExisting: TonFabDirective }],\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonFabDirective {\r\n readonly position = input<FabPosition>('bottom-right');\r\n readonly direction = input<FabDirection>('up');\r\n readonly class = input<string>('');\r\n readonly isOpen = signal(false);\r\n\r\n toggle(): void { this.isOpen.update((v) => !v); }\r\n open(): void { this.isOpen.set(true); }\r\n close(): void { this.isOpen.set(false); }\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn('z-50 flex flex-col items-center gap-2', positionMap[this.position()], this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonFabTrigger]',\r\n host: {\r\n '(click)': 'fab.toggle()',\r\n '[attr.aria-expanded]': 'fab.isOpen()',\r\n '[attr.aria-haspopup]': '\"menu\"',\r\n 'aria-label': 'Quick actions',\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonFabTriggerDirective {\r\n readonly fab = inject(TON_FAB);\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n 'inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground shadow-lg h-14 w-14 hover:bg-primary/90 transition-transform',\r\n this.fab.isOpen() && 'rotate-45',\r\n this.class()\r\n )\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonFabAction]',\r\n host: {\r\n 'role': 'menuitem',\r\n '[attr.aria-label]': 'ariaLabel() || null',\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonFabActionDirective {\r\n readonly fab = inject(TON_FAB);\r\n readonly ariaLabel = input<string>('');\r\n readonly class = input<string>('');\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n 'inline-flex items-center justify-center rounded-full bg-secondary text-secondary-foreground shadow-md h-10 w-10 transition-all',\r\n this.fab.isOpen() ? 'scale-100 opacity-100' : 'scale-0 opacity-0',\r\n this.class()\r\n )\r\n );\r\n}\r\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\n\r\nexport type RadialProgressSize = 'sm' | 'md' | 'lg';\r\nexport type RadialProgressVariant = 'default' | 'success' | 'warning' | 'error' | 'info';\r\n\r\nconst sizeMap: Record<RadialProgressSize, number> = { sm: 48, md: 72, lg: 96 };\r\n\r\nconst variantColorMap: Record<RadialProgressVariant, string> = {\r\n default: 'stroke-primary',\r\n success: 'stroke-green-600 dark:stroke-green-500',\r\n warning: 'stroke-yellow-500',\r\n error: 'stroke-destructive',\r\n info: 'stroke-blue-600 dark:stroke-blue-500',\r\n};\r\n\r\n@Component({\r\n selector: 'ton-radial-progress',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n 'role': 'progressbar',\r\n '[attr.aria-valuenow]': 'value()',\r\n '[attr.aria-valuemin]': '0',\r\n '[attr.aria-valuemax]': '100',\r\n '[class]': '\"inline-flex items-center justify-center\"',\r\n },\r\n template: `\r\n <div class=\"relative\" [style.width.px]=\"svgSize()\" [style.height.px]=\"svgSize()\">\r\n <svg [attr.width]=\"svgSize()\" [attr.height]=\"svgSize()\" class=\"-rotate-90\">\r\n <circle\r\n [attr.cx]=\"svgSize() / 2\"\r\n [attr.cy]=\"svgSize() / 2\"\r\n [attr.r]=\"radius()\"\r\n fill=\"none\"\r\n class=\"stroke-muted\"\r\n [attr.stroke-width]=\"thickness()\"\r\n />\r\n <circle\r\n [attr.cx]=\"svgSize() / 2\"\r\n [attr.cy]=\"svgSize() / 2\"\r\n [attr.r]=\"radius()\"\r\n fill=\"none\"\r\n [class]=\"strokeClass()\"\r\n [attr.stroke-width]=\"thickness()\"\r\n [attr.stroke-dasharray]=\"circumference()\"\r\n [attr.stroke-dashoffset]=\"offset()\"\r\n stroke-linecap=\"round\"\r\n class=\"transition-all duration-300\"\r\n />\r\n </svg>\r\n <div class=\"absolute inset-0 flex items-center justify-center\">\r\n <ng-content />\r\n </div>\r\n </div>\r\n `,\r\n})\r\nexport class TonRadialProgressComponent {\r\n readonly value = input(0);\r\n readonly size = input<RadialProgressSize>('md');\r\n readonly thickness = input(4);\r\n readonly variant = input<RadialProgressVariant>('default');\r\n readonly class = input<string>('');\r\n\r\n readonly svgSize = computed(() => sizeMap[this.size()]);\r\n readonly radius = computed(() => (this.svgSize() - this.thickness()) / 2);\r\n readonly circumference = computed(() => 2 * Math.PI * this.radius());\r\n readonly offset = computed(() => this.circumference() - (this.value() / 100) * this.circumference());\r\n\r\n readonly strokeClass = computed(() => variantColorMap[this.variant()]);\r\n}\r\n","import { ChangeDetectionStrategy, Component, computed, input, model, signal } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\n\r\n@Component({\r\n selector: 'ton-diff',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n '[class]': '\"relative overflow-hidden select-none w-full\"',\r\n '(pointerdown)': 'onPointerDown($event)',\r\n '(pointermove)': 'onPointerMove($event)',\r\n '(pointerup)': 'onPointerUp()',\r\n '(keydown)': 'onKeydown($event)',\r\n },\r\n template: `\r\n <div class=\"relative w-full\" [style.aspect-ratio]=\"'16/9'\">\r\n <div class=\"absolute inset-0\">\r\n <ng-content select=\"[tonDiffAfter]\" />\r\n </div>\r\n <div class=\"absolute inset-0 overflow-hidden\" [style.width.%]=\"value()\">\r\n <ng-content select=\"[tonDiffBefore]\" />\r\n </div>\r\n <div\r\n class=\"absolute top-0 bottom-0 w-1 bg-foreground cursor-col-resize z-10\"\r\n [style.left.%]=\"value()\"\r\n role=\"slider\"\r\n tabindex=\"0\"\r\n [attr.aria-valuenow]=\"value()\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n aria-label=\"Comparison slider\"\r\n >\r\n <div class=\"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-8 h-8 rounded-full bg-foreground/80 flex items-center justify-center text-background text-xs\">\r\n ⇔\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n})\r\nexport class TonDiffComponent {\r\n readonly value = model(50);\r\n readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\r\n readonly class = input<string>('');\r\n\r\n readonly isDragging = signal(false);\r\n\r\n onPointerDown(event: PointerEvent): void {\r\n this.isDragging.set(true);\r\n (event.target as HTMLElement).setPointerCapture?.(event.pointerId);\r\n this.updateValue(event);\r\n }\r\n\r\n onPointerMove(event: PointerEvent): void {\r\n if (!this.isDragging()) return;\r\n this.updateValue(event);\r\n }\r\n\r\n onPointerUp(): void {\r\n this.isDragging.set(false);\r\n }\r\n\r\n onKeydown(event: KeyboardEvent): void {\r\n switch (event.key) {\r\n case 'ArrowLeft':\r\n event.preventDefault();\r\n this.value.update((v) => Math.max(0, v - 5));\r\n break;\r\n case 'ArrowRight':\r\n event.preventDefault();\r\n this.value.update((v) => Math.min(100, v + 5));\r\n break;\r\n }\r\n }\r\n\r\n private updateValue(event: PointerEvent): void {\r\n const target = (event.currentTarget as HTMLElement).closest('ton-diff');\r\n if (!target) return;\r\n const rect = target.getBoundingClientRect();\r\n const x = event.clientX - rect.left;\r\n const pct = Math.max(0, Math.min(100, (x / rect.width) * 100));\r\n this.value.set(Math.round(pct));\r\n }\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const linkVariants = cva(\r\n 'inline-flex items-center gap-1 underline-offset-4 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 rounded',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'text-foreground underline hover:text-foreground/80',\r\n primary: 'text-primary underline hover:text-primary/80',\r\n secondary: 'text-muted-foreground underline hover:text-foreground',\r\n hover: 'text-foreground no-underline hover:underline',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n }\r\n);\r\n\r\nexport type LinkVariant = 'default' | 'primary' | 'secondary' | 'hover';\r\n","import { Directive, computed, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport { linkVariants, type LinkVariant } from './link.variants';\r\n\r\n@Directive({\r\n selector: 'a[tonLink]',\r\n host: {\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonLinkDirective {\r\n readonly variant = input<LinkVariant>('default');\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(linkVariants({ variant: this.variant() }), this.class())\r\n );\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n forwardRef,\r\n input,\r\n linkedSignal,\r\n model,\r\n signal,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { cn } from '../core/utils/cn';\r\nimport type { CalendarDay, CalendarMode, DateRange } from './calendar.types';\r\n\r\n@Component({\r\n selector: 'ton-calendar',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n '[class]': 'hostClass()',\r\n '(keydown)': 'onKeydown($event)',\r\n 'role': 'application',\r\n 'aria-label': 'Calendar',\r\n },\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TonCalendarComponent), multi: true },\r\n ],\r\n template: `\r\n @if (showNavigation()) {\r\n <div class=\"flex items-center justify-between mb-3\">\r\n <button\r\n type=\"button\"\r\n class=\"inline-flex items-center justify-center rounded-md h-8 w-8 hover:bg-accent hover:text-accent-foreground transition-colors\"\r\n (click)=\"prevMonth()\"\r\n aria-label=\"Previous month\"\r\n >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m15 18-6-6 6-6\"/></svg>\r\n </button>\r\n <span class=\"text-sm font-semibold tracking-tight\">{{ monthYearLabel() }}</span>\r\n <button\r\n type=\"button\"\r\n class=\"inline-flex items-center justify-center rounded-md h-8 w-8 hover:bg-accent hover:text-accent-foreground transition-colors\"\r\n (click)=\"nextMonth()\"\r\n aria-label=\"Next month\"\r\n >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m9 18 6-6-6-6\"/></svg>\r\n </button>\r\n </div>\r\n }\r\n\r\n <div role=\"grid\" class=\"grid grid-cols-7 gap-1\">\r\n @for (dayName of weekDays; track dayName) {\r\n <div class=\"text-center text-xs text-muted-foreground font-medium h-9 flex items-center justify-center\" role=\"columnheader\">{{ dayName }}</div>\r\n }\r\n @for (day of days(); track day.date.getTime()) {\r\n <button\r\n type=\"button\"\r\n [class]=\"dayClass(day)\"\r\n [disabled]=\"day.isDisabled\"\r\n [attr.aria-selected]=\"day.isSelected || day.isRangeStart || day.isRangeEnd || null\"\r\n [attr.aria-current]=\"day.isToday ? 'date' : null\"\r\n [attr.aria-disabled]=\"day.isDisabled || null\"\r\n [attr.aria-label]=\"day.date.toLocaleDateString(locale(), { month: 'long', day: 'numeric', year: 'numeric' })\"\r\n role=\"gridcell\"\r\n (click)=\"onDayClick(day.date)\"\r\n (mouseenter)=\"onDayHover(day.date)\"\r\n (mouseleave)=\"onDayHover(null)\"\r\n >\r\n {{ day.day }}\r\n </button>\r\n }\r\n </div>\r\n `,\r\n})\r\nexport class TonCalendarComponent implements ControlValueAccessor {\r\n // Existing inputs (backwards compatible)\r\n readonly value = model<Date | null>(null);\r\n readonly min = input<Date | undefined>(undefined);\r\n readonly max = input<Date | undefined>(undefined);\r\n readonly locale = input('en-US');\r\n readonly class = input<string>('');\r\n\r\n // Range mode inputs\r\n readonly mode = input<CalendarMode>('single');\r\n readonly rangeValue = model<DateRange | null>(null);\r\n readonly showNavigation = input(true);\r\n readonly initialViewDate = input<Date | undefined>(undefined);\r\n readonly borderless = input(false);\r\n\r\n readonly hostClass = computed(() =>\r\n this.borderless()\r\n ? 'inline-block p-3 bg-background'\r\n : 'inline-block p-4 rounded-md border border-border bg-background'\r\n );\r\n\r\n // Internal state\r\n private readonly _disabledByCva = signal(false);\r\n readonly hoveredDate = signal<Date | null>(null);\r\n readonly viewDate = linkedSignal(() => this.initialViewDate() ?? new Date());\r\n readonly weekDays = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\r\n\r\n // CVA\r\n private _onChange: (value: unknown) => void = () => {};\r\n protected onTouched: () => void = () => {};\r\n\r\n writeValue(val: unknown): void {\r\n if (this.mode() === 'range') {\r\n this.rangeValue.set((val as DateRange) ?? null);\r\n const range = val as DateRange | null;\r\n if (range?.start) {\r\n this.viewDate.set(new Date(range.start.getFullYear(), range.start.getMonth(), 1));\r\n }\r\n } else {\r\n this.value.set((val as Date) ?? null);\r\n if (val) {\r\n const d = val as Date;\r\n this.viewDate.set(new Date(d.getFullYear(), d.getMonth(), 1));\r\n }\r\n }\r\n }\r\n\r\n registerOnChange(fn: (value: unknown) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._disabledByCva.set(isDisabled);\r\n }\r\n\r\n // Computed\r\n readonly monthYearLabel = computed(() => {\r\n const d = this.viewDate();\r\n return d.toLocaleDateString(this.locale(), { month: 'long', year: 'numeric' });\r\n });\r\n\r\n readonly days = computed<CalendarDay[]>(() => {\r\n const view = this.viewDate();\r\n const year = view.getFullYear();\r\n const month = view.getMonth();\r\n const today = new Date();\r\n const selected = this.value();\r\n const rangeVal = this.mode() === 'range' ? this.rangeValue() : null;\r\n const hovered = this.hoveredDate();\r\n const minDate = this.min();\r\n const maxDate = this.max();\r\n\r\n const firstDay = new Date(year, month, 1);\r\n const startDay = firstDay.getDay();\r\n const daysInMonth = new Date(year, month + 1, 0).getDate();\r\n const daysInPrevMonth = new Date(year, month, 0).getDate();\r\n\r\n const days: CalendarDay[] = [];\r\n\r\n for (let i = startDay - 1; i >= 0; i--) {\r\n const date = new Date(year, month - 1, daysInPrevMonth - i);\r\n days.push(this.createDay(date, false, today, selected, rangeVal, hovered, minDate, maxDate));\r\n }\r\n\r\n for (let d = 1; d <= daysInMonth; d++) {\r\n const date = new Date(year, month, d);\r\n days.push(this.createDay(date, true, today, selected, rangeVal, hovered, minDate, maxDate));\r\n }\r\n\r\n const remaining = 42 - days.length;\r\n for (let d = 1; d <= remaining; d++) {\r\n const date = new Date(year, month + 1, d);\r\n days.push(this.createDay(date, false, today, selected, rangeVal, hovered, minDate, maxDate));\r\n }\r\n\r\n return days;\r\n });\r\n\r\n // Navigation\r\n prevMonth(): void {\r\n this.viewDate.set(new Date(\r\n this.viewDate().getFullYear(),\r\n this.viewDate().getMonth() - 1,\r\n 1,\r\n ));\r\n }\r\n\r\n nextMonth(): void {\r\n this.viewDate.set(new Date(\r\n this.viewDate().getFullYear(),\r\n this.viewDate().getMonth() + 1,\r\n 1,\r\n ));\r\n }\r\n\r\n // Click handler\r\n onDayClick(date: Date): void {\r\n if (this.mode() === 'single') {\r\n this.value.set(date);\r\n this._onChange(date);\r\n this.onTouched();\r\n return;\r\n }\r\n\r\n // Range mode\r\n const current = this.rangeValue();\r\n if (!current?.start || (current.start && current.end)) {\r\n this.rangeValue.set({ start: date, end: null });\r\n } else {\r\n const start = current.start;\r\n if (date < start) {\r\n this.rangeValue.set({ start: date, end: start });\r\n } else if (this.isSameDay(date, start)) {\r\n this.rangeValue.set({ start: date, end: date });\r\n } else {\r\n this.rangeValue.set({ start, end: date });\r\n }\r\n }\r\n this._onChange(this.rangeValue());\r\n this.onTouched();\r\n }\r\n\r\n // Hover handler\r\n onDayHover(date: Date | null): void {\r\n if (this.mode() === 'range') {\r\n this.hoveredDate.set(date);\r\n }\r\n }\r\n\r\n // Keyboard\r\n onKeydown(event: KeyboardEvent): void {\r\n switch (event.key) {\r\n case 'ArrowLeft':\r\n event.preventDefault();\r\n this.navigateDays(-1);\r\n break;\r\n case 'ArrowRight':\r\n event.preventDefault();\r\n this.navigateDays(1);\r\n break;\r\n case 'ArrowUp':\r\n event.preventDefault();\r\n this.navigateDays(-7);\r\n break;\r\n case 'ArrowDown':\r\n event.preventDefault();\r\n this.navigateDays(7);\r\n break;\r\n }\r\n }\r\n\r\n // Styling\r\n dayClass(day: CalendarDay): string {\r\n const isEndpoint = day.isRangeStart || day.isRangeEnd;\r\n return cn(\r\n 'inline-flex items-center justify-center text-sm h-9 w-9 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\r\n // Shape\r\n day.isRangeStart && !day.isRangeEnd ? 'rounded-l-md rounded-r-none' :\r\n day.isRangeEnd && !day.isRangeStart ? 'rounded-r-md rounded-l-none' :\r\n day.isInRange || day.isRangePreview ? 'rounded-none' :\r\n 'rounded-md',\r\n // Base text color\r\n !day.isCurrentMonth && 'text-muted-foreground/40',\r\n day.isCurrentMonth && !day.isSelected && !isEndpoint && 'text-foreground',\r\n // Today indicator\r\n day.isToday && !day.isSelected && !isEndpoint && 'bg-accent text-accent-foreground font-semibold',\r\n // Single selected\r\n day.isSelected && this.mode() === 'single' && 'bg-primary text-primary-foreground font-semibold shadow-sm',\r\n // Range endpoints\r\n isEndpoint && 'bg-primary text-primary-foreground font-semibold shadow-sm',\r\n // Range band\r\n day.isInRange && 'bg-primary/10 text-foreground',\r\n day.isRangePreview && 'bg-primary/5 text-foreground',\r\n // States\r\n day.isDisabled && 'opacity-40 cursor-not-allowed pointer-events-none',\r\n !day.isDisabled && !day.isSelected && !isEndpoint && 'hover:bg-accent hover:text-accent-foreground cursor-pointer',\r\n );\r\n }\r\n\r\n // Private helpers\r\n private navigateDays(offset: number): void {\r\n const current = this.value() ?? new Date();\r\n const next = new Date(current);\r\n next.setDate(next.getDate() + offset);\r\n this.value.set(next);\r\n this._onChange(next);\r\n this.viewDate.set(new Date(next.getFullYear(), next.getMonth(), 1));\r\n }\r\n\r\n private createDay(\r\n date: Date,\r\n isCurrentMonth: boolean,\r\n today: Date,\r\n selected: Date | null,\r\n rangeVal: DateRange | null,\r\n hoveredDate: Date | null,\r\n minDate: Date | undefined,\r\n maxDate: Date | undefined,\r\n ): CalendarDay {\r\n const isToday = this.isSameDay(date, today);\r\n const isSelected = selected ? this.isSameDay(date, selected) : false;\r\n const isDisabled =\r\n this._disabledByCva() ||\r\n (minDate ? date < minDate : false) ||\r\n (maxDate ? date > maxDate : false);\r\n\r\n let isRangeStart = false;\r\n let isRangeEnd = false;\r\n let isInRange = false;\r\n let isRangePreview = false;\r\n\r\n if (rangeVal) {\r\n const { start, end } = rangeVal;\r\n if (start) isRangeStart = this.isSameDay(date, start);\r\n if (end) isRangeEnd = this.isSameDay(date, end);\r\n if (start && end) {\r\n isInRange = date > start && date < end && !isRangeStart && !isRangeEnd;\r\n }\r\n // Preview: start set, no end yet, user hovering\r\n if (start && !end && hoveredDate && !this.isSameDay(hoveredDate, start)) {\r\n const previewStart = hoveredDate > start ? start : hoveredDate;\r\n const previewEnd = hoveredDate > start ? hoveredDate : start;\r\n if (date > previewStart && date < previewEnd) {\r\n isRangePreview = true;\r\n }\r\n if (this.isSameDay(date, hoveredDate) && !isRangeStart) {\r\n isRangePreview = true;\r\n }\r\n }\r\n }\r\n\r\n return {\r\n date, day: date.getDate(), isCurrentMonth, isToday, isSelected, isDisabled,\r\n isRangeStart, isRangeEnd, isInRange, isRangePreview,\r\n };\r\n }\r\n\r\n private isSameDay(a: Date, b: Date): boolean {\r\n return (\r\n a.getFullYear() === b.getFullYear() &&\r\n a.getMonth() === b.getMonth() &&\r\n a.getDate() === b.getDate()\r\n );\r\n }\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const datePickerTriggerVariants = cva(\r\n 'inline-flex w-full items-center justify-between whitespace-nowrap rounded-sm border border-border bg-background px-3 py-2 text-sm ring-offset-background transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\r\n {\r\n variants: {\r\n size: {\r\n sm: 'h-9 text-xs',\r\n md: 'h-10 text-sm',\r\n lg: 'h-11 text-base',\r\n },\r\n },\r\n defaultVariants: { size: 'md' },\r\n }\r\n);\r\n\r\nexport type DatePickerSize = 'sm' | 'md' | 'lg';\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n ElementRef,\r\n forwardRef,\r\n inject,\r\n input,\r\n model,\r\n OnDestroy,\r\n signal,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { cn } from '../core/utils/cn';\r\nimport { TonCalendarComponent } from '../calendar/calendar.component';\r\nimport { datePickerTriggerVariants, type DatePickerSize } from './date-picker.variants';\r\n\r\n@Component({\r\n selector: 'ton-date-picker',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [TonCalendarComponent],\r\n host: {\r\n class: 'relative inline-block w-full',\r\n '(document:click)': 'onDocumentClick($event)',\r\n '(keydown.escape)': 'onEscape()',\r\n },\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TonDatePickerComponent), multi: true },\r\n ],\r\n template: `\r\n <button\r\n #triggerEl\r\n type=\"button\"\r\n role=\"combobox\"\r\n [attr.aria-expanded]=\"open()\"\r\n aria-haspopup=\"dialog\"\r\n [disabled]=\"isDisabled()\"\r\n [class]=\"triggerClass()\"\r\n (click)=\"toggle()\"\r\n (blur)=\"onTouched()\"\r\n >\r\n <span [class]=\"displayValue() ? 'truncate' : 'text-muted-foreground truncate'\">\r\n {{ displayValue() || placeholder() }}\r\n </span>\r\n <div class=\"flex items-center gap-1 shrink-0\">\r\n @if (clearable() && value()) {\r\n <button\r\n type=\"button\"\r\n class=\"rounded-sm p-0.5 hover:bg-muted transition-colors text-muted-foreground hover:text-foreground\"\r\n (click)=\"clear($event)\"\r\n aria-label=\"Clear date\"\r\n >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>\r\n </button>\r\n }\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"shrink-0 text-muted-foreground\"><path d=\"M8 2v4\"/><path d=\"M16 2v4\"/><rect width=\"18\" height=\"18\" x=\"3\" y=\"4\" rx=\"2\"/><path d=\"M3 10h18\"/></svg>\r\n </div>\r\n </button>\r\n\r\n @if (open()) {\r\n <div\r\n #dropdownEl\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-label=\"Choose date\"\r\n class=\"fixed z-50 rounded-md border border-border bg-popover text-popover-foreground shadow-lg animate-in fade-in-0 zoom-in-95\"\r\n >\r\n <ton-calendar\r\n [(value)]=\"internalValue\"\r\n [min]=\"min()\"\r\n [max]=\"max()\"\r\n [locale]=\"locale()\"\r\n (valueChange)=\"onDateSelected($event)\"\r\n />\r\n </div>\r\n }\r\n `,\r\n})\r\nexport class TonDatePickerComponent implements ControlValueAccessor, OnDestroy {\r\n readonly value = model<Date | null>(null);\r\n readonly placeholder = input('Pick a date...');\r\n readonly size = input<DatePickerSize>('md');\r\n readonly locale = input('en-US');\r\n readonly dateFormat = input<Intl.DateTimeFormatOptions>({\r\n month: 'short',\r\n day: 'numeric',\r\n year: 'numeric',\r\n });\r\n readonly min = input<Date | undefined>(undefined);\r\n readonly max = input<Date | undefined>(undefined);\r\n readonly clearable = input(true);\r\n readonly disabled = input(false);\r\n readonly class = input<string>('');\r\n\r\n readonly open = signal(false);\r\n readonly internalValue = signal<Date | null>(null);\r\n\r\n private readonly _disabledByCva = signal(false);\r\n protected readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\r\n\r\n private readonly triggerRef = viewChild<ElementRef<HTMLButtonElement>>('triggerEl');\r\n private readonly dropdownRef = viewChild<ElementRef<HTMLDivElement>>('dropdownEl');\r\n private readonly elRef = inject(ElementRef);\r\n\r\n private scrollHandler: (() => void) | null = null;\r\n private resizeHandler: (() => void) | null = null;\r\n\r\n private _onChange: (value: Date | null) => void = () => {};\r\n protected onTouched: () => void = () => {};\r\n\r\n // CVA\r\n writeValue(val: Date | null): void {\r\n this.value.set(val ?? null);\r\n this.internalValue.set(val ?? null);\r\n }\r\n\r\n registerOnChange(fn: (value: Date | null) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._disabledByCva.set(isDisabled);\r\n }\r\n\r\n // Display\r\n readonly displayValue = computed(() => {\r\n const d = this.value();\r\n if (!d) return '';\r\n return d.toLocaleDateString(this.locale(), this.dateFormat());\r\n });\r\n\r\n protected readonly triggerClass = computed(() =>\r\n cn(datePickerTriggerVariants({ size: this.size() }), this.class())\r\n );\r\n\r\n // Actions\r\n onDateSelected(date: Date | null): void {\r\n this.value.set(date);\r\n this._onChange(date);\r\n this.close();\r\n }\r\n\r\n clear(event: Event): void {\r\n event.stopPropagation();\r\n this.value.set(null);\r\n this.internalValue.set(null);\r\n this._onChange(null);\r\n }\r\n\r\n toggle(): void {\r\n if (this.open()) {\r\n this.close();\r\n } else {\r\n this.internalValue.set(this.value());\r\n this.updateDropdownPosition();\r\n this.open.set(true);\r\n this.addGlobalListeners();\r\n setTimeout(() => this.updateDropdownPosition());\r\n }\r\n }\r\n\r\n close(): void {\r\n this.open.set(false);\r\n this.removeGlobalListeners();\r\n }\r\n\r\n // Positioning (combobox pattern)\r\n private updateDropdownPosition(): void {\r\n const trigger = this.triggerRef()?.nativeElement;\r\n if (!trigger) return;\r\n const rect = trigger.getBoundingClientRect();\r\n const dropdown = this.dropdownRef()?.nativeElement;\r\n if (dropdown) {\r\n dropdown.style.top = `${rect.bottom + 4}px`;\r\n dropdown.style.left = `${rect.left}px`;\r\n }\r\n }\r\n\r\n private addGlobalListeners(): void {\r\n this.removeGlobalListeners();\r\n this.scrollHandler = () => {\r\n requestAnimationFrame(() => this.updateDropdownPosition());\r\n };\r\n this.resizeHandler = () => {\r\n requestAnimationFrame(() => this.updateDropdownPosition());\r\n };\r\n document.addEventListener('scroll', this.scrollHandler, { capture: true, passive: true });\r\n window.addEventListener('resize', this.resizeHandler, { passive: true });\r\n }\r\n\r\n private removeGlobalListeners(): void {\r\n if (this.scrollHandler) {\r\n document.removeEventListener('scroll', this.scrollHandler, { capture: true } as EventListenerOptions);\r\n this.scrollHandler = null;\r\n }\r\n if (this.resizeHandler) {\r\n window.removeEventListener('resize', this.resizeHandler);\r\n this.resizeHandler = null;\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.removeGlobalListeners();\r\n }\r\n\r\n onDocumentClick(event: MouseEvent): void {\r\n if (!this.elRef.nativeElement.contains(event.target)) {\r\n this.close();\r\n }\r\n }\r\n\r\n onEscape(): void {\r\n this.close();\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n ElementRef,\r\n forwardRef,\r\n inject,\r\n input,\r\n model,\r\n OnDestroy,\r\n signal,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { cn } from '../core/utils/cn';\r\nimport { TonCalendarComponent } from '../calendar/calendar.component';\r\nimport type { DateRange, DatePickerPreset } from '../calendar/calendar.types';\r\nimport { datePickerTriggerVariants, type DatePickerSize } from '../date-picker/date-picker.variants';\r\n\r\n@Component({\r\n selector: 'ton-date-range-picker',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [TonCalendarComponent],\r\n host: {\r\n class: 'relative inline-block w-full',\r\n '(document:click)': 'onDocumentClick($event)',\r\n '(keydown.escape)': 'onEscape()',\r\n },\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TonDateRangePickerComponent), multi: true },\r\n ],\r\n template: `\r\n <button\r\n #triggerEl\r\n type=\"button\"\r\n role=\"combobox\"\r\n [attr.aria-expanded]=\"open()\"\r\n aria-haspopup=\"dialog\"\r\n [disabled]=\"isDisabled()\"\r\n [class]=\"triggerClass()\"\r\n (click)=\"toggle()\"\r\n (blur)=\"onTouched()\"\r\n >\r\n <span [class]=\"displayValue() ? 'truncate' : 'text-muted-foreground truncate'\">\r\n {{ displayValue() || placeholder() }}\r\n </span>\r\n <div class=\"flex items-center gap-1 shrink-0\">\r\n @if (clearable() && value()?.start) {\r\n <button\r\n type=\"button\"\r\n class=\"rounded-sm p-0.5 hover:bg-muted transition-colors text-muted-foreground hover:text-foreground\"\r\n (click)=\"clear($event)\"\r\n aria-label=\"Clear date range\"\r\n >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>\r\n </button>\r\n }\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"shrink-0 text-muted-foreground\"><path d=\"M8 2v4\"/><path d=\"M16 2v4\"/><rect width=\"18\" height=\"18\" x=\"3\" y=\"4\" rx=\"2\"/><path d=\"M3 10h18\"/></svg>\r\n </div>\r\n </button>\r\n\r\n @if (open()) {\r\n <div\r\n #dropdownEl\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-label=\"Choose date range\"\r\n class=\"fixed z-50 rounded-md border border-border bg-popover text-popover-foreground shadow-lg animate-in fade-in-0 zoom-in-95\"\r\n >\r\n <div class=\"flex flex-col sm:flex-row\">\r\n <!-- Presets sidebar -->\r\n @if (presets().length > 0) {\r\n <div class=\"border-b sm:border-b-0 sm:border-r border-border p-3 space-y-0.5 sm:min-w-[150px]\">\r\n <p class=\"px-3 py-1.5 text-xs font-semibold text-muted-foreground uppercase tracking-wider\">Presets</p>\r\n @for (preset of presets(); track preset.label) {\r\n <button\r\n type=\"button\"\r\n class=\"w-full text-left px-3 py-2 text-sm rounded-md hover:bg-accent hover:text-accent-foreground transition-colors cursor-pointer\"\r\n (mousedown)=\"selectPreset(preset); $event.preventDefault()\"\r\n >\r\n {{ preset.label }}\r\n </button>\r\n }\r\n </div>\r\n }\r\n\r\n <!-- Calendar(s) -->\r\n <div class=\"flex flex-col sm:flex-row\">\r\n @if (dualCalendar()) {\r\n <!-- Left calendar -->\r\n <div class=\"p-1\">\r\n <div class=\"flex items-center justify-between px-3 py-2\">\r\n <button\r\n type=\"button\"\r\n class=\"inline-flex items-center justify-center rounded-md h-8 w-8 hover:bg-accent hover:text-accent-foreground transition-colors\"\r\n (click)=\"prevMonth()\"\r\n aria-label=\"Previous month\"\r\n >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m15 18-6-6 6-6\"/></svg>\r\n </button>\r\n <span class=\"text-sm font-semibold tracking-tight\">{{ leftMonthLabel() }}</span>\r\n <div class=\"w-8\"></div>\r\n </div>\r\n <ton-calendar\r\n mode=\"range\"\r\n [(rangeValue)]=\"internalRange\"\r\n [min]=\"min()\"\r\n [max]=\"max()\"\r\n [locale]=\"locale()\"\r\n [showNavigation]=\"false\"\r\n [borderless]=\"true\"\r\n [initialViewDate]=\"leftViewDate()\"\r\n (rangeValueChange)=\"onRangeChanged($event)\"\r\n />\r\n </div>\r\n <div class=\"border-t sm:border-t-0 sm:border-l border-border\"></div>\r\n <!-- Right calendar -->\r\n <div class=\"p-1\">\r\n <div class=\"flex items-center justify-between px-3 py-2\">\r\n <div class=\"w-8\"></div>\r\n <span class=\"text-sm font-semibold tracking-tight\">{{ rightMonthLabel() }}</span>\r\n <button\r\n type=\"button\"\r\n class=\"inline-flex items-center justify-center rounded-md h-8 w-8 hover:bg-accent hover:text-accent-foreground transition-colors\"\r\n (click)=\"nextMonth()\"\r\n aria-label=\"Next month\"\r\n >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m9 18 6-6-6-6\"/></svg>\r\n </button>\r\n </div>\r\n <ton-calendar\r\n mode=\"range\"\r\n [(rangeValue)]=\"internalRange\"\r\n [min]=\"min()\"\r\n [max]=\"max()\"\r\n [locale]=\"locale()\"\r\n [showNavigation]=\"false\"\r\n [borderless]=\"true\"\r\n [initialViewDate]=\"rightViewDate()\"\r\n (rangeValueChange)=\"onRangeChanged($event)\"\r\n />\r\n </div>\r\n } @else {\r\n <!-- Single calendar -->\r\n <ton-calendar\r\n mode=\"range\"\r\n [(rangeValue)]=\"internalRange\"\r\n [min]=\"min()\"\r\n [max]=\"max()\"\r\n [locale]=\"locale()\"\r\n (rangeValueChange)=\"onRangeChanged($event)\"\r\n />\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n `,\r\n})\r\nexport class TonDateRangePickerComponent implements ControlValueAccessor, OnDestroy {\r\n readonly value = model<DateRange | null>(null);\r\n readonly placeholder = input('Pick a date range...');\r\n readonly size = input<DatePickerSize>('md');\r\n readonly locale = input('en-US');\r\n readonly dateFormat = input<Intl.DateTimeFormatOptions>({\r\n month: 'short',\r\n day: 'numeric',\r\n year: 'numeric',\r\n });\r\n readonly separator = input(' \\u2014 ');\r\n readonly dualCalendar = input(false);\r\n readonly presets = input<DatePickerPreset[]>([]);\r\n readonly min = input<Date | undefined>(undefined);\r\n readonly max = input<Date | undefined>(undefined);\r\n readonly clearable = input(true);\r\n readonly disabled = input(false);\r\n readonly class = input<string>('');\r\n\r\n readonly open = signal(false);\r\n readonly internalRange = signal<DateRange | null>(null);\r\n readonly leftViewDate = signal(new Date());\r\n\r\n private readonly _disabledByCva = signal(false);\r\n protected readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\r\n\r\n private readonly triggerRef = viewChild<ElementRef<HTMLButtonElement>>('triggerEl');\r\n private readonly dropdownRef = viewChild<ElementRef<HTMLDivElement>>('dropdownEl');\r\n private readonly elRef = inject(ElementRef);\r\n\r\n private scrollHandler: (() => void) | null = null;\r\n private resizeHandler: (() => void) | null = null;\r\n\r\n private _onChange: (value: DateRange | null) => void = () => {};\r\n protected onTouched: () => void = () => {};\r\n\r\n // Computed\r\n readonly rightViewDate = computed(() => {\r\n const d = this.leftViewDate();\r\n return new Date(d.getFullYear(), d.getMonth() + 1, 1);\r\n });\r\n\r\n readonly leftMonthLabel = computed(() =>\r\n this.leftViewDate().toLocaleDateString(this.locale(), { month: 'long', year: 'numeric' })\r\n );\r\n\r\n readonly rightMonthLabel = computed(() =>\r\n this.rightViewDate().toLocaleDateString(this.locale(), { month: 'long', year: 'numeric' })\r\n );\r\n\r\n readonly displayValue = computed(() => {\r\n const r = this.value();\r\n if (!r?.start) return '';\r\n const fmt = (d: Date) => d.toLocaleDateString(this.locale(), this.dateFormat());\r\n if (!r.end) return fmt(r.start) + this.separator() + '...';\r\n return fmt(r.start) + this.separator() + fmt(r.end);\r\n });\r\n\r\n protected readonly triggerClass = computed(() =>\r\n cn(datePickerTriggerVariants({ size: this.size() }), this.class())\r\n );\r\n\r\n // CVA\r\n writeValue(val: DateRange | null): void {\r\n this.value.set(val ?? null);\r\n this.internalRange.set(val ?? null);\r\n if (val?.start) {\r\n this.leftViewDate.set(new Date(val.start.getFullYear(), val.start.getMonth(), 1));\r\n }\r\n }\r\n\r\n registerOnChange(fn: (value: DateRange | null) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._disabledByCva.set(isDisabled);\r\n }\r\n\r\n // Actions\r\n onRangeChanged(range: DateRange | null): void {\r\n this.internalRange.set(range);\r\n if (range?.start && range?.end) {\r\n this.value.set(range);\r\n this._onChange(range);\r\n setTimeout(() => this.close(), 150);\r\n }\r\n }\r\n\r\n selectPreset(preset: DatePickerPreset): void {\r\n this.value.set(preset.range);\r\n this.internalRange.set(preset.range);\r\n this._onChange(preset.range);\r\n this.close();\r\n }\r\n\r\n clear(event: Event): void {\r\n event.stopPropagation();\r\n this.value.set(null);\r\n this.internalRange.set(null);\r\n this._onChange(null);\r\n }\r\n\r\n prevMonth(): void {\r\n this.leftViewDate.update((d) => new Date(d.getFullYear(), d.getMonth() - 1, 1));\r\n }\r\n\r\n nextMonth(): void {\r\n this.leftViewDate.update((d) => new Date(d.getFullYear(), d.getMonth() + 1, 1));\r\n }\r\n\r\n toggle(): void {\r\n if (this.open()) {\r\n this.close();\r\n } else {\r\n this.internalRange.set(this.value());\r\n this.updateDropdownPosition();\r\n this.open.set(true);\r\n this.addGlobalListeners();\r\n setTimeout(() => this.updateDropdownPosition());\r\n }\r\n }\r\n\r\n close(): void {\r\n this.open.set(false);\r\n this.removeGlobalListeners();\r\n }\r\n\r\n // Positioning\r\n private updateDropdownPosition(): void {\r\n const trigger = this.triggerRef()?.nativeElement;\r\n if (!trigger) return;\r\n const rect = trigger.getBoundingClientRect();\r\n const dropdown = this.dropdownRef()?.nativeElement;\r\n if (dropdown) {\r\n dropdown.style.top = `${rect.bottom + 4}px`;\r\n dropdown.style.left = `${rect.left}px`;\r\n }\r\n }\r\n\r\n private addGlobalListeners(): void {\r\n this.removeGlobalListeners();\r\n this.scrollHandler = () => {\r\n requestAnimationFrame(() => this.updateDropdownPosition());\r\n };\r\n this.resizeHandler = () => {\r\n requestAnimationFrame(() => this.updateDropdownPosition());\r\n };\r\n document.addEventListener('scroll', this.scrollHandler, { capture: true, passive: true });\r\n window.addEventListener('resize', this.resizeHandler, { passive: true });\r\n }\r\n\r\n private removeGlobalListeners(): void {\r\n if (this.scrollHandler) {\r\n document.removeEventListener('scroll', this.scrollHandler, { capture: true } as EventListenerOptions);\r\n this.scrollHandler = null;\r\n }\r\n if (this.resizeHandler) {\r\n window.removeEventListener('resize', this.resizeHandler);\r\n this.resizeHandler = null;\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.removeGlobalListeners();\r\n }\r\n\r\n onDocumentClick(event: MouseEvent): void {\r\n if (!this.elRef.nativeElement.contains(event.target)) {\r\n this.close();\r\n }\r\n }\r\n\r\n onEscape(): void {\r\n this.close();\r\n }\r\n}\r\n","import type { RGB, HSL, HSV, ColorFormat } from './color-picker.types';\r\n\r\nexport function hexToRgb(hex: string): RGB | null {\r\n const clean = hex.replace(/^#/, '');\r\n if (!/^[0-9a-fA-F]+$/.test(clean)) return null;\r\n if (clean.length === 3) {\r\n const r = parseInt(clean[0] + clean[0], 16);\r\n const g = parseInt(clean[1] + clean[1], 16);\r\n const b = parseInt(clean[2] + clean[2], 16);\r\n return { r, g, b };\r\n }\r\n if (clean.length === 6) {\r\n const r = parseInt(clean.slice(0, 2), 16);\r\n const g = parseInt(clean.slice(2, 4), 16);\r\n const b = parseInt(clean.slice(4, 6), 16);\r\n return { r, g, b };\r\n }\r\n return null;\r\n}\r\n\r\nexport function rgbToHex(rgb: RGB): string {\r\n const toHex = (n: number) => Math.round(Math.max(0, Math.min(255, n))).toString(16).padStart(2, '0');\r\n return `#${toHex(rgb.r)}${toHex(rgb.g)}${toHex(rgb.b)}`;\r\n}\r\n\r\nexport function rgbToHsl(rgb: RGB): HSL {\r\n const r = rgb.r / 255;\r\n const g = rgb.g / 255;\r\n const b = rgb.b / 255;\r\n const max = Math.max(r, g, b);\r\n const min = Math.min(r, g, b);\r\n const l = (max + min) / 2;\r\n let h = 0;\r\n let s = 0;\r\n\r\n if (max !== min) {\r\n const d = max - min;\r\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\r\n switch (max) {\r\n case r: h = ((g - b) / d + (g < b ? 6 : 0)) / 6; break;\r\n case g: h = ((b - r) / d + 2) / 6; break;\r\n case b: h = ((r - g) / d + 4) / 6; break;\r\n }\r\n }\r\n\r\n return {\r\n h: Math.round(h * 360),\r\n s: Math.round(s * 100),\r\n l: Math.round(l * 100),\r\n };\r\n}\r\n\r\nexport function hslToRgb(hsl: HSL): RGB {\r\n const h = hsl.h / 360;\r\n const s = hsl.s / 100;\r\n const l = hsl.l / 100;\r\n\r\n if (s === 0) {\r\n const v = Math.round(l * 255);\r\n return { r: v, g: v, b: v };\r\n }\r\n\r\n const hue2rgb = (p: number, q: number, t: number): number => {\r\n if (t < 0) t += 1;\r\n if (t > 1) t -= 1;\r\n if (t < 1 / 6) return p + (q - p) * 6 * t;\r\n if (t < 1 / 2) return q;\r\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\r\n return p;\r\n };\r\n\r\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n const p = 2 * l - q;\r\n\r\n return {\r\n r: Math.round(hue2rgb(p, q, h + 1 / 3) * 255),\r\n g: Math.round(hue2rgb(p, q, h) * 255),\r\n b: Math.round(hue2rgb(p, q, h - 1 / 3) * 255),\r\n };\r\n}\r\n\r\nexport function rgbToHsv(rgb: RGB): HSV {\r\n const r = rgb.r / 255;\r\n const g = rgb.g / 255;\r\n const b = rgb.b / 255;\r\n const max = Math.max(r, g, b);\r\n const min = Math.min(r, g, b);\r\n const d = max - min;\r\n let h = 0;\r\n const s = max === 0 ? 0 : d / max;\r\n const v = max;\r\n\r\n if (max !== min) {\r\n switch (max) {\r\n case r: h = ((g - b) / d + (g < b ? 6 : 0)) / 6; break;\r\n case g: h = ((b - r) / d + 2) / 6; break;\r\n case b: h = ((r - g) / d + 4) / 6; break;\r\n }\r\n }\r\n\r\n return { h: Math.round(h * 360), s, v };\r\n}\r\n\r\nexport function hsvToRgb(hsv: HSV): RGB {\r\n const h = hsv.h / 360;\r\n const s = hsv.s;\r\n const v = hsv.v;\r\n const i = Math.floor(h * 6);\r\n const f = h * 6 - i;\r\n const p = v * (1 - s);\r\n const q = v * (1 - f * s);\r\n const t = v * (1 - (1 - f) * s);\r\n\r\n let r: number, g: number, b: number;\r\n switch (i % 6) {\r\n case 0: r = v; g = t; b = p; break;\r\n case 1: r = q; g = v; b = p; break;\r\n case 2: r = p; g = v; b = t; break;\r\n case 3: r = p; g = q; b = v; break;\r\n case 4: r = t; g = p; b = v; break;\r\n default: r = v; g = p; b = q; break;\r\n }\r\n\r\n return {\r\n r: Math.round(r * 255),\r\n g: Math.round(g * 255),\r\n b: Math.round(b * 255),\r\n };\r\n}\r\n\r\nexport function parseColor(input: string): RGB | null {\r\n const trimmed = input.trim().toLowerCase();\r\n\r\n // HEX\r\n if (trimmed.startsWith('#')) {\r\n return hexToRgb(trimmed);\r\n }\r\n\r\n // rgb(r, g, b)\r\n const rgbMatch = trimmed.match(/^rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/);\r\n if (rgbMatch) {\r\n return {\r\n r: Math.min(255, parseInt(rgbMatch[1])),\r\n g: Math.min(255, parseInt(rgbMatch[2])),\r\n b: Math.min(255, parseInt(rgbMatch[3])),\r\n };\r\n }\r\n\r\n // hsl(h, s%, l%)\r\n const hslMatch = trimmed.match(/^hsl\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})%\\s*,\\s*(\\d{1,3})%\\s*\\)$/);\r\n if (hslMatch) {\r\n return hslToRgb({\r\n h: Math.min(360, parseInt(hslMatch[1])),\r\n s: Math.min(100, parseInt(hslMatch[2])),\r\n l: Math.min(100, parseInt(hslMatch[3])),\r\n });\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport function formatColor(rgb: RGB, format: ColorFormat, alpha?: number): string {\r\n switch (format) {\r\n case 'hex':\r\n return rgbToHex(rgb);\r\n case 'rgb':\r\n if (alpha !== undefined && alpha < 1) {\r\n return `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${alpha.toFixed(2)})`;\r\n }\r\n return `rgb(${rgb.r}, ${rgb.g}, ${rgb.b})`;\r\n case 'hsl': {\r\n const hsl = rgbToHsl(rgb);\r\n if (alpha !== undefined && alpha < 1) {\r\n return `hsla(${hsl.h}, ${hsl.s}%, ${hsl.l}%, ${alpha.toFixed(2)})`;\r\n }\r\n return `hsl(${hsl.h}, ${hsl.s}%, ${hsl.l}%)`;\r\n }\r\n }\r\n}\r\n\r\nexport function isValidColor(input: string): boolean {\r\n return parseColor(input) !== null;\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const colorPickerTriggerVariants = cva(\r\n 'inline-flex w-full items-center gap-2 whitespace-nowrap rounded-sm border border-border bg-background px-3 py-2 text-sm ring-offset-background transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\r\n {\r\n variants: {\r\n size: {\r\n sm: 'h-9 text-xs',\r\n md: 'h-10 text-sm',\r\n lg: 'h-11 text-base',\r\n },\r\n },\r\n defaultVariants: { size: 'md' },\r\n }\r\n);\r\n\r\nexport type ColorPickerSize = 'sm' | 'md' | 'lg';\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n effect,\r\n ElementRef,\r\n forwardRef,\r\n inject,\r\n input,\r\n model,\r\n OnDestroy,\r\n output,\r\n signal,\r\n untracked,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { cn } from '../core/utils/cn';\r\nimport type { ColorFormat, ColorPickerPreset, HSV, RGB } from './color-picker.types';\r\nimport {\r\n rgbToHex,\r\n rgbToHsv,\r\n hsvToRgb,\r\n parseColor,\r\n formatColor,\r\n isValidColor,\r\n} from './color-picker.utils';\r\nimport { colorPickerTriggerVariants, type ColorPickerSize } from './color-picker.variants';\r\n\r\n@Component({\r\n selector: 'ton-color-picker',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'relative inline-block',\r\n '(document:click)': 'onDocumentClick($event)',\r\n '(keydown.escape)': 'onEscape()',\r\n },\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TonColorPickerComponent), multi: true },\r\n ],\r\n template: `\r\n <!-- Trigger -->\r\n @if (!inline()) {\r\n <button\r\n #triggerEl\r\n type=\"button\"\r\n role=\"combobox\"\r\n [attr.aria-expanded]=\"open()\"\r\n aria-haspopup=\"dialog\"\r\n [disabled]=\"isDisabled()\"\r\n [class]=\"triggerClass()\"\r\n (click)=\"toggle()\"\r\n (blur)=\"onTouched()\"\r\n >\r\n <div\r\n class=\"h-5 w-5 rounded-sm border border-border shrink-0\"\r\n [style.backgroundColor]=\"displayValue()\"\r\n ></div>\r\n <span class=\"truncate\">{{ displayValue() || placeholder() }}</span>\r\n </button>\r\n }\r\n\r\n <!-- Panel -->\r\n @if (open() || inline()) {\r\n <div\r\n #panelEl\r\n [class]=\"panelClass()\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-label=\"Color picker\"\r\n >\r\n <!-- Saturation/Brightness Panel -->\r\n <div\r\n #satPanel\r\n class=\"relative h-36 w-full rounded-md cursor-crosshair overflow-hidden\"\r\n [style.background]=\"saturationBg()\"\r\n (mousedown)=\"onSatPanelDown($event)\"\r\n (touchstart)=\"onSatPanelTouch($event)\"\r\n >\r\n <div class=\"absolute inset-0 bg-gradient-to-t from-black to-transparent\"></div>\r\n <div\r\n class=\"absolute h-4 w-4 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow-md pointer-events-none\"\r\n [style.left.%]=\"hsv().s * 100\"\r\n [style.top.%]=\"(1 - hsv().v) * 100\"\r\n ></div>\r\n </div>\r\n\r\n <!-- Hue Slider -->\r\n <div\r\n #hueTrack\r\n class=\"relative h-3 w-full rounded-full cursor-pointer mt-3\"\r\n style=\"background: linear-gradient(to right, hsl(0,100%,50%), hsl(60,100%,50%), hsl(120,100%,50%), hsl(180,100%,50%), hsl(240,100%,50%), hsl(300,100%,50%), hsl(360,100%,50%))\"\r\n (mousedown)=\"onHueDown($event)\"\r\n (touchstart)=\"onHueTouch($event)\"\r\n >\r\n <div\r\n class=\"absolute top-1/2 h-4 w-4 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow-md pointer-events-none\"\r\n [style.left.%]=\"hsv().h / 360 * 100\"\r\n [style.backgroundColor]=\"'hsl(' + hsv().h + ', 100%, 50%)'\"\r\n ></div>\r\n </div>\r\n\r\n <!-- Input + Format + Copy + Actions -->\r\n @if (showInput()) {\r\n <div class=\"mt-3 flex items-center gap-1.5\">\r\n <div\r\n class=\"h-8 w-8 rounded-sm border border-border shrink-0\"\r\n [style.backgroundColor]=\"displayValue()\"\r\n ></div>\r\n <input\r\n class=\"flex-1 min-w-0 h-8 rounded-sm border border-border bg-background px-2 text-xs font-mono focus:outline-none focus:ring-1 focus:ring-ring\"\r\n [value]=\"inputValue()\"\r\n (input)=\"onInputChange($event)\"\r\n (blur)=\"commitInput()\"\r\n (keydown.enter)=\"commitInput()\"\r\n />\r\n <button\r\n type=\"button\"\r\n class=\"h-8 px-1.5 rounded-sm border border-border text-[10px] font-semibold uppercase hover:bg-accent transition-colors shrink-0\"\r\n (click)=\"cycleFormat()\"\r\n title=\"Switch format\"\r\n >\r\n {{ currentFormat() }}\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"h-8 w-8 inline-flex items-center justify-center rounded-sm border border-border hover:bg-accent transition-colors shrink-0\"\r\n (click)=\"copyColor()\"\r\n [title]=\"copied() ? 'Copied!' : 'Copy color'\"\r\n >\r\n @if (copied()) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20 6 9 17l-5-5\"/></svg>\r\n } @else {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\"/><path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"/></svg>\r\n }\r\n </button>\r\n </div>\r\n <!-- Secondary actions row -->\r\n <div class=\"mt-2 flex items-center gap-1.5\">\r\n @if (showEyeDropper() && hasEyeDropper) {\r\n <button\r\n type=\"button\"\r\n class=\"h-7 px-2 inline-flex items-center gap-1.5 rounded-sm border border-border text-xs text-muted-foreground hover:bg-accent hover:text-foreground transition-colors\"\r\n (click)=\"pickFromScreen()\"\r\n title=\"Pick from screen\"\r\n >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m2 22 1-1h3l9-9\"/><path d=\"M3 21v-3l9-9\"/><path d=\"m15 6 3.4-3.4a2.1 2.1 0 1 1 3 3L18 9l.4.4a2.1 2.1 0 1 1-3 3l-3.8-3.8a2.1 2.1 0 1 1 3-3l.4.4Z\"/></svg>\r\n Pick\r\n </button>\r\n }\r\n @if (showFavorites()) {\r\n <button\r\n type=\"button\"\r\n class=\"h-7 px-2 inline-flex items-center gap-1.5 rounded-sm border border-border text-xs text-muted-foreground hover:bg-accent hover:text-foreground transition-colors\"\r\n (click)=\"addFavorite()\"\r\n title=\"Save to favorites\"\r\n >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z\"/></svg>\r\n Save\r\n </button>\r\n }\r\n </div>\r\n }\r\n\r\n <!-- Presets -->\r\n @for (preset of presets(); track $index) {\r\n <div class=\"mt-3\">\r\n @if (preset.label) {\r\n <p class=\"text-xs font-medium text-muted-foreground mb-1.5\">{{ preset.label }}</p>\r\n }\r\n <div class=\"flex flex-wrap gap-1.5\">\r\n @for (color of preset.colors; track color) {\r\n <button\r\n type=\"button\"\r\n class=\"h-6 w-6 rounded-sm border border-border hover:scale-110 transition-transform cursor-pointer\"\r\n [style.backgroundColor]=\"color\"\r\n [title]=\"color\"\r\n (click)=\"selectColor(color)\"\r\n ></button>\r\n }\r\n </div>\r\n </div>\r\n }\r\n\r\n <!-- Favorites -->\r\n @if (showFavorites() && favorites().length > 0) {\r\n <div class=\"mt-3\">\r\n <p class=\"text-xs font-medium text-muted-foreground mb-1.5\">Favorites</p>\r\n <div class=\"flex flex-wrap gap-1.5\">\r\n @for (fav of favorites(); track fav) {\r\n <div class=\"relative group\">\r\n <button\r\n type=\"button\"\r\n class=\"h-6 w-6 rounded-sm border border-border hover:scale-110 transition-transform cursor-pointer\"\r\n [style.backgroundColor]=\"fav\"\r\n [title]=\"fav\"\r\n (click)=\"selectColor(fav)\"\r\n ></button>\r\n <button\r\n type=\"button\"\r\n class=\"absolute -top-1 -right-1 h-3.5 w-3.5 rounded-full bg-destructive text-destructive-foreground text-[8px] leading-none items-center justify-center hidden group-hover:inline-flex\"\r\n (click)=\"removeFavorite(fav); $event.stopPropagation()\"\r\n >×</button>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n `,\r\n})\r\nexport class TonColorPickerComponent implements ControlValueAccessor, OnDestroy {\r\n // Public API\r\n readonly value = model('#000000');\r\n readonly format = input<ColorFormat>('hex');\r\n readonly presets = input<ColorPickerPreset[]>([]);\r\n readonly showInput = input(true);\r\n readonly showEyeDropper = input(true);\r\n readonly showFavorites = input(false);\r\n readonly inline = input(false);\r\n readonly disabled = input(false);\r\n readonly placeholder = input('Pick a color...');\r\n readonly size = input<ColorPickerSize>('md');\r\n readonly class = input<string>('');\r\n\r\n readonly colorChange = output<string>();\r\n readonly formatChange = output<ColorFormat>();\r\n\r\n // Internal state\r\n readonly hsv = signal<HSV>({ h: 0, s: 0, v: 0 });\r\n readonly currentFormat = signal<ColorFormat>('hex');\r\n readonly inputValue = signal('');\r\n readonly open = signal(false);\r\n readonly favorites = signal<string[]>([]);\r\n readonly copied = signal(false);\r\n\r\n private readonly _disabledByCva = signal(false);\r\n protected readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\r\n\r\n private readonly triggerRef = viewChild<ElementRef<HTMLButtonElement>>('triggerEl');\r\n private readonly panelRef = viewChild<ElementRef<HTMLDivElement>>('panelEl');\r\n private readonly satPanelRef = viewChild<ElementRef<HTMLDivElement>>('satPanel');\r\n private readonly hueTrackRef = viewChild<ElementRef<HTMLDivElement>>('hueTrack');\r\n private readonly elRef = inject(ElementRef);\r\n\r\n private moveHandler: ((e: MouseEvent | TouchEvent) => void) | null = null;\r\n private upHandler: (() => void) | null = null;\r\n private scrollHandler: (() => void) | null = null;\r\n private resizeHandler: (() => void) | null = null;\r\n\r\n private _onChange: (value: string) => void = () => {};\r\n protected onTouched: () => void = () => {};\r\n\r\n readonly hasEyeDropper = typeof window !== 'undefined' && 'EyeDropper' in window;\r\n\r\n // Computed\r\n readonly rgb = computed<RGB>(() => hsvToRgb(this.hsv()));\r\n readonly displayValue = computed(() =>\r\n formatColor(this.rgb(), this.currentFormat())\r\n );\r\n\r\n readonly saturationBg = computed(() =>\r\n `linear-gradient(to right, #fff, hsl(${this.hsv().h}, 100%, 50%))`\r\n );\r\n\r\n protected readonly triggerClass = computed(() =>\r\n cn(colorPickerTriggerVariants({ size: this.size() }), this.class())\r\n );\r\n\r\n protected readonly panelClass = computed(() =>\r\n this.inline()\r\n ? 'inline-block p-3 rounded-md border border-border bg-popover text-popover-foreground w-60'\r\n : 'fixed z-50 p-3 rounded-md border border-border bg-popover text-popover-foreground shadow-lg animate-in fade-in-0 zoom-in-95 w-60'\r\n );\r\n\r\n constructor() {\r\n // Sync format input\r\n effect(() => {\r\n const fmt = this.format();\r\n untracked(() => this.currentFormat.set(fmt));\r\n });\r\n\r\n // Sync value → HSV when value changes externally\r\n effect(() => {\r\n const val = this.value();\r\n untracked(() => {\r\n const rgb = parseColor(val);\r\n if (rgb) {\r\n this.hsv.set(rgbToHsv(rgb));\r\n this.inputValue.set(this.displayValue());\r\n }\r\n });\r\n });\r\n }\r\n\r\n // CVA\r\n writeValue(val: string): void {\r\n this.value.set(val ?? '#000000');\r\n }\r\n\r\n registerOnChange(fn: (value: string) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._disabledByCva.set(isDisabled);\r\n }\r\n\r\n // Emit helper\r\n private emitColor(): void {\r\n const formatted = this.displayValue();\r\n this.value.set(formatted);\r\n this.inputValue.set(formatted);\r\n this._onChange(formatted);\r\n this.colorChange.emit(formatted);\r\n }\r\n\r\n // Saturation panel\r\n onSatPanelDown(event: MouseEvent): void {\r\n event.preventDefault();\r\n this.updateSatFromPosition(event.clientX, event.clientY);\r\n this.startDrag((e) => {\r\n const x = e instanceof MouseEvent ? e.clientX : e.touches[0].clientX;\r\n const y = e instanceof MouseEvent ? e.clientY : e.touches[0].clientY;\r\n this.updateSatFromPosition(x, y);\r\n });\r\n }\r\n\r\n onSatPanelTouch(event: TouchEvent): void {\r\n this.updateSatFromPosition(event.touches[0].clientX, event.touches[0].clientY);\r\n this.startDrag((e) => {\r\n const x = e instanceof MouseEvent ? e.clientX : e.touches[0].clientX;\r\n const y = e instanceof MouseEvent ? e.clientY : e.touches[0].clientY;\r\n this.updateSatFromPosition(x, y);\r\n }, true);\r\n }\r\n\r\n private updateSatFromPosition(clientX: number, clientY: number): void {\r\n const panel = this.satPanelRef()?.nativeElement;\r\n if (!panel) return;\r\n const rect = panel.getBoundingClientRect();\r\n const s = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width));\r\n const v = Math.max(0, Math.min(1, 1 - (clientY - rect.top) / rect.height));\r\n this.hsv.update((prev) => ({ ...prev, s, v }));\r\n this.emitColor();\r\n }\r\n\r\n // Hue slider\r\n onHueDown(event: MouseEvent): void {\r\n event.preventDefault();\r\n this.updateHueFromPosition(event.clientX);\r\n this.startDrag((e) => {\r\n const x = e instanceof MouseEvent ? e.clientX : e.touches[0].clientX;\r\n this.updateHueFromPosition(x);\r\n });\r\n }\r\n\r\n onHueTouch(event: TouchEvent): void {\r\n this.updateHueFromPosition(event.touches[0].clientX);\r\n this.startDrag((e) => {\r\n const x = e instanceof MouseEvent ? e.clientX : e.touches[0].clientX;\r\n this.updateHueFromPosition(x);\r\n }, true);\r\n }\r\n\r\n private updateHueFromPosition(clientX: number): void {\r\n const track = this.hueTrackRef()?.nativeElement;\r\n if (!track) return;\r\n const rect = track.getBoundingClientRect();\r\n const percent = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width));\r\n const h = Math.round(percent * 360);\r\n this.hsv.update((prev) => ({ ...prev, h }));\r\n this.emitColor();\r\n }\r\n\r\n // Drag helpers (same pattern as slider component)\r\n private startDrag(handler: (e: MouseEvent | TouchEvent) => void, touch = false): void {\r\n this.removeDragListeners();\r\n this.moveHandler = handler;\r\n this.upHandler = () => {\r\n this.onTouched();\r\n this.removeDragListeners();\r\n };\r\n if (touch) {\r\n document.addEventListener('touchmove', this.moveHandler as EventListener, { passive: true });\r\n document.addEventListener('touchend', this.upHandler);\r\n } else {\r\n document.addEventListener('mousemove', this.moveHandler as EventListener);\r\n document.addEventListener('mouseup', this.upHandler);\r\n }\r\n }\r\n\r\n private removeDragListeners(): void {\r\n if (this.moveHandler) {\r\n document.removeEventListener('mousemove', this.moveHandler as EventListener);\r\n document.removeEventListener('touchmove', this.moveHandler as EventListener);\r\n this.moveHandler = null;\r\n }\r\n if (this.upHandler) {\r\n document.removeEventListener('mouseup', this.upHandler);\r\n document.removeEventListener('touchend', this.upHandler);\r\n this.upHandler = null;\r\n }\r\n }\r\n\r\n // Input\r\n onInputChange(event: Event): void {\r\n this.inputValue.set((event.target as HTMLInputElement).value);\r\n }\r\n\r\n commitInput(): void {\r\n const val = this.inputValue().trim();\r\n if (isValidColor(val)) {\r\n const rgb = parseColor(val)!;\r\n this.hsv.set(rgbToHsv(rgb));\r\n this.emitColor();\r\n } else {\r\n this.inputValue.set(this.displayValue());\r\n }\r\n }\r\n\r\n // Format\r\n cycleFormat(): void {\r\n const formats: ColorFormat[] = ['hex', 'rgb', 'hsl'];\r\n const idx = formats.indexOf(this.currentFormat());\r\n const next = formats[(idx + 1) % formats.length];\r\n this.currentFormat.set(next);\r\n this.inputValue.set(this.displayValue());\r\n this.formatChange.emit(next);\r\n }\r\n\r\n // Copy\r\n copyColor(): void {\r\n navigator.clipboard.writeText(this.displayValue());\r\n this.copied.set(true);\r\n setTimeout(() => this.copied.set(false), 2000);\r\n }\r\n\r\n // Presets & favorites\r\n selectColor(color: string): void {\r\n const rgb = parseColor(color);\r\n if (rgb) {\r\n this.hsv.set(rgbToHsv(rgb));\r\n this.emitColor();\r\n }\r\n }\r\n\r\n addFavorite(): void {\r\n const hex = rgbToHex(this.rgb());\r\n this.favorites.update((favs) =>\r\n favs.includes(hex) ? favs : [...favs, hex]\r\n );\r\n }\r\n\r\n removeFavorite(color: string): void {\r\n this.favorites.update((favs) => favs.filter((f) => f !== color));\r\n }\r\n\r\n // EyeDropper\r\n async pickFromScreen(): Promise<void> {\r\n if (!this.hasEyeDropper) return;\r\n try {\r\n const dropper = new (window as any).EyeDropper();\r\n const result = await dropper.open();\r\n this.selectColor(result.sRGBHex);\r\n } catch {\r\n // User cancelled\r\n }\r\n }\r\n\r\n // Popover\r\n toggle(): void {\r\n if (this.open()) {\r\n this.close();\r\n } else {\r\n this.open.set(true);\r\n this.addPositionListeners();\r\n setTimeout(() => this.updatePanelPosition());\r\n }\r\n }\r\n\r\n close(): void {\r\n this.open.set(false);\r\n this.removePositionListeners();\r\n }\r\n\r\n private updatePanelPosition(): void {\r\n if (this.inline()) return;\r\n const trigger = this.triggerRef()?.nativeElement;\r\n if (!trigger) return;\r\n const rect = trigger.getBoundingClientRect();\r\n const panel = this.panelRef()?.nativeElement;\r\n if (panel) {\r\n panel.style.top = `${rect.bottom + 4}px`;\r\n panel.style.left = `${rect.left}px`;\r\n }\r\n }\r\n\r\n private addPositionListeners(): void {\r\n this.removePositionListeners();\r\n this.scrollHandler = () => requestAnimationFrame(() => this.updatePanelPosition());\r\n this.resizeHandler = () => requestAnimationFrame(() => this.updatePanelPosition());\r\n document.addEventListener('scroll', this.scrollHandler, { capture: true, passive: true });\r\n window.addEventListener('resize', this.resizeHandler, { passive: true });\r\n }\r\n\r\n private removePositionListeners(): void {\r\n if (this.scrollHandler) {\r\n document.removeEventListener('scroll', this.scrollHandler, { capture: true } as EventListenerOptions);\r\n this.scrollHandler = null;\r\n }\r\n if (this.resizeHandler) {\r\n window.removeEventListener('resize', this.resizeHandler);\r\n this.resizeHandler = null;\r\n }\r\n }\r\n\r\n onDocumentClick(event: MouseEvent): void {\r\n if (!this.elRef.nativeElement.contains(event.target)) {\r\n this.close();\r\n }\r\n }\r\n\r\n onEscape(): void {\r\n this.close();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.removeDragListeners();\r\n this.removePositionListeners();\r\n }\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const otpCellVariants = cva(\r\n 'text-center font-mono font-semibold border border-border bg-background rounded-md transition-all focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed',\r\n {\r\n variants: {\r\n size: {\r\n sm: 'h-9 w-9 text-sm',\r\n md: 'h-11 w-11 text-lg',\r\n lg: 'h-14 w-14 text-2xl',\r\n },\r\n },\r\n defaultVariants: { size: 'md' },\r\n }\r\n);\r\n\r\nexport type OtpInputSize = 'sm' | 'md' | 'lg';\r\nexport type OtpInputType = 'number' | 'alphanumeric';\r\n","import {\r\n afterNextRender,\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n effect,\r\n ElementRef,\r\n forwardRef,\r\n input,\r\n linkedSignal,\r\n model,\r\n output,\r\n signal,\r\n untracked,\r\n viewChildren,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { cn } from '../core/utils/cn';\r\nimport { otpCellVariants, type OtpInputSize, type OtpInputType } from './otp-input.variants';\r\n\r\n@Component({\r\n selector: 'ton-otp-input',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TonOtpInputComponent), multi: true },\r\n ],\r\n template: `\r\n <div\r\n role=\"group\"\r\n [attr.aria-label]=\"'OTP input, ' + length() + ' digits'\"\r\n class=\"flex items-center gap-2\"\r\n >\r\n @for (digit of digits(); track $index; let i = $index) {\r\n @if (separator() !== null && i === separator() && i > 0) {\r\n <span class=\"text-muted-foreground text-lg select-none\" aria-hidden=\"true\">—</span>\r\n }\r\n <input\r\n #inputEl\r\n [type]=\"mask() ? 'password' : 'text'\"\r\n [inputMode]=\"type() === 'number' ? 'numeric' : 'text'\"\r\n [attr.pattern]=\"type() === 'number' ? '[0-9]' : '[a-zA-Z0-9]'\"\r\n maxlength=\"1\"\r\n autocomplete=\"one-time-code\"\r\n [value]=\"digit\"\r\n [placeholder]=\"placeholder()\"\r\n [disabled]=\"isDisabled()\"\r\n [class]=\"cellClass(i)\"\r\n [attr.aria-label]=\"'Digit ' + (i + 1) + ' of ' + length()\"\r\n (input)=\"onInput($event, i)\"\r\n (keydown)=\"onKeydown($event, i)\"\r\n (paste)=\"onPaste($event, i)\"\r\n (focus)=\"focusedIndex.set(i)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n }\r\n </div>\r\n `,\r\n})\r\nexport class TonOtpInputComponent implements ControlValueAccessor {\r\n // Public API\r\n readonly length = input(6);\r\n readonly type = input<OtpInputType>('number');\r\n readonly size = input<OtpInputSize>('md');\r\n readonly disabled = input(false);\r\n readonly mask = input(false);\r\n readonly autoFocus = input(true);\r\n readonly placeholder = input('');\r\n readonly separator = input<number | null>(null);\r\n readonly status = input<'idle' | 'loading' | 'success' | 'error'>('idle');\r\n readonly value = model('');\r\n\r\n readonly completed = output<string>();\r\n\r\n // Internal state\r\n readonly digits = linkedSignal<string[]>(() => Array(this.length()).fill(''));\r\n readonly focusedIndex = signal(-1);\r\n readonly inputRefs = viewChildren<ElementRef<HTMLInputElement>>('inputEl');\r\n\r\n private readonly _disabledByCva = signal(false);\r\n readonly isDisabled = computed(() => this.disabled() || this._disabledByCva() || this.status() === 'loading');\r\n\r\n private _onChange: (value: string) => void = () => {};\r\n private _onTouched: () => void = () => {};\r\n\r\n // Computed\r\n readonly fullValue = computed(() => this.digits().join(''));\r\n readonly isComplete = computed(() => {\r\n const d = this.digits();\r\n return d.length === this.length() && d.every((c) => c !== '');\r\n });\r\n\r\n constructor() {\r\n // Sync value → digits when value changes externally (e.g. reset)\r\n effect(() => {\r\n const val = this.value();\r\n untracked(() => {\r\n const chars = val.split('').slice(0, this.length());\r\n const padded = [...chars, ...Array(this.length() - chars.length).fill('')];\r\n const current = this.digits();\r\n if (padded.join('') !== current.join('')) {\r\n this.digits.set(padded);\r\n }\r\n });\r\n });\r\n\r\n afterNextRender(() => {\r\n if (this.autoFocus()) {\r\n this.focusInput(0);\r\n }\r\n });\r\n }\r\n\r\n // CVA\r\n writeValue(val: string): void {\r\n const str = val ?? '';\r\n this.value.set(str);\r\n const chars = str.split('').slice(0, this.length());\r\n const padded = [...chars, ...Array(this.length() - chars.length).fill('')];\r\n this.digits.set(padded);\r\n }\r\n\r\n registerOnChange(fn: (value: string) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this._onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._disabledByCva.set(isDisabled);\r\n }\r\n\r\n // Cell class\r\n cellClass(index: number): string {\r\n const isFocused = this.focusedIndex() === index;\r\n const hasValue = this.digits()[index] !== '';\r\n const st = this.status();\r\n return cn(\r\n otpCellVariants({ size: this.size() }),\r\n st === 'idle' && isFocused && 'border-primary ring-2 ring-ring',\r\n st === 'idle' && hasValue && !isFocused && 'border-primary/50',\r\n st === 'loading' && 'border-muted-foreground/30 opacity-70',\r\n st === 'success' && 'border-green-500 bg-green-500/5',\r\n st === 'error' && 'border-destructive bg-destructive/5 animate-shake',\r\n );\r\n }\r\n\r\n // Input handler\r\n onInput(event: Event, index: number): void {\r\n const input = event.target as HTMLInputElement;\r\n const char = input.value.slice(-1);\r\n\r\n if (!this.isValidChar(char)) {\r\n input.value = this.digits()[index];\r\n return;\r\n }\r\n\r\n this.setDigit(index, char);\r\n\r\n if (index < this.length() - 1) {\r\n this.focusInput(index + 1);\r\n }\r\n\r\n this.emitValue();\r\n }\r\n\r\n // Keyboard handler\r\n onKeydown(event: KeyboardEvent, index: number): void {\r\n switch (event.key) {\r\n case 'Backspace':\r\n event.preventDefault();\r\n if (this.digits()[index] !== '') {\r\n this.setDigit(index, '');\r\n this.emitValue();\r\n } else if (index > 0) {\r\n this.setDigit(index - 1, '');\r\n this.focusInput(index - 1);\r\n this.emitValue();\r\n }\r\n break;\r\n\r\n case 'Delete':\r\n event.preventDefault();\r\n this.setDigit(index, '');\r\n this.emitValue();\r\n break;\r\n\r\n case 'ArrowLeft':\r\n event.preventDefault();\r\n if (index > 0) this.focusInput(index - 1);\r\n break;\r\n\r\n case 'ArrowRight':\r\n event.preventDefault();\r\n if (index < this.length() - 1) this.focusInput(index + 1);\r\n break;\r\n\r\n case 'Home':\r\n event.preventDefault();\r\n this.focusInput(0);\r\n break;\r\n\r\n case 'End':\r\n event.preventDefault();\r\n this.focusInput(this.length() - 1);\r\n break;\r\n }\r\n }\r\n\r\n // Paste handler\r\n onPaste(event: ClipboardEvent, index: number): void {\r\n event.preventDefault();\r\n const text = event.clipboardData?.getData('text') ?? '';\r\n const chars = text.split('').filter((c) => this.isValidChar(c));\r\n\r\n if (chars.length === 0) return;\r\n\r\n const newDigits = [...this.digits()];\r\n let lastFilledIndex = index;\r\n\r\n for (let i = 0; i < chars.length && index + i < this.length(); i++) {\r\n newDigits[index + i] = chars[i];\r\n lastFilledIndex = index + i;\r\n }\r\n\r\n this.digits.set(newDigits);\r\n\r\n const nextIndex = Math.min(lastFilledIndex + 1, this.length() - 1);\r\n this.focusInput(nextIndex);\r\n this.emitValue();\r\n }\r\n\r\n // Blur\r\n onBlur(): void {\r\n this.focusedIndex.set(-1);\r\n this._onTouched();\r\n }\r\n\r\n // Helpers\r\n private setDigit(index: number, char: string): void {\r\n this.digits.update((d) => {\r\n const next = [...d];\r\n next[index] = char;\r\n return next;\r\n });\r\n }\r\n\r\n private emitValue(): void {\r\n const val = this.fullValue();\r\n this.value.set(val);\r\n this._onChange(val);\r\n\r\n if (this.isComplete()) {\r\n this.completed.emit(val);\r\n }\r\n }\r\n\r\n private focusInput(index: number): void {\r\n const refs = this.inputRefs();\r\n if (refs[index]) {\r\n const el = refs[index].nativeElement;\r\n el.focus();\r\n el.select();\r\n }\r\n }\r\n\r\n private isValidChar(char: string): boolean {\r\n if (!char || char.length !== 1) return false;\r\n if (this.type() === 'number') return /^[0-9]$/.test(char);\r\n return /^[a-zA-Z0-9]$/.test(char);\r\n }\r\n\r\n}\r\n","import {\r\n afterNextRender,\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n ElementRef,\r\n inject,\r\n signal,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { DialogRef } from '@angular/cdk/dialog';\r\nimport { TonInputDirective } from '../input/input.directive';\r\nimport { TON_DIALOG_DATA } from '../modal/dialog.service';\r\nimport type { Command, CommandGroup, CommandPaletteConfig } from './command-palette.types';\r\n\r\n@Component({\r\n selector: 'ton-command-palette',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [TonInputDirective],\r\n host: {\r\n '(keydown)': 'onKeydown($event)',\r\n 'class': 'block',\r\n },\r\n styles: `\r\n :host {\r\n display: block;\r\n background-color: var(--ton-background);\r\n border: 1px solid var(--ton-border);\r\n border-radius: 0.5rem;\r\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);\r\n overflow: hidden;\r\n }\r\n `,\r\n template: `\r\n <!-- Search -->\r\n <div class=\"flex items-center gap-2 border-b border-border px-4 py-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"text-muted-foreground shrink-0\"><circle cx=\"11\" cy=\"11\" r=\"8\"/><path d=\"m21 21-4.3-4.3\"/></svg>\r\n <input\r\n #searchInput\r\n tonInput\r\n class=\"border-none shadow-none h-8 px-0 focus-visible:ring-0 focus-visible:ring-offset-0\"\r\n [placeholder]=\"config.placeholder ?? 'Type a command...'\"\r\n [value]=\"query()\"\r\n (input)=\"onQueryChange(searchInput.value)\"\r\n />\r\n <kbd class=\"rounded border border-border bg-muted px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground shrink-0\">Esc</kbd>\r\n </div>\r\n\r\n <!-- Results -->\r\n <div class=\"max-h-[300px] overflow-y-auto p-2 ton-scrollbar\">\r\n @if (flatResults().length === 0) {\r\n <p class=\"py-6 text-center text-sm text-muted-foreground\">\r\n {{ config.emptyText ?? 'No results found.' }}\r\n </p>\r\n } @else {\r\n @for (group of filteredGroups(); track group.name) {\r\n @if (group.name) {\r\n <p class=\"px-2 py-1.5 text-xs font-semibold text-muted-foreground uppercase tracking-wider\">{{ group.name }}</p>\r\n }\r\n @for (cmd of group.commands; track cmd.id) {\r\n @let idx = flatIndex(cmd);\r\n <button\r\n [attr.data-cmd-idx]=\"idx\"\r\n [class]=\"\r\n 'w-full text-left rounded-sm px-3 py-2 text-sm transition-colors flex items-center gap-3 cursor-pointer ' +\r\n (idx === activeIndex()\r\n ? 'bg-accent text-accent-foreground'\r\n : 'text-foreground hover:bg-accent/50')\r\n \"\r\n (click)=\"execute(cmd)\"\r\n (mouseenter)=\"activeIndex.set(idx)\"\r\n >\r\n @if (cmd.icon) {\r\n <span class=\"shrink-0 w-5 text-center text-muted-foreground\" [innerHTML]=\"cmd.icon\"></span>\r\n }\r\n <div class=\"flex-1 min-w-0\">\r\n <span class=\"block truncate font-medium\">{{ cmd.label }}</span>\r\n @if (cmd.description) {\r\n <span class=\"block text-xs text-muted-foreground truncate\">{{ cmd.description }}</span>\r\n }\r\n </div>\r\n @if (cmd.shortcut) {\r\n <kbd class=\"rounded border border-border bg-muted px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground shrink-0\">{{ cmd.shortcut }}</kbd>\r\n }\r\n </button>\r\n }\r\n }\r\n }\r\n </div>\r\n\r\n <!-- Footer -->\r\n <div class=\"border-t border-border px-4 py-2\">\r\n <div class=\"flex items-center gap-3 text-xs text-muted-foreground\">\r\n <span class=\"flex items-center gap-1\">\r\n <kbd class=\"rounded border border-border bg-muted px-1 py-0.5 font-mono text-[10px]\">&uarr;&darr;</kbd>\r\n Navigate\r\n </span>\r\n <span class=\"flex items-center gap-1\">\r\n <kbd class=\"rounded border border-border bg-muted px-1 py-0.5 font-mono text-[10px]\">&crarr;</kbd>\r\n Execute\r\n </span>\r\n <span class=\"flex items-center gap-1\">\r\n <kbd class=\"rounded border border-border bg-muted px-1 py-0.5 font-mono text-[10px]\">Esc</kbd>\r\n Close\r\n </span>\r\n </div>\r\n </div>\r\n `,\r\n})\r\nexport class TonCommandPaletteComponent {\r\n readonly config = inject<CommandPaletteConfig>(TON_DIALOG_DATA);\r\n private readonly dialogRef = inject(DialogRef);\r\n private readonly searchInput = viewChild<ElementRef<HTMLInputElement>>('searchInput');\r\n\r\n readonly query = signal('');\r\n readonly activeIndex = signal(0);\r\n\r\n readonly filteredGroups = computed<CommandGroup[]>(() => {\r\n const q = this.query().toLowerCase().trim();\r\n const commands = this.config.commands.filter((cmd) => {\r\n if (cmd.disabled) return false;\r\n if (!q) return true;\r\n return (\r\n cmd.label.toLowerCase().includes(q) ||\r\n cmd.description?.toLowerCase().includes(q) ||\r\n cmd.keywords?.some((k) => k.toLowerCase().includes(q))\r\n );\r\n });\r\n\r\n const groups = new Map<string, Command[]>();\r\n for (const cmd of commands) {\r\n const group = cmd.group ?? '';\r\n if (!groups.has(group)) groups.set(group, []);\r\n groups.get(group)!.push(cmd);\r\n }\r\n\r\n return [...groups.entries()].map(([name, cmds]) => ({ name, commands: cmds }));\r\n });\r\n\r\n readonly flatResults = computed(() =>\r\n this.filteredGroups().flatMap((g) => g.commands)\r\n );\r\n\r\n constructor() {\r\n afterNextRender(() => {\r\n this.searchInput()?.nativeElement.focus();\r\n });\r\n }\r\n\r\n onQueryChange(value: string): void {\r\n this.query.set(value);\r\n this.activeIndex.set(0);\r\n }\r\n\r\n flatIndex(cmd: Command): number {\r\n return this.flatResults().indexOf(cmd);\r\n }\r\n\r\n execute(cmd: Command): void {\r\n this.dialogRef.close();\r\n cmd.action();\r\n }\r\n\r\n onKeydown(event: KeyboardEvent): void {\r\n const results = this.flatResults();\r\n const len = results.length;\r\n if (len === 0 && event.key !== 'Escape') return;\r\n\r\n switch (event.key) {\r\n case 'ArrowDown':\r\n event.preventDefault();\r\n this.activeIndex.update((i) => (i + 1) % len);\r\n this.scrollActiveIntoView();\r\n break;\r\n case 'ArrowUp':\r\n event.preventDefault();\r\n this.activeIndex.update((i) => (i - 1 + len) % len);\r\n this.scrollActiveIntoView();\r\n break;\r\n case 'Enter':\r\n event.preventDefault();\r\n const active = results[this.activeIndex()];\r\n if (active) this.execute(active);\r\n break;\r\n }\r\n }\r\n\r\n private scrollActiveIntoView(): void {\r\n requestAnimationFrame(() => {\r\n const el = document.querySelector(`[data-cmd-idx=\"${this.activeIndex()}\"]`);\r\n el?.scrollIntoView({ block: 'nearest' });\r\n });\r\n }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { TonDialogService } from '../modal/dialog.service';\r\nimport type { TonDialogRef } from '../modal/dialog-ref';\r\nimport { TonCommandPaletteComponent } from './command-palette.component';\r\nimport type { CommandPaletteConfig } from './command-palette.types';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TonCommandPaletteService {\r\n private readonly dialogService = inject(TonDialogService);\r\n private isOpen = false;\r\n\r\n open(config: CommandPaletteConfig): TonDialogRef<void> | null {\r\n if (this.isOpen) return null;\r\n this.isOpen = true;\r\n\r\n const ref = this.dialogService.open<TonCommandPaletteComponent, void>(\r\n TonCommandPaletteComponent,\r\n {\r\n width: config.width ?? '32rem',\r\n data: config,\r\n }\r\n );\r\n\r\n ref.closed.subscribe(() => {\r\n this.isOpen = false;\r\n });\r\n\r\n return ref;\r\n }\r\n\r\n close(): void {\r\n if (this.isOpen) {\r\n this.dialogService.closeAll();\r\n }\r\n }\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const numberInputVariants = cva(\r\n 'inline-flex items-center border border-border rounded-md bg-background transition-colors focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2',\r\n {\r\n variants: {\r\n size: {\r\n sm: 'h-9 text-xs',\r\n md: 'h-10 text-sm',\r\n lg: 'h-11 text-base',\r\n },\r\n },\r\n defaultVariants: { size: 'md' },\r\n }\r\n);\r\n\r\nexport type NumberInputSize = 'sm' | 'md' | 'lg';\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n effect,\r\n forwardRef,\r\n input,\r\n model,\r\n signal,\r\n untracked,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { cn } from '../core/utils/cn';\r\nimport { numberInputVariants, type NumberInputSize } from './number-input.variants';\r\n\r\n@Component({\r\n selector: 'ton-number-input',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TonNumberInputComponent), multi: true },\r\n ],\r\n template: `\r\n <div [class]=\"containerClass()\">\r\n <button\r\n type=\"button\"\r\n class=\"px-2.5 hover:bg-accent transition-colors border-r border-border disabled:opacity-40 disabled:cursor-not-allowed\"\r\n [disabled]=\"isDisabled() || atMin()\"\r\n (click)=\"decrement()\"\r\n aria-label=\"Decrease\"\r\n >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 12h14\"/></svg>\r\n </button>\r\n <input\r\n #inputEl\r\n type=\"text\"\r\n inputmode=\"decimal\"\r\n class=\"flex-1 w-14 text-center outline-none bg-transparent font-medium\"\r\n [value]=\"inputValue()\"\r\n [disabled]=\"isDisabled()\"\r\n [placeholder]=\"placeholder()\"\r\n [attr.aria-label]=\"'Number input'\"\r\n [attr.aria-valuemin]=\"min() ?? null\"\r\n [attr.aria-valuemax]=\"max() ?? null\"\r\n [attr.aria-valuenow]=\"value()\"\r\n role=\"spinbutton\"\r\n (input)=\"onInput($event)\"\r\n (blur)=\"commitValue()\"\r\n (keydown)=\"onKeydown($event)\"\r\n />\r\n <button\r\n type=\"button\"\r\n class=\"px-2.5 hover:bg-accent transition-colors border-l border-border disabled:opacity-40 disabled:cursor-not-allowed\"\r\n [disabled]=\"isDisabled() || atMax()\"\r\n (click)=\"increment()\"\r\n aria-label=\"Increase\"\r\n >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 12h14\"/><path d=\"M12 5v14\"/></svg>\r\n </button>\r\n </div>\r\n `,\r\n})\r\nexport class TonNumberInputComponent implements ControlValueAccessor {\r\n readonly value = model(0);\r\n readonly min = input<number | null>(null);\r\n readonly max = input<number | null>(null);\r\n readonly step = input(1);\r\n readonly disabled = input(false);\r\n readonly size = input<NumberInputSize>('md');\r\n readonly placeholder = input('');\r\n readonly class = input<string>('');\r\n\r\n readonly inputValue = signal('0');\r\n private readonly _disabledByCva = signal(false);\r\n readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\r\n\r\n readonly atMin = computed(() => this.min() !== null && this.value() <= this.min()!);\r\n readonly atMax = computed(() => this.max() !== null && this.value() >= this.max()!);\r\n\r\n readonly containerClass = computed(() =>\r\n cn(numberInputVariants({ size: this.size() }), this.isDisabled() && 'opacity-50', this.class())\r\n );\r\n\r\n private _onChange: (value: number) => void = () => {};\r\n private _onTouched: () => void = () => {};\r\n\r\n constructor() {\r\n effect(() => {\r\n const val = this.value();\r\n untracked(() => this.inputValue.set(String(val)));\r\n });\r\n }\r\n\r\n writeValue(val: number): void {\r\n this.value.set(val ?? 0);\r\n }\r\n\r\n registerOnChange(fn: (value: number) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this._onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._disabledByCva.set(isDisabled);\r\n }\r\n\r\n increment(): void {\r\n this.setValue(this.value() + this.step());\r\n }\r\n\r\n decrement(): void {\r\n this.setValue(this.value() - this.step());\r\n }\r\n\r\n onInput(event: Event): void {\r\n this.inputValue.set((event.target as HTMLInputElement).value);\r\n }\r\n\r\n commitValue(): void {\r\n const parsed = parseFloat(this.inputValue());\r\n if (isNaN(parsed)) {\r\n this.inputValue.set(String(this.value()));\r\n } else {\r\n this.setValue(parsed);\r\n }\r\n this._onTouched();\r\n }\r\n\r\n onKeydown(event: KeyboardEvent): void {\r\n switch (event.key) {\r\n case 'ArrowUp':\r\n event.preventDefault();\r\n this.increment();\r\n break;\r\n case 'ArrowDown':\r\n event.preventDefault();\r\n this.decrement();\r\n break;\r\n }\r\n }\r\n\r\n private setValue(raw: number): void {\r\n let clamped = raw;\r\n if (this.min() !== null) clamped = Math.max(this.min()!, clamped);\r\n if (this.max() !== null) clamped = Math.min(this.max()!, clamped);\r\n const rounded = parseFloat(clamped.toFixed(10));\r\n this.value.set(rounded);\r\n this._onChange(rounded);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n input,\r\n} from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\n\r\nexport interface AvatarGroupItem {\r\n src?: string;\r\n alt?: string;\r\n fallback?: string;\r\n}\r\n\r\nconst sizeMap = {\r\n sm: { avatar: 'h-7 w-7 text-xs', counter: 'h-7 w-7 text-[10px]' },\r\n md: { avatar: 'h-9 w-9 text-sm', counter: 'h-9 w-9 text-xs' },\r\n lg: { avatar: 'h-11 w-11 text-base', counter: 'h-11 w-11 text-sm' },\r\n};\r\n\r\nconst spacingMap = {\r\n tight: '-space-x-3',\r\n normal: '-space-x-2',\r\n};\r\n\r\nexport type AvatarGroupSize = 'sm' | 'md' | 'lg';\r\nexport type AvatarGroupSpacing = 'tight' | 'normal';\r\n\r\n@Component({\r\n selector: 'ton-avatar-group',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n template: `\r\n <div [class]=\"containerClass()\" role=\"group\" [attr.aria-label]=\"'Group of ' + items().length + ' users'\">\r\n @for (item of visibleItems(); track $index) {\r\n @if (item.src) {\r\n <img\r\n [src]=\"item.src\"\r\n [alt]=\"item.alt ?? ''\"\r\n [class]=\"avatarClass()\"\r\n />\r\n } @else {\r\n <div [class]=\"fallbackClass()\">\r\n {{ item.fallback ?? '?' }}\r\n </div>\r\n }\r\n }\r\n @if (overflowCount() > 0) {\r\n <div [class]=\"counterClass()\" [title]=\"overflowCount() + ' more'\">\r\n +{{ overflowCount() }}\r\n </div>\r\n }\r\n </div>\r\n `,\r\n})\r\nexport class TonAvatarGroupComponent {\r\n readonly items = input.required<AvatarGroupItem[]>();\r\n readonly max = input(3);\r\n readonly size = input<AvatarGroupSize>('md');\r\n readonly spacing = input<AvatarGroupSpacing>('normal');\r\n\r\n readonly visibleItems = computed(() => this.items().slice(0, this.max()));\r\n readonly overflowCount = computed(() => Math.max(0, this.items().length - this.max()));\r\n\r\n readonly containerClass = computed(() =>\r\n cn('flex items-center', spacingMap[this.spacing()])\r\n );\r\n\r\n readonly avatarClass = computed(() =>\r\n cn(\r\n 'inline-block rounded-full object-cover ring-2 ring-background',\r\n sizeMap[this.size()].avatar\r\n )\r\n );\r\n\r\n readonly fallbackClass = computed(() =>\r\n cn(\r\n 'inline-flex items-center justify-center rounded-full bg-muted text-muted-foreground font-medium ring-2 ring-background',\r\n sizeMap[this.size()].avatar\r\n )\r\n );\r\n\r\n readonly counterClass = computed(() =>\r\n cn(\r\n 'inline-flex items-center justify-center rounded-full bg-muted text-muted-foreground font-semibold ring-2 ring-background',\r\n sizeMap[this.size()].counter\r\n )\r\n );\r\n}\r\n","import { cva } from 'class-variance-authority';\r\n\r\nexport const tagInputContainerVariants = cva(\r\n 'flex flex-wrap gap-1.5 border border-border rounded-md bg-background px-2 cursor-text transition-colors focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2',\r\n {\r\n variants: {\r\n size: {\r\n sm: 'min-h-[36px] py-1 text-xs',\r\n md: 'min-h-[40px] py-1.5 text-sm',\r\n lg: 'min-h-[44px] py-2 text-base',\r\n },\r\n },\r\n defaultVariants: { size: 'md' },\r\n }\r\n);\r\n\r\nexport const tagVariants = cva(\r\n 'inline-flex items-center gap-1 rounded-md font-medium',\r\n {\r\n variants: {\r\n size: {\r\n sm: 'px-1.5 py-0.5 text-xs',\r\n md: 'px-2 py-0.5 text-sm',\r\n lg: 'px-2.5 py-1 text-sm',\r\n },\r\n },\r\n defaultVariants: { size: 'md' },\r\n }\r\n);\r\n\r\nexport type TagInputSize = 'sm' | 'md' | 'lg';\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n ElementRef,\r\n forwardRef,\r\n input,\r\n model,\r\n output,\r\n signal,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { cn } from '../core/utils/cn';\r\nimport { tagInputContainerVariants, tagVariants, type TagInputSize } from './tag-input.variants';\r\n\r\n@Component({\r\n selector: 'ton-tag-input',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TonTagInputComponent), multi: true },\r\n ],\r\n template: `\r\n <div [class]=\"containerClass()\" (click)=\"focusInput()\">\r\n @for (tag of value(); track tag; let i = $index) {\r\n <span [class]=\"tagClass()\">\r\n {{ tag }}\r\n @if (removable() && !isDisabled()) {\r\n <button\r\n type=\"button\"\r\n class=\"hover:text-destructive transition-colors leading-none\"\r\n (click)=\"removeTag(i); $event.stopPropagation()\"\r\n [attr.aria-label]=\"'Remove ' + tag\"\r\n >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>\r\n </button>\r\n }\r\n </span>\r\n }\r\n @if (!atMax()) {\r\n <input\r\n #inputEl\r\n type=\"text\"\r\n class=\"flex-1 min-w-[80px] outline-none bg-transparent\"\r\n [placeholder]=\"value().length === 0 ? placeholder() : ''\"\r\n [disabled]=\"isDisabled()\"\r\n [value]=\"inputValue()\"\r\n (input)=\"onInput($event)\"\r\n (keydown)=\"onKeydown($event)\"\r\n (blur)=\"onBlur()\"\r\n [attr.aria-label]=\"'Add tag'\"\r\n />\r\n }\r\n </div>\r\n `,\r\n})\r\nexport class TonTagInputComponent implements ControlValueAccessor {\r\n readonly value = model<string[]>([]);\r\n readonly placeholder = input('Add tag...');\r\n readonly maxTags = input<number | null>(null);\r\n readonly allowDuplicates = input(false);\r\n readonly removable = input(true);\r\n readonly addOnBlur = input(true);\r\n readonly separators = input<string[]>(['Enter', ',']);\r\n readonly validate = input<((tag: string) => boolean) | null>(null);\r\n readonly disabled = input(false);\r\n readonly size = input<TagInputSize>('md');\r\n readonly class = input<string>('');\r\n\r\n readonly tagAdded = output<string>();\r\n readonly tagRemoved = output<string>();\r\n\r\n readonly inputValue = signal('');\r\n private readonly _disabledByCva = signal(false);\r\n readonly isDisabled = computed(() => this.disabled() || this._disabledByCva());\r\n readonly atMax = computed(() => this.maxTags() !== null && this.value().length >= this.maxTags()!);\r\n\r\n readonly containerClass = computed(() =>\r\n cn(tagInputContainerVariants({ size: this.size() }), this.isDisabled() && 'opacity-50 cursor-not-allowed', this.class())\r\n );\r\n\r\n readonly tagClass = computed(() =>\r\n cn(tagVariants({ size: this.size() }), 'bg-secondary text-secondary-foreground')\r\n );\r\n\r\n private readonly inputRef = viewChild<ElementRef<HTMLInputElement>>('inputEl');\r\n\r\n private _onChange: (value: string[]) => void = () => {};\r\n private _onTouched: () => void = () => {};\r\n\r\n writeValue(val: string[]): void {\r\n this.value.set(val ?? []);\r\n }\r\n\r\n registerOnChange(fn: (value: string[]) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this._onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._disabledByCva.set(isDisabled);\r\n }\r\n\r\n focusInput(): void {\r\n this.inputRef()?.nativeElement.focus();\r\n }\r\n\r\n onInput(event: Event): void {\r\n const val = (event.target as HTMLInputElement).value;\r\n // Check if separator character was typed (e.g. comma)\r\n const seps = this.separators().filter((s) => s.length === 1);\r\n for (const sep of seps) {\r\n if (val.includes(sep)) {\r\n const parts = val.split(sep);\r\n for (const part of parts) {\r\n this.addTag(part);\r\n }\r\n this.inputValue.set('');\r\n return;\r\n }\r\n }\r\n this.inputValue.set(val);\r\n }\r\n\r\n onKeydown(event: KeyboardEvent): void {\r\n if (this.separators().includes(event.key) && event.key !== ',') {\r\n event.preventDefault();\r\n this.addTag(this.inputValue());\r\n this.inputValue.set('');\r\n return;\r\n }\r\n\r\n if (event.key === 'Backspace' && this.inputValue() === '') {\r\n const tags = this.value();\r\n if (tags.length > 0) {\r\n this.removeTag(tags.length - 1);\r\n }\r\n }\r\n }\r\n\r\n onBlur(): void {\r\n if (this.addOnBlur() && this.inputValue().trim()) {\r\n this.addTag(this.inputValue());\r\n this.inputValue.set('');\r\n }\r\n this._onTouched();\r\n }\r\n\r\n addTag(raw: string): void {\r\n const tag = raw.trim();\r\n if (!tag) return;\r\n if (this.atMax()) return;\r\n if (!this.allowDuplicates() && this.value().includes(tag)) return;\r\n\r\n const validateFn = this.validate();\r\n if (validateFn && !validateFn(tag)) return;\r\n\r\n this.value.update((tags) => [...tags, tag]);\r\n this._onChange(this.value());\r\n this.tagAdded.emit(tag);\r\n }\r\n\r\n removeTag(index: number): void {\r\n const removed = this.value()[index];\r\n this.value.update((tags) => tags.filter((_, i) => i !== index));\r\n this._onChange(this.value());\r\n this.tagRemoved.emit(removed);\r\n }\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n InjectionToken,\r\n OnDestroy,\r\n computed,\r\n inject,\r\n input,\r\n signal,\r\n} from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\n\r\nexport const TON_POPOVER = new InjectionToken<TonPopoverDirective>('TonPopover');\r\n\r\n@Directive({\r\n selector: '[tonPopover]',\r\n exportAs: 'tonPopover',\r\n providers: [{ provide: TON_POPOVER, useExisting: TonPopoverDirective }],\r\n host: {\r\n '[class]': '\"relative inline-block\"',\r\n '(document:click)': 'onDocumentClick($event)',\r\n '(keydown.escape)': 'onEscape()',\r\n },\r\n})\r\nexport class TonPopoverDirective implements OnDestroy {\r\n private readonly elRef = inject(ElementRef);\r\n\r\n readonly matchWidth = input(false);\r\n readonly offset = input(4);\r\n readonly closeOnOutside = input(true);\r\n readonly closeOnEscape = input(true);\r\n\r\n readonly isOpen = signal(false);\r\n readonly triggerEl = signal<HTMLElement | null>(null);\r\n readonly panelEl = signal<HTMLElement | null>(null);\r\n\r\n private scrollHandler: (() => void) | null = null;\r\n private resizeHandler: (() => void) | null = null;\r\n\r\n toggle(): void {\r\n if (this.isOpen()) {\r\n this.close();\r\n } else {\r\n this.open();\r\n }\r\n }\r\n\r\n open(): void {\r\n this.isOpen.set(true);\r\n this.addListeners();\r\n setTimeout(() => this.updatePosition());\r\n }\r\n\r\n close(): void {\r\n this.isOpen.set(false);\r\n this.removeListeners();\r\n }\r\n\r\n updatePosition(): void {\r\n const trigger = this.triggerEl();\r\n const panel = this.panelEl();\r\n if (!trigger || !panel) return;\r\n const rect = trigger.getBoundingClientRect();\r\n panel.style.top = `${rect.bottom + this.offset()}px`;\r\n panel.style.left = `${rect.left}px`;\r\n if (this.matchWidth()) {\r\n panel.style.width = `${rect.width}px`;\r\n }\r\n }\r\n\r\n private addListeners(): void {\r\n this.removeListeners();\r\n this.scrollHandler = () => {\r\n requestAnimationFrame(() => this.updatePosition());\r\n };\r\n this.resizeHandler = () => {\r\n requestAnimationFrame(() => this.updatePosition());\r\n };\r\n document.addEventListener('scroll', this.scrollHandler, { capture: true, passive: true });\r\n window.addEventListener('resize', this.resizeHandler, { passive: true });\r\n }\r\n\r\n private removeListeners(): void {\r\n if (this.scrollHandler) {\r\n document.removeEventListener('scroll', this.scrollHandler, { capture: true } as EventListenerOptions);\r\n this.scrollHandler = null;\r\n }\r\n if (this.resizeHandler) {\r\n window.removeEventListener('resize', this.resizeHandler);\r\n this.resizeHandler = null;\r\n }\r\n }\r\n\r\n onDocumentClick(event: MouseEvent): void {\r\n if (this.closeOnOutside() && this.isOpen() && !this.elRef.nativeElement.contains(event.target)) {\r\n this.close();\r\n }\r\n }\r\n\r\n onEscape(): void {\r\n if (this.closeOnEscape() && this.isOpen()) {\r\n this.close();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.removeListeners();\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[tonPopoverTrigger]',\r\n host: {\r\n '(click)': 'popover.toggle()',\r\n '[attr.aria-expanded]': 'popover.isOpen()',\r\n 'aria-haspopup': 'dialog',\r\n },\r\n})\r\nexport class TonPopoverTriggerDirective {\r\n protected readonly popover = inject(TON_POPOVER);\r\n private readonly elRef = inject(ElementRef);\r\n\r\n constructor() {\r\n this.popover.triggerEl.set(this.elRef.nativeElement);\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[tonPopoverContent]',\r\n host: {\r\n 'role': 'dialog',\r\n '[style.display]': 'popover.isOpen() ? \"\" : \"none\"',\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonPopoverContentDirective {\r\n protected readonly popover = inject(TON_POPOVER);\r\n private readonly elRef = inject(ElementRef);\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn(\r\n 'fixed z-50 rounded-md border border-border bg-popover text-popover-foreground shadow-lg animate-in fade-in-0 zoom-in-95',\r\n this.class()\r\n )\r\n );\r\n\r\n constructor() {\r\n this.popover.panelEl.set(this.elRef.nativeElement);\r\n }\r\n}\r\n","import { Directive, computed, input } from '@angular/core';\r\nimport { cn } from '../core/utils/cn';\r\nimport type { AbstractControl } from '@angular/forms';\r\n\r\nexport type ValidatorHintVariant = 'error' | 'success' | 'warning' | 'info';\r\n\r\n@Directive({\r\n selector: '[tonValidator]',\r\n host: { '[class]': 'computedClass()' },\r\n})\r\nexport class TonValidatorDirective {\r\n readonly control = input<AbstractControl | null>(null);\r\n readonly state = input<'default' | 'error' | 'success' | 'warning'>('default');\r\n readonly class = input<string>('');\r\n\r\n readonly errors = computed(() => this.control()?.errors ?? null);\r\n readonly showErrors = computed(() => {\r\n const c = this.control();\r\n return c ? c.touched && c.invalid : false;\r\n });\r\n\r\n protected readonly computedClass = computed(() =>\r\n cn('flex flex-col gap-1 mt-1', this.class())\r\n );\r\n}\r\n\r\n@Directive({\r\n selector: '[tonValidatorHint]',\r\n host: {\r\n 'role': 'alert',\r\n '[class]': 'computedClass()',\r\n },\r\n})\r\nexport class TonValidatorHintDirective {\r\n readonly when = input<string>('');\r\n readonly type = input<ValidatorHintVariant>('error');\r\n /** @deprecated Use `type` instead */\r\n readonly variant = input<ValidatorHintVariant | undefined>(undefined);\r\n readonly class = input<string>('');\r\n\r\n protected readonly computedClass = computed(() => {\r\n const v = this.variant() ?? this.type();\r\n const variantClass =\r\n v === 'success' ? 'text-green-600 dark:text-green-400' :\r\n v === 'warning' ? 'text-amber-600 dark:text-amber-400' :\r\n v === 'info' ? 'text-blue-600 dark:text-blue-400' :\r\n 'text-destructive';\r\n return cn('text-xs', variantClass, this.class());\r\n });\r\n}\r\n","/*\r\n * Public API Surface of @tony-ui-library/core\n */\r\n\r\n// Utils\r\nexport { cn } from './lib/core/utils/cn';\r\nexport { cva, type VariantProps } from './lib/core/utils/cva-types';\r\n\r\n// Providers\r\nexport { provideTonyUI, TON_CONFIG, type TonyConfig } from './lib/core/providers/sonny-config';\r\nexport { ThemeService, type Theme } from './lib/core/providers/theme.service';\r\n\r\n// Button\r\nexport * from './lib/button';\r\n\r\n// Card\r\nexport * from './lib/card';\r\n\r\n// Input\r\nexport * from './lib/input';\r\n\r\n// Toast\r\nexport * from './lib/toast';\r\n\r\n// Modal/Dialog\r\nexport * from './lib/modal';\r\n\r\n// Accordion\r\nexport * from './lib/accordion';\r\n\r\n// Avatar\r\nexport * from './lib/avatar';\r\n\r\n// Badge\r\nexport * from './lib/badge';\r\n\r\n// Breadcrumb\r\nexport * from './lib/breadcrumb';\r\n\r\n// Button Group\r\nexport * from './lib/button-group';\r\n\r\n// Checkbox\r\nexport * from './lib/checkbox';\r\n\r\n// Combobox\r\nexport * from './lib/combobox';\r\n\r\n// Skeleton\r\nexport * from './lib/skeleton';\r\n\r\n// Radio\r\nexport * from './lib/radio';\r\n\r\n// Switch\r\nexport * from './lib/switch';\r\n\r\n// Toggle\r\nexport * from './lib/toggle';\r\n\r\n// Slider\r\nexport * from './lib/slider';\r\n\r\n// Loader\r\nexport * from './lib/loader';\r\n\r\n// Tabs\r\nexport * from './lib/tabs';\r\n\r\n// Select\r\nexport * from './lib/select';\r\n\r\n// Table\r\nexport * from './lib/table';\r\n\r\n// Data Table\r\nexport * from './lib/data-table';\r\n\r\n// Sheet\r\nexport * from './lib/sheet';\r\n\r\n// Alert\r\nexport * from './lib/alert';\r\n\r\n// Textarea\r\nexport * from './lib/textarea';\r\n\r\n// Progress\r\nexport * from './lib/progress';\r\n\r\n// Tooltip\r\nexport * from './lib/tooltip';\r\n\r\n// Dropdown/Menu\r\nexport * from './lib/dropdown';\r\n\r\n// File Input\r\nexport * from './lib/file-input';\r\n\r\n// Fieldset\r\nexport * from './lib/fieldset';\r\n\r\n// Rating\r\nexport * from './lib/rating';\r\n\r\n// Navbar\r\nexport * from './lib/navbar';\r\n\r\n// Drawer\r\nexport * from './lib/drawer';\r\n\r\n// Pagination\r\nexport * from './lib/pagination';\r\n\r\n// Divider\r\nexport * from './lib/divider';\r\n\r\n// Steps\r\nexport * from './lib/steps';\r\n\r\n// Stat\r\nexport * from './lib/stat';\r\n\r\n// Timeline\r\nexport * from './lib/timeline';\r\n\r\n// Kbd\r\nexport * from './lib/kbd';\r\n\r\n// List\r\nexport * from './lib/list';\r\n\r\n// Status\r\nexport * from './lib/status';\r\n\r\n// Indicator\r\nexport * from './lib/indicator';\r\n\r\n// Chat Bubble\r\nexport * from './lib/chat-bubble';\r\n\r\n// Carousel\r\nexport * from './lib/carousel';\r\n\r\n// Dock\r\nexport * from './lib/dock';\r\n\r\n// FAB\r\nexport * from './lib/fab';\r\n\r\n// Radial Progress\r\nexport * from './lib/radial-progress';\r\n\r\n// Diff\r\nexport * from './lib/diff';\r\n\r\n// Link\r\nexport * from './lib/link';\r\n\r\n// Calendar\r\nexport * from './lib/calendar';\r\n\r\n// Date Picker\r\nexport * from './lib/date-picker';\r\n\r\n// Date Range Picker\r\nexport * from './lib/date-range-picker';\r\n\r\n// Color Picker\r\nexport * from './lib/color-picker';\r\n\r\n// OTP Input\r\nexport * from './lib/otp-input';\r\n\r\n// Command Palette\r\nexport * from './lib/command-palette';\r\n\r\n// Number Input\r\nexport * from './lib/number-input';\r\n\r\n// Avatar Group\r\nexport * from './lib/avatar-group';\r\n\r\n// Tag Input\r\nexport * from './lib/tag-input';\r\n\r\n// Popover\r\nexport * from './lib/popover';\r\n\r\n// Validator\r\nexport * from './lib/validator';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["positionMap","sizeMap"],"mappings":"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"}