angular-tailwind-components 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. package/README.md +168 -0
  2. package/fesm2022/angular-tailwind-components.mjs +3144 -0
  3. package/fesm2022/angular-tailwind-components.mjs.map +1 -0
  4. package/package.json +29 -0
  5. package/tailwind-icons/academic-cap.svg +3 -0
  6. package/tailwind-icons/adjustments-horizontal.svg +3 -0
  7. package/tailwind-icons/adjustments-vertical.svg +3 -0
  8. package/tailwind-icons/archive-box-arrow-down.svg +3 -0
  9. package/tailwind-icons/archive-box-x-mark.svg +3 -0
  10. package/tailwind-icons/archive-box.svg +3 -0
  11. package/tailwind-icons/arrow-down-circle.svg +3 -0
  12. package/tailwind-icons/arrow-down-left.svg +3 -0
  13. package/tailwind-icons/arrow-down-on-square-stack.svg +3 -0
  14. package/tailwind-icons/arrow-down-on-square.svg +3 -0
  15. package/tailwind-icons/arrow-down-right.svg +3 -0
  16. package/tailwind-icons/arrow-down-tray.svg +3 -0
  17. package/tailwind-icons/arrow-down.svg +3 -0
  18. package/tailwind-icons/arrow-left-circle.svg +3 -0
  19. package/tailwind-icons/arrow-left-end-on-rectangle.svg +3 -0
  20. package/tailwind-icons/arrow-left-on-rectangle.svg +3 -0
  21. package/tailwind-icons/arrow-left-start-on-rectangle.svg +3 -0
  22. package/tailwind-icons/arrow-left.svg +3 -0
  23. package/tailwind-icons/arrow-long-down.svg +3 -0
  24. package/tailwind-icons/arrow-long-left.svg +3 -0
  25. package/tailwind-icons/arrow-long-right.svg +3 -0
  26. package/tailwind-icons/arrow-long-up.svg +3 -0
  27. package/tailwind-icons/arrow-path-rounded-square.svg +3 -0
  28. package/tailwind-icons/arrow-path.svg +3 -0
  29. package/tailwind-icons/arrow-right-circle.svg +3 -0
  30. package/tailwind-icons/arrow-right-end-on-rectangle.svg +3 -0
  31. package/tailwind-icons/arrow-right-on-rectangle.svg +3 -0
  32. package/tailwind-icons/arrow-right-start-on-rectangle.svg +3 -0
  33. package/tailwind-icons/arrow-right.svg +3 -0
  34. package/tailwind-icons/arrow-small-down.svg +3 -0
  35. package/tailwind-icons/arrow-small-left.svg +3 -0
  36. package/tailwind-icons/arrow-small-right.svg +3 -0
  37. package/tailwind-icons/arrow-small-up.svg +3 -0
  38. package/tailwind-icons/arrow-top-right-on-square.svg +3 -0
  39. package/tailwind-icons/arrow-trending-down.svg +3 -0
  40. package/tailwind-icons/arrow-trending-up.svg +3 -0
  41. package/tailwind-icons/arrow-turn-down-left.svg +3 -0
  42. package/tailwind-icons/arrow-turn-down-right.svg +3 -0
  43. package/tailwind-icons/arrow-turn-left-down.svg +3 -0
  44. package/tailwind-icons/arrow-turn-left-up.svg +3 -0
  45. package/tailwind-icons/arrow-turn-right-down.svg +3 -0
  46. package/tailwind-icons/arrow-turn-right-up.svg +3 -0
  47. package/tailwind-icons/arrow-turn-up-left.svg +3 -0
  48. package/tailwind-icons/arrow-turn-up-right.svg +3 -0
  49. package/tailwind-icons/arrow-up-circle.svg +3 -0
  50. package/tailwind-icons/arrow-up-left.svg +3 -0
  51. package/tailwind-icons/arrow-up-on-square-stack.svg +3 -0
  52. package/tailwind-icons/arrow-up-on-square.svg +3 -0
  53. package/tailwind-icons/arrow-up-right.svg +3 -0
  54. package/tailwind-icons/arrow-up-tray.svg +3 -0
  55. package/tailwind-icons/arrow-up.svg +3 -0
  56. package/tailwind-icons/arrow-uturn-down.svg +3 -0
  57. package/tailwind-icons/arrow-uturn-left.svg +3 -0
  58. package/tailwind-icons/arrow-uturn-right.svg +3 -0
  59. package/tailwind-icons/arrow-uturn-up.svg +3 -0
  60. package/tailwind-icons/arrows-pointing-in.svg +3 -0
  61. package/tailwind-icons/arrows-pointing-out.svg +3 -0
  62. package/tailwind-icons/arrows-right-left.svg +3 -0
  63. package/tailwind-icons/arrows-up-down.svg +3 -0
  64. package/tailwind-icons/at-symbol.svg +3 -0
  65. package/tailwind-icons/backspace.svg +3 -0
  66. package/tailwind-icons/backward.svg +3 -0
  67. package/tailwind-icons/banknotes.svg +3 -0
  68. package/tailwind-icons/bars-2.svg +3 -0
  69. package/tailwind-icons/bars-3-bottom-left.svg +3 -0
  70. package/tailwind-icons/bars-3-bottom-right.svg +3 -0
  71. package/tailwind-icons/bars-3-center-left.svg +3 -0
  72. package/tailwind-icons/bars-3.svg +3 -0
  73. package/tailwind-icons/bars-4.svg +3 -0
  74. package/tailwind-icons/bars-arrow-down.svg +3 -0
  75. package/tailwind-icons/bars-arrow-up.svg +3 -0
  76. package/tailwind-icons/battery-0.svg +3 -0
  77. package/tailwind-icons/battery-100.svg +3 -0
  78. package/tailwind-icons/battery-50.svg +3 -0
  79. package/tailwind-icons/beaker.svg +3 -0
  80. package/tailwind-icons/bell-alert.svg +3 -0
  81. package/tailwind-icons/bell-slash.svg +3 -0
  82. package/tailwind-icons/bell-snooze.svg +3 -0
  83. package/tailwind-icons/bell.svg +3 -0
  84. package/tailwind-icons/bold.svg +3 -0
  85. package/tailwind-icons/bolt-slash.svg +3 -0
  86. package/tailwind-icons/bolt.svg +3 -0
  87. package/tailwind-icons/book-open.svg +3 -0
  88. package/tailwind-icons/bookmark-slash.svg +3 -0
  89. package/tailwind-icons/bookmark-square.svg +3 -0
  90. package/tailwind-icons/bookmark.svg +3 -0
  91. package/tailwind-icons/briefcase.svg +3 -0
  92. package/tailwind-icons/bug-ant.svg +3 -0
  93. package/tailwind-icons/building-library.svg +3 -0
  94. package/tailwind-icons/building-office-2.svg +3 -0
  95. package/tailwind-icons/building-office.svg +3 -0
  96. package/tailwind-icons/building-storefront.svg +3 -0
  97. package/tailwind-icons/cake.svg +3 -0
  98. package/tailwind-icons/calculator.svg +3 -0
  99. package/tailwind-icons/calendar-date-range.svg +3 -0
  100. package/tailwind-icons/calendar-days.svg +3 -0
  101. package/tailwind-icons/calendar.svg +3 -0
  102. package/tailwind-icons/camera.svg +4 -0
  103. package/tailwind-icons/chart-bar-square.svg +3 -0
  104. package/tailwind-icons/chart-bar.svg +3 -0
  105. package/tailwind-icons/chart-pie.svg +4 -0
  106. package/tailwind-icons/chat-bubble-bottom-center-text.svg +3 -0
  107. package/tailwind-icons/chat-bubble-bottom-center.svg +3 -0
  108. package/tailwind-icons/chat-bubble-left-ellipsis.svg +3 -0
  109. package/tailwind-icons/chat-bubble-left-right.svg +3 -0
  110. package/tailwind-icons/chat-bubble-left.svg +3 -0
  111. package/tailwind-icons/chat-bubble-oval-left-ellipsis.svg +3 -0
  112. package/tailwind-icons/chat-bubble-oval-left.svg +3 -0
  113. package/tailwind-icons/check-badge.svg +3 -0
  114. package/tailwind-icons/check-circle.svg +3 -0
  115. package/tailwind-icons/check.svg +3 -0
  116. package/tailwind-icons/chevron-double-down.svg +3 -0
  117. package/tailwind-icons/chevron-double-left.svg +3 -0
  118. package/tailwind-icons/chevron-double-right.svg +3 -0
  119. package/tailwind-icons/chevron-double-up.svg +4 -0
  120. package/tailwind-icons/chevron-down.svg +3 -0
  121. package/tailwind-icons/chevron-left.svg +3 -0
  122. package/tailwind-icons/chevron-right.svg +3 -0
  123. package/tailwind-icons/chevron-up-down.svg +3 -0
  124. package/tailwind-icons/chevron-up.svg +3 -0
  125. package/tailwind-icons/circle-stack.svg +3 -0
  126. package/tailwind-icons/clipboard-document-check.svg +3 -0
  127. package/tailwind-icons/clipboard-document-list.svg +3 -0
  128. package/tailwind-icons/clipboard-document.svg +3 -0
  129. package/tailwind-icons/clipboard.svg +3 -0
  130. package/tailwind-icons/clock.svg +3 -0
  131. package/tailwind-icons/cloud-arrow-down.svg +3 -0
  132. package/tailwind-icons/cloud-arrow-up.svg +3 -0
  133. package/tailwind-icons/cloud.svg +3 -0
  134. package/tailwind-icons/code-bracket-square.svg +3 -0
  135. package/tailwind-icons/code-bracket.svg +3 -0
  136. package/tailwind-icons/cog-6-tooth.svg +4 -0
  137. package/tailwind-icons/cog-8-tooth.svg +4 -0
  138. package/tailwind-icons/cog.svg +3 -0
  139. package/tailwind-icons/command-line.svg +3 -0
  140. package/tailwind-icons/computer-desktop.svg +3 -0
  141. package/tailwind-icons/cpu-chip.svg +3 -0
  142. package/tailwind-icons/credit-card.svg +3 -0
  143. package/tailwind-icons/cube-transparent.svg +3 -0
  144. package/tailwind-icons/cube.svg +3 -0
  145. package/tailwind-icons/currency-bangladeshi.svg +3 -0
  146. package/tailwind-icons/currency-dollar.svg +3 -0
  147. package/tailwind-icons/currency-euro.svg +3 -0
  148. package/tailwind-icons/currency-pound.svg +3 -0
  149. package/tailwind-icons/currency-rupee.svg +3 -0
  150. package/tailwind-icons/currency-yen.svg +3 -0
  151. package/tailwind-icons/cursor-arrow-rays.svg +3 -0
  152. package/tailwind-icons/cursor-arrow-ripple.svg +3 -0
  153. package/tailwind-icons/device-phone-mobile.svg +3 -0
  154. package/tailwind-icons/device-tablet.svg +3 -0
  155. package/tailwind-icons/divide.svg +3 -0
  156. package/tailwind-icons/document-arrow-down.svg +3 -0
  157. package/tailwind-icons/document-arrow-up.svg +3 -0
  158. package/tailwind-icons/document-chart-bar.svg +3 -0
  159. package/tailwind-icons/document-check.svg +3 -0
  160. package/tailwind-icons/document-currency-bangladeshi.svg +3 -0
  161. package/tailwind-icons/document-currency-dollar.svg +3 -0
  162. package/tailwind-icons/document-currency-euro.svg +3 -0
  163. package/tailwind-icons/document-currency-pound.svg +3 -0
  164. package/tailwind-icons/document-currency-rupee.svg +3 -0
  165. package/tailwind-icons/document-currency-yen.svg +3 -0
  166. package/tailwind-icons/document-duplicate.svg +3 -0
  167. package/tailwind-icons/document-magnifying-glass.svg +3 -0
  168. package/tailwind-icons/document-minus.svg +3 -0
  169. package/tailwind-icons/document-plus.svg +3 -0
  170. package/tailwind-icons/document-text.svg +3 -0
  171. package/tailwind-icons/document.svg +3 -0
  172. package/tailwind-icons/ellipsis-horizontal-circle.svg +3 -0
  173. package/tailwind-icons/ellipsis-horizontal.svg +3 -0
  174. package/tailwind-icons/ellipsis-vertical.svg +3 -0
  175. package/tailwind-icons/envelope-open.svg +3 -0
  176. package/tailwind-icons/envelope.svg +3 -0
  177. package/tailwind-icons/equals.svg +3 -0
  178. package/tailwind-icons/exclamation-circle.svg +3 -0
  179. package/tailwind-icons/exclamation-triangle.svg +3 -0
  180. package/tailwind-icons/eye-dropper.svg +3 -0
  181. package/tailwind-icons/eye-slash.svg +3 -0
  182. package/tailwind-icons/eye.svg +4 -0
  183. package/tailwind-icons/face-frown.svg +3 -0
  184. package/tailwind-icons/face-smile.svg +3 -0
  185. package/tailwind-icons/film.svg +3 -0
  186. package/tailwind-icons/finger-print.svg +3 -0
  187. package/tailwind-icons/fire.svg +4 -0
  188. package/tailwind-icons/flag.svg +3 -0
  189. package/tailwind-icons/folder-arrow-down.svg +3 -0
  190. package/tailwind-icons/folder-minus.svg +3 -0
  191. package/tailwind-icons/folder-open.svg +3 -0
  192. package/tailwind-icons/folder-plus.svg +3 -0
  193. package/tailwind-icons/folder.svg +3 -0
  194. package/tailwind-icons/forward.svg +3 -0
  195. package/tailwind-icons/funnel.svg +3 -0
  196. package/tailwind-icons/gif.svg +3 -0
  197. package/tailwind-icons/gift-top.svg +3 -0
  198. package/tailwind-icons/gift.svg +3 -0
  199. package/tailwind-icons/globe-alt.svg +3 -0
  200. package/tailwind-icons/globe-americas.svg +3 -0
  201. package/tailwind-icons/globe-asia-australia.svg +3 -0
  202. package/tailwind-icons/globe-europe-africa.svg +3 -0
  203. package/tailwind-icons/h1.svg +3 -0
  204. package/tailwind-icons/h2.svg +3 -0
  205. package/tailwind-icons/h3.svg +3 -0
  206. package/tailwind-icons/hand-raised.svg +3 -0
  207. package/tailwind-icons/hand-thumb-down.svg +3 -0
  208. package/tailwind-icons/hand-thumb-up.svg +3 -0
  209. package/tailwind-icons/hashtag.svg +3 -0
  210. package/tailwind-icons/heart.svg +3 -0
  211. package/tailwind-icons/home-modern.svg +3 -0
  212. package/tailwind-icons/home.svg +3 -0
  213. package/tailwind-icons/identification.svg +3 -0
  214. package/tailwind-icons/inbox-arrow-down.svg +3 -0
  215. package/tailwind-icons/inbox-stack.svg +3 -0
  216. package/tailwind-icons/inbox.svg +3 -0
  217. package/tailwind-icons/information-circle.svg +3 -0
  218. package/tailwind-icons/italic.svg +3 -0
  219. package/tailwind-icons/key.svg +3 -0
  220. package/tailwind-icons/language.svg +3 -0
  221. package/tailwind-icons/lifebuoy.svg +3 -0
  222. package/tailwind-icons/light-bulb.svg +3 -0
  223. package/tailwind-icons/link-slash.svg +3 -0
  224. package/tailwind-icons/link.svg +3 -0
  225. package/tailwind-icons/list-bullet.svg +3 -0
  226. package/tailwind-icons/lock-closed.svg +3 -0
  227. package/tailwind-icons/lock-open.svg +3 -0
  228. package/tailwind-icons/magnifying-glass-circle.svg +3 -0
  229. package/tailwind-icons/magnifying-glass-minus.svg +3 -0
  230. package/tailwind-icons/magnifying-glass-plus.svg +3 -0
  231. package/tailwind-icons/magnifying-glass.svg +3 -0
  232. package/tailwind-icons/map-pin.svg +4 -0
  233. package/tailwind-icons/map.svg +3 -0
  234. package/tailwind-icons/megaphone.svg +3 -0
  235. package/tailwind-icons/microphone.svg +3 -0
  236. package/tailwind-icons/minus-circle.svg +3 -0
  237. package/tailwind-icons/minus-small.svg +3 -0
  238. package/tailwind-icons/minus.svg +3 -0
  239. package/tailwind-icons/moon.svg +3 -0
  240. package/tailwind-icons/musical-note.svg +3 -0
  241. package/tailwind-icons/newspaper.svg +3 -0
  242. package/tailwind-icons/no-symbol.svg +3 -0
  243. package/tailwind-icons/numbered-list.svg +3 -0
  244. package/tailwind-icons/paint-brush.svg +3 -0
  245. package/tailwind-icons/paper-airplane.svg +3 -0
  246. package/tailwind-icons/paper-clip.svg +3 -0
  247. package/tailwind-icons/pause-circle.svg +3 -0
  248. package/tailwind-icons/pause.svg +3 -0
  249. package/tailwind-icons/pencil-square.svg +3 -0
  250. package/tailwind-icons/pencil.svg +3 -0
  251. package/tailwind-icons/percent-badge.svg +3 -0
  252. package/tailwind-icons/phone-arrow-down-left.svg +3 -0
  253. package/tailwind-icons/phone-arrow-up-right.svg +3 -0
  254. package/tailwind-icons/phone-x-mark.svg +3 -0
  255. package/tailwind-icons/phone.svg +3 -0
  256. package/tailwind-icons/photo.svg +3 -0
  257. package/tailwind-icons/play-circle.svg +4 -0
  258. package/tailwind-icons/play-pause.svg +3 -0
  259. package/tailwind-icons/play.svg +3 -0
  260. package/tailwind-icons/plus-circle.svg +3 -0
  261. package/tailwind-icons/plus-small.svg +3 -0
  262. package/tailwind-icons/plus.svg +3 -0
  263. package/tailwind-icons/power.svg +3 -0
  264. package/tailwind-icons/presentation-chart-bar.svg +3 -0
  265. package/tailwind-icons/presentation-chart-line.svg +3 -0
  266. package/tailwind-icons/printer.svg +3 -0
  267. package/tailwind-icons/puzzle-piece.svg +3 -0
  268. package/tailwind-icons/qr-code.svg +4 -0
  269. package/tailwind-icons/question-mark-circle.svg +3 -0
  270. package/tailwind-icons/queue-list.svg +3 -0
  271. package/tailwind-icons/radio.svg +3 -0
  272. package/tailwind-icons/receipt-percent.svg +3 -0
  273. package/tailwind-icons/receipt-refund.svg +3 -0
  274. package/tailwind-icons/rectangle-group.svg +3 -0
  275. package/tailwind-icons/rectangle-stack.svg +3 -0
  276. package/tailwind-icons/rocket-launch.svg +3 -0
  277. package/tailwind-icons/rss.svg +3 -0
  278. package/tailwind-icons/scale.svg +3 -0
  279. package/tailwind-icons/scissors.svg +3 -0
  280. package/tailwind-icons/server-stack.svg +3 -0
  281. package/tailwind-icons/server.svg +3 -0
  282. package/tailwind-icons/share.svg +3 -0
  283. package/tailwind-icons/shield-check.svg +3 -0
  284. package/tailwind-icons/shield-exclamation.svg +3 -0
  285. package/tailwind-icons/shopping-bag.svg +3 -0
  286. package/tailwind-icons/shopping-cart.svg +3 -0
  287. package/tailwind-icons/signal-slash.svg +3 -0
  288. package/tailwind-icons/signal.svg +3 -0
  289. package/tailwind-icons/slash.svg +3 -0
  290. package/tailwind-icons/sparkles.svg +3 -0
  291. package/tailwind-icons/speaker-wave.svg +3 -0
  292. package/tailwind-icons/speaker-x-mark.svg +3 -0
  293. package/tailwind-icons/square-2-stack.svg +3 -0
  294. package/tailwind-icons/square-3-stack-3d.svg +3 -0
  295. package/tailwind-icons/squares-2x2.svg +3 -0
  296. package/tailwind-icons/squares-plus.svg +3 -0
  297. package/tailwind-icons/star.svg +3 -0
  298. package/tailwind-icons/stop-circle.svg +4 -0
  299. package/tailwind-icons/stop.svg +3 -0
  300. package/tailwind-icons/strikethrough.svg +3 -0
  301. package/tailwind-icons/sun.svg +3 -0
  302. package/tailwind-icons/swatch.svg +3 -0
  303. package/tailwind-icons/table-cells.svg +3 -0
  304. package/tailwind-icons/tag.svg +4 -0
  305. package/tailwind-icons/ticket.svg +3 -0
  306. package/tailwind-icons/trash.svg +3 -0
  307. package/tailwind-icons/trophy.svg +3 -0
  308. package/tailwind-icons/truck.svg +3 -0
  309. package/tailwind-icons/tv.svg +3 -0
  310. package/tailwind-icons/underline.svg +3 -0
  311. package/tailwind-icons/user-circle.svg +3 -0
  312. package/tailwind-icons/user-group.svg +3 -0
  313. package/tailwind-icons/user-minus.svg +3 -0
  314. package/tailwind-icons/user-plus.svg +3 -0
  315. package/tailwind-icons/user.svg +3 -0
  316. package/tailwind-icons/users.svg +3 -0
  317. package/tailwind-icons/variable.svg +3 -0
  318. package/tailwind-icons/video-camera-slash.svg +3 -0
  319. package/tailwind-icons/video-camera.svg +3 -0
  320. package/tailwind-icons/view-columns.svg +3 -0
  321. package/tailwind-icons/viewfinder-circle.svg +3 -0
  322. package/tailwind-icons/wallet.svg +3 -0
  323. package/tailwind-icons/wifi.svg +3 -0
  324. package/tailwind-icons/window.svg +3 -0
  325. package/tailwind-icons/wrench-screwdriver.svg +3 -0
  326. package/tailwind-icons/wrench.svg +4 -0
  327. package/tailwind-icons/x-circle.svg +3 -0
  328. package/tailwind-icons/x-mark.svg +3 -0
  329. package/types/angular-tailwind-components.d.ts +1022 -0
@@ -0,0 +1,1022 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { OnDestroy, AfterViewInit, ElementRef, OnInit, Type, InjectionToken } from '@angular/core';
3
+ import { ControlValueAccessor } from '@angular/forms';
4
+
5
+ /** Common types used across all components */
6
+ /** Size variants for components */
7
+ type TailwindSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
8
+ /** Color variants for buttons and interactive elements */
9
+ type TailwindColor = 'primary' | 'secondary' | 'danger' | 'success' | 'warning' | 'info';
10
+ /** Button kinds */
11
+ type TailwindButtonKind = 'solid' | 'outlined' | 'ghost' | 'text';
12
+ /** Alert/feedback color variants */
13
+ type TailwindSeverity = 'success' | 'warning' | 'danger' | 'info';
14
+ /** Position variants for overlays */
15
+ type TailwindPosition = 'top' | 'bottom' | 'left' | 'right';
16
+ /** Shape variants */
17
+ type TailwindShape = 'rounded' | 'pill' | 'square';
18
+ /** Icon dimensions: `normal` = 24×24, `small` = 16×16 */
19
+ type TailwindIconSize = 'normal' | 'small';
20
+ /** Option interface for select/radio/checkbox groups */
21
+ interface TailwindOption<T = unknown> {
22
+ value: T;
23
+ label: string;
24
+ disabled?: boolean;
25
+ }
26
+ interface TailwindOptionGroup<T = unknown> extends TailwindOption<T> {
27
+ description?: string;
28
+ }
29
+ interface TailwindMenuItem {
30
+ label?: string;
31
+ icon?: string;
32
+ disabled?: boolean;
33
+ divider?: boolean;
34
+ value?: string;
35
+ }
36
+
37
+ /** Heroicons icon name (kebab-case). SVG assets live in `public/icons/` (outline 24×24). */
38
+ declare const TAILWIND_HERO_ICON_NAMES: readonly ["academic-cap", "adjustments-horizontal", "adjustments-vertical", "archive-box", "archive-box-arrow-down", "archive-box-x-mark", "arrow-down", "arrow-down-circle", "arrow-down-left", "arrow-down-on-square", "arrow-down-on-square-stack", "arrow-down-right", "arrow-down-tray", "arrow-left", "arrow-left-circle", "arrow-left-end-on-rectangle", "arrow-left-on-rectangle", "arrow-left-start-on-rectangle", "arrow-long-down", "arrow-long-left", "arrow-long-right", "arrow-long-up", "arrow-path", "arrow-path-rounded-square", "arrow-right", "arrow-right-circle", "arrow-right-end-on-rectangle", "arrow-right-on-rectangle", "arrow-right-start-on-rectangle", "arrow-small-down", "arrow-small-left", "arrow-small-right", "arrow-small-up", "arrows-pointing-in", "arrows-pointing-out", "arrows-right-left", "arrows-up-down", "arrow-top-right-on-square", "arrow-trending-down", "arrow-trending-up", "arrow-turn-down-left", "arrow-turn-down-right", "arrow-turn-left-down", "arrow-turn-left-up", "arrow-turn-right-down", "arrow-turn-right-up", "arrow-turn-up-left", "arrow-turn-up-right", "arrow-up", "arrow-up-circle", "arrow-up-left", "arrow-up-on-square", "arrow-up-on-square-stack", "arrow-up-right", "arrow-up-tray", "arrow-uturn-down", "arrow-uturn-left", "arrow-uturn-right", "arrow-uturn-up", "at-symbol", "backspace", "backward", "banknotes", "bars-2", "bars-3", "bars-3-bottom-left", "bars-3-bottom-right", "bars-3-center-left", "bars-4", "bars-arrow-down", "bars-arrow-up", "battery-0", "battery-100", "battery-50", "beaker", "bell", "bell-alert", "bell-slash", "bell-snooze", "bold", "bolt", "bolt-slash", "bookmark", "bookmark-slash", "bookmark-square", "book-open", "briefcase", "bug-ant", "building-library", "building-office", "building-office-2", "building-storefront", "cake", "calculator", "calendar", "calendar-date-range", "calendar-days", "camera", "chart-bar", "chart-bar-square", "chart-pie", "chat-bubble-bottom-center", "chat-bubble-bottom-center-text", "chat-bubble-left", "chat-bubble-left-ellipsis", "chat-bubble-left-right", "chat-bubble-oval-left", "chat-bubble-oval-left-ellipsis", "check", "check-badge", "check-circle", "chevron-double-down", "chevron-double-left", "chevron-double-right", "chevron-double-up", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "chevron-up-down", "circle-stack", "clipboard", "clipboard-document", "clipboard-document-check", "clipboard-document-list", "clock", "cloud", "cloud-arrow-down", "cloud-arrow-up", "code-bracket", "code-bracket-square", "cog", "cog-6-tooth", "cog-8-tooth", "command-line", "computer-desktop", "cpu-chip", "credit-card", "cube", "cube-transparent", "currency-bangladeshi", "currency-dollar", "currency-euro", "currency-pound", "currency-rupee", "currency-yen", "cursor-arrow-rays", "cursor-arrow-ripple", "device-phone-mobile", "device-tablet", "divide", "document", "document-arrow-down", "document-arrow-up", "document-chart-bar", "document-check", "document-currency-bangladeshi", "document-currency-dollar", "document-currency-euro", "document-currency-pound", "document-currency-rupee", "document-currency-yen", "document-duplicate", "document-magnifying-glass", "document-minus", "document-plus", "document-text", "ellipsis-horizontal", "ellipsis-horizontal-circle", "ellipsis-vertical", "envelope", "envelope-open", "equals", "exclamation-circle", "exclamation-triangle", "eye", "eye-dropper", "eye-slash", "face-frown", "face-smile", "film", "finger-print", "fire", "flag", "folder", "folder-arrow-down", "folder-minus", "folder-open", "folder-plus", "forward", "funnel", "gif", "gift", "gift-top", "globe-alt", "globe-americas", "globe-asia-australia", "globe-europe-africa", "h1", "h2", "h3", "hand-raised", "hand-thumb-down", "hand-thumb-up", "hashtag", "heart", "home", "home-modern", "identification", "inbox", "inbox-arrow-down", "inbox-stack", "information-circle", "italic", "key", "language", "lifebuoy", "light-bulb", "link", "link-slash", "list-bullet", "lock-closed", "lock-open", "magnifying-glass", "magnifying-glass-circle", "magnifying-glass-minus", "magnifying-glass-plus", "map", "map-pin", "megaphone", "microphone", "minus", "minus-circle", "minus-small", "moon", "musical-note", "newspaper", "no-symbol", "numbered-list", "paint-brush", "paper-airplane", "paper-clip", "pause", "pause-circle", "pencil", "pencil-square", "percent-badge", "phone", "phone-arrow-down-left", "phone-arrow-up-right", "phone-x-mark", "photo", "play", "play-circle", "play-pause", "plus", "plus-circle", "plus-small", "power", "presentation-chart-bar", "presentation-chart-line", "printer", "puzzle-piece", "qr-code", "question-mark-circle", "queue-list", "radio", "receipt-percent", "receipt-refund", "rectangle-group", "rectangle-stack", "rocket-launch", "rss", "scale", "scissors", "server", "server-stack", "share", "shield-check", "shield-exclamation", "shopping-bag", "shopping-cart", "signal", "signal-slash", "slash", "sparkles", "speaker-wave", "speaker-x-mark", "square-2-stack", "square-3-stack-3d", "squares-2x2", "squares-plus", "star", "stop", "stop-circle", "strikethrough", "sun", "swatch", "table-cells", "tag", "ticket", "trash", "trophy", "truck", "tv", "underline", "user", "user-circle", "user-group", "user-minus", "user-plus", "users", "variable", "video-camera", "video-camera-slash", "view-columns", "viewfinder-circle", "wallet", "wifi", "window", "wrench", "wrench-screwdriver", "x-circle", "x-mark"];
39
+ type TailwindHeroIcon = (typeof TAILWIND_HERO_ICON_NAMES)[number];
40
+
41
+ declare class TailwindTooltipDirective implements OnDestroy {
42
+ text: string;
43
+ tooltipPosition: TailwindPosition;
44
+ private showTimeout;
45
+ private hideTimeout;
46
+ private componentRef;
47
+ private viewContainerRef;
48
+ private el;
49
+ show(): void;
50
+ hide(): void;
51
+ private createComponent;
52
+ private destroyComponent;
53
+ ngOnDestroy(): void;
54
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindTooltipDirective, never>;
55
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TailwindTooltipDirective, "[tooltip]", never, { "text": { "alias": "tooltip"; "required": false; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; }; }, {}, never, never, true, never>;
56
+ }
57
+
58
+ declare abstract class TailwindComponent {
59
+ /** Optional ID for the component */
60
+ readonly id: _angular_core.InputSignal<string | undefined>;
61
+ /** Custom CSS classes to append */
62
+ readonly class: _angular_core.InputSignal<string | undefined>;
63
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindComponent, never>;
64
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TailwindComponent, never, never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
65
+ }
66
+
67
+ declare class TailwindButton extends TailwindComponent {
68
+ /** Visual color */
69
+ readonly color: _angular_core.InputSignal<TailwindColor>;
70
+ /** Visual kind: `ghost` = transparent with hover tint; `text` = text color only, no hover background */
71
+ readonly kind: _angular_core.InputSignal<TailwindButtonKind>;
72
+ /** Size of the button */
73
+ readonly size: _angular_core.InputSignal<TailwindSize>;
74
+ /** Whether the button is disabled */
75
+ readonly disabled: _angular_core.InputSignal<boolean>;
76
+ /** HTML button type attribute */
77
+ readonly type: _angular_core.InputSignal<"button" | "reset" | "submit">;
78
+ /** Emitted when the button is clicked (not disabled/loading) */
79
+ readonly onClick: _angular_core.OutputEmitterRef<MouseEvent>;
80
+ /** Computed Tailwind classes based on color, kind, size, and state */
81
+ readonly computedClasses: _angular_core.Signal<string>;
82
+ handleClick(event: MouseEvent): void;
83
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindButton, never>;
84
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindButton, "tailwind-button", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "kind": { "alias": "kind"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; }, { "onClick": "onClick"; }, never, ["*"], true, never>;
85
+ }
86
+
87
+ declare class TailwindIcon extends TailwindComponent {
88
+ private readonly iconSize;
89
+ /** Heroicon name; SVG path `public/icons/<name>.svg` */
90
+ readonly icon: _angular_core.InputSignal<"academic-cap" | "adjustments-horizontal" | "adjustments-vertical" | "archive-box" | "archive-box-arrow-down" | "archive-box-x-mark" | "arrow-down" | "arrow-down-circle" | "arrow-down-left" | "arrow-down-on-square" | "arrow-down-on-square-stack" | "arrow-down-right" | "arrow-down-tray" | "arrow-left" | "arrow-left-circle" | "arrow-left-end-on-rectangle" | "arrow-left-on-rectangle" | "arrow-left-start-on-rectangle" | "arrow-long-down" | "arrow-long-left" | "arrow-long-right" | "arrow-long-up" | "arrow-path" | "arrow-path-rounded-square" | "arrow-right" | "arrow-right-circle" | "arrow-right-end-on-rectangle" | "arrow-right-on-rectangle" | "arrow-right-start-on-rectangle" | "arrow-small-down" | "arrow-small-left" | "arrow-small-right" | "arrow-small-up" | "arrows-pointing-in" | "arrows-pointing-out" | "arrows-right-left" | "arrows-up-down" | "arrow-top-right-on-square" | "arrow-trending-down" | "arrow-trending-up" | "arrow-turn-down-left" | "arrow-turn-down-right" | "arrow-turn-left-down" | "arrow-turn-left-up" | "arrow-turn-right-down" | "arrow-turn-right-up" | "arrow-turn-up-left" | "arrow-turn-up-right" | "arrow-up" | "arrow-up-circle" | "arrow-up-left" | "arrow-up-on-square" | "arrow-up-on-square-stack" | "arrow-up-right" | "arrow-up-tray" | "arrow-uturn-down" | "arrow-uturn-left" | "arrow-uturn-right" | "arrow-uturn-up" | "at-symbol" | "backspace" | "backward" | "banknotes" | "bars-2" | "bars-3" | "bars-3-bottom-left" | "bars-3-bottom-right" | "bars-3-center-left" | "bars-4" | "bars-arrow-down" | "bars-arrow-up" | "battery-0" | "battery-100" | "battery-50" | "beaker" | "bell" | "bell-alert" | "bell-slash" | "bell-snooze" | "bold" | "bolt" | "bolt-slash" | "bookmark" | "bookmark-slash" | "bookmark-square" | "book-open" | "briefcase" | "bug-ant" | "building-library" | "building-office" | "building-office-2" | "building-storefront" | "cake" | "calculator" | "calendar" | "calendar-date-range" | "calendar-days" | "camera" | "chart-bar" | "chart-bar-square" | "chart-pie" | "chat-bubble-bottom-center" | "chat-bubble-bottom-center-text" | "chat-bubble-left" | "chat-bubble-left-ellipsis" | "chat-bubble-left-right" | "chat-bubble-oval-left" | "chat-bubble-oval-left-ellipsis" | "check" | "check-badge" | "check-circle" | "chevron-double-down" | "chevron-double-left" | "chevron-double-right" | "chevron-double-up" | "chevron-down" | "chevron-left" | "chevron-right" | "chevron-up" | "chevron-up-down" | "circle-stack" | "clipboard" | "clipboard-document" | "clipboard-document-check" | "clipboard-document-list" | "clock" | "cloud" | "cloud-arrow-down" | "cloud-arrow-up" | "code-bracket" | "code-bracket-square" | "cog" | "cog-6-tooth" | "cog-8-tooth" | "command-line" | "computer-desktop" | "cpu-chip" | "credit-card" | "cube" | "cube-transparent" | "currency-bangladeshi" | "currency-dollar" | "currency-euro" | "currency-pound" | "currency-rupee" | "currency-yen" | "cursor-arrow-rays" | "cursor-arrow-ripple" | "device-phone-mobile" | "device-tablet" | "divide" | "document" | "document-arrow-down" | "document-arrow-up" | "document-chart-bar" | "document-check" | "document-currency-bangladeshi" | "document-currency-dollar" | "document-currency-euro" | "document-currency-pound" | "document-currency-rupee" | "document-currency-yen" | "document-duplicate" | "document-magnifying-glass" | "document-minus" | "document-plus" | "document-text" | "ellipsis-horizontal" | "ellipsis-horizontal-circle" | "ellipsis-vertical" | "envelope" | "envelope-open" | "equals" | "exclamation-circle" | "exclamation-triangle" | "eye" | "eye-dropper" | "eye-slash" | "face-frown" | "face-smile" | "film" | "finger-print" | "fire" | "flag" | "folder" | "folder-arrow-down" | "folder-minus" | "folder-open" | "folder-plus" | "forward" | "funnel" | "gif" | "gift" | "gift-top" | "globe-alt" | "globe-americas" | "globe-asia-australia" | "globe-europe-africa" | "h1" | "h2" | "h3" | "hand-raised" | "hand-thumb-down" | "hand-thumb-up" | "hashtag" | "heart" | "home" | "home-modern" | "identification" | "inbox" | "inbox-arrow-down" | "inbox-stack" | "information-circle" | "italic" | "key" | "language" | "lifebuoy" | "light-bulb" | "link" | "link-slash" | "list-bullet" | "lock-closed" | "lock-open" | "magnifying-glass" | "magnifying-glass-circle" | "magnifying-glass-minus" | "magnifying-glass-plus" | "map" | "map-pin" | "megaphone" | "microphone" | "minus" | "minus-circle" | "minus-small" | "moon" | "musical-note" | "newspaper" | "no-symbol" | "numbered-list" | "paint-brush" | "paper-airplane" | "paper-clip" | "pause" | "pause-circle" | "pencil" | "pencil-square" | "percent-badge" | "phone" | "phone-arrow-down-left" | "phone-arrow-up-right" | "phone-x-mark" | "photo" | "play" | "play-circle" | "play-pause" | "plus" | "plus-circle" | "plus-small" | "power" | "presentation-chart-bar" | "presentation-chart-line" | "printer" | "puzzle-piece" | "qr-code" | "question-mark-circle" | "queue-list" | "radio" | "receipt-percent" | "receipt-refund" | "rectangle-group" | "rectangle-stack" | "rocket-launch" | "rss" | "scale" | "scissors" | "server" | "server-stack" | "share" | "shield-check" | "shield-exclamation" | "shopping-bag" | "shopping-cart" | "signal" | "signal-slash" | "slash" | "sparkles" | "speaker-wave" | "speaker-x-mark" | "square-2-stack" | "square-3-stack-3d" | "squares-2x2" | "squares-plus" | "star" | "stop" | "stop-circle" | "strikethrough" | "sun" | "swatch" | "table-cells" | "tag" | "ticket" | "trash" | "trophy" | "truck" | "tv" | "underline" | "user" | "user-circle" | "user-group" | "user-minus" | "user-plus" | "users" | "variable" | "video-camera" | "video-camera-slash" | "view-columns" | "viewfinder-circle" | "wallet" | "wifi" | "window" | "wrench" | "wrench-screwdriver" | "x-circle" | "x-mark">;
91
+ /** `normal` = 24×24, `small` = 16×16; default dalla DI (`TAILWIND_ICON_SIZE`) se presente */
92
+ readonly size: _angular_core.InputSignal<TailwindIconSize>;
93
+ readonly src: _angular_core.Signal<string>;
94
+ readonly pixelSize: _angular_core.Signal<16 | 24>;
95
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindIcon, never>;
96
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindIcon, "tailwind-icon", never, { "icon": { "alias": "icon"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
97
+ }
98
+
99
+ declare class TailwindInput extends TailwindComponent implements ControlValueAccessor {
100
+ /** Label text */
101
+ readonly label: _angular_core.InputSignal<string>;
102
+ /** Placeholder text */
103
+ readonly placeholder: _angular_core.InputSignal<string>;
104
+ /** Input type */
105
+ readonly type: _angular_core.InputSignal<"number" | "text" | "search" | "password" | "email" | "tel" | "url">;
106
+ /** Size variant */
107
+ readonly size: _angular_core.InputSignal<TailwindSize>;
108
+ /** Whether the input is readonly */
109
+ readonly readonly: _angular_core.InputSignal<boolean>;
110
+ /** Helper text shown below input */
111
+ readonly helperText: _angular_core.InputSignal<string>;
112
+ /** Error text shown when hasError is true */
113
+ readonly errorText: _angular_core.InputSignal<string>;
114
+ /** Whether the input is in error state */
115
+ readonly hasError: _angular_core.InputSignal<boolean>;
116
+ /** Two-way bound value */
117
+ readonly value: _angular_core.ModelSignal<string>;
118
+ /** Internal disabled state */
119
+ readonly isDisabled: _angular_core.WritableSignal<boolean>;
120
+ /** Computed input classes */
121
+ readonly inputClasses: _angular_core.Signal<string>;
122
+ private onChange;
123
+ private onTouched;
124
+ writeValue(value: string): void;
125
+ registerOnChange(fn: (value: string) => void): void;
126
+ registerOnTouched(fn: () => void): void;
127
+ setDisabledState(disabled: boolean): void;
128
+ onInputChange(event: Event): void;
129
+ onBlur(): void;
130
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindInput, never>;
131
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindInput, "tailwind-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "hasError": { "alias": "hasError"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
132
+ }
133
+
134
+ declare class TailwindCheckbox extends TailwindComponent implements ControlValueAccessor {
135
+ /** Label text */
136
+ readonly label: _angular_core.InputSignal<string>;
137
+ /** Description text */
138
+ readonly description: _angular_core.InputSignal<string>;
139
+ /** Size variant */
140
+ readonly size: _angular_core.InputSignal<TailwindSize>;
141
+ /** Unique ID */
142
+ /** Two-way bound checked state */
143
+ readonly checked: _angular_core.ModelSignal<boolean>;
144
+ /** Internal disabled state */
145
+ readonly isDisabled: _angular_core.WritableSignal<boolean>;
146
+ /** Box size class based on size input */
147
+ readonly boxSizeClass: _angular_core.Signal<string>;
148
+ private onChange;
149
+ private onTouched;
150
+ writeValue(value: boolean): void;
151
+ registerOnChange(fn: (value: boolean) => void): void;
152
+ registerOnTouched(fn: () => void): void;
153
+ setDisabledState(disabled: boolean): void;
154
+ onCheckboxChange(event: Event): void;
155
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindCheckbox, never>;
156
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindCheckbox, "tailwind-checkbox", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true, never>;
157
+ }
158
+
159
+ declare class TailwindRadioGroup<T = unknown> extends TailwindComponent implements ControlValueAccessor {
160
+ /** Label for the radio group */
161
+ readonly label: _angular_core.InputSignal<string>;
162
+ /** Aria label for accessibility */
163
+ readonly ariaLabel: _angular_core.InputSignal<string>;
164
+ /** Name for the radio group (used for native radio grouping) */
165
+ readonly name: _angular_core.InputSignal<string | undefined>;
166
+ /** Available options */
167
+ readonly options: _angular_core.InputSignal<TailwindOptionGroup<T>[]>;
168
+ /** Size variant */
169
+ readonly size: _angular_core.InputSignal<TailwindSize>;
170
+ /** Layout orientation */
171
+ readonly orientation: _angular_core.InputSignal<"horizontal" | "vertical">;
172
+ /** Currently selected value */
173
+ readonly value: _angular_core.ModelSignal<T | null>;
174
+ /** Internal disabled state */
175
+ readonly isDisabled: _angular_core.WritableSignal<boolean>;
176
+ /** Radio button outer ring size */
177
+ readonly radioSizeClass: _angular_core.Signal<string>;
178
+ /** Inner dot size */
179
+ readonly dotSizeClass: _angular_core.Signal<string>;
180
+ private onChange;
181
+ private onTouched;
182
+ writeValue(value: T): void;
183
+ registerOnChange(fn: (value: T) => void): void;
184
+ registerOnTouched(fn: () => void): void;
185
+ setDisabledState(disabled: boolean): void;
186
+ onRadioChange(optionValue: T): void;
187
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindRadioGroup<any>, never>;
188
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindRadioGroup<any>, "tailwind-radio-group", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
189
+ }
190
+
191
+ declare class TailwindSelect<T = unknown> extends TailwindComponent implements ControlValueAccessor, OnDestroy {
192
+ private readonly overlay;
193
+ private readonly vcr;
194
+ private readonly elRef;
195
+ private readonly panelTemplate;
196
+ private overlayRef;
197
+ private outsideSub;
198
+ /** Label text */
199
+ readonly label: _angular_core.InputSignal<string>;
200
+ /** Placeholder text */
201
+ readonly placeholder: _angular_core.InputSignal<string>;
202
+ /** Available options */
203
+ readonly options: _angular_core.InputSignal<TailwindOption<T>[]>;
204
+ /** Size variant */
205
+ readonly size: _angular_core.InputSignal<TailwindSize>;
206
+ /** Helper text */
207
+ readonly helperText: _angular_core.InputSignal<string>;
208
+ /** Error text */
209
+ readonly errorText: _angular_core.InputSignal<string>;
210
+ /** Whether in error state */
211
+ readonly hasError: _angular_core.InputSignal<boolean>;
212
+ /** When true, value is `T[]` and several options can be selected */
213
+ readonly multiple: _angular_core.InputSignal<boolean>;
214
+ /** Selected value: `T | null` when single, `T[]` when `multiple` */
215
+ readonly value: _angular_core.ModelSignal<T | T[] | null>;
216
+ /** Internal disabled state */
217
+ readonly isDisabled: _angular_core.WritableSignal<boolean>;
218
+ /** Whether the dropdown panel is open */
219
+ readonly isOpen: _angular_core.WritableSignal<boolean>;
220
+ /** Keyboard-highlighted option index (-1 = none) */
221
+ readonly activeIndex: _angular_core.WritableSignal<number>;
222
+ /** The currently selected option object (single mode only) */
223
+ readonly selectedOption: _angular_core.Signal<TailwindOption<T> | null>;
224
+ /** Selected option objects in `options()` order (multiple mode only) */
225
+ readonly selectedOptions: _angular_core.Signal<TailwindOption<T>[]>;
226
+ /** Classes for the trigger button */
227
+ readonly triggerClasses: _angular_core.Signal<string>;
228
+ private optionValueEquals;
229
+ /** Used in the template to compare option values */
230
+ isOptionSelected(option: TailwindOption<T>): boolean;
231
+ /** Classes for a single option row */
232
+ optionClasses(index: number, option: TailwindOption<T>): string;
233
+ private onChange;
234
+ private onTouched;
235
+ writeValue(value: T | T[] | null | undefined): void;
236
+ registerOnChange(fn: (value: T | T[] | null) => void): void;
237
+ registerOnTouched(fn: () => void): void;
238
+ setDisabledState(disabled: boolean): void;
239
+ ngOnDestroy(): void;
240
+ private openDropdown;
241
+ private closeDropdown;
242
+ toggleDropdown(): void;
243
+ selectOption(option: TailwindOption<T>): void;
244
+ onKeydown(event: KeyboardEvent): void;
245
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindSelect<any>, never>;
246
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindSelect<any>, "tailwind-select", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "hasError": { "alias": "hasError"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
247
+ }
248
+
249
+ declare class TailwindToggle extends TailwindComponent implements ControlValueAccessor {
250
+ /** Label text */
251
+ readonly label: _angular_core.InputSignal<string>;
252
+ /** Aria label for accessibility */
253
+ readonly ariaLabel: _angular_core.InputSignal<string>;
254
+ /** Size variant */
255
+ readonly size: _angular_core.InputSignal<TailwindSize>;
256
+ /** Two-way bound checked state */
257
+ readonly checked: _angular_core.ModelSignal<boolean>;
258
+ /** Internal disabled state */
259
+ readonly isDisabled: _angular_core.WritableSignal<boolean>;
260
+ /** Track (background) classes */
261
+ readonly trackClasses: _angular_core.Signal<string>;
262
+ /** Thumb (knob) classes */
263
+ readonly thumbClasses: _angular_core.Signal<string>;
264
+ private onChange;
265
+ private onTouched;
266
+ writeValue(value: boolean): void;
267
+ registerOnChange(fn: (value: boolean) => void): void;
268
+ registerOnTouched(fn: () => void): void;
269
+ setDisabledState(disabled: boolean): void;
270
+ toggle(): void;
271
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindToggle, never>;
272
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindToggle, "tailwind-toggle", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true, never>;
273
+ }
274
+
275
+ declare class TailwindBadge extends TailwindComponent {
276
+ /** Color variant */
277
+ readonly variant: _angular_core.InputSignal<"primary" | TailwindSeverity | "neutral">;
278
+ /** Size variant */
279
+ readonly size: _angular_core.InputSignal<TailwindSize>;
280
+ /** Show a dot indicator */
281
+ readonly dot: _angular_core.InputSignal<boolean>;
282
+ /** Shape variant */
283
+ readonly rounded: _angular_core.InputSignal<boolean>;
284
+ /** Accessible label */
285
+ readonly ariaLabel: _angular_core.InputSignal<string>;
286
+ readonly computedClasses: _angular_core.Signal<string>;
287
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindBadge, never>;
288
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindBadge, "tailwind-badge", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "dot": { "alias": "dot"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
289
+ }
290
+
291
+ declare class TailwindCard extends TailwindComponent {
292
+ /** Whether the card has elevated shadow */
293
+ readonly elevated: _angular_core.InputSignal<boolean>;
294
+ /** Whether to show hover shadow effect */
295
+ readonly hoverable: _angular_core.InputSignal<boolean>;
296
+ /** Whether to show header background */
297
+ readonly headerBg: _angular_core.InputSignal<boolean>;
298
+ /** Whether the card has a header */
299
+ readonly hasHeader: _angular_core.InputSignal<boolean>;
300
+ /** Whether the card has a footer */
301
+ readonly hasFooter: _angular_core.InputSignal<boolean>;
302
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindCard, never>;
303
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindCard, "tailwind-card", never, { "elevated": { "alias": "elevated"; "required": false; "isSignal": true; }; "hoverable": { "alias": "hoverable"; "required": false; "isSignal": true; }; "headerBg": { "alias": "headerBg"; "required": false; "isSignal": true; }; "hasHeader": { "alias": "hasHeader"; "required": false; "isSignal": true; }; "hasFooter": { "alias": "hasFooter"; "required": false; "isSignal": true; }; }, {}, never, ["tailwind-card-header", "tailwind-card-image", "*", "tailwind-card-footer"], true, never>;
304
+ }
305
+
306
+ declare class TailwindAlert extends TailwindComponent {
307
+ /** Severity / color variant */
308
+ readonly severity: _angular_core.InputSignal<TailwindSeverity>;
309
+ /** Alert title */
310
+ readonly title: _angular_core.InputSignal<string>;
311
+ /** Alert message */
312
+ readonly message: _angular_core.InputSignal<string>;
313
+ /** Whether the alert can be dismissed */
314
+ readonly dismissible: _angular_core.InputSignal<boolean>;
315
+ /** Whether to show a border on the left */
316
+ readonly bordered: _angular_core.InputSignal<boolean>;
317
+ /** Emitted when the alert is dismissed */
318
+ readonly onDismiss: _angular_core.OutputEmitterRef<void>;
319
+ /** Internal dismissed state */
320
+ readonly dismissed: _angular_core.WritableSignal<boolean>;
321
+ readonly computedClasses: _angular_core.Signal<string>;
322
+ dismiss(): void;
323
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindAlert, never>;
324
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindAlert, "tailwind-alert", never, { "severity": { "alias": "severity"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; }, { "onDismiss": "onDismiss"; }, never, never, true, never>;
325
+ }
326
+
327
+ declare class TailwindSpinner extends TailwindComponent {
328
+ /** Size variant */
329
+ readonly size: _angular_core.InputSignal<TailwindSize>;
330
+ /** Color uses Tailwind text color class */
331
+ readonly color: _angular_core.InputSignal<TailwindColor>;
332
+ /** Optional label text */
333
+ readonly label: _angular_core.InputSignal<string>;
334
+ /** Aria label for accessibility */
335
+ readonly ariaLabel: _angular_core.InputSignal<string>;
336
+ /** Layout orientation */
337
+ readonly orientation: _angular_core.InputSignal<"horizontal" | "vertical">;
338
+ readonly containerClasses: _angular_core.Signal<string>;
339
+ readonly spinnerClasses: _angular_core.Signal<string>;
340
+ readonly labelClasses: _angular_core.Signal<string>;
341
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindSpinner, never>;
342
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindSpinner, "tailwind-spinner", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
343
+ }
344
+
345
+ declare class TailwindModal extends TailwindComponent {
346
+ /** Size variant */
347
+ readonly size: _angular_core.InputSignal<TailwindSize>;
348
+ /** Whether to show close button in header */
349
+ readonly showCloseButton: _angular_core.InputSignal<boolean>;
350
+ /** Whether clicking backdrop closes the modal */
351
+ readonly closeOnBackdrop: _angular_core.InputSignal<boolean>;
352
+ /** Whether pressing Escape closes the modal */
353
+ readonly closeOnEscape: _angular_core.InputSignal<boolean>;
354
+ /** Open/close state */
355
+ readonly isOpen: _angular_core.WritableSignal<boolean>;
356
+ /** Visibility for animation */
357
+ readonly isVisible: _angular_core.WritableSignal<boolean>;
358
+ /** Emitted when the modal is fully closed (after exit animation) */
359
+ readonly onClose: _angular_core.OutputEmitterRef<void>;
360
+ private readonly modalPanel;
361
+ readonly panelClasses: _angular_core.Signal<string>;
362
+ constructor();
363
+ /** Open the modal */
364
+ open(): void;
365
+ /** Close the modal (plays exit animation then emits onClose) */
366
+ close(): void;
367
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindModal, never>;
368
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindModal, "tailwind-modal", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "showCloseButton": { "alias": "showCloseButton"; "required": false; "isSignal": true; }; "closeOnBackdrop": { "alias": "closeOnBackdrop"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; }, { "onClose": "onClose"; }, never, ["*", "tailwind-modal-content", "tailwind-modal-footer"], true, never>;
369
+ }
370
+
371
+ /**
372
+ * Transparent wrapper — the visual header structure is provided by TailwindModal.
373
+ * Use inside a programmatically-opened component to supply the modal title.
374
+ */
375
+ declare class TailwindModalTitle {
376
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindModalTitle, never>;
377
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindModalTitle, "tailwind-modal-title", never, {}, {}, never, ["*"], true, never>;
378
+ }
379
+
380
+ declare class TailwindModalContent {
381
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindModalContent, never>;
382
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindModalContent, "tailwind-modal-content", never, {}, {}, never, ["*"], true, never>;
383
+ }
384
+
385
+ declare class TailwindModalFooter {
386
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindModalFooter, never>;
387
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindModalFooter, "tailwind-modal-footer", never, {}, {}, never, ["*"], true, never>;
388
+ }
389
+
390
+ declare class TailwindTab extends TailwindComponent {
391
+ /** Tab label */
392
+ readonly label: _angular_core.InputSignal<string>;
393
+ /** Tab icon (optional, CSS class or content) */
394
+ readonly icon: _angular_core.InputSignal<string>;
395
+ /** Whether the tab is disabled */
396
+ readonly disabled: _angular_core.InputSignal<boolean>;
397
+ /** Whether this tab is the currently active one (set by parent) */
398
+ readonly isActive: _angular_core.WritableSignal<boolean>;
399
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindTab, never>;
400
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindTab, "tailwind-tab", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
401
+ }
402
+
403
+ declare class TailwindTabGroup extends TailwindComponent {
404
+ /** Accessible label for the tab list */
405
+ readonly ariaLabel: _angular_core.InputSignal<string>;
406
+ /** Whether tabs can scroll horizontally */
407
+ readonly scrollable: _angular_core.InputSignal<boolean>;
408
+ /** Currently active tab index (two-way) */
409
+ readonly activeIndex: _angular_core.ModelSignal<number>;
410
+ /** Query all child TailwindTab components */
411
+ readonly tabs: _angular_core.Signal<readonly TailwindTab[]>;
412
+ constructor();
413
+ selectTab(index: number): void;
414
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindTabGroup, never>;
415
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindTabGroup, "tailwind-tab-group", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "scrollable": { "alias": "scrollable"; "required": false; "isSignal": true; }; "activeIndex": { "alias": "activeIndex"; "required": false; "isSignal": true; }; }, { "activeIndex": "activeIndexChange"; }, ["tabs"], ["*"], true, never>;
416
+ }
417
+
418
+ declare class TailwindTooltip extends TailwindComponent implements AfterViewInit, OnDestroy {
419
+ /** Tooltip text */
420
+ readonly text: _angular_core.InputSignal<string>;
421
+ /** Position relative to trigger */
422
+ readonly position: _angular_core.InputSignal<TailwindPosition>;
423
+ readonly isVisible: _angular_core.WritableSignal<boolean>;
424
+ readonly topPos: _angular_core.WritableSignal<number>;
425
+ readonly leftPos: _angular_core.WritableSignal<number>;
426
+ private targetElement;
427
+ private document;
428
+ private ngZone;
429
+ private el;
430
+ readonly tooltipEl: _angular_core.Signal<ElementRef<HTMLDivElement>>;
431
+ private scrollListener;
432
+ readonly tooltipClasses: _angular_core.Signal<string>;
433
+ readonly arrowClasses: _angular_core.Signal<string>;
434
+ ngAfterViewInit(): void;
435
+ ngOnDestroy(): void;
436
+ setTarget(el: HTMLElement): void;
437
+ private getFixedOrigin;
438
+ updatePosition(): void;
439
+ show(): void;
440
+ hide(): void;
441
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindTooltip, never>;
442
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindTooltip, "tailwind-tooltip", never, { "text": { "alias": "text"; "required": true; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
443
+ }
444
+
445
+ declare class TailwindProgressBar extends TailwindComponent {
446
+ /** Current value (0-100) */
447
+ readonly value: _angular_core.InputSignal<number>;
448
+ /** Label text */
449
+ readonly label: _angular_core.InputSignal<string>;
450
+ /** Show the label row */
451
+ readonly showLabel: _angular_core.InputSignal<boolean>;
452
+ /** Show percentage value */
453
+ readonly showValue: _angular_core.InputSignal<boolean>;
454
+ /** Color variant */
455
+ readonly variant: _angular_core.InputSignal<"primary" | TailwindSeverity>;
456
+ /** Size variant */
457
+ readonly size: _angular_core.InputSignal<TailwindSize>;
458
+ /** Indeterminate mode (animated) */
459
+ readonly indeterminate: _angular_core.InputSignal<boolean>;
460
+ /** Whether to use striped pattern */
461
+ readonly striped: _angular_core.InputSignal<boolean>;
462
+ readonly clampedValue: _angular_core.Signal<number>;
463
+ readonly trackClasses: _angular_core.Signal<string>;
464
+ readonly barClasses: _angular_core.Signal<string>;
465
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindProgressBar, never>;
466
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindProgressBar, "tailwind-progress-bar", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "showLabel": { "alias": "showLabel"; "required": false; "isSignal": true; }; "showValue": { "alias": "showValue"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
467
+ }
468
+
469
+ declare class TailwindMenu extends TailwindComponent implements OnDestroy, OnInit {
470
+ private openScheduleId;
471
+ private anchorEl;
472
+ private readonly onScrollReposition;
473
+ readonly items: _angular_core.InputSignal<TailwindMenuItem[]>;
474
+ readonly align: _angular_core.InputSignal<"left" | "right">;
475
+ readonly onSelect: _angular_core.OutputEmitterRef<TailwindMenuItem>;
476
+ readonly isOpen: _angular_core.WritableSignal<boolean>;
477
+ /** Popover box in coordinates relative to the `position: fixed` containing block (often viewport, not under transformed Docs wrappers). */
478
+ readonly panelLayout: _angular_core.WritableSignal<{
479
+ top: number;
480
+ left?: number;
481
+ right?: number;
482
+ minWidth: number;
483
+ } | null>;
484
+ private readonly panelRef;
485
+ ngOnInit(): void;
486
+ ngOnDestroy(): void;
487
+ /**
488
+ * Opens the menu under `anchor` (toggle element).
489
+ * Pass the click event from the button, e.g. `(click)="menu.open($event)"`, or an `HTMLElement`.
490
+ * After the first open with an anchor, `open()` without arguments reuses the last anchor.
491
+ *
492
+ * Opening is deferred one macrotask so the same `click` is not closed immediately by `document:click`.
493
+ */
494
+ open(anchor?: Event | HTMLElement): void;
495
+ close(): void;
496
+ toggle(anchor?: Event | HTMLElement): void;
497
+ private storeAnchor;
498
+ private scheduleOpen;
499
+ private updatePanelPosition;
500
+ selectItem(item: TailwindMenuItem): void;
501
+ onDocumentEscape(): void;
502
+ onDocumentClick(event: Event): void;
503
+ onWindowResize(): void;
504
+ /** Ancestor that becomes the containing block for `position: fixed` (e.g. Storybook Docs wrappers with `transform`). */
505
+ private createsFixedContainingBlock;
506
+ private getFixedPositioningContainingBlock;
507
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindMenu, never>;
508
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindMenu, "tailwind-menu", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; }, { "onSelect": "onSelect"; }, never, never, true, never>;
509
+ }
510
+
511
+ declare class TailwindDrawer extends TailwindComponent {
512
+ /** Drawer title */
513
+ readonly title: _angular_core.InputSignal<string>;
514
+ /** Position (left or right) */
515
+ readonly position: _angular_core.InputSignal<"left" | "right">;
516
+ /** Width class */
517
+ readonly width: _angular_core.InputSignal<string>;
518
+ /** Whether clicking backdrop closes */
519
+ readonly closeOnBackdrop: _angular_core.InputSignal<boolean>;
520
+ /** Open/close state */
521
+ readonly isOpen: _angular_core.WritableSignal<boolean>;
522
+ /** Visibility for animation */
523
+ readonly isVisible: _angular_core.WritableSignal<boolean>;
524
+ /** Emitted when closed */
525
+ readonly onClose: _angular_core.OutputEmitterRef<void>;
526
+ readonly panelClasses: _angular_core.Signal<string>;
527
+ open(): void;
528
+ close(): void;
529
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindDrawer, never>;
530
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindDrawer, "tailwind-drawer", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "closeOnBackdrop": { "alias": "closeOnBackdrop"; "required": false; "isSignal": true; }; }, { "onClose": "onClose"; }, never, ["*", "tailwind-drawer-footer"], true, never>;
531
+ }
532
+
533
+ interface TailwindBreadcrumbItem {
534
+ label: string;
535
+ href?: string;
536
+ }
537
+
538
+ declare class TailwindBreadcrumb extends TailwindComponent {
539
+ readonly items: _angular_core.InputSignal<TailwindBreadcrumbItem[]>;
540
+ readonly ariaLabel: _angular_core.InputSignal<string>;
541
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindBreadcrumb, never>;
542
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindBreadcrumb, "tailwind-breadcrumb", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
543
+ }
544
+
545
+ interface Pagination {
546
+ readonly totalItems: number;
547
+ readonly pageSize: number;
548
+ readonly currentPage: number;
549
+ readonly ariaLabel: string;
550
+ readonly summary: string;
551
+ }
552
+
553
+ declare class TailwindPagination extends TailwindComponent {
554
+ readonly totalItems: _angular_core.InputSignal<number>;
555
+ readonly pageSize: _angular_core.InputSignal<number>;
556
+ readonly currentPage: _angular_core.ModelSignal<number>;
557
+ readonly ariaLabel: _angular_core.InputSignal<string>;
558
+ readonly summary: _angular_core.InputSignal<string>;
559
+ readonly onPageChange: _angular_core.OutputEmitterRef<number>;
560
+ readonly totalPages: _angular_core.Signal<number>;
561
+ readonly visiblePages: _angular_core.Signal<number[]>;
562
+ readonly summaryText: _angular_core.Signal<string>;
563
+ goToPage(page: number): void;
564
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindPagination, never>;
565
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindPagination, "tailwind-pagination", never, { "totalItems": { "alias": "totalItems"; "required": true; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "currentPage": { "alias": "currentPage"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "summary": { "alias": "summary"; "required": false; "isSignal": true; }; }, { "currentPage": "currentPageChange"; "onPageChange": "onPageChange"; }, never, never, true, never>;
566
+ }
567
+
568
+ declare class TailwindTag extends TailwindComponent {
569
+ readonly variant: _angular_core.InputSignal<"primary" | TailwindSeverity | "neutral">;
570
+ readonly computedClasses: _angular_core.Signal<string>;
571
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindTag, never>;
572
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindTag, "tailwind-tag", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
573
+ }
574
+
575
+ interface TailwindTableColumn<T = any> {
576
+ key: string;
577
+ label: string;
578
+ sortable?: boolean;
579
+ width?: string;
580
+ align?: 'left' | 'center' | 'right';
581
+ }
582
+
583
+ declare class TailwindTable extends TailwindComponent {
584
+ readonly columns: _angular_core.InputSignal<TailwindTableColumn<any>[]>;
585
+ readonly data: _angular_core.InputSignal<Record<string, any>[]>;
586
+ readonly selectable: _angular_core.InputSignal<boolean>;
587
+ readonly striped: _angular_core.InputSignal<boolean>;
588
+ readonly loading: _angular_core.InputSignal<boolean>;
589
+ readonly emptyMessage: _angular_core.InputSignal<string>;
590
+ readonly paginated: _angular_core.InputSignal<boolean>;
591
+ readonly pagination: _angular_core.InputSignal<Pagination | undefined>;
592
+ readonly onSortChange: _angular_core.OutputEmitterRef<{
593
+ key: string;
594
+ direction: "asc" | "desc";
595
+ }>;
596
+ readonly onSelectionChange: _angular_core.OutputEmitterRef<Set<number>>;
597
+ readonly sortKey: _angular_core.WritableSignal<string>;
598
+ readonly sortDir: _angular_core.WritableSignal<"asc" | "desc">;
599
+ readonly selectedRows: _angular_core.WritableSignal<Set<number>>;
600
+ readonly currentPage: _angular_core.WritableSignal<number>;
601
+ constructor();
602
+ readonly sortedData: _angular_core.Signal<Record<string, any>[]>;
603
+ readonly displayedData: _angular_core.Signal<Record<string, any>[]>;
604
+ sort(key: string): void;
605
+ toggleSelection(index: number): void;
606
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindTable, never>;
607
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindTable, "tailwind-table", never, { "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "paginated": { "alias": "paginated"; "required": false; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": false; "isSignal": true; }; }, { "onSortChange": "onSortChange"; "onSelectionChange": "onSelectionChange"; }, never, never, true, never>;
608
+ }
609
+
610
+ declare class TailwindDatePicker extends TailwindComponent implements ControlValueAccessor {
611
+ private readonly lang;
612
+ protected readonly i18n: {
613
+ months: string[];
614
+ weekDays: string[];
615
+ today: string;
616
+ confirm: string;
617
+ placeholder: string;
618
+ };
619
+ protected readonly weekDays: string[];
620
+ readonly label: _angular_core.InputSignal<string>;
621
+ readonly placeholder: _angular_core.InputSignal<string | undefined>;
622
+ readonly format: _angular_core.InputSignal<string>;
623
+ readonly value: _angular_core.ModelSignal<Date | null>;
624
+ /** Working selection while the panel is open; committed on Apply. */
625
+ readonly draft: _angular_core.WritableSignal<Date | null>;
626
+ readonly isDisabled: _angular_core.WritableSignal<boolean>;
627
+ readonly showCalendar: _angular_core.WritableSignal<boolean>;
628
+ readonly viewMonth: _angular_core.WritableSignal<number>;
629
+ readonly viewYear: _angular_core.WritableSignal<number>;
630
+ readonly effectivePlaceholder: _angular_core.Signal<string>;
631
+ readonly displayValue: _angular_core.Signal<string>;
632
+ readonly monthYearLabel: _angular_core.Signal<string>;
633
+ readonly calendarDays: _angular_core.Signal<number[]>;
634
+ private onChange;
635
+ private onTouched;
636
+ writeValue(v: Date | null): void;
637
+ registerOnChange(fn: (v: Date | null) => void): void;
638
+ registerOnTouched(fn: () => void): void;
639
+ setDisabledState(d: boolean): void;
640
+ toggleCalendar(): void;
641
+ apply(): void;
642
+ prevMonth(): void;
643
+ nextMonth(): void;
644
+ selectDay(day: number): void;
645
+ isSelected(day: number): boolean;
646
+ isToday(day: number): boolean;
647
+ goToToday(): void;
648
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindDatePicker, never>;
649
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindDatePicker, "tailwind-date-picker", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
650
+ }
651
+
652
+ type TimeDraft = {
653
+ h: number;
654
+ m: number;
655
+ };
656
+ declare class TailwindTimePicker extends TailwindComponent implements ControlValueAccessor {
657
+ private readonly lang;
658
+ protected readonly i18n: {
659
+ placeholder: string;
660
+ now: string;
661
+ apply: string;
662
+ };
663
+ protected readonly hours: number[];
664
+ protected readonly minutes: number[];
665
+ readonly label: _angular_core.InputSignal<string>;
666
+ readonly value: _angular_core.ModelSignal<string>;
667
+ readonly isDisabled: _angular_core.WritableSignal<boolean>;
668
+ readonly showPanel: _angular_core.WritableSignal<boolean>;
669
+ readonly draft: _angular_core.WritableSignal<TimeDraft | null>;
670
+ readonly displayValue: _angular_core.Signal<string>;
671
+ private onChange;
672
+ private onTouched;
673
+ writeValue(v: string): void;
674
+ registerOnChange(fn: (v: string) => void): void;
675
+ registerOnTouched(fn: () => void): void;
676
+ setDisabledState(d: boolean): void;
677
+ togglePanel(): void;
678
+ apply(): void;
679
+ goToNow(): void;
680
+ onHourChange(e: Event): void;
681
+ onMinuteChange(e: Event): void;
682
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindTimePicker, never>;
683
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindTimePicker, "tailwind-time-picker", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
684
+ }
685
+
686
+ declare class TailwindDateTimePicker extends TailwindComponent implements ControlValueAccessor {
687
+ private readonly lang;
688
+ protected readonly i18n: {
689
+ months: string[];
690
+ weekDays: string[];
691
+ time: string;
692
+ today: string;
693
+ confirm: string;
694
+ placeholder: string;
695
+ };
696
+ protected readonly weekDays: string[];
697
+ protected readonly hours: number[];
698
+ protected readonly minutes: number[];
699
+ readonly label: _angular_core.InputSignal<string>;
700
+ readonly placeholder: _angular_core.InputSignal<string | undefined>;
701
+ /** Angular [DatePipe](https://angular.dev/api/common/DatePipe) format string. */
702
+ readonly format: _angular_core.InputSignal<string>;
703
+ readonly selected: _angular_core.WritableSignal<Date | null>;
704
+ readonly draft: _angular_core.WritableSignal<Date | null>;
705
+ readonly isDisabled: _angular_core.WritableSignal<boolean>;
706
+ readonly showPanel: _angular_core.WritableSignal<boolean>;
707
+ readonly viewMonth: _angular_core.WritableSignal<number>;
708
+ readonly viewYear: _angular_core.WritableSignal<number>;
709
+ readonly effectivePlaceholder: _angular_core.Signal<string>;
710
+ readonly displayValue: _angular_core.Signal<string>;
711
+ readonly monthYearLabel: _angular_core.Signal<string>;
712
+ readonly calendarDays: _angular_core.Signal<number[]>;
713
+ private onChange;
714
+ private onTouched;
715
+ writeValue(v: Date | null | undefined): void;
716
+ registerOnChange(fn: (v: Date | null) => void): void;
717
+ registerOnTouched(fn: () => void): void;
718
+ setDisabledState(disabled: boolean): void;
719
+ togglePanel(): void;
720
+ apply(): void;
721
+ prevMonth(): void;
722
+ nextMonth(): void;
723
+ selectDay(day: number): void;
724
+ isSelected(day: number): boolean;
725
+ isToday(day: number): boolean;
726
+ goToToday(): void;
727
+ onHourChange(e: Event): void;
728
+ onMinuteChange(e: Event): void;
729
+ private todayNow;
730
+ private emitValue;
731
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindDateTimePicker, never>;
732
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindDateTimePicker, "tailwind-datetime-picker", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
733
+ }
734
+
735
+ declare class TailwindStep extends TailwindComponent {
736
+ readonly label: _angular_core.InputSignal<string>;
737
+ readonly description: _angular_core.InputSignal<string>;
738
+ readonly optional: _angular_core.InputSignal<boolean>;
739
+ readonly completed: _angular_core.WritableSignal<boolean>;
740
+ readonly isActive: _angular_core.WritableSignal<boolean>;
741
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindStep, never>;
742
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindStep, "tailwind-step", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "optional": { "alias": "optional"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
743
+ }
744
+
745
+ declare class TailwindStepper extends TailwindComponent {
746
+ readonly activeIndex: _angular_core.ModelSignal<number>;
747
+ readonly linear: _angular_core.InputSignal<boolean>;
748
+ readonly steps: _angular_core.Signal<readonly TailwindStep[]>;
749
+ constructor();
750
+ goToStep(index: number): void;
751
+ next(): void;
752
+ previous(): void;
753
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindStepper, never>;
754
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindStepper, "tailwind-stepper", never, { "activeIndex": { "alias": "activeIndex"; "required": false; "isSignal": true; }; "linear": { "alias": "linear"; "required": false; "isSignal": true; }; }, { "activeIndex": "activeIndexChange"; }, ["steps"], ["*"], true, never>;
755
+ }
756
+
757
+ declare class TailwindAccordionItem extends TailwindComponent {
758
+ readonly title: _angular_core.InputSignal<string>;
759
+ readonly disabled: _angular_core.InputSignal<boolean>;
760
+ readonly isExpanded: _angular_core.WritableSignal<boolean>;
761
+ readonly onToggle: _angular_core.OutputEmitterRef<void>;
762
+ toggle(): void;
763
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindAccordionItem, never>;
764
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindAccordionItem, "tailwind-accordion-item", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "onToggle": "onToggle"; }, never, ["*"], true, never>;
765
+ }
766
+
767
+ declare class TailwindAccordion extends TailwindComponent {
768
+ readonly items: _angular_core.Signal<readonly TailwindAccordionItem[]>;
769
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindAccordion, never>;
770
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindAccordion, "tailwind-accordion", never, {}, {}, ["items"], ["*"], true, never>;
771
+ }
772
+
773
+ interface TailwindToastConfig {
774
+ message: string;
775
+ title?: string;
776
+ severity?: TailwindSeverity;
777
+ duration?: number;
778
+ dismissible?: boolean;
779
+ }
780
+
781
+ interface TailwindToastItem extends TailwindToastConfig {
782
+ id: number;
783
+ }
784
+
785
+ interface TailwindModalConfig<D = unknown> {
786
+ /** Arbitrary data injected into the modal component via TAILWIND_MODAL_DATA */
787
+ data?: D;
788
+ /** Size variant */
789
+ size?: TailwindSize;
790
+ /** Show the X close button in header */
791
+ showCloseButton?: boolean;
792
+ /** Click backdrop to close */
793
+ closeOnBackdrop?: boolean;
794
+ /** Press Escape to close */
795
+ closeOnEscape?: boolean;
796
+ }
797
+
798
+ declare class TailwindModalService {
799
+ private readonly appRef;
800
+ private readonly environmentInjector;
801
+ /**
802
+ * Open a modal programmatically.
803
+ *
804
+ * The `component` is instantiated and its slot elements are projected into
805
+ * TailwindModal's ng-content slots:
806
+ * - `<tailwind-modal-title>` → header title area
807
+ * - `<tailwind-modal-content>` → body area
808
+ * - `<tailwind-modal-footer>` → footer area
809
+ *
810
+ * The component can inject `TailwindModalRef<R>` to close with a typed result
811
+ * and `TAILWIND_MODAL_DATA` to receive the `config.data` payload.
812
+ *
813
+ * @returns Promise that resolves with `R` on `close(result)` or `undefined` on dismiss.
814
+ */
815
+ open<R = any, D = any>(component: Type<unknown>, config?: TailwindModalConfig<D>): Promise<R | undefined>;
816
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindModalService, never>;
817
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<TailwindModalService>;
818
+ }
819
+
820
+ declare class TailwindToastService {
821
+ private nextId;
822
+ readonly toasts: _angular_core.WritableSignal<TailwindToastItem[]>;
823
+ show(config: TailwindToastConfig): number;
824
+ success(message: string, title?: string): number;
825
+ warning(message: string, title?: string): number;
826
+ danger(message: string, title?: string): number;
827
+ info(message: string, title?: string): number;
828
+ dismiss(id: number): void;
829
+ clear(): void;
830
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindToastService, never>;
831
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<TailwindToastService>;
832
+ }
833
+
834
+ declare class TailwindToast extends TailwindComponent {
835
+ readonly toastService: TailwindToastService;
836
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindToast, never>;
837
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindToast, "tailwind-toast", never, {}, {}, never, never, true, never>;
838
+ }
839
+
840
+ declare class TailwindNotification extends TailwindComponent {
841
+ readonly title: _angular_core.InputSignal<string>;
842
+ readonly severity: _angular_core.InputSignal<TailwindSeverity>;
843
+ readonly dismissible: _angular_core.InputSignal<boolean>;
844
+ readonly showActions: _angular_core.InputSignal<boolean>;
845
+ readonly onDismiss: _angular_core.OutputEmitterRef<void>;
846
+ readonly computedClasses: _angular_core.Signal<string>;
847
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindNotification, never>;
848
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindNotification, "tailwind-notification", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "severity": { "alias": "severity"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "showActions": { "alias": "showActions"; "required": false; "isSignal": true; }; }, { "onDismiss": "onDismiss"; }, never, ["*", "tailwind-notification-actions"], true, never>;
849
+ }
850
+
851
+ declare class TailwindMessage extends TailwindComponent {
852
+ readonly severity: _angular_core.InputSignal<TailwindSeverity>;
853
+ readonly computedClasses: _angular_core.Signal<string>;
854
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindMessage, never>;
855
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindMessage, "tailwind-message", never, { "severity": { "alias": "severity"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
856
+ }
857
+
858
+ declare class TailwindSkeleton extends TailwindComponent {
859
+ readonly variant: _angular_core.InputSignal<"text" | "rounded" | "circle" | "rect">;
860
+ readonly width: _angular_core.InputSignal<string>;
861
+ readonly height: _angular_core.InputSignal<string>;
862
+ readonly computedClasses: _angular_core.Signal<string>;
863
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindSkeleton, never>;
864
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindSkeleton, "tailwind-skeleton", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
865
+ }
866
+
867
+ declare class TailwindToolbar extends TailwindComponent {
868
+ /** When true, uses rounded corners (`rounded-xl`). */
869
+ readonly rounded: _angular_core.InputSignal<boolean>;
870
+ /**
871
+ * Orizzontale: `full` = `w-full`; `container` = larghezza responsiva (95% / 85% / 75%) centrata.
872
+ * Verticale: ignorato per l’altezza — il rail è sempre `h-full w-full` nella colonna.
873
+ */
874
+ readonly width: _angular_core.InputSignal<"full" | "container">;
875
+ /** Applies a stronger drop shadow. */
876
+ readonly elevated: _angular_core.InputSignal<boolean>;
877
+ /** `horizontal` for a top app bar; `vertical` for a side rail (logo → menu → end). */
878
+ readonly orientation: _angular_core.InputSignal<"horizontal" | "vertical">;
879
+ /** Navigation / actions rendered between logo and end slots. */
880
+ readonly menu: _angular_core.InputSignal<TailwindMenuItem[]>;
881
+ /** Emitted when a non-disabled, non-divider menu entry is activated. */
882
+ readonly onMenuSelect: _angular_core.OutputEmitterRef<TailwindMenuItem>;
883
+ readonly menuContainerClasses: _angular_core.Signal<"min-w-0 flex-1 flex flex-row flex-wrap items-center gap-1" | "min-w-0 flex-1 flex flex-col gap-1 overflow-y-auto min-h-0">;
884
+ readonly menuItemButtonClasses: _angular_core.Signal<"shrink-0 rounded-md px-3 py-1.5 text-sm font-medium text-surface-700 hover:bg-surface-100 hover:text-surface-900 disabled:opacity-50 disabled:cursor-not-allowed transition-colors cursor-pointer border-0 bg-transparent" | "w-full text-left rounded-md px-2 py-2 text-sm font-medium text-surface-700 hover:bg-surface-100 hover:text-surface-900 disabled:opacity-50 disabled:cursor-not-allowed transition-colors cursor-pointer border-0 bg-transparent">;
885
+ readonly rootClasses: _angular_core.Signal<string>;
886
+ selectMenuItem(item: TailwindMenuItem): void;
887
+ menuTrackKey(index: number, item: TailwindMenuItem): string;
888
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindToolbar, never>;
889
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindToolbar, "tailwind-toolbar", never, { "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "elevated": { "alias": "elevated"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "menu": { "alias": "menu"; "required": false; "isSignal": true; }; }, { "onMenuSelect": "onMenuSelect"; }, never, ["tailwind-toolbar-logo", "tailwind-toolbar-end"], true, never>;
890
+ }
891
+
892
+ declare class TailwindDivider extends TailwindComponent {
893
+ /** Rule direction */
894
+ readonly orientation: _angular_core.InputSignal<"horizontal" | "vertical">;
895
+ /** Adds horizontal margin to the rule (horizontal orientation only). */
896
+ readonly inset: _angular_core.InputSignal<boolean>;
897
+ /** Border style for the rule */
898
+ readonly variant: _angular_core.InputSignal<"solid" | "dashed">;
899
+ /** Centered text between two lines (horizontal only; ignored when empty). */
900
+ readonly label: _angular_core.InputSignal<string>;
901
+ readonly isLabeledHorizontal: _angular_core.Signal<boolean>;
902
+ readonly ruleClasses: _angular_core.Signal<string>;
903
+ /** Top rule for labeled horizontal layout */
904
+ readonly ruleLineClass: _angular_core.Signal<string>;
905
+ readonly labeledRowClass: _angular_core.Signal<"flex items-center gap-3 w-full mx-4" | "flex items-center gap-3 w-full">;
906
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindDivider, never>;
907
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindDivider, "tailwind-divider", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "inset": { "alias": "inset"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
908
+ }
909
+
910
+ /** One segment in a meter bar (inspired by PrimeNG MeterGroup). */
911
+ interface TailwindMeterSegment {
912
+ /** Legend label */
913
+ label: string;
914
+ /** Portion relative to `max` (same unit as max, e.g. percent points when max is 100) */
915
+ value: number;
916
+ /** Color variant; defaults to primary */
917
+ variant?: TailwindSeverity | 'primary';
918
+ }
919
+
920
+ declare class TailwindMeter extends TailwindComponent {
921
+ /** Segments rendered as proportional blocks in the bar. */
922
+ readonly segments: _angular_core.InputSignal<TailwindMeterSegment[]>;
923
+ /**
924
+ * Scale maximum. Each segment `value` is shown as `value / max` of the bar width.
925
+ * Default 100 (percent-style values).
926
+ */
927
+ readonly max: _angular_core.InputSignal<number>;
928
+ /** Show a simple legend under the bar */
929
+ readonly showLabels: _angular_core.InputSignal<boolean>;
930
+ /** Track height */
931
+ readonly size: _angular_core.InputSignal<TailwindSize>;
932
+ readonly trackHeightClass: _angular_core.Signal<string>;
933
+ readonly totalValue: _angular_core.Signal<number>;
934
+ readonly scaleMax: _angular_core.Signal<number>;
935
+ readonly segmentLayouts: _angular_core.Signal<{
936
+ widthPct: number;
937
+ barClass: string;
938
+ label: string;
939
+ value: number;
940
+ variant?: TailwindSeverity | "primary";
941
+ }[]>;
942
+ readonly trackContainerClasses: _angular_core.Signal<string>;
943
+ legendSwatchClass(variant?: TailwindSeverity | 'primary'): string;
944
+ private variantToBarClass;
945
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindMeter, never>;
946
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindMeter, "tailwind-meter", never, { "segments": { "alias": "segments"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "showLabels": { "alias": "showLabels"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
947
+ }
948
+
949
+ /** Value model: single number or sorted pair when `range` is true */
950
+ type TailwindSliderValue = number | [number, number];
951
+ declare class TailwindSlider extends TailwindComponent implements ControlValueAccessor {
952
+ /** Minimum bound */
953
+ readonly min: _angular_core.InputSignal<number>;
954
+ /** Maximum bound */
955
+ readonly max: _angular_core.InputSignal<number>;
956
+ /** Step increment */
957
+ readonly step: _angular_core.InputSignal<number>;
958
+ /** Two-thumb range mode */
959
+ readonly range: _angular_core.InputSignal<boolean>;
960
+ /** Layout */
961
+ readonly orientation: _angular_core.InputSignal<"horizontal" | "vertical">;
962
+ /** Tick marks at each step */
963
+ readonly showTicks: _angular_core.InputSignal<boolean>;
964
+ /** Control size */
965
+ readonly size: _angular_core.InputSignal<TailwindSize>;
966
+ readonly trackRef: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
967
+ /** Single-thumb value */
968
+ readonly singleValue: _angular_core.WritableSignal<number>;
969
+ /** Range: lower value */
970
+ readonly rangeLow: _angular_core.WritableSignal<number>;
971
+ /** Range: upper value */
972
+ readonly rangeHigh: _angular_core.WritableSignal<number>;
973
+ /** Disabled via template (combined with form `setDisabledState`) */
974
+ readonly hostDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
975
+ readonly isDisabled: _angular_core.WritableSignal<boolean>;
976
+ readonly isEffectivelyDisabled: _angular_core.Signal<boolean>;
977
+ private onChange;
978
+ private onTouched;
979
+ readonly activeThumb: _angular_core.WritableSignal<0 | 1 | null>;
980
+ readonly thumbSizeClass: _angular_core.Signal<string>;
981
+ readonly trackThickness: _angular_core.Signal<string>;
982
+ readonly verticalTrackThickness: _angular_core.Signal<string>;
983
+ readonly singlePct: _angular_core.Signal<number>;
984
+ readonly lowPct: _angular_core.Signal<number>;
985
+ readonly highPct: _angular_core.Signal<number>;
986
+ readonly fillStartPct: _angular_core.Signal<number>;
987
+ readonly fillWidthPct: _angular_core.Signal<number>;
988
+ readonly tickPositions: _angular_core.Signal<number[]>;
989
+ writeValue(value: TailwindSliderValue | null): void;
990
+ registerOnChange(fn: (v: TailwindSliderValue) => void): void;
991
+ registerOnTouched(fn: () => void): void;
992
+ setDisabledState(disabled: boolean): void;
993
+ valueToPct(v: number): number;
994
+ snap(raw: number): number;
995
+ pctToValue(pct: number): number;
996
+ onThumbPointerDown(event: PointerEvent, thumbIndex: 0 | 1): void;
997
+ onTrackPointerDown(event: PointerEvent, thumbIndex: 0 | 1 | null): void;
998
+ private readValueFromPointer;
999
+ private applyPointer;
1000
+ onKeyDown(event: KeyboardEvent, thumbIndex: 0 | 1): void;
1001
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindSlider, never>;
1002
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindSlider, "tailwind-slider", never, { "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "range": { "alias": "range"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "showTicks": { "alias": "showTicks"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "hostDisabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1003
+ }
1004
+
1005
+ declare const TAILWIND_MODAL_DATA: InjectionToken<unknown>;
1006
+ declare const TAILWIND_ICON_SIZE: InjectionToken<"normal" | "small">;
1007
+ declare const TAILWIND_DATETIME_LANGUAGE: InjectionToken<"it" | "en">;
1008
+ declare const TAILWIND_COMPONENTS_SIZE: InjectionToken<TailwindSize>;
1009
+
1010
+ declare class TailwindModalRef<R = any> {
1011
+ private _closeFn;
1012
+ private _result;
1013
+ /** @internal called by the service after component creation */
1014
+ _init(closeFn: () => void): void;
1015
+ /** Close the modal resolving with the given result */
1016
+ close(result?: R): void;
1017
+ /** @internal read by the service after the close animation */
1018
+ _getResult(): R | undefined;
1019
+ }
1020
+
1021
+ export { TAILWIND_COMPONENTS_SIZE, TAILWIND_DATETIME_LANGUAGE, TAILWIND_HERO_ICON_NAMES, TAILWIND_ICON_SIZE, TAILWIND_MODAL_DATA, TailwindAccordion, TailwindAccordionItem, TailwindAlert, TailwindBadge, TailwindBreadcrumb, TailwindButton, TailwindCard, TailwindCheckbox, TailwindDatePicker, TailwindDateTimePicker, TailwindDivider, TailwindDrawer, TailwindIcon, TailwindInput, TailwindMenu, TailwindMessage, TailwindMeter, TailwindModal, TailwindModalContent, TailwindModalFooter, TailwindModalRef, TailwindModalService, TailwindModalTitle, TailwindNotification, TailwindPagination, TailwindProgressBar, TailwindRadioGroup, TailwindSelect, TailwindSkeleton, TailwindSlider, TailwindSpinner, TailwindStep, TailwindStepper, TailwindTab, TailwindTabGroup, TailwindTable, TailwindTag, TailwindTimePicker, TailwindToast, TailwindToastService, TailwindToggle, TailwindToolbar, TailwindTooltip, TailwindTooltipDirective };
1022
+ export type { Pagination, TailwindBreadcrumbItem, TailwindButtonKind, TailwindColor, TailwindHeroIcon, TailwindIconSize, TailwindMenuItem, TailwindMeterSegment, TailwindModalConfig, TailwindOption, TailwindOptionGroup, TailwindPosition, TailwindSeverity, TailwindShape, TailwindSize, TailwindSliderValue, TailwindTableColumn, TailwindToastConfig, TailwindToastItem };