angular-tailwind-components 1.3.1 → 1.5.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 (1504) hide show
  1. package/README.md +117 -11
  2. package/fesm2022/angular-tailwind-components.mjs +591 -1377
  3. package/fesm2022/angular-tailwind-components.mjs.map +1 -1
  4. package/package.json +1 -1
  5. package/styles/tailwind.css +95 -67
  6. package/tailwind-icons/academic-cap.svg +5 -0
  7. package/tailwind-icons/adjustments-horizontal.svg +5 -0
  8. package/tailwind-icons/adjustments-vertical.svg +5 -0
  9. package/tailwind-icons/archive-box-arrow-down.svg +5 -0
  10. package/tailwind-icons/archive-box-x-mark.svg +5 -0
  11. package/tailwind-icons/archive-box.svg +5 -0
  12. package/tailwind-icons/arrow-down-circle.svg +5 -0
  13. package/tailwind-icons/arrow-down-left.svg +5 -0
  14. package/tailwind-icons/arrow-down-on-square-stack.svg +5 -0
  15. package/tailwind-icons/arrow-down-on-square.svg +5 -0
  16. package/tailwind-icons/arrow-down-right.svg +5 -0
  17. package/tailwind-icons/arrow-down-tray.svg +5 -0
  18. package/tailwind-icons/arrow-down.svg +2 -1
  19. package/tailwind-icons/arrow-left-circle.svg +5 -0
  20. package/tailwind-icons/arrow-left-end-on-rectangle.svg +5 -0
  21. package/tailwind-icons/arrow-left-on-rectangle.svg +5 -0
  22. package/tailwind-icons/arrow-left-start-on-rectangle.svg +5 -0
  23. package/tailwind-icons/arrow-left.svg +2 -1
  24. package/tailwind-icons/arrow-long-down.svg +5 -0
  25. package/tailwind-icons/arrow-long-left.svg +5 -0
  26. package/tailwind-icons/arrow-long-right.svg +5 -0
  27. package/tailwind-icons/arrow-long-up.svg +5 -0
  28. package/tailwind-icons/arrow-path-rounded-square.svg +5 -0
  29. package/tailwind-icons/arrow-path.svg +5 -0
  30. package/tailwind-icons/arrow-right-circle.svg +5 -0
  31. package/tailwind-icons/arrow-right-end-on-rectangle.svg +5 -0
  32. package/tailwind-icons/arrow-right-on-rectangle.svg +5 -0
  33. package/tailwind-icons/arrow-right-start-on-rectangle.svg +5 -0
  34. package/tailwind-icons/arrow-right.svg +2 -1
  35. package/tailwind-icons/arrow-small-down.svg +5 -0
  36. package/tailwind-icons/arrow-small-left.svg +5 -0
  37. package/tailwind-icons/arrow-small-right.svg +5 -0
  38. package/tailwind-icons/arrow-small-up.svg +5 -0
  39. package/tailwind-icons/arrow-top-right-on-square.svg +5 -0
  40. package/tailwind-icons/arrow-trending-down.svg +5 -0
  41. package/tailwind-icons/arrow-trending-up.svg +5 -0
  42. package/tailwind-icons/arrow-turn-down-left.svg +5 -0
  43. package/tailwind-icons/arrow-turn-down-right.svg +5 -0
  44. package/tailwind-icons/arrow-turn-left-down.svg +5 -0
  45. package/tailwind-icons/arrow-turn-left-up.svg +5 -0
  46. package/tailwind-icons/arrow-turn-right-down.svg +5 -0
  47. package/tailwind-icons/arrow-turn-right-up.svg +5 -0
  48. package/tailwind-icons/arrow-turn-up-left.svg +5 -0
  49. package/tailwind-icons/arrow-turn-up-right.svg +5 -0
  50. package/tailwind-icons/arrow-up-circle.svg +5 -0
  51. package/tailwind-icons/arrow-up-left.svg +5 -0
  52. package/tailwind-icons/arrow-up-on-square-stack.svg +5 -0
  53. package/tailwind-icons/arrow-up-on-square.svg +5 -0
  54. package/tailwind-icons/arrow-up-right.svg +5 -0
  55. package/tailwind-icons/arrow-up-tray.svg +5 -0
  56. package/tailwind-icons/arrow-up.svg +2 -1
  57. package/tailwind-icons/arrow-uturn-down.svg +5 -0
  58. package/tailwind-icons/arrow-uturn-left.svg +5 -0
  59. package/tailwind-icons/arrow-uturn-right.svg +5 -0
  60. package/tailwind-icons/arrow-uturn-up.svg +5 -0
  61. package/tailwind-icons/arrows-pointing-in.svg +5 -0
  62. package/tailwind-icons/arrows-pointing-out.svg +5 -0
  63. package/tailwind-icons/arrows-right-left.svg +5 -0
  64. package/tailwind-icons/arrows-up-down.svg +5 -0
  65. package/tailwind-icons/at-symbol.svg +5 -0
  66. package/tailwind-icons/backspace.svg +2 -1
  67. package/tailwind-icons/backward.svg +5 -0
  68. package/tailwind-icons/banknotes.svg +5 -0
  69. package/tailwind-icons/bars-2.svg +5 -0
  70. package/tailwind-icons/bars-3-bottom-left.svg +5 -0
  71. package/tailwind-icons/bars-3-bottom-right.svg +5 -0
  72. package/tailwind-icons/bars-3-center-left.svg +5 -0
  73. package/tailwind-icons/bars-3.svg +5 -0
  74. package/tailwind-icons/bars-4.svg +5 -0
  75. package/tailwind-icons/bars-arrow-down.svg +5 -0
  76. package/tailwind-icons/bars-arrow-up.svg +5 -0
  77. package/tailwind-icons/battery-0.svg +5 -0
  78. package/tailwind-icons/battery-100.svg +5 -0
  79. package/tailwind-icons/battery-50.svg +5 -0
  80. package/tailwind-icons/beaker.svg +5 -0
  81. package/tailwind-icons/bell-alert.svg +5 -0
  82. package/tailwind-icons/bell-slash.svg +5 -0
  83. package/tailwind-icons/bell-snooze.svg +5 -0
  84. package/tailwind-icons/bell.svg +2 -1
  85. package/tailwind-icons/bold.svg +5 -0
  86. package/tailwind-icons/bolt-slash.svg +5 -0
  87. package/tailwind-icons/bolt.svg +2 -1
  88. package/tailwind-icons/book-open.svg +5 -0
  89. package/tailwind-icons/bookmark-slash.svg +5 -0
  90. package/tailwind-icons/bookmark-square.svg +2 -1
  91. package/tailwind-icons/bookmark.svg +2 -1
  92. package/tailwind-icons/briefcase.svg +5 -0
  93. package/tailwind-icons/bug-ant.svg +5 -0
  94. package/tailwind-icons/building-library.svg +5 -0
  95. package/tailwind-icons/building-office-2.svg +5 -0
  96. package/tailwind-icons/building-office.svg +5 -0
  97. package/tailwind-icons/building-storefront.svg +5 -0
  98. package/tailwind-icons/cake.svg +5 -0
  99. package/tailwind-icons/calculator.svg +2 -1
  100. package/tailwind-icons/calendar-date-range.svg +5 -0
  101. package/tailwind-icons/calendar-days.svg +5 -0
  102. package/tailwind-icons/calendar.svg +2 -1
  103. package/tailwind-icons/camera.svg +2 -1
  104. package/tailwind-icons/chart-bar-square.svg +5 -0
  105. package/tailwind-icons/chart-bar.svg +5 -0
  106. package/tailwind-icons/chart-pie.svg +5 -0
  107. package/tailwind-icons/chat-bubble-bottom-center-text.svg +5 -0
  108. package/tailwind-icons/chat-bubble-bottom-center.svg +5 -0
  109. package/tailwind-icons/chat-bubble-left-ellipsis.svg +5 -0
  110. package/tailwind-icons/chat-bubble-left-right.svg +5 -0
  111. package/tailwind-icons/chat-bubble-left.svg +5 -0
  112. package/tailwind-icons/chat-bubble-oval-left-ellipsis.svg +5 -0
  113. package/tailwind-icons/chat-bubble-oval-left.svg +5 -0
  114. package/tailwind-icons/check-badge.svg +5 -0
  115. package/tailwind-icons/check-circle.svg +2 -1
  116. package/tailwind-icons/check.svg +5 -0
  117. package/tailwind-icons/chevron-double-down.svg +5 -0
  118. package/tailwind-icons/chevron-double-left.svg +5 -0
  119. package/tailwind-icons/chevron-double-right.svg +5 -0
  120. package/tailwind-icons/chevron-double-up.svg +5 -0
  121. package/tailwind-icons/chevron-down.svg +5 -0
  122. package/tailwind-icons/chevron-left.svg +5 -0
  123. package/tailwind-icons/chevron-right.svg +5 -0
  124. package/tailwind-icons/chevron-up-down.svg +5 -0
  125. package/tailwind-icons/chevron-up.svg +5 -0
  126. package/tailwind-icons/circle-stack.svg +5 -0
  127. package/tailwind-icons/clipboard-document-check.svg +5 -0
  128. package/tailwind-icons/clipboard-document-list.svg +5 -0
  129. package/tailwind-icons/clipboard-document.svg +5 -0
  130. package/tailwind-icons/clipboard.svg +2 -1
  131. package/tailwind-icons/clock.svg +5 -0
  132. package/tailwind-icons/cloud-arrow-down.svg +5 -0
  133. package/tailwind-icons/cloud-arrow-up.svg +5 -0
  134. package/tailwind-icons/cloud.svg +2 -1
  135. package/tailwind-icons/code-bracket-square.svg +5 -0
  136. package/tailwind-icons/code-bracket.svg +5 -0
  137. package/tailwind-icons/cog-6-tooth.svg +5 -0
  138. package/tailwind-icons/cog-8-tooth.svg +5 -0
  139. package/tailwind-icons/cog.svg +5 -0
  140. package/tailwind-icons/command-line.svg +5 -0
  141. package/tailwind-icons/computer-desktop.svg +5 -0
  142. package/tailwind-icons/cpu-chip.svg +5 -0
  143. package/tailwind-icons/credit-card.svg +5 -0
  144. package/tailwind-icons/cube-transparent.svg +5 -0
  145. package/tailwind-icons/cube.svg +5 -0
  146. package/tailwind-icons/currency-bangladeshi.svg +5 -0
  147. package/tailwind-icons/currency-dollar.svg +5 -0
  148. package/tailwind-icons/currency-euro.svg +5 -0
  149. package/tailwind-icons/currency-pound.svg +5 -0
  150. package/tailwind-icons/currency-rupee.svg +5 -0
  151. package/tailwind-icons/currency-yen.svg +5 -0
  152. package/tailwind-icons/cursor-arrow-rays.svg +5 -0
  153. package/tailwind-icons/cursor-arrow-ripple.svg +5 -0
  154. package/tailwind-icons/device-phone-mobile.svg +5 -0
  155. package/tailwind-icons/device-tablet.svg +5 -0
  156. package/tailwind-icons/divide.svg +5 -0
  157. package/tailwind-icons/document-arrow-down.svg +5 -0
  158. package/tailwind-icons/document-arrow-up.svg +5 -0
  159. package/tailwind-icons/document-chart-bar.svg +5 -0
  160. package/tailwind-icons/document-check.svg +5 -0
  161. package/tailwind-icons/document-currency-bangladeshi.svg +5 -0
  162. package/tailwind-icons/document-currency-dollar.svg +5 -0
  163. package/tailwind-icons/document-currency-euro.svg +5 -0
  164. package/tailwind-icons/document-currency-pound.svg +5 -0
  165. package/tailwind-icons/document-currency-rupee.svg +5 -0
  166. package/tailwind-icons/document-currency-yen.svg +5 -0
  167. package/tailwind-icons/document-duplicate.svg +5 -0
  168. package/tailwind-icons/document-magnifying-glass.svg +5 -0
  169. package/tailwind-icons/document-minus.svg +5 -0
  170. package/tailwind-icons/document-plus.svg +5 -0
  171. package/tailwind-icons/document-text.svg +2 -1
  172. package/tailwind-icons/document.svg +2 -1
  173. package/tailwind-icons/ellipsis-horizontal-circle.svg +5 -0
  174. package/tailwind-icons/ellipsis-horizontal.svg +5 -0
  175. package/tailwind-icons/ellipsis-vertical.svg +5 -0
  176. package/tailwind-icons/envelope-open.svg +5 -0
  177. package/tailwind-icons/envelope.svg +5 -0
  178. package/tailwind-icons/equals.svg +5 -0
  179. package/tailwind-icons/exclamation-circle.svg +5 -0
  180. package/tailwind-icons/exclamation-triangle.svg +5 -0
  181. package/tailwind-icons/eye-dropper.svg +5 -0
  182. package/tailwind-icons/eye-slash.svg +5 -0
  183. package/tailwind-icons/eye.svg +2 -1
  184. package/tailwind-icons/face-frown.svg +5 -0
  185. package/tailwind-icons/face-smile.svg +5 -0
  186. package/tailwind-icons/film.svg +5 -0
  187. package/tailwind-icons/finger-print.svg +5 -0
  188. package/tailwind-icons/fire.svg +2 -1
  189. package/tailwind-icons/flag.svg +2 -1
  190. package/tailwind-icons/folder-arrow-down.svg +5 -0
  191. package/tailwind-icons/folder-minus.svg +5 -0
  192. package/tailwind-icons/folder-open.svg +2 -1
  193. package/tailwind-icons/folder-plus.svg +5 -0
  194. package/tailwind-icons/folder.svg +2 -1
  195. package/tailwind-icons/forward.svg +2 -1
  196. package/tailwind-icons/funnel.svg +5 -0
  197. package/tailwind-icons/gif.svg +5 -0
  198. package/tailwind-icons/gift-top.svg +5 -0
  199. package/tailwind-icons/gift.svg +2 -1
  200. package/tailwind-icons/globe-alt.svg +5 -0
  201. package/tailwind-icons/globe-americas.svg +5 -0
  202. package/tailwind-icons/globe-asia-australia.svg +5 -0
  203. package/tailwind-icons/globe-europe-africa.svg +5 -0
  204. package/tailwind-icons/h1.svg +5 -0
  205. package/tailwind-icons/h2.svg +5 -0
  206. package/tailwind-icons/h3.svg +5 -0
  207. package/tailwind-icons/hand-raised.svg +5 -0
  208. package/tailwind-icons/hand-thumb-down.svg +5 -0
  209. package/tailwind-icons/hand-thumb-up.svg +5 -0
  210. package/tailwind-icons/hashtag.svg +2 -1
  211. package/tailwind-icons/heart.svg +2 -1
  212. package/tailwind-icons/home-modern.svg +5 -0
  213. package/tailwind-icons/home.svg +2 -1
  214. package/tailwind-icons/identification.svg +5 -0
  215. package/tailwind-icons/inbox-arrow-down.svg +5 -0
  216. package/tailwind-icons/inbox-stack.svg +5 -0
  217. package/tailwind-icons/inbox.svg +2 -1
  218. package/tailwind-icons/information-circle.svg +5 -0
  219. package/tailwind-icons/italic.svg +5 -0
  220. package/tailwind-icons/key.svg +2 -1
  221. package/tailwind-icons/language.svg +5 -0
  222. package/tailwind-icons/lifebuoy.svg +5 -0
  223. package/tailwind-icons/light-bulb.svg +5 -0
  224. package/tailwind-icons/link-slash.svg +5 -0
  225. package/tailwind-icons/link.svg +2 -1
  226. package/tailwind-icons/list-bullet.svg +5 -0
  227. package/tailwind-icons/lock-closed.svg +5 -0
  228. package/tailwind-icons/lock-open.svg +5 -0
  229. package/tailwind-icons/magnifying-glass-circle.svg +5 -0
  230. package/tailwind-icons/magnifying-glass-minus.svg +5 -0
  231. package/tailwind-icons/magnifying-glass-plus.svg +5 -0
  232. package/tailwind-icons/magnifying-glass.svg +5 -0
  233. package/tailwind-icons/map-pin.svg +5 -0
  234. package/tailwind-icons/map.svg +2 -1
  235. package/tailwind-icons/megaphone.svg +5 -0
  236. package/tailwind-icons/microphone.svg +2 -1
  237. package/tailwind-icons/minus-circle.svg +2 -1
  238. package/tailwind-icons/minus-small.svg +5 -0
  239. package/tailwind-icons/minus.svg +5 -0
  240. package/tailwind-icons/moon.svg +2 -1
  241. package/tailwind-icons/musical-note.svg +5 -0
  242. package/tailwind-icons/newspaper.svg +5 -0
  243. package/tailwind-icons/no-symbol.svg +5 -0
  244. package/tailwind-icons/numbered-list.svg +5 -0
  245. package/tailwind-icons/paint-brush.svg +5 -0
  246. package/tailwind-icons/paper-airplane.svg +5 -0
  247. package/tailwind-icons/paper-clip.svg +5 -0
  248. package/tailwind-icons/pause-circle.svg +2 -1
  249. package/tailwind-icons/pause.svg +2 -1
  250. package/tailwind-icons/pencil-square.svg +5 -0
  251. package/tailwind-icons/pencil.svg +5 -0
  252. package/tailwind-icons/percent-badge.svg +5 -0
  253. package/tailwind-icons/phone-arrow-down-left.svg +5 -0
  254. package/tailwind-icons/phone-arrow-up-right.svg +5 -0
  255. package/tailwind-icons/phone-x-mark.svg +5 -0
  256. package/tailwind-icons/phone.svg +2 -1
  257. package/tailwind-icons/photo.svg +5 -0
  258. package/tailwind-icons/play-circle.svg +2 -1
  259. package/tailwind-icons/play-pause.svg +5 -0
  260. package/tailwind-icons/play.svg +2 -1
  261. package/tailwind-icons/plus-circle.svg +5 -0
  262. package/tailwind-icons/plus-small.svg +5 -0
  263. package/tailwind-icons/plus.svg +5 -0
  264. package/tailwind-icons/power.svg +2 -1
  265. package/tailwind-icons/presentation-chart-bar.svg +5 -0
  266. package/tailwind-icons/presentation-chart-line.svg +5 -0
  267. package/tailwind-icons/printer.svg +2 -1
  268. package/tailwind-icons/puzzle-piece.svg +5 -0
  269. package/tailwind-icons/qr-code.svg +2 -1
  270. package/tailwind-icons/question-mark-circle.svg +5 -0
  271. package/tailwind-icons/queue-list.svg +5 -0
  272. package/tailwind-icons/radio.svg +2 -1
  273. package/tailwind-icons/receipt-percent.svg +5 -0
  274. package/tailwind-icons/receipt-refund.svg +5 -0
  275. package/tailwind-icons/rectangle-group.svg +5 -0
  276. package/tailwind-icons/rectangle-stack.svg +5 -0
  277. package/tailwind-icons/rocket-launch.svg +5 -0
  278. package/tailwind-icons/rss.svg +5 -0
  279. package/tailwind-icons/scale.svg +2 -1
  280. package/tailwind-icons/scissors.svg +2 -1
  281. package/tailwind-icons/server-stack.svg +5 -0
  282. package/tailwind-icons/server.svg +2 -1
  283. package/tailwind-icons/share.svg +2 -1
  284. package/tailwind-icons/shield-check.svg +2 -1
  285. package/tailwind-icons/shield-exclamation.svg +5 -0
  286. package/tailwind-icons/shopping-bag.svg +5 -0
  287. package/tailwind-icons/shopping-cart.svg +5 -0
  288. package/tailwind-icons/signal-slash.svg +5 -0
  289. package/tailwind-icons/signal.svg +5 -0
  290. package/tailwind-icons/slash.svg +5 -0
  291. package/tailwind-icons/sparkles.svg +5 -0
  292. package/tailwind-icons/speaker-wave.svg +5 -0
  293. package/tailwind-icons/speaker-x-mark.svg +5 -0
  294. package/tailwind-icons/square-2-stack.svg +5 -0
  295. package/tailwind-icons/square-3-stack-3d.svg +5 -0
  296. package/tailwind-icons/squares-2x2.svg +5 -0
  297. package/tailwind-icons/squares-plus.svg +5 -0
  298. package/tailwind-icons/star.svg +2 -1
  299. package/tailwind-icons/stop-circle.svg +2 -1
  300. package/tailwind-icons/stop.svg +2 -1
  301. package/tailwind-icons/strikethrough.svg +5 -0
  302. package/tailwind-icons/sun.svg +2 -1
  303. package/tailwind-icons/swatch.svg +5 -0
  304. package/tailwind-icons/table-cells.svg +5 -0
  305. package/tailwind-icons/tag.svg +2 -1
  306. package/tailwind-icons/ticket.svg +2 -1
  307. package/tailwind-icons/trash.svg +5 -0
  308. package/tailwind-icons/trophy.svg +5 -0
  309. package/tailwind-icons/truck.svg +5 -0
  310. package/tailwind-icons/tv.svg +2 -1
  311. package/tailwind-icons/underline.svg +5 -0
  312. package/tailwind-icons/user-circle.svg +2 -1
  313. package/tailwind-icons/user-group.svg +5 -0
  314. package/tailwind-icons/user-minus.svg +2 -1
  315. package/tailwind-icons/user-plus.svg +2 -1
  316. package/tailwind-icons/user.svg +2 -1
  317. package/tailwind-icons/users.svg +5 -0
  318. package/tailwind-icons/variable.svg +5 -0
  319. package/tailwind-icons/video-camera-slash.svg +5 -0
  320. package/tailwind-icons/video-camera.svg +5 -0
  321. package/tailwind-icons/view-columns.svg +5 -0
  322. package/tailwind-icons/viewfinder-circle.svg +5 -0
  323. package/tailwind-icons/wallet.svg +2 -1
  324. package/tailwind-icons/wifi.svg +5 -0
  325. package/tailwind-icons/window.svg +5 -0
  326. package/tailwind-icons/wrench-screwdriver.svg +5 -0
  327. package/tailwind-icons/wrench.svg +5 -0
  328. package/tailwind-icons/x-circle.svg +5 -0
  329. package/tailwind-icons/x-mark.svg +5 -0
  330. package/types/angular-tailwind-components.d.ts +103 -24
  331. package/tailwind-icons/4k.svg +0 -4
  332. package/tailwind-icons/accessibility.svg +0 -4
  333. package/tailwind-icons/accumulator.svg +0 -4
  334. package/tailwind-icons/add-circle.svg +0 -4
  335. package/tailwind-icons/add-folder.svg +0 -4
  336. package/tailwind-icons/add-square.svg +0 -4
  337. package/tailwind-icons/adhesive-plaster-2.svg +0 -4
  338. package/tailwind-icons/adhesive-plaster.svg +0 -4
  339. package/tailwind-icons/airbuds-case-charge.svg +0 -4
  340. package/tailwind-icons/airbuds-case-minimalistic.svg +0 -4
  341. package/tailwind-icons/airbuds-case-open.svg +0 -4
  342. package/tailwind-icons/airbuds-case.svg +0 -4
  343. package/tailwind-icons/airbuds-charge.svg +0 -4
  344. package/tailwind-icons/airbuds-check.svg +0 -4
  345. package/tailwind-icons/airbuds-left.svg +0 -4
  346. package/tailwind-icons/airbuds-remove.svg +0 -4
  347. package/tailwind-icons/airbuds-right.svg +0 -4
  348. package/tailwind-icons/airbuds.svg +0 -4
  349. package/tailwind-icons/alarm-add.svg +0 -4
  350. package/tailwind-icons/alarm-pause.svg +0 -4
  351. package/tailwind-icons/alarm-play.svg +0 -4
  352. package/tailwind-icons/alarm-remove.svg +0 -4
  353. package/tailwind-icons/alarm-sleep.svg +0 -4
  354. package/tailwind-icons/alarm-turn-off.svg +0 -4
  355. package/tailwind-icons/alarm.svg +0 -4
  356. package/tailwind-icons/album.svg +0 -4
  357. package/tailwind-icons/align-bottom.svg +0 -4
  358. package/tailwind-icons/align-horizonta-spacing.svg +0 -4
  359. package/tailwind-icons/align-horizontal-center.svg +0 -4
  360. package/tailwind-icons/align-left.svg +0 -4
  361. package/tailwind-icons/align-right.svg +0 -4
  362. package/tailwind-icons/align-top.svg +0 -4
  363. package/tailwind-icons/align-vertical-center.svg +0 -4
  364. package/tailwind-icons/align-vertical-spacing.svg +0 -4
  365. package/tailwind-icons/alt-arrow-down.svg +0 -4
  366. package/tailwind-icons/alt-arrow-left.svg +0 -4
  367. package/tailwind-icons/alt-arrow-right.svg +0 -4
  368. package/tailwind-icons/alt-arrow-up.svg +0 -4
  369. package/tailwind-icons/archive-check.svg +0 -4
  370. package/tailwind-icons/archive-down-minimlistic.svg +0 -4
  371. package/tailwind-icons/archive-down.svg +0 -4
  372. package/tailwind-icons/archive-minimalistic.svg +0 -4
  373. package/tailwind-icons/archive-up-minimlistic.svg +0 -4
  374. package/tailwind-icons/archive-up.svg +0 -4
  375. package/tailwind-icons/archive.svg +0 -4
  376. package/tailwind-icons/armchair-2.svg +0 -4
  377. package/tailwind-icons/armchair.svg +0 -4
  378. package/tailwind-icons/arrow-left-down.svg +0 -4
  379. package/tailwind-icons/arrow-left-up.svg +0 -4
  380. package/tailwind-icons/arrow-right-down.svg +0 -4
  381. package/tailwind-icons/arrow-right-up.svg +0 -4
  382. package/tailwind-icons/arrow-to-down-left.svg +0 -4
  383. package/tailwind-icons/arrow-to-down-right.svg +0 -4
  384. package/tailwind-icons/arrow-to-top-left.svg +0 -4
  385. package/tailwind-icons/arrow-to-top-right.svg +0 -4
  386. package/tailwind-icons/asteroid.svg +0 -4
  387. package/tailwind-icons/atom.svg +0 -4
  388. package/tailwind-icons/augmented-reality.svg +0 -4
  389. package/tailwind-icons/backpack.svg +0 -4
  390. package/tailwind-icons/bacteria.svg +0 -4
  391. package/tailwind-icons/bag-2.svg +0 -4
  392. package/tailwind-icons/bag-3.svg +0 -4
  393. package/tailwind-icons/bag-4.svg +0 -4
  394. package/tailwind-icons/bag-5.svg +0 -4
  395. package/tailwind-icons/bag-check.svg +0 -4
  396. package/tailwind-icons/bag-cross.svg +0 -4
  397. package/tailwind-icons/bag-heart.svg +0 -4
  398. package/tailwind-icons/bag-music-2.svg +0 -4
  399. package/tailwind-icons/bag-music.svg +0 -4
  400. package/tailwind-icons/bag-smile.svg +0 -4
  401. package/tailwind-icons/bag.svg +0 -4
  402. package/tailwind-icons/balloon.svg +0 -4
  403. package/tailwind-icons/balls.svg +0 -4
  404. package/tailwind-icons/banknote-2.svg +0 -4
  405. package/tailwind-icons/banknote.svg +0 -4
  406. package/tailwind-icons/bar-chair.svg +0 -4
  407. package/tailwind-icons/basketball.svg +0 -4
  408. package/tailwind-icons/bath.svg +0 -4
  409. package/tailwind-icons/battery-charge-minimalistic.svg +0 -4
  410. package/tailwind-icons/battery-charge.svg +0 -4
  411. package/tailwind-icons/battery-full-minimalistic.svg +0 -4
  412. package/tailwind-icons/battery-full.svg +0 -4
  413. package/tailwind-icons/battery-half-minimalistic.svg +0 -4
  414. package/tailwind-icons/battery-half.svg +0 -4
  415. package/tailwind-icons/battery-low-minimalistic.svg +0 -4
  416. package/tailwind-icons/battery-low.svg +0 -4
  417. package/tailwind-icons/bed.svg +0 -4
  418. package/tailwind-icons/bedside-table-2.svg +0 -4
  419. package/tailwind-icons/bedside-table-3.svg +0 -4
  420. package/tailwind-icons/bedside-table-4.svg +0 -4
  421. package/tailwind-icons/bedside-table.svg +0 -4
  422. package/tailwind-icons/bell-bing.svg +0 -4
  423. package/tailwind-icons/bell-off.svg +0 -4
  424. package/tailwind-icons/benzene-ring.svg +0 -4
  425. package/tailwind-icons/bicycling-round.svg +0 -4
  426. package/tailwind-icons/bicycling.svg +0 -4
  427. package/tailwind-icons/bill-check.svg +0 -4
  428. package/tailwind-icons/bill-cross.svg +0 -4
  429. package/tailwind-icons/bill-list.svg +0 -4
  430. package/tailwind-icons/bill.svg +0 -4
  431. package/tailwind-icons/black-hole-2.svg +0 -4
  432. package/tailwind-icons/black-hole-3.svg +0 -4
  433. package/tailwind-icons/black-hole.svg +0 -4
  434. package/tailwind-icons/bluetooth-circle.svg +0 -4
  435. package/tailwind-icons/bluetooth-square.svg +0 -4
  436. package/tailwind-icons/bluetooth-wave.svg +0 -4
  437. package/tailwind-icons/bluetooth.svg +0 -4
  438. package/tailwind-icons/body-shape-minimalistic.svg +0 -4
  439. package/tailwind-icons/body-shape.svg +0 -4
  440. package/tailwind-icons/body.svg +0 -4
  441. package/tailwind-icons/bolt-circle.svg +0 -4
  442. package/tailwind-icons/bomb-emoji.svg +0 -4
  443. package/tailwind-icons/bomb-minimalistic.svg +0 -4
  444. package/tailwind-icons/bomb.svg +0 -4
  445. package/tailwind-icons/bone-broken.svg +0 -4
  446. package/tailwind-icons/bone-crack.svg +0 -4
  447. package/tailwind-icons/bone.svg +0 -4
  448. package/tailwind-icons/bones.svg +0 -4
  449. package/tailwind-icons/bonfire.svg +0 -4
  450. package/tailwind-icons/book-2.svg +0 -4
  451. package/tailwind-icons/book-bookmark-minimalistic.svg +0 -4
  452. package/tailwind-icons/book-bookmark.svg +0 -4
  453. package/tailwind-icons/book-minimalistic.svg +0 -4
  454. package/tailwind-icons/book.svg +0 -4
  455. package/tailwind-icons/bookmark-circle.svg +0 -4
  456. package/tailwind-icons/bookmark-opened.svg +0 -4
  457. package/tailwind-icons/bookmark-square-minimalistic.svg +0 -4
  458. package/tailwind-icons/boombox.svg +0 -4
  459. package/tailwind-icons/bottle.svg +0 -4
  460. package/tailwind-icons/bowling.svg +0 -4
  461. package/tailwind-icons/box-minimalistic.svg +0 -4
  462. package/tailwind-icons/box.svg +0 -4
  463. package/tailwind-icons/branching-paths-down.svg +0 -4
  464. package/tailwind-icons/branching-paths-up.svg +0 -4
  465. package/tailwind-icons/broom.svg +0 -4
  466. package/tailwind-icons/bug-minimalistic.svg +0 -4
  467. package/tailwind-icons/bug.svg +0 -4
  468. package/tailwind-icons/buildings-2.svg +0 -4
  469. package/tailwind-icons/buildings-3.svg +0 -4
  470. package/tailwind-icons/buildings.svg +0 -4
  471. package/tailwind-icons/bus.svg +0 -4
  472. package/tailwind-icons/calculator-minimalistic.svg +0 -4
  473. package/tailwind-icons/calendar-add.svg +0 -4
  474. package/tailwind-icons/calendar-date.svg +0 -4
  475. package/tailwind-icons/calendar-mark.svg +0 -4
  476. package/tailwind-icons/calendar-minimalistic.svg +0 -4
  477. package/tailwind-icons/calendar-search.svg +0 -4
  478. package/tailwind-icons/call-cancel-rounded.svg +0 -4
  479. package/tailwind-icons/call-cancel.svg +0 -4
  480. package/tailwind-icons/call-chat-rounded.svg +0 -4
  481. package/tailwind-icons/call-chat.svg +0 -4
  482. package/tailwind-icons/call-dropped-rounded.svg +0 -4
  483. package/tailwind-icons/call-dropped.svg +0 -4
  484. package/tailwind-icons/call-medicine-rounded.svg +0 -4
  485. package/tailwind-icons/call-medicine.svg +0 -4
  486. package/tailwind-icons/camera-add.svg +0 -4
  487. package/tailwind-icons/camera-minimalistic.svg +0 -4
  488. package/tailwind-icons/camera-rotate.svg +0 -4
  489. package/tailwind-icons/camera-square.svg +0 -4
  490. package/tailwind-icons/card-2.svg +0 -4
  491. package/tailwind-icons/card-recive.svg +0 -4
  492. package/tailwind-icons/card-search.svg +0 -4
  493. package/tailwind-icons/card-send.svg +0 -4
  494. package/tailwind-icons/card-transfer.svg +0 -4
  495. package/tailwind-icons/card.svg +0 -4
  496. package/tailwind-icons/cardholder.svg +0 -4
  497. package/tailwind-icons/cart-2.svg +0 -4
  498. package/tailwind-icons/cart-3.svg +0 -4
  499. package/tailwind-icons/cart-4.svg +0 -4
  500. package/tailwind-icons/cart-5.svg +0 -4
  501. package/tailwind-icons/cart-check.svg +0 -4
  502. package/tailwind-icons/cart-cross.svg +0 -4
  503. package/tailwind-icons/cart-large-2.svg +0 -4
  504. package/tailwind-icons/cart-large-3.svg +0 -4
  505. package/tailwind-icons/cart-large-4.svg +0 -4
  506. package/tailwind-icons/cart-large-minimalistic.svg +0 -4
  507. package/tailwind-icons/cart-large.svg +0 -4
  508. package/tailwind-icons/cart-plus.svg +0 -4
  509. package/tailwind-icons/cart.svg +0 -4
  510. package/tailwind-icons/case-minimalistic.svg +0 -4
  511. package/tailwind-icons/case-round-minimalistic.svg +0 -4
  512. package/tailwind-icons/case-round.svg +0 -4
  513. package/tailwind-icons/case.svg +0 -4
  514. package/tailwind-icons/cash-out.svg +0 -4
  515. package/tailwind-icons/cassette-2.svg +0 -4
  516. package/tailwind-icons/cassette.svg +0 -4
  517. package/tailwind-icons/cat.svg +0 -4
  518. package/tailwind-icons/chair-2.svg +0 -4
  519. package/tailwind-icons/chair.svg +0 -4
  520. package/tailwind-icons/chandelier.svg +0 -4
  521. package/tailwind-icons/chart-2.svg +0 -4
  522. package/tailwind-icons/chart-square.svg +0 -4
  523. package/tailwind-icons/chart.svg +0 -4
  524. package/tailwind-icons/chat-dots.svg +0 -4
  525. package/tailwind-icons/chat-line.svg +0 -4
  526. package/tailwind-icons/chat-round-call.svg +0 -4
  527. package/tailwind-icons/chat-round-check.svg +0 -4
  528. package/tailwind-icons/chat-round-dots.svg +0 -4
  529. package/tailwind-icons/chat-round-like.svg +0 -4
  530. package/tailwind-icons/chat-round-line.svg +0 -4
  531. package/tailwind-icons/chat-round-money.svg +0 -4
  532. package/tailwind-icons/chat-round-unread.svg +0 -4
  533. package/tailwind-icons/chat-round-video.svg +0 -4
  534. package/tailwind-icons/chat-round.svg +0 -4
  535. package/tailwind-icons/chat-square-2.svg +0 -4
  536. package/tailwind-icons/chat-square-arrow.svg +0 -4
  537. package/tailwind-icons/chat-square-call.svg +0 -4
  538. package/tailwind-icons/chat-square-check.svg +0 -4
  539. package/tailwind-icons/chat-square-code.svg +0 -4
  540. package/tailwind-icons/chat-square-like.svg +0 -4
  541. package/tailwind-icons/chat-square.svg +0 -4
  542. package/tailwind-icons/chat-unread.svg +0 -4
  543. package/tailwind-icons/check-read.svg +0 -4
  544. package/tailwind-icons/check-square.svg +0 -4
  545. package/tailwind-icons/checklist-minimalistic.svg +0 -4
  546. package/tailwind-icons/checklist.svg +0 -4
  547. package/tailwind-icons/chef-hat-heart.svg +0 -4
  548. package/tailwind-icons/chef-hat-minimalistic.svg +0 -4
  549. package/tailwind-icons/chef-hat.svg +0 -4
  550. package/tailwind-icons/circle-bottom-down.svg +0 -4
  551. package/tailwind-icons/circle-bottom-up.svg +0 -4
  552. package/tailwind-icons/circle-top-down.svg +0 -4
  553. package/tailwind-icons/circle-top-up.svg +0 -4
  554. package/tailwind-icons/city.svg +0 -4
  555. package/tailwind-icons/clapperboard-edit.svg +0 -4
  556. package/tailwind-icons/clapperboard-open-play.svg +0 -4
  557. package/tailwind-icons/clapperboard-open.svg +0 -4
  558. package/tailwind-icons/clapperboard-play.svg +0 -4
  559. package/tailwind-icons/clapperboard-text.svg +0 -4
  560. package/tailwind-icons/clapperboard.svg +0 -4
  561. package/tailwind-icons/clipboard-add.svg +0 -4
  562. package/tailwind-icons/clipboard-check.svg +0 -4
  563. package/tailwind-icons/clipboard-heart.svg +0 -4
  564. package/tailwind-icons/clipboard-list.svg +0 -4
  565. package/tailwind-icons/clipboard-remove.svg +0 -4
  566. package/tailwind-icons/clipboard-text.svg +0 -4
  567. package/tailwind-icons/clock-circle.svg +0 -4
  568. package/tailwind-icons/clock-square.svg +0 -4
  569. package/tailwind-icons/close-circle.svg +0 -4
  570. package/tailwind-icons/close-square.svg +0 -4
  571. package/tailwind-icons/closet-2.svg +0 -4
  572. package/tailwind-icons/closet.svg +0 -4
  573. package/tailwind-icons/cloud-bolt-minimalistic.svg +0 -4
  574. package/tailwind-icons/cloud-bolt.svg +0 -4
  575. package/tailwind-icons/cloud-check.svg +0 -4
  576. package/tailwind-icons/cloud-cross.svg +0 -4
  577. package/tailwind-icons/cloud-download.svg +0 -4
  578. package/tailwind-icons/cloud-file.svg +0 -4
  579. package/tailwind-icons/cloud-minus.svg +0 -4
  580. package/tailwind-icons/cloud-plus.svg +0 -4
  581. package/tailwind-icons/cloud-rain.svg +0 -4
  582. package/tailwind-icons/cloud-snowfall-minimalistic.svg +0 -4
  583. package/tailwind-icons/cloud-snowfall.svg +0 -4
  584. package/tailwind-icons/cloud-storage.svg +0 -4
  585. package/tailwind-icons/cloud-storm.svg +0 -4
  586. package/tailwind-icons/cloud-sun-2.svg +0 -4
  587. package/tailwind-icons/cloud-sun.svg +0 -4
  588. package/tailwind-icons/cloud-upload.svg +0 -4
  589. package/tailwind-icons/cloud-waterdrop.svg +0 -4
  590. package/tailwind-icons/cloud-waterdrops.svg +0 -4
  591. package/tailwind-icons/clouds.svg +0 -4
  592. package/tailwind-icons/cloudy-moon.svg +0 -4
  593. package/tailwind-icons/code-2.svg +0 -4
  594. package/tailwind-icons/code-circle.svg +0 -4
  595. package/tailwind-icons/code-file.svg +0 -4
  596. package/tailwind-icons/code-scan.svg +0 -4
  597. package/tailwind-icons/code-square.svg +0 -4
  598. package/tailwind-icons/code.svg +0 -4
  599. package/tailwind-icons/colour-tuneing.svg +0 -4
  600. package/tailwind-icons/command.svg +0 -4
  601. package/tailwind-icons/compass-big.svg +0 -4
  602. package/tailwind-icons/compass-square.svg +0 -4
  603. package/tailwind-icons/compass.svg +0 -4
  604. package/tailwind-icons/condicioner-2.svg +0 -4
  605. package/tailwind-icons/condicioner.svg +0 -4
  606. package/tailwind-icons/confetti-minimalistic.svg +0 -4
  607. package/tailwind-icons/confetti.svg +0 -4
  608. package/tailwind-icons/confounded-circle.svg +0 -4
  609. package/tailwind-icons/confounded-square.svg +0 -4
  610. package/tailwind-icons/copy.svg +0 -4
  611. package/tailwind-icons/copyright.svg +0 -4
  612. package/tailwind-icons/corkscrew.svg +0 -4
  613. package/tailwind-icons/cosmetic.svg +0 -4
  614. package/tailwind-icons/course-down.svg +0 -4
  615. package/tailwind-icons/course-up.svg +0 -4
  616. package/tailwind-icons/cpu-bolt.svg +0 -4
  617. package/tailwind-icons/cpu.svg +0 -4
  618. package/tailwind-icons/creative-commons.svg +0 -4
  619. package/tailwind-icons/crop-minimalistic.svg +0 -4
  620. package/tailwind-icons/crop.svg +0 -4
  621. package/tailwind-icons/crown-line.svg +0 -4
  622. package/tailwind-icons/crown-minimalistic.svg +0 -4
  623. package/tailwind-icons/crown-star.svg +0 -4
  624. package/tailwind-icons/crown.svg +0 -4
  625. package/tailwind-icons/cup-first.svg +0 -4
  626. package/tailwind-icons/cup-hot.svg +0 -4
  627. package/tailwind-icons/cup-music.svg +0 -4
  628. package/tailwind-icons/cup-paper.svg +0 -4
  629. package/tailwind-icons/cup-star.svg +0 -4
  630. package/tailwind-icons/cup.svg +0 -4
  631. package/tailwind-icons/cursor-square.svg +0 -4
  632. package/tailwind-icons/cursor.svg +0 -4
  633. package/tailwind-icons/danger-circle.svg +0 -4
  634. package/tailwind-icons/danger-square.svg +0 -4
  635. package/tailwind-icons/danger-triangle.svg +0 -4
  636. package/tailwind-icons/danger.svg +0 -4
  637. package/tailwind-icons/database.svg +0 -4
  638. package/tailwind-icons/delivery.svg +0 -4
  639. package/tailwind-icons/devices.svg +0 -4
  640. package/tailwind-icons/diagram-down.svg +0 -4
  641. package/tailwind-icons/diagram-up.svg +0 -4
  642. package/tailwind-icons/dialog-2.svg +0 -4
  643. package/tailwind-icons/dialog.svg +0 -4
  644. package/tailwind-icons/diploma-verified.svg +0 -4
  645. package/tailwind-icons/diploma.svg +0 -4
  646. package/tailwind-icons/diskette.svg +0 -4
  647. package/tailwind-icons/dislike.svg +0 -4
  648. package/tailwind-icons/display.svg +0 -4
  649. package/tailwind-icons/dna.svg +0 -4
  650. package/tailwind-icons/document-add.svg +0 -4
  651. package/tailwind-icons/document-medicine.svg +0 -4
  652. package/tailwind-icons/documents-minimalistic.svg +0 -4
  653. package/tailwind-icons/documents.svg +0 -4
  654. package/tailwind-icons/dollar-minimalistic.svg +0 -4
  655. package/tailwind-icons/dollar.svg +0 -4
  656. package/tailwind-icons/donut-bitten.svg +0 -4
  657. package/tailwind-icons/donut.svg +0 -4
  658. package/tailwind-icons/double-alt-arrow-down.svg +0 -4
  659. package/tailwind-icons/double-alt-arrow-left.svg +0 -4
  660. package/tailwind-icons/double-alt-arrow-right.svg +0 -4
  661. package/tailwind-icons/double-alt-arrow-up.svg +0 -4
  662. package/tailwind-icons/download-minimalistic.svg +0 -4
  663. package/tailwind-icons/download-square.svg +0 -4
  664. package/tailwind-icons/download-twice-square.svg +0 -4
  665. package/tailwind-icons/download.svg +0 -4
  666. package/tailwind-icons/dropper-2.svg +0 -4
  667. package/tailwind-icons/dropper-3.svg +0 -4
  668. package/tailwind-icons/dropper-minimalistic-2.svg +0 -4
  669. package/tailwind-icons/dropper-minimalistic.svg +0 -4
  670. package/tailwind-icons/dropper.svg +0 -4
  671. package/tailwind-icons/dumbbell-large-minimalistic.svg +0 -4
  672. package/tailwind-icons/dumbbell-large.svg +0 -4
  673. package/tailwind-icons/dumbbell-small.svg +0 -4
  674. package/tailwind-icons/dumbbell.svg +0 -4
  675. package/tailwind-icons/dumbbells-2.svg +0 -4
  676. package/tailwind-icons/dumbbells.svg +0 -4
  677. package/tailwind-icons/earth.svg +0 -4
  678. package/tailwind-icons/electric-refueling.svg +0 -4
  679. package/tailwind-icons/emoji-funny-circle.svg +0 -4
  680. package/tailwind-icons/emoji-funny-square.svg +0 -4
  681. package/tailwind-icons/end-call-rounded.svg +0 -4
  682. package/tailwind-icons/end-call.svg +0 -4
  683. package/tailwind-icons/eraser-circle.svg +0 -4
  684. package/tailwind-icons/eraser-square.svg +0 -4
  685. package/tailwind-icons/eraser.svg +0 -4
  686. package/tailwind-icons/euro.svg +0 -4
  687. package/tailwind-icons/exit.svg +0 -4
  688. package/tailwind-icons/explicit.svg +0 -4
  689. package/tailwind-icons/export.svg +0 -4
  690. package/tailwind-icons/expressionless-circle.svg +0 -4
  691. package/tailwind-icons/expressionless-square.svg +0 -4
  692. package/tailwind-icons/eye-closed.svg +0 -4
  693. package/tailwind-icons/eye-scan.svg +0 -4
  694. package/tailwind-icons/face-scan-circle.svg +0 -4
  695. package/tailwind-icons/face-scan-square.svg +0 -4
  696. package/tailwind-icons/facemask-circle.svg +0 -4
  697. package/tailwind-icons/facemask-square.svg +0 -4
  698. package/tailwind-icons/feed.svg +0 -4
  699. package/tailwind-icons/ferris-wheel.svg +0 -4
  700. package/tailwind-icons/figma-file.svg +0 -4
  701. package/tailwind-icons/figma.svg +0 -4
  702. package/tailwind-icons/file-check.svg +0 -4
  703. package/tailwind-icons/file-corrupted.svg +0 -4
  704. package/tailwind-icons/file-download.svg +0 -4
  705. package/tailwind-icons/file-favourite.svg +0 -4
  706. package/tailwind-icons/file-left.svg +0 -4
  707. package/tailwind-icons/file-remove.svg +0 -4
  708. package/tailwind-icons/file-right.svg +0 -4
  709. package/tailwind-icons/file-send.svg +0 -4
  710. package/tailwind-icons/file-smile.svg +0 -4
  711. package/tailwind-icons/file-text.svg +0 -4
  712. package/tailwind-icons/file.svg +0 -4
  713. package/tailwind-icons/filter.svg +0 -4
  714. package/tailwind-icons/filters.svg +0 -4
  715. package/tailwind-icons/fire-minimalistic.svg +0 -4
  716. package/tailwind-icons/fire-square.svg +0 -4
  717. package/tailwind-icons/flag-2.svg +0 -4
  718. package/tailwind-icons/flame.svg +0 -4
  719. package/tailwind-icons/flash-drive.svg +0 -4
  720. package/tailwind-icons/flashlight-on.svg +0 -4
  721. package/tailwind-icons/flashlight.svg +0 -4
  722. package/tailwind-icons/flip-horizontal.svg +0 -4
  723. package/tailwind-icons/flip-vertical.svg +0 -4
  724. package/tailwind-icons/floor-lamp-minimalistic.svg +0 -4
  725. package/tailwind-icons/floor-lamp.svg +0 -4
  726. package/tailwind-icons/fog.svg +0 -4
  727. package/tailwind-icons/folder-2.svg +0 -4
  728. package/tailwind-icons/folder-check.svg +0 -4
  729. package/tailwind-icons/folder-cloud.svg +0 -4
  730. package/tailwind-icons/folder-error.svg +0 -4
  731. package/tailwind-icons/folder-favourite-bookmark.svg +0 -4
  732. package/tailwind-icons/folder-favourite-star.svg +0 -4
  733. package/tailwind-icons/folder-path-connect.svg +0 -4
  734. package/tailwind-icons/folder-security.svg +0 -4
  735. package/tailwind-icons/folder-with-files.svg +0 -4
  736. package/tailwind-icons/football.svg +0 -4
  737. package/tailwind-icons/forbidden-circle.svg +0 -4
  738. package/tailwind-icons/forbidden.svg +0 -4
  739. package/tailwind-icons/forward-2.svg +0 -4
  740. package/tailwind-icons/fridge.svg +0 -4
  741. package/tailwind-icons/fuel.svg +0 -4
  742. package/tailwind-icons/full-screen-circle.svg +0 -4
  743. package/tailwind-icons/full-screen-square.svg +0 -4
  744. package/tailwind-icons/full-screen.svg +0 -4
  745. package/tailwind-icons/gallery-add.svg +0 -4
  746. package/tailwind-icons/gallery-check.svg +0 -4
  747. package/tailwind-icons/gallery-circle.svg +0 -4
  748. package/tailwind-icons/gallery-download.svg +0 -4
  749. package/tailwind-icons/gallery-edit.svg +0 -4
  750. package/tailwind-icons/gallery-favourite.svg +0 -4
  751. package/tailwind-icons/gallery-minimalistic.svg +0 -4
  752. package/tailwind-icons/gallery-remove.svg +0 -4
  753. package/tailwind-icons/gallery-round.svg +0 -4
  754. package/tailwind-icons/gallery-send.svg +0 -4
  755. package/tailwind-icons/gallery-wide.svg +0 -4
  756. package/tailwind-icons/gallery.svg +0 -4
  757. package/tailwind-icons/gameboy.svg +0 -4
  758. package/tailwind-icons/gamepad-charge.svg +0 -4
  759. package/tailwind-icons/gamepad-minimalistic.svg +0 -4
  760. package/tailwind-icons/gamepad-no-charge.svg +0 -4
  761. package/tailwind-icons/gamepad-old.svg +0 -4
  762. package/tailwind-icons/gamepad.svg +0 -4
  763. package/tailwind-icons/garage.svg +0 -4
  764. package/tailwind-icons/gas-station.svg +0 -4
  765. package/tailwind-icons/ghost-smile.svg +0 -4
  766. package/tailwind-icons/ghost.svg +0 -4
  767. package/tailwind-icons/glasses.svg +0 -4
  768. package/tailwind-icons/global.svg +0 -4
  769. package/tailwind-icons/globus.svg +0 -4
  770. package/tailwind-icons/golf.svg +0 -4
  771. package/tailwind-icons/gps.svg +0 -4
  772. package/tailwind-icons/graph-down-new.svg +0 -4
  773. package/tailwind-icons/graph-down.svg +0 -4
  774. package/tailwind-icons/graph-new-up.svg +0 -4
  775. package/tailwind-icons/graph-new.svg +0 -4
  776. package/tailwind-icons/graph-up.svg +0 -4
  777. package/tailwind-icons/graph.svg +0 -4
  778. package/tailwind-icons/hamburger-menu.svg +0 -4
  779. package/tailwind-icons/hand-heart.svg +0 -4
  780. package/tailwind-icons/hand-money.svg +0 -4
  781. package/tailwind-icons/hand-pills.svg +0 -4
  782. package/tailwind-icons/hand-shake.svg +0 -4
  783. package/tailwind-icons/hand-stars.svg +0 -4
  784. package/tailwind-icons/hanger-2.svg +0 -4
  785. package/tailwind-icons/hanger.svg +0 -4
  786. package/tailwind-icons/hashtag-chat.svg +0 -4
  787. package/tailwind-icons/hashtag-circle.svg +0 -4
  788. package/tailwind-icons/hashtag-square.svg +0 -4
  789. package/tailwind-icons/headphones-round-sound.svg +0 -4
  790. package/tailwind-icons/headphones-round.svg +0 -4
  791. package/tailwind-icons/headphones-square-sound.svg +0 -4
  792. package/tailwind-icons/headphones-square.svg +0 -4
  793. package/tailwind-icons/health.svg +0 -4
  794. package/tailwind-icons/heart-angle.svg +0 -4
  795. package/tailwind-icons/heart-broken.svg +0 -4
  796. package/tailwind-icons/heart-lock.svg +0 -4
  797. package/tailwind-icons/heart-pulse-2.svg +0 -4
  798. package/tailwind-icons/heart-pulse.svg +0 -4
  799. package/tailwind-icons/heart-shine.svg +0 -4
  800. package/tailwind-icons/heart-unlock.svg +0 -4
  801. package/tailwind-icons/hearts.svg +0 -4
  802. package/tailwind-icons/help.svg +0 -4
  803. package/tailwind-icons/high-definition.svg +0 -4
  804. package/tailwind-icons/high-quality.svg +0 -4
  805. package/tailwind-icons/hiking-minimalistic.svg +0 -4
  806. package/tailwind-icons/hiking-round.svg +0 -4
  807. package/tailwind-icons/hiking.svg +0 -4
  808. package/tailwind-icons/history-2.svg +0 -4
  809. package/tailwind-icons/history-3.svg +0 -4
  810. package/tailwind-icons/history.svg +0 -4
  811. package/tailwind-icons/home-2.svg +0 -4
  812. package/tailwind-icons/home-add-angle.svg +0 -4
  813. package/tailwind-icons/home-add.svg +0 -4
  814. package/tailwind-icons/home-angle-2.svg +0 -4
  815. package/tailwind-icons/home-angle.svg +0 -4
  816. package/tailwind-icons/home-smile-angle.svg +0 -4
  817. package/tailwind-icons/home-smile.svg +0 -4
  818. package/tailwind-icons/home-wifi-angle.svg +0 -4
  819. package/tailwind-icons/home-wifi.svg +0 -4
  820. package/tailwind-icons/hospital.svg +0 -4
  821. package/tailwind-icons/hourglass-line.svg +0 -4
  822. package/tailwind-icons/hourglass.svg +0 -4
  823. package/tailwind-icons/import.svg +0 -4
  824. package/tailwind-icons/inbox-archive.svg +0 -4
  825. package/tailwind-icons/inbox-in.svg +0 -4
  826. package/tailwind-icons/inbox-line.svg +0 -4
  827. package/tailwind-icons/inbox-out.svg +0 -4
  828. package/tailwind-icons/inbox-unread.svg +0 -4
  829. package/tailwind-icons/incognito.svg +0 -4
  830. package/tailwind-icons/incoming-call-rounded.svg +0 -4
  831. package/tailwind-icons/incoming-call.svg +0 -4
  832. package/tailwind-icons/infinity.svg +0 -4
  833. package/tailwind-icons/info-circle.svg +0 -4
  834. package/tailwind-icons/info-square.svg +0 -4
  835. package/tailwind-icons/iphone.svg +0 -4
  836. package/tailwind-icons/jar-of-pills-2.svg +0 -4
  837. package/tailwind-icons/jar-of-pills.svg +0 -4
  838. package/tailwind-icons/key-minimalistic-2.svg +0 -4
  839. package/tailwind-icons/key-minimalistic-square-2.svg +0 -4
  840. package/tailwind-icons/key-minimalistic-square-3.svg +0 -4
  841. package/tailwind-icons/key-minimalistic-square.svg +0 -4
  842. package/tailwind-icons/key-minimalistic.svg +0 -4
  843. package/tailwind-icons/key-square-2.svg +0 -4
  844. package/tailwind-icons/key-square.svg +0 -4
  845. package/tailwind-icons/keyboard.svg +0 -4
  846. package/tailwind-icons/kick-scooter.svg +0 -4
  847. package/tailwind-icons/ladle.svg +0 -4
  848. package/tailwind-icons/lamp.svg +0 -4
  849. package/tailwind-icons/laptop-2.svg +0 -4
  850. package/tailwind-icons/laptop-3.svg +0 -4
  851. package/tailwind-icons/laptop-minimalistic.svg +0 -4
  852. package/tailwind-icons/laptop.svg +0 -4
  853. package/tailwind-icons/layers-minimalistic.svg +0 -4
  854. package/tailwind-icons/layers.svg +0 -4
  855. package/tailwind-icons/leaf.svg +0 -4
  856. package/tailwind-icons/letter-opened.svg +0 -4
  857. package/tailwind-icons/letter-unread.svg +0 -4
  858. package/tailwind-icons/letter.svg +0 -4
  859. package/tailwind-icons/library.svg +0 -4
  860. package/tailwind-icons/lightbulb-bolt.svg +0 -4
  861. package/tailwind-icons/lightbulb-minimalistic.svg +0 -4
  862. package/tailwind-icons/lightbulb.svg +0 -4
  863. package/tailwind-icons/lightning.svg +0 -4
  864. package/tailwind-icons/like.svg +0 -4
  865. package/tailwind-icons/link-broken-minimalistic.svg +0 -4
  866. package/tailwind-icons/link-broken.svg +0 -4
  867. package/tailwind-icons/link-circle.svg +0 -4
  868. package/tailwind-icons/link-minimalistic-2.svg +0 -4
  869. package/tailwind-icons/link-minimalistic.svg +0 -4
  870. package/tailwind-icons/link-round-angle.svg +0 -4
  871. package/tailwind-icons/link-round.svg +0 -4
  872. package/tailwind-icons/link-square.svg +0 -4
  873. package/tailwind-icons/list-arrow-down-minimalistic.svg +0 -4
  874. package/tailwind-icons/list-arrow-down.svg +0 -4
  875. package/tailwind-icons/list-arrow-up-minimalistic.svg +0 -4
  876. package/tailwind-icons/list-arrow-up.svg +0 -4
  877. package/tailwind-icons/list-check-minimalistic.svg +0 -4
  878. package/tailwind-icons/list-check.svg +0 -4
  879. package/tailwind-icons/list-cross-minimalistic.svg +0 -4
  880. package/tailwind-icons/list-cross.svg +0 -4
  881. package/tailwind-icons/list-down-minimalistic.svg +0 -4
  882. package/tailwind-icons/list-down.svg +0 -4
  883. package/tailwind-icons/list-heart-minimalistic.svg +0 -4
  884. package/tailwind-icons/list-heart.svg +0 -4
  885. package/tailwind-icons/list-up-minimalistic.svg +0 -4
  886. package/tailwind-icons/list-up.svg +0 -4
  887. package/tailwind-icons/list.svg +0 -4
  888. package/tailwind-icons/lock-keyhole-minimalistic-unlocked.svg +0 -4
  889. package/tailwind-icons/lock-keyhole-minimalistic.svg +0 -4
  890. package/tailwind-icons/lock-keyhole-unlocked.svg +0 -4
  891. package/tailwind-icons/lock-keyhole.svg +0 -4
  892. package/tailwind-icons/lock-password-unlocked.svg +0 -4
  893. package/tailwind-icons/lock-password.svg +0 -4
  894. package/tailwind-icons/lock-unlocked.svg +0 -4
  895. package/tailwind-icons/lock.svg +0 -4
  896. package/tailwind-icons/login-2.svg +0 -4
  897. package/tailwind-icons/login-3.svg +0 -4
  898. package/tailwind-icons/login.svg +0 -4
  899. package/tailwind-icons/logout-2.svg +0 -4
  900. package/tailwind-icons/logout-3.svg +0 -4
  901. package/tailwind-icons/logout.svg +0 -4
  902. package/tailwind-icons/magic-stick-2.svg +0 -4
  903. package/tailwind-icons/magic-stick-3.svg +0 -4
  904. package/tailwind-icons/magic-stick.svg +0 -4
  905. package/tailwind-icons/magnet-wave.svg +0 -4
  906. package/tailwind-icons/magnet.svg +0 -4
  907. package/tailwind-icons/magnifer-bug.svg +0 -4
  908. package/tailwind-icons/magnifer-zoom-in.svg +0 -4
  909. package/tailwind-icons/magnifer-zoom-out.svg +0 -4
  910. package/tailwind-icons/magnifer.svg +0 -4
  911. package/tailwind-icons/mailbox.svg +0 -4
  912. package/tailwind-icons/map-arrow-down.svg +0 -4
  913. package/tailwind-icons/map-arrow-left.svg +0 -4
  914. package/tailwind-icons/map-arrow-right.svg +0 -4
  915. package/tailwind-icons/map-arrow-square.svg +0 -4
  916. package/tailwind-icons/map-arrow-up.svg +0 -4
  917. package/tailwind-icons/map-point-add.svg +0 -4
  918. package/tailwind-icons/map-point-favourite.svg +0 -4
  919. package/tailwind-icons/map-point-hospital.svg +0 -4
  920. package/tailwind-icons/map-point-remove.svg +0 -4
  921. package/tailwind-icons/map-point-rotate.svg +0 -4
  922. package/tailwind-icons/map-point-school.svg +0 -4
  923. package/tailwind-icons/map-point-search.svg +0 -4
  924. package/tailwind-icons/map-point-wave.svg +0 -4
  925. package/tailwind-icons/map-point.svg +0 -4
  926. package/tailwind-icons/mask-happly.svg +0 -4
  927. package/tailwind-icons/mask-sad.svg +0 -4
  928. package/tailwind-icons/masks.svg +0 -4
  929. package/tailwind-icons/maximize-square-2.svg +0 -4
  930. package/tailwind-icons/maximize-square-3.svg +0 -4
  931. package/tailwind-icons/maximize-square-minimalistic.svg +0 -4
  932. package/tailwind-icons/maximize-square.svg +0 -4
  933. package/tailwind-icons/maximize.svg +0 -4
  934. package/tailwind-icons/medal-ribbon-star.svg +0 -4
  935. package/tailwind-icons/medal-ribbon.svg +0 -4
  936. package/tailwind-icons/medal-ribbons-star.svg +0 -4
  937. package/tailwind-icons/medal-star-circle.svg +0 -4
  938. package/tailwind-icons/medal-star-square.svg +0 -4
  939. package/tailwind-icons/medal-star.svg +0 -4
  940. package/tailwind-icons/medical-kit.svg +0 -4
  941. package/tailwind-icons/meditation-round.svg +0 -4
  942. package/tailwind-icons/meditation.svg +0 -4
  943. package/tailwind-icons/men.svg +0 -4
  944. package/tailwind-icons/mention-circle.svg +0 -4
  945. package/tailwind-icons/mention-square.svg +0 -4
  946. package/tailwind-icons/menu-dots-circle.svg +0 -4
  947. package/tailwind-icons/menu-dots-square.svg +0 -4
  948. package/tailwind-icons/menu-dots.svg +0 -4
  949. package/tailwind-icons/microphone-2.svg +0 -4
  950. package/tailwind-icons/microphone-3.svg +0 -4
  951. package/tailwind-icons/microphone-large.svg +0 -4
  952. package/tailwind-icons/minimalistic-magnifer-bug.svg +0 -4
  953. package/tailwind-icons/minimalistic-magnifer-zoom-in.svg +0 -4
  954. package/tailwind-icons/minimalistic-magnifer-zoom-out.svg +0 -4
  955. package/tailwind-icons/minimalistic-magnifer.svg +0 -4
  956. package/tailwind-icons/minimize-square-2.svg +0 -4
  957. package/tailwind-icons/minimize-square-3.svg +0 -4
  958. package/tailwind-icons/minimize-square-minimalistic.svg +0 -4
  959. package/tailwind-icons/minimize-square.svg +0 -4
  960. package/tailwind-icons/minimize.svg +0 -4
  961. package/tailwind-icons/minus-square.svg +0 -4
  962. package/tailwind-icons/mirror-left.svg +0 -4
  963. package/tailwind-icons/mirror-right.svg +0 -4
  964. package/tailwind-icons/mirror.svg +0 -4
  965. package/tailwind-icons/money-bag.svg +0 -4
  966. package/tailwind-icons/monitor-camera.svg +0 -4
  967. package/tailwind-icons/monitor-smartphone.svg +0 -4
  968. package/tailwind-icons/monitor.svg +0 -4
  969. package/tailwind-icons/moon-fog.svg +0 -4
  970. package/tailwind-icons/moon-sleep.svg +0 -4
  971. package/tailwind-icons/moon-stars.svg +0 -4
  972. package/tailwind-icons/mouse-circle.svg +0 -4
  973. package/tailwind-icons/mouse-minimalistic.svg +0 -4
  974. package/tailwind-icons/mouse.svg +0 -4
  975. package/tailwind-icons/move-to-folder.svg +0 -4
  976. package/tailwind-icons/multiple-forward-left.svg +0 -4
  977. package/tailwind-icons/multiple-forward-right.svg +0 -4
  978. package/tailwind-icons/music-library-2.svg +0 -4
  979. package/tailwind-icons/music-library.svg +0 -4
  980. package/tailwind-icons/music-note-2.svg +0 -4
  981. package/tailwind-icons/music-note-3.svg +0 -4
  982. package/tailwind-icons/music-note-4.svg +0 -4
  983. package/tailwind-icons/music-note-slider-2.svg +0 -4
  984. package/tailwind-icons/music-note-slider.svg +0 -4
  985. package/tailwind-icons/music-note.svg +0 -4
  986. package/tailwind-icons/music-notes.svg +0 -4
  987. package/tailwind-icons/muted.svg +0 -4
  988. package/tailwind-icons/notebook-bookmark.svg +0 -4
  989. package/tailwind-icons/notebook-minimalistic.svg +0 -4
  990. package/tailwind-icons/notebook-square.svg +0 -4
  991. package/tailwind-icons/notebook.svg +0 -4
  992. package/tailwind-icons/notes-minimalistic.svg +0 -4
  993. package/tailwind-icons/notes.svg +0 -4
  994. package/tailwind-icons/notification-lines-remove.svg +0 -4
  995. package/tailwind-icons/notification-remove.svg +0 -4
  996. package/tailwind-icons/notification-unread-lines.svg +0 -4
  997. package/tailwind-icons/notification-unread.svg +0 -4
  998. package/tailwind-icons/object-scan.svg +0 -4
  999. package/tailwind-icons/outgoing-call-rounded.svg +0 -4
  1000. package/tailwind-icons/outgoing-call.svg +0 -4
  1001. package/tailwind-icons/oven-mitts-minimalistic.svg +0 -4
  1002. package/tailwind-icons/oven-mitts.svg +0 -4
  1003. package/tailwind-icons/paint-roller.svg +0 -4
  1004. package/tailwind-icons/palette-round.svg +0 -4
  1005. package/tailwind-icons/palette.svg +0 -4
  1006. package/tailwind-icons/pallete-2.svg +0 -4
  1007. package/tailwind-icons/panorama.svg +0 -4
  1008. package/tailwind-icons/paper-bin.svg +0 -4
  1009. package/tailwind-icons/paperclip-2.svg +0 -4
  1010. package/tailwind-icons/paperclip-rounded-2.svg +0 -4
  1011. package/tailwind-icons/paperclip-rounded.svg +0 -4
  1012. package/tailwind-icons/paperclip.svg +0 -4
  1013. package/tailwind-icons/paragraph-spacing.svg +0 -4
  1014. package/tailwind-icons/passport-minimalistic.svg +0 -4
  1015. package/tailwind-icons/passport.svg +0 -4
  1016. package/tailwind-icons/password-minimalistic-input.svg +0 -4
  1017. package/tailwind-icons/password-minimalistic.svg +0 -4
  1018. package/tailwind-icons/password.svg +0 -4
  1019. package/tailwind-icons/paw.svg +0 -4
  1020. package/tailwind-icons/pen-2.svg +0 -4
  1021. package/tailwind-icons/pen-new-round.svg +0 -4
  1022. package/tailwind-icons/pen-new-square.svg +0 -4
  1023. package/tailwind-icons/pen.svg +0 -4
  1024. package/tailwind-icons/people-nearby.svg +0 -4
  1025. package/tailwind-icons/perfume.svg +0 -4
  1026. package/tailwind-icons/phone-calling-rounded.svg +0 -4
  1027. package/tailwind-icons/phone-calling.svg +0 -4
  1028. package/tailwind-icons/phone-rounded.svg +0 -4
  1029. package/tailwind-icons/pie-chart-2.svg +0 -4
  1030. package/tailwind-icons/pie-chart-3.svg +0 -4
  1031. package/tailwind-icons/pie-chart.svg +0 -4
  1032. package/tailwind-icons/pill.svg +0 -4
  1033. package/tailwind-icons/pills-2.svg +0 -4
  1034. package/tailwind-icons/pills-3.svg +0 -4
  1035. package/tailwind-icons/pills.svg +0 -4
  1036. package/tailwind-icons/pin-circle.svg +0 -4
  1037. package/tailwind-icons/pin-list.svg +0 -4
  1038. package/tailwind-icons/pin.svg +0 -4
  1039. package/tailwind-icons/pip-2.svg +0 -4
  1040. package/tailwind-icons/pip.svg +0 -4
  1041. package/tailwind-icons/pipette.svg +0 -4
  1042. package/tailwind-icons/plaaylist-minimalistic.svg +0 -4
  1043. package/tailwind-icons/plain-2.svg +0 -4
  1044. package/tailwind-icons/plain-3.svg +0 -4
  1045. package/tailwind-icons/plain.svg +0 -4
  1046. package/tailwind-icons/planet-2.svg +0 -4
  1047. package/tailwind-icons/planet-3.svg +0 -4
  1048. package/tailwind-icons/planet-4.svg +0 -4
  1049. package/tailwind-icons/planet.svg +0 -4
  1050. package/tailwind-icons/plate.svg +0 -4
  1051. package/tailwind-icons/play-stream.svg +0 -4
  1052. package/tailwind-icons/playback-speed.svg +0 -4
  1053. package/tailwind-icons/playlist-2.svg +0 -4
  1054. package/tailwind-icons/playlist-minimalistic-2.svg +0 -4
  1055. package/tailwind-icons/playlist-minimalistic-3.svg +0 -4
  1056. package/tailwind-icons/playlist.svg +0 -4
  1057. package/tailwind-icons/plug-circle.svg +0 -4
  1058. package/tailwind-icons/plus-minus.svg +0 -4
  1059. package/tailwind-icons/podcast.svg +0 -4
  1060. package/tailwind-icons/point-on-map-perspective.svg +0 -4
  1061. package/tailwind-icons/point-on-map.svg +0 -4
  1062. package/tailwind-icons/posts-carousel-horizontal.svg +0 -4
  1063. package/tailwind-icons/posts-carousel-vertical.svg +0 -4
  1064. package/tailwind-icons/presentation-graph.svg +0 -4
  1065. package/tailwind-icons/printer-2.svg +0 -4
  1066. package/tailwind-icons/printer-minimalistic.svg +0 -4
  1067. package/tailwind-icons/programming.svg +0 -4
  1068. package/tailwind-icons/projector.svg +0 -4
  1069. package/tailwind-icons/pulse-2.svg +0 -4
  1070. package/tailwind-icons/pulse.svg +0 -4
  1071. package/tailwind-icons/question-circle.svg +0 -4
  1072. package/tailwind-icons/question-square.svg +0 -4
  1073. package/tailwind-icons/quit-full-screen-circle.svg +0 -4
  1074. package/tailwind-icons/quit-full-screen-square.svg +0 -4
  1075. package/tailwind-icons/quit-full-screen.svg +0 -4
  1076. package/tailwind-icons/quit-pip.svg +0 -4
  1077. package/tailwind-icons/radar-2.svg +0 -4
  1078. package/tailwind-icons/radar.svg +0 -4
  1079. package/tailwind-icons/radial-blur.svg +0 -4
  1080. package/tailwind-icons/radio-minimalistic.svg +0 -4
  1081. package/tailwind-icons/ranking.svg +0 -4
  1082. package/tailwind-icons/recive-square.svg +0 -4
  1083. package/tailwind-icons/recive-twice-square.svg +0 -4
  1084. package/tailwind-icons/record-circle.svg +0 -4
  1085. package/tailwind-icons/record-minimalistic.svg +0 -4
  1086. package/tailwind-icons/record-square.svg +0 -4
  1087. package/tailwind-icons/record.svg +0 -4
  1088. package/tailwind-icons/reel-2.svg +0 -4
  1089. package/tailwind-icons/reel.svg +0 -4
  1090. package/tailwind-icons/refresh-circle.svg +0 -4
  1091. package/tailwind-icons/refresh-square.svg +0 -4
  1092. package/tailwind-icons/refresh.svg +0 -4
  1093. package/tailwind-icons/remote-controller-2.svg +0 -4
  1094. package/tailwind-icons/remote-controller-minimalistic.svg +0 -4
  1095. package/tailwind-icons/remote-controller.svg +0 -4
  1096. package/tailwind-icons/remove-folder.svg +0 -4
  1097. package/tailwind-icons/reorder.svg +0 -4
  1098. package/tailwind-icons/repeat-one-minimalistic.svg +0 -4
  1099. package/tailwind-icons/repeat-one.svg +0 -4
  1100. package/tailwind-icons/repeat.svg +0 -4
  1101. package/tailwind-icons/reply-2.svg +0 -4
  1102. package/tailwind-icons/reply.svg +0 -4
  1103. package/tailwind-icons/restart-circle.svg +0 -4
  1104. package/tailwind-icons/restart-square.svg +0 -4
  1105. package/tailwind-icons/restart.svg +0 -4
  1106. package/tailwind-icons/revote.svg +0 -4
  1107. package/tailwind-icons/rewind-10-seconds-back.svg +0 -4
  1108. package/tailwind-icons/rewind-10-seconds-forward.svg +0 -4
  1109. package/tailwind-icons/rewind-15-seconds-back.svg +0 -4
  1110. package/tailwind-icons/rewind-15-seconds-forward.svg +0 -4
  1111. package/tailwind-icons/rewind-5-seconds-back.svg +0 -4
  1112. package/tailwind-icons/rewind-5-seconds-forward.svg +0 -4
  1113. package/tailwind-icons/rewind-back-circle.svg +0 -4
  1114. package/tailwind-icons/rewind-back.svg +0 -4
  1115. package/tailwind-icons/rewind-forward-circle.svg +0 -4
  1116. package/tailwind-icons/rewind-forward.svg +0 -4
  1117. package/tailwind-icons/rocket-2.svg +0 -4
  1118. package/tailwind-icons/rocket.svg +0 -4
  1119. package/tailwind-icons/rolling-pin.svg +0 -4
  1120. package/tailwind-icons/round-alt-arrow-down.svg +0 -4
  1121. package/tailwind-icons/round-alt-arrow-left.svg +0 -4
  1122. package/tailwind-icons/round-alt-arrow-right.svg +0 -4
  1123. package/tailwind-icons/round-alt-arrow-up.svg +0 -4
  1124. package/tailwind-icons/round-arrow-down.svg +0 -4
  1125. package/tailwind-icons/round-arrow-left-down.svg +0 -4
  1126. package/tailwind-icons/round-arrow-left-up.svg +0 -4
  1127. package/tailwind-icons/round-arrow-left.svg +0 -4
  1128. package/tailwind-icons/round-arrow-right-down.svg +0 -4
  1129. package/tailwind-icons/round-arrow-right-up.svg +0 -4
  1130. package/tailwind-icons/round-arrow-right.svg +0 -4
  1131. package/tailwind-icons/round-arrow-up.svg +0 -4
  1132. package/tailwind-icons/round-double-alt-arrow-down.svg +0 -4
  1133. package/tailwind-icons/round-double-alt-arrow-left.svg +0 -4
  1134. package/tailwind-icons/round-double-alt-arrow-right.svg +0 -4
  1135. package/tailwind-icons/round-double-alt-arrow-up.svg +0 -4
  1136. package/tailwind-icons/round-graph.svg +0 -4
  1137. package/tailwind-icons/round-sort-horizontal.svg +0 -4
  1138. package/tailwind-icons/round-sort-vertical.svg +0 -4
  1139. package/tailwind-icons/round-transfer-diagonal.svg +0 -4
  1140. package/tailwind-icons/round-transfer-horizontal.svg +0 -4
  1141. package/tailwind-icons/round-transfer-vertical.svg +0 -4
  1142. package/tailwind-icons/rounded-magnifer-bug.svg +0 -4
  1143. package/tailwind-icons/rounded-magnifer-zoom-in.svg +0 -4
  1144. package/tailwind-icons/rounded-magnifer-zoom-out.svg +0 -4
  1145. package/tailwind-icons/rounded-magnifer.svg +0 -4
  1146. package/tailwind-icons/route.svg +0 -4
  1147. package/tailwind-icons/routing-2.svg +0 -4
  1148. package/tailwind-icons/routing-3.svg +0 -4
  1149. package/tailwind-icons/routing.svg +0 -4
  1150. package/tailwind-icons/ruble.svg +0 -4
  1151. package/tailwind-icons/rugby.svg +0 -4
  1152. package/tailwind-icons/ruler-angular.svg +0 -4
  1153. package/tailwind-icons/ruler-cross-pen.svg +0 -4
  1154. package/tailwind-icons/ruler-pen.svg +0 -4
  1155. package/tailwind-icons/ruler.svg +0 -4
  1156. package/tailwind-icons/running-2.svg +0 -4
  1157. package/tailwind-icons/running-round.svg +0 -4
  1158. package/tailwind-icons/running.svg +0 -4
  1159. package/tailwind-icons/sad-circle.svg +0 -4
  1160. package/tailwind-icons/sad-square.svg +0 -4
  1161. package/tailwind-icons/safe-2.svg +0 -4
  1162. package/tailwind-icons/safe-circle.svg +0 -4
  1163. package/tailwind-icons/safe-square.svg +0 -4
  1164. package/tailwind-icons/sale-square.svg +0 -4
  1165. package/tailwind-icons/sale.svg +0 -4
  1166. package/tailwind-icons/satellite.svg +0 -4
  1167. package/tailwind-icons/scanner-2.svg +0 -4
  1168. package/tailwind-icons/scanner.svg +0 -4
  1169. package/tailwind-icons/scissors-square.svg +0 -4
  1170. package/tailwind-icons/scooter.svg +0 -4
  1171. package/tailwind-icons/screen-share.svg +0 -4
  1172. package/tailwind-icons/screencast-2.svg +0 -4
  1173. package/tailwind-icons/screencast.svg +0 -4
  1174. package/tailwind-icons/sd-card.svg +0 -4
  1175. package/tailwind-icons/send-square.svg +0 -4
  1176. package/tailwind-icons/send-twice-square.svg +0 -4
  1177. package/tailwind-icons/server-2.svg +0 -4
  1178. package/tailwind-icons/server-minimalistic.svg +0 -4
  1179. package/tailwind-icons/server-path.svg +0 -4
  1180. package/tailwind-icons/server-square-cloud.svg +0 -4
  1181. package/tailwind-icons/server-square-update.svg +0 -4
  1182. package/tailwind-icons/server-square.svg +0 -4
  1183. package/tailwind-icons/settings-minimalistic.svg +0 -4
  1184. package/tailwind-icons/settings.svg +0 -4
  1185. package/tailwind-icons/share-circle.svg +0 -4
  1186. package/tailwind-icons/shield-cross.svg +0 -4
  1187. package/tailwind-icons/shield-keyhole-minimalistic.svg +0 -4
  1188. package/tailwind-icons/shield-keyhole.svg +0 -4
  1189. package/tailwind-icons/shield-minimalistic.svg +0 -4
  1190. package/tailwind-icons/shield-minus.svg +0 -4
  1191. package/tailwind-icons/shield-network.svg +0 -4
  1192. package/tailwind-icons/shield-plus.svg +0 -4
  1193. package/tailwind-icons/shield-star.svg +0 -4
  1194. package/tailwind-icons/shield-up.svg +0 -4
  1195. package/tailwind-icons/shield-user.svg +0 -4
  1196. package/tailwind-icons/shield-warning.svg +0 -4
  1197. package/tailwind-icons/shield.svg +0 -4
  1198. package/tailwind-icons/shock-absorber.svg +0 -4
  1199. package/tailwind-icons/shop-2.svg +0 -4
  1200. package/tailwind-icons/shop-minimalistic.svg +0 -4
  1201. package/tailwind-icons/shop.svg +0 -4
  1202. package/tailwind-icons/shuffle.svg +0 -4
  1203. package/tailwind-icons/sidebar-code.svg +0 -4
  1204. package/tailwind-icons/sidebar-minimalistic.svg +0 -4
  1205. package/tailwind-icons/siderbar.svg +0 -4
  1206. package/tailwind-icons/signpost-2.svg +0 -4
  1207. package/tailwind-icons/signpost.svg +0 -4
  1208. package/tailwind-icons/sim-card-minimalistic.svg +0 -4
  1209. package/tailwind-icons/sim-card.svg +0 -4
  1210. package/tailwind-icons/sim-cards.svg +0 -4
  1211. package/tailwind-icons/siren-rounded.svg +0 -4
  1212. package/tailwind-icons/siren.svg +0 -4
  1213. package/tailwind-icons/skateboard.svg +0 -4
  1214. package/tailwind-icons/skateboarding-round.svg +0 -4
  1215. package/tailwind-icons/skateboarding.svg +0 -4
  1216. package/tailwind-icons/skip-next.svg +0 -4
  1217. package/tailwind-icons/skip-previous.svg +0 -4
  1218. package/tailwind-icons/skirt.svg +0 -4
  1219. package/tailwind-icons/slash-circle.svg +0 -4
  1220. package/tailwind-icons/slash-square.svg +0 -4
  1221. package/tailwind-icons/sledgehammer.svg +0 -4
  1222. package/tailwind-icons/sleeping-circle.svg +0 -4
  1223. package/tailwind-icons/sleeping-square.svg +0 -4
  1224. package/tailwind-icons/sleeping.svg +0 -4
  1225. package/tailwind-icons/slider-horizontal.svg +0 -4
  1226. package/tailwind-icons/slider-minimalistic-horizontal.svg +0 -4
  1227. package/tailwind-icons/slider-vertical-minimalistic.svg +0 -4
  1228. package/tailwind-icons/slider-vertical.svg +0 -4
  1229. package/tailwind-icons/smart-home-angle.svg +0 -4
  1230. package/tailwind-icons/smart-home.svg +0 -4
  1231. package/tailwind-icons/smart-speaker-2.svg +0 -4
  1232. package/tailwind-icons/smart-speaker-minimalistic.svg +0 -4
  1233. package/tailwind-icons/smart-speaker.svg +0 -4
  1234. package/tailwind-icons/smart-vacuum-cleaner-2.svg +0 -4
  1235. package/tailwind-icons/smart-vacuum-cleaner.svg +0 -4
  1236. package/tailwind-icons/smartphone-2.svg +0 -4
  1237. package/tailwind-icons/smartphone-rotate-2.svg +0 -4
  1238. package/tailwind-icons/smartphone-rotate-angle.svg +0 -4
  1239. package/tailwind-icons/smartphone-rotate-orientation.svg +0 -4
  1240. package/tailwind-icons/smartphone-update.svg +0 -4
  1241. package/tailwind-icons/smartphone-vibration.svg +0 -4
  1242. package/tailwind-icons/smartphone.svg +0 -4
  1243. package/tailwind-icons/smile-circle.svg +0 -4
  1244. package/tailwind-icons/smile-square.svg +0 -4
  1245. package/tailwind-icons/snowflake.svg +0 -4
  1246. package/tailwind-icons/socket.svg +0 -4
  1247. package/tailwind-icons/sofa-2.svg +0 -4
  1248. package/tailwind-icons/sofa-3.svg +0 -4
  1249. package/tailwind-icons/sofa.svg +0 -4
  1250. package/tailwind-icons/sort-by-alphabet.svg +0 -4
  1251. package/tailwind-icons/sort-by-time.svg +0 -4
  1252. package/tailwind-icons/sort-from-bottom-to-top.svg +0 -4
  1253. package/tailwind-icons/sort-from-top-to-bottom.svg +0 -4
  1254. package/tailwind-icons/sort-horizontal.svg +0 -4
  1255. package/tailwind-icons/sort-vertical.svg +0 -4
  1256. package/tailwind-icons/sort.svg +0 -4
  1257. package/tailwind-icons/soundwave-circle.svg +0 -4
  1258. package/tailwind-icons/soundwave-square.svg +0 -4
  1259. package/tailwind-icons/soundwave.svg +0 -4
  1260. package/tailwind-icons/speaker-minimalistic.svg +0 -4
  1261. package/tailwind-icons/speaker.svg +0 -4
  1262. package/tailwind-icons/special-effects.svg +0 -4
  1263. package/tailwind-icons/spedometer-low.svg +0 -4
  1264. package/tailwind-icons/spedometer-max.svg +0 -4
  1265. package/tailwind-icons/spedometer-middle.svg +0 -4
  1266. package/tailwind-icons/square-academic-cap-2.svg +0 -4
  1267. package/tailwind-icons/square-academic-cap.svg +0 -4
  1268. package/tailwind-icons/square-alt-arrow-down.svg +0 -4
  1269. package/tailwind-icons/square-alt-arrow-left.svg +0 -4
  1270. package/tailwind-icons/square-alt-arrow-right.svg +0 -4
  1271. package/tailwind-icons/square-alt-arrow-up.svg +0 -4
  1272. package/tailwind-icons/square-arrow-down.svg +0 -4
  1273. package/tailwind-icons/square-arrow-left-down.svg +0 -4
  1274. package/tailwind-icons/square-arrow-left-up.svg +0 -4
  1275. package/tailwind-icons/square-arrow-left.svg +0 -4
  1276. package/tailwind-icons/square-arrow-right-down.svg +0 -4
  1277. package/tailwind-icons/square-arrow-right-up.svg +0 -4
  1278. package/tailwind-icons/square-arrow-right.svg +0 -4
  1279. package/tailwind-icons/square-arrow-up.svg +0 -4
  1280. package/tailwind-icons/square-bottom-down.svg +0 -4
  1281. package/tailwind-icons/square-bottom-up.svg +0 -4
  1282. package/tailwind-icons/square-double-alt-arrow-down.svg +0 -4
  1283. package/tailwind-icons/square-double-alt-arrow-left.svg +0 -4
  1284. package/tailwind-icons/square-double-alt-arrow-right.svg +0 -4
  1285. package/tailwind-icons/square-double-alt-arrow-up.svg +0 -4
  1286. package/tailwind-icons/square-forward.svg +0 -4
  1287. package/tailwind-icons/square-share-line.svg +0 -4
  1288. package/tailwind-icons/square-sort-horizontal.svg +0 -4
  1289. package/tailwind-icons/square-sort-vertical.svg +0 -4
  1290. package/tailwind-icons/square-top-down.svg +0 -4
  1291. package/tailwind-icons/square-top-up.svg +0 -4
  1292. package/tailwind-icons/square-transfer-horizontal.svg +0 -4
  1293. package/tailwind-icons/square-transfer-vertical.svg +0 -4
  1294. package/tailwind-icons/ssd-round.svg +0 -4
  1295. package/tailwind-icons/ssd-square.svg +0 -4
  1296. package/tailwind-icons/star-angle.svg +0 -4
  1297. package/tailwind-icons/star-circle.svg +0 -4
  1298. package/tailwind-icons/star-fall-2.svg +0 -4
  1299. package/tailwind-icons/star-fall-minimalistic-2.svg +0 -4
  1300. package/tailwind-icons/star-fall-minimalistic.svg +0 -4
  1301. package/tailwind-icons/star-fall.svg +0 -4
  1302. package/tailwind-icons/star-rainbow.svg +0 -4
  1303. package/tailwind-icons/star-ring.svg +0 -4
  1304. package/tailwind-icons/star-rings.svg +0 -4
  1305. package/tailwind-icons/star-shine.svg +0 -4
  1306. package/tailwind-icons/stars-line.svg +0 -4
  1307. package/tailwind-icons/stars-minimalistic.svg +0 -4
  1308. package/tailwind-icons/stars.svg +0 -4
  1309. package/tailwind-icons/station-minimalistic.svg +0 -4
  1310. package/tailwind-icons/station.svg +0 -4
  1311. package/tailwind-icons/stethoscope.svg +0 -4
  1312. package/tailwind-icons/sticker-circle.svg +0 -4
  1313. package/tailwind-icons/sticker-smile-circle-2.svg +0 -4
  1314. package/tailwind-icons/sticker-smile-circle.svg +0 -4
  1315. package/tailwind-icons/sticker-smile-square.svg +0 -4
  1316. package/tailwind-icons/sticker-square.svg +0 -4
  1317. package/tailwind-icons/stopwatch-pause.svg +0 -4
  1318. package/tailwind-icons/stopwatch-play.svg +0 -4
  1319. package/tailwind-icons/stopwatch.svg +0 -4
  1320. package/tailwind-icons/stream.svg +0 -4
  1321. package/tailwind-icons/streets-map-point.svg +0 -4
  1322. package/tailwind-icons/streets-navigation.svg +0 -4
  1323. package/tailwind-icons/streets.svg +0 -4
  1324. package/tailwind-icons/stretching-round.svg +0 -4
  1325. package/tailwind-icons/stretching.svg +0 -4
  1326. package/tailwind-icons/structure.svg +0 -4
  1327. package/tailwind-icons/subtitles.svg +0 -4
  1328. package/tailwind-icons/suitcase-lines.svg +0 -4
  1329. package/tailwind-icons/suitcase-tag.svg +0 -4
  1330. package/tailwind-icons/suitcase.svg +0 -4
  1331. package/tailwind-icons/sun-2.svg +0 -4
  1332. package/tailwind-icons/sun-fog.svg +0 -4
  1333. package/tailwind-icons/sunrise.svg +0 -4
  1334. package/tailwind-icons/sunset.svg +0 -4
  1335. package/tailwind-icons/suspension-bolt.svg +0 -4
  1336. package/tailwind-icons/suspension-cross.svg +0 -4
  1337. package/tailwind-icons/suspension.svg +0 -4
  1338. package/tailwind-icons/swimming.svg +0 -4
  1339. package/tailwind-icons/syringe.svg +0 -4
  1340. package/tailwind-icons/t-shirt.svg +0 -4
  1341. package/tailwind-icons/tablet.svg +0 -4
  1342. package/tailwind-icons/tag-horizontal.svg +0 -4
  1343. package/tailwind-icons/tag-price.svg +0 -4
  1344. package/tailwind-icons/target.svg +0 -4
  1345. package/tailwind-icons/tea-cup.svg +0 -4
  1346. package/tailwind-icons/telescope.svg +0 -4
  1347. package/tailwind-icons/temperature.svg +0 -4
  1348. package/tailwind-icons/tennis-2.svg +0 -4
  1349. package/tailwind-icons/tennis.svg +0 -4
  1350. package/tailwind-icons/test-tube-minimalistic.svg +0 -4
  1351. package/tailwind-icons/test-tube.svg +0 -4
  1352. package/tailwind-icons/text-bold-circle.svg +0 -4
  1353. package/tailwind-icons/text-bold-square.svg +0 -4
  1354. package/tailwind-icons/text-bold.svg +0 -4
  1355. package/tailwind-icons/text-circle.svg +0 -4
  1356. package/tailwind-icons/text-cross-circle.svg +0 -4
  1357. package/tailwind-icons/text-cross-square.svg +0 -4
  1358. package/tailwind-icons/text-cross.svg +0 -4
  1359. package/tailwind-icons/text-field-focus.svg +0 -4
  1360. package/tailwind-icons/text-field.svg +0 -4
  1361. package/tailwind-icons/text-italic-circle.svg +0 -4
  1362. package/tailwind-icons/text-italic-square.svg +0 -4
  1363. package/tailwind-icons/text-italic.svg +0 -4
  1364. package/tailwind-icons/text-selection.svg +0 -4
  1365. package/tailwind-icons/text-square-2.svg +0 -4
  1366. package/tailwind-icons/text-square.svg +0 -4
  1367. package/tailwind-icons/text-underline-circle.svg +0 -4
  1368. package/tailwind-icons/text-underline-cross.svg +0 -4
  1369. package/tailwind-icons/text-underline.svg +0 -4
  1370. package/tailwind-icons/text.svg +0 -4
  1371. package/tailwind-icons/thermometer.svg +0 -4
  1372. package/tailwind-icons/three-squares.svg +0 -4
  1373. package/tailwind-icons/ticker-star.svg +0 -4
  1374. package/tailwind-icons/ticket-sale.svg +0 -4
  1375. package/tailwind-icons/to-pip.svg +0 -4
  1376. package/tailwind-icons/tornado-small.svg +0 -4
  1377. package/tailwind-icons/tornado.svg +0 -4
  1378. package/tailwind-icons/traffic-economy.svg +0 -4
  1379. package/tailwind-icons/traffic.svg +0 -4
  1380. package/tailwind-icons/tram.svg +0 -4
  1381. package/tailwind-icons/transfer-horizontal.svg +0 -4
  1382. package/tailwind-icons/transfer-vertical.svg +0 -4
  1383. package/tailwind-icons/translation-2.svg +0 -4
  1384. package/tailwind-icons/translation.svg +0 -4
  1385. package/tailwind-icons/transmission-circle.svg +0 -4
  1386. package/tailwind-icons/transmission-square.svg +0 -4
  1387. package/tailwind-icons/transmission.svg +0 -4
  1388. package/tailwind-icons/trash-bin-2.svg +0 -4
  1389. package/tailwind-icons/trash-bin-minimalistic-2.svg +0 -4
  1390. package/tailwind-icons/trash-bin-minimalistic.svg +0 -4
  1391. package/tailwind-icons/trash-bin-trash.svg +0 -4
  1392. package/tailwind-icons/treadmill-round.svg +0 -4
  1393. package/tailwind-icons/treadmill.svg +0 -4
  1394. package/tailwind-icons/trellis.svg +0 -4
  1395. package/tailwind-icons/tuning-2.svg +0 -4
  1396. package/tailwind-icons/tuning-3.svg +0 -4
  1397. package/tailwind-icons/tuning-4.svg +0 -4
  1398. package/tailwind-icons/tuning-square-2.svg +0 -4
  1399. package/tailwind-icons/tuning-square.svg +0 -4
  1400. package/tailwind-icons/tuning.svg +0 -4
  1401. package/tailwind-icons/turntable-minimalistic.svg +0 -4
  1402. package/tailwind-icons/turntable-music-note.svg +0 -4
  1403. package/tailwind-icons/turntable.svg +0 -4
  1404. package/tailwind-icons/ufo-2.svg +0 -4
  1405. package/tailwind-icons/ufo-3.svg +0 -4
  1406. package/tailwind-icons/ufo.svg +0 -4
  1407. package/tailwind-icons/umbrella.svg +0 -4
  1408. package/tailwind-icons/undo-left-round-square.svg +0 -4
  1409. package/tailwind-icons/undo-left-round.svg +0 -4
  1410. package/tailwind-icons/undo-left-square.svg +0 -4
  1411. package/tailwind-icons/undo-left.svg +0 -4
  1412. package/tailwind-icons/undo-right-round-square.svg +0 -4
  1413. package/tailwind-icons/undo-right-round.svg +0 -4
  1414. package/tailwind-icons/undo-right-square.svg +0 -4
  1415. package/tailwind-icons/undo-right.svg +0 -4
  1416. package/tailwind-icons/unread.svg +0 -4
  1417. package/tailwind-icons/upload-minimalistic.svg +0 -4
  1418. package/tailwind-icons/upload-square.svg +0 -4
  1419. package/tailwind-icons/upload-track-2.svg +0 -4
  1420. package/tailwind-icons/upload-track.svg +0 -4
  1421. package/tailwind-icons/upload-twice-square.svg +0 -4
  1422. package/tailwind-icons/upload.svg +0 -4
  1423. package/tailwind-icons/usb-circle.svg +0 -4
  1424. package/tailwind-icons/usb-square.svg +0 -4
  1425. package/tailwind-icons/usb.svg +0 -4
  1426. package/tailwind-icons/user-block-rounded.svg +0 -4
  1427. package/tailwind-icons/user-block.svg +0 -4
  1428. package/tailwind-icons/user-check-rounded.svg +0 -4
  1429. package/tailwind-icons/user-check.svg +0 -4
  1430. package/tailwind-icons/user-cross-rounded.svg +0 -4
  1431. package/tailwind-icons/user-cross.svg +0 -4
  1432. package/tailwind-icons/user-hand-up.svg +0 -4
  1433. package/tailwind-icons/user-hands.svg +0 -4
  1434. package/tailwind-icons/user-heart-rounded.svg +0 -4
  1435. package/tailwind-icons/user-heart.svg +0 -4
  1436. package/tailwind-icons/user-id.svg +0 -4
  1437. package/tailwind-icons/user-minus-rounded.svg +0 -4
  1438. package/tailwind-icons/user-plus-rounded.svg +0 -4
  1439. package/tailwind-icons/user-rounded.svg +0 -4
  1440. package/tailwind-icons/user-speak-rounded.svg +0 -4
  1441. package/tailwind-icons/user-speak.svg +0 -4
  1442. package/tailwind-icons/users-group-rounded.svg +0 -4
  1443. package/tailwind-icons/users-group-two-rounded.svg +0 -4
  1444. package/tailwind-icons/verified-check.svg +0 -4
  1445. package/tailwind-icons/video-frame-2.svg +0 -4
  1446. package/tailwind-icons/video-frame-cut-2.svg +0 -4
  1447. package/tailwind-icons/video-frame-cut.svg +0 -4
  1448. package/tailwind-icons/video-frame-play-horizontal.svg +0 -4
  1449. package/tailwind-icons/video-frame-play-vertical.svg +0 -4
  1450. package/tailwind-icons/video-frame-replace.svg +0 -4
  1451. package/tailwind-icons/video-frame.svg +0 -4
  1452. package/tailwind-icons/video-library.svg +0 -4
  1453. package/tailwind-icons/videocamera-add.svg +0 -4
  1454. package/tailwind-icons/videocamera-record.svg +0 -4
  1455. package/tailwind-icons/videocamera.svg +0 -4
  1456. package/tailwind-icons/vinyl-record.svg +0 -4
  1457. package/tailwind-icons/vinyl.svg +0 -4
  1458. package/tailwind-icons/virus.svg +0 -4
  1459. package/tailwind-icons/volleyball-2.svg +0 -4
  1460. package/tailwind-icons/volleyball.svg +0 -4
  1461. package/tailwind-icons/volume-cross.svg +0 -4
  1462. package/tailwind-icons/volume-knob.svg +0 -4
  1463. package/tailwind-icons/volume-loud.svg +0 -4
  1464. package/tailwind-icons/volume-small.svg +0 -4
  1465. package/tailwind-icons/volume.svg +0 -4
  1466. package/tailwind-icons/wad-of-money.svg +0 -4
  1467. package/tailwind-icons/walking-round.svg +0 -4
  1468. package/tailwind-icons/walking.svg +0 -4
  1469. package/tailwind-icons/wallet-2.svg +0 -4
  1470. package/tailwind-icons/wallet-money.svg +0 -4
  1471. package/tailwind-icons/wallpaper.svg +0 -4
  1472. package/tailwind-icons/washing-machine-minimalistic.svg +0 -4
  1473. package/tailwind-icons/washing-machine.svg +0 -4
  1474. package/tailwind-icons/watch-round.svg +0 -4
  1475. package/tailwind-icons/watch-square-minimalistic-charge.svg +0 -4
  1476. package/tailwind-icons/watch-square-minimalistic.svg +0 -4
  1477. package/tailwind-icons/watch-square.svg +0 -4
  1478. package/tailwind-icons/water-sun.svg +0 -4
  1479. package/tailwind-icons/water.svg +0 -4
  1480. package/tailwind-icons/waterdrop.svg +0 -4
  1481. package/tailwind-icons/waterdrops.svg +0 -4
  1482. package/tailwind-icons/weigher.svg +0 -4
  1483. package/tailwind-icons/wheel-angle.svg +0 -4
  1484. package/tailwind-icons/wheel.svg +0 -4
  1485. package/tailwind-icons/whisk.svg +0 -4
  1486. package/tailwind-icons/wi-fi-router-minimalistic.svg +0 -4
  1487. package/tailwind-icons/wi-fi-router-round.svg +0 -4
  1488. package/tailwind-icons/wi-fi-router.svg +0 -4
  1489. package/tailwind-icons/widget-2.svg +0 -4
  1490. package/tailwind-icons/widget-3.svg +0 -4
  1491. package/tailwind-icons/widget-4.svg +0 -4
  1492. package/tailwind-icons/widget-5.svg +0 -4
  1493. package/tailwind-icons/widget-6.svg +0 -4
  1494. package/tailwind-icons/widget-add.svg +0 -4
  1495. package/tailwind-icons/widget.svg +0 -4
  1496. package/tailwind-icons/wind.svg +0 -4
  1497. package/tailwind-icons/window-frame.svg +0 -4
  1498. package/tailwind-icons/wineglass-triangle.svg +0 -4
  1499. package/tailwind-icons/wineglass.svg +0 -4
  1500. package/tailwind-icons/winrar.svg +0 -4
  1501. package/tailwind-icons/wireless-charge.svg +0 -4
  1502. package/tailwind-icons/women.svg +0 -4
  1503. package/tailwind-icons/xxx.svg +0 -4
  1504. package/tailwind-icons/zip-file.svg +0 -4
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, Directive, signal, inject, NgZone, ElementRef, viewChild, computed, Component, ViewContainerRef, HostListener, Input, TemplateRef, Renderer2, effect, output, InjectionToken, model, forwardRef, viewChildren, contentChildren, contentChild, ApplicationRef, EnvironmentInjector, Injector, createComponent, Injectable, booleanAttribute } from '@angular/core';
2
+ import { input, Directive, signal, inject, NgZone, ElementRef, viewChild, computed, Component, ViewContainerRef, HostListener, Input, TemplateRef, InjectionToken, Renderer2, ApplicationRef, EnvironmentInjector, Injector, DestroyRef, afterNextRender, createComponent, output, model, forwardRef, viewChildren, effect, contentChildren, contentChild, Injectable, booleanAttribute, makeEnvironmentProviders, provideAppInitializer, PLATFORM_ID } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
- import { DOCUMENT, NgClass, NgTemplateOutlet, formatDate, CommonModule } from '@angular/common';
4
+ import { DOCUMENT, NgClass, NgTemplateOutlet, formatDate, CommonModule, isPlatformBrowser } from '@angular/common';
5
5
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
6
6
  import { Overlay } from '@angular/cdk/overlay';
7
7
  import { TemplatePortal } from '@angular/cdk/portal';
@@ -11,1246 +11,336 @@ import { RouterLink } from '@angular/router';
11
11
  /** Common types used across all components */
12
12
 
13
13
  /**
14
- * Solar Line Duotone icon names (kebab-case). SVG assets in `public/tailwind-icons/`.
14
+ * Heroicons outline icon names (kebab-case). SVG assets in `public/tailwind-icons/`.
15
15
  * Generated by scripts/copy-icons.js sync — do not edit manually.
16
16
  *
17
- * Icons: Solar Icons (480 Design), CC BY 4.0.
17
+ * Icons: Heroicons (Tailwind Labs), MIT https://heroicons.com/
18
18
  */
19
- const TAILWIND_SOLAR_ICON_NAMES = [
20
- '4k',
21
- 'accessibility',
22
- 'accumulator',
23
- 'add-circle',
24
- 'add-folder',
25
- 'add-square',
26
- 'adhesive-plaster',
27
- 'adhesive-plaster-2',
28
- 'airbuds',
29
- 'airbuds-case',
30
- 'airbuds-case-charge',
31
- 'airbuds-case-minimalistic',
32
- 'airbuds-case-open',
33
- 'airbuds-charge',
34
- 'airbuds-check',
35
- 'airbuds-left',
36
- 'airbuds-remove',
37
- 'airbuds-right',
38
- 'alarm',
39
- 'alarm-add',
40
- 'alarm-pause',
41
- 'alarm-play',
42
- 'alarm-remove',
43
- 'alarm-sleep',
44
- 'alarm-turn-off',
45
- 'album',
46
- 'align-bottom',
47
- 'align-horizonta-spacing',
48
- 'align-horizontal-center',
49
- 'align-left',
50
- 'align-right',
51
- 'align-top',
52
- 'align-vertical-center',
53
- 'align-vertical-spacing',
54
- 'alt-arrow-down',
55
- 'alt-arrow-left',
56
- 'alt-arrow-right',
57
- 'alt-arrow-up',
58
- 'archive',
59
- 'archive-check',
60
- 'archive-down',
61
- 'archive-down-minimlistic',
62
- 'archive-minimalistic',
63
- 'archive-up',
64
- 'archive-up-minimlistic',
65
- 'armchair',
66
- 'armchair-2',
19
+ const TAILWIND_HEROICON_NAMES = [
20
+ 'academic-cap',
21
+ 'adjustments-horizontal',
22
+ 'adjustments-vertical',
23
+ 'archive-box',
24
+ 'archive-box-arrow-down',
25
+ 'archive-box-x-mark',
67
26
  'arrow-down',
27
+ 'arrow-down-circle',
28
+ 'arrow-down-left',
29
+ 'arrow-down-on-square',
30
+ 'arrow-down-on-square-stack',
31
+ 'arrow-down-right',
32
+ 'arrow-down-tray',
68
33
  'arrow-left',
69
- 'arrow-left-down',
70
- 'arrow-left-up',
34
+ 'arrow-left-circle',
35
+ 'arrow-left-end-on-rectangle',
36
+ 'arrow-left-on-rectangle',
37
+ 'arrow-left-start-on-rectangle',
38
+ 'arrow-long-down',
39
+ 'arrow-long-left',
40
+ 'arrow-long-right',
41
+ 'arrow-long-up',
42
+ 'arrow-path',
43
+ 'arrow-path-rounded-square',
71
44
  'arrow-right',
72
- 'arrow-right-down',
73
- 'arrow-right-up',
74
- 'arrow-to-down-left',
75
- 'arrow-to-down-right',
76
- 'arrow-to-top-left',
77
- 'arrow-to-top-right',
45
+ 'arrow-right-circle',
46
+ 'arrow-right-end-on-rectangle',
47
+ 'arrow-right-on-rectangle',
48
+ 'arrow-right-start-on-rectangle',
49
+ 'arrow-small-down',
50
+ 'arrow-small-left',
51
+ 'arrow-small-right',
52
+ 'arrow-small-up',
53
+ 'arrow-top-right-on-square',
54
+ 'arrow-trending-down',
55
+ 'arrow-trending-up',
56
+ 'arrow-turn-down-left',
57
+ 'arrow-turn-down-right',
58
+ 'arrow-turn-left-down',
59
+ 'arrow-turn-left-up',
60
+ 'arrow-turn-right-down',
61
+ 'arrow-turn-right-up',
62
+ 'arrow-turn-up-left',
63
+ 'arrow-turn-up-right',
78
64
  'arrow-up',
79
- 'asteroid',
80
- 'atom',
81
- 'augmented-reality',
82
- 'backpack',
65
+ 'arrow-up-circle',
66
+ 'arrow-up-left',
67
+ 'arrow-up-on-square',
68
+ 'arrow-up-on-square-stack',
69
+ 'arrow-up-right',
70
+ 'arrow-up-tray',
71
+ 'arrow-uturn-down',
72
+ 'arrow-uturn-left',
73
+ 'arrow-uturn-right',
74
+ 'arrow-uturn-up',
75
+ 'arrows-pointing-in',
76
+ 'arrows-pointing-out',
77
+ 'arrows-right-left',
78
+ 'arrows-up-down',
79
+ 'at-symbol',
83
80
  'backspace',
84
- 'bacteria',
85
- 'bag',
86
- 'bag-2',
87
- 'bag-3',
88
- 'bag-4',
89
- 'bag-5',
90
- 'bag-check',
91
- 'bag-cross',
92
- 'bag-heart',
93
- 'bag-music',
94
- 'bag-music-2',
95
- 'bag-smile',
96
- 'balloon',
97
- 'balls',
98
- 'banknote',
99
- 'banknote-2',
100
- 'bar-chair',
101
- 'basketball',
102
- 'bath',
103
- 'battery-charge',
104
- 'battery-charge-minimalistic',
105
- 'battery-full',
106
- 'battery-full-minimalistic',
107
- 'battery-half',
108
- 'battery-half-minimalistic',
109
- 'battery-low',
110
- 'battery-low-minimalistic',
111
- 'bed',
112
- 'bedside-table',
113
- 'bedside-table-2',
114
- 'bedside-table-3',
115
- 'bedside-table-4',
81
+ 'backward',
82
+ 'banknotes',
83
+ 'bars-2',
84
+ 'bars-3',
85
+ 'bars-3-bottom-left',
86
+ 'bars-3-bottom-right',
87
+ 'bars-3-center-left',
88
+ 'bars-4',
89
+ 'bars-arrow-down',
90
+ 'bars-arrow-up',
91
+ 'battery-0',
92
+ 'battery-100',
93
+ 'battery-50',
94
+ 'beaker',
116
95
  'bell',
117
- 'bell-bing',
118
- 'bell-off',
119
- 'benzene-ring',
120
- 'bicycling',
121
- 'bicycling-round',
122
- 'bill',
123
- 'bill-check',
124
- 'bill-cross',
125
- 'bill-list',
126
- 'black-hole',
127
- 'black-hole-2',
128
- 'black-hole-3',
129
- 'bluetooth',
130
- 'bluetooth-circle',
131
- 'bluetooth-square',
132
- 'bluetooth-wave',
133
- 'body',
134
- 'body-shape',
135
- 'body-shape-minimalistic',
96
+ 'bell-alert',
97
+ 'bell-slash',
98
+ 'bell-snooze',
99
+ 'bold',
136
100
  'bolt',
137
- 'bolt-circle',
138
- 'bomb',
139
- 'bomb-emoji',
140
- 'bomb-minimalistic',
141
- 'bone',
142
- 'bone-broken',
143
- 'bone-crack',
144
- 'bones',
145
- 'bonfire',
146
- 'book',
147
- 'book-2',
148
- 'book-bookmark',
149
- 'book-bookmark-minimalistic',
150
- 'book-minimalistic',
101
+ 'bolt-slash',
102
+ 'book-open',
151
103
  'bookmark',
152
- 'bookmark-circle',
153
- 'bookmark-opened',
104
+ 'bookmark-slash',
154
105
  'bookmark-square',
155
- 'bookmark-square-minimalistic',
156
- 'boombox',
157
- 'bottle',
158
- 'bowling',
159
- 'box',
160
- 'box-minimalistic',
161
- 'branching-paths-down',
162
- 'branching-paths-up',
163
- 'broom',
164
- 'bug',
165
- 'bug-minimalistic',
166
- 'buildings',
167
- 'buildings-2',
168
- 'buildings-3',
169
- 'bus',
106
+ 'briefcase',
107
+ 'bug-ant',
108
+ 'building-library',
109
+ 'building-office',
110
+ 'building-office-2',
111
+ 'building-storefront',
112
+ 'cake',
170
113
  'calculator',
171
- 'calculator-minimalistic',
172
114
  'calendar',
173
- 'calendar-add',
174
- 'calendar-date',
175
- 'calendar-mark',
176
- 'calendar-minimalistic',
177
- 'calendar-search',
178
- 'call-cancel',
179
- 'call-cancel-rounded',
180
- 'call-chat',
181
- 'call-chat-rounded',
182
- 'call-dropped',
183
- 'call-dropped-rounded',
184
- 'call-medicine',
185
- 'call-medicine-rounded',
115
+ 'calendar-date-range',
116
+ 'calendar-days',
186
117
  'camera',
187
- 'camera-add',
188
- 'camera-minimalistic',
189
- 'camera-rotate',
190
- 'camera-square',
191
- 'card',
192
- 'card-2',
193
- 'card-recive',
194
- 'card-search',
195
- 'card-send',
196
- 'card-transfer',
197
- 'cardholder',
198
- 'cart',
199
- 'cart-2',
200
- 'cart-3',
201
- 'cart-4',
202
- 'cart-5',
203
- 'cart-check',
204
- 'cart-cross',
205
- 'cart-large',
206
- 'cart-large-2',
207
- 'cart-large-3',
208
- 'cart-large-4',
209
- 'cart-large-minimalistic',
210
- 'cart-plus',
211
- 'case',
212
- 'case-minimalistic',
213
- 'case-round',
214
- 'case-round-minimalistic',
215
- 'cash-out',
216
- 'cassette',
217
- 'cassette-2',
218
- 'cat',
219
- 'chair',
220
- 'chair-2',
221
- 'chandelier',
222
- 'chart',
223
- 'chart-2',
224
- 'chart-square',
225
- 'chat-dots',
226
- 'chat-line',
227
- 'chat-round',
228
- 'chat-round-call',
229
- 'chat-round-check',
230
- 'chat-round-dots',
231
- 'chat-round-like',
232
- 'chat-round-line',
233
- 'chat-round-money',
234
- 'chat-round-unread',
235
- 'chat-round-video',
236
- 'chat-square',
237
- 'chat-square-2',
238
- 'chat-square-arrow',
239
- 'chat-square-call',
240
- 'chat-square-check',
241
- 'chat-square-code',
242
- 'chat-square-like',
243
- 'chat-unread',
118
+ 'chart-bar',
119
+ 'chart-bar-square',
120
+ 'chart-pie',
121
+ 'chat-bubble-bottom-center',
122
+ 'chat-bubble-bottom-center-text',
123
+ 'chat-bubble-left',
124
+ 'chat-bubble-left-ellipsis',
125
+ 'chat-bubble-left-right',
126
+ 'chat-bubble-oval-left',
127
+ 'chat-bubble-oval-left-ellipsis',
128
+ 'check',
129
+ 'check-badge',
244
130
  'check-circle',
245
- 'check-read',
246
- 'check-square',
247
- 'checklist',
248
- 'checklist-minimalistic',
249
- 'chef-hat',
250
- 'chef-hat-heart',
251
- 'chef-hat-minimalistic',
252
- 'circle-bottom-down',
253
- 'circle-bottom-up',
254
- 'circle-top-down',
255
- 'circle-top-up',
256
- 'city',
257
- 'clapperboard',
258
- 'clapperboard-edit',
259
- 'clapperboard-open',
260
- 'clapperboard-open-play',
261
- 'clapperboard-play',
262
- 'clapperboard-text',
131
+ 'chevron-double-down',
132
+ 'chevron-double-left',
133
+ 'chevron-double-right',
134
+ 'chevron-double-up',
135
+ 'chevron-down',
136
+ 'chevron-left',
137
+ 'chevron-right',
138
+ 'chevron-up',
139
+ 'chevron-up-down',
140
+ 'circle-stack',
263
141
  'clipboard',
264
- 'clipboard-add',
265
- 'clipboard-check',
266
- 'clipboard-heart',
267
- 'clipboard-list',
268
- 'clipboard-remove',
269
- 'clipboard-text',
270
- 'clock-circle',
271
- 'clock-square',
272
- 'close-circle',
273
- 'close-square',
274
- 'closet',
275
- 'closet-2',
142
+ 'clipboard-document',
143
+ 'clipboard-document-check',
144
+ 'clipboard-document-list',
145
+ 'clock',
276
146
  'cloud',
277
- 'cloud-bolt',
278
- 'cloud-bolt-minimalistic',
279
- 'cloud-check',
280
- 'cloud-cross',
281
- 'cloud-download',
282
- 'cloud-file',
283
- 'cloud-minus',
284
- 'cloud-plus',
285
- 'cloud-rain',
286
- 'cloud-snowfall',
287
- 'cloud-snowfall-minimalistic',
288
- 'cloud-storage',
289
- 'cloud-storm',
290
- 'cloud-sun',
291
- 'cloud-sun-2',
292
- 'cloud-upload',
293
- 'cloud-waterdrop',
294
- 'cloud-waterdrops',
295
- 'clouds',
296
- 'cloudy-moon',
297
- 'code',
298
- 'code-2',
299
- 'code-circle',
300
- 'code-file',
301
- 'code-scan',
302
- 'code-square',
303
- 'colour-tuneing',
304
- 'command',
305
- 'compass',
306
- 'compass-big',
307
- 'compass-square',
308
- 'condicioner',
309
- 'condicioner-2',
310
- 'confetti',
311
- 'confetti-minimalistic',
312
- 'confounded-circle',
313
- 'confounded-square',
314
- 'copy',
315
- 'copyright',
316
- 'corkscrew',
317
- 'cosmetic',
318
- 'course-down',
319
- 'course-up',
320
- 'cpu',
321
- 'cpu-bolt',
322
- 'creative-commons',
323
- 'crop',
324
- 'crop-minimalistic',
325
- 'crown',
326
- 'crown-line',
327
- 'crown-minimalistic',
328
- 'crown-star',
329
- 'cup',
330
- 'cup-first',
331
- 'cup-hot',
332
- 'cup-music',
333
- 'cup-paper',
334
- 'cup-star',
335
- 'cursor',
336
- 'cursor-square',
337
- 'danger',
338
- 'danger-circle',
339
- 'danger-square',
340
- 'danger-triangle',
341
- 'database',
342
- 'delivery',
343
- 'devices',
344
- 'diagram-down',
345
- 'diagram-up',
346
- 'dialog',
347
- 'dialog-2',
348
- 'diploma',
349
- 'diploma-verified',
350
- 'diskette',
351
- 'dislike',
352
- 'display',
353
- 'dna',
147
+ 'cloud-arrow-down',
148
+ 'cloud-arrow-up',
149
+ 'code-bracket',
150
+ 'code-bracket-square',
151
+ 'cog',
152
+ 'cog-6-tooth',
153
+ 'cog-8-tooth',
154
+ 'command-line',
155
+ 'computer-desktop',
156
+ 'cpu-chip',
157
+ 'credit-card',
158
+ 'cube',
159
+ 'cube-transparent',
160
+ 'currency-bangladeshi',
161
+ 'currency-dollar',
162
+ 'currency-euro',
163
+ 'currency-pound',
164
+ 'currency-rupee',
165
+ 'currency-yen',
166
+ 'cursor-arrow-rays',
167
+ 'cursor-arrow-ripple',
168
+ 'device-phone-mobile',
169
+ 'device-tablet',
170
+ 'divide',
354
171
  'document',
355
- 'document-add',
356
- 'document-medicine',
172
+ 'document-arrow-down',
173
+ 'document-arrow-up',
174
+ 'document-chart-bar',
175
+ 'document-check',
176
+ 'document-currency-bangladeshi',
177
+ 'document-currency-dollar',
178
+ 'document-currency-euro',
179
+ 'document-currency-pound',
180
+ 'document-currency-rupee',
181
+ 'document-currency-yen',
182
+ 'document-duplicate',
183
+ 'document-magnifying-glass',
184
+ 'document-minus',
185
+ 'document-plus',
357
186
  'document-text',
358
- 'documents',
359
- 'documents-minimalistic',
360
- 'dollar',
361
- 'dollar-minimalistic',
362
- 'donut',
363
- 'donut-bitten',
364
- 'double-alt-arrow-down',
365
- 'double-alt-arrow-left',
366
- 'double-alt-arrow-right',
367
- 'double-alt-arrow-up',
368
- 'download',
369
- 'download-minimalistic',
370
- 'download-square',
371
- 'download-twice-square',
372
- 'dropper',
373
- 'dropper-2',
374
- 'dropper-3',
375
- 'dropper-minimalistic',
376
- 'dropper-minimalistic-2',
377
- 'dumbbell',
378
- 'dumbbell-large',
379
- 'dumbbell-large-minimalistic',
380
- 'dumbbell-small',
381
- 'dumbbells',
382
- 'dumbbells-2',
383
- 'earth',
384
- 'electric-refueling',
385
- 'emoji-funny-circle',
386
- 'emoji-funny-square',
387
- 'end-call',
388
- 'end-call-rounded',
389
- 'eraser',
390
- 'eraser-circle',
391
- 'eraser-square',
392
- 'euro',
393
- 'exit',
394
- 'explicit',
395
- 'export',
396
- 'expressionless-circle',
397
- 'expressionless-square',
187
+ 'ellipsis-horizontal',
188
+ 'ellipsis-horizontal-circle',
189
+ 'ellipsis-vertical',
190
+ 'envelope',
191
+ 'envelope-open',
192
+ 'equals',
193
+ 'exclamation-circle',
194
+ 'exclamation-triangle',
398
195
  'eye',
399
- 'eye-closed',
400
- 'eye-scan',
401
- 'face-scan-circle',
402
- 'face-scan-square',
403
- 'facemask-circle',
404
- 'facemask-square',
405
- 'feed',
406
- 'ferris-wheel',
407
- 'figma',
408
- 'figma-file',
409
- 'file',
410
- 'file-check',
411
- 'file-corrupted',
412
- 'file-download',
413
- 'file-favourite',
414
- 'file-left',
415
- 'file-remove',
416
- 'file-right',
417
- 'file-send',
418
- 'file-smile',
419
- 'file-text',
420
- 'filter',
421
- 'filters',
196
+ 'eye-dropper',
197
+ 'eye-slash',
198
+ 'face-frown',
199
+ 'face-smile',
200
+ 'film',
201
+ 'finger-print',
422
202
  'fire',
423
- 'fire-minimalistic',
424
- 'fire-square',
425
203
  'flag',
426
- 'flag-2',
427
- 'flame',
428
- 'flash-drive',
429
- 'flashlight',
430
- 'flashlight-on',
431
- 'flip-horizontal',
432
- 'flip-vertical',
433
- 'floor-lamp',
434
- 'floor-lamp-minimalistic',
435
- 'fog',
436
204
  'folder',
437
- 'folder-2',
438
- 'folder-check',
439
- 'folder-cloud',
440
- 'folder-error',
441
- 'folder-favourite-bookmark',
442
- 'folder-favourite-star',
205
+ 'folder-arrow-down',
206
+ 'folder-minus',
443
207
  'folder-open',
444
- 'folder-path-connect',
445
- 'folder-security',
446
- 'folder-with-files',
447
- 'football',
448
- 'forbidden',
449
- 'forbidden-circle',
208
+ 'folder-plus',
450
209
  'forward',
451
- 'forward-2',
452
- 'fridge',
453
- 'fuel',
454
- 'full-screen',
455
- 'full-screen-circle',
456
- 'full-screen-square',
457
- 'gallery',
458
- 'gallery-add',
459
- 'gallery-check',
460
- 'gallery-circle',
461
- 'gallery-download',
462
- 'gallery-edit',
463
- 'gallery-favourite',
464
- 'gallery-minimalistic',
465
- 'gallery-remove',
466
- 'gallery-round',
467
- 'gallery-send',
468
- 'gallery-wide',
469
- 'gameboy',
470
- 'gamepad',
471
- 'gamepad-charge',
472
- 'gamepad-minimalistic',
473
- 'gamepad-no-charge',
474
- 'gamepad-old',
475
- 'garage',
476
- 'gas-station',
477
- 'ghost',
478
- 'ghost-smile',
210
+ 'funnel',
211
+ 'gif',
479
212
  'gift',
480
- 'glasses',
481
- 'global',
482
- 'globus',
483
- 'golf',
484
- 'gps',
485
- 'graph',
486
- 'graph-down',
487
- 'graph-down-new',
488
- 'graph-new',
489
- 'graph-new-up',
490
- 'graph-up',
491
- 'hamburger-menu',
492
- 'hand-heart',
493
- 'hand-money',
494
- 'hand-pills',
495
- 'hand-shake',
496
- 'hand-stars',
497
- 'hanger',
498
- 'hanger-2',
213
+ 'gift-top',
214
+ 'globe-alt',
215
+ 'globe-americas',
216
+ 'globe-asia-australia',
217
+ 'globe-europe-africa',
218
+ 'h1',
219
+ 'h2',
220
+ 'h3',
221
+ 'hand-raised',
222
+ 'hand-thumb-down',
223
+ 'hand-thumb-up',
499
224
  'hashtag',
500
- 'hashtag-chat',
501
- 'hashtag-circle',
502
- 'hashtag-square',
503
- 'headphones-round',
504
- 'headphones-round-sound',
505
- 'headphones-square',
506
- 'headphones-square-sound',
507
- 'health',
508
225
  'heart',
509
- 'heart-angle',
510
- 'heart-broken',
511
- 'heart-lock',
512
- 'heart-pulse',
513
- 'heart-pulse-2',
514
- 'heart-shine',
515
- 'heart-unlock',
516
- 'hearts',
517
- 'help',
518
- 'high-definition',
519
- 'high-quality',
520
- 'hiking',
521
- 'hiking-minimalistic',
522
- 'hiking-round',
523
- 'history',
524
- 'history-2',
525
- 'history-3',
526
226
  'home',
527
- 'home-2',
528
- 'home-add',
529
- 'home-add-angle',
530
- 'home-angle',
531
- 'home-angle-2',
532
- 'home-smile',
533
- 'home-smile-angle',
534
- 'home-wifi',
535
- 'home-wifi-angle',
536
- 'hospital',
537
- 'hourglass',
538
- 'hourglass-line',
539
- 'import',
227
+ 'home-modern',
228
+ 'identification',
540
229
  'inbox',
541
- 'inbox-archive',
542
- 'inbox-in',
543
- 'inbox-line',
544
- 'inbox-out',
545
- 'inbox-unread',
546
- 'incognito',
547
- 'incoming-call',
548
- 'incoming-call-rounded',
549
- 'infinity',
550
- 'info-circle',
551
- 'info-square',
552
- 'iphone',
553
- 'jar-of-pills',
554
- 'jar-of-pills-2',
230
+ 'inbox-arrow-down',
231
+ 'inbox-stack',
232
+ 'information-circle',
233
+ 'italic',
555
234
  'key',
556
- 'key-minimalistic',
557
- 'key-minimalistic-2',
558
- 'key-minimalistic-square',
559
- 'key-minimalistic-square-2',
560
- 'key-minimalistic-square-3',
561
- 'key-square',
562
- 'key-square-2',
563
- 'keyboard',
564
- 'kick-scooter',
565
- 'ladle',
566
- 'lamp',
567
- 'laptop',
568
- 'laptop-2',
569
- 'laptop-3',
570
- 'laptop-minimalistic',
571
- 'layers',
572
- 'layers-minimalistic',
573
- 'leaf',
574
- 'letter',
575
- 'letter-opened',
576
- 'letter-unread',
577
- 'library',
578
- 'lightbulb',
579
- 'lightbulb-bolt',
580
- 'lightbulb-minimalistic',
581
- 'lightning',
582
- 'like',
235
+ 'language',
236
+ 'lifebuoy',
237
+ 'light-bulb',
583
238
  'link',
584
- 'link-broken',
585
- 'link-broken-minimalistic',
586
- 'link-circle',
587
- 'link-minimalistic',
588
- 'link-minimalistic-2',
589
- 'link-round',
590
- 'link-round-angle',
591
- 'link-square',
592
- 'list',
593
- 'list-arrow-down',
594
- 'list-arrow-down-minimalistic',
595
- 'list-arrow-up',
596
- 'list-arrow-up-minimalistic',
597
- 'list-check',
598
- 'list-check-minimalistic',
599
- 'list-cross',
600
- 'list-cross-minimalistic',
601
- 'list-down',
602
- 'list-down-minimalistic',
603
- 'list-heart',
604
- 'list-heart-minimalistic',
605
- 'list-up',
606
- 'list-up-minimalistic',
607
- 'lock',
608
- 'lock-keyhole',
609
- 'lock-keyhole-minimalistic',
610
- 'lock-keyhole-minimalistic-unlocked',
611
- 'lock-keyhole-unlocked',
612
- 'lock-password',
613
- 'lock-password-unlocked',
614
- 'lock-unlocked',
615
- 'login',
616
- 'login-2',
617
- 'login-3',
618
- 'logout',
619
- 'logout-2',
620
- 'logout-3',
621
- 'magic-stick',
622
- 'magic-stick-2',
623
- 'magic-stick-3',
624
- 'magnet',
625
- 'magnet-wave',
626
- 'magnifer',
627
- 'magnifer-bug',
628
- 'magnifer-zoom-in',
629
- 'magnifer-zoom-out',
630
- 'mailbox',
239
+ 'link-slash',
240
+ 'list-bullet',
241
+ 'lock-closed',
242
+ 'lock-open',
243
+ 'magnifying-glass',
244
+ 'magnifying-glass-circle',
245
+ 'magnifying-glass-minus',
246
+ 'magnifying-glass-plus',
631
247
  'map',
632
- 'map-arrow-down',
633
- 'map-arrow-left',
634
- 'map-arrow-right',
635
- 'map-arrow-square',
636
- 'map-arrow-up',
637
- 'map-point',
638
- 'map-point-add',
639
- 'map-point-favourite',
640
- 'map-point-hospital',
641
- 'map-point-remove',
642
- 'map-point-rotate',
643
- 'map-point-school',
644
- 'map-point-search',
645
- 'map-point-wave',
646
- 'mask-happly',
647
- 'mask-sad',
648
- 'masks',
649
- 'maximize',
650
- 'maximize-square',
651
- 'maximize-square-2',
652
- 'maximize-square-3',
653
- 'maximize-square-minimalistic',
654
- 'medal-ribbon',
655
- 'medal-ribbon-star',
656
- 'medal-ribbons-star',
657
- 'medal-star',
658
- 'medal-star-circle',
659
- 'medal-star-square',
660
- 'medical-kit',
661
- 'meditation',
662
- 'meditation-round',
663
- 'men',
664
- 'mention-circle',
665
- 'mention-square',
666
- 'menu-dots',
667
- 'menu-dots-circle',
668
- 'menu-dots-square',
248
+ 'map-pin',
249
+ 'megaphone',
669
250
  'microphone',
670
- 'microphone-2',
671
- 'microphone-3',
672
- 'microphone-large',
673
- 'minimalistic-magnifer',
674
- 'minimalistic-magnifer-bug',
675
- 'minimalistic-magnifer-zoom-in',
676
- 'minimalistic-magnifer-zoom-out',
677
- 'minimize',
678
- 'minimize-square',
679
- 'minimize-square-2',
680
- 'minimize-square-3',
681
- 'minimize-square-minimalistic',
251
+ 'minus',
682
252
  'minus-circle',
683
- 'minus-square',
684
- 'mirror',
685
- 'mirror-left',
686
- 'mirror-right',
687
- 'money-bag',
688
- 'monitor',
689
- 'monitor-camera',
690
- 'monitor-smartphone',
253
+ 'minus-small',
691
254
  'moon',
692
- 'moon-fog',
693
- 'moon-sleep',
694
- 'moon-stars',
695
- 'mouse',
696
- 'mouse-circle',
697
- 'mouse-minimalistic',
698
- 'move-to-folder',
699
- 'multiple-forward-left',
700
- 'multiple-forward-right',
701
- 'music-library',
702
- 'music-library-2',
703
- 'music-note',
704
- 'music-note-2',
705
- 'music-note-3',
706
- 'music-note-4',
707
- 'music-note-slider',
708
- 'music-note-slider-2',
709
- 'music-notes',
710
- 'muted',
711
- 'notebook',
712
- 'notebook-bookmark',
713
- 'notebook-minimalistic',
714
- 'notebook-square',
715
- 'notes',
716
- 'notes-minimalistic',
717
- 'notification-lines-remove',
718
- 'notification-remove',
719
- 'notification-unread',
720
- 'notification-unread-lines',
721
- 'object-scan',
722
- 'outgoing-call',
723
- 'outgoing-call-rounded',
724
- 'oven-mitts',
725
- 'oven-mitts-minimalistic',
726
- 'paint-roller',
727
- 'palette',
728
- 'palette-round',
729
- 'pallete-2',
730
- 'panorama',
731
- 'paper-bin',
732
- 'paperclip',
733
- 'paperclip-2',
734
- 'paperclip-rounded',
735
- 'paperclip-rounded-2',
736
- 'paragraph-spacing',
737
- 'passport',
738
- 'passport-minimalistic',
739
- 'password',
740
- 'password-minimalistic',
741
- 'password-minimalistic-input',
255
+ 'musical-note',
256
+ 'newspaper',
257
+ 'no-symbol',
258
+ 'numbered-list',
259
+ 'paint-brush',
260
+ 'paper-airplane',
261
+ 'paper-clip',
742
262
  'pause',
743
263
  'pause-circle',
744
- 'paw',
745
- 'pen',
746
- 'pen-2',
747
- 'pen-new-round',
748
- 'pen-new-square',
749
- 'people-nearby',
750
- 'perfume',
264
+ 'pencil',
265
+ 'pencil-square',
266
+ 'percent-badge',
751
267
  'phone',
752
- 'phone-calling',
753
- 'phone-calling-rounded',
754
- 'phone-rounded',
755
- 'pie-chart',
756
- 'pie-chart-2',
757
- 'pie-chart-3',
758
- 'pill',
759
- 'pills',
760
- 'pills-2',
761
- 'pills-3',
762
- 'pin',
763
- 'pin-circle',
764
- 'pin-list',
765
- 'pip',
766
- 'pip-2',
767
- 'pipette',
768
- 'plaaylist-minimalistic',
769
- 'plain',
770
- 'plain-2',
771
- 'plain-3',
772
- 'planet',
773
- 'planet-2',
774
- 'planet-3',
775
- 'planet-4',
776
- 'plate',
268
+ 'phone-arrow-down-left',
269
+ 'phone-arrow-up-right',
270
+ 'phone-x-mark',
271
+ 'photo',
777
272
  'play',
778
273
  'play-circle',
779
- 'play-stream',
780
- 'playback-speed',
781
- 'playlist',
782
- 'playlist-2',
783
- 'playlist-minimalistic-2',
784
- 'playlist-minimalistic-3',
785
- 'plug-circle',
786
- 'plus-minus',
787
- 'podcast',
788
- 'point-on-map',
789
- 'point-on-map-perspective',
790
- 'posts-carousel-horizontal',
791
- 'posts-carousel-vertical',
274
+ 'play-pause',
275
+ 'plus',
276
+ 'plus-circle',
277
+ 'plus-small',
792
278
  'power',
793
- 'presentation-graph',
279
+ 'presentation-chart-bar',
280
+ 'presentation-chart-line',
794
281
  'printer',
795
- 'printer-2',
796
- 'printer-minimalistic',
797
- 'programming',
798
- 'projector',
799
- 'pulse',
800
- 'pulse-2',
282
+ 'puzzle-piece',
801
283
  'qr-code',
802
- 'question-circle',
803
- 'question-square',
804
- 'quit-full-screen',
805
- 'quit-full-screen-circle',
806
- 'quit-full-screen-square',
807
- 'quit-pip',
808
- 'radar',
809
- 'radar-2',
810
- 'radial-blur',
284
+ 'question-mark-circle',
285
+ 'queue-list',
811
286
  'radio',
812
- 'radio-minimalistic',
813
- 'ranking',
814
- 'recive-square',
815
- 'recive-twice-square',
816
- 'record',
817
- 'record-circle',
818
- 'record-minimalistic',
819
- 'record-square',
820
- 'reel',
821
- 'reel-2',
822
- 'refresh',
823
- 'refresh-circle',
824
- 'refresh-square',
825
- 'remote-controller',
826
- 'remote-controller-2',
827
- 'remote-controller-minimalistic',
828
- 'remove-folder',
829
- 'reorder',
830
- 'repeat',
831
- 'repeat-one',
832
- 'repeat-one-minimalistic',
833
- 'reply',
834
- 'reply-2',
835
- 'restart',
836
- 'restart-circle',
837
- 'restart-square',
838
- 'revote',
839
- 'rewind-10-seconds-back',
840
- 'rewind-10-seconds-forward',
841
- 'rewind-15-seconds-back',
842
- 'rewind-15-seconds-forward',
843
- 'rewind-5-seconds-back',
844
- 'rewind-5-seconds-forward',
845
- 'rewind-back',
846
- 'rewind-back-circle',
847
- 'rewind-forward',
848
- 'rewind-forward-circle',
849
- 'rocket',
850
- 'rocket-2',
851
- 'rolling-pin',
852
- 'round-alt-arrow-down',
853
- 'round-alt-arrow-left',
854
- 'round-alt-arrow-right',
855
- 'round-alt-arrow-up',
856
- 'round-arrow-down',
857
- 'round-arrow-left',
858
- 'round-arrow-left-down',
859
- 'round-arrow-left-up',
860
- 'round-arrow-right',
861
- 'round-arrow-right-down',
862
- 'round-arrow-right-up',
863
- 'round-arrow-up',
864
- 'round-double-alt-arrow-down',
865
- 'round-double-alt-arrow-left',
866
- 'round-double-alt-arrow-right',
867
- 'round-double-alt-arrow-up',
868
- 'round-graph',
869
- 'round-sort-horizontal',
870
- 'round-sort-vertical',
871
- 'round-transfer-diagonal',
872
- 'round-transfer-horizontal',
873
- 'round-transfer-vertical',
874
- 'rounded-magnifer',
875
- 'rounded-magnifer-bug',
876
- 'rounded-magnifer-zoom-in',
877
- 'rounded-magnifer-zoom-out',
878
- 'route',
879
- 'routing',
880
- 'routing-2',
881
- 'routing-3',
882
- 'ruble',
883
- 'rugby',
884
- 'ruler',
885
- 'ruler-angular',
886
- 'ruler-cross-pen',
887
- 'ruler-pen',
888
- 'running',
889
- 'running-2',
890
- 'running-round',
891
- 'sad-circle',
892
- 'sad-square',
893
- 'safe-2',
894
- 'safe-circle',
895
- 'safe-square',
896
- 'sale',
897
- 'sale-square',
898
- 'satellite',
287
+ 'receipt-percent',
288
+ 'receipt-refund',
289
+ 'rectangle-group',
290
+ 'rectangle-stack',
291
+ 'rocket-launch',
292
+ 'rss',
899
293
  'scale',
900
- 'scanner',
901
- 'scanner-2',
902
294
  'scissors',
903
- 'scissors-square',
904
- 'scooter',
905
- 'screen-share',
906
- 'screencast',
907
- 'screencast-2',
908
- 'sd-card',
909
- 'send-square',
910
- 'send-twice-square',
911
295
  'server',
912
- 'server-2',
913
- 'server-minimalistic',
914
- 'server-path',
915
- 'server-square',
916
- 'server-square-cloud',
917
- 'server-square-update',
918
- 'settings',
919
- 'settings-minimalistic',
296
+ 'server-stack',
920
297
  'share',
921
- 'share-circle',
922
- 'shield',
923
298
  'shield-check',
924
- 'shield-cross',
925
- 'shield-keyhole',
926
- 'shield-keyhole-minimalistic',
927
- 'shield-minimalistic',
928
- 'shield-minus',
929
- 'shield-network',
930
- 'shield-plus',
931
- 'shield-star',
932
- 'shield-up',
933
- 'shield-user',
934
- 'shield-warning',
935
- 'shock-absorber',
936
- 'shop',
937
- 'shop-2',
938
- 'shop-minimalistic',
939
- 'shuffle',
940
- 'sidebar-code',
941
- 'sidebar-minimalistic',
942
- 'siderbar',
943
- 'signpost',
944
- 'signpost-2',
945
- 'sim-card',
946
- 'sim-card-minimalistic',
947
- 'sim-cards',
948
- 'siren',
949
- 'siren-rounded',
950
- 'skateboard',
951
- 'skateboarding',
952
- 'skateboarding-round',
953
- 'skip-next',
954
- 'skip-previous',
955
- 'skirt',
956
- 'slash-circle',
957
- 'slash-square',
958
- 'sledgehammer',
959
- 'sleeping',
960
- 'sleeping-circle',
961
- 'sleeping-square',
962
- 'slider-horizontal',
963
- 'slider-minimalistic-horizontal',
964
- 'slider-vertical',
965
- 'slider-vertical-minimalistic',
966
- 'smart-home',
967
- 'smart-home-angle',
968
- 'smart-speaker',
969
- 'smart-speaker-2',
970
- 'smart-speaker-minimalistic',
971
- 'smart-vacuum-cleaner',
972
- 'smart-vacuum-cleaner-2',
973
- 'smartphone',
974
- 'smartphone-2',
975
- 'smartphone-rotate-2',
976
- 'smartphone-rotate-angle',
977
- 'smartphone-rotate-orientation',
978
- 'smartphone-update',
979
- 'smartphone-vibration',
980
- 'smile-circle',
981
- 'smile-square',
982
- 'snowflake',
983
- 'socket',
984
- 'sofa',
985
- 'sofa-2',
986
- 'sofa-3',
987
- 'sort',
988
- 'sort-by-alphabet',
989
- 'sort-by-time',
990
- 'sort-from-bottom-to-top',
991
- 'sort-from-top-to-bottom',
992
- 'sort-horizontal',
993
- 'sort-vertical',
994
- 'soundwave',
995
- 'soundwave-circle',
996
- 'soundwave-square',
997
- 'speaker',
998
- 'speaker-minimalistic',
999
- 'special-effects',
1000
- 'spedometer-low',
1001
- 'spedometer-max',
1002
- 'spedometer-middle',
1003
- 'square-academic-cap',
1004
- 'square-academic-cap-2',
1005
- 'square-alt-arrow-down',
1006
- 'square-alt-arrow-left',
1007
- 'square-alt-arrow-right',
1008
- 'square-alt-arrow-up',
1009
- 'square-arrow-down',
1010
- 'square-arrow-left',
1011
- 'square-arrow-left-down',
1012
- 'square-arrow-left-up',
1013
- 'square-arrow-right',
1014
- 'square-arrow-right-down',
1015
- 'square-arrow-right-up',
1016
- 'square-arrow-up',
1017
- 'square-bottom-down',
1018
- 'square-bottom-up',
1019
- 'square-double-alt-arrow-down',
1020
- 'square-double-alt-arrow-left',
1021
- 'square-double-alt-arrow-right',
1022
- 'square-double-alt-arrow-up',
1023
- 'square-forward',
1024
- 'square-share-line',
1025
- 'square-sort-horizontal',
1026
- 'square-sort-vertical',
1027
- 'square-top-down',
1028
- 'square-top-up',
1029
- 'square-transfer-horizontal',
1030
- 'square-transfer-vertical',
1031
- 'ssd-round',
1032
- 'ssd-square',
299
+ 'shield-exclamation',
300
+ 'shopping-bag',
301
+ 'shopping-cart',
302
+ 'signal',
303
+ 'signal-slash',
304
+ 'slash',
305
+ 'sparkles',
306
+ 'speaker-wave',
307
+ 'speaker-x-mark',
308
+ 'square-2-stack',
309
+ 'square-3-stack-3d',
310
+ 'squares-2x2',
311
+ 'squares-plus',
1033
312
  'star',
1034
- 'star-angle',
1035
- 'star-circle',
1036
- 'star-fall',
1037
- 'star-fall-2',
1038
- 'star-fall-minimalistic',
1039
- 'star-fall-minimalistic-2',
1040
- 'star-rainbow',
1041
- 'star-ring',
1042
- 'star-rings',
1043
- 'star-shine',
1044
- 'stars',
1045
- 'stars-line',
1046
- 'stars-minimalistic',
1047
- 'station',
1048
- 'station-minimalistic',
1049
- 'stethoscope',
1050
- 'sticker-circle',
1051
- 'sticker-smile-circle',
1052
- 'sticker-smile-circle-2',
1053
- 'sticker-smile-square',
1054
- 'sticker-square',
1055
313
  'stop',
1056
314
  'stop-circle',
1057
- 'stopwatch',
1058
- 'stopwatch-pause',
1059
- 'stopwatch-play',
1060
- 'stream',
1061
- 'streets',
1062
- 'streets-map-point',
1063
- 'streets-navigation',
1064
- 'stretching',
1065
- 'stretching-round',
1066
- 'structure',
1067
- 'subtitles',
1068
- 'suitcase',
1069
- 'suitcase-lines',
1070
- 'suitcase-tag',
315
+ 'strikethrough',
1071
316
  'sun',
1072
- 'sun-2',
1073
- 'sun-fog',
1074
- 'sunrise',
1075
- 'sunset',
1076
- 'suspension',
1077
- 'suspension-bolt',
1078
- 'suspension-cross',
1079
- 'swimming',
1080
- 'syringe',
1081
- 't-shirt',
1082
- 'tablet',
317
+ 'swatch',
318
+ 'table-cells',
1083
319
  'tag',
1084
- 'tag-horizontal',
1085
- 'tag-price',
1086
- 'target',
1087
- 'tea-cup',
1088
- 'telescope',
1089
- 'temperature',
1090
- 'tennis',
1091
- 'tennis-2',
1092
- 'test-tube',
1093
- 'test-tube-minimalistic',
1094
- 'text',
1095
- 'text-bold',
1096
- 'text-bold-circle',
1097
- 'text-bold-square',
1098
- 'text-circle',
1099
- 'text-cross',
1100
- 'text-cross-circle',
1101
- 'text-cross-square',
1102
- 'text-field',
1103
- 'text-field-focus',
1104
- 'text-italic',
1105
- 'text-italic-circle',
1106
- 'text-italic-square',
1107
- 'text-selection',
1108
- 'text-square',
1109
- 'text-square-2',
1110
- 'text-underline',
1111
- 'text-underline-circle',
1112
- 'text-underline-cross',
1113
- 'thermometer',
1114
- 'three-squares',
1115
- 'ticker-star',
1116
320
  'ticket',
1117
- 'ticket-sale',
1118
- 'to-pip',
1119
- 'tornado',
1120
- 'tornado-small',
1121
- 'traffic',
1122
- 'traffic-economy',
1123
- 'tram',
1124
- 'transfer-horizontal',
1125
- 'transfer-vertical',
1126
- 'translation',
1127
- 'translation-2',
1128
- 'transmission',
1129
- 'transmission-circle',
1130
- 'transmission-square',
1131
- 'trash-bin-2',
1132
- 'trash-bin-minimalistic',
1133
- 'trash-bin-minimalistic-2',
1134
- 'trash-bin-trash',
1135
- 'treadmill',
1136
- 'treadmill-round',
1137
- 'trellis',
1138
- 'tuning',
1139
- 'tuning-2',
1140
- 'tuning-3',
1141
- 'tuning-4',
1142
- 'tuning-square',
1143
- 'tuning-square-2',
1144
- 'turntable',
1145
- 'turntable-minimalistic',
1146
- 'turntable-music-note',
321
+ 'trash',
322
+ 'trophy',
323
+ 'truck',
1147
324
  'tv',
1148
- 'ufo',
1149
- 'ufo-2',
1150
- 'ufo-3',
1151
- 'umbrella',
1152
- 'undo-left',
1153
- 'undo-left-round',
1154
- 'undo-left-round-square',
1155
- 'undo-left-square',
1156
- 'undo-right',
1157
- 'undo-right-round',
1158
- 'undo-right-round-square',
1159
- 'undo-right-square',
1160
- 'unread',
1161
- 'upload',
1162
- 'upload-minimalistic',
1163
- 'upload-square',
1164
- 'upload-track',
1165
- 'upload-track-2',
1166
- 'upload-twice-square',
1167
- 'usb',
1168
- 'usb-circle',
1169
- 'usb-square',
325
+ 'underline',
1170
326
  'user',
1171
- 'user-block',
1172
- 'user-block-rounded',
1173
- 'user-check',
1174
- 'user-check-rounded',
1175
327
  'user-circle',
1176
- 'user-cross',
1177
- 'user-cross-rounded',
1178
- 'user-hand-up',
1179
- 'user-hands',
1180
- 'user-heart',
1181
- 'user-heart-rounded',
1182
- 'user-id',
328
+ 'user-group',
1183
329
  'user-minus',
1184
- 'user-minus-rounded',
1185
330
  'user-plus',
1186
- 'user-plus-rounded',
1187
- 'user-rounded',
1188
- 'user-speak',
1189
- 'user-speak-rounded',
1190
- 'users-group-rounded',
1191
- 'users-group-two-rounded',
1192
- 'verified-check',
1193
- 'video-frame',
1194
- 'video-frame-2',
1195
- 'video-frame-cut',
1196
- 'video-frame-cut-2',
1197
- 'video-frame-play-horizontal',
1198
- 'video-frame-play-vertical',
1199
- 'video-frame-replace',
1200
- 'video-library',
1201
- 'videocamera',
1202
- 'videocamera-add',
1203
- 'videocamera-record',
1204
- 'vinyl',
1205
- 'vinyl-record',
1206
- 'virus',
1207
- 'volleyball',
1208
- 'volleyball-2',
1209
- 'volume',
1210
- 'volume-cross',
1211
- 'volume-knob',
1212
- 'volume-loud',
1213
- 'volume-small',
1214
- 'wad-of-money',
1215
- 'walking',
1216
- 'walking-round',
331
+ 'users',
332
+ 'variable',
333
+ 'video-camera',
334
+ 'video-camera-slash',
335
+ 'view-columns',
336
+ 'viewfinder-circle',
1217
337
  'wallet',
1218
- 'wallet-2',
1219
- 'wallet-money',
1220
- 'wallpaper',
1221
- 'washing-machine',
1222
- 'washing-machine-minimalistic',
1223
- 'watch-round',
1224
- 'watch-square',
1225
- 'watch-square-minimalistic',
1226
- 'watch-square-minimalistic-charge',
1227
- 'water',
1228
- 'water-sun',
1229
- 'waterdrop',
1230
- 'waterdrops',
1231
- 'weigher',
1232
- 'wheel',
1233
- 'wheel-angle',
1234
- 'whisk',
1235
- 'wi-fi-router',
1236
- 'wi-fi-router-minimalistic',
1237
- 'wi-fi-router-round',
1238
- 'widget',
1239
- 'widget-2',
1240
- 'widget-3',
1241
- 'widget-4',
1242
- 'widget-5',
1243
- 'widget-6',
1244
- 'widget-add',
1245
- 'wind',
1246
- 'window-frame',
1247
- 'wineglass',
1248
- 'wineglass-triangle',
1249
- 'winrar',
1250
- 'wireless-charge',
1251
- 'women',
1252
- 'xxx',
1253
- 'zip-file',
338
+ 'wifi',
339
+ 'window',
340
+ 'wrench',
341
+ 'wrench-screwdriver',
342
+ 'x-circle',
343
+ 'x-mark',
1254
344
  ];
1255
345
 
1256
346
  class TailwindComponent {
@@ -1288,7 +378,7 @@ class TailwindTooltip extends TailwindComponent {
1288
378
  tooltipClasses = computed(() => {
1289
379
  const base = [
1290
380
  'fixed z-[1070] px-3 py-1.5',
1291
- 'text-xs font-medium text-white bg-surface-900 rounded-lg',
381
+ 'text-xs font-medium text-white bg-neutral-900 rounded-lg',
1292
382
  'shadow-lg whitespace-nowrap pointer-events-none',
1293
383
  'transition-opacity duration-150',
1294
384
  this.isVisible() ? 'opacity-100' : 'opacity-0'
@@ -1296,7 +386,7 @@ class TailwindTooltip extends TailwindComponent {
1296
386
  return base.join(' ');
1297
387
  }, ...(ngDevMode ? [{ debugName: "tooltipClasses" }] : /* istanbul ignore next */ []));
1298
388
  arrowClasses = computed(() => {
1299
- const base = 'absolute w-2 h-2 bg-surface-900 rotate-45';
389
+ const base = 'absolute w-2 h-2 bg-neutral-900 rotate-45';
1300
390
  const posMap = {
1301
391
  top: 'top-full left-1/2 -translate-x-1/2 -mt-1',
1302
392
  bottom: 'bottom-full left-1/2 -translate-x-1/2 -mb-1',
@@ -1484,9 +574,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
1484
574
  }]
1485
575
  }] });
1486
576
 
577
+ const TAILWIND_MODAL_DATA = new InjectionToken('TAILWIND_MODAL_DATA');
578
+ /** Default pixel size for `tailwind-icon` when `size` is omitted (typically 16–64). */
579
+ const TAILWIND_ICON_SIZE = new InjectionToken('TAILWIND_ICON_SIZE');
580
+ const TAILWIND_DATETIME_LANGUAGE = new InjectionToken('TAILWIND_DATETIME_LANGUAGE');
581
+ const TAILWIND_COMPONENTS_SIZE = new InjectionToken('TAILWIND_COMPONENTS_SIZE');
582
+ /**
583
+ * Default template for `tailwind-pagination` **summary** when the `summary` input is omitted.
584
+ * Use placeholders `{start}`, `{end}`, `{total}` (same rules as the `summary` input).
585
+ */
586
+ const TAILWIND_PAGINATION_SUMMARY = new InjectionToken('TAILWIND_PAGINATION_SUMMARY');
587
+
588
+ const clampIconSize = (value) => {
589
+ if (!Number.isFinite(value))
590
+ return 24;
591
+ const rounded = Math.round(value);
592
+ return Math.min(64, Math.max(16, rounded));
593
+ };
594
+ class TailwindIcon extends TailwindComponent {
595
+ iconSize = inject(TAILWIND_ICON_SIZE, { optional: true });
596
+ /** Heroicons outline icon name; SVG path `/tailwind-icons/<name>.svg` */
597
+ icon = input.required(...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
598
+ /** Width and height in px (16–64, clamped); default from `TAILWIND_ICON_SIZE` or **24** */
599
+ size = input(clampIconSize(this.iconSize ?? 24), ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
600
+ src = computed(() => `/tailwind-icons/${this.icon()}.svg`, ...(ngDevMode ? [{ debugName: "src" }] : /* istanbul ignore next */ []));
601
+ pixelSize = computed(() => clampIconSize(this.size()), ...(ngDevMode ? [{ debugName: "pixelSize" }] : /* istanbul ignore next */ []));
602
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindIcon, deps: null, target: i0.ɵɵFactoryTarget.Component });
603
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.12", type: TailwindIcon, isStandalone: true, selector: "tailwind-icon", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "inline-flex shrink-0 items-center justify-center" }, usesInheritance: true, ngImport: i0, template: "<img\r\n class=\"block shrink-0\"\r\n [src]=\"src()\"\r\n [attr.width]=\"pixelSize()\"\r\n [attr.height]=\"pixelSize()\"\r\n [attr.alt]=\"icon()\"\r\n [attr.aria-hidden]=\"true\"\r\n decoding=\"async\" />\r\n" });
604
+ }
605
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindIcon, decorators: [{
606
+ type: Component,
607
+ args: [{ selector: 'tailwind-icon', host: {
608
+ class: 'inline-flex shrink-0 items-center justify-center'
609
+ }, template: "<img\r\n class=\"block shrink-0\"\r\n [src]=\"src()\"\r\n [attr.width]=\"pixelSize()\"\r\n [attr.height]=\"pixelSize()\"\r\n [attr.alt]=\"icon()\"\r\n [attr.aria-hidden]=\"true\"\r\n decoding=\"async\" />\r\n" }]
610
+ }], propDecorators: { icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] } });
611
+
1487
612
  /** Host attributes on `<tailwind-table>`; kept in sync for sort-header observers. */
1488
613
  const TW_TABLE_SORT_KEY_ATTR = 'data-tw-sort-key';
1489
614
  const TW_TABLE_SORT_DIR_ATTR = 'data-tw-sort-dir';
615
+ const MAX_TABLE_RESOLVE_ATTEMPTS = 24;
1490
616
  /**
1491
617
  * Sortable column header: put on `<th>` (plain header text + directive). Not sortable columns omit this directive.
1492
618
  * Sorting is handled by the nearest `tailwind-table` host (event delegation); do not pass a table reference.
@@ -1496,75 +622,72 @@ class TailwindSortHeaderDirective {
1496
622
  sortKey = input.required(...(ngDevMode ? [{ debugName: "sortKey" }] : /* istanbul ignore next */ []));
1497
623
  host = inject((ElementRef));
1498
624
  renderer = inject(Renderer2);
1499
- svg;
625
+ appRef = inject(ApplicationRef);
626
+ environmentInjector = inject(EnvironmentInjector);
627
+ injector = inject(Injector);
628
+ iconRef;
629
+ mo;
630
+ destroyed = false;
1500
631
  constructor() {
1501
- effect(onCleanup => {
1502
- const key = this.sortKey();
1503
- const tableEl = this.host.nativeElement.closest('tailwind-table');
1504
- if (!tableEl)
1505
- return;
1506
- const sync = () => {
1507
- const activeKey = tableEl.getAttribute(TW_TABLE_SORT_KEY_ATTR) ?? '';
1508
- const dirRaw = tableEl.getAttribute(TW_TABLE_SORT_DIR_ATTR) ?? 'asc';
1509
- const asc = dirRaw === 'asc';
1510
- const active = activeKey === key;
1511
- if (!this.svg) {
1512
- this.svg = this.createSvg();
1513
- this.renderer.appendChild(this.host.nativeElement, this.svg);
1514
- }
1515
- this.updateSvg(active, asc);
1516
- this.renderer.setAttribute(this.host.nativeElement, 'aria-label', active ? `Sorted ${asc ? 'ascending' : 'descending'}, activate to reverse` : `Sort by ${key}`);
1517
- };
1518
- sync();
1519
- const mo = new MutationObserver(() => sync());
1520
- mo.observe(tableEl, {
1521
- attributes: true,
1522
- attributeFilter: [TW_TABLE_SORT_KEY_ATTR, TW_TABLE_SORT_DIR_ATTR]
1523
- });
1524
- onCleanup(() => mo.disconnect());
632
+ inject(DestroyRef).onDestroy(() => {
633
+ this.destroyed = true;
634
+ this.mo?.disconnect();
635
+ this.mo = undefined;
636
+ this.iconRef?.destroy();
637
+ this.iconRef = undefined;
1525
638
  });
639
+ afterNextRender(() => {
640
+ if (!this.destroyed) {
641
+ this.resolveTableAndAttach(0);
642
+ }
643
+ }, { injector: this.injector });
1526
644
  }
1527
- createSvg() {
1528
- const svg = this.renderer.createElement('svg', 'svg');
1529
- this.renderer.setAttribute(svg, 'xmlns', 'http://www.w3.org/2000/svg');
1530
- this.renderer.setAttribute(svg, 'viewBox', '0 0 20 20');
1531
- this.renderer.setAttribute(svg, 'fill', 'currentColor');
1532
- this.renderer.setAttribute(svg, 'aria-hidden', 'true');
1533
- const ascPath = this.renderer.createElement('path', 'svg');
1534
- this.renderer.setAttribute(ascPath, 'fill-rule', 'evenodd');
1535
- this.renderer.setAttribute(ascPath, 'd', 'M10 17a.75.75 0 01-.75-.75V5.612L5.29 9.77a.75.75 0 01-1.08-1.04l5.25-5.5a.75.75 0 011.08 0l5.25 5.5a.75.75 0 11-1.08 1.04l-3.96-4.158V16.25A.75.75 0 0110 17z');
1536
- this.renderer.setAttribute(ascPath, 'clip-rule', 'evenodd');
1537
- this.renderer.addClass(ascPath, 'tailwind-sort-header__asc');
1538
- const descPath = this.renderer.createElement('path', 'svg');
1539
- this.renderer.setAttribute(descPath, 'fill-rule', 'evenodd');
1540
- this.renderer.setAttribute(descPath, 'd', 'M10 3a.75.75 0 01.75.75v10.638l3.96-4.158a.75.75 0 111.08 1.04l-5.25 5.5a.75.75 0 01-1.08 0l-5.25-5.5a.75.75 0 111.08-1.04l3.96 4.158V3.75A.75.75 0 0110 3z');
1541
- this.renderer.setAttribute(descPath, 'clip-rule', 'evenodd');
1542
- this.renderer.addClass(descPath, 'tailwind-sort-header__desc');
1543
- this.renderer.appendChild(svg, ascPath);
1544
- this.renderer.appendChild(svg, descPath);
1545
- return svg;
1546
- }
1547
- updateSvg(active, asc) {
1548
- if (!this.svg)
645
+ /**
646
+ * After first render the projected `<th>` may still not be under `<tailwind-table>` in the DOM
647
+ * for one frame; retry with `requestAnimationFrame` until `closest` succeeds.
648
+ */
649
+ resolveTableAndAttach(attempt) {
650
+ if (this.destroyed || this.mo)
1549
651
  return;
1550
- this.renderer.setAttribute(this.svg, 'class', `inline-block align-middle ml-1 w-3.5 h-3.5 shrink-0 ${active ? 'text-primary-600' : 'text-surface-400'}`);
1551
- const ascPath = this.svg.querySelector('.tailwind-sort-header__asc');
1552
- const descPath = this.svg.querySelector('.tailwind-sort-header__desc');
1553
- const showAsc = active && asc;
1554
- const showDesc = active ? !asc : true;
1555
- this.setPathHidden(ascPath, !showAsc);
1556
- this.setPathHidden(descPath, !showDesc);
1557
- }
1558
- setPathHidden(el, hidden) {
1559
- if (!el)
652
+ const tableEl = this.host.nativeElement.closest('tailwind-table');
653
+ if (!tableEl) {
654
+ if (attempt < MAX_TABLE_RESOLVE_ATTEMPTS) {
655
+ requestAnimationFrame(() => this.resolveTableAndAttach(attempt + 1));
656
+ }
1560
657
  return;
1561
- if (hidden)
1562
- this.renderer.addClass(el, 'hidden');
1563
- else
1564
- this.renderer.removeClass(el, 'hidden');
658
+ }
659
+ const sync = () => {
660
+ if (this.destroyed || !this.iconRef)
661
+ return;
662
+ const columnKey = this.sortKey();
663
+ const activeKey = tableEl.getAttribute(TW_TABLE_SORT_KEY_ATTR) ?? '';
664
+ const dirRaw = tableEl.getAttribute(TW_TABLE_SORT_DIR_ATTR) ?? 'asc';
665
+ const asc = dirRaw === 'asc';
666
+ const active = activeKey === columnKey;
667
+ const icon = active ? (asc ? 'chevron-up' : 'chevron-down') : 'chevron-up-down';
668
+ this.iconRef.setInput('icon', icon);
669
+ this.iconRef.setInput('size', 14);
670
+ this.iconRef.setInput('class', active ? 'shrink-0 text-primary-600' : 'shrink-0 text-neutral-400');
671
+ this.renderer.setAttribute(this.host.nativeElement, 'aria-label', active ? `Sorted ${asc ? 'ascending' : 'descending'}, activate to reverse` : `Sort by ${columnKey}`);
672
+ this.iconRef.changeDetectorRef.detectChanges();
673
+ };
674
+ if (!this.iconRef) {
675
+ this.iconRef = createComponent(TailwindIcon, {
676
+ environmentInjector: this.environmentInjector,
677
+ elementInjector: this.injector
678
+ });
679
+ this.renderer.appendChild(this.host.nativeElement, this.iconRef.location.nativeElement);
680
+ this.appRef.attachView(this.iconRef.hostView);
681
+ }
682
+ sync();
683
+ this.mo = new MutationObserver(() => sync());
684
+ this.mo.observe(tableEl, {
685
+ attributes: true,
686
+ attributeFilter: [TW_TABLE_SORT_KEY_ATTR, TW_TABLE_SORT_DIR_ATTR]
687
+ });
1565
688
  }
1566
689
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindSortHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1567
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.12", type: TailwindSortHeaderDirective, isStandalone: true, selector: "[tailwindSortHeader]", inputs: { sortKey: { classPropertyName: "sortKey", publicName: "sortKey", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "attr.tabindex": "0", "attr.data-sort-key": "sortKey()" }, classAttribute: "cursor-pointer hover:text-surface-900 select-none table-cell align-middle whitespace-nowrap text-left" }, ngImport: i0 });
690
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.12", type: TailwindSortHeaderDirective, isStandalone: true, selector: "[tailwindSortHeader]", inputs: { sortKey: { classPropertyName: "sortKey", publicName: "sortKey", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "attr.tabindex": "0", "attr.data-sort-key": "sortKey()" }, classAttribute: "flex cursor-pointer items-center gap-1.5 justify-start whitespace-nowrap text-left select-none hover:text-neutral-900" }, ngImport: i0 });
1568
691
  }
1569
692
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindSortHeaderDirective, decorators: [{
1570
693
  type: Directive,
@@ -1572,7 +695,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
1572
695
  selector: '[tailwindSortHeader]',
1573
696
  standalone: true,
1574
697
  host: {
1575
- class: 'cursor-pointer hover:text-surface-900 select-none table-cell align-middle whitespace-nowrap text-left',
698
+ class: 'flex cursor-pointer items-center gap-1.5 justify-start whitespace-nowrap text-left select-none hover:text-neutral-900',
1576
699
  '[attr.tabindex]': '0',
1577
700
  '[attr.data-sort-key]': 'sortKey()'
1578
701
  }
@@ -1605,15 +728,15 @@ class TailwindButton extends TailwindComponent {
1605
728
  ];
1606
729
  const solidMap = {
1607
730
  primary: 'bg-primary-600 text-white hover:bg-primary-700 active:bg-primary-800 border-transparent focus-visible:outline-primary-600 shadow-sm',
1608
- secondary: 'bg-surface-100 text-surface-800 hover:bg-surface-200 active:bg-surface-300 border-surface-300 focus-visible:outline-surface-500 shadow-sm',
731
+ secondary: 'bg-neutral-100 text-neutral-800 hover:bg-neutral-200 active:bg-neutral-300 border-neutral-300 focus-visible:outline-neutral-500 shadow-sm',
1609
732
  danger: 'bg-danger-600 text-white hover:bg-danger-700 active:bg-danger-800 border-transparent focus-visible:outline-danger-600 shadow-sm',
1610
733
  success: 'bg-success-600 text-white hover:bg-success-700 active:bg-success-800 border-transparent focus-visible:outline-success-600 shadow-sm',
1611
- warning: 'bg-warning-500 text-surface-900 hover:bg-warning-600 active:bg-warning-700 border-transparent focus-visible:outline-warning-500 shadow-sm',
734
+ warning: 'bg-warning-500 text-neutral-900 hover:bg-warning-600 active:bg-warning-700 border-transparent focus-visible:outline-warning-500 shadow-sm',
1612
735
  info: 'bg-info-600 text-white hover:bg-info-700 active:bg-info-800 border-transparent focus-visible:outline-info-600 shadow-sm'
1613
736
  };
1614
737
  const outlinedMap = {
1615
738
  primary: 'bg-transparent text-primary-600 border-primary-600 hover:bg-primary-50 active:bg-primary-100 focus-visible:outline-primary-600',
1616
- secondary: 'bg-transparent text-surface-700 border-surface-300 hover:bg-surface-50 active:bg-surface-100 focus-visible:outline-surface-500',
739
+ secondary: 'bg-transparent text-neutral-700 border-neutral-300 hover:bg-neutral-50 active:bg-neutral-100 focus-visible:outline-neutral-500',
1617
740
  danger: 'bg-transparent text-danger-600 border-danger-600 hover:bg-danger-50 active:bg-danger-100 focus-visible:outline-danger-600',
1618
741
  success: 'bg-transparent text-success-600 border-success-600 hover:bg-success-50 active:bg-success-100 focus-visible:outline-success-600',
1619
742
  warning: 'bg-transparent text-warning-600 border-warning-500 hover:bg-warning-50 active:bg-warning-100 focus-visible:outline-warning-500',
@@ -1622,7 +745,7 @@ class TailwindButton extends TailwindComponent {
1622
745
  /** Transparent + hover/active background tint (former `text` look). */
1623
746
  const ghostMap = {
1624
747
  primary: 'bg-transparent text-primary-600 border-transparent hover:bg-primary-50 active:bg-primary-100 focus-visible:outline-primary-600',
1625
- secondary: 'bg-transparent text-surface-700 border-transparent hover:bg-surface-100 active:bg-surface-200 focus-visible:outline-surface-500',
748
+ secondary: 'bg-transparent text-neutral-700 border-transparent hover:bg-neutral-100 active:bg-neutral-200 focus-visible:outline-neutral-500',
1626
749
  danger: 'bg-transparent text-danger-600 border-transparent hover:bg-danger-50 active:bg-danger-100 focus-visible:outline-danger-600',
1627
750
  success: 'bg-transparent text-success-600 border-transparent hover:bg-success-50 active:bg-success-100 focus-visible:outline-success-600',
1628
751
  warning: 'bg-transparent text-warning-600 border-transparent hover:bg-warning-50 active:bg-warning-100 focus-visible:outline-warning-500',
@@ -1631,7 +754,7 @@ class TailwindButton extends TailwindComponent {
1631
754
  /** Text color from severity only; background stays transparent on hover/active. */
1632
755
  const textMap = {
1633
756
  primary: 'bg-transparent text-primary-600 border-transparent focus-visible:outline-primary-600',
1634
- secondary: 'bg-transparent text-surface-700 border-transparent focus-visible:outline-surface-500',
757
+ secondary: 'bg-transparent text-neutral-700 border-transparent focus-visible:outline-neutral-500',
1635
758
  danger: 'bg-transparent text-danger-600 border-transparent focus-visible:outline-danger-600',
1636
759
  success: 'bg-transparent text-success-600 border-transparent focus-visible:outline-success-600',
1637
760
  warning: 'bg-transparent text-warning-600 border-transparent focus-visible:outline-warning-500',
@@ -1672,36 +795,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
1672
795
  args: [{ selector: 'tailwind-button', imports: [NgClass], template: "<button\n [ngClass]=\"computedClasses()\"\n [disabled]=\"disabled()\"\n [type]=\"type()\"\n [attr.aria-disabled]=\"disabled() || null\"\n (click)=\"handleClick($event)\">\n <ng-content />\n</button>\n", styles: [":host{display:inline-block}.tailwind-btn-spinner{animation:tailwind-spin 1s linear infinite;width:1em;height:1em}@keyframes tailwind-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
1673
796
  }], propDecorators: { color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], kind: [{ type: i0.Input, args: [{ isSignal: true, alias: "kind", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], onClick: [{ type: i0.Output, args: ["onClick"] }] } });
1674
797
 
1675
- const TAILWIND_MODAL_DATA = new InjectionToken('TAILWIND_MODAL_DATA');
1676
- /** Default pixel size for `tailwind-icon` when `size` is omitted (typically 16–64). */
1677
- const TAILWIND_ICON_SIZE = new InjectionToken('TAILWIND_ICON_SIZE');
1678
- const TAILWIND_DATETIME_LANGUAGE = new InjectionToken('TAILWIND_DATETIME_LANGUAGE');
1679
- const TAILWIND_COMPONENTS_SIZE = new InjectionToken('TAILWIND_COMPONENTS_SIZE');
1680
-
1681
- const clampIconSize = (value) => {
1682
- if (!Number.isFinite(value))
1683
- return 24;
1684
- const rounded = Math.round(value);
1685
- return Math.min(64, Math.max(16, rounded));
1686
- };
1687
- class TailwindIcon extends TailwindComponent {
1688
- iconSize = inject(TAILWIND_ICON_SIZE, { optional: true });
1689
- /** Solar Line Duotone icon name; SVG path `/tailwind-icons/<name>.svg` */
1690
- icon = input.required(...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
1691
- /** Width and height in px (16–64, clamped); default from `TAILWIND_ICON_SIZE` or **24** */
1692
- size = input(clampIconSize(this.iconSize ?? 24), ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
1693
- src = computed(() => `/tailwind-icons/${this.icon()}.svg`, ...(ngDevMode ? [{ debugName: "src" }] : /* istanbul ignore next */ []));
1694
- pixelSize = computed(() => clampIconSize(this.size()), ...(ngDevMode ? [{ debugName: "pixelSize" }] : /* istanbul ignore next */ []));
1695
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindIcon, deps: null, target: i0.ɵɵFactoryTarget.Component });
1696
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.12", type: TailwindIcon, isStandalone: true, selector: "tailwind-icon", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "inline-flex shrink-0 items-center justify-center" }, usesInheritance: true, ngImport: i0, template: "<img\r\n class=\"block shrink-0\"\r\n [src]=\"src()\"\r\n [attr.width]=\"pixelSize()\"\r\n [attr.height]=\"pixelSize()\"\r\n [attr.alt]=\"icon()\"\r\n [attr.aria-hidden]=\"true\"\r\n decoding=\"async\" />\r\n" });
1697
- }
1698
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindIcon, decorators: [{
1699
- type: Component,
1700
- args: [{ selector: 'tailwind-icon', host: {
1701
- class: 'inline-flex shrink-0 items-center justify-center'
1702
- }, template: "<img\r\n class=\"block shrink-0\"\r\n [src]=\"src()\"\r\n [attr.width]=\"pixelSize()\"\r\n [attr.height]=\"pixelSize()\"\r\n [attr.alt]=\"icon()\"\r\n [attr.aria-hidden]=\"true\"\r\n decoding=\"async\" />\r\n" }]
1703
- }], propDecorators: { icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] } });
1704
-
1705
798
  class TailwindInput extends TailwindComponent {
1706
799
  /** Label text */
1707
800
  label = input('', ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
@@ -1728,9 +821,9 @@ class TailwindInput extends TailwindComponent {
1728
821
  const base = [
1729
822
  'block w-full bg-white',
1730
823
  'border transition-colors duration-150',
1731
- 'placeholder:text-surface-400',
824
+ 'placeholder:text-neutral-400',
1732
825
  'outline-none focus:outline focus:outline-2 focus:outline-offset-2',
1733
- 'disabled:bg-surface-50 disabled:text-surface-400 disabled:cursor-not-allowed'
826
+ 'disabled:bg-neutral-50 disabled:text-neutral-400 disabled:cursor-not-allowed'
1734
827
  ];
1735
828
  const sizeMap = {
1736
829
  xs: 'text-xs px-2 py-1 rounded-sm',
@@ -1741,7 +834,7 @@ class TailwindInput extends TailwindComponent {
1741
834
  };
1742
835
  const stateClass = this.hasError()
1743
836
  ? 'border-danger-400 focus:outline-danger-500 text-danger-900'
1744
- : 'border-surface-300 focus:outline-primary-500 text-surface-900';
837
+ : 'border-neutral-300 focus:outline-primary-500 text-neutral-900';
1745
838
  return [...base, sizeMap[this.size()], stateClass].join(' ');
1746
839
  }, ...(ngDevMode ? [{ debugName: "inputClasses" }] : /* istanbul ignore next */ []));
1747
840
  // CVA
@@ -1774,7 +867,7 @@ class TailwindInput extends TailwindComponent {
1774
867
  useExisting: forwardRef(() => TailwindInput),
1775
868
  multi: true
1776
869
  }
1777
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"tailwind-input-wrapper flex flex-col gap-1.5\">\n @if (label()) {\n <label\n [attr.for]=\"id() ? id() + '-inner' : null\"\n class=\"text-sm font-medium text-surface-700\"\n [class.text-danger-600]=\"hasError()\">\n {{ label() }}\n </label>\n }\n\n <input\n [attr.id]=\"id() ? id() + '-inner' : null\"\n [type]=\"type()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"isDisabled()\"\n [readonly]=\"readonly()\"\n [attr.aria-invalid]=\"hasError() || null\"\n [attr.aria-describedby]=\"(helperText() || errorText()) && id() ? id() + '-helper' : null\"\n [value]=\"value()\"\n [class]=\"inputClasses()\"\n (input)=\"onInputChange($event)\"\n (blur)=\"onBlur()\" />\n\n @if (helperText() && !hasError()) {\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-surface-500\">\n {{ helperText() }}\n </p>\n }\n @if (errorText() && hasError()) {\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-danger-600\">\n {{ errorText() }}\n </p>\n }\n</div>\n", styles: [":host{display:block}\n"] });
870
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"tailwind-input-wrapper flex flex-col gap-1.5\">\n @if (label()) {\n <label\n [attr.for]=\"id() ? id() + '-inner' : null\"\n class=\"text-sm font-medium text-neutral-700\"\n [class.text-danger-600]=\"hasError()\">\n {{ label() }}\n </label>\n }\n\n <input\n [attr.id]=\"id() ? id() + '-inner' : null\"\n [type]=\"type()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"isDisabled()\"\n [readonly]=\"readonly()\"\n [attr.aria-invalid]=\"hasError() || null\"\n [attr.aria-describedby]=\"(helperText() || errorText()) && id() ? id() + '-helper' : null\"\n [value]=\"value()\"\n [class]=\"inputClasses()\"\n (input)=\"onInputChange($event)\"\n (blur)=\"onBlur()\" />\n\n @if (helperText() && !hasError()) {\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-neutral-500\">\n {{ helperText() }}\n </p>\n }\n @if (errorText() && hasError()) {\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-danger-600\">\n {{ errorText() }}\n </p>\n }\n</div>\n", styles: [":host{display:block}\n"] });
1778
871
  }
1779
872
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindInput, decorators: [{
1780
873
  type: Component,
@@ -1784,7 +877,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
1784
877
  useExisting: forwardRef(() => TailwindInput),
1785
878
  multi: true
1786
879
  }
1787
- ], template: "<div class=\"tailwind-input-wrapper flex flex-col gap-1.5\">\n @if (label()) {\n <label\n [attr.for]=\"id() ? id() + '-inner' : null\"\n class=\"text-sm font-medium text-surface-700\"\n [class.text-danger-600]=\"hasError()\">\n {{ label() }}\n </label>\n }\n\n <input\n [attr.id]=\"id() ? id() + '-inner' : null\"\n [type]=\"type()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"isDisabled()\"\n [readonly]=\"readonly()\"\n [attr.aria-invalid]=\"hasError() || null\"\n [attr.aria-describedby]=\"(helperText() || errorText()) && id() ? id() + '-helper' : null\"\n [value]=\"value()\"\n [class]=\"inputClasses()\"\n (input)=\"onInputChange($event)\"\n (blur)=\"onBlur()\" />\n\n @if (helperText() && !hasError()) {\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-surface-500\">\n {{ helperText() }}\n </p>\n }\n @if (errorText() && hasError()) {\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-danger-600\">\n {{ errorText() }}\n </p>\n }\n</div>\n", styles: [":host{display:block}\n"] }]
880
+ ], template: "<div class=\"tailwind-input-wrapper flex flex-col gap-1.5\">\n @if (label()) {\n <label\n [attr.for]=\"id() ? id() + '-inner' : null\"\n class=\"text-sm font-medium text-neutral-700\"\n [class.text-danger-600]=\"hasError()\">\n {{ label() }}\n </label>\n }\n\n <input\n [attr.id]=\"id() ? id() + '-inner' : null\"\n [type]=\"type()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"isDisabled()\"\n [readonly]=\"readonly()\"\n [attr.aria-invalid]=\"hasError() || null\"\n [attr.aria-describedby]=\"(helperText() || errorText()) && id() ? id() + '-helper' : null\"\n [value]=\"value()\"\n [class]=\"inputClasses()\"\n (input)=\"onInputChange($event)\"\n (blur)=\"onBlur()\" />\n\n @if (helperText() && !hasError()) {\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-neutral-500\">\n {{ helperText() }}\n </p>\n }\n @if (errorText() && hasError()) {\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-danger-600\">\n {{ errorText() }}\n </p>\n }\n</div>\n", styles: [":host{display:block}\n"] }]
1788
881
  }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], helperText: [{ type: i0.Input, args: [{ isSignal: true, alias: "helperText", required: false }] }], errorText: [{ type: i0.Input, args: [{ isSignal: true, alias: "errorText", required: false }] }], hasError: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasError", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }] } });
1789
882
 
1790
883
  class TailwindTextarea extends TailwindComponent {
@@ -1819,9 +912,9 @@ class TailwindTextarea extends TailwindComponent {
1819
912
  const base = [
1820
913
  'block w-full bg-white',
1821
914
  'border transition-colors duration-150',
1822
- 'placeholder:text-surface-400',
915
+ 'placeholder:text-neutral-400',
1823
916
  'outline-none focus:outline focus:outline-2 focus:outline-offset-2',
1824
- 'disabled:bg-surface-50 disabled:text-surface-400 disabled:cursor-not-allowed'
917
+ 'disabled:bg-neutral-50 disabled:text-neutral-400 disabled:cursor-not-allowed'
1825
918
  ];
1826
919
  const sizeMap = {
1827
920
  xs: 'text-xs px-2 py-1 rounded-sm min-h-[4.5rem]',
@@ -1838,7 +931,7 @@ class TailwindTextarea extends TailwindComponent {
1838
931
  };
1839
932
  const stateClass = this.hasError()
1840
933
  ? 'border-danger-400 focus:outline-danger-500 text-danger-900'
1841
- : 'border-surface-300 focus:outline-primary-500 text-surface-900';
934
+ : 'border-neutral-300 focus:outline-primary-500 text-neutral-900';
1842
935
  return [...base, sizeMap[this.size()], resizeMap[this.resize()], stateClass].join(' ');
1843
936
  }, ...(ngDevMode ? [{ debugName: "textareaClasses" }] : /* istanbul ignore next */ []));
1844
937
  onChange = () => { };
@@ -1870,7 +963,7 @@ class TailwindTextarea extends TailwindComponent {
1870
963
  useExisting: forwardRef(() => TailwindTextarea),
1871
964
  multi: true
1872
965
  }
1873
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"tailwind-textarea-wrapper flex flex-col gap-1.5\">\r\n @if (label()) {\r\n <label\r\n [attr.for]=\"id() ? id() + '-inner' : null\"\r\n class=\"text-sm font-medium text-surface-700\"\r\n [class.text-danger-600]=\"hasError()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <textarea\r\n [attr.id]=\"id() ? id() + '-inner' : null\"\r\n [placeholder]=\"placeholder()\"\r\n [rows]=\"rows()\"\r\n [attr.cols]=\"cols() ?? null\"\r\n [attr.maxlength]=\"maxlength() ?? null\"\r\n [disabled]=\"isDisabled()\"\r\n [readonly]=\"readonly()\"\r\n [attr.aria-invalid]=\"hasError() || null\"\r\n [attr.aria-describedby]=\"(helperText() || errorText()) && id() ? id() + '-helper' : null\"\r\n [value]=\"value()\"\r\n [class]=\"textareaClasses()\"\r\n (input)=\"onInputChange($event)\"\r\n (blur)=\"onBlur()\"></textarea>\r\n\r\n @if (helperText() && !hasError()) {\r\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-surface-500\">\r\n {{ helperText() }}\r\n </p>\r\n }\r\n @if (errorText() && hasError()) {\r\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-danger-600\">\r\n {{ errorText() }}\r\n </p>\r\n }\r\n</div>\r\n", styles: [":host{display:block}\n"] });
966
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"tailwind-textarea-wrapper flex flex-col gap-1.5\">\r\n @if (label()) {\r\n <label\r\n [attr.for]=\"id() ? id() + '-inner' : null\"\r\n class=\"text-sm font-medium text-neutral-700\"\r\n [class.text-danger-600]=\"hasError()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <textarea\r\n [attr.id]=\"id() ? id() + '-inner' : null\"\r\n [placeholder]=\"placeholder()\"\r\n [rows]=\"rows()\"\r\n [attr.cols]=\"cols() ?? null\"\r\n [attr.maxlength]=\"maxlength() ?? null\"\r\n [disabled]=\"isDisabled()\"\r\n [readonly]=\"readonly()\"\r\n [attr.aria-invalid]=\"hasError() || null\"\r\n [attr.aria-describedby]=\"(helperText() || errorText()) && id() ? id() + '-helper' : null\"\r\n [value]=\"value()\"\r\n [class]=\"textareaClasses()\"\r\n (input)=\"onInputChange($event)\"\r\n (blur)=\"onBlur()\"></textarea>\r\n\r\n @if (helperText() && !hasError()) {\r\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-neutral-500\">\r\n {{ helperText() }}\r\n </p>\r\n }\r\n @if (errorText() && hasError()) {\r\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-danger-600\">\r\n {{ errorText() }}\r\n </p>\r\n }\r\n</div>\r\n", styles: [":host{display:block}\n"] });
1874
967
  }
1875
968
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindTextarea, decorators: [{
1876
969
  type: Component,
@@ -1880,7 +973,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
1880
973
  useExisting: forwardRef(() => TailwindTextarea),
1881
974
  multi: true
1882
975
  }
1883
- ], template: "<div class=\"tailwind-textarea-wrapper flex flex-col gap-1.5\">\r\n @if (label()) {\r\n <label\r\n [attr.for]=\"id() ? id() + '-inner' : null\"\r\n class=\"text-sm font-medium text-surface-700\"\r\n [class.text-danger-600]=\"hasError()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <textarea\r\n [attr.id]=\"id() ? id() + '-inner' : null\"\r\n [placeholder]=\"placeholder()\"\r\n [rows]=\"rows()\"\r\n [attr.cols]=\"cols() ?? null\"\r\n [attr.maxlength]=\"maxlength() ?? null\"\r\n [disabled]=\"isDisabled()\"\r\n [readonly]=\"readonly()\"\r\n [attr.aria-invalid]=\"hasError() || null\"\r\n [attr.aria-describedby]=\"(helperText() || errorText()) && id() ? id() + '-helper' : null\"\r\n [value]=\"value()\"\r\n [class]=\"textareaClasses()\"\r\n (input)=\"onInputChange($event)\"\r\n (blur)=\"onBlur()\"></textarea>\r\n\r\n @if (helperText() && !hasError()) {\r\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-surface-500\">\r\n {{ helperText() }}\r\n </p>\r\n }\r\n @if (errorText() && hasError()) {\r\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-danger-600\">\r\n {{ errorText() }}\r\n </p>\r\n }\r\n</div>\r\n", styles: [":host{display:block}\n"] }]
976
+ ], template: "<div class=\"tailwind-textarea-wrapper flex flex-col gap-1.5\">\r\n @if (label()) {\r\n <label\r\n [attr.for]=\"id() ? id() + '-inner' : null\"\r\n class=\"text-sm font-medium text-neutral-700\"\r\n [class.text-danger-600]=\"hasError()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <textarea\r\n [attr.id]=\"id() ? id() + '-inner' : null\"\r\n [placeholder]=\"placeholder()\"\r\n [rows]=\"rows()\"\r\n [attr.cols]=\"cols() ?? null\"\r\n [attr.maxlength]=\"maxlength() ?? null\"\r\n [disabled]=\"isDisabled()\"\r\n [readonly]=\"readonly()\"\r\n [attr.aria-invalid]=\"hasError() || null\"\r\n [attr.aria-describedby]=\"(helperText() || errorText()) && id() ? id() + '-helper' : null\"\r\n [value]=\"value()\"\r\n [class]=\"textareaClasses()\"\r\n (input)=\"onInputChange($event)\"\r\n (blur)=\"onBlur()\"></textarea>\r\n\r\n @if (helperText() && !hasError()) {\r\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-neutral-500\">\r\n {{ helperText() }}\r\n </p>\r\n }\r\n @if (errorText() && hasError()) {\r\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-danger-600\">\r\n {{ errorText() }}\r\n </p>\r\n }\r\n</div>\r\n", styles: [":host{display:block}\n"] }]
1884
977
  }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: false }] }], cols: [{ type: i0.Input, args: [{ isSignal: true, alias: "cols", required: false }] }], maxlength: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxlength", required: false }] }], resize: [{ type: i0.Input, args: [{ isSignal: true, alias: "resize", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], helperText: [{ type: i0.Input, args: [{ isSignal: true, alias: "helperText", required: false }] }], errorText: [{ type: i0.Input, args: [{ isSignal: true, alias: "errorText", required: false }] }], hasError: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasError", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }] } });
1885
978
 
1886
979
  class TailwindUpload extends TailwindComponent {
@@ -1931,10 +1024,13 @@ class TailwindUpload extends TailwindComponent {
1931
1024
  'transition-colors duration-150 outline-none focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2'
1932
1025
  ];
1933
1026
  if (this.isDisabled()) {
1934
- return [...base, 'cursor-not-allowed opacity-50 bg-surface-50 border-surface-200 text-surface-500'].join(' ');
1027
+ return [...base, 'cursor-not-allowed opacity-50 bg-neutral-50 border-neutral-200 text-neutral-500'].join(' ');
1935
1028
  }
1936
1029
  if (this.isDragOver()) {
1937
- return [...base, 'cursor-pointer border-primary-500 bg-primary-50/60 text-surface-800 focus-visible:outline-primary-500'].join(' ');
1030
+ return [
1031
+ ...base,
1032
+ 'cursor-pointer border-primary-500 bg-primary-50/60 text-neutral-800 focus-visible:outline-primary-500'
1033
+ ].join(' ');
1938
1034
  }
1939
1035
  if (this.hasError()) {
1940
1036
  return [
@@ -1944,7 +1040,7 @@ class TailwindUpload extends TailwindComponent {
1944
1040
  }
1945
1041
  return [
1946
1042
  ...base,
1947
- 'cursor-pointer border-surface-300 bg-surface-50/50 text-surface-800 focus-visible:outline-primary-500',
1043
+ 'cursor-pointer border-neutral-300 bg-neutral-50/50 text-neutral-800 focus-visible:outline-primary-500',
1948
1044
  'hover:border-primary-400 hover:bg-primary-50/30'
1949
1045
  ].join(' ');
1950
1046
  }, ...(ngDevMode ? [{ debugName: "areaClasses" }] : /* istanbul ignore next */ []));
@@ -2033,7 +1129,7 @@ class TailwindUpload extends TailwindComponent {
2033
1129
  const max = this.maxFileSizeBytes();
2034
1130
  if (max == null)
2035
1131
  return null;
2036
- const tooLarge = files.filter((f) => f.size > max);
1132
+ const tooLarge = files.filter(f => f.size > max);
2037
1133
  if (tooLarge.length === 0)
2038
1134
  return null;
2039
1135
  const maxLabel = max >= 1024 * 1024
@@ -2055,9 +1151,9 @@ class TailwindUpload extends TailwindComponent {
2055
1151
  this.validationError.emit(err);
2056
1152
  return;
2057
1153
  }
2058
- this.selectedNames.set(files.map((f) => f.name));
1154
+ this.selectedNames.set(files.map(f => f.name));
2059
1155
  try {
2060
- const dataUrls = await Promise.all(files.map((f) => this.readAsDataUrl(f)));
1156
+ const dataUrls = await Promise.all(files.map(f => this.readAsDataUrl(f)));
2061
1157
  this.filesSelected.emit(files);
2062
1158
  const primary = dataUrls[0] ?? '';
2063
1159
  this.value.set(primary);
@@ -2090,7 +1186,7 @@ class TailwindUpload extends TailwindComponent {
2090
1186
  useExisting: forwardRef(() => TailwindUpload),
2091
1187
  multi: true
2092
1188
  }
2093
- ], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"tailwind-upload-wrapper flex flex-col gap-1.5\">\r\n @if (label()) {\r\n <label\r\n [attr.for]=\"fileInputId()\"\r\n class=\"text-sm font-medium text-surface-700\"\r\n [class.text-danger-600]=\"hasError()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <input\r\n #fileInput\r\n type=\"file\"\r\n class=\"sr-only\"\r\n [attr.id]=\"fileInputId()\"\r\n [accept]=\"accept() ?? null\"\r\n [attr.multiple]=\"multiple() ? '' : null\"\r\n [disabled]=\"isDisabled()\"\r\n [attr.aria-invalid]=\"hasError() || null\"\r\n [attr.aria-describedby]=\"helperText() || errorText() ? fileInputId() + '-helper' : null\"\r\n (change)=\"onNativeChange($event)\"\r\n (blur)=\"blurHost()\" />\r\n\r\n @if (variant() === 'button') {\r\n <div class=\"flex flex-wrap items-center gap-2\">\r\n <tailwind-button\r\n type=\"button\"\r\n color=\"primary\"\r\n kind=\"solid\"\r\n [size]=\"size()\"\r\n [disabled]=\"isDisabled()\"\r\n (onClick)=\"triggerPicker($event)\">\r\n {{ buttonLabel() }}\r\n </tailwind-button>\r\n @if (showClear() && value()) {\r\n <button\r\n type=\"button\"\r\n class=\"text-sm font-medium text-primary-600 underline-offset-2 hover:underline disabled:cursor-not-allowed disabled:opacity-50\"\r\n [disabled]=\"isDisabled()\"\r\n (click)=\"clear($event)\">\r\n {{ clearText() }}\r\n </button>\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"flex flex-col gap-2\">\r\n <div\r\n role=\"button\"\r\n tabindex=\"0\"\r\n [class]=\"areaClasses()\"\r\n [attr.aria-disabled]=\"isDisabled() || null\"\r\n (click)=\"triggerPicker($event)\"\r\n (keydown)=\"onKeydownArea($event)\"\r\n (dragenter)=\"onDragEnter($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (drop)=\"onDrop($event)\">\r\n <tailwind-icon icon=\"cloud-upload\" [size]=\"40\" />\r\n <span class=\"text-sm font-medium\">{{ areaTitle() }}</span>\r\n <span class=\"text-xs text-surface-500\">{{ areaHint() }}</span>\r\n </div>\r\n @if (showClear() && value()) {\r\n <button\r\n type=\"button\"\r\n class=\"self-start text-sm font-medium text-primary-600 underline-offset-2 hover:underline disabled:cursor-not-allowed disabled:opacity-50\"\r\n [disabled]=\"isDisabled()\"\r\n (click)=\"clear($event)\">\r\n {{ clearText() }}\r\n </button>\r\n }\r\n </div>\r\n }\r\n\r\n @if (selectedNames().length) {\r\n <p class=\"truncate text-xs text-surface-600\" [attr.title]=\"selectedNames().join(', ')\">\r\n {{ selectedNames().join(', ') }}\r\n </p>\r\n }\r\n\r\n @if (helperText() && !hasError()) {\r\n <p [attr.id]=\"fileInputId() + '-helper'\" class=\"text-xs text-surface-500\">\r\n {{ helperText() }}\r\n </p>\r\n }\r\n @if (errorText() && hasError()) {\r\n <p [attr.id]=\"fileInputId() + '-helper'\" class=\"text-xs text-danger-600\">\r\n {{ errorText() }}\r\n </p>\r\n }\r\n</div>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: TailwindIcon, selector: "tailwind-icon", inputs: ["icon", "size"] }, { kind: "component", type: TailwindButton, selector: "tailwind-button", inputs: ["color", "kind", "size", "disabled", "type"], outputs: ["onClick"] }] });
1189
+ ], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"tailwind-upload-wrapper flex flex-col gap-1.5\">\r\n @if (label()) {\r\n <label [attr.for]=\"fileInputId()\" class=\"text-sm font-medium text-neutral-700\" [class.text-danger-600]=\"hasError()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <input\r\n #fileInput\r\n type=\"file\"\r\n class=\"sr-only\"\r\n [attr.id]=\"fileInputId()\"\r\n [accept]=\"accept() ?? null\"\r\n [attr.multiple]=\"multiple() ? '' : null\"\r\n [disabled]=\"isDisabled()\"\r\n [attr.aria-invalid]=\"hasError() || null\"\r\n [attr.aria-describedby]=\"helperText() || errorText() ? fileInputId() + '-helper' : null\"\r\n (change)=\"onNativeChange($event)\"\r\n (blur)=\"blurHost()\" />\r\n\r\n @if (variant() === 'button') {\r\n <div class=\"flex flex-wrap items-center gap-2\">\r\n <tailwind-button\r\n type=\"button\"\r\n color=\"primary\"\r\n kind=\"solid\"\r\n [size]=\"size()\"\r\n [disabled]=\"isDisabled()\"\r\n (onClick)=\"triggerPicker($event)\">\r\n {{ buttonLabel() }}\r\n </tailwind-button>\r\n @if (showClear() && value()) {\r\n <button\r\n type=\"button\"\r\n class=\"text-sm font-medium text-primary-600 underline-offset-2 hover:underline disabled:cursor-not-allowed disabled:opacity-50\"\r\n [disabled]=\"isDisabled()\"\r\n (click)=\"clear($event)\">\r\n {{ clearText() }}\r\n </button>\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"flex flex-col gap-2\">\r\n <div\r\n role=\"button\"\r\n tabindex=\"0\"\r\n [class]=\"areaClasses()\"\r\n [attr.aria-disabled]=\"isDisabled() || null\"\r\n (click)=\"triggerPicker($event)\"\r\n (keydown)=\"onKeydownArea($event)\"\r\n (dragenter)=\"onDragEnter($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (drop)=\"onDrop($event)\">\r\n <tailwind-icon icon=\"cloud-arrow-up\" [size]=\"40\" />\r\n <span class=\"text-sm font-medium\">{{ areaTitle() }}</span>\r\n <span class=\"text-xs text-neutral-500\">{{ areaHint() }}</span>\r\n </div>\r\n @if (showClear() && value()) {\r\n <button\r\n type=\"button\"\r\n class=\"self-start text-sm font-medium text-primary-600 underline-offset-2 hover:underline disabled:cursor-not-allowed disabled:opacity-50\"\r\n [disabled]=\"isDisabled()\"\r\n (click)=\"clear($event)\">\r\n {{ clearText() }}\r\n </button>\r\n }\r\n </div>\r\n }\r\n\r\n @if (selectedNames().length) {\r\n <p class=\"truncate text-xs text-neutral-600\" [attr.title]=\"selectedNames().join(', ')\">\r\n {{ selectedNames().join(', ') }}\r\n </p>\r\n }\r\n\r\n @if (helperText() && !hasError()) {\r\n <p [attr.id]=\"fileInputId() + '-helper'\" class=\"text-xs text-neutral-500\">\r\n {{ helperText() }}\r\n </p>\r\n }\r\n @if (errorText() && hasError()) {\r\n <p [attr.id]=\"fileInputId() + '-helper'\" class=\"text-xs text-danger-600\">\r\n {{ errorText() }}\r\n </p>\r\n }\r\n</div>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: TailwindIcon, selector: "tailwind-icon", inputs: ["icon", "size"] }, { kind: "component", type: TailwindButton, selector: "tailwind-button", inputs: ["color", "kind", "size", "disabled", "type"], outputs: ["onClick"] }] });
2094
1190
  }
2095
1191
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindUpload, decorators: [{
2096
1192
  type: Component,
@@ -2100,7 +1196,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
2100
1196
  useExisting: forwardRef(() => TailwindUpload),
2101
1197
  multi: true
2102
1198
  }
2103
- ], template: "<div class=\"tailwind-upload-wrapper flex flex-col gap-1.5\">\r\n @if (label()) {\r\n <label\r\n [attr.for]=\"fileInputId()\"\r\n class=\"text-sm font-medium text-surface-700\"\r\n [class.text-danger-600]=\"hasError()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <input\r\n #fileInput\r\n type=\"file\"\r\n class=\"sr-only\"\r\n [attr.id]=\"fileInputId()\"\r\n [accept]=\"accept() ?? null\"\r\n [attr.multiple]=\"multiple() ? '' : null\"\r\n [disabled]=\"isDisabled()\"\r\n [attr.aria-invalid]=\"hasError() || null\"\r\n [attr.aria-describedby]=\"helperText() || errorText() ? fileInputId() + '-helper' : null\"\r\n (change)=\"onNativeChange($event)\"\r\n (blur)=\"blurHost()\" />\r\n\r\n @if (variant() === 'button') {\r\n <div class=\"flex flex-wrap items-center gap-2\">\r\n <tailwind-button\r\n type=\"button\"\r\n color=\"primary\"\r\n kind=\"solid\"\r\n [size]=\"size()\"\r\n [disabled]=\"isDisabled()\"\r\n (onClick)=\"triggerPicker($event)\">\r\n {{ buttonLabel() }}\r\n </tailwind-button>\r\n @if (showClear() && value()) {\r\n <button\r\n type=\"button\"\r\n class=\"text-sm font-medium text-primary-600 underline-offset-2 hover:underline disabled:cursor-not-allowed disabled:opacity-50\"\r\n [disabled]=\"isDisabled()\"\r\n (click)=\"clear($event)\">\r\n {{ clearText() }}\r\n </button>\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"flex flex-col gap-2\">\r\n <div\r\n role=\"button\"\r\n tabindex=\"0\"\r\n [class]=\"areaClasses()\"\r\n [attr.aria-disabled]=\"isDisabled() || null\"\r\n (click)=\"triggerPicker($event)\"\r\n (keydown)=\"onKeydownArea($event)\"\r\n (dragenter)=\"onDragEnter($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (drop)=\"onDrop($event)\">\r\n <tailwind-icon icon=\"cloud-upload\" [size]=\"40\" />\r\n <span class=\"text-sm font-medium\">{{ areaTitle() }}</span>\r\n <span class=\"text-xs text-surface-500\">{{ areaHint() }}</span>\r\n </div>\r\n @if (showClear() && value()) {\r\n <button\r\n type=\"button\"\r\n class=\"self-start text-sm font-medium text-primary-600 underline-offset-2 hover:underline disabled:cursor-not-allowed disabled:opacity-50\"\r\n [disabled]=\"isDisabled()\"\r\n (click)=\"clear($event)\">\r\n {{ clearText() }}\r\n </button>\r\n }\r\n </div>\r\n }\r\n\r\n @if (selectedNames().length) {\r\n <p class=\"truncate text-xs text-surface-600\" [attr.title]=\"selectedNames().join(', ')\">\r\n {{ selectedNames().join(', ') }}\r\n </p>\r\n }\r\n\r\n @if (helperText() && !hasError()) {\r\n <p [attr.id]=\"fileInputId() + '-helper'\" class=\"text-xs text-surface-500\">\r\n {{ helperText() }}\r\n </p>\r\n }\r\n @if (errorText() && hasError()) {\r\n <p [attr.id]=\"fileInputId() + '-helper'\" class=\"text-xs text-danger-600\">\r\n {{ errorText() }}\r\n </p>\r\n }\r\n</div>\r\n", styles: [":host{display:block}\n"] }]
1199
+ ], template: "<div class=\"tailwind-upload-wrapper flex flex-col gap-1.5\">\r\n @if (label()) {\r\n <label [attr.for]=\"fileInputId()\" class=\"text-sm font-medium text-neutral-700\" [class.text-danger-600]=\"hasError()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <input\r\n #fileInput\r\n type=\"file\"\r\n class=\"sr-only\"\r\n [attr.id]=\"fileInputId()\"\r\n [accept]=\"accept() ?? null\"\r\n [attr.multiple]=\"multiple() ? '' : null\"\r\n [disabled]=\"isDisabled()\"\r\n [attr.aria-invalid]=\"hasError() || null\"\r\n [attr.aria-describedby]=\"helperText() || errorText() ? fileInputId() + '-helper' : null\"\r\n (change)=\"onNativeChange($event)\"\r\n (blur)=\"blurHost()\" />\r\n\r\n @if (variant() === 'button') {\r\n <div class=\"flex flex-wrap items-center gap-2\">\r\n <tailwind-button\r\n type=\"button\"\r\n color=\"primary\"\r\n kind=\"solid\"\r\n [size]=\"size()\"\r\n [disabled]=\"isDisabled()\"\r\n (onClick)=\"triggerPicker($event)\">\r\n {{ buttonLabel() }}\r\n </tailwind-button>\r\n @if (showClear() && value()) {\r\n <button\r\n type=\"button\"\r\n class=\"text-sm font-medium text-primary-600 underline-offset-2 hover:underline disabled:cursor-not-allowed disabled:opacity-50\"\r\n [disabled]=\"isDisabled()\"\r\n (click)=\"clear($event)\">\r\n {{ clearText() }}\r\n </button>\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"flex flex-col gap-2\">\r\n <div\r\n role=\"button\"\r\n tabindex=\"0\"\r\n [class]=\"areaClasses()\"\r\n [attr.aria-disabled]=\"isDisabled() || null\"\r\n (click)=\"triggerPicker($event)\"\r\n (keydown)=\"onKeydownArea($event)\"\r\n (dragenter)=\"onDragEnter($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (drop)=\"onDrop($event)\">\r\n <tailwind-icon icon=\"cloud-arrow-up\" [size]=\"40\" />\r\n <span class=\"text-sm font-medium\">{{ areaTitle() }}</span>\r\n <span class=\"text-xs text-neutral-500\">{{ areaHint() }}</span>\r\n </div>\r\n @if (showClear() && value()) {\r\n <button\r\n type=\"button\"\r\n class=\"self-start text-sm font-medium text-primary-600 underline-offset-2 hover:underline disabled:cursor-not-allowed disabled:opacity-50\"\r\n [disabled]=\"isDisabled()\"\r\n (click)=\"clear($event)\">\r\n {{ clearText() }}\r\n </button>\r\n }\r\n </div>\r\n }\r\n\r\n @if (selectedNames().length) {\r\n <p class=\"truncate text-xs text-neutral-600\" [attr.title]=\"selectedNames().join(', ')\">\r\n {{ selectedNames().join(', ') }}\r\n </p>\r\n }\r\n\r\n @if (helperText() && !hasError()) {\r\n <p [attr.id]=\"fileInputId() + '-helper'\" class=\"text-xs text-neutral-500\">\r\n {{ helperText() }}\r\n </p>\r\n }\r\n @if (errorText() && hasError()) {\r\n <p [attr.id]=\"fileInputId() + '-helper'\" class=\"text-xs text-danger-600\">\r\n {{ errorText() }}\r\n </p>\r\n }\r\n</div>\r\n", styles: [":host{display:block}\n"] }]
2104
1200
  }], propDecorators: { fileInput: [{ type: i0.ViewChild, args: ['fileInput', { isSignal: true }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], buttonLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "buttonLabel", required: false }] }], areaTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "areaTitle", required: false }] }], areaHint: [{ type: i0.Input, args: [{ isSignal: true, alias: "areaHint", required: false }] }], accept: [{ type: i0.Input, args: [{ isSignal: true, alias: "accept", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], maxFileSizeBytes: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxFileSizeBytes", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], showClear: [{ type: i0.Input, args: [{ isSignal: true, alias: "showClear", required: false }] }], clearText: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearText", required: false }] }], helperText: [{ type: i0.Input, args: [{ isSignal: true, alias: "helperText", required: false }] }], errorText: [{ type: i0.Input, args: [{ isSignal: true, alias: "errorText", required: false }] }], hasError: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasError", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], filesSelected: [{ type: i0.Output, args: ["filesSelected"] }], validationError: [{ type: i0.Output, args: ["validationError"] }] } });
2105
1201
 
2106
1202
  class TailwindInputOtp extends TailwindComponent {
@@ -2145,7 +1241,7 @@ class TailwindInputOtp extends TailwindComponent {
2145
1241
  'block w-10 text-center font-mono tabular-nums bg-white',
2146
1242
  'border transition-colors duration-150',
2147
1243
  'outline-none focus:outline focus:outline-2 focus:outline-offset-2',
2148
- 'disabled:bg-surface-50 disabled:text-surface-400 disabled:cursor-not-allowed'
1244
+ 'disabled:bg-neutral-50 disabled:text-neutral-400 disabled:cursor-not-allowed'
2149
1245
  ];
2150
1246
  const sizeMap = {
2151
1247
  xs: 'text-xs px-1 py-1 rounded-sm min-w-7',
@@ -2156,7 +1252,7 @@ class TailwindInputOtp extends TailwindComponent {
2156
1252
  };
2157
1253
  const stateClass = this.hasError()
2158
1254
  ? 'border-danger-400 focus:outline-danger-500 text-danger-900'
2159
- : 'border-surface-300 focus:outline-primary-500 text-surface-900';
1255
+ : 'border-neutral-300 focus:outline-primary-500 text-neutral-900';
2160
1256
  return [...base, sizeMap[this.size()], stateClass].join(' ');
2161
1257
  }, ...(ngDevMode ? [{ debugName: "cellClasses" }] : /* istanbul ignore next */ []));
2162
1258
  groupAriaLabel = computed(() => this.label() || this.ariaLabel(), ...(ngDevMode ? [{ debugName: "groupAriaLabel" }] : /* istanbul ignore next */ []));
@@ -2323,7 +1419,7 @@ class TailwindInputOtp extends TailwindComponent {
2323
1419
  useExisting: forwardRef(() => TailwindInputOtp),
2324
1420
  multi: true
2325
1421
  }
2326
- ], viewQueries: [{ propertyName: "otpInputs", predicate: ["otpDigit"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"tailwind-input-otp-wrapper flex flex-col gap-1.5\">\r\n @if (label()) {\r\n <label\r\n [attr.for]=\"cellId(0)\"\r\n class=\"text-sm font-medium text-surface-700\"\r\n [class.text-danger-600]=\"hasError()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <div role=\"group\" [attr.aria-label]=\"groupAriaLabel()\" class=\"flex flex-wrap items-center gap-2\">\r\n @for (idx of slotIndexes(); track idx) {\r\n <input\r\n #otpDigit\r\n [attr.id]=\"cellId(idx)\"\r\n [type]=\"inputType()\"\r\n [attr.inputmode]=\"inputMode()\"\r\n [attr.autocomplete]=\"autocompleteForSlot(idx)\"\r\n [attr.aria-label]=\"'Digit ' + (idx + 1) + ' of ' + slotIndexes().length\"\r\n [disabled]=\"isDisabled()\"\r\n [readonly]=\"readonly()\"\r\n [attr.aria-invalid]=\"hasError() || null\"\r\n [attr.aria-describedby]=\"(helperText() || errorText()) && id() ? id() + '-helper' : null\"\r\n maxlength=\"1\"\r\n spellcheck=\"false\"\r\n [class]=\"cellClasses()\"\r\n [value]=\"digitAt(idx)\"\r\n (input)=\"onInput($event, idx)\"\r\n (keydown)=\"onKeydown($event, idx)\"\r\n (paste)=\"onPaste($event, idx)\"\r\n (focus)=\"onSlotFocus(idx)\" />\r\n @if (showSeparatorAfter(idx)) {\r\n <span class=\"select-none text-surface-500\" aria-hidden=\"true\">{{ separator() }}</span>\r\n }\r\n }\r\n </div>\r\n\r\n @if (helperText() && !hasError()) {\r\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-surface-500\">\r\n {{ helperText() }}\r\n </p>\r\n }\r\n @if (errorText() && hasError()) {\r\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-danger-600\">\r\n {{ errorText() }}\r\n </p>\r\n }\r\n</div>\r\n", styles: [":host{display:block}\n"] });
1422
+ ], viewQueries: [{ propertyName: "otpInputs", predicate: ["otpDigit"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"tailwind-input-otp-wrapper flex flex-col gap-1.5\">\r\n @if (label()) {\r\n <label [attr.for]=\"cellId(0)\" class=\"text-sm font-medium text-neutral-700\" [class.text-danger-600]=\"hasError()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <div role=\"group\" [attr.aria-label]=\"groupAriaLabel()\" class=\"flex flex-wrap items-center gap-2\">\r\n @for (idx of slotIndexes(); track idx) {\r\n <input\r\n #otpDigit\r\n [attr.id]=\"cellId(idx)\"\r\n [type]=\"inputType()\"\r\n [attr.inputmode]=\"inputMode()\"\r\n [attr.autocomplete]=\"autocompleteForSlot(idx)\"\r\n [attr.aria-label]=\"'Digit ' + (idx + 1) + ' of ' + slotIndexes().length\"\r\n [disabled]=\"isDisabled()\"\r\n [readonly]=\"readonly()\"\r\n [attr.aria-invalid]=\"hasError() || null\"\r\n [attr.aria-describedby]=\"(helperText() || errorText()) && id() ? id() + '-helper' : null\"\r\n maxlength=\"1\"\r\n spellcheck=\"false\"\r\n [class]=\"cellClasses()\"\r\n [value]=\"digitAt(idx)\"\r\n (input)=\"onInput($event, idx)\"\r\n (keydown)=\"onKeydown($event, idx)\"\r\n (paste)=\"onPaste($event, idx)\"\r\n (focus)=\"onSlotFocus(idx)\" />\r\n @if (showSeparatorAfter(idx)) {\r\n <span class=\"select-none text-neutral-500\" aria-hidden=\"true\">{{ separator() }}</span>\r\n }\r\n }\r\n </div>\r\n\r\n @if (helperText() && !hasError()) {\r\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-neutral-500\">\r\n {{ helperText() }}\r\n </p>\r\n }\r\n @if (errorText() && hasError()) {\r\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-danger-600\">\r\n {{ errorText() }}\r\n </p>\r\n }\r\n</div>\r\n", styles: [":host{display:block}\n"] });
2327
1423
  }
2328
1424
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindInputOtp, decorators: [{
2329
1425
  type: Component,
@@ -2333,7 +1429,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
2333
1429
  useExisting: forwardRef(() => TailwindInputOtp),
2334
1430
  multi: true
2335
1431
  }
2336
- ], template: "<div class=\"tailwind-input-otp-wrapper flex flex-col gap-1.5\">\r\n @if (label()) {\r\n <label\r\n [attr.for]=\"cellId(0)\"\r\n class=\"text-sm font-medium text-surface-700\"\r\n [class.text-danger-600]=\"hasError()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <div role=\"group\" [attr.aria-label]=\"groupAriaLabel()\" class=\"flex flex-wrap items-center gap-2\">\r\n @for (idx of slotIndexes(); track idx) {\r\n <input\r\n #otpDigit\r\n [attr.id]=\"cellId(idx)\"\r\n [type]=\"inputType()\"\r\n [attr.inputmode]=\"inputMode()\"\r\n [attr.autocomplete]=\"autocompleteForSlot(idx)\"\r\n [attr.aria-label]=\"'Digit ' + (idx + 1) + ' of ' + slotIndexes().length\"\r\n [disabled]=\"isDisabled()\"\r\n [readonly]=\"readonly()\"\r\n [attr.aria-invalid]=\"hasError() || null\"\r\n [attr.aria-describedby]=\"(helperText() || errorText()) && id() ? id() + '-helper' : null\"\r\n maxlength=\"1\"\r\n spellcheck=\"false\"\r\n [class]=\"cellClasses()\"\r\n [value]=\"digitAt(idx)\"\r\n (input)=\"onInput($event, idx)\"\r\n (keydown)=\"onKeydown($event, idx)\"\r\n (paste)=\"onPaste($event, idx)\"\r\n (focus)=\"onSlotFocus(idx)\" />\r\n @if (showSeparatorAfter(idx)) {\r\n <span class=\"select-none text-surface-500\" aria-hidden=\"true\">{{ separator() }}</span>\r\n }\r\n }\r\n </div>\r\n\r\n @if (helperText() && !hasError()) {\r\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-surface-500\">\r\n {{ helperText() }}\r\n </p>\r\n }\r\n @if (errorText() && hasError()) {\r\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-danger-600\">\r\n {{ errorText() }}\r\n </p>\r\n }\r\n</div>\r\n", styles: [":host{display:block}\n"] }]
1432
+ ], template: "<div class=\"tailwind-input-otp-wrapper flex flex-col gap-1.5\">\r\n @if (label()) {\r\n <label [attr.for]=\"cellId(0)\" class=\"text-sm font-medium text-neutral-700\" [class.text-danger-600]=\"hasError()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <div role=\"group\" [attr.aria-label]=\"groupAriaLabel()\" class=\"flex flex-wrap items-center gap-2\">\r\n @for (idx of slotIndexes(); track idx) {\r\n <input\r\n #otpDigit\r\n [attr.id]=\"cellId(idx)\"\r\n [type]=\"inputType()\"\r\n [attr.inputmode]=\"inputMode()\"\r\n [attr.autocomplete]=\"autocompleteForSlot(idx)\"\r\n [attr.aria-label]=\"'Digit ' + (idx + 1) + ' of ' + slotIndexes().length\"\r\n [disabled]=\"isDisabled()\"\r\n [readonly]=\"readonly()\"\r\n [attr.aria-invalid]=\"hasError() || null\"\r\n [attr.aria-describedby]=\"(helperText() || errorText()) && id() ? id() + '-helper' : null\"\r\n maxlength=\"1\"\r\n spellcheck=\"false\"\r\n [class]=\"cellClasses()\"\r\n [value]=\"digitAt(idx)\"\r\n (input)=\"onInput($event, idx)\"\r\n (keydown)=\"onKeydown($event, idx)\"\r\n (paste)=\"onPaste($event, idx)\"\r\n (focus)=\"onSlotFocus(idx)\" />\r\n @if (showSeparatorAfter(idx)) {\r\n <span class=\"select-none text-neutral-500\" aria-hidden=\"true\">{{ separator() }}</span>\r\n }\r\n }\r\n </div>\r\n\r\n @if (helperText() && !hasError()) {\r\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-neutral-500\">\r\n {{ helperText() }}\r\n </p>\r\n }\r\n @if (errorText() && hasError()) {\r\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-danger-600\">\r\n {{ errorText() }}\r\n </p>\r\n }\r\n</div>\r\n", styles: [":host{display:block}\n"] }]
2337
1433
  }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], length: [{ type: i0.Input, args: [{ isSignal: true, alias: "length", required: false }] }], integerOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "integerOnly", required: false }] }], mask: [{ type: i0.Input, args: [{ isSignal: true, alias: "mask", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], helperText: [{ type: i0.Input, args: [{ isSignal: true, alias: "helperText", required: false }] }], errorText: [{ type: i0.Input, args: [{ isSignal: true, alias: "errorText", required: false }] }], hasError: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasError", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], separator: [{ type: i0.Input, args: [{ isSignal: true, alias: "separator", required: false }] }], separatorAfterIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "separatorAfterIndex", required: false }] }], autocomplete: [{ type: i0.Input, args: [{ isSignal: true, alias: "autocomplete", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], completed: [{ type: i0.Output, args: ["completed"] }], otpInputs: [{ type: i0.ViewChildren, args: ['otpDigit', { isSignal: true }] }] } });
2338
1434
 
2339
1435
  class TailwindCheckbox extends TailwindComponent {
@@ -2387,7 +1483,7 @@ class TailwindCheckbox extends TailwindComponent {
2387
1483
  useExisting: forwardRef(() => TailwindCheckbox),
2388
1484
  multi: true
2389
1485
  }
2390
- ], usesInheritance: true, ngImport: i0, template: "<div\n class=\"inline-flex items-center gap-2.5 select-none\"\n [class.opacity-50]=\"isDisabled()\">\n <label\n class=\"relative flex items-center justify-center shrink-0\"\n [class.cursor-pointer]=\"!isDisabled()\"\n [class.cursor-not-allowed]=\"isDisabled()\"\n [attr.for]=\"id() ? id() + '-inner' : null\">\n <input\n [attr.id]=\"id() ? id() + '-inner' : null\"\n type=\"checkbox\"\n class=\"peer sr-only\"\n [checked]=\"checked()\"\n [disabled]=\"isDisabled()\"\n [attr.aria-describedby]=\"description() && id() ? id() + '-desc' : null\"\n [attr.aria-labelledby]=\"label() && id() ? id() + '-label' : null\"\n (change)=\"onCheckboxChange($event)\" />\n <div\n class=\"w-full h-full border-2 transition-all duration-150 peer-focus-visible:ring-2 peer-focus-visible:ring-primary-500/30 peer-focus-visible:ring-offset-1\"\n [class.rounded-sm]=\"size() === 'xs' || size() === 'sm'\"\n [class.rounded-md]=\"size() !== 'xs' && size() !== 'sm'\"\n [class.border-surface-300]=\"!checked()\"\n [class.bg-white]=\"!checked()\"\n [class.border-primary-600]=\"checked()\"\n [class.bg-primary-600]=\"checked()\">\n @if (checked()) {\n <svg class=\"w-full h-full text-white p-0.5\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n d=\"M13.5 4.5L6.5 11.5L3 8\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n }\n </div>\n </label>\n\n <div class=\"flex flex-col gap-0.5 pt-0.5\">\n @if (label()) {\n <span [attr.id]=\"id() ? id() + '-label' : null\" class=\"text-sm font-medium text-surface-800 leading-tight\">{{\n label()\n }}</span>\n }\n @if (description()) {\n <span [attr.id]=\"id() ? id() + '-desc' : null\" class=\"text-xs text-surface-500 leading-snug\">\n {{ description() }}\n </span>\n }\n </div>\n</div>\n", styles: [":host{display:inline-block}\n"] });
1486
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"inline-flex items-center gap-2.5 select-none\" [class.opacity-50]=\"isDisabled()\">\n <label\n class=\"relative flex items-center justify-center shrink-0\"\n [class.cursor-pointer]=\"!isDisabled()\"\n [class.cursor-not-allowed]=\"isDisabled()\"\n [attr.for]=\"id() ? id() + '-inner' : null\">\n <input\n [attr.id]=\"id() ? id() + '-inner' : null\"\n type=\"checkbox\"\n class=\"peer sr-only\"\n [checked]=\"checked()\"\n [disabled]=\"isDisabled()\"\n [attr.aria-describedby]=\"description() && id() ? id() + '-desc' : null\"\n [attr.aria-labelledby]=\"label() && id() ? id() + '-label' : null\"\n (change)=\"onCheckboxChange($event)\" />\n <div\n class=\"w-full h-full border-2 transition-all duration-150 peer-focus-visible:ring-2 peer-focus-visible:ring-primary-500/30 peer-focus-visible:ring-offset-1\"\n [class.rounded-sm]=\"size() === 'xs' || size() === 'sm'\"\n [class.rounded-md]=\"size() !== 'xs' && size() !== 'sm'\"\n [class.border-neutral-300]=\"!checked()\"\n [class.bg-white]=\"!checked()\"\n [class.border-primary-600]=\"checked()\"\n [class.bg-primary-600]=\"checked()\">\n @if (checked()) {\n <svg class=\"w-full h-full text-white p-0.5\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n d=\"M13.5 4.5L6.5 11.5L3 8\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n }\n </div>\n </label>\n\n <div class=\"flex flex-col gap-0.5 pt-0.5\">\n @if (label()) {\n <span [attr.id]=\"id() ? id() + '-label' : null\" class=\"text-sm font-medium text-neutral-800 leading-tight\">{{\n label()\n }}</span>\n }\n @if (description()) {\n <span [attr.id]=\"id() ? id() + '-desc' : null\" class=\"text-xs text-neutral-500 leading-snug\">\n {{ description() }}\n </span>\n }\n </div>\n</div>\n", styles: [":host{display:inline-block}\n"] });
2391
1487
  }
2392
1488
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindCheckbox, decorators: [{
2393
1489
  type: Component,
@@ -2397,7 +1493,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
2397
1493
  useExisting: forwardRef(() => TailwindCheckbox),
2398
1494
  multi: true
2399
1495
  }
2400
- ], template: "<div\n class=\"inline-flex items-center gap-2.5 select-none\"\n [class.opacity-50]=\"isDisabled()\">\n <label\n class=\"relative flex items-center justify-center shrink-0\"\n [class.cursor-pointer]=\"!isDisabled()\"\n [class.cursor-not-allowed]=\"isDisabled()\"\n [attr.for]=\"id() ? id() + '-inner' : null\">\n <input\n [attr.id]=\"id() ? id() + '-inner' : null\"\n type=\"checkbox\"\n class=\"peer sr-only\"\n [checked]=\"checked()\"\n [disabled]=\"isDisabled()\"\n [attr.aria-describedby]=\"description() && id() ? id() + '-desc' : null\"\n [attr.aria-labelledby]=\"label() && id() ? id() + '-label' : null\"\n (change)=\"onCheckboxChange($event)\" />\n <div\n class=\"w-full h-full border-2 transition-all duration-150 peer-focus-visible:ring-2 peer-focus-visible:ring-primary-500/30 peer-focus-visible:ring-offset-1\"\n [class.rounded-sm]=\"size() === 'xs' || size() === 'sm'\"\n [class.rounded-md]=\"size() !== 'xs' && size() !== 'sm'\"\n [class.border-surface-300]=\"!checked()\"\n [class.bg-white]=\"!checked()\"\n [class.border-primary-600]=\"checked()\"\n [class.bg-primary-600]=\"checked()\">\n @if (checked()) {\n <svg class=\"w-full h-full text-white p-0.5\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n d=\"M13.5 4.5L6.5 11.5L3 8\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n }\n </div>\n </label>\n\n <div class=\"flex flex-col gap-0.5 pt-0.5\">\n @if (label()) {\n <span [attr.id]=\"id() ? id() + '-label' : null\" class=\"text-sm font-medium text-surface-800 leading-tight\">{{\n label()\n }}</span>\n }\n @if (description()) {\n <span [attr.id]=\"id() ? id() + '-desc' : null\" class=\"text-xs text-surface-500 leading-snug\">\n {{ description() }}\n </span>\n }\n </div>\n</div>\n", styles: [":host{display:inline-block}\n"] }]
1496
+ ], template: "<div class=\"inline-flex items-center gap-2.5 select-none\" [class.opacity-50]=\"isDisabled()\">\n <label\n class=\"relative flex items-center justify-center shrink-0\"\n [class.cursor-pointer]=\"!isDisabled()\"\n [class.cursor-not-allowed]=\"isDisabled()\"\n [attr.for]=\"id() ? id() + '-inner' : null\">\n <input\n [attr.id]=\"id() ? id() + '-inner' : null\"\n type=\"checkbox\"\n class=\"peer sr-only\"\n [checked]=\"checked()\"\n [disabled]=\"isDisabled()\"\n [attr.aria-describedby]=\"description() && id() ? id() + '-desc' : null\"\n [attr.aria-labelledby]=\"label() && id() ? id() + '-label' : null\"\n (change)=\"onCheckboxChange($event)\" />\n <div\n class=\"w-full h-full border-2 transition-all duration-150 peer-focus-visible:ring-2 peer-focus-visible:ring-primary-500/30 peer-focus-visible:ring-offset-1\"\n [class.rounded-sm]=\"size() === 'xs' || size() === 'sm'\"\n [class.rounded-md]=\"size() !== 'xs' && size() !== 'sm'\"\n [class.border-neutral-300]=\"!checked()\"\n [class.bg-white]=\"!checked()\"\n [class.border-primary-600]=\"checked()\"\n [class.bg-primary-600]=\"checked()\">\n @if (checked()) {\n <svg class=\"w-full h-full text-white p-0.5\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n d=\"M13.5 4.5L6.5 11.5L3 8\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n }\n </div>\n </label>\n\n <div class=\"flex flex-col gap-0.5 pt-0.5\">\n @if (label()) {\n <span [attr.id]=\"id() ? id() + '-label' : null\" class=\"text-sm font-medium text-neutral-800 leading-tight\">{{\n label()\n }}</span>\n }\n @if (description()) {\n <span [attr.id]=\"id() ? id() + '-desc' : null\" class=\"text-xs text-neutral-500 leading-snug\">\n {{ description() }}\n </span>\n }\n </div>\n</div>\n", styles: [":host{display:inline-block}\n"] }]
2401
1497
  }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }, { type: i0.Output, args: ["checkedChange"] }] } });
2402
1498
 
2403
1499
  class TailwindRadioGroup extends TailwindComponent {
@@ -2466,7 +1562,7 @@ class TailwindRadioGroup extends TailwindComponent {
2466
1562
  useExisting: forwardRef(() => TailwindRadioGroup),
2467
1563
  multi: true
2468
1564
  }
2469
- ], usesInheritance: true, ngImport: i0, template: "<fieldset\n class=\"flex gap-3\"\n [class.flex-col]=\"orientation() === 'vertical'\"\n [attr.aria-label]=\"ariaLabel()\"\n role=\"radiogroup\">\n @if (label()) {\n <legend class=\"text-sm font-medium text-surface-700 mb-2\">{{ label() }}</legend>\n }\n\n @for (option of options(); track option.value) {\n <label\n class=\"inline-flex items-start gap-2.5 cursor-pointer select-none\"\n [class.cursor-not-allowed]=\"isDisabled() || option.disabled\"\n [class.opacity-50]=\"isDisabled() || option.disabled\">\n <div class=\"relative flex items-center justify-center shrink-0\" [class]=\"radioSizeClass()\">\n <input\n type=\"radio\"\n class=\"peer sr-only\"\n [name]=\"name()\"\n [value]=\"option.value\"\n [checked]=\"value() === option.value\"\n [disabled]=\"isDisabled() || !!option.disabled\"\n (change)=\"onRadioChange(option.value)\" />\n <div\n class=\"w-full h-full rounded-full border-2 transition-all duration-150 peer-focus-visible:ring-2 peer-focus-visible:ring-primary-500/30 peer-focus-visible:ring-offset-1 flex items-center justify-center\"\n [class.border-surface-300]=\"value() !== option.value\"\n [class.border-primary-600]=\"value() === option.value\">\n @if (value() === option.value) {\n <div\n class=\"rounded-full bg-primary-600 transition-transform duration-150 scale-100\"\n [class]=\"dotSizeClass()\"></div>\n }\n </div>\n </div>\n\n <div class=\"flex flex-col gap-0.5 pt-0.5\">\n <span class=\"text-sm font-medium text-surface-800 leading-tight\">{{ option.label }}</span>\n @if (option.description) {\n <span class=\"text-xs text-surface-500 leading-snug\">{{ option.description }}</span>\n }\n </div>\n </label>\n }\n</fieldset>\n", styles: [":host{display:block}\n"] });
1565
+ ], usesInheritance: true, ngImport: i0, template: "<fieldset\n class=\"flex gap-3\"\n [class.flex-col]=\"orientation() === 'vertical'\"\n [attr.aria-label]=\"ariaLabel()\"\n role=\"radiogroup\">\n @if (label()) {\n <legend class=\"text-sm font-medium text-neutral-700 mb-2\">{{ label() }}</legend>\n }\n\n @for (option of options(); track option.value) {\n <label\n class=\"inline-flex items-start gap-2.5 cursor-pointer select-none\"\n [class.cursor-not-allowed]=\"isDisabled() || option.disabled\"\n [class.opacity-50]=\"isDisabled() || option.disabled\">\n <div class=\"relative flex items-center justify-center shrink-0\" [class]=\"radioSizeClass()\">\n <input\n type=\"radio\"\n class=\"peer sr-only\"\n [name]=\"name()\"\n [value]=\"option.value\"\n [checked]=\"value() === option.value\"\n [disabled]=\"isDisabled() || !!option.disabled\"\n (change)=\"onRadioChange(option.value)\" />\n <div\n class=\"w-full h-full rounded-full border-2 transition-all duration-150 peer-focus-visible:ring-2 peer-focus-visible:ring-primary-500/30 peer-focus-visible:ring-offset-1 flex items-center justify-center\"\n [class.border-neutral-300]=\"value() !== option.value\"\n [class.border-primary-600]=\"value() === option.value\">\n @if (value() === option.value) {\n <div\n class=\"rounded-full bg-primary-600 transition-transform duration-150 scale-100\"\n [class]=\"dotSizeClass()\"></div>\n }\n </div>\n </div>\n\n <div class=\"flex flex-col gap-0.5 pt-0.5\">\n <span class=\"text-sm font-medium text-neutral-800 leading-tight\">{{ option.label }}</span>\n @if (option.description) {\n <span class=\"text-xs text-neutral-500 leading-snug\">{{ option.description }}</span>\n }\n </div>\n </label>\n }\n</fieldset>\n", styles: [":host{display:block}\n"] });
2470
1566
  }
2471
1567
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindRadioGroup, decorators: [{
2472
1568
  type: Component,
@@ -2476,7 +1572,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
2476
1572
  useExisting: forwardRef(() => TailwindRadioGroup),
2477
1573
  multi: true
2478
1574
  }
2479
- ], template: "<fieldset\n class=\"flex gap-3\"\n [class.flex-col]=\"orientation() === 'vertical'\"\n [attr.aria-label]=\"ariaLabel()\"\n role=\"radiogroup\">\n @if (label()) {\n <legend class=\"text-sm font-medium text-surface-700 mb-2\">{{ label() }}</legend>\n }\n\n @for (option of options(); track option.value) {\n <label\n class=\"inline-flex items-start gap-2.5 cursor-pointer select-none\"\n [class.cursor-not-allowed]=\"isDisabled() || option.disabled\"\n [class.opacity-50]=\"isDisabled() || option.disabled\">\n <div class=\"relative flex items-center justify-center shrink-0\" [class]=\"radioSizeClass()\">\n <input\n type=\"radio\"\n class=\"peer sr-only\"\n [name]=\"name()\"\n [value]=\"option.value\"\n [checked]=\"value() === option.value\"\n [disabled]=\"isDisabled() || !!option.disabled\"\n (change)=\"onRadioChange(option.value)\" />\n <div\n class=\"w-full h-full rounded-full border-2 transition-all duration-150 peer-focus-visible:ring-2 peer-focus-visible:ring-primary-500/30 peer-focus-visible:ring-offset-1 flex items-center justify-center\"\n [class.border-surface-300]=\"value() !== option.value\"\n [class.border-primary-600]=\"value() === option.value\">\n @if (value() === option.value) {\n <div\n class=\"rounded-full bg-primary-600 transition-transform duration-150 scale-100\"\n [class]=\"dotSizeClass()\"></div>\n }\n </div>\n </div>\n\n <div class=\"flex flex-col gap-0.5 pt-0.5\">\n <span class=\"text-sm font-medium text-surface-800 leading-tight\">{{ option.label }}</span>\n @if (option.description) {\n <span class=\"text-xs text-surface-500 leading-snug\">{{ option.description }}</span>\n }\n </div>\n </label>\n }\n</fieldset>\n", styles: [":host{display:block}\n"] }]
1575
+ ], template: "<fieldset\n class=\"flex gap-3\"\n [class.flex-col]=\"orientation() === 'vertical'\"\n [attr.aria-label]=\"ariaLabel()\"\n role=\"radiogroup\">\n @if (label()) {\n <legend class=\"text-sm font-medium text-neutral-700 mb-2\">{{ label() }}</legend>\n }\n\n @for (option of options(); track option.value) {\n <label\n class=\"inline-flex items-start gap-2.5 cursor-pointer select-none\"\n [class.cursor-not-allowed]=\"isDisabled() || option.disabled\"\n [class.opacity-50]=\"isDisabled() || option.disabled\">\n <div class=\"relative flex items-center justify-center shrink-0\" [class]=\"radioSizeClass()\">\n <input\n type=\"radio\"\n class=\"peer sr-only\"\n [name]=\"name()\"\n [value]=\"option.value\"\n [checked]=\"value() === option.value\"\n [disabled]=\"isDisabled() || !!option.disabled\"\n (change)=\"onRadioChange(option.value)\" />\n <div\n class=\"w-full h-full rounded-full border-2 transition-all duration-150 peer-focus-visible:ring-2 peer-focus-visible:ring-primary-500/30 peer-focus-visible:ring-offset-1 flex items-center justify-center\"\n [class.border-neutral-300]=\"value() !== option.value\"\n [class.border-primary-600]=\"value() === option.value\">\n @if (value() === option.value) {\n <div\n class=\"rounded-full bg-primary-600 transition-transform duration-150 scale-100\"\n [class]=\"dotSizeClass()\"></div>\n }\n </div>\n </div>\n\n <div class=\"flex flex-col gap-0.5 pt-0.5\">\n <span class=\"text-sm font-medium text-neutral-800 leading-tight\">{{ option.label }}</span>\n @if (option.description) {\n <span class=\"text-xs text-neutral-500 leading-snug\">{{ option.description }}</span>\n }\n </div>\n </label>\n }\n</fieldset>\n", styles: [":host{display:block}\n"] }]
2480
1576
  }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }] } });
2481
1577
 
2482
1578
  class TailwindSelect extends TailwindComponent {
@@ -2538,14 +1634,14 @@ class TailwindSelect extends TailwindComponent {
2538
1634
  };
2539
1635
  const stateClass = this.hasError()
2540
1636
  ? 'border-danger-400 focus:outline-danger-500 text-danger-900'
2541
- : 'border-surface-300 focus:outline-primary-500';
1637
+ : 'border-neutral-300 focus:outline-primary-500';
2542
1638
  const layout = this.multiple() ? 'items-start' : 'items-center';
2543
1639
  return [
2544
1640
  'flex justify-between w-full bg-white border transition-colors duration-150',
2545
1641
  layout,
2546
1642
  'pr-3 cursor-pointer text-left',
2547
1643
  'outline-none focus:outline focus:outline-2 focus:outline-offset-2',
2548
- 'disabled:bg-surface-50 disabled:text-surface-400 disabled:cursor-not-allowed',
1644
+ 'disabled:bg-neutral-50 disabled:text-neutral-400 disabled:cursor-not-allowed',
2549
1645
  sizeMap[this.size()],
2550
1646
  stateClass
2551
1647
  ].join(' ');
@@ -2573,12 +1669,12 @@ class TailwindSelect extends TailwindComponent {
2573
1669
  return [
2574
1670
  'flex items-center justify-between px-3 py-2 text-sm cursor-pointer select-none',
2575
1671
  isDisabled
2576
- ? 'text-surface-400 cursor-not-allowed'
1672
+ ? 'text-neutral-400 cursor-not-allowed'
2577
1673
  : isSelected
2578
1674
  ? 'bg-primary-50 text-primary-700 font-medium'
2579
1675
  : isActive
2580
- ? 'bg-surface-100 text-surface-900'
2581
- : 'text-surface-800 hover:bg-surface-50'
1676
+ ? 'bg-neutral-100 text-neutral-900'
1677
+ : 'text-neutral-800 hover:bg-neutral-50'
2582
1678
  ].join(' ');
2583
1679
  }
2584
1680
  // CVA
@@ -2763,7 +1859,7 @@ class TailwindSelect extends TailwindComponent {
2763
1859
  useExisting: forwardRef(() => TailwindSelect),
2764
1860
  multi: true
2765
1861
  }
2766
- ], viewQueries: [{ propertyName: "panelTemplate", first: true, predicate: ["panelTemplate"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-col gap-1.5\">\n @if (label()) {\n <label\n [attr.for]=\"id() ? id() + '-inner' : null\"\n class=\"text-sm font-medium text-surface-700\"\n [class.text-danger-600]=\"hasError()\">\n {{ label() }}\n </label>\n }\n\n <!-- Trigger button -->\n <button\n type=\"button\"\n [attr.id]=\"id() ? id() + '-inner' : null\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-invalid]=\"hasError() || null\"\n [attr.aria-describedby]=\"(helperText() || errorText()) && id() ? id() + '-helper' : null\"\n [disabled]=\"isDisabled()\"\n [class]=\"triggerClasses()\"\n (click)=\"toggleDropdown()\"\n (keydown)=\"onKeydown($event)\">\n @if (multiple()) {\n <span class=\"flex flex-wrap gap-1 flex-1 min-w-0 mr-2\" [class.text-surface-400]=\"selectedOptions().length === 0\">\n @if (selectedOptions().length === 0) {\n {{ placeholder() }}\n } @else {\n @for (opt of selectedOptions(); track opt) {\n <span class=\"rounded-md bg-surface-100 px-2 py-0.5 text-sm text-surface-800\">{{ opt.label }}</span>\n }\n }\n </span>\n } @else {\n <span [class.text-surface-400]=\"!selectedOption()\">\n {{ selectedOption()?.label ?? placeholder() }}\n </span>\n }\n\n <svg\n class=\"shrink-0 ml-2 w-4 h-4 text-surface-400 transition-transform duration-150\"\n [class.rotate-180]=\"isOpen()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\">\n <path\n fill-rule=\"evenodd\"\n d=\"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n\n @if (helperText() && !hasError()) {\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-surface-500\">{{ helperText() }}</p>\n }\n @if (errorText() && hasError()) {\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-danger-600\">{{ errorText() }}</p>\n }\n</div>\n\n<!-- Dropdown panel \u2014 rendered via CDK Overlay outside the component DOM -->\n<ng-template #panelTemplate>\n <ul\n role=\"listbox\"\n [attr.aria-multiselectable]=\"multiple() ? true : null\"\n class=\"w-full bg-white border border-surface-200 rounded-md shadow-lg py-1 max-h-60 overflow-auto\">\n @if (placeholder()) {\n <li role=\"option\" aria-disabled=\"true\" class=\"px-3 py-2 text-sm text-surface-400 cursor-default select-none\">\n {{ placeholder() }}\n </li>\n }\n @for (option of options(); track option.value; let i = $index) {\n <li\n role=\"option\"\n [attr.aria-selected]=\"isOptionSelected(option)\"\n [attr.aria-disabled]=\"option.disabled || null\"\n [class]=\"optionClasses(i, option)\"\n (click)=\"selectOption(option)\"\n (mouseenter)=\"!option.disabled && activeIndex.set(i)\">\n <span>{{ option.label }}</span>\n\n @if (isOptionSelected(option)) {\n <svg\n class=\"w-4 h-4 text-primary-600 shrink-0\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\">\n <path\n fill-rule=\"evenodd\"\n d=\"M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z\"\n clip-rule=\"evenodd\" />\n </svg>\n }\n </li>\n }\n </ul>\n</ng-template>\n", styles: [":host{display:block}\n"] });
1862
+ ], viewQueries: [{ propertyName: "panelTemplate", first: true, predicate: ["panelTemplate"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-col gap-1.5\">\n @if (label()) {\n <label\n [attr.for]=\"id() ? id() + '-inner' : null\"\n class=\"text-sm font-medium text-neutral-700\"\n [class.text-danger-600]=\"hasError()\">\n {{ label() }}\n </label>\n }\n\n <!-- Trigger button -->\n <button\n type=\"button\"\n [attr.id]=\"id() ? id() + '-inner' : null\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-invalid]=\"hasError() || null\"\n [attr.aria-describedby]=\"(helperText() || errorText()) && id() ? id() + '-helper' : null\"\n [disabled]=\"isDisabled()\"\n [class]=\"triggerClasses()\"\n (click)=\"toggleDropdown()\"\n (keydown)=\"onKeydown($event)\">\n @if (multiple()) {\n <span class=\"flex flex-wrap gap-1 flex-1 min-w-0 mr-2\" [class.text-neutral-400]=\"selectedOptions().length === 0\">\n @if (selectedOptions().length === 0) {\n {{ placeholder() }}\n } @else {\n @for (opt of selectedOptions(); track opt) {\n <span class=\"rounded-md bg-neutral-100 px-2 py-0.5 text-sm text-neutral-800\">{{ opt.label }}</span>\n }\n }\n </span>\n } @else {\n <span [class.text-neutral-400]=\"!selectedOption()\">\n {{ selectedOption()?.label ?? placeholder() }}\n </span>\n }\n\n <svg\n class=\"shrink-0 ml-2 w-4 h-4 text-neutral-400 transition-transform duration-150\"\n [class.rotate-180]=\"isOpen()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\">\n <path\n fill-rule=\"evenodd\"\n d=\"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n\n @if (helperText() && !hasError()) {\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-neutral-500\">{{ helperText() }}</p>\n }\n @if (errorText() && hasError()) {\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-danger-600\">{{ errorText() }}</p>\n }\n</div>\n\n<!-- Dropdown panel \u2014 rendered via CDK Overlay outside the component DOM -->\n<ng-template #panelTemplate>\n <ul\n role=\"listbox\"\n [attr.aria-multiselectable]=\"multiple() ? true : null\"\n class=\"w-full bg-white border border-neutral-200 rounded-md shadow-lg py-1 max-h-60 overflow-auto\">\n @if (placeholder()) {\n <li role=\"option\" aria-disabled=\"true\" class=\"px-3 py-2 text-sm text-neutral-400 cursor-default select-none\">\n {{ placeholder() }}\n </li>\n }\n @for (option of options(); track option.value; let i = $index) {\n <li\n role=\"option\"\n [attr.aria-selected]=\"isOptionSelected(option)\"\n [attr.aria-disabled]=\"option.disabled || null\"\n [class]=\"optionClasses(i, option)\"\n (click)=\"selectOption(option)\"\n (mouseenter)=\"!option.disabled && activeIndex.set(i)\">\n <span>{{ option.label }}</span>\n\n @if (isOptionSelected(option)) {\n <svg\n class=\"w-4 h-4 text-primary-600 shrink-0\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\">\n <path\n fill-rule=\"evenodd\"\n d=\"M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z\"\n clip-rule=\"evenodd\" />\n </svg>\n }\n </li>\n }\n </ul>\n</ng-template>\n", styles: [":host{display:block}\n"] });
2767
1863
  }
2768
1864
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindSelect, decorators: [{
2769
1865
  type: Component,
@@ -2773,7 +1869,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
2773
1869
  useExisting: forwardRef(() => TailwindSelect),
2774
1870
  multi: true
2775
1871
  }
2776
- ], template: "<div class=\"flex flex-col gap-1.5\">\n @if (label()) {\n <label\n [attr.for]=\"id() ? id() + '-inner' : null\"\n class=\"text-sm font-medium text-surface-700\"\n [class.text-danger-600]=\"hasError()\">\n {{ label() }}\n </label>\n }\n\n <!-- Trigger button -->\n <button\n type=\"button\"\n [attr.id]=\"id() ? id() + '-inner' : null\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-invalid]=\"hasError() || null\"\n [attr.aria-describedby]=\"(helperText() || errorText()) && id() ? id() + '-helper' : null\"\n [disabled]=\"isDisabled()\"\n [class]=\"triggerClasses()\"\n (click)=\"toggleDropdown()\"\n (keydown)=\"onKeydown($event)\">\n @if (multiple()) {\n <span class=\"flex flex-wrap gap-1 flex-1 min-w-0 mr-2\" [class.text-surface-400]=\"selectedOptions().length === 0\">\n @if (selectedOptions().length === 0) {\n {{ placeholder() }}\n } @else {\n @for (opt of selectedOptions(); track opt) {\n <span class=\"rounded-md bg-surface-100 px-2 py-0.5 text-sm text-surface-800\">{{ opt.label }}</span>\n }\n }\n </span>\n } @else {\n <span [class.text-surface-400]=\"!selectedOption()\">\n {{ selectedOption()?.label ?? placeholder() }}\n </span>\n }\n\n <svg\n class=\"shrink-0 ml-2 w-4 h-4 text-surface-400 transition-transform duration-150\"\n [class.rotate-180]=\"isOpen()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\">\n <path\n fill-rule=\"evenodd\"\n d=\"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n\n @if (helperText() && !hasError()) {\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-surface-500\">{{ helperText() }}</p>\n }\n @if (errorText() && hasError()) {\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-danger-600\">{{ errorText() }}</p>\n }\n</div>\n\n<!-- Dropdown panel \u2014 rendered via CDK Overlay outside the component DOM -->\n<ng-template #panelTemplate>\n <ul\n role=\"listbox\"\n [attr.aria-multiselectable]=\"multiple() ? true : null\"\n class=\"w-full bg-white border border-surface-200 rounded-md shadow-lg py-1 max-h-60 overflow-auto\">\n @if (placeholder()) {\n <li role=\"option\" aria-disabled=\"true\" class=\"px-3 py-2 text-sm text-surface-400 cursor-default select-none\">\n {{ placeholder() }}\n </li>\n }\n @for (option of options(); track option.value; let i = $index) {\n <li\n role=\"option\"\n [attr.aria-selected]=\"isOptionSelected(option)\"\n [attr.aria-disabled]=\"option.disabled || null\"\n [class]=\"optionClasses(i, option)\"\n (click)=\"selectOption(option)\"\n (mouseenter)=\"!option.disabled && activeIndex.set(i)\">\n <span>{{ option.label }}</span>\n\n @if (isOptionSelected(option)) {\n <svg\n class=\"w-4 h-4 text-primary-600 shrink-0\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\">\n <path\n fill-rule=\"evenodd\"\n d=\"M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z\"\n clip-rule=\"evenodd\" />\n </svg>\n }\n </li>\n }\n </ul>\n</ng-template>\n", styles: [":host{display:block}\n"] }]
1872
+ ], template: "<div class=\"flex flex-col gap-1.5\">\n @if (label()) {\n <label\n [attr.for]=\"id() ? id() + '-inner' : null\"\n class=\"text-sm font-medium text-neutral-700\"\n [class.text-danger-600]=\"hasError()\">\n {{ label() }}\n </label>\n }\n\n <!-- Trigger button -->\n <button\n type=\"button\"\n [attr.id]=\"id() ? id() + '-inner' : null\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-invalid]=\"hasError() || null\"\n [attr.aria-describedby]=\"(helperText() || errorText()) && id() ? id() + '-helper' : null\"\n [disabled]=\"isDisabled()\"\n [class]=\"triggerClasses()\"\n (click)=\"toggleDropdown()\"\n (keydown)=\"onKeydown($event)\">\n @if (multiple()) {\n <span class=\"flex flex-wrap gap-1 flex-1 min-w-0 mr-2\" [class.text-neutral-400]=\"selectedOptions().length === 0\">\n @if (selectedOptions().length === 0) {\n {{ placeholder() }}\n } @else {\n @for (opt of selectedOptions(); track opt) {\n <span class=\"rounded-md bg-neutral-100 px-2 py-0.5 text-sm text-neutral-800\">{{ opt.label }}</span>\n }\n }\n </span>\n } @else {\n <span [class.text-neutral-400]=\"!selectedOption()\">\n {{ selectedOption()?.label ?? placeholder() }}\n </span>\n }\n\n <svg\n class=\"shrink-0 ml-2 w-4 h-4 text-neutral-400 transition-transform duration-150\"\n [class.rotate-180]=\"isOpen()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\">\n <path\n fill-rule=\"evenodd\"\n d=\"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n\n @if (helperText() && !hasError()) {\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-neutral-500\">{{ helperText() }}</p>\n }\n @if (errorText() && hasError()) {\n <p [attr.id]=\"id() ? id() + '-helper' : null\" class=\"text-xs text-danger-600\">{{ errorText() }}</p>\n }\n</div>\n\n<!-- Dropdown panel \u2014 rendered via CDK Overlay outside the component DOM -->\n<ng-template #panelTemplate>\n <ul\n role=\"listbox\"\n [attr.aria-multiselectable]=\"multiple() ? true : null\"\n class=\"w-full bg-white border border-neutral-200 rounded-md shadow-lg py-1 max-h-60 overflow-auto\">\n @if (placeholder()) {\n <li role=\"option\" aria-disabled=\"true\" class=\"px-3 py-2 text-sm text-neutral-400 cursor-default select-none\">\n {{ placeholder() }}\n </li>\n }\n @for (option of options(); track option.value; let i = $index) {\n <li\n role=\"option\"\n [attr.aria-selected]=\"isOptionSelected(option)\"\n [attr.aria-disabled]=\"option.disabled || null\"\n [class]=\"optionClasses(i, option)\"\n (click)=\"selectOption(option)\"\n (mouseenter)=\"!option.disabled && activeIndex.set(i)\">\n <span>{{ option.label }}</span>\n\n @if (isOptionSelected(option)) {\n <svg\n class=\"w-4 h-4 text-primary-600 shrink-0\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\">\n <path\n fill-rule=\"evenodd\"\n d=\"M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z\"\n clip-rule=\"evenodd\" />\n </svg>\n }\n </li>\n }\n </ul>\n</ng-template>\n", styles: [":host{display:block}\n"] }]
2777
1873
  }], propDecorators: { panelTemplate: [{ type: i0.ViewChild, args: ['panelTemplate', { isSignal: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], helperText: [{ type: i0.Input, args: [{ isSignal: true, alias: "helperText", required: false }] }], errorText: [{ type: i0.Input, args: [{ isSignal: true, alias: "errorText", required: false }] }], hasError: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasError", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }] } });
2778
1874
 
2779
1875
  class TailwindToggle extends TailwindComponent {
@@ -2803,7 +1899,7 @@ class TailwindToggle extends TailwindComponent {
2803
1899
  'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600',
2804
1900
  'cursor-pointer disabled:cursor-not-allowed'
2805
1901
  ];
2806
- const stateClass = this.checked() ? 'bg-primary-600' : 'bg-surface-300';
1902
+ const stateClass = this.checked() ? 'bg-primary-600' : 'bg-neutral-300';
2807
1903
  return [...base, sizeMap[this.size()], stateClass].join(' ');
2808
1904
  }, ...(ngDevMode ? [{ debugName: "trackClasses" }] : /* istanbul ignore next */ []));
2809
1905
  /** `aria-label` / `aria-labelledby` for the switch (label text is not a hit target) */
@@ -2870,7 +1966,7 @@ class TailwindToggle extends TailwindComponent {
2870
1966
  useExisting: forwardRef(() => TailwindToggle),
2871
1967
  multi: true
2872
1968
  }
2873
- ], usesInheritance: true, ngImport: i0, template: "<div\n class=\"inline-flex items-center gap-3 select-none\"\n [class.opacity-50]=\"isDisabled()\">\n <button\n type=\"button\"\n role=\"switch\"\n [attr.aria-checked]=\"checked()\"\n [attr.aria-label]=\"switchAria().label\"\n [attr.aria-labelledby]=\"switchAria().labelledBy\"\n [disabled]=\"isDisabled()\"\n [class]=\"trackClasses()\"\n (click)=\"toggle()\">\n <span [class]=\"thumbClasses()\" aria-hidden=\"true\"></span>\n </button>\n\n @if (label()) {\n <span [attr.id]=\"id() ? id() + '-label' : null\" class=\"text-sm font-medium text-surface-800\">{{ label() }}</span>\n }\n</div>\n", styles: [":host{display:inline-block}\n"] });
1969
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"inline-flex items-center gap-3 select-none\" [class.opacity-50]=\"isDisabled()\">\n <button\n type=\"button\"\n role=\"switch\"\n [attr.aria-checked]=\"checked()\"\n [attr.aria-label]=\"switchAria().label\"\n [attr.aria-labelledby]=\"switchAria().labelledBy\"\n [disabled]=\"isDisabled()\"\n [class]=\"trackClasses()\"\n (click)=\"toggle()\">\n <span [class]=\"thumbClasses()\" aria-hidden=\"true\"></span>\n </button>\n\n @if (label()) {\n <span [attr.id]=\"id() ? id() + '-label' : null\" class=\"text-sm font-medium text-neutral-800\">{{ label() }}</span>\n }\n</div>\n", styles: [":host{display:inline-block}\n"] });
2874
1970
  }
2875
1971
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindToggle, decorators: [{
2876
1972
  type: Component,
@@ -2880,7 +1976,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
2880
1976
  useExisting: forwardRef(() => TailwindToggle),
2881
1977
  multi: true
2882
1978
  }
2883
- ], template: "<div\n class=\"inline-flex items-center gap-3 select-none\"\n [class.opacity-50]=\"isDisabled()\">\n <button\n type=\"button\"\n role=\"switch\"\n [attr.aria-checked]=\"checked()\"\n [attr.aria-label]=\"switchAria().label\"\n [attr.aria-labelledby]=\"switchAria().labelledBy\"\n [disabled]=\"isDisabled()\"\n [class]=\"trackClasses()\"\n (click)=\"toggle()\">\n <span [class]=\"thumbClasses()\" aria-hidden=\"true\"></span>\n </button>\n\n @if (label()) {\n <span [attr.id]=\"id() ? id() + '-label' : null\" class=\"text-sm font-medium text-surface-800\">{{ label() }}</span>\n }\n</div>\n", styles: [":host{display:inline-block}\n"] }]
1979
+ ], template: "<div class=\"inline-flex items-center gap-3 select-none\" [class.opacity-50]=\"isDisabled()\">\n <button\n type=\"button\"\n role=\"switch\"\n [attr.aria-checked]=\"checked()\"\n [attr.aria-label]=\"switchAria().label\"\n [attr.aria-labelledby]=\"switchAria().labelledBy\"\n [disabled]=\"isDisabled()\"\n [class]=\"trackClasses()\"\n (click)=\"toggle()\">\n <span [class]=\"thumbClasses()\" aria-hidden=\"true\"></span>\n </button>\n\n @if (label()) {\n <span [attr.id]=\"id() ? id() + '-label' : null\" class=\"text-sm font-medium text-neutral-800\">{{ label() }}</span>\n }\n</div>\n", styles: [":host{display:inline-block}\n"] }]
2884
1980
  }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }, { type: i0.Output, args: ["checkedChange"] }] } });
2885
1981
 
2886
1982
  class TailwindBadge extends TailwindComponent {
@@ -2898,7 +1994,7 @@ class TailwindBadge extends TailwindComponent {
2898
1994
  const base = ['inline-flex items-center gap-1 font-medium', 'leading-none'];
2899
1995
  const variantMap = {
2900
1996
  primary: 'bg-primary-100 text-primary-700',
2901
- neutral: 'bg-surface-100 text-surface-700',
1997
+ neutral: 'bg-neutral-100 text-neutral-700',
2902
1998
  success: 'bg-success-100 text-success-700',
2903
1999
  warning: 'bg-warning-100 text-warning-800',
2904
2000
  danger: 'bg-danger-100 text-danger-700',
@@ -2925,19 +2021,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
2925
2021
  class TailwindTitle extends TailwindComponent {
2926
2022
  /** Visible title text */
2927
2023
  text = input.required(...(ngDevMode ? [{ debugName: "text" }] : /* istanbul ignore next */ []));
2928
- /** Optional Solar Line Duotone icon name (shown before `text`) */
2024
+ /** Optional Heroicons outline icon name (shown before `text`) */
2929
2025
  icon = input(...(ngDevMode ? [undefined, { debugName: "icon" }] : /* istanbul ignore next */ []));
2930
2026
  /** HTML heading element */
2931
2027
  titleTag = input('h2', ...(ngDevMode ? [{ debugName: "titleTag" }] : /* istanbul ignore next */ []));
2932
2028
  headingClasses = computed(() => {
2933
2029
  const tag = this.titleTag();
2934
2030
  const scale = {
2935
- h1: 'text-3xl font-bold tracking-tight text-surface-900',
2936
- h2: 'text-2xl font-semibold tracking-tight text-surface-900',
2937
- h3: 'text-xl font-semibold tracking-tight text-surface-900',
2938
- h4: 'text-lg font-normal text-surface-900',
2939
- h5: 'text-base font-normal text-surface-900',
2940
- h6: 'text-sm font-normal text-surface-800 uppercase tracking-wide'
2031
+ h1: 'text-3xl font-bold tracking-tight text-neutral-900',
2032
+ h2: 'text-2xl font-semibold tracking-tight text-neutral-900',
2033
+ h3: 'text-xl font-semibold tracking-tight text-neutral-900',
2034
+ h4: 'text-lg font-normal text-neutral-900',
2035
+ h5: 'text-base font-normal text-neutral-900',
2036
+ h6: 'text-sm font-normal text-neutral-800 uppercase tracking-wide'
2941
2037
  };
2942
2038
  const layout = 'inline-flex items-center gap-2 min-w-0';
2943
2039
  const extra = this.class();
@@ -2976,11 +2072,11 @@ class TailwindCard extends TailwindComponent {
2976
2072
  /** Whether the card has a footer */
2977
2073
  hasFooter = input(true, ...(ngDevMode ? [{ debugName: "hasFooter" }] : /* istanbul ignore next */ []));
2978
2074
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindCard, deps: null, target: i0.ɵɵFactoryTarget.Component });
2979
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindCard, isStandalone: true, selector: "tailwind-card", inputs: { elevated: { classPropertyName: "elevated", publicName: "elevated", isSignal: true, isRequired: false, transformFunction: null }, hoverable: { classPropertyName: "hoverable", publicName: "hoverable", isSignal: true, isRequired: false, transformFunction: null }, headerBg: { classPropertyName: "headerBg", publicName: "headerBg", isSignal: true, isRequired: false, transformFunction: null }, hasHeader: { classPropertyName: "hasHeader", publicName: "hasHeader", isSignal: true, isRequired: false, transformFunction: null }, hasFooter: { classPropertyName: "hasFooter", publicName: "hasFooter", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div\n class=\"bg-white rounded-xl border border-surface-200 overflow-hidden transition-shadow duration-200\"\n [class.shadow-sm]=\"!elevated()\"\n [class.shadow-lg]=\"elevated()\"\n [class.hover:shadow-md]=\"hoverable() && !elevated()\"\n [class.hover:shadow-xl]=\"hoverable() && elevated()\">\n @if (hasHeader()) {\n <!-- Header slot (always rendered; only visible when content is projected) -->\n <div class=\"px-6 pt-4 border-b border-surface-100\" [class.bg-surface-50]=\"headerBg()\">\n <ng-content select=\"[tailwind-card-header]\" />\n </div>\n }\n\n <!-- Image slot -->\n <ng-content select=\"[tailwind-card-image]\" />\n\n <!-- Body -->\n <div class=\"p-6\">\n <ng-content />\n </div>\n\n @if (hasFooter()) {\n <!-- Footer slot -->\n <div class=\"px-6 py-4 border-t border-surface-100 bg-surface-50/50\">\n <ng-content select=\"[tailwind-card-footer]\" />\n </div>\n }\n</div>\n", styles: [":host{display:block}\n"] });
2075
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindCard, isStandalone: true, selector: "tailwind-card", inputs: { elevated: { classPropertyName: "elevated", publicName: "elevated", isSignal: true, isRequired: false, transformFunction: null }, hoverable: { classPropertyName: "hoverable", publicName: "hoverable", isSignal: true, isRequired: false, transformFunction: null }, headerBg: { classPropertyName: "headerBg", publicName: "headerBg", isSignal: true, isRequired: false, transformFunction: null }, hasHeader: { classPropertyName: "hasHeader", publicName: "hasHeader", isSignal: true, isRequired: false, transformFunction: null }, hasFooter: { classPropertyName: "hasFooter", publicName: "hasFooter", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div\n class=\"bg-white rounded-xl border border-neutral-200 overflow-hidden transition-shadow duration-200\"\n [class.shadow-sm]=\"!elevated()\"\n [class.shadow-lg]=\"elevated()\"\n [class.hover:shadow-md]=\"hoverable() && !elevated()\"\n [class.hover:shadow-xl]=\"hoverable() && elevated()\">\n @if (hasHeader()) {\n <!-- Header slot (always rendered; only visible when content is projected) -->\n <div class=\"px-6 pt-4 pb-2 border-b border-neutral-100\" [class.bg-neutral-50]=\"headerBg()\">\n <ng-content select=\"[tailwind-card-header]\" />\n </div>\n }\n\n <!-- Image slot -->\n <ng-content select=\"[tailwind-card-image]\" />\n\n <!-- Body -->\n <div class=\"p-6\">\n <ng-content />\n </div>\n\n @if (hasFooter()) {\n <!-- Footer slot -->\n <div class=\"px-6 py-4 border-t border-neutral-100 bg-neutral-50/50\">\n <ng-content select=\"[tailwind-card-footer]\" />\n </div>\n }\n</div>\n", styles: [":host{display:block}\n"] });
2980
2076
  }
2981
2077
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindCard, decorators: [{
2982
2078
  type: Component,
2983
- args: [{ selector: 'tailwind-card', template: "<div\n class=\"bg-white rounded-xl border border-surface-200 overflow-hidden transition-shadow duration-200\"\n [class.shadow-sm]=\"!elevated()\"\n [class.shadow-lg]=\"elevated()\"\n [class.hover:shadow-md]=\"hoverable() && !elevated()\"\n [class.hover:shadow-xl]=\"hoverable() && elevated()\">\n @if (hasHeader()) {\n <!-- Header slot (always rendered; only visible when content is projected) -->\n <div class=\"px-6 pt-4 border-b border-surface-100\" [class.bg-surface-50]=\"headerBg()\">\n <ng-content select=\"[tailwind-card-header]\" />\n </div>\n }\n\n <!-- Image slot -->\n <ng-content select=\"[tailwind-card-image]\" />\n\n <!-- Body -->\n <div class=\"p-6\">\n <ng-content />\n </div>\n\n @if (hasFooter()) {\n <!-- Footer slot -->\n <div class=\"px-6 py-4 border-t border-surface-100 bg-surface-50/50\">\n <ng-content select=\"[tailwind-card-footer]\" />\n </div>\n }\n</div>\n", styles: [":host{display:block}\n"] }]
2079
+ args: [{ selector: 'tailwind-card', template: "<div\n class=\"bg-white rounded-xl border border-neutral-200 overflow-hidden transition-shadow duration-200\"\n [class.shadow-sm]=\"!elevated()\"\n [class.shadow-lg]=\"elevated()\"\n [class.hover:shadow-md]=\"hoverable() && !elevated()\"\n [class.hover:shadow-xl]=\"hoverable() && elevated()\">\n @if (hasHeader()) {\n <!-- Header slot (always rendered; only visible when content is projected) -->\n <div class=\"px-6 pt-4 pb-2 border-b border-neutral-100\" [class.bg-neutral-50]=\"headerBg()\">\n <ng-content select=\"[tailwind-card-header]\" />\n </div>\n }\n\n <!-- Image slot -->\n <ng-content select=\"[tailwind-card-image]\" />\n\n <!-- Body -->\n <div class=\"p-6\">\n <ng-content />\n </div>\n\n @if (hasFooter()) {\n <!-- Footer slot -->\n <div class=\"px-6 py-4 border-t border-neutral-100 bg-neutral-50/50\">\n <ng-content select=\"[tailwind-card-footer]\" />\n </div>\n }\n</div>\n", styles: [":host{display:block}\n"] }]
2984
2080
  }], propDecorators: { elevated: [{ type: i0.Input, args: [{ isSignal: true, alias: "elevated", required: false }] }], hoverable: [{ type: i0.Input, args: [{ isSignal: true, alias: "hoverable", required: false }] }], headerBg: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerBg", required: false }] }], hasHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasHeader", required: false }] }], hasFooter: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasFooter", required: false }] }] } });
2985
2081
 
2986
2082
  class TailwindAlert extends TailwindComponent {
@@ -3123,11 +2219,11 @@ class TailwindModal extends TailwindComponent {
3123
2219
  }, 200);
3124
2220
  }
3125
2221
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindModal, deps: [], target: i0.ɵɵFactoryTarget.Component });
3126
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindModal, isStandalone: true, selector: "tailwind-modal", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, showCloseButton: { classPropertyName: "showCloseButton", publicName: "showCloseButton", isSignal: true, isRequired: false, transformFunction: null }, closeOnBackdrop: { classPropertyName: "closeOnBackdrop", publicName: "closeOnBackdrop", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClose: "onClose" }, viewQueries: [{ propertyName: "modalPanel", first: true, predicate: ["modalPanel"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (isOpen()) {\r\n <!-- Backdrop -->\r\n <div\r\n class=\"fixed inset-0 bg-black/50 backdrop-blur-sm z-1040 transition-opacity duration-200\"\r\n [class.opacity-100]=\"isVisible()\"\r\n [class.opacity-0]=\"!isVisible()\"\r\n (click)=\"closeOnBackdrop() && close()\"\r\n aria-hidden=\"true\"></div>\r\n\r\n <!-- Modal -->\r\n <div\r\n role=\"dialog\"\r\n class=\"fixed inset-0 z-1050 overflow-y-auto\"\r\n [attr.aria-modal]=\"true\"\r\n (keydown.escape)=\"closeOnEscape() && close()\">\r\n <div class=\"flex min-h-full items-center justify-center p-4\">\r\n <div #modalPanel [class]=\"panelClasses()\" tabindex=\"-1\">\r\n <!-- Header -->\r\n <div class=\"flex items-center justify-between px-6 py-4 border-b border-surface-200\">\r\n <h2 class=\"text-lg font-semibold text-surface-900 pr-2\">\r\n <ng-content />\r\n </h2>\r\n @if (showCloseButton()) {\r\n <button\r\n type=\"button\"\r\n class=\"p-1.5 -m-1.5 shrink-0 rounded-lg text-surface-400 hover:text-surface-600 hover:bg-surface-100 transition-colors cursor-pointer\"\r\n aria-label=\"Close\"\r\n (click)=\"close()\">\r\n <svg class=\"w-5 h-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\r\n <path\r\n d=\"M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z\" />\r\n </svg>\r\n </button>\r\n }\r\n </div>\r\n\r\n <!-- Body -->\r\n <div class=\"px-6 py-5\">\r\n <ng-content select=\"[tailwind-modal-content]\" />\r\n </div>\r\n\r\n <!-- Footer -->\r\n <div class=\"border-t border-surface-200 px-6 py-4\">\r\n <ng-content select=\"[tailwind-modal-footer]\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n", styles: [":host{display:contents}\n"] });
2222
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindModal, isStandalone: true, selector: "tailwind-modal", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, showCloseButton: { classPropertyName: "showCloseButton", publicName: "showCloseButton", isSignal: true, isRequired: false, transformFunction: null }, closeOnBackdrop: { classPropertyName: "closeOnBackdrop", publicName: "closeOnBackdrop", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClose: "onClose" }, viewQueries: [{ propertyName: "modalPanel", first: true, predicate: ["modalPanel"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (isOpen()) {\r\n <!-- Backdrop -->\r\n <div\r\n class=\"fixed inset-0 bg-black/50 backdrop-blur-sm z-1040 transition-opacity duration-200\"\r\n [class.opacity-100]=\"isVisible()\"\r\n [class.opacity-0]=\"!isVisible()\"\r\n (click)=\"closeOnBackdrop() && close()\"\r\n aria-hidden=\"true\"></div>\r\n\r\n <!-- Modal -->\r\n <div\r\n role=\"dialog\"\r\n class=\"fixed inset-0 z-1050 overflow-y-auto\"\r\n [attr.aria-modal]=\"true\"\r\n (keydown.escape)=\"closeOnEscape() && close()\">\r\n <div class=\"flex min-h-full items-center justify-center p-4\">\r\n <div #modalPanel [class]=\"panelClasses()\" tabindex=\"-1\">\r\n <!-- Header -->\r\n <div class=\"flex items-center justify-between px-6 py-4 border-b border-neutral-200\">\r\n <h2 class=\"text-lg font-semibold text-neutral-900 pr-2\">\r\n <ng-content />\r\n </h2>\r\n @if (showCloseButton()) {\r\n <button\r\n type=\"button\"\r\n class=\"p-1.5 -m-1.5 shrink-0 rounded-lg text-neutral-400 hover:text-neutral-600 hover:bg-neutral-100 transition-colors cursor-pointer\"\r\n aria-label=\"Close\"\r\n (click)=\"close()\">\r\n <svg class=\"w-5 h-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\r\n <path\r\n d=\"M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z\" />\r\n </svg>\r\n </button>\r\n }\r\n </div>\r\n\r\n <!-- Body -->\r\n <div class=\"px-6 py-5\">\r\n <ng-content select=\"[tailwind-modal-content]\" />\r\n </div>\r\n\r\n <!-- Footer -->\r\n <div class=\"border-t border-neutral-200 px-6 py-4\">\r\n <ng-content select=\"[tailwind-modal-footer]\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n", styles: [":host{display:contents}\n"] });
3127
2223
  }
3128
2224
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindModal, decorators: [{
3129
2225
  type: Component,
3130
- args: [{ selector: 'tailwind-modal', template: "@if (isOpen()) {\r\n <!-- Backdrop -->\r\n <div\r\n class=\"fixed inset-0 bg-black/50 backdrop-blur-sm z-1040 transition-opacity duration-200\"\r\n [class.opacity-100]=\"isVisible()\"\r\n [class.opacity-0]=\"!isVisible()\"\r\n (click)=\"closeOnBackdrop() && close()\"\r\n aria-hidden=\"true\"></div>\r\n\r\n <!-- Modal -->\r\n <div\r\n role=\"dialog\"\r\n class=\"fixed inset-0 z-1050 overflow-y-auto\"\r\n [attr.aria-modal]=\"true\"\r\n (keydown.escape)=\"closeOnEscape() && close()\">\r\n <div class=\"flex min-h-full items-center justify-center p-4\">\r\n <div #modalPanel [class]=\"panelClasses()\" tabindex=\"-1\">\r\n <!-- Header -->\r\n <div class=\"flex items-center justify-between px-6 py-4 border-b border-surface-200\">\r\n <h2 class=\"text-lg font-semibold text-surface-900 pr-2\">\r\n <ng-content />\r\n </h2>\r\n @if (showCloseButton()) {\r\n <button\r\n type=\"button\"\r\n class=\"p-1.5 -m-1.5 shrink-0 rounded-lg text-surface-400 hover:text-surface-600 hover:bg-surface-100 transition-colors cursor-pointer\"\r\n aria-label=\"Close\"\r\n (click)=\"close()\">\r\n <svg class=\"w-5 h-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\r\n <path\r\n d=\"M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z\" />\r\n </svg>\r\n </button>\r\n }\r\n </div>\r\n\r\n <!-- Body -->\r\n <div class=\"px-6 py-5\">\r\n <ng-content select=\"[tailwind-modal-content]\" />\r\n </div>\r\n\r\n <!-- Footer -->\r\n <div class=\"border-t border-surface-200 px-6 py-4\">\r\n <ng-content select=\"[tailwind-modal-footer]\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n", styles: [":host{display:contents}\n"] }]
2226
+ args: [{ selector: 'tailwind-modal', template: "@if (isOpen()) {\r\n <!-- Backdrop -->\r\n <div\r\n class=\"fixed inset-0 bg-black/50 backdrop-blur-sm z-1040 transition-opacity duration-200\"\r\n [class.opacity-100]=\"isVisible()\"\r\n [class.opacity-0]=\"!isVisible()\"\r\n (click)=\"closeOnBackdrop() && close()\"\r\n aria-hidden=\"true\"></div>\r\n\r\n <!-- Modal -->\r\n <div\r\n role=\"dialog\"\r\n class=\"fixed inset-0 z-1050 overflow-y-auto\"\r\n [attr.aria-modal]=\"true\"\r\n (keydown.escape)=\"closeOnEscape() && close()\">\r\n <div class=\"flex min-h-full items-center justify-center p-4\">\r\n <div #modalPanel [class]=\"panelClasses()\" tabindex=\"-1\">\r\n <!-- Header -->\r\n <div class=\"flex items-center justify-between px-6 py-4 border-b border-neutral-200\">\r\n <h2 class=\"text-lg font-semibold text-neutral-900 pr-2\">\r\n <ng-content />\r\n </h2>\r\n @if (showCloseButton()) {\r\n <button\r\n type=\"button\"\r\n class=\"p-1.5 -m-1.5 shrink-0 rounded-lg text-neutral-400 hover:text-neutral-600 hover:bg-neutral-100 transition-colors cursor-pointer\"\r\n aria-label=\"Close\"\r\n (click)=\"close()\">\r\n <svg class=\"w-5 h-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\r\n <path\r\n d=\"M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z\" />\r\n </svg>\r\n </button>\r\n }\r\n </div>\r\n\r\n <!-- Body -->\r\n <div class=\"px-6 py-5\">\r\n <ng-content select=\"[tailwind-modal-content]\" />\r\n </div>\r\n\r\n <!-- Footer -->\r\n <div class=\"border-t border-neutral-200 px-6 py-4\">\r\n <ng-content select=\"[tailwind-modal-footer]\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n", styles: [":host{display:contents}\n"] }]
3131
2227
  }], ctorParameters: () => [], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], showCloseButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCloseButton", required: false }] }], closeOnBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnBackdrop", required: false }] }], closeOnEscape: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnEscape", required: false }] }], onClose: [{ type: i0.Output, args: ["onClose"] }], modalPanel: [{ type: i0.ViewChild, args: ['modalPanel', { isSignal: true }] }] } });
3132
2228
 
3133
2229
  class TailwindTab extends TailwindComponent {
@@ -3168,11 +2264,11 @@ class TailwindTabGroup extends TailwindComponent {
3168
2264
  this.activeIndex.set(index);
3169
2265
  }
3170
2266
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindTabGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
3171
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindTabGroup, isStandalone: true, selector: "tailwind-tab-group", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null }, activeIndex: { classPropertyName: "activeIndex", publicName: "activeIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeIndex: "activeIndexChange" }, queries: [{ propertyName: "tabs", predicate: TailwindTab, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<!-- Tab Headers -->\n<div class=\"border-b border-surface-200\" role=\"tablist\" [attr.aria-label]=\"ariaLabel()\">\n <nav class=\"flex -mb-px gap-1\" [class.overflow-x-auto]=\"scrollable()\">\n @for (tab of tabs(); track $index; let i = $index) {\n <button\n type=\"button\"\n role=\"tab\"\n [attr.id]=\"tab.id() ? 'tab-' + tab.id() : null\"\n [attr.aria-selected]=\"activeIndex() === i\"\n [attr.aria-controls]=\"tab.id() ? tab.id() : null\"\n [disabled]=\"tab.disabled()\"\n class=\"group relative px-4 py-2.5 text-sm font-medium whitespace-nowrap transition-colors duration-150 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/30 focus-visible:rounded-t-lg\"\n [class.text-primary-600]=\"activeIndex() === i\"\n [class.text-surface-500]=\"activeIndex() !== i\"\n [class.hover:text-surface-700]=\"activeIndex() !== i && !tab.disabled()\"\n [class.opacity-50]=\"tab.disabled()\"\n [class.cursor-not-allowed]=\"tab.disabled()\"\n (click)=\"!tab.disabled() && selectTab(i)\">\n {{ tab.label() }}\n <!-- Active indicator -->\n <span\n class=\"absolute bottom-0 left-0 right-0 h-0.5 rounded-full transition-all duration-200\"\n [class.bg-primary-600]=\"activeIndex() === i\"\n [class.scale-x-100]=\"activeIndex() === i\"\n [class.scale-x-0]=\"activeIndex() !== i\"></span>\n </button>\n }\n </nav>\n</div>\n\n<!-- Tab Content -->\n<div class=\"pt-4\">\n <ng-content />\n</div>\n", styles: [":host{display:block}\n"] });
2267
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindTabGroup, isStandalone: true, selector: "tailwind-tab-group", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null }, activeIndex: { classPropertyName: "activeIndex", publicName: "activeIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeIndex: "activeIndexChange" }, queries: [{ propertyName: "tabs", predicate: TailwindTab, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<!-- Tab Headers -->\n<div class=\"border-b border-neutral-200\" role=\"tablist\" [attr.aria-label]=\"ariaLabel()\">\n <nav class=\"flex -mb-px gap-1\" [class.overflow-x-auto]=\"scrollable()\">\n @for (tab of tabs(); track $index; let i = $index) {\n <button\n type=\"button\"\n role=\"tab\"\n [attr.id]=\"tab.id() ? 'tab-' + tab.id() : null\"\n [attr.aria-selected]=\"activeIndex() === i\"\n [attr.aria-controls]=\"tab.id() ? tab.id() : null\"\n [disabled]=\"tab.disabled()\"\n class=\"group relative px-4 py-2.5 text-sm font-medium whitespace-nowrap transition-colors duration-150 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/30 focus-visible:rounded-t-lg\"\n [class.text-primary-600]=\"activeIndex() === i\"\n [class.text-neutral-500]=\"activeIndex() !== i\"\n [class.hover:text-neutral-700]=\"activeIndex() !== i && !tab.disabled()\"\n [class.opacity-50]=\"tab.disabled()\"\n [class.cursor-not-allowed]=\"tab.disabled()\"\n (click)=\"!tab.disabled() && selectTab(i)\">\n {{ tab.label() }}\n <!-- Active indicator -->\n <span\n class=\"absolute bottom-0 left-0 right-0 h-0.5 rounded-full transition-all duration-200\"\n [class.bg-primary-600]=\"activeIndex() === i\"\n [class.scale-x-100]=\"activeIndex() === i\"\n [class.scale-x-0]=\"activeIndex() !== i\"></span>\n </button>\n }\n </nav>\n</div>\n\n<!-- Tab Content -->\n<div class=\"pt-4\">\n <ng-content />\n</div>\n", styles: [":host{display:block}\n"] });
3172
2268
  }
3173
2269
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindTabGroup, decorators: [{
3174
2270
  type: Component,
3175
- args: [{ selector: 'tailwind-tab-group', template: "<!-- Tab Headers -->\n<div class=\"border-b border-surface-200\" role=\"tablist\" [attr.aria-label]=\"ariaLabel()\">\n <nav class=\"flex -mb-px gap-1\" [class.overflow-x-auto]=\"scrollable()\">\n @for (tab of tabs(); track $index; let i = $index) {\n <button\n type=\"button\"\n role=\"tab\"\n [attr.id]=\"tab.id() ? 'tab-' + tab.id() : null\"\n [attr.aria-selected]=\"activeIndex() === i\"\n [attr.aria-controls]=\"tab.id() ? tab.id() : null\"\n [disabled]=\"tab.disabled()\"\n class=\"group relative px-4 py-2.5 text-sm font-medium whitespace-nowrap transition-colors duration-150 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/30 focus-visible:rounded-t-lg\"\n [class.text-primary-600]=\"activeIndex() === i\"\n [class.text-surface-500]=\"activeIndex() !== i\"\n [class.hover:text-surface-700]=\"activeIndex() !== i && !tab.disabled()\"\n [class.opacity-50]=\"tab.disabled()\"\n [class.cursor-not-allowed]=\"tab.disabled()\"\n (click)=\"!tab.disabled() && selectTab(i)\">\n {{ tab.label() }}\n <!-- Active indicator -->\n <span\n class=\"absolute bottom-0 left-0 right-0 h-0.5 rounded-full transition-all duration-200\"\n [class.bg-primary-600]=\"activeIndex() === i\"\n [class.scale-x-100]=\"activeIndex() === i\"\n [class.scale-x-0]=\"activeIndex() !== i\"></span>\n </button>\n }\n </nav>\n</div>\n\n<!-- Tab Content -->\n<div class=\"pt-4\">\n <ng-content />\n</div>\n", styles: [":host{display:block}\n"] }]
2271
+ args: [{ selector: 'tailwind-tab-group', template: "<!-- Tab Headers -->\n<div class=\"border-b border-neutral-200\" role=\"tablist\" [attr.aria-label]=\"ariaLabel()\">\n <nav class=\"flex -mb-px gap-1\" [class.overflow-x-auto]=\"scrollable()\">\n @for (tab of tabs(); track $index; let i = $index) {\n <button\n type=\"button\"\n role=\"tab\"\n [attr.id]=\"tab.id() ? 'tab-' + tab.id() : null\"\n [attr.aria-selected]=\"activeIndex() === i\"\n [attr.aria-controls]=\"tab.id() ? tab.id() : null\"\n [disabled]=\"tab.disabled()\"\n class=\"group relative px-4 py-2.5 text-sm font-medium whitespace-nowrap transition-colors duration-150 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/30 focus-visible:rounded-t-lg\"\n [class.text-primary-600]=\"activeIndex() === i\"\n [class.text-neutral-500]=\"activeIndex() !== i\"\n [class.hover:text-neutral-700]=\"activeIndex() !== i && !tab.disabled()\"\n [class.opacity-50]=\"tab.disabled()\"\n [class.cursor-not-allowed]=\"tab.disabled()\"\n (click)=\"!tab.disabled() && selectTab(i)\">\n {{ tab.label() }}\n <!-- Active indicator -->\n <span\n class=\"absolute bottom-0 left-0 right-0 h-0.5 rounded-full transition-all duration-200\"\n [class.bg-primary-600]=\"activeIndex() === i\"\n [class.scale-x-100]=\"activeIndex() === i\"\n [class.scale-x-0]=\"activeIndex() !== i\"></span>\n </button>\n }\n </nav>\n</div>\n\n<!-- Tab Content -->\n<div class=\"pt-4\">\n <ng-content />\n</div>\n", styles: [":host{display:block}\n"] }]
3176
2272
  }], ctorParameters: () => [], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], scrollable: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollable", required: false }] }], activeIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeIndex", required: false }] }, { type: i0.Output, args: ["activeIndexChange"] }], tabs: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => TailwindTab), { isSignal: true }] }] } });
3177
2273
 
3178
2274
  class TailwindProgressBar extends TailwindComponent {
@@ -3201,7 +2297,7 @@ class TailwindProgressBar extends TailwindComponent {
3201
2297
  lg: 'h-4',
3202
2298
  xl: 'h-5'
3203
2299
  };
3204
- return `w-full bg-surface-200 rounded-full overflow-hidden ${sizeMap[this.size()]}`;
2300
+ return `w-full bg-neutral-200 rounded-full overflow-hidden ${sizeMap[this.size()]}`;
3205
2301
  }, ...(ngDevMode ? [{ debugName: "trackClasses" }] : /* istanbul ignore next */ []));
3206
2302
  barClasses = computed(() => {
3207
2303
  const variantMap = {
@@ -3224,11 +2320,11 @@ class TailwindProgressBar extends TailwindComponent {
3224
2320
  return base.join(' ');
3225
2321
  }, ...(ngDevMode ? [{ debugName: "barClasses" }] : /* istanbul ignore next */ []));
3226
2322
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindProgressBar, deps: null, target: i0.ɵɵFactoryTarget.Component });
3227
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindProgressBar, isStandalone: true, selector: "tailwind-progress-bar", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, showLabel: { classPropertyName: "showLabel", publicName: "showLabel", isSignal: true, isRequired: false, transformFunction: null }, showValue: { classPropertyName: "showValue", publicName: "showValue", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, striped: { classPropertyName: "striped", publicName: "striped", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div class=\"w-full\">\n @if (showLabel()) {\n <div class=\"flex justify-between items-center mb-1.5\">\n @if (label()) {\n <span class=\"text-sm font-medium text-surface-700\">{{ label() }}</span>\n }\n @if (showValue()) {\n <span class=\"text-sm font-medium text-surface-600\">{{ clampedValue() }}%</span>\n }\n </div>\n }\n\n <div\n [class]=\"trackClasses()\"\n role=\"progressbar\"\n [attr.aria-valuenow]=\"clampedValue()\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"100\"\n [attr.aria-label]=\"label() || 'Progress'\">\n <div [class]=\"barClasses()\" [style.width.%]=\"indeterminate() ? 100 : clampedValue()\"></div>\n </div>\n</div>\n", styles: [":host{display:block}@keyframes tailwind-indeterminate{0%{transform:translate(-100%)}to{transform:translate(200%)}}.tailwind-progress-indeterminate{animation:tailwind-indeterminate 1.5s ease-in-out infinite;width:40%!important}\n"] });
2323
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindProgressBar, isStandalone: true, selector: "tailwind-progress-bar", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, showLabel: { classPropertyName: "showLabel", publicName: "showLabel", isSignal: true, isRequired: false, transformFunction: null }, showValue: { classPropertyName: "showValue", publicName: "showValue", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, striped: { classPropertyName: "striped", publicName: "striped", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div class=\"w-full\">\n @if (showLabel()) {\n <div class=\"flex justify-between items-center mb-1.5\">\n @if (label()) {\n <span class=\"text-sm font-medium text-neutral-700\">{{ label() }}</span>\n }\n @if (showValue()) {\n <span class=\"text-sm font-medium text-neutral-600\">{{ clampedValue() }}%</span>\n }\n </div>\n }\n\n <div\n [class]=\"trackClasses()\"\n role=\"progressbar\"\n [attr.aria-valuenow]=\"clampedValue()\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"100\"\n [attr.aria-label]=\"label() || 'Progress'\">\n <div [class]=\"barClasses()\" [style.width.%]=\"indeterminate() ? 100 : clampedValue()\"></div>\n </div>\n</div>\n", styles: [":host{display:block}@keyframes tailwind-indeterminate{0%{transform:translate(-100%)}to{transform:translate(200%)}}.tailwind-progress-indeterminate{animation:tailwind-indeterminate 1.5s ease-in-out infinite;width:40%!important}\n"] });
3228
2324
  }
3229
2325
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindProgressBar, decorators: [{
3230
2326
  type: Component,
3231
- args: [{ selector: 'tailwind-progress-bar', template: "<div class=\"w-full\">\n @if (showLabel()) {\n <div class=\"flex justify-between items-center mb-1.5\">\n @if (label()) {\n <span class=\"text-sm font-medium text-surface-700\">{{ label() }}</span>\n }\n @if (showValue()) {\n <span class=\"text-sm font-medium text-surface-600\">{{ clampedValue() }}%</span>\n }\n </div>\n }\n\n <div\n [class]=\"trackClasses()\"\n role=\"progressbar\"\n [attr.aria-valuenow]=\"clampedValue()\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"100\"\n [attr.aria-label]=\"label() || 'Progress'\">\n <div [class]=\"barClasses()\" [style.width.%]=\"indeterminate() ? 100 : clampedValue()\"></div>\n </div>\n</div>\n", styles: [":host{display:block}@keyframes tailwind-indeterminate{0%{transform:translate(-100%)}to{transform:translate(200%)}}.tailwind-progress-indeterminate{animation:tailwind-indeterminate 1.5s ease-in-out infinite;width:40%!important}\n"] }]
2327
+ args: [{ selector: 'tailwind-progress-bar', template: "<div class=\"w-full\">\n @if (showLabel()) {\n <div class=\"flex justify-between items-center mb-1.5\">\n @if (label()) {\n <span class=\"text-sm font-medium text-neutral-700\">{{ label() }}</span>\n }\n @if (showValue()) {\n <span class=\"text-sm font-medium text-neutral-600\">{{ clampedValue() }}%</span>\n }\n </div>\n }\n\n <div\n [class]=\"trackClasses()\"\n role=\"progressbar\"\n [attr.aria-valuenow]=\"clampedValue()\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"100\"\n [attr.aria-label]=\"label() || 'Progress'\">\n <div [class]=\"barClasses()\" [style.width.%]=\"indeterminate() ? 100 : clampedValue()\"></div>\n </div>\n</div>\n", styles: [":host{display:block}@keyframes tailwind-indeterminate{0%{transform:translate(-100%)}to{transform:translate(200%)}}.tailwind-progress-indeterminate{animation:tailwind-indeterminate 1.5s ease-in-out infinite;width:40%!important}\n"] }]
3232
2328
  }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], showLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLabel", required: false }] }], showValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "showValue", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], indeterminate: [{ type: i0.Input, args: [{ isSignal: true, alias: "indeterminate", required: false }] }], striped: [{ type: i0.Input, args: [{ isSignal: true, alias: "striped", required: false }] }] } });
3233
2329
 
3234
2330
  /** Matches previous `min-w-48` floor when the anchor is narrower. */
@@ -3402,11 +2498,11 @@ class TailwindMenu extends TailwindComponent {
3402
2498
  return document.documentElement;
3403
2499
  }
3404
2500
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindMenu, deps: null, target: i0.ɵɵFactoryTarget.Component });
3405
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindMenu, isStandalone: true, selector: "tailwind-menu", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelect: "onSelect" }, host: { listeners: { "document:keydown.escape": "onDocumentEscape()", "document:click": "onDocumentClick($event)", "window:resize": "onWindowResize()" } }, viewQueries: [{ propertyName: "panelRef", first: true, predicate: ["panel"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (isOpen() && panelLayout(); as layout) {\n <div\n #panel\n role=\"menu\"\n class=\"fixed z-1000 bg-white rounded-xl border border-surface-200 shadow-lg py-1 animate-in fade-in slide-in-from-top-1\"\n [style.top.px]=\"layout.top\"\n [style.left.px]=\"layout.left ?? null\"\n [style.right.px]=\"layout.right ?? null\"\n [style.minWidth.px]=\"layout.minWidth\">\n @for (item of items(); track $index) {\n @if (item.divider) {\n <hr class=\"my-1 border-surface-100\" />\n } @else {\n <button\n type=\"button\"\n role=\"menuitem\"\n [disabled]=\"!!item.disabled\"\n class=\"w-full text-left px-4 py-2 text-sm text-surface-700 hover:bg-surface-50 hover:text-surface-900 disabled:opacity-50 disabled:cursor-not-allowed transition-colors cursor-pointer\"\n (click)=\"selectItem(item)\">\n {{ item.label }}\n </button>\n }\n }\n </div>\n}\n", styles: [":host{display:contents}\n"] });
2501
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindMenu, isStandalone: true, selector: "tailwind-menu", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelect: "onSelect" }, host: { listeners: { "document:keydown.escape": "onDocumentEscape()", "document:click": "onDocumentClick($event)", "window:resize": "onWindowResize()" } }, viewQueries: [{ propertyName: "panelRef", first: true, predicate: ["panel"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (isOpen() && panelLayout(); as layout) {\n <div\n #panel\n role=\"menu\"\n class=\"fixed z-1000 bg-white rounded-xl border border-neutral-200 shadow-lg py-1 animate-in fade-in slide-in-from-top-1\"\n [style.top.px]=\"layout.top\"\n [style.left.px]=\"layout.left ?? null\"\n [style.right.px]=\"layout.right ?? null\"\n [style.minWidth.px]=\"layout.minWidth\">\n @for (item of items(); track $index) {\n @if (item.divider) {\n <hr class=\"my-1 border-neutral-100\" />\n } @else {\n <button\n type=\"button\"\n role=\"menuitem\"\n [disabled]=\"!!item.disabled\"\n class=\"w-full text-left px-4 py-2 text-sm text-neutral-700 hover:bg-neutral-50 hover:text-neutral-900 disabled:opacity-50 disabled:cursor-not-allowed transition-colors cursor-pointer\"\n (click)=\"selectItem(item)\">\n {{ item.label }}\n </button>\n }\n }\n </div>\n}\n", styles: [":host{display:contents}\n"] });
3406
2502
  }
3407
2503
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindMenu, decorators: [{
3408
2504
  type: Component,
3409
- args: [{ selector: 'tailwind-menu', template: "@if (isOpen() && panelLayout(); as layout) {\n <div\n #panel\n role=\"menu\"\n class=\"fixed z-1000 bg-white rounded-xl border border-surface-200 shadow-lg py-1 animate-in fade-in slide-in-from-top-1\"\n [style.top.px]=\"layout.top\"\n [style.left.px]=\"layout.left ?? null\"\n [style.right.px]=\"layout.right ?? null\"\n [style.minWidth.px]=\"layout.minWidth\">\n @for (item of items(); track $index) {\n @if (item.divider) {\n <hr class=\"my-1 border-surface-100\" />\n } @else {\n <button\n type=\"button\"\n role=\"menuitem\"\n [disabled]=\"!!item.disabled\"\n class=\"w-full text-left px-4 py-2 text-sm text-surface-700 hover:bg-surface-50 hover:text-surface-900 disabled:opacity-50 disabled:cursor-not-allowed transition-colors cursor-pointer\"\n (click)=\"selectItem(item)\">\n {{ item.label }}\n </button>\n }\n }\n </div>\n}\n", styles: [":host{display:contents}\n"] }]
2505
+ args: [{ selector: 'tailwind-menu', template: "@if (isOpen() && panelLayout(); as layout) {\n <div\n #panel\n role=\"menu\"\n class=\"fixed z-1000 bg-white rounded-xl border border-neutral-200 shadow-lg py-1 animate-in fade-in slide-in-from-top-1\"\n [style.top.px]=\"layout.top\"\n [style.left.px]=\"layout.left ?? null\"\n [style.right.px]=\"layout.right ?? null\"\n [style.minWidth.px]=\"layout.minWidth\">\n @for (item of items(); track $index) {\n @if (item.divider) {\n <hr class=\"my-1 border-neutral-100\" />\n } @else {\n <button\n type=\"button\"\n role=\"menuitem\"\n [disabled]=\"!!item.disabled\"\n class=\"w-full text-left px-4 py-2 text-sm text-neutral-700 hover:bg-neutral-50 hover:text-neutral-900 disabled:opacity-50 disabled:cursor-not-allowed transition-colors cursor-pointer\"\n (click)=\"selectItem(item)\">\n {{ item.label }}\n </button>\n }\n }\n </div>\n}\n", styles: [":host{display:contents}\n"] }]
3410
2506
  }], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], onSelect: [{ type: i0.Output, args: ["onSelect"] }], panelRef: [{ type: i0.ViewChild, args: ['panel', { isSignal: true }] }], onDocumentEscape: [{
3411
2507
  type: HostListener,
3412
2508
  args: ['document:keydown.escape']
@@ -3465,11 +2561,11 @@ class TailwindDrawer extends TailwindComponent {
3465
2561
  }, 300);
3466
2562
  }
3467
2563
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindDrawer, deps: null, target: i0.ɵɵFactoryTarget.Component });
3468
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindDrawer, isStandalone: true, selector: "tailwind-drawer", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, closeOnBackdrop: { classPropertyName: "closeOnBackdrop", publicName: "closeOnBackdrop", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClose: "onClose" }, usesInheritance: true, ngImport: i0, template: "@if (isOpen()) {\n <!-- Backdrop -->\n <div\n class=\"fixed inset-0 bg-black/40 backdrop-blur-sm z-1040 transition-opacity duration-300\"\n [class.opacity-100]=\"isVisible()\"\n [class.opacity-0]=\"!isVisible()\"\n (click)=\"closeOnBackdrop() && close()\"\n aria-hidden=\"true\"></div>\n\n <!-- Drawer Panel -->\n <div [class]=\"panelClasses()\" role=\"dialog\" [attr.aria-modal]=\"true\" [attr.aria-label]=\"title()\">\n <!-- Header -->\n <div class=\"flex items-center justify-between px-6 py-4 border-b border-surface-200\">\n @if (title()) {\n <h2 class=\"text-lg font-semibold text-surface-900\">{{ title() }}</h2>\n }\n <button\n type=\"button\"\n class=\"p-1.5 -m-1.5 rounded-lg text-surface-400 hover:text-surface-600 hover:bg-surface-100 transition-colors ml-auto cursor-pointer\"\n aria-label=\"Close\"\n (click)=\"close()\">\n <svg class=\"w-5 h-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n d=\"M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z\" />\n </svg>\n </button>\n </div>\n\n <!-- Body -->\n <div class=\"flex-1 overflow-y-auto px-6 py-5\">\n <ng-content />\n </div>\n\n <!-- Footer -->\n <ng-content select=\"[tailwind-drawer-footer]\" />\n </div>\n}\n", styles: [":host{display:contents}\n"] });
2564
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindDrawer, isStandalone: true, selector: "tailwind-drawer", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, closeOnBackdrop: { classPropertyName: "closeOnBackdrop", publicName: "closeOnBackdrop", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClose: "onClose" }, usesInheritance: true, ngImport: i0, template: "@if (isOpen()) {\n <!-- Backdrop -->\n <div\n class=\"fixed inset-0 bg-black/40 backdrop-blur-sm z-1040 transition-opacity duration-300\"\n [class.opacity-100]=\"isVisible()\"\n [class.opacity-0]=\"!isVisible()\"\n (click)=\"closeOnBackdrop() && close()\"\n aria-hidden=\"true\"></div>\n\n <!-- Drawer Panel -->\n <div [class]=\"panelClasses()\" role=\"dialog\" [attr.aria-modal]=\"true\" [attr.aria-label]=\"title()\">\n <!-- Header -->\n <div class=\"flex items-center justify-between px-6 py-4 border-b border-neutral-200\">\n @if (title()) {\n <h2 class=\"text-lg font-semibold text-neutral-900\">{{ title() }}</h2>\n }\n <button\n type=\"button\"\n class=\"p-1.5 -m-1.5 rounded-lg text-neutral-400 hover:text-neutral-600 hover:bg-neutral-100 transition-colors ml-auto cursor-pointer\"\n aria-label=\"Close\"\n (click)=\"close()\">\n <svg class=\"w-5 h-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n d=\"M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z\" />\n </svg>\n </button>\n </div>\n\n <!-- Body -->\n <div class=\"flex-1 overflow-y-auto px-6 py-5\">\n <ng-content />\n </div>\n\n <!-- Footer -->\n <ng-content select=\"[tailwind-drawer-footer]\" />\n </div>\n}\n", styles: [":host{display:contents}\n"] });
3469
2565
  }
3470
2566
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindDrawer, decorators: [{
3471
2567
  type: Component,
3472
- args: [{ selector: 'tailwind-drawer', template: "@if (isOpen()) {\n <!-- Backdrop -->\n <div\n class=\"fixed inset-0 bg-black/40 backdrop-blur-sm z-1040 transition-opacity duration-300\"\n [class.opacity-100]=\"isVisible()\"\n [class.opacity-0]=\"!isVisible()\"\n (click)=\"closeOnBackdrop() && close()\"\n aria-hidden=\"true\"></div>\n\n <!-- Drawer Panel -->\n <div [class]=\"panelClasses()\" role=\"dialog\" [attr.aria-modal]=\"true\" [attr.aria-label]=\"title()\">\n <!-- Header -->\n <div class=\"flex items-center justify-between px-6 py-4 border-b border-surface-200\">\n @if (title()) {\n <h2 class=\"text-lg font-semibold text-surface-900\">{{ title() }}</h2>\n }\n <button\n type=\"button\"\n class=\"p-1.5 -m-1.5 rounded-lg text-surface-400 hover:text-surface-600 hover:bg-surface-100 transition-colors ml-auto cursor-pointer\"\n aria-label=\"Close\"\n (click)=\"close()\">\n <svg class=\"w-5 h-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n d=\"M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z\" />\n </svg>\n </button>\n </div>\n\n <!-- Body -->\n <div class=\"flex-1 overflow-y-auto px-6 py-5\">\n <ng-content />\n </div>\n\n <!-- Footer -->\n <ng-content select=\"[tailwind-drawer-footer]\" />\n </div>\n}\n", styles: [":host{display:contents}\n"] }]
2568
+ args: [{ selector: 'tailwind-drawer', template: "@if (isOpen()) {\n <!-- Backdrop -->\n <div\n class=\"fixed inset-0 bg-black/40 backdrop-blur-sm z-1040 transition-opacity duration-300\"\n [class.opacity-100]=\"isVisible()\"\n [class.opacity-0]=\"!isVisible()\"\n (click)=\"closeOnBackdrop() && close()\"\n aria-hidden=\"true\"></div>\n\n <!-- Drawer Panel -->\n <div [class]=\"panelClasses()\" role=\"dialog\" [attr.aria-modal]=\"true\" [attr.aria-label]=\"title()\">\n <!-- Header -->\n <div class=\"flex items-center justify-between px-6 py-4 border-b border-neutral-200\">\n @if (title()) {\n <h2 class=\"text-lg font-semibold text-neutral-900\">{{ title() }}</h2>\n }\n <button\n type=\"button\"\n class=\"p-1.5 -m-1.5 rounded-lg text-neutral-400 hover:text-neutral-600 hover:bg-neutral-100 transition-colors ml-auto cursor-pointer\"\n aria-label=\"Close\"\n (click)=\"close()\">\n <svg class=\"w-5 h-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n d=\"M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z\" />\n </svg>\n </button>\n </div>\n\n <!-- Body -->\n <div class=\"flex-1 overflow-y-auto px-6 py-5\">\n <ng-content />\n </div>\n\n <!-- Footer -->\n <ng-content select=\"[tailwind-drawer-footer]\" />\n </div>\n}\n", styles: [":host{display:contents}\n"] }]
3473
2569
  }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], closeOnBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnBackdrop", required: false }] }], onClose: [{ type: i0.Output, args: ["onClose"] }] } });
3474
2570
 
3475
2571
  class TailwindBreadcrumb extends TailwindComponent {
@@ -3477,19 +2573,21 @@ class TailwindBreadcrumb extends TailwindComponent {
3477
2573
  separator = input('>', ...(ngDevMode ? [{ debugName: "separator" }] : /* istanbul ignore next */ []));
3478
2574
  ariaLabel = input('Breadcrumb', ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
3479
2575
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindBreadcrumb, deps: null, target: i0.ɵɵFactoryTarget.Component });
3480
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindBreadcrumb, isStandalone: true, selector: "tailwind-breadcrumb", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<nav [attr.aria-label]=\"ariaLabel()\" class=\"flex\">\r\n <ol class=\"inline-flex items-center text-sm\">\r\n @for (item of items(); track item.label; let last = $last; let first = $first) {\r\n <li class=\"inline-flex items-center\">\r\n @if (!first) {\r\n <span class=\"mx-2 text-surface-400\" aria-hidden=\"true\">\r\n {{ separator() }}\r\n </span>\r\n }\r\n @if (item.link && !last) {\r\n <a\r\n [routerLink]=\"item.link\"\r\n class=\"inline-flex items-center gap-1 text-surface-500 hover:text-primary-600 transition-colors font-medium\">\r\n @if (item.icon) {\r\n <tailwind-icon [icon]=\"item.icon\" [size]=\"16\" />\r\n }\r\n {{ item.label }}\r\n </a>\r\n } @else {\r\n <span\r\n class=\"inline-flex items-center gap-1 font-medium\"\r\n [class.text-surface-900]=\"last\"\r\n [class.text-surface-500]=\"!last\"\r\n [attr.aria-current]=\"last ? 'page' : null\">\r\n @if (item.icon) {\r\n <tailwind-icon [icon]=\"item.icon\" [size]=\"16\" />\r\n }\r\n {{ item.label }}\r\n </span>\r\n }\r\n </li>\r\n }\r\n </ol>\r\n</nav>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: TailwindIcon, selector: "tailwind-icon", inputs: ["icon", "size"] }] });
2576
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindBreadcrumb, isStandalone: true, selector: "tailwind-breadcrumb", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<nav [attr.aria-label]=\"ariaLabel()\" class=\"flex\">\r\n <ol class=\"inline-flex items-center text-sm\">\r\n @for (item of items(); track item.label; let last = $last; let first = $first) {\r\n <li class=\"inline-flex items-center\">\r\n @if (!first) {\r\n <span class=\"mx-2 text-neutral-400\" aria-hidden=\"true\">\r\n {{ separator() }}\r\n </span>\r\n }\r\n @if (item.link && !last) {\r\n <a\r\n [routerLink]=\"item.link\"\r\n class=\"inline-flex items-center gap-1 text-neutral-500 hover:text-primary-600 transition-colors font-medium\">\r\n @if (item.icon) {\r\n <tailwind-icon [icon]=\"item.icon\" [size]=\"16\" />\r\n }\r\n {{ item.label }}\r\n </a>\r\n } @else {\r\n <span\r\n class=\"inline-flex items-center gap-1 font-medium\"\r\n [class.text-neutral-900]=\"last\"\r\n [class.text-neutral-500]=\"!last\"\r\n [attr.aria-current]=\"last ? 'page' : null\">\r\n @if (item.icon) {\r\n <tailwind-icon [icon]=\"item.icon\" [size]=\"16\" />\r\n }\r\n {{ item.label }}\r\n </span>\r\n }\r\n </li>\r\n }\r\n </ol>\r\n</nav>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: TailwindIcon, selector: "tailwind-icon", inputs: ["icon", "size"] }] });
3481
2577
  }
3482
2578
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindBreadcrumb, decorators: [{
3483
2579
  type: Component,
3484
- args: [{ imports: [RouterLink, TailwindIcon], selector: 'tailwind-breadcrumb', template: "<nav [attr.aria-label]=\"ariaLabel()\" class=\"flex\">\r\n <ol class=\"inline-flex items-center text-sm\">\r\n @for (item of items(); track item.label; let last = $last; let first = $first) {\r\n <li class=\"inline-flex items-center\">\r\n @if (!first) {\r\n <span class=\"mx-2 text-surface-400\" aria-hidden=\"true\">\r\n {{ separator() }}\r\n </span>\r\n }\r\n @if (item.link && !last) {\r\n <a\r\n [routerLink]=\"item.link\"\r\n class=\"inline-flex items-center gap-1 text-surface-500 hover:text-primary-600 transition-colors font-medium\">\r\n @if (item.icon) {\r\n <tailwind-icon [icon]=\"item.icon\" [size]=\"16\" />\r\n }\r\n {{ item.label }}\r\n </a>\r\n } @else {\r\n <span\r\n class=\"inline-flex items-center gap-1 font-medium\"\r\n [class.text-surface-900]=\"last\"\r\n [class.text-surface-500]=\"!last\"\r\n [attr.aria-current]=\"last ? 'page' : null\">\r\n @if (item.icon) {\r\n <tailwind-icon [icon]=\"item.icon\" [size]=\"16\" />\r\n }\r\n {{ item.label }}\r\n </span>\r\n }\r\n </li>\r\n }\r\n </ol>\r\n</nav>\r\n", styles: [":host{display:block}\n"] }]
2580
+ args: [{ imports: [RouterLink, TailwindIcon], selector: 'tailwind-breadcrumb', template: "<nav [attr.aria-label]=\"ariaLabel()\" class=\"flex\">\r\n <ol class=\"inline-flex items-center text-sm\">\r\n @for (item of items(); track item.label; let last = $last; let first = $first) {\r\n <li class=\"inline-flex items-center\">\r\n @if (!first) {\r\n <span class=\"mx-2 text-neutral-400\" aria-hidden=\"true\">\r\n {{ separator() }}\r\n </span>\r\n }\r\n @if (item.link && !last) {\r\n <a\r\n [routerLink]=\"item.link\"\r\n class=\"inline-flex items-center gap-1 text-neutral-500 hover:text-primary-600 transition-colors font-medium\">\r\n @if (item.icon) {\r\n <tailwind-icon [icon]=\"item.icon\" [size]=\"16\" />\r\n }\r\n {{ item.label }}\r\n </a>\r\n } @else {\r\n <span\r\n class=\"inline-flex items-center gap-1 font-medium\"\r\n [class.text-neutral-900]=\"last\"\r\n [class.text-neutral-500]=\"!last\"\r\n [attr.aria-current]=\"last ? 'page' : null\">\r\n @if (item.icon) {\r\n <tailwind-icon [icon]=\"item.icon\" [size]=\"16\" />\r\n }\r\n {{ item.label }}\r\n </span>\r\n }\r\n </li>\r\n }\r\n </ol>\r\n</nav>\r\n", styles: [":host{display:block}\n"] }]
3485
2581
  }], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], separator: [{ type: i0.Input, args: [{ isSignal: true, alias: "separator", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }] } });
3486
2582
 
3487
2583
  class TailwindPagination extends TailwindComponent {
2584
+ tailwindPaginationSummary = inject(TAILWIND_PAGINATION_SUMMARY, { optional: true });
3488
2585
  totalItems = input.required(...(ngDevMode ? [{ debugName: "totalItems" }] : /* istanbul ignore next */ []));
3489
2586
  pageSize = input(10, ...(ngDevMode ? [{ debugName: "pageSize" }] : /* istanbul ignore next */ []));
3490
2587
  currentPage = model(1, ...(ngDevMode ? [{ debugName: "currentPage" }] : /* istanbul ignore next */ []));
3491
2588
  ariaLabel = input('Pagination', ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
3492
- summary = input('Showing {start}-{end} of {total}', ...(ngDevMode ? [{ debugName: "summary" }] : /* istanbul ignore next */ []));
2589
+ /** Placeholders `{start}`, `{end}`, `{total}`; default from `TAILWIND_PAGINATION_SUMMARY` or English copy. */
2590
+ summary = input(this.tailwindPaginationSummary ?? 'Showing {start}-{end} of {total}', ...(ngDevMode ? [{ debugName: "summary" }] : /* istanbul ignore next */ []));
3493
2591
  onPageChange = output();
3494
2592
  totalPages = computed(() => Math.ceil(this.totalItems() / this.pageSize()), ...(ngDevMode ? [{ debugName: "totalPages" }] : /* istanbul ignore next */ []));
3495
2593
  visiblePages = computed(() => {
@@ -3514,11 +2612,11 @@ class TailwindPagination extends TailwindComponent {
3514
2612
  }
3515
2613
  }
3516
2614
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindPagination, deps: null, target: i0.ɵɵFactoryTarget.Component });
3517
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindPagination, isStandalone: true, selector: "tailwind-pagination", inputs: { totalItems: { classPropertyName: "totalItems", publicName: "totalItems", isSignal: true, isRequired: true, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, currentPage: { classPropertyName: "currentPage", publicName: "currentPage", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, summary: { classPropertyName: "summary", publicName: "summary", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { currentPage: "currentPageChange", onPageChange: "onPageChange" }, usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-wrap items-center justify-between gap-4 w-full\">\n @if (summary()) {\n <span class=\"text-sm text-surface-700 dark:text-surface-300\">\n {{ summaryText() }}\n </span>\n }\n\n <nav [attr.aria-label]=\"ariaLabel()\" class=\"flex items-center gap-1\">\n <!-- Previous -->\n <button\n type=\"button\"\n [disabled]=\"currentPage() <= 1\"\n (click)=\"goToPage(currentPage() - 1)\"\n class=\"p-2 rounded-lg text-surface-500 hover:bg-surface-100 disabled:opacity-40 disabled:cursor-not-allowed transition-colors cursor-pointer\">\n <svg class=\"w-4 h-4\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n\n @for (page of visiblePages(); track page) {\n <button\n type=\"button\"\n (click)=\"goToPage(page)\"\n class=\"min-w-8 h-8 px-2 rounded-lg text-sm font-medium transition-colors cursor-pointer\"\n [class.bg-primary-600]=\"page === currentPage()\"\n [class.text-white]=\"page === currentPage()\"\n [class.text-surface-600]=\"page !== currentPage()\"\n [class.hover:bg-surface-100]=\"page !== currentPage()\">\n {{ page }}\n </button>\n }\n\n <!-- Next -->\n <button\n type=\"button\"\n [disabled]=\"currentPage() >= totalPages()\"\n (click)=\"goToPage(currentPage() + 1)\"\n class=\"p-2 rounded-lg text-surface-500 hover:bg-surface-100 disabled:opacity-40 disabled:cursor-not-allowed transition-colors cursor-pointer\">\n <svg class=\"w-4 h-4\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n </nav>\n</div>\n", styles: [":host{display:block}\n"] });
2615
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindPagination, isStandalone: true, selector: "tailwind-pagination", inputs: { totalItems: { classPropertyName: "totalItems", publicName: "totalItems", isSignal: true, isRequired: true, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, currentPage: { classPropertyName: "currentPage", publicName: "currentPage", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, summary: { classPropertyName: "summary", publicName: "summary", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { currentPage: "currentPageChange", onPageChange: "onPageChange" }, usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-wrap items-center justify-between gap-4 w-full\">\n @if (summary()) {\n <span class=\"text-sm text-neutral-700 dark:text-neutral-300\">\n {{ summaryText() }}\n </span>\n }\n\n <nav [attr.aria-label]=\"ariaLabel()\" class=\"flex items-center gap-1\">\n <!-- Previous -->\n <button\n type=\"button\"\n [disabled]=\"currentPage() <= 1\"\n (click)=\"goToPage(currentPage() - 1)\"\n class=\"p-2 rounded-lg text-neutral-500 hover:bg-neutral-100 disabled:opacity-40 disabled:cursor-not-allowed transition-colors cursor-pointer\">\n <svg class=\"w-4 h-4\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n\n @for (page of visiblePages(); track page) {\n <button\n type=\"button\"\n (click)=\"goToPage(page)\"\n class=\"min-w-8 h-8 px-2 rounded-lg text-sm font-medium transition-colors cursor-pointer\"\n [class.bg-primary-600]=\"page === currentPage()\"\n [class.text-white]=\"page === currentPage()\"\n [class.text-neutral-600]=\"page !== currentPage()\"\n [class.hover:bg-neutral-100]=\"page !== currentPage()\">\n {{ page }}\n </button>\n }\n\n <!-- Next -->\n <button\n type=\"button\"\n [disabled]=\"currentPage() >= totalPages()\"\n (click)=\"goToPage(currentPage() + 1)\"\n class=\"p-2 rounded-lg text-neutral-500 hover:bg-neutral-100 disabled:opacity-40 disabled:cursor-not-allowed transition-colors cursor-pointer\">\n <svg class=\"w-4 h-4\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n </nav>\n</div>\n", styles: [":host{display:block}\n"] });
3518
2616
  }
3519
2617
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindPagination, decorators: [{
3520
2618
  type: Component,
3521
- args: [{ selector: 'tailwind-pagination', template: "<div class=\"flex flex-wrap items-center justify-between gap-4 w-full\">\n @if (summary()) {\n <span class=\"text-sm text-surface-700 dark:text-surface-300\">\n {{ summaryText() }}\n </span>\n }\n\n <nav [attr.aria-label]=\"ariaLabel()\" class=\"flex items-center gap-1\">\n <!-- Previous -->\n <button\n type=\"button\"\n [disabled]=\"currentPage() <= 1\"\n (click)=\"goToPage(currentPage() - 1)\"\n class=\"p-2 rounded-lg text-surface-500 hover:bg-surface-100 disabled:opacity-40 disabled:cursor-not-allowed transition-colors cursor-pointer\">\n <svg class=\"w-4 h-4\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n\n @for (page of visiblePages(); track page) {\n <button\n type=\"button\"\n (click)=\"goToPage(page)\"\n class=\"min-w-8 h-8 px-2 rounded-lg text-sm font-medium transition-colors cursor-pointer\"\n [class.bg-primary-600]=\"page === currentPage()\"\n [class.text-white]=\"page === currentPage()\"\n [class.text-surface-600]=\"page !== currentPage()\"\n [class.hover:bg-surface-100]=\"page !== currentPage()\">\n {{ page }}\n </button>\n }\n\n <!-- Next -->\n <button\n type=\"button\"\n [disabled]=\"currentPage() >= totalPages()\"\n (click)=\"goToPage(currentPage() + 1)\"\n class=\"p-2 rounded-lg text-surface-500 hover:bg-surface-100 disabled:opacity-40 disabled:cursor-not-allowed transition-colors cursor-pointer\">\n <svg class=\"w-4 h-4\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n </nav>\n</div>\n", styles: [":host{display:block}\n"] }]
2619
+ args: [{ selector: 'tailwind-pagination', template: "<div class=\"flex flex-wrap items-center justify-between gap-4 w-full\">\n @if (summary()) {\n <span class=\"text-sm text-neutral-700 dark:text-neutral-300\">\n {{ summaryText() }}\n </span>\n }\n\n <nav [attr.aria-label]=\"ariaLabel()\" class=\"flex items-center gap-1\">\n <!-- Previous -->\n <button\n type=\"button\"\n [disabled]=\"currentPage() <= 1\"\n (click)=\"goToPage(currentPage() - 1)\"\n class=\"p-2 rounded-lg text-neutral-500 hover:bg-neutral-100 disabled:opacity-40 disabled:cursor-not-allowed transition-colors cursor-pointer\">\n <svg class=\"w-4 h-4\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n\n @for (page of visiblePages(); track page) {\n <button\n type=\"button\"\n (click)=\"goToPage(page)\"\n class=\"min-w-8 h-8 px-2 rounded-lg text-sm font-medium transition-colors cursor-pointer\"\n [class.bg-primary-600]=\"page === currentPage()\"\n [class.text-white]=\"page === currentPage()\"\n [class.text-neutral-600]=\"page !== currentPage()\"\n [class.hover:bg-neutral-100]=\"page !== currentPage()\">\n {{ page }}\n </button>\n }\n\n <!-- Next -->\n <button\n type=\"button\"\n [disabled]=\"currentPage() >= totalPages()\"\n (click)=\"goToPage(currentPage() + 1)\"\n class=\"p-2 rounded-lg text-neutral-500 hover:bg-neutral-100 disabled:opacity-40 disabled:cursor-not-allowed transition-colors cursor-pointer\">\n <svg class=\"w-4 h-4\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n </nav>\n</div>\n", styles: [":host{display:block}\n"] }]
3522
2620
  }], propDecorators: { totalItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalItems", required: true }] }], pageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSize", required: false }] }], currentPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentPage", required: false }] }, { type: i0.Output, args: ["currentPageChange"] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], summary: [{ type: i0.Input, args: [{ isSignal: true, alias: "summary", required: false }] }], onPageChange: [{ type: i0.Output, args: ["onPageChange"] }] } });
3523
2621
 
3524
2622
  class TailwindTag extends TailwindComponent {
@@ -3526,9 +2624,9 @@ class TailwindTag extends TailwindComponent {
3526
2624
  computedClasses = computed(() => {
3527
2625
  const variantMap = {
3528
2626
  primary: 'bg-primary-600 text-white',
3529
- neutral: 'bg-surface-600 text-white',
2627
+ neutral: 'bg-neutral-600 text-white',
3530
2628
  success: 'bg-success-600 text-white',
3531
- warning: 'bg-warning-500 text-surface-900',
2629
+ warning: 'bg-warning-500 text-neutral-900',
3532
2630
  danger: 'bg-danger-600 text-white',
3533
2631
  info: 'bg-info-600 text-white'
3534
2632
  };
@@ -3543,6 +2641,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
3543
2641
  }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }] } });
3544
2642
 
3545
2643
  class TailwindTable extends TailwindComponent {
2644
+ tailwindPaginationSummary = inject(TAILWIND_PAGINATION_SUMMARY, { optional: true });
3546
2645
  data = input([], ...(ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ []));
3547
2646
  selectable = input(false, ...(ngDevMode ? [{ debugName: "selectable" }] : /* istanbul ignore next */ []));
3548
2647
  striped = input(false, ...(ngDevMode ? [{ debugName: "striped" }] : /* istanbul ignore next */ []));
@@ -3552,6 +2651,7 @@ class TailwindTable extends TailwindComponent {
3552
2651
  emptyColspan = input(1, ...(ngDevMode ? [{ debugName: "emptyColspan" }] : /* istanbul ignore next */ []));
3553
2652
  paginated = input(true, ...(ngDevMode ? [{ debugName: "paginated" }] : /* istanbul ignore next */ []));
3554
2653
  pagination = input(...(ngDevMode ? [undefined, { debugName: "pagination" }] : /* istanbul ignore next */ []));
2654
+ paginationSummary = computed(() => this.pagination()?.summary ?? this.tailwindPaginationSummary ?? 'Showing {start}-{end} of {total}', ...(ngDevMode ? [{ debugName: "paginationSummary" }] : /* istanbul ignore next */ []));
3555
2655
  onSortChange = output();
3556
2656
  onSelectionChange = output();
3557
2657
  rowTemplate = contentChild.required(TailwindTableRowDirective);
@@ -3653,14 +2753,14 @@ class TailwindTable extends TailwindComponent {
3653
2753
  this.sort(key);
3654
2754
  }
3655
2755
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindTable, deps: [], target: i0.ɵɵFactoryTarget.Component });
3656
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindTable, isStandalone: true, selector: "tailwind-table", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, striped: { classPropertyName: "striped", publicName: "striped", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: true, isRequired: false, transformFunction: null }, emptyColspan: { classPropertyName: "emptyColspan", publicName: "emptyColspan", isSignal: true, isRequired: false, transformFunction: null }, paginated: { classPropertyName: "paginated", publicName: "paginated", isSignal: true, isRequired: false, transformFunction: null }, pagination: { classPropertyName: "pagination", publicName: "pagination", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSortChange: "onSortChange", onSelectionChange: "onSelectionChange" }, host: { listeners: { "click": "onSortZoneClick($event)", "keydown": "onSortZoneKeydown($event)" }, properties: { "attr.data-tw-sort-key": "sortKey()", "attr.data-tw-sort-dir": "sortDir()" } }, queries: [{ propertyName: "rowTemplate", first: true, predicate: TailwindTableRowDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"w-full overflow-x-auto rounded-lg border border-surface-200\">\n @if (loading()) {\n <div class=\"flex items-center justify-center py-16 text-surface-400\">\n <svg class=\"animate-spin w-6 h-6 mr-2\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\" />\n <path class=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8v8z\" />\n </svg>\n Loading...\n </div>\n } @else {\n <table class=\"w-full text-sm text-left divide-y divide-surface-100\">\n <ng-content select=\"thead\" />\n @for (row of displayedData(); track row; let i = $index) {\n <ng-container\n *ngTemplateOutlet=\"rowTemplate().templateRef; context: rowContext(row, i)\" />\n } @empty {\n <tbody>\n <tr>\n <td [attr.colspan]=\"emptyColspan()\">\n {{ emptyMessage() }}\n </td>\n </tr>\n </tbody>\n }\n </table>\n\n @if (paginated() && data().length > 0) {\n <div class=\"px-4 py-3 border-t border-surface-200 bg-white\">\n <tailwind-pagination\n [totalItems]=\"pagination()?.totalItems ?? data().length\"\n [pageSize]=\"pagination()?.pageSize ?? 10\"\n [currentPage]=\"currentPage()\"\n (onPageChange)=\"currentPage.set($event)\"\n [ariaLabel]=\"pagination()?.ariaLabel ?? 'Pagination'\"\n [summary]=\"pagination()?.summary ?? 'Showing {start}-{end} of {total}'\">\n </tailwind-pagination>\n </div>\n }\n }\n</div>\n", styles: [":host{display:block}:host ::ng-deep thead{background-color:var(--color-surface-50);border-bottom:1px solid var(--color-surface-200)}:host ::ng-deep thead th{padding:.75rem 1rem;font-weight:600;color:var(--color-surface-700);text-align:left;white-space:nowrap;vertical-align:middle}:host ::ng-deep tbody td{padding:.75rem 1rem;color:var(--color-surface-700)}:host ::ng-deep tbody td[colspan]{padding:2rem 1rem;text-align:center;color:var(--color-surface-400)}:host ::ng-deep tbody tr{transition-property:background-color,color,border-color;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}:host ::ng-deep tbody tr:hover{background-color:color-mix(in oklch,var(--color-surface-50) 50%,transparent)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: TailwindPagination, selector: "tailwind-pagination", inputs: ["totalItems", "pageSize", "currentPage", "ariaLabel", "summary"], outputs: ["currentPageChange", "onPageChange"] }] });
2756
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindTable, isStandalone: true, selector: "tailwind-table", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, striped: { classPropertyName: "striped", publicName: "striped", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: true, isRequired: false, transformFunction: null }, emptyColspan: { classPropertyName: "emptyColspan", publicName: "emptyColspan", isSignal: true, isRequired: false, transformFunction: null }, paginated: { classPropertyName: "paginated", publicName: "paginated", isSignal: true, isRequired: false, transformFunction: null }, pagination: { classPropertyName: "pagination", publicName: "pagination", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSortChange: "onSortChange", onSelectionChange: "onSelectionChange" }, host: { listeners: { "click": "onSortZoneClick($event)", "keydown": "onSortZoneKeydown($event)" }, properties: { "attr.data-tw-sort-key": "sortKey()", "attr.data-tw-sort-dir": "sortDir()" } }, queries: [{ propertyName: "rowTemplate", first: true, predicate: TailwindTableRowDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"w-full overflow-x-auto rounded-lg border border-neutral-200\">\n @if (loading()) {\n <div class=\"flex items-center justify-center py-16 text-neutral-400\">\n <svg class=\"animate-spin w-6 h-6 mr-2\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\" />\n <path class=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8v8z\" />\n </svg>\n Loading...\n </div>\n } @else {\n <!-- `table-fixed`: consente `w-*` / `min-w-*` / `max-w-*` sulle celle e sugli `th` proiettati. -->\n <table class=\"w-full min-w-0 table-fixed text-sm text-left divide-y divide-neutral-100\">\n <ng-content select=\"thead\" />\n @for (row of displayedData(); track row; let i = $index) {\n <ng-container *ngTemplateOutlet=\"rowTemplate().templateRef; context: rowContext(row, i)\" />\n } @empty {\n <tbody>\n <tr>\n <td [attr.colspan]=\"emptyColspan()\">\n {{ emptyMessage() }}\n </td>\n </tr>\n </tbody>\n }\n </table>\n\n @if (paginated() && data().length > 0) {\n <div class=\"px-4 py-3 border-t border-neutral-200 bg-white\">\n <tailwind-pagination\n [totalItems]=\"pagination()?.totalItems ?? data().length\"\n [pageSize]=\"pagination()?.pageSize ?? 10\"\n [currentPage]=\"currentPage()\"\n (onPageChange)=\"currentPage.set($event)\"\n [ariaLabel]=\"pagination()?.ariaLabel ?? 'Pagination'\"\n [summary]=\"paginationSummary()\">\n </tailwind-pagination>\n </div>\n }\n }\n</div>\n", styles: ["@layer components{:host{display:block}:host ::ng-deep :where(thead){background-color:var(--color-neutral-50);border-bottom:1px solid var(--color-neutral-200)}:host ::ng-deep :where(thead th){padding:.75rem 1rem;font-weight:600;color:var(--color-neutral-700);text-align:left;white-space:nowrap;vertical-align:middle}:host ::ng-deep :where(tbody td){padding:.75rem 1rem;color:var(--color-neutral-700)}:host ::ng-deep :where(tbody td[colspan]){padding:2rem 1rem;text-align:center;color:var(--color-neutral-400)}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: TailwindPagination, selector: "tailwind-pagination", inputs: ["totalItems", "pageSize", "currentPage", "ariaLabel", "summary"], outputs: ["currentPageChange", "onPageChange"] }] });
3657
2757
  }
3658
2758
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindTable, decorators: [{
3659
2759
  type: Component,
3660
2760
  args: [{ selector: 'tailwind-table', imports: [NgTemplateOutlet, TailwindPagination], host: {
3661
2761
  '[attr.data-tw-sort-key]': 'sortKey()',
3662
2762
  '[attr.data-tw-sort-dir]': 'sortDir()'
3663
- }, template: "<div class=\"w-full overflow-x-auto rounded-lg border border-surface-200\">\n @if (loading()) {\n <div class=\"flex items-center justify-center py-16 text-surface-400\">\n <svg class=\"animate-spin w-6 h-6 mr-2\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\" />\n <path class=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8v8z\" />\n </svg>\n Loading...\n </div>\n } @else {\n <table class=\"w-full text-sm text-left divide-y divide-surface-100\">\n <ng-content select=\"thead\" />\n @for (row of displayedData(); track row; let i = $index) {\n <ng-container\n *ngTemplateOutlet=\"rowTemplate().templateRef; context: rowContext(row, i)\" />\n } @empty {\n <tbody>\n <tr>\n <td [attr.colspan]=\"emptyColspan()\">\n {{ emptyMessage() }}\n </td>\n </tr>\n </tbody>\n }\n </table>\n\n @if (paginated() && data().length > 0) {\n <div class=\"px-4 py-3 border-t border-surface-200 bg-white\">\n <tailwind-pagination\n [totalItems]=\"pagination()?.totalItems ?? data().length\"\n [pageSize]=\"pagination()?.pageSize ?? 10\"\n [currentPage]=\"currentPage()\"\n (onPageChange)=\"currentPage.set($event)\"\n [ariaLabel]=\"pagination()?.ariaLabel ?? 'Pagination'\"\n [summary]=\"pagination()?.summary ?? 'Showing {start}-{end} of {total}'\">\n </tailwind-pagination>\n </div>\n }\n }\n</div>\n", styles: [":host{display:block}:host ::ng-deep thead{background-color:var(--color-surface-50);border-bottom:1px solid var(--color-surface-200)}:host ::ng-deep thead th{padding:.75rem 1rem;font-weight:600;color:var(--color-surface-700);text-align:left;white-space:nowrap;vertical-align:middle}:host ::ng-deep tbody td{padding:.75rem 1rem;color:var(--color-surface-700)}:host ::ng-deep tbody td[colspan]{padding:2rem 1rem;text-align:center;color:var(--color-surface-400)}:host ::ng-deep tbody tr{transition-property:background-color,color,border-color;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}:host ::ng-deep tbody tr:hover{background-color:color-mix(in oklch,var(--color-surface-50) 50%,transparent)}\n"] }]
2763
+ }, template: "<div class=\"w-full overflow-x-auto rounded-lg border border-neutral-200\">\n @if (loading()) {\n <div class=\"flex items-center justify-center py-16 text-neutral-400\">\n <svg class=\"animate-spin w-6 h-6 mr-2\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\" />\n <path class=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8v8z\" />\n </svg>\n Loading...\n </div>\n } @else {\n <!-- `table-fixed`: consente `w-*` / `min-w-*` / `max-w-*` sulle celle e sugli `th` proiettati. -->\n <table class=\"w-full min-w-0 table-fixed text-sm text-left divide-y divide-neutral-100\">\n <ng-content select=\"thead\" />\n @for (row of displayedData(); track row; let i = $index) {\n <ng-container *ngTemplateOutlet=\"rowTemplate().templateRef; context: rowContext(row, i)\" />\n } @empty {\n <tbody>\n <tr>\n <td [attr.colspan]=\"emptyColspan()\">\n {{ emptyMessage() }}\n </td>\n </tr>\n </tbody>\n }\n </table>\n\n @if (paginated() && data().length > 0) {\n <div class=\"px-4 py-3 border-t border-neutral-200 bg-white\">\n <tailwind-pagination\n [totalItems]=\"pagination()?.totalItems ?? data().length\"\n [pageSize]=\"pagination()?.pageSize ?? 10\"\n [currentPage]=\"currentPage()\"\n (onPageChange)=\"currentPage.set($event)\"\n [ariaLabel]=\"pagination()?.ariaLabel ?? 'Pagination'\"\n [summary]=\"paginationSummary()\">\n </tailwind-pagination>\n </div>\n }\n }\n</div>\n", styles: ["@layer components{:host{display:block}:host ::ng-deep :where(thead){background-color:var(--color-neutral-50);border-bottom:1px solid var(--color-neutral-200)}:host ::ng-deep :where(thead th){padding:.75rem 1rem;font-weight:600;color:var(--color-neutral-700);text-align:left;white-space:nowrap;vertical-align:middle}:host ::ng-deep :where(tbody td){padding:.75rem 1rem;color:var(--color-neutral-700)}:host ::ng-deep :where(tbody td[colspan]){padding:2rem 1rem;text-align:center;color:var(--color-neutral-400)}}\n"] }]
3664
2764
  }], ctorParameters: () => [], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], selectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectable", required: false }] }], striped: [{ type: i0.Input, args: [{ isSignal: true, alias: "striped", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], emptyMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyMessage", required: false }] }], emptyColspan: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyColspan", required: false }] }], paginated: [{ type: i0.Input, args: [{ isSignal: true, alias: "paginated", required: false }] }], pagination: [{ type: i0.Input, args: [{ isSignal: true, alias: "pagination", required: false }] }], onSortChange: [{ type: i0.Output, args: ["onSortChange"] }], onSelectionChange: [{ type: i0.Output, args: ["onSelectionChange"] }], rowTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TailwindTableRowDirective), { isSignal: true }] }], onSortZoneClick: [{
3665
2765
  type: HostListener,
3666
2766
  args: ['click', ['$event']]
@@ -3808,11 +2908,11 @@ class TailwindDatePicker extends TailwindComponent {
3808
2908
  this.showCalendar.set(false);
3809
2909
  }
3810
2910
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindDatePicker, deps: null, target: i0.ɵɵFactoryTarget.Component });
3811
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindDatePicker, isStandalone: true, selector: "tailwind-date-picker", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { listeners: { "document:pointerdown": "onDocumentPointerDown($event)", "document:keydown": "onDocumentKeydown($event)" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TailwindDatePicker), multi: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-col gap-1.5\">\n @if (label()) {\n <label [attr.for]=\"id() ? id() + '-inner' : null\" class=\"text-sm font-medium text-surface-700\">{{ label() }}</label>\n }\n <div class=\"relative\">\n <input\n [attr.id]=\"id() ? id() + '-inner' : null\"\n type=\"text\"\n readonly\n [value]=\"displayValue()\"\n [placeholder]=\"effectivePlaceholder()\"\n class=\"block w-full bg-white border border-surface-300 rounded-md px-3 py-2 text-sm text-surface-900 placeholder:text-surface-400 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 cursor-pointer disabled:bg-surface-50 disabled:cursor-not-allowed pr-10\"\n [disabled]=\"isDisabled()\"\n (click)=\"toggleCalendar()\" />\n <svg\n class=\"absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-surface-400 pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M5.75 2a.75.75 0 01.75.75V4h7V2.75a.75.75 0 011.5 0V4h.25A2.75 2.75 0 0118 6.75v8.5A2.75 2.75 0 0115.25 18H4.75A2.75 2.75 0 012 15.25v-8.5A2.75 2.75 0 014.75 4H5V2.75A.75.75 0 015.75 2zm-1 5.5c-.69 0-1.25.56-1.25 1.25v6.5c0 .69.56 1.25 1.25 1.25h10.5c.69 0 1.25-.56 1.25-1.25v-6.5c0-.69-.56-1.25-1.25-1.25H4.75z\"\n clip-rule=\"evenodd\" />\n </svg>\n </div>\n\n @if (showCalendar()) {\n <div class=\"absolute z-popover mt-1 bg-white rounded-xl border border-surface-200 shadow-xl p-4 w-72\">\n <!-- Month/Year nav -->\n <div class=\"flex items-center justify-between mb-3\">\n <button\n type=\"button\"\n (click)=\"prevMonth()\"\n class=\"p-1 rounded-lg hover:bg-surface-100 transition-colors cursor-pointer\">\n <svg\n class=\"w-4 h-4 text-surface-600\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n <span class=\"text-sm font-semibold text-surface-800\">{{ monthYearLabel() }}</span>\n <button\n type=\"button\"\n (click)=\"nextMonth()\"\n class=\"p-1 rounded-lg hover:bg-surface-100 transition-colors cursor-pointer\">\n <svg\n class=\"w-4 h-4 text-surface-600\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n </div>\n <!-- Weekdays -->\n <div class=\"grid grid-cols-7 gap-0 mb-1\">\n @for (day of weekDays; track $index) {\n <div class=\"text-center text-xs font-medium text-surface-400 py-1\">{{ day }}</div>\n }\n </div>\n <!-- Days -->\n <div class=\"grid grid-cols-7 gap-0\">\n @for (day of calendarDays(); track $index) {\n @if (day === 0) {\n <div></div>\n } @else {\n <button\n type=\"button\"\n (click)=\"selectDay(day)\"\n class=\"h-8 w-8 mx-auto rounded-lg text-sm transition-colors cursor-pointer hover:bg-surface-100\"\n [class.bg-primary-600]=\"isSelected(day)\"\n [class.text-white]=\"isSelected(day)\"\n [class.hover:bg-primary-700]=\"isSelected(day)\"\n [class.text-surface-700]=\"!isSelected(day) && !isToday(day)\"\n [class.font-semibold]=\"isToday(day)\"\n [class.text-primary-600]=\"isToday(day) && !isSelected(day)\">\n {{ day }}\n </button>\n }\n }\n </div>\n <div class=\"mt-2 pt-2 border-t border-surface-100 flex items-center justify-between gap-2\">\n <button\n type=\"button\"\n (click)=\"goToToday()\"\n [disabled]=\"isDisabled()\"\n class=\"text-xs text-primary-600 font-medium hover:underline cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed disabled:no-underline\">\n {{ i18n.today }}\n </button>\n <button\n type=\"button\"\n (click)=\"apply()\"\n [disabled]=\"isDisabled() || !draft()\"\n class=\"px-3 py-1.5 text-xs font-medium rounded-md bg-primary-600 text-white hover:bg-primary-700 cursor-pointer disabled:bg-surface-200 disabled:text-surface-500 disabled:cursor-not-allowed\">\n {{ i18n.confirm }}\n </button>\n </div>\n </div>\n }\n</div>\n", styles: [":host{display:block;position:relative}\n"] });
2911
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindDatePicker, isStandalone: true, selector: "tailwind-date-picker", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { listeners: { "document:pointerdown": "onDocumentPointerDown($event)", "document:keydown": "onDocumentKeydown($event)" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TailwindDatePicker), multi: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-col gap-1.5\">\n @if (label()) {\n <label [attr.for]=\"id() ? id() + '-inner' : null\" class=\"text-sm font-medium text-neutral-700\">{{ label() }}</label>\n }\n <div class=\"relative\">\n <input\n [attr.id]=\"id() ? id() + '-inner' : null\"\n type=\"text\"\n readonly\n [value]=\"displayValue()\"\n [placeholder]=\"effectivePlaceholder()\"\n class=\"block w-full bg-white border border-neutral-300 rounded-md px-3 py-2 text-sm text-neutral-900 placeholder:text-neutral-400 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 cursor-pointer disabled:bg-neutral-50 disabled:cursor-not-allowed pr-10\"\n [disabled]=\"isDisabled()\"\n (click)=\"toggleCalendar()\" />\n <svg\n class=\"absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-neutral-400 pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M5.75 2a.75.75 0 01.75.75V4h7V2.75a.75.75 0 011.5 0V4h.25A2.75 2.75 0 0118 6.75v8.5A2.75 2.75 0 0115.25 18H4.75A2.75 2.75 0 012 15.25v-8.5A2.75 2.75 0 014.75 4H5V2.75A.75.75 0 015.75 2zm-1 5.5c-.69 0-1.25.56-1.25 1.25v6.5c0 .69.56 1.25 1.25 1.25h10.5c.69 0 1.25-.56 1.25-1.25v-6.5c0-.69-.56-1.25-1.25-1.25H4.75z\"\n clip-rule=\"evenodd\" />\n </svg>\n </div>\n\n @if (showCalendar()) {\n <div class=\"absolute z-popover mt-1 bg-white rounded-xl border border-neutral-200 shadow-xl p-4 w-72\">\n <!-- Month/Year nav -->\n <div class=\"flex items-center justify-between mb-3\">\n <button\n type=\"button\"\n (click)=\"prevMonth()\"\n class=\"p-1 rounded-lg hover:bg-neutral-100 transition-colors cursor-pointer\">\n <svg\n class=\"w-4 h-4 text-neutral-600\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n <span class=\"text-sm font-semibold text-neutral-800\">{{ monthYearLabel() }}</span>\n <button\n type=\"button\"\n (click)=\"nextMonth()\"\n class=\"p-1 rounded-lg hover:bg-neutral-100 transition-colors cursor-pointer\">\n <svg\n class=\"w-4 h-4 text-neutral-600\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n </div>\n <!-- Weekdays -->\n <div class=\"grid grid-cols-7 gap-0 mb-1\">\n @for (day of weekDays; track $index) {\n <div class=\"text-center text-xs font-medium text-neutral-400 py-1\">{{ day }}</div>\n }\n </div>\n <!-- Days -->\n <div class=\"grid grid-cols-7 gap-0\">\n @for (day of calendarDays(); track $index) {\n @if (day === 0) {\n <div></div>\n } @else {\n <button\n type=\"button\"\n (click)=\"selectDay(day)\"\n class=\"h-8 w-8 mx-auto rounded-lg text-sm transition-colors cursor-pointer hover:bg-neutral-100\"\n [class.bg-primary-600]=\"isSelected(day)\"\n [class.text-white]=\"isSelected(day)\"\n [class.hover:bg-primary-700]=\"isSelected(day)\"\n [class.text-neutral-700]=\"!isSelected(day) && !isToday(day)\"\n [class.font-semibold]=\"isToday(day)\"\n [class.text-primary-600]=\"isToday(day) && !isSelected(day)\">\n {{ day }}\n </button>\n }\n }\n </div>\n <div class=\"mt-2 pt-2 border-t border-neutral-100 flex items-center justify-between gap-2\">\n <button\n type=\"button\"\n (click)=\"goToToday()\"\n [disabled]=\"isDisabled()\"\n class=\"text-xs text-primary-600 font-medium hover:underline cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed disabled:no-underline\">\n {{ i18n.today }}\n </button>\n <button\n type=\"button\"\n (click)=\"apply()\"\n [disabled]=\"isDisabled() || !draft()\"\n class=\"px-3 py-1.5 text-xs font-medium rounded-md bg-primary-600 text-white hover:bg-primary-700 cursor-pointer disabled:bg-neutral-200 disabled:text-neutral-500 disabled:cursor-not-allowed\">\n {{ i18n.confirm }}\n </button>\n </div>\n </div>\n }\n</div>\n", styles: [":host{display:block;position:relative}\n"] });
3812
2912
  }
3813
2913
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindDatePicker, decorators: [{
3814
2914
  type: Component,
3815
- args: [{ selector: 'tailwind-date-picker', providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TailwindDatePicker), multi: true }], template: "<div class=\"flex flex-col gap-1.5\">\n @if (label()) {\n <label [attr.for]=\"id() ? id() + '-inner' : null\" class=\"text-sm font-medium text-surface-700\">{{ label() }}</label>\n }\n <div class=\"relative\">\n <input\n [attr.id]=\"id() ? id() + '-inner' : null\"\n type=\"text\"\n readonly\n [value]=\"displayValue()\"\n [placeholder]=\"effectivePlaceholder()\"\n class=\"block w-full bg-white border border-surface-300 rounded-md px-3 py-2 text-sm text-surface-900 placeholder:text-surface-400 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 cursor-pointer disabled:bg-surface-50 disabled:cursor-not-allowed pr-10\"\n [disabled]=\"isDisabled()\"\n (click)=\"toggleCalendar()\" />\n <svg\n class=\"absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-surface-400 pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M5.75 2a.75.75 0 01.75.75V4h7V2.75a.75.75 0 011.5 0V4h.25A2.75 2.75 0 0118 6.75v8.5A2.75 2.75 0 0115.25 18H4.75A2.75 2.75 0 012 15.25v-8.5A2.75 2.75 0 014.75 4H5V2.75A.75.75 0 015.75 2zm-1 5.5c-.69 0-1.25.56-1.25 1.25v6.5c0 .69.56 1.25 1.25 1.25h10.5c.69 0 1.25-.56 1.25-1.25v-6.5c0-.69-.56-1.25-1.25-1.25H4.75z\"\n clip-rule=\"evenodd\" />\n </svg>\n </div>\n\n @if (showCalendar()) {\n <div class=\"absolute z-popover mt-1 bg-white rounded-xl border border-surface-200 shadow-xl p-4 w-72\">\n <!-- Month/Year nav -->\n <div class=\"flex items-center justify-between mb-3\">\n <button\n type=\"button\"\n (click)=\"prevMonth()\"\n class=\"p-1 rounded-lg hover:bg-surface-100 transition-colors cursor-pointer\">\n <svg\n class=\"w-4 h-4 text-surface-600\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n <span class=\"text-sm font-semibold text-surface-800\">{{ monthYearLabel() }}</span>\n <button\n type=\"button\"\n (click)=\"nextMonth()\"\n class=\"p-1 rounded-lg hover:bg-surface-100 transition-colors cursor-pointer\">\n <svg\n class=\"w-4 h-4 text-surface-600\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n </div>\n <!-- Weekdays -->\n <div class=\"grid grid-cols-7 gap-0 mb-1\">\n @for (day of weekDays; track $index) {\n <div class=\"text-center text-xs font-medium text-surface-400 py-1\">{{ day }}</div>\n }\n </div>\n <!-- Days -->\n <div class=\"grid grid-cols-7 gap-0\">\n @for (day of calendarDays(); track $index) {\n @if (day === 0) {\n <div></div>\n } @else {\n <button\n type=\"button\"\n (click)=\"selectDay(day)\"\n class=\"h-8 w-8 mx-auto rounded-lg text-sm transition-colors cursor-pointer hover:bg-surface-100\"\n [class.bg-primary-600]=\"isSelected(day)\"\n [class.text-white]=\"isSelected(day)\"\n [class.hover:bg-primary-700]=\"isSelected(day)\"\n [class.text-surface-700]=\"!isSelected(day) && !isToday(day)\"\n [class.font-semibold]=\"isToday(day)\"\n [class.text-primary-600]=\"isToday(day) && !isSelected(day)\">\n {{ day }}\n </button>\n }\n }\n </div>\n <div class=\"mt-2 pt-2 border-t border-surface-100 flex items-center justify-between gap-2\">\n <button\n type=\"button\"\n (click)=\"goToToday()\"\n [disabled]=\"isDisabled()\"\n class=\"text-xs text-primary-600 font-medium hover:underline cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed disabled:no-underline\">\n {{ i18n.today }}\n </button>\n <button\n type=\"button\"\n (click)=\"apply()\"\n [disabled]=\"isDisabled() || !draft()\"\n class=\"px-3 py-1.5 text-xs font-medium rounded-md bg-primary-600 text-white hover:bg-primary-700 cursor-pointer disabled:bg-surface-200 disabled:text-surface-500 disabled:cursor-not-allowed\">\n {{ i18n.confirm }}\n </button>\n </div>\n </div>\n }\n</div>\n", styles: [":host{display:block;position:relative}\n"] }]
2915
+ args: [{ selector: 'tailwind-date-picker', providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TailwindDatePicker), multi: true }], template: "<div class=\"flex flex-col gap-1.5\">\n @if (label()) {\n <label [attr.for]=\"id() ? id() + '-inner' : null\" class=\"text-sm font-medium text-neutral-700\">{{ label() }}</label>\n }\n <div class=\"relative\">\n <input\n [attr.id]=\"id() ? id() + '-inner' : null\"\n type=\"text\"\n readonly\n [value]=\"displayValue()\"\n [placeholder]=\"effectivePlaceholder()\"\n class=\"block w-full bg-white border border-neutral-300 rounded-md px-3 py-2 text-sm text-neutral-900 placeholder:text-neutral-400 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 cursor-pointer disabled:bg-neutral-50 disabled:cursor-not-allowed pr-10\"\n [disabled]=\"isDisabled()\"\n (click)=\"toggleCalendar()\" />\n <svg\n class=\"absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-neutral-400 pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M5.75 2a.75.75 0 01.75.75V4h7V2.75a.75.75 0 011.5 0V4h.25A2.75 2.75 0 0118 6.75v8.5A2.75 2.75 0 0115.25 18H4.75A2.75 2.75 0 012 15.25v-8.5A2.75 2.75 0 014.75 4H5V2.75A.75.75 0 015.75 2zm-1 5.5c-.69 0-1.25.56-1.25 1.25v6.5c0 .69.56 1.25 1.25 1.25h10.5c.69 0 1.25-.56 1.25-1.25v-6.5c0-.69-.56-1.25-1.25-1.25H4.75z\"\n clip-rule=\"evenodd\" />\n </svg>\n </div>\n\n @if (showCalendar()) {\n <div class=\"absolute z-popover mt-1 bg-white rounded-xl border border-neutral-200 shadow-xl p-4 w-72\">\n <!-- Month/Year nav -->\n <div class=\"flex items-center justify-between mb-3\">\n <button\n type=\"button\"\n (click)=\"prevMonth()\"\n class=\"p-1 rounded-lg hover:bg-neutral-100 transition-colors cursor-pointer\">\n <svg\n class=\"w-4 h-4 text-neutral-600\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n <span class=\"text-sm font-semibold text-neutral-800\">{{ monthYearLabel() }}</span>\n <button\n type=\"button\"\n (click)=\"nextMonth()\"\n class=\"p-1 rounded-lg hover:bg-neutral-100 transition-colors cursor-pointer\">\n <svg\n class=\"w-4 h-4 text-neutral-600\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n </div>\n <!-- Weekdays -->\n <div class=\"grid grid-cols-7 gap-0 mb-1\">\n @for (day of weekDays; track $index) {\n <div class=\"text-center text-xs font-medium text-neutral-400 py-1\">{{ day }}</div>\n }\n </div>\n <!-- Days -->\n <div class=\"grid grid-cols-7 gap-0\">\n @for (day of calendarDays(); track $index) {\n @if (day === 0) {\n <div></div>\n } @else {\n <button\n type=\"button\"\n (click)=\"selectDay(day)\"\n class=\"h-8 w-8 mx-auto rounded-lg text-sm transition-colors cursor-pointer hover:bg-neutral-100\"\n [class.bg-primary-600]=\"isSelected(day)\"\n [class.text-white]=\"isSelected(day)\"\n [class.hover:bg-primary-700]=\"isSelected(day)\"\n [class.text-neutral-700]=\"!isSelected(day) && !isToday(day)\"\n [class.font-semibold]=\"isToday(day)\"\n [class.text-primary-600]=\"isToday(day) && !isSelected(day)\">\n {{ day }}\n </button>\n }\n }\n </div>\n <div class=\"mt-2 pt-2 border-t border-neutral-100 flex items-center justify-between gap-2\">\n <button\n type=\"button\"\n (click)=\"goToToday()\"\n [disabled]=\"isDisabled()\"\n class=\"text-xs text-primary-600 font-medium hover:underline cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed disabled:no-underline\">\n {{ i18n.today }}\n </button>\n <button\n type=\"button\"\n (click)=\"apply()\"\n [disabled]=\"isDisabled() || !draft()\"\n class=\"px-3 py-1.5 text-xs font-medium rounded-md bg-primary-600 text-white hover:bg-primary-700 cursor-pointer disabled:bg-neutral-200 disabled:text-neutral-500 disabled:cursor-not-allowed\">\n {{ i18n.confirm }}\n </button>\n </div>\n </div>\n }\n</div>\n", styles: [":host{display:block;position:relative}\n"] }]
3816
2916
  }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], format: [{ type: i0.Input, args: [{ isSignal: true, alias: "format", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], onDocumentPointerDown: [{
3817
2917
  type: HostListener,
3818
2918
  args: ['document:pointerdown', ['$event']]
@@ -3907,11 +3007,11 @@ class TailwindTimePicker extends TailwindComponent {
3907
3007
  this.showPanel.set(false);
3908
3008
  }
3909
3009
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindTimePicker, deps: null, target: i0.ɵɵFactoryTarget.Component });
3910
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindTimePicker, isStandalone: true, selector: "tailwind-time-picker", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { listeners: { "document:pointerdown": "onDocumentPointerDown($event)", "document:keydown": "onDocumentKeydown($event)" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TailwindTimePicker), multi: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-col gap-1.5\">\n @if (label()) {\n <label [attr.for]=\"id() ? id() + '-inner' : null\" class=\"text-sm font-medium text-surface-700\">{{ label() }}</label>\n }\n <div class=\"relative\">\n <input\n [attr.id]=\"id() ? id() + '-inner' : null\"\n type=\"text\"\n readonly\n [value]=\"displayValue()\"\n [placeholder]=\"i18n.placeholder\"\n [disabled]=\"isDisabled()\"\n class=\"block w-full bg-white border border-surface-300 rounded-md px-3 py-2 text-sm text-surface-900 placeholder:text-surface-400 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 cursor-pointer disabled:bg-surface-50 disabled:cursor-not-allowed pr-10\"\n (click)=\"togglePanel()\" />\n <svg\n class=\"absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-surface-400 pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm1-12a1 1 0 10-2 0v4a1 1 0 00.293.707l2.828 2.829a1 1 0 101.415-1.415L11 9.586V6z\"\n clip-rule=\"evenodd\" />\n </svg>\n\n @if (showPanel()) {\n <div\n class=\"absolute left-0 top-full z-popover mt-1 w-52 rounded-xl border border-surface-200 bg-white p-4 shadow-xl\">\n <div class=\"flex items-center gap-2\">\n <select\n class=\"flex-1 min-w-0 block bg-white border border-surface-300 rounded-md px-2 py-1.5 text-sm text-surface-900 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 disabled:bg-surface-50 disabled:cursor-not-allowed\"\n [disabled]=\"isDisabled()\"\n (change)=\"onHourChange($event)\">\n @for (h of hours; track h) {\n <option [value]=\"h\" [selected]=\"h === (draft()?.h ?? 0)\">\n {{ h.toString().padStart(2, '0') }}\n </option>\n }\n </select>\n <span class=\"text-surface-400 text-sm shrink-0\">:</span>\n <select\n class=\"flex-1 min-w-0 block bg-white border border-surface-300 rounded-md px-2 py-1.5 text-sm text-surface-900 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 disabled:bg-surface-50 disabled:cursor-not-allowed\"\n [disabled]=\"isDisabled()\"\n (change)=\"onMinuteChange($event)\">\n @for (m of minutes; track m) {\n <option [value]=\"m\" [selected]=\"m === (draft()?.m ?? 0)\">\n {{ m.toString().padStart(2, '0') }}\n </option>\n }\n </select>\n </div>\n <div class=\"mt-2 pt-2 border-t border-surface-100 flex items-center justify-between gap-2\">\n <button\n type=\"button\"\n (click)=\"goToNow()\"\n [disabled]=\"isDisabled()\"\n class=\"text-xs text-primary-600 font-medium hover:underline cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed disabled:no-underline\">\n {{ i18n.now }}\n </button>\n <button\n type=\"button\"\n (click)=\"apply()\"\n [disabled]=\"isDisabled()\"\n class=\"px-3 py-1.5 text-xs font-medium rounded-md bg-primary-600 text-white hover:bg-primary-700 cursor-pointer disabled:bg-surface-200 disabled:text-surface-500 disabled:cursor-not-allowed\">\n {{ i18n.apply }}\n </button>\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [":host{display:block}\n"] });
3010
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindTimePicker, isStandalone: true, selector: "tailwind-time-picker", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { listeners: { "document:pointerdown": "onDocumentPointerDown($event)", "document:keydown": "onDocumentKeydown($event)" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TailwindTimePicker), multi: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-col gap-1.5\">\n @if (label()) {\n <label [attr.for]=\"id() ? id() + '-inner' : null\" class=\"text-sm font-medium text-neutral-700\">{{ label() }}</label>\n }\n <div class=\"relative\">\n <input\n [attr.id]=\"id() ? id() + '-inner' : null\"\n type=\"text\"\n readonly\n [value]=\"displayValue()\"\n [placeholder]=\"i18n.placeholder\"\n [disabled]=\"isDisabled()\"\n class=\"block w-full bg-white border border-neutral-300 rounded-md px-3 py-2 text-sm text-neutral-900 placeholder:text-neutral-400 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 cursor-pointer disabled:bg-neutral-50 disabled:cursor-not-allowed pr-10\"\n (click)=\"togglePanel()\" />\n <svg\n class=\"absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-neutral-400 pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm1-12a1 1 0 10-2 0v4a1 1 0 00.293.707l2.828 2.829a1 1 0 101.415-1.415L11 9.586V6z\"\n clip-rule=\"evenodd\" />\n </svg>\n\n @if (showPanel()) {\n <div\n class=\"absolute left-0 top-full z-popover mt-1 w-52 rounded-xl border border-neutral-200 bg-white p-4 shadow-xl\">\n <div class=\"flex items-center gap-2\">\n <select\n class=\"flex-1 min-w-0 block bg-white border border-neutral-300 rounded-md px-2 py-1.5 text-sm text-neutral-900 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 disabled:bg-neutral-50 disabled:cursor-not-allowed\"\n [disabled]=\"isDisabled()\"\n (change)=\"onHourChange($event)\">\n @for (h of hours; track h) {\n <option [value]=\"h\" [selected]=\"h === (draft()?.h ?? 0)\">\n {{ h.toString().padStart(2, '0') }}\n </option>\n }\n </select>\n <span class=\"text-neutral-400 text-sm shrink-0\">:</span>\n <select\n class=\"flex-1 min-w-0 block bg-white border border-neutral-300 rounded-md px-2 py-1.5 text-sm text-neutral-900 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 disabled:bg-neutral-50 disabled:cursor-not-allowed\"\n [disabled]=\"isDisabled()\"\n (change)=\"onMinuteChange($event)\">\n @for (m of minutes; track m) {\n <option [value]=\"m\" [selected]=\"m === (draft()?.m ?? 0)\">\n {{ m.toString().padStart(2, '0') }}\n </option>\n }\n </select>\n </div>\n <div class=\"mt-2 pt-2 border-t border-neutral-100 flex items-center justify-between gap-2\">\n <button\n type=\"button\"\n (click)=\"goToNow()\"\n [disabled]=\"isDisabled()\"\n class=\"text-xs text-primary-600 font-medium hover:underline cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed disabled:no-underline\">\n {{ i18n.now }}\n </button>\n <button\n type=\"button\"\n (click)=\"apply()\"\n [disabled]=\"isDisabled()\"\n class=\"px-3 py-1.5 text-xs font-medium rounded-md bg-primary-600 text-white hover:bg-primary-700 cursor-pointer disabled:bg-neutral-200 disabled:text-neutral-500 disabled:cursor-not-allowed\">\n {{ i18n.apply }}\n </button>\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [":host{display:block}\n"] });
3911
3011
  }
3912
3012
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindTimePicker, decorators: [{
3913
3013
  type: Component,
3914
- args: [{ selector: 'tailwind-time-picker', imports: [], providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TailwindTimePicker), multi: true }], template: "<div class=\"flex flex-col gap-1.5\">\n @if (label()) {\n <label [attr.for]=\"id() ? id() + '-inner' : null\" class=\"text-sm font-medium text-surface-700\">{{ label() }}</label>\n }\n <div class=\"relative\">\n <input\n [attr.id]=\"id() ? id() + '-inner' : null\"\n type=\"text\"\n readonly\n [value]=\"displayValue()\"\n [placeholder]=\"i18n.placeholder\"\n [disabled]=\"isDisabled()\"\n class=\"block w-full bg-white border border-surface-300 rounded-md px-3 py-2 text-sm text-surface-900 placeholder:text-surface-400 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 cursor-pointer disabled:bg-surface-50 disabled:cursor-not-allowed pr-10\"\n (click)=\"togglePanel()\" />\n <svg\n class=\"absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-surface-400 pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm1-12a1 1 0 10-2 0v4a1 1 0 00.293.707l2.828 2.829a1 1 0 101.415-1.415L11 9.586V6z\"\n clip-rule=\"evenodd\" />\n </svg>\n\n @if (showPanel()) {\n <div\n class=\"absolute left-0 top-full z-popover mt-1 w-52 rounded-xl border border-surface-200 bg-white p-4 shadow-xl\">\n <div class=\"flex items-center gap-2\">\n <select\n class=\"flex-1 min-w-0 block bg-white border border-surface-300 rounded-md px-2 py-1.5 text-sm text-surface-900 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 disabled:bg-surface-50 disabled:cursor-not-allowed\"\n [disabled]=\"isDisabled()\"\n (change)=\"onHourChange($event)\">\n @for (h of hours; track h) {\n <option [value]=\"h\" [selected]=\"h === (draft()?.h ?? 0)\">\n {{ h.toString().padStart(2, '0') }}\n </option>\n }\n </select>\n <span class=\"text-surface-400 text-sm shrink-0\">:</span>\n <select\n class=\"flex-1 min-w-0 block bg-white border border-surface-300 rounded-md px-2 py-1.5 text-sm text-surface-900 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 disabled:bg-surface-50 disabled:cursor-not-allowed\"\n [disabled]=\"isDisabled()\"\n (change)=\"onMinuteChange($event)\">\n @for (m of minutes; track m) {\n <option [value]=\"m\" [selected]=\"m === (draft()?.m ?? 0)\">\n {{ m.toString().padStart(2, '0') }}\n </option>\n }\n </select>\n </div>\n <div class=\"mt-2 pt-2 border-t border-surface-100 flex items-center justify-between gap-2\">\n <button\n type=\"button\"\n (click)=\"goToNow()\"\n [disabled]=\"isDisabled()\"\n class=\"text-xs text-primary-600 font-medium hover:underline cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed disabled:no-underline\">\n {{ i18n.now }}\n </button>\n <button\n type=\"button\"\n (click)=\"apply()\"\n [disabled]=\"isDisabled()\"\n class=\"px-3 py-1.5 text-xs font-medium rounded-md bg-primary-600 text-white hover:bg-primary-700 cursor-pointer disabled:bg-surface-200 disabled:text-surface-500 disabled:cursor-not-allowed\">\n {{ i18n.apply }}\n </button>\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [":host{display:block}\n"] }]
3014
+ args: [{ selector: 'tailwind-time-picker', imports: [], providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TailwindTimePicker), multi: true }], template: "<div class=\"flex flex-col gap-1.5\">\n @if (label()) {\n <label [attr.for]=\"id() ? id() + '-inner' : null\" class=\"text-sm font-medium text-neutral-700\">{{ label() }}</label>\n }\n <div class=\"relative\">\n <input\n [attr.id]=\"id() ? id() + '-inner' : null\"\n type=\"text\"\n readonly\n [value]=\"displayValue()\"\n [placeholder]=\"i18n.placeholder\"\n [disabled]=\"isDisabled()\"\n class=\"block w-full bg-white border border-neutral-300 rounded-md px-3 py-2 text-sm text-neutral-900 placeholder:text-neutral-400 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 cursor-pointer disabled:bg-neutral-50 disabled:cursor-not-allowed pr-10\"\n (click)=\"togglePanel()\" />\n <svg\n class=\"absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-neutral-400 pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm1-12a1 1 0 10-2 0v4a1 1 0 00.293.707l2.828 2.829a1 1 0 101.415-1.415L11 9.586V6z\"\n clip-rule=\"evenodd\" />\n </svg>\n\n @if (showPanel()) {\n <div\n class=\"absolute left-0 top-full z-popover mt-1 w-52 rounded-xl border border-neutral-200 bg-white p-4 shadow-xl\">\n <div class=\"flex items-center gap-2\">\n <select\n class=\"flex-1 min-w-0 block bg-white border border-neutral-300 rounded-md px-2 py-1.5 text-sm text-neutral-900 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 disabled:bg-neutral-50 disabled:cursor-not-allowed\"\n [disabled]=\"isDisabled()\"\n (change)=\"onHourChange($event)\">\n @for (h of hours; track h) {\n <option [value]=\"h\" [selected]=\"h === (draft()?.h ?? 0)\">\n {{ h.toString().padStart(2, '0') }}\n </option>\n }\n </select>\n <span class=\"text-neutral-400 text-sm shrink-0\">:</span>\n <select\n class=\"flex-1 min-w-0 block bg-white border border-neutral-300 rounded-md px-2 py-1.5 text-sm text-neutral-900 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 disabled:bg-neutral-50 disabled:cursor-not-allowed\"\n [disabled]=\"isDisabled()\"\n (change)=\"onMinuteChange($event)\">\n @for (m of minutes; track m) {\n <option [value]=\"m\" [selected]=\"m === (draft()?.m ?? 0)\">\n {{ m.toString().padStart(2, '0') }}\n </option>\n }\n </select>\n </div>\n <div class=\"mt-2 pt-2 border-t border-neutral-100 flex items-center justify-between gap-2\">\n <button\n type=\"button\"\n (click)=\"goToNow()\"\n [disabled]=\"isDisabled()\"\n class=\"text-xs text-primary-600 font-medium hover:underline cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed disabled:no-underline\">\n {{ i18n.now }}\n </button>\n <button\n type=\"button\"\n (click)=\"apply()\"\n [disabled]=\"isDisabled()\"\n class=\"px-3 py-1.5 text-xs font-medium rounded-md bg-primary-600 text-white hover:bg-primary-700 cursor-pointer disabled:bg-neutral-200 disabled:text-neutral-500 disabled:cursor-not-allowed\">\n {{ i18n.apply }}\n </button>\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [":host{display:block}\n"] }]
3915
3015
  }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], onDocumentPointerDown: [{
3916
3016
  type: HostListener,
3917
3017
  args: ['document:pointerdown', ['$event']]
@@ -4090,11 +3190,11 @@ class TailwindDateTimePicker extends TailwindComponent {
4090
3190
  this.showPanel.set(false);
4091
3191
  }
4092
3192
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindDateTimePicker, deps: null, target: i0.ɵɵFactoryTarget.Component });
4093
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindDateTimePicker, isStandalone: true, selector: "tailwind-datetime-picker", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:pointerdown": "onDocumentPointerDown($event)", "document:keydown": "onDocumentKeydown($event)" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TailwindDateTimePicker), multi: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-col gap-1.5\">\n @if (label()) {\n <label [attr.for]=\"id() ? id() + '-inner' : null\" class=\"text-sm font-medium text-surface-700\">{{ label() }}</label>\n }\n <div class=\"relative\">\n <input\n [attr.id]=\"id() ? id() + '-inner' : null\"\n type=\"text\"\n readonly\n [value]=\"displayValue()\"\n [placeholder]=\"effectivePlaceholder()\"\n class=\"block w-full bg-white border border-surface-300 rounded-md px-3 py-2 text-sm text-surface-900 placeholder:text-surface-400 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 cursor-pointer disabled:bg-surface-50 disabled:cursor-not-allowed pr-10\"\n [disabled]=\"isDisabled()\"\n (click)=\"togglePanel()\" />\n <svg\n class=\"absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-surface-400 pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M5.75 2a.75.75 0 01.75.75V4h7V2.75a.75.75 0 011.5 0V4h.25A2.75 2.75 0 0118 6.75v8.5A2.75 2.75 0 0115.25 18H4.75A2.75 2.75 0 012 15.25v-8.5A2.75 2.75 0 014.75 4H5V2.75A.75.75 0 015.75 2zm-1 5.5c-.69 0-1.25.56-1.25 1.25v6.5c0 .69.56 1.25 1.25 1.25h10.5c.69 0 1.25-.56 1.25-1.25v-6.5c0-.69-.56-1.25-1.25-1.25H4.75z\"\n clip-rule=\"evenodd\" />\n </svg>\n\n @if (showPanel()) {\n <div\n class=\"absolute left-0 top-full z-popover mt-1 w-80 max-w-full rounded-xl border border-surface-200 bg-white p-4 shadow-xl\">\n <div class=\"flex items-center justify-between mb-3\">\n <button\n type=\"button\"\n (click)=\"prevMonth()\"\n class=\"p-1 rounded-lg hover:bg-surface-100 transition-colors cursor-pointer\">\n <svg\n class=\"w-4 h-4 text-surface-600\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n <span class=\"text-sm font-semibold text-surface-800\">{{ monthYearLabel() }}</span>\n <button\n type=\"button\"\n (click)=\"nextMonth()\"\n class=\"p-1 rounded-lg hover:bg-surface-100 transition-colors cursor-pointer\">\n <svg\n class=\"w-4 h-4 text-surface-600\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n </div>\n <div class=\"grid grid-cols-7 gap-0 mb-1\">\n @for (day of weekDays; track day) {\n <div class=\"text-center text-xs font-medium text-surface-400 py-1\">{{ day }}</div>\n }\n </div>\n <div class=\"grid grid-cols-7 gap-0\">\n @for (day of calendarDays(); track $index) {\n @if (day === 0) {\n <div></div>\n } @else {\n <button\n type=\"button\"\n (click)=\"selectDay(day)\"\n class=\"h-8 w-8 mx-auto rounded-lg text-sm transition-colors cursor-pointer hover:bg-surface-100\"\n [class.bg-primary-600]=\"isSelected(day)\"\n [class.text-white]=\"isSelected(day)\"\n [class.hover:bg-primary-700]=\"isSelected(day)\"\n [class.text-surface-700]=\"!isSelected(day) && !isToday(day)\"\n [class.font-semibold]=\"isToday(day)\"\n [class.text-primary-600]=\"isToday(day) && !isSelected(day)\">\n {{ day }}\n </button>\n }\n }\n </div>\n <div class=\"mt-3 pt-3 border-t border-surface-100 flex items-center gap-2\">\n <span class=\"text-xs font-medium text-surface-600 shrink-0\">{{ i18n.time }}</span>\n <select\n class=\"flex-1 min-w-0 block bg-white border border-surface-300 rounded-md px-2 py-1.5 text-sm text-surface-900 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 disabled:bg-surface-50 disabled:cursor-not-allowed\"\n [disabled]=\"isDisabled() || !draft()\"\n (change)=\"onHourChange($event)\">\n @for (h of hours; track h) {\n <option [value]=\"h\" [selected]=\"h === (draft()?.getHours() ?? 0)\">\n {{ h.toString().padStart(2, '0') }}\n </option>\n }\n </select>\n <span class=\"text-surface-400 text-sm\">:</span>\n <select\n class=\"flex-1 min-w-0 block bg-white border border-surface-300 rounded-md px-2 py-1.5 text-sm text-surface-900 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 disabled:bg-surface-50 disabled:cursor-not-allowed\"\n [disabled]=\"isDisabled() || !draft()\"\n (change)=\"onMinuteChange($event)\">\n @for (m of minutes; track m) {\n <option [value]=\"m\" [selected]=\"m === (draft()?.getMinutes() ?? 0)\">\n {{ m.toString().padStart(2, '0') }}\n </option>\n }\n </select>\n </div>\n <div class=\"mt-2 pt-2 border-t border-surface-100 flex items-center justify-between gap-2\">\n <button\n type=\"button\"\n (click)=\"goToToday()\"\n [disabled]=\"isDisabled()\"\n class=\"text-xs text-primary-600 font-medium hover:underline cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed disabled:no-underline\">\n {{ i18n.today }}\n </button>\n <button\n type=\"button\"\n (click)=\"apply()\"\n [disabled]=\"isDisabled() || !draft()\"\n class=\"px-3 py-1.5 text-xs font-medium rounded-md bg-primary-600 text-white hover:bg-primary-700 cursor-pointer disabled:bg-surface-200 disabled:text-surface-500 disabled:cursor-not-allowed\">\n {{ i18n.confirm }}\n </button>\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [":host{display:block;position:relative;overflow:visible}\n"] });
3193
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindDateTimePicker, isStandalone: true, selector: "tailwind-datetime-picker", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:pointerdown": "onDocumentPointerDown($event)", "document:keydown": "onDocumentKeydown($event)" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TailwindDateTimePicker), multi: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-col gap-1.5\">\n @if (label()) {\n <label [attr.for]=\"id() ? id() + '-inner' : null\" class=\"text-sm font-medium text-neutral-700\">{{ label() }}</label>\n }\n <div class=\"relative\">\n <input\n [attr.id]=\"id() ? id() + '-inner' : null\"\n type=\"text\"\n readonly\n [value]=\"displayValue()\"\n [placeholder]=\"effectivePlaceholder()\"\n class=\"block w-full bg-white border border-neutral-300 rounded-md px-3 py-2 text-sm text-neutral-900 placeholder:text-neutral-400 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 cursor-pointer disabled:bg-neutral-50 disabled:cursor-not-allowed pr-10\"\n [disabled]=\"isDisabled()\"\n (click)=\"togglePanel()\" />\n <svg\n class=\"absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-neutral-400 pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M5.75 2a.75.75 0 01.75.75V4h7V2.75a.75.75 0 011.5 0V4h.25A2.75 2.75 0 0118 6.75v8.5A2.75 2.75 0 0115.25 18H4.75A2.75 2.75 0 012 15.25v-8.5A2.75 2.75 0 014.75 4H5V2.75A.75.75 0 015.75 2zm-1 5.5c-.69 0-1.25.56-1.25 1.25v6.5c0 .69.56 1.25 1.25 1.25h10.5c.69 0 1.25-.56 1.25-1.25v-6.5c0-.69-.56-1.25-1.25-1.25H4.75z\"\n clip-rule=\"evenodd\" />\n </svg>\n\n @if (showPanel()) {\n <div\n class=\"absolute left-0 top-full z-popover mt-1 w-80 max-w-full rounded-xl border border-neutral-200 bg-white p-4 shadow-xl\">\n <div class=\"flex items-center justify-between mb-3\">\n <button\n type=\"button\"\n (click)=\"prevMonth()\"\n class=\"p-1 rounded-lg hover:bg-neutral-100 transition-colors cursor-pointer\">\n <svg\n class=\"w-4 h-4 text-neutral-600\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n <span class=\"text-sm font-semibold text-neutral-800\">{{ monthYearLabel() }}</span>\n <button\n type=\"button\"\n (click)=\"nextMonth()\"\n class=\"p-1 rounded-lg hover:bg-neutral-100 transition-colors cursor-pointer\">\n <svg\n class=\"w-4 h-4 text-neutral-600\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n </div>\n <div class=\"grid grid-cols-7 gap-0 mb-1\">\n @for (day of weekDays; track day) {\n <div class=\"text-center text-xs font-medium text-neutral-400 py-1\">{{ day }}</div>\n }\n </div>\n <div class=\"grid grid-cols-7 gap-0\">\n @for (day of calendarDays(); track $index) {\n @if (day === 0) {\n <div></div>\n } @else {\n <button\n type=\"button\"\n (click)=\"selectDay(day)\"\n class=\"h-8 w-8 mx-auto rounded-lg text-sm transition-colors cursor-pointer hover:bg-neutral-100\"\n [class.bg-primary-600]=\"isSelected(day)\"\n [class.text-white]=\"isSelected(day)\"\n [class.hover:bg-primary-700]=\"isSelected(day)\"\n [class.text-neutral-700]=\"!isSelected(day) && !isToday(day)\"\n [class.font-semibold]=\"isToday(day)\"\n [class.text-primary-600]=\"isToday(day) && !isSelected(day)\">\n {{ day }}\n </button>\n }\n }\n </div>\n <div class=\"mt-3 pt-3 border-t border-neutral-100 flex items-center gap-2\">\n <span class=\"text-xs font-medium text-neutral-600 shrink-0\">{{ i18n.time }}</span>\n <select\n class=\"flex-1 min-w-0 block bg-white border border-neutral-300 rounded-md px-2 py-1.5 text-sm text-neutral-900 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 disabled:bg-neutral-50 disabled:cursor-not-allowed\"\n [disabled]=\"isDisabled() || !draft()\"\n (change)=\"onHourChange($event)\">\n @for (h of hours; track h) {\n <option [value]=\"h\" [selected]=\"h === (draft()?.getHours() ?? 0)\">\n {{ h.toString().padStart(2, '0') }}\n </option>\n }\n </select>\n <span class=\"text-neutral-400 text-sm\">:</span>\n <select\n class=\"flex-1 min-w-0 block bg-white border border-neutral-300 rounded-md px-2 py-1.5 text-sm text-neutral-900 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 disabled:bg-neutral-50 disabled:cursor-not-allowed\"\n [disabled]=\"isDisabled() || !draft()\"\n (change)=\"onMinuteChange($event)\">\n @for (m of minutes; track m) {\n <option [value]=\"m\" [selected]=\"m === (draft()?.getMinutes() ?? 0)\">\n {{ m.toString().padStart(2, '0') }}\n </option>\n }\n </select>\n </div>\n <div class=\"mt-2 pt-2 border-t border-neutral-100 flex items-center justify-between gap-2\">\n <button\n type=\"button\"\n (click)=\"goToToday()\"\n [disabled]=\"isDisabled()\"\n class=\"text-xs text-primary-600 font-medium hover:underline cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed disabled:no-underline\">\n {{ i18n.today }}\n </button>\n <button\n type=\"button\"\n (click)=\"apply()\"\n [disabled]=\"isDisabled() || !draft()\"\n class=\"px-3 py-1.5 text-xs font-medium rounded-md bg-primary-600 text-white hover:bg-primary-700 cursor-pointer disabled:bg-neutral-200 disabled:text-neutral-500 disabled:cursor-not-allowed\">\n {{ i18n.confirm }}\n </button>\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [":host{display:block;position:relative;overflow:visible}\n"] });
4094
3194
  }
4095
3195
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindDateTimePicker, decorators: [{
4096
3196
  type: Component,
4097
- args: [{ selector: 'tailwind-datetime-picker', imports: [], providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TailwindDateTimePicker), multi: true }], template: "<div class=\"flex flex-col gap-1.5\">\n @if (label()) {\n <label [attr.for]=\"id() ? id() + '-inner' : null\" class=\"text-sm font-medium text-surface-700\">{{ label() }}</label>\n }\n <div class=\"relative\">\n <input\n [attr.id]=\"id() ? id() + '-inner' : null\"\n type=\"text\"\n readonly\n [value]=\"displayValue()\"\n [placeholder]=\"effectivePlaceholder()\"\n class=\"block w-full bg-white border border-surface-300 rounded-md px-3 py-2 text-sm text-surface-900 placeholder:text-surface-400 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 cursor-pointer disabled:bg-surface-50 disabled:cursor-not-allowed pr-10\"\n [disabled]=\"isDisabled()\"\n (click)=\"togglePanel()\" />\n <svg\n class=\"absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-surface-400 pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M5.75 2a.75.75 0 01.75.75V4h7V2.75a.75.75 0 011.5 0V4h.25A2.75 2.75 0 0118 6.75v8.5A2.75 2.75 0 0115.25 18H4.75A2.75 2.75 0 012 15.25v-8.5A2.75 2.75 0 014.75 4H5V2.75A.75.75 0 015.75 2zm-1 5.5c-.69 0-1.25.56-1.25 1.25v6.5c0 .69.56 1.25 1.25 1.25h10.5c.69 0 1.25-.56 1.25-1.25v-6.5c0-.69-.56-1.25-1.25-1.25H4.75z\"\n clip-rule=\"evenodd\" />\n </svg>\n\n @if (showPanel()) {\n <div\n class=\"absolute left-0 top-full z-popover mt-1 w-80 max-w-full rounded-xl border border-surface-200 bg-white p-4 shadow-xl\">\n <div class=\"flex items-center justify-between mb-3\">\n <button\n type=\"button\"\n (click)=\"prevMonth()\"\n class=\"p-1 rounded-lg hover:bg-surface-100 transition-colors cursor-pointer\">\n <svg\n class=\"w-4 h-4 text-surface-600\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n <span class=\"text-sm font-semibold text-surface-800\">{{ monthYearLabel() }}</span>\n <button\n type=\"button\"\n (click)=\"nextMonth()\"\n class=\"p-1 rounded-lg hover:bg-surface-100 transition-colors cursor-pointer\">\n <svg\n class=\"w-4 h-4 text-surface-600\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n </div>\n <div class=\"grid grid-cols-7 gap-0 mb-1\">\n @for (day of weekDays; track day) {\n <div class=\"text-center text-xs font-medium text-surface-400 py-1\">{{ day }}</div>\n }\n </div>\n <div class=\"grid grid-cols-7 gap-0\">\n @for (day of calendarDays(); track $index) {\n @if (day === 0) {\n <div></div>\n } @else {\n <button\n type=\"button\"\n (click)=\"selectDay(day)\"\n class=\"h-8 w-8 mx-auto rounded-lg text-sm transition-colors cursor-pointer hover:bg-surface-100\"\n [class.bg-primary-600]=\"isSelected(day)\"\n [class.text-white]=\"isSelected(day)\"\n [class.hover:bg-primary-700]=\"isSelected(day)\"\n [class.text-surface-700]=\"!isSelected(day) && !isToday(day)\"\n [class.font-semibold]=\"isToday(day)\"\n [class.text-primary-600]=\"isToday(day) && !isSelected(day)\">\n {{ day }}\n </button>\n }\n }\n </div>\n <div class=\"mt-3 pt-3 border-t border-surface-100 flex items-center gap-2\">\n <span class=\"text-xs font-medium text-surface-600 shrink-0\">{{ i18n.time }}</span>\n <select\n class=\"flex-1 min-w-0 block bg-white border border-surface-300 rounded-md px-2 py-1.5 text-sm text-surface-900 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 disabled:bg-surface-50 disabled:cursor-not-allowed\"\n [disabled]=\"isDisabled() || !draft()\"\n (change)=\"onHourChange($event)\">\n @for (h of hours; track h) {\n <option [value]=\"h\" [selected]=\"h === (draft()?.getHours() ?? 0)\">\n {{ h.toString().padStart(2, '0') }}\n </option>\n }\n </select>\n <span class=\"text-surface-400 text-sm\">:</span>\n <select\n class=\"flex-1 min-w-0 block bg-white border border-surface-300 rounded-md px-2 py-1.5 text-sm text-surface-900 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 disabled:bg-surface-50 disabled:cursor-not-allowed\"\n [disabled]=\"isDisabled() || !draft()\"\n (change)=\"onMinuteChange($event)\">\n @for (m of minutes; track m) {\n <option [value]=\"m\" [selected]=\"m === (draft()?.getMinutes() ?? 0)\">\n {{ m.toString().padStart(2, '0') }}\n </option>\n }\n </select>\n </div>\n <div class=\"mt-2 pt-2 border-t border-surface-100 flex items-center justify-between gap-2\">\n <button\n type=\"button\"\n (click)=\"goToToday()\"\n [disabled]=\"isDisabled()\"\n class=\"text-xs text-primary-600 font-medium hover:underline cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed disabled:no-underline\">\n {{ i18n.today }}\n </button>\n <button\n type=\"button\"\n (click)=\"apply()\"\n [disabled]=\"isDisabled() || !draft()\"\n class=\"px-3 py-1.5 text-xs font-medium rounded-md bg-primary-600 text-white hover:bg-primary-700 cursor-pointer disabled:bg-surface-200 disabled:text-surface-500 disabled:cursor-not-allowed\">\n {{ i18n.confirm }}\n </button>\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [":host{display:block;position:relative;overflow:visible}\n"] }]
3197
+ args: [{ selector: 'tailwind-datetime-picker', imports: [], providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TailwindDateTimePicker), multi: true }], template: "<div class=\"flex flex-col gap-1.5\">\n @if (label()) {\n <label [attr.for]=\"id() ? id() + '-inner' : null\" class=\"text-sm font-medium text-neutral-700\">{{ label() }}</label>\n }\n <div class=\"relative\">\n <input\n [attr.id]=\"id() ? id() + '-inner' : null\"\n type=\"text\"\n readonly\n [value]=\"displayValue()\"\n [placeholder]=\"effectivePlaceholder()\"\n class=\"block w-full bg-white border border-neutral-300 rounded-md px-3 py-2 text-sm text-neutral-900 placeholder:text-neutral-400 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 cursor-pointer disabled:bg-neutral-50 disabled:cursor-not-allowed pr-10\"\n [disabled]=\"isDisabled()\"\n (click)=\"togglePanel()\" />\n <svg\n class=\"absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-neutral-400 pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M5.75 2a.75.75 0 01.75.75V4h7V2.75a.75.75 0 011.5 0V4h.25A2.75 2.75 0 0118 6.75v8.5A2.75 2.75 0 0115.25 18H4.75A2.75 2.75 0 012 15.25v-8.5A2.75 2.75 0 014.75 4H5V2.75A.75.75 0 015.75 2zm-1 5.5c-.69 0-1.25.56-1.25 1.25v6.5c0 .69.56 1.25 1.25 1.25h10.5c.69 0 1.25-.56 1.25-1.25v-6.5c0-.69-.56-1.25-1.25-1.25H4.75z\"\n clip-rule=\"evenodd\" />\n </svg>\n\n @if (showPanel()) {\n <div\n class=\"absolute left-0 top-full z-popover mt-1 w-80 max-w-full rounded-xl border border-neutral-200 bg-white p-4 shadow-xl\">\n <div class=\"flex items-center justify-between mb-3\">\n <button\n type=\"button\"\n (click)=\"prevMonth()\"\n class=\"p-1 rounded-lg hover:bg-neutral-100 transition-colors cursor-pointer\">\n <svg\n class=\"w-4 h-4 text-neutral-600\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n <span class=\"text-sm font-semibold text-neutral-800\">{{ monthYearLabel() }}</span>\n <button\n type=\"button\"\n (click)=\"nextMonth()\"\n class=\"p-1 rounded-lg hover:bg-neutral-100 transition-colors cursor-pointer\">\n <svg\n class=\"w-4 h-4 text-neutral-600\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n </div>\n <div class=\"grid grid-cols-7 gap-0 mb-1\">\n @for (day of weekDays; track day) {\n <div class=\"text-center text-xs font-medium text-neutral-400 py-1\">{{ day }}</div>\n }\n </div>\n <div class=\"grid grid-cols-7 gap-0\">\n @for (day of calendarDays(); track $index) {\n @if (day === 0) {\n <div></div>\n } @else {\n <button\n type=\"button\"\n (click)=\"selectDay(day)\"\n class=\"h-8 w-8 mx-auto rounded-lg text-sm transition-colors cursor-pointer hover:bg-neutral-100\"\n [class.bg-primary-600]=\"isSelected(day)\"\n [class.text-white]=\"isSelected(day)\"\n [class.hover:bg-primary-700]=\"isSelected(day)\"\n [class.text-neutral-700]=\"!isSelected(day) && !isToday(day)\"\n [class.font-semibold]=\"isToday(day)\"\n [class.text-primary-600]=\"isToday(day) && !isSelected(day)\">\n {{ day }}\n </button>\n }\n }\n </div>\n <div class=\"mt-3 pt-3 border-t border-neutral-100 flex items-center gap-2\">\n <span class=\"text-xs font-medium text-neutral-600 shrink-0\">{{ i18n.time }}</span>\n <select\n class=\"flex-1 min-w-0 block bg-white border border-neutral-300 rounded-md px-2 py-1.5 text-sm text-neutral-900 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 disabled:bg-neutral-50 disabled:cursor-not-allowed\"\n [disabled]=\"isDisabled() || !draft()\"\n (change)=\"onHourChange($event)\">\n @for (h of hours; track h) {\n <option [value]=\"h\" [selected]=\"h === (draft()?.getHours() ?? 0)\">\n {{ h.toString().padStart(2, '0') }}\n </option>\n }\n </select>\n <span class=\"text-neutral-400 text-sm\">:</span>\n <select\n class=\"flex-1 min-w-0 block bg-white border border-neutral-300 rounded-md px-2 py-1.5 text-sm text-neutral-900 outline-none focus:outline focus:outline-primary-500 focus:outline-offset-2 disabled:bg-neutral-50 disabled:cursor-not-allowed\"\n [disabled]=\"isDisabled() || !draft()\"\n (change)=\"onMinuteChange($event)\">\n @for (m of minutes; track m) {\n <option [value]=\"m\" [selected]=\"m === (draft()?.getMinutes() ?? 0)\">\n {{ m.toString().padStart(2, '0') }}\n </option>\n }\n </select>\n </div>\n <div class=\"mt-2 pt-2 border-t border-neutral-100 flex items-center justify-between gap-2\">\n <button\n type=\"button\"\n (click)=\"goToToday()\"\n [disabled]=\"isDisabled()\"\n class=\"text-xs text-primary-600 font-medium hover:underline cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed disabled:no-underline\">\n {{ i18n.today }}\n </button>\n <button\n type=\"button\"\n (click)=\"apply()\"\n [disabled]=\"isDisabled() || !draft()\"\n class=\"px-3 py-1.5 text-xs font-medium rounded-md bg-primary-600 text-white hover:bg-primary-700 cursor-pointer disabled:bg-neutral-200 disabled:text-neutral-500 disabled:cursor-not-allowed\">\n {{ i18n.confirm }}\n </button>\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [":host{display:block;position:relative;overflow:visible}\n"] }]
4098
3198
  }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], format: [{ type: i0.Input, args: [{ isSignal: true, alias: "format", required: false }] }], onDocumentPointerDown: [{
4099
3199
  type: HostListener,
4100
3200
  args: ['document:pointerdown', ['$event']]
@@ -4146,11 +3246,11 @@ class TailwindStepper extends TailwindComponent {
4146
3246
  this.activeIndex.update(v => v - 1);
4147
3247
  }
4148
3248
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindStepper, deps: [], target: i0.ɵɵFactoryTarget.Component });
4149
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindStepper, isStandalone: true, selector: "tailwind-stepper", inputs: { activeIndex: { classPropertyName: "activeIndex", publicName: "activeIndex", isSignal: true, isRequired: false, transformFunction: null }, linear: { classPropertyName: "linear", publicName: "linear", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeIndex: "activeIndexChange" }, queries: [{ propertyName: "steps", predicate: TailwindStep, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<!-- Step indicators -->\n<div class=\"flex items-center mb-6\">\n @for (step of steps(); track step.label(); let i = $index; let last = $last) {\n <div class=\"flex items-center\" [class.flex-1]=\"!last\">\n <button\n type=\"button\"\n (click)=\"goToStep(i)\"\n class=\"flex items-center gap-2 cursor-pointer group\"\n [attr.aria-current]=\"activeIndex() === i ? 'step' : null\">\n <div\n class=\"w-8 h-8 rounded-full flex items-center justify-center text-sm font-semibold border-2 transition-all duration-200\"\n [class.bg-primary-600]=\"i <= activeIndex()\"\n [class.border-primary-600]=\"i <= activeIndex()\"\n [class.text-white]=\"i <= activeIndex()\"\n [class.border-surface-300]=\"i > activeIndex()\"\n [class.text-surface-500]=\"i > activeIndex()\">\n @if (step.completed()) {\n <svg class=\"w-4 h-4\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z\"\n clip-rule=\"evenodd\" />\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"hidden sm:block\">\n <p\n class=\"text-sm font-medium\"\n [class.text-primary-600]=\"i <= activeIndex()\"\n [class.text-surface-500]=\"i > activeIndex()\">\n {{ step.label() }}\n </p>\n @if (step.description()) {\n <p class=\"text-xs text-surface-400\">{{ step.description() }}</p>\n }\n </div>\n </button>\n @if (!last) {\n <div\n class=\"flex-1 h-0.5 mx-3 rounded-full transition-colors duration-200\"\n [class.bg-primary-600]=\"i < activeIndex()\"\n [class.bg-surface-200]=\"i >= activeIndex()\"></div>\n }\n </div>\n }\n</div>\n<!-- Step content -->\n<ng-content />\n", styles: [":host{display:block}\n"] });
3249
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindStepper, isStandalone: true, selector: "tailwind-stepper", inputs: { activeIndex: { classPropertyName: "activeIndex", publicName: "activeIndex", isSignal: true, isRequired: false, transformFunction: null }, linear: { classPropertyName: "linear", publicName: "linear", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeIndex: "activeIndexChange" }, queries: [{ propertyName: "steps", predicate: TailwindStep, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<!-- Step indicators -->\n<div class=\"flex items-center mb-6\">\n @for (step of steps(); track step.label(); let i = $index; let last = $last) {\n <div class=\"flex items-center\" [class.flex-1]=\"!last\">\n <button\n type=\"button\"\n (click)=\"goToStep(i)\"\n class=\"flex items-center gap-2 cursor-pointer group\"\n [attr.aria-current]=\"activeIndex() === i ? 'step' : null\">\n <div\n class=\"w-8 h-8 rounded-full flex items-center justify-center text-sm font-semibold border-2 transition-all duration-200\"\n [class.bg-primary-600]=\"i <= activeIndex()\"\n [class.border-primary-600]=\"i <= activeIndex()\"\n [class.text-white]=\"i <= activeIndex()\"\n [class.border-neutral-300]=\"i > activeIndex()\"\n [class.text-neutral-500]=\"i > activeIndex()\">\n @if (step.completed()) {\n <svg class=\"w-4 h-4\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z\"\n clip-rule=\"evenodd\" />\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"hidden sm:block\">\n <p\n class=\"text-sm font-medium\"\n [class.text-primary-600]=\"i <= activeIndex()\"\n [class.text-neutral-500]=\"i > activeIndex()\">\n {{ step.label() }}\n </p>\n @if (step.description()) {\n <p class=\"text-xs text-neutral-400\">{{ step.description() }}</p>\n }\n </div>\n </button>\n @if (!last) {\n <div\n class=\"flex-1 h-0.5 mx-3 rounded-full transition-colors duration-200\"\n [class.bg-primary-600]=\"i < activeIndex()\"\n [class.bg-neutral-200]=\"i >= activeIndex()\"></div>\n }\n </div>\n }\n</div>\n<!-- Step content -->\n<ng-content />\n", styles: [":host{display:block}\n"] });
4150
3250
  }
4151
3251
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindStepper, decorators: [{
4152
3252
  type: Component,
4153
- args: [{ selector: 'tailwind-stepper', template: "<!-- Step indicators -->\n<div class=\"flex items-center mb-6\">\n @for (step of steps(); track step.label(); let i = $index; let last = $last) {\n <div class=\"flex items-center\" [class.flex-1]=\"!last\">\n <button\n type=\"button\"\n (click)=\"goToStep(i)\"\n class=\"flex items-center gap-2 cursor-pointer group\"\n [attr.aria-current]=\"activeIndex() === i ? 'step' : null\">\n <div\n class=\"w-8 h-8 rounded-full flex items-center justify-center text-sm font-semibold border-2 transition-all duration-200\"\n [class.bg-primary-600]=\"i <= activeIndex()\"\n [class.border-primary-600]=\"i <= activeIndex()\"\n [class.text-white]=\"i <= activeIndex()\"\n [class.border-surface-300]=\"i > activeIndex()\"\n [class.text-surface-500]=\"i > activeIndex()\">\n @if (step.completed()) {\n <svg class=\"w-4 h-4\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z\"\n clip-rule=\"evenodd\" />\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"hidden sm:block\">\n <p\n class=\"text-sm font-medium\"\n [class.text-primary-600]=\"i <= activeIndex()\"\n [class.text-surface-500]=\"i > activeIndex()\">\n {{ step.label() }}\n </p>\n @if (step.description()) {\n <p class=\"text-xs text-surface-400\">{{ step.description() }}</p>\n }\n </div>\n </button>\n @if (!last) {\n <div\n class=\"flex-1 h-0.5 mx-3 rounded-full transition-colors duration-200\"\n [class.bg-primary-600]=\"i < activeIndex()\"\n [class.bg-surface-200]=\"i >= activeIndex()\"></div>\n }\n </div>\n }\n</div>\n<!-- Step content -->\n<ng-content />\n", styles: [":host{display:block}\n"] }]
3253
+ args: [{ selector: 'tailwind-stepper', template: "<!-- Step indicators -->\n<div class=\"flex items-center mb-6\">\n @for (step of steps(); track step.label(); let i = $index; let last = $last) {\n <div class=\"flex items-center\" [class.flex-1]=\"!last\">\n <button\n type=\"button\"\n (click)=\"goToStep(i)\"\n class=\"flex items-center gap-2 cursor-pointer group\"\n [attr.aria-current]=\"activeIndex() === i ? 'step' : null\">\n <div\n class=\"w-8 h-8 rounded-full flex items-center justify-center text-sm font-semibold border-2 transition-all duration-200\"\n [class.bg-primary-600]=\"i <= activeIndex()\"\n [class.border-primary-600]=\"i <= activeIndex()\"\n [class.text-white]=\"i <= activeIndex()\"\n [class.border-neutral-300]=\"i > activeIndex()\"\n [class.text-neutral-500]=\"i > activeIndex()\">\n @if (step.completed()) {\n <svg class=\"w-4 h-4\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fill-rule=\"evenodd\"\n d=\"M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z\"\n clip-rule=\"evenodd\" />\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"hidden sm:block\">\n <p\n class=\"text-sm font-medium\"\n [class.text-primary-600]=\"i <= activeIndex()\"\n [class.text-neutral-500]=\"i > activeIndex()\">\n {{ step.label() }}\n </p>\n @if (step.description()) {\n <p class=\"text-xs text-neutral-400\">{{ step.description() }}</p>\n }\n </div>\n </button>\n @if (!last) {\n <div\n class=\"flex-1 h-0.5 mx-3 rounded-full transition-colors duration-200\"\n [class.bg-primary-600]=\"i < activeIndex()\"\n [class.bg-neutral-200]=\"i >= activeIndex()\"></div>\n }\n </div>\n }\n</div>\n<!-- Step content -->\n<ng-content />\n", styles: [":host{display:block}\n"] }]
4154
3254
  }], ctorParameters: () => [], propDecorators: { activeIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeIndex", required: false }] }, { type: i0.Output, args: ["activeIndexChange"] }], linear: [{ type: i0.Input, args: [{ isSignal: true, alias: "linear", required: false }] }], steps: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => TailwindStep), { isSignal: true }] }] } });
4155
3255
 
4156
3256
  class TailwindAccordionItem extends TailwindComponent {
@@ -4165,21 +3265,21 @@ class TailwindAccordionItem extends TailwindComponent {
4165
3265
  }
4166
3266
  }
4167
3267
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindAccordionItem, deps: null, target: i0.ɵɵFactoryTarget.Component });
4168
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindAccordionItem, isStandalone: true, selector: "tailwind-accordion-item", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onToggle: "onToggle" }, usesInheritance: true, ngImport: i0, template: "<div [id]=\"id()\" [ngClass]=\"class()\" class=\"border-b border-surface-200 last:border-b-0\">\r\n <button\r\n type=\"button\"\r\n (click)=\"toggle()\"\r\n class=\"flex items-center justify-between w-full px-5 py-4 text-left text-sm font-medium text-surface-800 hover:bg-surface-50 transition-colors cursor-pointer\"\r\n [attr.aria-expanded]=\"isExpanded()\">\r\n <span>{{ title() }}</span>\r\n <svg\r\n class=\"w-4 h-4 text-surface-400 transition-transform duration-200\"\r\n [class.rotate-180]=\"isExpanded()\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n d=\"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n @if (isExpanded()) {\r\n <div class=\"px-5 py-4 text-sm text-surface-600\">\r\n <ng-content />\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
3268
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindAccordionItem, isStandalone: true, selector: "tailwind-accordion-item", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onToggle: "onToggle" }, usesInheritance: true, ngImport: i0, template: "<div [id]=\"id()\" [ngClass]=\"class()\" class=\"border-b border-neutral-200 last:border-b-0\">\r\n <button\r\n type=\"button\"\r\n (click)=\"toggle()\"\r\n class=\"flex items-center justify-between w-full px-5 py-4 text-left text-sm font-medium text-neutral-800 hover:bg-neutral-50 transition-colors cursor-pointer\"\r\n [attr.aria-expanded]=\"isExpanded()\">\r\n <span>{{ title() }}</span>\r\n <svg\r\n class=\"w-4 h-4 text-neutral-400 transition-transform duration-200\"\r\n [class.rotate-180]=\"isExpanded()\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n d=\"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n @if (isExpanded()) {\r\n <div class=\"px-5 py-4 text-sm text-neutral-600\">\r\n <ng-content />\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
4169
3269
  }
4170
3270
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindAccordionItem, decorators: [{
4171
3271
  type: Component,
4172
- args: [{ imports: [CommonModule], selector: 'tailwind-accordion-item', template: "<div [id]=\"id()\" [ngClass]=\"class()\" class=\"border-b border-surface-200 last:border-b-0\">\r\n <button\r\n type=\"button\"\r\n (click)=\"toggle()\"\r\n class=\"flex items-center justify-between w-full px-5 py-4 text-left text-sm font-medium text-surface-800 hover:bg-surface-50 transition-colors cursor-pointer\"\r\n [attr.aria-expanded]=\"isExpanded()\">\r\n <span>{{ title() }}</span>\r\n <svg\r\n class=\"w-4 h-4 text-surface-400 transition-transform duration-200\"\r\n [class.rotate-180]=\"isExpanded()\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n d=\"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n @if (isExpanded()) {\r\n <div class=\"px-5 py-4 text-sm text-surface-600\">\r\n <ng-content />\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block}\n"] }]
3272
+ args: [{ imports: [CommonModule], selector: 'tailwind-accordion-item', template: "<div [id]=\"id()\" [ngClass]=\"class()\" class=\"border-b border-neutral-200 last:border-b-0\">\r\n <button\r\n type=\"button\"\r\n (click)=\"toggle()\"\r\n class=\"flex items-center justify-between w-full px-5 py-4 text-left text-sm font-medium text-neutral-800 hover:bg-neutral-50 transition-colors cursor-pointer\"\r\n [attr.aria-expanded]=\"isExpanded()\">\r\n <span>{{ title() }}</span>\r\n <svg\r\n class=\"w-4 h-4 text-neutral-400 transition-transform duration-200\"\r\n [class.rotate-180]=\"isExpanded()\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n d=\"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n @if (isExpanded()) {\r\n <div class=\"px-5 py-4 text-sm text-neutral-600\">\r\n <ng-content />\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block}\n"] }]
4173
3273
  }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], onToggle: [{ type: i0.Output, args: ["onToggle"] }] } });
4174
3274
 
4175
3275
  class TailwindAccordion extends TailwindComponent {
4176
3276
  items = contentChildren(TailwindAccordionItem, ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
4177
3277
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindAccordion, deps: null, target: i0.ɵɵFactoryTarget.Component });
4178
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.12", type: TailwindAccordion, isStandalone: true, selector: "tailwind-accordion", queries: [{ propertyName: "items", predicate: TailwindAccordionItem, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n [id]=\"id()\"\r\n [ngClass]=\"class()\"\r\n class=\"border border-surface-200 rounded-md overflow-hidden divide-y divide-surface-200\">\r\n <ng-content />\r\n</div>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
3278
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.12", type: TailwindAccordion, isStandalone: true, selector: "tailwind-accordion", queries: [{ propertyName: "items", predicate: TailwindAccordionItem, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n [id]=\"id()\"\r\n [ngClass]=\"class()\"\r\n class=\"border border-neutral-200 rounded-md overflow-hidden divide-y divide-neutral-200\">\r\n <ng-content />\r\n</div>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
4179
3279
  }
4180
3280
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindAccordion, decorators: [{
4181
3281
  type: Component,
4182
- args: [{ imports: [CommonModule], selector: 'tailwind-accordion', template: "<div\r\n [id]=\"id()\"\r\n [ngClass]=\"class()\"\r\n class=\"border border-surface-200 rounded-md overflow-hidden divide-y divide-surface-200\">\r\n <ng-content />\r\n</div>\r\n", styles: [":host{display:block}\n"] }]
3282
+ args: [{ imports: [CommonModule], selector: 'tailwind-accordion', template: "<div\r\n [id]=\"id()\"\r\n [ngClass]=\"class()\"\r\n class=\"border border-neutral-200 rounded-md overflow-hidden divide-y divide-neutral-200\">\r\n <ng-content />\r\n</div>\r\n", styles: [":host{display:block}\n"] }]
4183
3283
  }], propDecorators: { items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => TailwindAccordionItem), { isSignal: true }] }] } });
4184
3284
 
4185
3285
  class TailwindModalRef {
@@ -4383,11 +3483,11 @@ class TailwindSkeleton extends TailwindComponent {
4383
3483
  return `${base} ${variantMap[this.variant()]}`;
4384
3484
  }, ...(ngDevMode ? [{ debugName: "computedClasses" }] : /* istanbul ignore next */ []));
4385
3485
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindSkeleton, deps: null, target: i0.ɵɵFactoryTarget.Component });
4386
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.12", type: TailwindSkeleton, isStandalone: true, selector: "tailwind-skeleton", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div\n [style.width]=\"width()\"\n [style.height]=\"height() || (variant() === 'circle' ? width() : '1.5rem')\"\n [class]=\"computedClasses()\"\n aria-hidden=\"true\"></div>\n", styles: [":host{display:block}@keyframes tailwind-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.tailwind-skeleton-pulse{animation:tailwind-shimmer 1.5s ease-in-out infinite;background:linear-gradient(90deg,var(--color-surface-200) 25%,var(--color-surface-100) 50%,var(--color-surface-200) 75%);background-size:200% 100%}\n"] });
3486
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.12", type: TailwindSkeleton, isStandalone: true, selector: "tailwind-skeleton", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div\n [style.width]=\"width()\"\n [style.height]=\"height() || (variant() === 'circle' ? width() : '1.5rem')\"\n [class]=\"computedClasses()\"\n aria-hidden=\"true\"></div>\n", styles: [":host{display:block}@keyframes tailwind-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.tailwind-skeleton-pulse{animation:tailwind-shimmer 1.5s ease-in-out infinite;background:linear-gradient(90deg,var(--color-neutral-200) 25%,var(--color-neutral-100) 50%,var(--color-neutral-200) 75%);background-size:200% 100%}\n"] });
4387
3487
  }
4388
3488
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindSkeleton, decorators: [{
4389
3489
  type: Component,
4390
- args: [{ selector: 'tailwind-skeleton', template: "<div\n [style.width]=\"width()\"\n [style.height]=\"height() || (variant() === 'circle' ? width() : '1.5rem')\"\n [class]=\"computedClasses()\"\n aria-hidden=\"true\"></div>\n", styles: [":host{display:block}@keyframes tailwind-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.tailwind-skeleton-pulse{animation:tailwind-shimmer 1.5s ease-in-out infinite;background:linear-gradient(90deg,var(--color-surface-200) 25%,var(--color-surface-100) 50%,var(--color-surface-200) 75%);background-size:200% 100%}\n"] }]
3490
+ args: [{ selector: 'tailwind-skeleton', template: "<div\n [style.width]=\"width()\"\n [style.height]=\"height() || (variant() === 'circle' ? width() : '1.5rem')\"\n [class]=\"computedClasses()\"\n aria-hidden=\"true\"></div>\n", styles: [":host{display:block}@keyframes tailwind-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.tailwind-skeleton-pulse{animation:tailwind-shimmer 1.5s ease-in-out infinite;background:linear-gradient(90deg,var(--color-neutral-200) 25%,var(--color-neutral-100) 50%,var(--color-neutral-200) 75%);background-size:200% 100%}\n"] }]
4391
3491
  }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }] } });
4392
3492
 
4393
3493
  class TailwindToolbar extends TailwindComponent {
@@ -4410,8 +3510,8 @@ class TailwindToolbar extends TailwindComponent {
4410
3510
  ? 'min-w-0 flex-1 flex flex-row flex-wrap items-center gap-1'
4411
3511
  : 'min-w-0 flex-1 flex flex-col gap-1.5 overflow-y-auto min-h-0', ...(ngDevMode ? [{ debugName: "menuContainerClasses" }] : /* istanbul ignore next */ []));
4412
3512
  menuItemButtonClasses = computed(() => this.orientation() === 'horizontal'
4413
- ? 'inline-flex shrink-0 items-center justify-center gap-1.5 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'
4414
- : 'inline-flex w-full items-center gap-2 rounded-md px-3 py-3 text-left 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', ...(ngDevMode ? [{ debugName: "menuItemButtonClasses" }] : /* istanbul ignore next */ []));
3513
+ ? 'inline-flex shrink-0 items-center justify-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-medium text-neutral-700 hover:bg-neutral-100 hover:text-neutral-900 disabled:opacity-50 disabled:cursor-not-allowed transition-colors cursor-pointer border-0 bg-transparent'
3514
+ : 'inline-flex w-full items-center gap-2 rounded-md px-3 py-3 text-left text-sm font-medium text-neutral-700 hover:bg-neutral-100 hover:text-neutral-900 disabled:opacity-50 disabled:cursor-not-allowed transition-colors cursor-pointer border-0 bg-transparent', ...(ngDevMode ? [{ debugName: "menuItemButtonClasses" }] : /* istanbul ignore next */ []));
4415
3515
  rootClasses = computed(() => {
4416
3516
  const horizontal = this.orientation() === 'horizontal';
4417
3517
  const sizeClasses = horizontal
@@ -4420,7 +3520,7 @@ class TailwindToolbar extends TailwindComponent {
4420
3520
  : 'container mx-auto h-16'
4421
3521
  : 'h-full w-full';
4422
3522
  const base = [
4423
- 'bg-white border border-surface-200',
3523
+ 'bg-white border border-neutral-200',
4424
3524
  'flex',
4425
3525
  sizeClasses,
4426
3526
  this.rounded() ? 'rounded-xl' : 'rounded-none',
@@ -4457,11 +3557,11 @@ class TailwindToolbar extends TailwindComponent {
4457
3557
  return item.value ?? item.label ?? String(index);
4458
3558
  }
4459
3559
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindToolbar, deps: null, target: i0.ɵɵFactoryTarget.Component });
4460
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindToolbar, isStandalone: true, selector: "tailwind-toolbar", inputs: { rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, elevated: { classPropertyName: "elevated", publicName: "elevated", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, menu: { classPropertyName: "menu", publicName: "menu", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onMenuSelect: "onMenuSelect" }, usesInheritance: true, ngImport: i0, template: "<div [class]=\"rootClasses()\">\r\n <div class=\"shrink-0\">\r\n <ng-content select=\"[tailwind-toolbar-logo]\" />\r\n </div>\r\n @if (orientation() === 'horizontal') {\r\n <nav class=\"min-w-0 flex flex-1 flex-row flex-wrap items-center gap-1\" [attr.aria-label]=\"'Toolbar menu'\">\r\n @if (menu().length) {\r\n <div class=\"flex shrink-0 items-center md:hidden\">\r\n <button\r\n type=\"button\"\r\n class=\"inline-flex shrink-0 cursor-pointer items-center justify-center rounded-md border-0 bg-transparent p-2 text-surface-700 transition-colors hover:bg-surface-100 hover:text-surface-900\"\r\n [attr.aria-expanded]=\"mobileToolbarMenu.isOpen()\"\r\n aria-haspopup=\"menu\"\r\n aria-label=\"Open navigation menu\"\r\n (click)=\"mobileToolbarMenu.toggle($event)\">\r\n <tailwind-icon icon=\"hamburger-menu\" [size]=\"22\" />\r\n </button>\r\n <tailwind-menu\r\n #mobileToolbarMenu\r\n [items]=\"menu()\"\r\n align=\"left\"\r\n (onSelect)=\"selectMenuItem($event)\" />\r\n </div>\r\n }\r\n <div class=\"hidden min-w-0 flex-1 flex-row flex-wrap items-center gap-1 md:flex\">\r\n @for (item of menu(); track menuTrackKey($index, item)) {\r\n @if (item.divider) {\r\n <span class=\"mx-0.5 h-5 w-px shrink-0 self-center bg-surface-200\" aria-hidden=\"true\"></span>\r\n } @else {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"!!item.disabled\"\r\n [class]=\"menuItemButtonClasses()\"\r\n [class.px-2]=\"!!item.icon && !menuItemHasVisibleLabel(item)\"\r\n [class.py-2]=\"!!item.icon && !menuItemHasVisibleLabel(item)\"\r\n [attr.aria-label]=\"menuItemAriaLabel(item)\"\r\n (click)=\"selectMenuItem(item)\">\r\n @if (item.icon) {\r\n <tailwind-icon [icon]=\"item.icon\" [size]=\"20\" />\r\n }\r\n @if (menuItemHasVisibleLabel(item)) {\r\n {{ item.label }}\r\n }\r\n </button>\r\n }\r\n }\r\n </div>\r\n </nav>\r\n } @else {\r\n <nav [class]=\"menuContainerClasses()\" [attr.aria-label]=\"'Toolbar menu'\">\r\n @for (item of menu(); track menuTrackKey($index, item)) {\r\n @if (item.divider) {\r\n <hr class=\"my-1 w-full border-0 border-t border-surface-100\" />\r\n } @else {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"!!item.disabled\"\r\n [class]=\"menuItemButtonClasses()\"\r\n [class.justify-center]=\"!menuItemHasVisibleLabel(item)\"\r\n [attr.aria-label]=\"menuItemAriaLabel(item)\"\r\n (click)=\"selectMenuItem(item)\">\r\n @if (item.icon) {\r\n <tailwind-icon [icon]=\"item.icon\" [size]=\"22\" />\r\n }\r\n @if (menuItemHasVisibleLabel(item)) {\r\n {{ item.label }}\r\n }\r\n </button>\r\n }\r\n }\r\n </nav>\r\n }\r\n <div\r\n class=\"flex flex-wrap items-center gap-2 shrink-0\"\r\n [class.justify-end]=\"orientation() === 'horizontal'\"\r\n [class.mt-auto]=\"orientation() === 'vertical'\">\r\n <ng-content select=\"[tailwind-toolbar-end]\" />\r\n </div>\r\n</div>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: TailwindIcon, selector: "tailwind-icon", inputs: ["icon", "size"] }, { kind: "component", type: TailwindMenu, selector: "tailwind-menu", inputs: ["items", "align"], outputs: ["onSelect"] }] });
3560
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindToolbar, isStandalone: true, selector: "tailwind-toolbar", inputs: { rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, elevated: { classPropertyName: "elevated", publicName: "elevated", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, menu: { classPropertyName: "menu", publicName: "menu", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onMenuSelect: "onMenuSelect" }, usesInheritance: true, ngImport: i0, template: "<div [class]=\"rootClasses()\">\r\n <div class=\"shrink-0\">\r\n <ng-content select=\"[tailwind-toolbar-logo]\" />\r\n </div>\r\n @if (orientation() === 'horizontal') {\r\n <nav class=\"min-w-0 flex flex-1 flex-row flex-wrap items-center gap-1\" [attr.aria-label]=\"'Toolbar menu'\">\r\n @if (menu().length) {\r\n <div class=\"flex shrink-0 items-center md:hidden\">\r\n <button\r\n type=\"button\"\r\n class=\"inline-flex shrink-0 cursor-pointer items-center justify-center rounded-md border-0 bg-transparent p-2 text-neutral-700 transition-colors hover:bg-neutral-100 hover:text-neutral-900\"\r\n [attr.aria-expanded]=\"mobileToolbarMenu.isOpen()\"\r\n aria-haspopup=\"menu\"\r\n aria-label=\"Open navigation menu\"\r\n (click)=\"mobileToolbarMenu.toggle($event)\">\r\n <tailwind-icon icon=\"bars-3\" [size]=\"22\" />\r\n </button>\r\n <tailwind-menu #mobileToolbarMenu [items]=\"menu()\" align=\"left\" (onSelect)=\"selectMenuItem($event)\" />\r\n </div>\r\n }\r\n <div class=\"hidden min-w-0 flex-1 flex-row flex-wrap items-center gap-1 md:flex\">\r\n @for (item of menu(); track menuTrackKey($index, item)) {\r\n @if (item.divider) {\r\n <span class=\"mx-0.5 h-5 w-px shrink-0 self-center bg-neutral-200\" aria-hidden=\"true\"></span>\r\n } @else {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"!!item.disabled\"\r\n [class]=\"menuItemButtonClasses()\"\r\n [class.px-2]=\"!!item.icon && !menuItemHasVisibleLabel(item)\"\r\n [class.py-2]=\"!!item.icon && !menuItemHasVisibleLabel(item)\"\r\n [attr.aria-label]=\"menuItemAriaLabel(item)\"\r\n (click)=\"selectMenuItem(item)\">\r\n @if (item.icon) {\r\n <tailwind-icon [icon]=\"item.icon\" [size]=\"20\" />\r\n }\r\n @if (menuItemHasVisibleLabel(item)) {\r\n {{ item.label }}\r\n }\r\n </button>\r\n }\r\n }\r\n </div>\r\n </nav>\r\n } @else {\r\n <nav [class]=\"menuContainerClasses()\" [attr.aria-label]=\"'Toolbar menu'\">\r\n @for (item of menu(); track menuTrackKey($index, item)) {\r\n @if (item.divider) {\r\n <hr class=\"my-1 w-full border-0 border-t border-neutral-100\" />\r\n } @else {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"!!item.disabled\"\r\n [class]=\"menuItemButtonClasses()\"\r\n [class.justify-center]=\"!menuItemHasVisibleLabel(item)\"\r\n [attr.aria-label]=\"menuItemAriaLabel(item)\"\r\n (click)=\"selectMenuItem(item)\">\r\n @if (item.icon) {\r\n <tailwind-icon [icon]=\"item.icon\" [size]=\"22\" />\r\n }\r\n @if (menuItemHasVisibleLabel(item)) {\r\n {{ item.label }}\r\n }\r\n </button>\r\n }\r\n }\r\n </nav>\r\n }\r\n <div\r\n class=\"flex flex-wrap items-center gap-2 shrink-0\"\r\n [class.justify-end]=\"orientation() === 'horizontal'\"\r\n [class.mt-auto]=\"orientation() === 'vertical'\">\r\n <ng-content select=\"[tailwind-toolbar-end]\" />\r\n </div>\r\n</div>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: TailwindIcon, selector: "tailwind-icon", inputs: ["icon", "size"] }, { kind: "component", type: TailwindMenu, selector: "tailwind-menu", inputs: ["items", "align"], outputs: ["onSelect"] }] });
4461
3561
  }
4462
3562
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindToolbar, decorators: [{
4463
3563
  type: Component,
4464
- args: [{ imports: [TailwindIcon, TailwindMenu], selector: 'tailwind-toolbar', template: "<div [class]=\"rootClasses()\">\r\n <div class=\"shrink-0\">\r\n <ng-content select=\"[tailwind-toolbar-logo]\" />\r\n </div>\r\n @if (orientation() === 'horizontal') {\r\n <nav class=\"min-w-0 flex flex-1 flex-row flex-wrap items-center gap-1\" [attr.aria-label]=\"'Toolbar menu'\">\r\n @if (menu().length) {\r\n <div class=\"flex shrink-0 items-center md:hidden\">\r\n <button\r\n type=\"button\"\r\n class=\"inline-flex shrink-0 cursor-pointer items-center justify-center rounded-md border-0 bg-transparent p-2 text-surface-700 transition-colors hover:bg-surface-100 hover:text-surface-900\"\r\n [attr.aria-expanded]=\"mobileToolbarMenu.isOpen()\"\r\n aria-haspopup=\"menu\"\r\n aria-label=\"Open navigation menu\"\r\n (click)=\"mobileToolbarMenu.toggle($event)\">\r\n <tailwind-icon icon=\"hamburger-menu\" [size]=\"22\" />\r\n </button>\r\n <tailwind-menu\r\n #mobileToolbarMenu\r\n [items]=\"menu()\"\r\n align=\"left\"\r\n (onSelect)=\"selectMenuItem($event)\" />\r\n </div>\r\n }\r\n <div class=\"hidden min-w-0 flex-1 flex-row flex-wrap items-center gap-1 md:flex\">\r\n @for (item of menu(); track menuTrackKey($index, item)) {\r\n @if (item.divider) {\r\n <span class=\"mx-0.5 h-5 w-px shrink-0 self-center bg-surface-200\" aria-hidden=\"true\"></span>\r\n } @else {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"!!item.disabled\"\r\n [class]=\"menuItemButtonClasses()\"\r\n [class.px-2]=\"!!item.icon && !menuItemHasVisibleLabel(item)\"\r\n [class.py-2]=\"!!item.icon && !menuItemHasVisibleLabel(item)\"\r\n [attr.aria-label]=\"menuItemAriaLabel(item)\"\r\n (click)=\"selectMenuItem(item)\">\r\n @if (item.icon) {\r\n <tailwind-icon [icon]=\"item.icon\" [size]=\"20\" />\r\n }\r\n @if (menuItemHasVisibleLabel(item)) {\r\n {{ item.label }}\r\n }\r\n </button>\r\n }\r\n }\r\n </div>\r\n </nav>\r\n } @else {\r\n <nav [class]=\"menuContainerClasses()\" [attr.aria-label]=\"'Toolbar menu'\">\r\n @for (item of menu(); track menuTrackKey($index, item)) {\r\n @if (item.divider) {\r\n <hr class=\"my-1 w-full border-0 border-t border-surface-100\" />\r\n } @else {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"!!item.disabled\"\r\n [class]=\"menuItemButtonClasses()\"\r\n [class.justify-center]=\"!menuItemHasVisibleLabel(item)\"\r\n [attr.aria-label]=\"menuItemAriaLabel(item)\"\r\n (click)=\"selectMenuItem(item)\">\r\n @if (item.icon) {\r\n <tailwind-icon [icon]=\"item.icon\" [size]=\"22\" />\r\n }\r\n @if (menuItemHasVisibleLabel(item)) {\r\n {{ item.label }}\r\n }\r\n </button>\r\n }\r\n }\r\n </nav>\r\n }\r\n <div\r\n class=\"flex flex-wrap items-center gap-2 shrink-0\"\r\n [class.justify-end]=\"orientation() === 'horizontal'\"\r\n [class.mt-auto]=\"orientation() === 'vertical'\">\r\n <ng-content select=\"[tailwind-toolbar-end]\" />\r\n </div>\r\n</div>\r\n", styles: [":host{display:block}\n"] }]
3564
+ args: [{ imports: [TailwindIcon, TailwindMenu], selector: 'tailwind-toolbar', template: "<div [class]=\"rootClasses()\">\r\n <div class=\"shrink-0\">\r\n <ng-content select=\"[tailwind-toolbar-logo]\" />\r\n </div>\r\n @if (orientation() === 'horizontal') {\r\n <nav class=\"min-w-0 flex flex-1 flex-row flex-wrap items-center gap-1\" [attr.aria-label]=\"'Toolbar menu'\">\r\n @if (menu().length) {\r\n <div class=\"flex shrink-0 items-center md:hidden\">\r\n <button\r\n type=\"button\"\r\n class=\"inline-flex shrink-0 cursor-pointer items-center justify-center rounded-md border-0 bg-transparent p-2 text-neutral-700 transition-colors hover:bg-neutral-100 hover:text-neutral-900\"\r\n [attr.aria-expanded]=\"mobileToolbarMenu.isOpen()\"\r\n aria-haspopup=\"menu\"\r\n aria-label=\"Open navigation menu\"\r\n (click)=\"mobileToolbarMenu.toggle($event)\">\r\n <tailwind-icon icon=\"bars-3\" [size]=\"22\" />\r\n </button>\r\n <tailwind-menu #mobileToolbarMenu [items]=\"menu()\" align=\"left\" (onSelect)=\"selectMenuItem($event)\" />\r\n </div>\r\n }\r\n <div class=\"hidden min-w-0 flex-1 flex-row flex-wrap items-center gap-1 md:flex\">\r\n @for (item of menu(); track menuTrackKey($index, item)) {\r\n @if (item.divider) {\r\n <span class=\"mx-0.5 h-5 w-px shrink-0 self-center bg-neutral-200\" aria-hidden=\"true\"></span>\r\n } @else {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"!!item.disabled\"\r\n [class]=\"menuItemButtonClasses()\"\r\n [class.px-2]=\"!!item.icon && !menuItemHasVisibleLabel(item)\"\r\n [class.py-2]=\"!!item.icon && !menuItemHasVisibleLabel(item)\"\r\n [attr.aria-label]=\"menuItemAriaLabel(item)\"\r\n (click)=\"selectMenuItem(item)\">\r\n @if (item.icon) {\r\n <tailwind-icon [icon]=\"item.icon\" [size]=\"20\" />\r\n }\r\n @if (menuItemHasVisibleLabel(item)) {\r\n {{ item.label }}\r\n }\r\n </button>\r\n }\r\n }\r\n </div>\r\n </nav>\r\n } @else {\r\n <nav [class]=\"menuContainerClasses()\" [attr.aria-label]=\"'Toolbar menu'\">\r\n @for (item of menu(); track menuTrackKey($index, item)) {\r\n @if (item.divider) {\r\n <hr class=\"my-1 w-full border-0 border-t border-neutral-100\" />\r\n } @else {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"!!item.disabled\"\r\n [class]=\"menuItemButtonClasses()\"\r\n [class.justify-center]=\"!menuItemHasVisibleLabel(item)\"\r\n [attr.aria-label]=\"menuItemAriaLabel(item)\"\r\n (click)=\"selectMenuItem(item)\">\r\n @if (item.icon) {\r\n <tailwind-icon [icon]=\"item.icon\" [size]=\"22\" />\r\n }\r\n @if (menuItemHasVisibleLabel(item)) {\r\n {{ item.label }}\r\n }\r\n </button>\r\n }\r\n }\r\n </nav>\r\n }\r\n <div\r\n class=\"flex flex-wrap items-center gap-2 shrink-0\"\r\n [class.justify-end]=\"orientation() === 'horizontal'\"\r\n [class.mt-auto]=\"orientation() === 'vertical'\">\r\n <ng-content select=\"[tailwind-toolbar-end]\" />\r\n </div>\r\n</div>\r\n", styles: [":host{display:block}\n"] }]
4465
3565
  }], propDecorators: { rounded: [{ type: i0.Input, args: [{ isSignal: true, alias: "rounded", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], elevated: [{ type: i0.Input, args: [{ isSignal: true, alias: "elevated", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], menu: [{ type: i0.Input, args: [{ isSignal: true, alias: "menu", required: false }] }], onMenuSelect: [{ type: i0.Output, args: ["onMenuSelect"] }] } });
4466
3566
 
4467
3567
  class TailwindDivider extends TailwindComponent {
@@ -4478,23 +3578,22 @@ class TailwindDivider extends TailwindComponent {
4478
3578
  const inset = this.inset() && this.orientation() === 'horizontal' ? 'mx-4' : '';
4479
3579
  const variant = this.variant() === 'dashed' ? 'border-dashed' : 'border-solid';
4480
3580
  if (this.orientation() === 'vertical') {
4481
- return ['self-stretch shrink-0 w-px min-h-full border-0 border-l', variant, 'border-surface-200']
4482
- .join(' ');
3581
+ return ['self-stretch shrink-0 w-px min-h-full border-0 border-l', variant, 'border-neutral-200'].join(' ');
4483
3582
  }
4484
- return ['w-full border-0 border-t', variant, 'border-surface-200', inset].filter(Boolean).join(' ');
3583
+ return ['w-full border-0 border-t', variant, 'border-neutral-200', 'my-4', inset].filter(Boolean).join(' ');
4485
3584
  }, ...(ngDevMode ? [{ debugName: "ruleClasses" }] : /* istanbul ignore next */ []));
4486
3585
  /** Top rule for labeled horizontal layout */
4487
3586
  ruleLineClass = computed(() => {
4488
3587
  const variant = this.variant() === 'dashed' ? 'border-dashed' : 'border-solid';
4489
- return ['border-surface-200', variant].join(' ');
3588
+ return ['border-neutral-200', variant].join(' ');
4490
3589
  }, ...(ngDevMode ? [{ debugName: "ruleLineClass" }] : /* istanbul ignore next */ []));
4491
- labeledRowClass = computed(() => this.inset() ? 'flex items-center gap-3 w-full mx-4' : 'flex items-center gap-3 w-full', ...(ngDevMode ? [{ debugName: "labeledRowClass" }] : /* istanbul ignore next */ []));
3590
+ labeledRowClass = computed(() => ['flex items-center gap-3 w-full my-4', this.inset() ? 'mx-4' : ''].filter(Boolean).join(' '), ...(ngDevMode ? [{ debugName: "labeledRowClass" }] : /* istanbul ignore next */ []));
4492
3591
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindDivider, deps: null, target: i0.ɵɵFactoryTarget.Component });
4493
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindDivider, isStandalone: true, selector: "tailwind-divider", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, inset: { classPropertyName: "inset", publicName: "inset", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "@if (isLabeledHorizontal()) {\r\n <div [class]=\"labeledRowClass()\" role=\"separator\" [attr.aria-label]=\"label()\">\r\n <div class=\"flex-1 border-0 border-t\" [class]=\"ruleLineClass()\"></div>\r\n <span class=\"text-xs font-medium text-surface-500 shrink-0\">{{ label() }}</span>\r\n <div class=\"flex-1 border-0 border-t\" [class]=\"ruleLineClass()\"></div>\r\n </div>\r\n} @else {\r\n <div [class]=\"ruleClasses()\" role=\"separator\"></div>\r\n}\r\n", styles: [":host{display:block}\n"] });
3592
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindDivider, isStandalone: true, selector: "tailwind-divider", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, inset: { classPropertyName: "inset", publicName: "inset", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "@if (isLabeledHorizontal()) {\r\n <div [class]=\"labeledRowClass()\" role=\"separator\" [attr.aria-label]=\"label()\">\r\n <div class=\"flex-1 border-0 border-t\" [class]=\"ruleLineClass()\"></div>\r\n <span class=\"text-xs font-medium text-neutral-500 shrink-0\">{{ label() }}</span>\r\n <div class=\"flex-1 border-0 border-t\" [class]=\"ruleLineClass()\"></div>\r\n </div>\r\n} @else {\r\n <div [class]=\"ruleClasses()\" role=\"separator\"></div>\r\n}\r\n", styles: [":host{display:block}\n"] });
4494
3593
  }
4495
3594
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindDivider, decorators: [{
4496
3595
  type: Component,
4497
- args: [{ selector: 'tailwind-divider', template: "@if (isLabeledHorizontal()) {\r\n <div [class]=\"labeledRowClass()\" role=\"separator\" [attr.aria-label]=\"label()\">\r\n <div class=\"flex-1 border-0 border-t\" [class]=\"ruleLineClass()\"></div>\r\n <span class=\"text-xs font-medium text-surface-500 shrink-0\">{{ label() }}</span>\r\n <div class=\"flex-1 border-0 border-t\" [class]=\"ruleLineClass()\"></div>\r\n </div>\r\n} @else {\r\n <div [class]=\"ruleClasses()\" role=\"separator\"></div>\r\n}\r\n", styles: [":host{display:block}\n"] }]
3596
+ args: [{ selector: 'tailwind-divider', template: "@if (isLabeledHorizontal()) {\r\n <div [class]=\"labeledRowClass()\" role=\"separator\" [attr.aria-label]=\"label()\">\r\n <div class=\"flex-1 border-0 border-t\" [class]=\"ruleLineClass()\"></div>\r\n <span class=\"text-xs font-medium text-neutral-500 shrink-0\">{{ label() }}</span>\r\n <div class=\"flex-1 border-0 border-t\" [class]=\"ruleLineClass()\"></div>\r\n </div>\r\n} @else {\r\n <div [class]=\"ruleClasses()\" role=\"separator\"></div>\r\n}\r\n", styles: [":host{display:block}\n"] }]
4498
3597
  }], propDecorators: { orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], inset: [{ type: i0.Input, args: [{ isSignal: true, alias: "inset", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }] } });
4499
3598
 
4500
3599
  class TailwindMeter extends TailwindComponent {
@@ -4536,7 +3635,7 @@ class TailwindMeter extends TailwindComponent {
4536
3635
  return { ...seg, widthPct: pct, barClass: this.variantToBarClass(variant) };
4537
3636
  });
4538
3637
  }, ...(ngDevMode ? [{ debugName: "segmentLayouts" }] : /* istanbul ignore next */ []));
4539
- trackContainerClasses = computed(() => `flex w-full overflow-hidden rounded-full bg-surface-200 ${this.trackHeightClass()}`, ...(ngDevMode ? [{ debugName: "trackContainerClasses" }] : /* istanbul ignore next */ []));
3638
+ trackContainerClasses = computed(() => `flex w-full overflow-hidden rounded-full bg-neutral-200 ${this.trackHeightClass()}`, ...(ngDevMode ? [{ debugName: "trackContainerClasses" }] : /* istanbul ignore next */ []));
4540
3639
  legendSwatchClass(variant) {
4541
3640
  return this.variantToBarClass(variant ?? 'primary');
4542
3641
  }
@@ -4551,11 +3650,11 @@ class TailwindMeter extends TailwindComponent {
4551
3650
  return map[variant] ?? map['primary'];
4552
3651
  }
4553
3652
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindMeter, deps: null, target: i0.ɵɵFactoryTarget.Component });
4554
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindMeter, isStandalone: true, selector: "tailwind-meter", inputs: { segments: { classPropertyName: "segments", publicName: "segments", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, showLabels: { classPropertyName: "showLabels", publicName: "showLabels", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div class=\"w-full space-y-2\">\r\n <div\r\n [class]=\"trackContainerClasses()\"\r\n role=\"meter\"\r\n [attr.aria-valuemin]=\"0\"\r\n [attr.aria-valuemax]=\"scaleMax()\"\r\n [attr.aria-valuenow]=\"totalValue()\"\r\n [attr.aria-label]=\"'Meter'\">\r\n @for (seg of segmentLayouts(); track $index) {\r\n @if (seg.widthPct > 0) {\r\n <div\r\n class=\"h-full min-w-0 transition-all duration-300 ease-out\"\r\n [class]=\"seg.barClass\"\r\n [style.width.%]=\"seg.widthPct\"\r\n [attr.title]=\"seg.label + ': ' + seg.value\"></div>\r\n }\r\n }\r\n </div>\r\n\r\n @if (showLabels()) {\r\n <div class=\"flex flex-wrap gap-x-4 gap-y-1 text-xs text-surface-600\">\r\n @for (seg of segments(); track $index) {\r\n <span class=\"inline-flex items-center gap-1.5\">\r\n <span class=\"inline-block size-2 rounded-sm shrink-0\" [class]=\"legendSwatchClass(seg.variant)\"></span>\r\n <span>{{ seg.label }}</span>\r\n <span class=\"text-surface-400\">({{ seg.value }})</span>\r\n </span>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block}\n"] });
3653
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: TailwindMeter, isStandalone: true, selector: "tailwind-meter", inputs: { segments: { classPropertyName: "segments", publicName: "segments", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, showLabels: { classPropertyName: "showLabels", publicName: "showLabels", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div class=\"w-full space-y-2\">\r\n <div\r\n [class]=\"trackContainerClasses()\"\r\n role=\"meter\"\r\n [attr.aria-valuemin]=\"0\"\r\n [attr.aria-valuemax]=\"scaleMax()\"\r\n [attr.aria-valuenow]=\"totalValue()\"\r\n [attr.aria-label]=\"'Meter'\">\r\n @for (seg of segmentLayouts(); track $index) {\r\n @if (seg.widthPct > 0) {\r\n <div\r\n class=\"h-full min-w-0 transition-all duration-300 ease-out\"\r\n [class]=\"seg.barClass\"\r\n [style.width.%]=\"seg.widthPct\"\r\n [attr.title]=\"seg.label + ': ' + seg.value\"></div>\r\n }\r\n }\r\n </div>\r\n\r\n @if (showLabels()) {\r\n <div class=\"flex flex-wrap gap-x-4 gap-y-1 text-xs text-neutral-600\">\r\n @for (seg of segments(); track $index) {\r\n <span class=\"inline-flex items-center gap-1.5\">\r\n <span class=\"inline-block size-2 rounded-sm shrink-0\" [class]=\"legendSwatchClass(seg.variant)\"></span>\r\n <span>{{ seg.label }}</span>\r\n <span class=\"text-neutral-400\">({{ seg.value }})</span>\r\n </span>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block}\n"] });
4555
3654
  }
4556
3655
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindMeter, decorators: [{
4557
3656
  type: Component,
4558
- args: [{ selector: 'tailwind-meter', template: "<div class=\"w-full space-y-2\">\r\n <div\r\n [class]=\"trackContainerClasses()\"\r\n role=\"meter\"\r\n [attr.aria-valuemin]=\"0\"\r\n [attr.aria-valuemax]=\"scaleMax()\"\r\n [attr.aria-valuenow]=\"totalValue()\"\r\n [attr.aria-label]=\"'Meter'\">\r\n @for (seg of segmentLayouts(); track $index) {\r\n @if (seg.widthPct > 0) {\r\n <div\r\n class=\"h-full min-w-0 transition-all duration-300 ease-out\"\r\n [class]=\"seg.barClass\"\r\n [style.width.%]=\"seg.widthPct\"\r\n [attr.title]=\"seg.label + ': ' + seg.value\"></div>\r\n }\r\n }\r\n </div>\r\n\r\n @if (showLabels()) {\r\n <div class=\"flex flex-wrap gap-x-4 gap-y-1 text-xs text-surface-600\">\r\n @for (seg of segments(); track $index) {\r\n <span class=\"inline-flex items-center gap-1.5\">\r\n <span class=\"inline-block size-2 rounded-sm shrink-0\" [class]=\"legendSwatchClass(seg.variant)\"></span>\r\n <span>{{ seg.label }}</span>\r\n <span class=\"text-surface-400\">({{ seg.value }})</span>\r\n </span>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block}\n"] }]
3657
+ args: [{ selector: 'tailwind-meter', template: "<div class=\"w-full space-y-2\">\r\n <div\r\n [class]=\"trackContainerClasses()\"\r\n role=\"meter\"\r\n [attr.aria-valuemin]=\"0\"\r\n [attr.aria-valuemax]=\"scaleMax()\"\r\n [attr.aria-valuenow]=\"totalValue()\"\r\n [attr.aria-label]=\"'Meter'\">\r\n @for (seg of segmentLayouts(); track $index) {\r\n @if (seg.widthPct > 0) {\r\n <div\r\n class=\"h-full min-w-0 transition-all duration-300 ease-out\"\r\n [class]=\"seg.barClass\"\r\n [style.width.%]=\"seg.widthPct\"\r\n [attr.title]=\"seg.label + ': ' + seg.value\"></div>\r\n }\r\n }\r\n </div>\r\n\r\n @if (showLabels()) {\r\n <div class=\"flex flex-wrap gap-x-4 gap-y-1 text-xs text-neutral-600\">\r\n @for (seg of segments(); track $index) {\r\n <span class=\"inline-flex items-center gap-1.5\">\r\n <span class=\"inline-block size-2 rounded-sm shrink-0\" [class]=\"legendSwatchClass(seg.variant)\"></span>\r\n <span>{{ seg.label }}</span>\r\n <span class=\"text-neutral-400\">({{ seg.value }})</span>\r\n </span>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block}\n"] }]
4559
3658
  }], propDecorators: { segments: [{ type: i0.Input, args: [{ isSignal: true, alias: "segments", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], showLabels: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLabels", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] } });
4560
3659
 
4561
3660
  class TailwindSlider extends TailwindComponent {
@@ -4840,7 +3939,7 @@ class TailwindSlider extends TailwindComponent {
4840
3939
  useExisting: forwardRef(() => TailwindSlider),
4841
3940
  multi: true
4842
3941
  }
4843
- ], viewQueries: [{ propertyName: "trackRef", first: true, predicate: ["track"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (orientation() === 'horizontal') {\r\n <div\r\n #track\r\n class=\"relative w-full touch-none select-none py-3\"\r\n [class.opacity-50]=\"isEffectivelyDisabled()\"\r\n [class.pointer-events-none]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onTrackPointerDown($event, range() ? null : null)\">\r\n <div class=\"relative h-6 w-full\">\r\n <!-- rail -->\r\n <div\r\n class=\"pointer-events-none absolute left-0 right-0 top-1/2 -translate-y-1/2 rounded-full bg-surface-200\"\r\n [class]=\"trackThickness()\"></div>\r\n\r\n @if (showTicks()) {\r\n @for (p of tickPositions(); track $index) {\r\n <div\r\n class=\"pointer-events-none absolute top-1/2 h-2 w-px -translate-x-1/2 -translate-y-1/2 bg-surface-300\"\r\n [style.left.%]=\"p\"></div>\r\n }\r\n }\r\n\r\n <!-- fill -->\r\n <div\r\n class=\"pointer-events-none absolute top-1/2 z-1 -translate-y-1/2 rounded-full\"\r\n [class]=\"trackThickness()\"\r\n [style.background-color]=\"accentVars().fill\"\r\n [style.left.%]=\"fillStartPct()\"\r\n [style.width.%]=\"fillWidthPct()\"></div>\r\n\r\n @if (range()) {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute top-1/2 z-10 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.left.%]=\"lowPct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"rangeLow()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 0)\"\r\n (keydown)=\"onKeyDown($event, 0)\"></button>\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute top-1/2 z-10 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.left.%]=\"highPct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"rangeHigh()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 1)\"\r\n (keydown)=\"onKeyDown($event, 1)\"></button>\r\n } @else {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute top-1/2 z-10 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.left.%]=\"singlePct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"singleValue()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 0)\"\r\n (keydown)=\"onKeyDown($event, 0)\"></button>\r\n }\r\n </div>\r\n </div>\r\n} @else {\r\n <div\r\n #track\r\n class=\"relative mx-auto h-52 w-10 touch-none select-none\"\r\n [class.opacity-50]=\"isEffectivelyDisabled()\"\r\n [class.pointer-events-none]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onTrackPointerDown($event, range() ? null : null)\">\r\n <div class=\"relative h-full w-full\">\r\n <div\r\n class=\"pointer-events-none absolute bottom-0 left-1/2 top-0 -translate-x-1/2 rounded-full bg-surface-200\"\r\n [class]=\"verticalTrackThickness()\"></div>\r\n\r\n @if (showTicks()) {\r\n @for (p of tickPositions(); track $index) {\r\n <div\r\n class=\"pointer-events-none absolute left-1/2 w-2 h-px -translate-x-1/2 translate-y-1/2 bg-surface-300\"\r\n [style.bottom.%]=\"p\"></div>\r\n }\r\n }\r\n\r\n <div\r\n class=\"pointer-events-none absolute bottom-0 left-1/2 z-1 -translate-x-1/2 rounded-full\"\r\n [class]=\"verticalTrackThickness()\"\r\n [style.background-color]=\"accentVars().fill\"\r\n [style.bottom.%]=\"fillStartPct()\"\r\n [style.height.%]=\"fillWidthPct()\"></div>\r\n\r\n @if (range()) {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute left-1/2 z-10 -translate-x-1/2 translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.bottom.%]=\"lowPct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"rangeLow()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 0)\"\r\n (keydown)=\"onKeyDown($event, 0)\"></button>\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute left-1/2 z-10 -translate-x-1/2 translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.bottom.%]=\"highPct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"rangeHigh()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 1)\"\r\n (keydown)=\"onKeyDown($event, 1)\"></button>\r\n } @else {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute left-1/2 z-10 -translate-x-1/2 translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.bottom.%]=\"singlePct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"singleValue()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 0)\"\r\n (keydown)=\"onKeyDown($event, 0)\"></button>\r\n }\r\n </div>\r\n </div>\r\n}\r\n", styles: [":host{display:block}.tailwind-slider-thumb{cursor:pointer}.tailwind-slider-thumb:focus-visible{outline:2px solid var(--slider-ring);outline-offset:2px}.tailwind-slider-thumb:focus:not(:focus-visible){outline:none}.tailwind-slider-thumb:disabled{cursor:not-allowed}\n"] });
3942
+ ], viewQueries: [{ propertyName: "trackRef", first: true, predicate: ["track"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (orientation() === 'horizontal') {\r\n <div\r\n #track\r\n class=\"relative w-full touch-none select-none py-3\"\r\n [class.opacity-50]=\"isEffectivelyDisabled()\"\r\n [class.pointer-events-none]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onTrackPointerDown($event, range() ? null : null)\">\r\n <div class=\"relative h-6 w-full\">\r\n <!-- rail -->\r\n <div\r\n class=\"pointer-events-none absolute left-0 right-0 top-1/2 -translate-y-1/2 rounded-full bg-neutral-200\"\r\n [class]=\"trackThickness()\"></div>\r\n\r\n @if (showTicks()) {\r\n @for (p of tickPositions(); track $index) {\r\n <div\r\n class=\"pointer-events-none absolute top-1/2 h-2 w-px -translate-x-1/2 -translate-y-1/2 bg-neutral-300\"\r\n [style.left.%]=\"p\"></div>\r\n }\r\n }\r\n\r\n <!-- fill -->\r\n <div\r\n class=\"pointer-events-none absolute top-1/2 z-1 -translate-y-1/2 rounded-full\"\r\n [class]=\"trackThickness()\"\r\n [style.background-color]=\"accentVars().fill\"\r\n [style.left.%]=\"fillStartPct()\"\r\n [style.width.%]=\"fillWidthPct()\"></div>\r\n\r\n @if (range()) {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute top-1/2 z-10 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.left.%]=\"lowPct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"rangeLow()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 0)\"\r\n (keydown)=\"onKeyDown($event, 0)\"></button>\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute top-1/2 z-10 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.left.%]=\"highPct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"rangeHigh()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 1)\"\r\n (keydown)=\"onKeyDown($event, 1)\"></button>\r\n } @else {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute top-1/2 z-10 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.left.%]=\"singlePct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"singleValue()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 0)\"\r\n (keydown)=\"onKeyDown($event, 0)\"></button>\r\n }\r\n </div>\r\n </div>\r\n} @else {\r\n <div\r\n #track\r\n class=\"relative mx-auto h-52 w-10 touch-none select-none\"\r\n [class.opacity-50]=\"isEffectivelyDisabled()\"\r\n [class.pointer-events-none]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onTrackPointerDown($event, range() ? null : null)\">\r\n <div class=\"relative h-full w-full\">\r\n <div\r\n class=\"pointer-events-none absolute bottom-0 left-1/2 top-0 -translate-x-1/2 rounded-full bg-neutral-200\"\r\n [class]=\"verticalTrackThickness()\"></div>\r\n\r\n @if (showTicks()) {\r\n @for (p of tickPositions(); track $index) {\r\n <div\r\n class=\"pointer-events-none absolute left-1/2 w-2 h-px -translate-x-1/2 translate-y-1/2 bg-neutral-300\"\r\n [style.bottom.%]=\"p\"></div>\r\n }\r\n }\r\n\r\n <div\r\n class=\"pointer-events-none absolute bottom-0 left-1/2 z-1 -translate-x-1/2 rounded-full\"\r\n [class]=\"verticalTrackThickness()\"\r\n [style.background-color]=\"accentVars().fill\"\r\n [style.bottom.%]=\"fillStartPct()\"\r\n [style.height.%]=\"fillWidthPct()\"></div>\r\n\r\n @if (range()) {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute left-1/2 z-10 -translate-x-1/2 translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.bottom.%]=\"lowPct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"rangeLow()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 0)\"\r\n (keydown)=\"onKeyDown($event, 0)\"></button>\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute left-1/2 z-10 -translate-x-1/2 translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.bottom.%]=\"highPct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"rangeHigh()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 1)\"\r\n (keydown)=\"onKeyDown($event, 1)\"></button>\r\n } @else {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute left-1/2 z-10 -translate-x-1/2 translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.bottom.%]=\"singlePct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"singleValue()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 0)\"\r\n (keydown)=\"onKeyDown($event, 0)\"></button>\r\n }\r\n </div>\r\n </div>\r\n}\r\n", styles: [":host{display:block}.tailwind-slider-thumb{cursor:pointer}.tailwind-slider-thumb:focus-visible{outline:2px solid var(--slider-ring);outline-offset:2px}.tailwind-slider-thumb:focus:not(:focus-visible){outline:none}.tailwind-slider-thumb:disabled{cursor:not-allowed}\n"] });
4844
3943
  }
4845
3944
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: TailwindSlider, decorators: [{
4846
3945
  type: Component,
@@ -4850,11 +3949,126 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
4850
3949
  useExisting: forwardRef(() => TailwindSlider),
4851
3950
  multi: true
4852
3951
  }
4853
- ], template: "@if (orientation() === 'horizontal') {\r\n <div\r\n #track\r\n class=\"relative w-full touch-none select-none py-3\"\r\n [class.opacity-50]=\"isEffectivelyDisabled()\"\r\n [class.pointer-events-none]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onTrackPointerDown($event, range() ? null : null)\">\r\n <div class=\"relative h-6 w-full\">\r\n <!-- rail -->\r\n <div\r\n class=\"pointer-events-none absolute left-0 right-0 top-1/2 -translate-y-1/2 rounded-full bg-surface-200\"\r\n [class]=\"trackThickness()\"></div>\r\n\r\n @if (showTicks()) {\r\n @for (p of tickPositions(); track $index) {\r\n <div\r\n class=\"pointer-events-none absolute top-1/2 h-2 w-px -translate-x-1/2 -translate-y-1/2 bg-surface-300\"\r\n [style.left.%]=\"p\"></div>\r\n }\r\n }\r\n\r\n <!-- fill -->\r\n <div\r\n class=\"pointer-events-none absolute top-1/2 z-1 -translate-y-1/2 rounded-full\"\r\n [class]=\"trackThickness()\"\r\n [style.background-color]=\"accentVars().fill\"\r\n [style.left.%]=\"fillStartPct()\"\r\n [style.width.%]=\"fillWidthPct()\"></div>\r\n\r\n @if (range()) {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute top-1/2 z-10 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.left.%]=\"lowPct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"rangeLow()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 0)\"\r\n (keydown)=\"onKeyDown($event, 0)\"></button>\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute top-1/2 z-10 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.left.%]=\"highPct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"rangeHigh()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 1)\"\r\n (keydown)=\"onKeyDown($event, 1)\"></button>\r\n } @else {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute top-1/2 z-10 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.left.%]=\"singlePct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"singleValue()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 0)\"\r\n (keydown)=\"onKeyDown($event, 0)\"></button>\r\n }\r\n </div>\r\n </div>\r\n} @else {\r\n <div\r\n #track\r\n class=\"relative mx-auto h-52 w-10 touch-none select-none\"\r\n [class.opacity-50]=\"isEffectivelyDisabled()\"\r\n [class.pointer-events-none]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onTrackPointerDown($event, range() ? null : null)\">\r\n <div class=\"relative h-full w-full\">\r\n <div\r\n class=\"pointer-events-none absolute bottom-0 left-1/2 top-0 -translate-x-1/2 rounded-full bg-surface-200\"\r\n [class]=\"verticalTrackThickness()\"></div>\r\n\r\n @if (showTicks()) {\r\n @for (p of tickPositions(); track $index) {\r\n <div\r\n class=\"pointer-events-none absolute left-1/2 w-2 h-px -translate-x-1/2 translate-y-1/2 bg-surface-300\"\r\n [style.bottom.%]=\"p\"></div>\r\n }\r\n }\r\n\r\n <div\r\n class=\"pointer-events-none absolute bottom-0 left-1/2 z-1 -translate-x-1/2 rounded-full\"\r\n [class]=\"verticalTrackThickness()\"\r\n [style.background-color]=\"accentVars().fill\"\r\n [style.bottom.%]=\"fillStartPct()\"\r\n [style.height.%]=\"fillWidthPct()\"></div>\r\n\r\n @if (range()) {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute left-1/2 z-10 -translate-x-1/2 translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.bottom.%]=\"lowPct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"rangeLow()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 0)\"\r\n (keydown)=\"onKeyDown($event, 0)\"></button>\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute left-1/2 z-10 -translate-x-1/2 translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.bottom.%]=\"highPct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"rangeHigh()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 1)\"\r\n (keydown)=\"onKeyDown($event, 1)\"></button>\r\n } @else {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute left-1/2 z-10 -translate-x-1/2 translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.bottom.%]=\"singlePct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"singleValue()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 0)\"\r\n (keydown)=\"onKeyDown($event, 0)\"></button>\r\n }\r\n </div>\r\n </div>\r\n}\r\n", styles: [":host{display:block}.tailwind-slider-thumb{cursor:pointer}.tailwind-slider-thumb:focus-visible{outline:2px solid var(--slider-ring);outline-offset:2px}.tailwind-slider-thumb:focus:not(:focus-visible){outline:none}.tailwind-slider-thumb:disabled{cursor:not-allowed}\n"] }]
3952
+ ], template: "@if (orientation() === 'horizontal') {\r\n <div\r\n #track\r\n class=\"relative w-full touch-none select-none py-3\"\r\n [class.opacity-50]=\"isEffectivelyDisabled()\"\r\n [class.pointer-events-none]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onTrackPointerDown($event, range() ? null : null)\">\r\n <div class=\"relative h-6 w-full\">\r\n <!-- rail -->\r\n <div\r\n class=\"pointer-events-none absolute left-0 right-0 top-1/2 -translate-y-1/2 rounded-full bg-neutral-200\"\r\n [class]=\"trackThickness()\"></div>\r\n\r\n @if (showTicks()) {\r\n @for (p of tickPositions(); track $index) {\r\n <div\r\n class=\"pointer-events-none absolute top-1/2 h-2 w-px -translate-x-1/2 -translate-y-1/2 bg-neutral-300\"\r\n [style.left.%]=\"p\"></div>\r\n }\r\n }\r\n\r\n <!-- fill -->\r\n <div\r\n class=\"pointer-events-none absolute top-1/2 z-1 -translate-y-1/2 rounded-full\"\r\n [class]=\"trackThickness()\"\r\n [style.background-color]=\"accentVars().fill\"\r\n [style.left.%]=\"fillStartPct()\"\r\n [style.width.%]=\"fillWidthPct()\"></div>\r\n\r\n @if (range()) {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute top-1/2 z-10 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.left.%]=\"lowPct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"rangeLow()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 0)\"\r\n (keydown)=\"onKeyDown($event, 0)\"></button>\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute top-1/2 z-10 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.left.%]=\"highPct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"rangeHigh()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 1)\"\r\n (keydown)=\"onKeyDown($event, 1)\"></button>\r\n } @else {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute top-1/2 z-10 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.left.%]=\"singlePct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"singleValue()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 0)\"\r\n (keydown)=\"onKeyDown($event, 0)\"></button>\r\n }\r\n </div>\r\n </div>\r\n} @else {\r\n <div\r\n #track\r\n class=\"relative mx-auto h-52 w-10 touch-none select-none\"\r\n [class.opacity-50]=\"isEffectivelyDisabled()\"\r\n [class.pointer-events-none]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onTrackPointerDown($event, range() ? null : null)\">\r\n <div class=\"relative h-full w-full\">\r\n <div\r\n class=\"pointer-events-none absolute bottom-0 left-1/2 top-0 -translate-x-1/2 rounded-full bg-neutral-200\"\r\n [class]=\"verticalTrackThickness()\"></div>\r\n\r\n @if (showTicks()) {\r\n @for (p of tickPositions(); track $index) {\r\n <div\r\n class=\"pointer-events-none absolute left-1/2 w-2 h-px -translate-x-1/2 translate-y-1/2 bg-neutral-300\"\r\n [style.bottom.%]=\"p\"></div>\r\n }\r\n }\r\n\r\n <div\r\n class=\"pointer-events-none absolute bottom-0 left-1/2 z-1 -translate-x-1/2 rounded-full\"\r\n [class]=\"verticalTrackThickness()\"\r\n [style.background-color]=\"accentVars().fill\"\r\n [style.bottom.%]=\"fillStartPct()\"\r\n [style.height.%]=\"fillWidthPct()\"></div>\r\n\r\n @if (range()) {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute left-1/2 z-10 -translate-x-1/2 translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.bottom.%]=\"lowPct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"rangeLow()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 0)\"\r\n (keydown)=\"onKeyDown($event, 0)\"></button>\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute left-1/2 z-10 -translate-x-1/2 translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.bottom.%]=\"highPct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"rangeHigh()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 1)\"\r\n (keydown)=\"onKeyDown($event, 1)\"></button>\r\n } @else {\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n class=\"tailwind-slider-thumb absolute left-1/2 z-10 -translate-x-1/2 translate-y-1/2 rounded-full border-2 border-white shadow focus:outline-none\"\r\n [class]=\"thumbSizeClass()\"\r\n [style.background-color]=\"accentVars().thumb\"\r\n [style.--slider-ring]=\"accentVars().ring\"\r\n [style.bottom.%]=\"singlePct()\"\r\n role=\"slider\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-valuenow]=\"singleValue()\"\r\n [attr.aria-disabled]=\"isEffectivelyDisabled()\"\r\n (pointerdown)=\"onThumbPointerDown($event, 0)\"\r\n (keydown)=\"onKeyDown($event, 0)\"></button>\r\n }\r\n </div>\r\n </div>\r\n}\r\n", styles: [":host{display:block}.tailwind-slider-thumb{cursor:pointer}.tailwind-slider-thumb:focus-visible{outline:2px solid var(--slider-ring);outline-offset:2px}.tailwind-slider-thumb:focus:not(:focus-visible){outline:none}.tailwind-slider-thumb:disabled{cursor:not-allowed}\n"] }]
4854
3953
  }], propDecorators: { min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", required: false }] }], range: [{ type: i0.Input, args: [{ isSignal: true, alias: "range", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], showTicks: [{ type: i0.Input, args: [{ isSignal: true, alias: "showTicks", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], trackRef: [{ type: i0.ViewChild, args: ['track', { isSignal: true }] }], hostDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
4855
3954
 
4856
3955
  // Batch 1 — Foundation
4857
3956
 
3957
+ /**
3958
+ * Builds `Provider` entries for each set field on `config`.
3959
+ * Used by {@link defineTheme} and {@link provideTailwindComponents}.
3960
+ */
3961
+ function providersFromTailwindComponentsConfig(config) {
3962
+ const providers = [];
3963
+ if (config.iconSize !== undefined) {
3964
+ providers.push({ provide: TAILWIND_ICON_SIZE, useValue: config.iconSize });
3965
+ }
3966
+ if (config.datetimeLanguage !== undefined) {
3967
+ providers.push({ provide: TAILWIND_DATETIME_LANGUAGE, useValue: config.datetimeLanguage });
3968
+ }
3969
+ if (config.componentsSize !== undefined) {
3970
+ providers.push({ provide: TAILWIND_COMPONENTS_SIZE, useValue: config.componentsSize });
3971
+ }
3972
+ if (config.paginationSummary !== undefined) {
3973
+ providers.push({ provide: TAILWIND_PAGINATION_SUMMARY, useValue: config.paginationSummary });
3974
+ }
3975
+ return providers;
3976
+ }
3977
+ /**
3978
+ * Registers environment-scoped providers for library injection tokens only (no theme `colors`).
3979
+ * Prefer {@link defineTheme}, which registers the same tokens when set plus optional CSS variables.
3980
+ *
3981
+ * @deprecated Use {@link defineTheme} with the same fields (`iconSize`, `datetimeLanguage`, etc.).
3982
+ */
3983
+ function provideTailwindComponents(config) {
3984
+ return makeEnvironmentProviders(providersFromTailwindComponentsConfig(config));
3985
+ }
3986
+ const SHADES_WITH_950 = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950];
3987
+ const SHADES_TO_900 = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900];
3988
+ function shadesForSemantic(semantic) {
3989
+ switch (semantic) {
3990
+ case 'success':
3991
+ case 'warning':
3992
+ case 'danger':
3993
+ case 'info':
3994
+ return SHADES_TO_900;
3995
+ default:
3996
+ return SHADES_WITH_950;
3997
+ }
3998
+ }
3999
+ function isShadeRecord(value) {
4000
+ return typeof value === 'object' && value !== null;
4001
+ }
4002
+ /**
4003
+ * Builds `[CSS custom property name, value]` pairs for {@link defineTheme}.
4004
+ * Exported for unit tests.
4005
+ */
4006
+ function buildTailwindThemeVariableEntries(config) {
4007
+ const colors = config.colors;
4008
+ if (!colors) {
4009
+ return [];
4010
+ }
4011
+ const entries = [];
4012
+ const dangerOrError = colors.danger ?? colors.error;
4013
+ const pairs = [
4014
+ ['primary', colors.primary],
4015
+ ['neutral', colors.neutral],
4016
+ ['success', colors.success],
4017
+ ['warning', colors.warning],
4018
+ ['danger', dangerOrError],
4019
+ ['info', colors.info]
4020
+ ];
4021
+ for (const [semantic, value] of pairs) {
4022
+ if (value === undefined) {
4023
+ continue;
4024
+ }
4025
+ if (typeof value === 'string') {
4026
+ const palette = value.trim();
4027
+ if (!palette) {
4028
+ continue;
4029
+ }
4030
+ for (const shade of shadesForSemantic(semantic)) {
4031
+ entries.push([`--color-${semantic}-${shade}`, `var(--color-${palette}-${shade})`]);
4032
+ }
4033
+ }
4034
+ else if (isShadeRecord(value)) {
4035
+ for (const [shade, color] of Object.entries(value)) {
4036
+ if (color !== undefined && color !== '') {
4037
+ entries.push([`--color-${semantic}-${shade}`, color]);
4038
+ }
4039
+ }
4040
+ }
4041
+ }
4042
+ return entries;
4043
+ }
4044
+ function applyTailwindThemeToElement(element, config) {
4045
+ for (const [prop, val] of buildTailwindThemeVariableEntries(config)) {
4046
+ element.style.setProperty(prop, val);
4047
+ }
4048
+ }
4049
+ /**
4050
+ * Registers environment-scoped library defaults: optional **injection tokens** from {@link TailwindComponentsConfig}
4051
+ * plus an app initializer that applies optional **`colors`** on
4052
+ * `document.documentElement` in the browser. Add as a single entry in `providers` (no spread).
4053
+ *
4054
+ * Palette **strings** (e.g. `'indigo'`) rely on `--color-indigo-*` existing in the CSS bundle; the
4055
+ * library stylesheet safelists Tailwind’s default palette names for that reason.
4056
+ */
4057
+ function defineTheme(config) {
4058
+ const tokenProviders = providersFromTailwindComponentsConfig(config);
4059
+ return makeEnvironmentProviders([
4060
+ ...tokenProviders,
4061
+ provideAppInitializer(() => {
4062
+ const platformId = inject(PLATFORM_ID);
4063
+ if (!isPlatformBrowser(platformId)) {
4064
+ return;
4065
+ }
4066
+ const doc = inject(DOCUMENT);
4067
+ applyTailwindThemeToElement(doc.documentElement, config);
4068
+ })
4069
+ ]);
4070
+ }
4071
+
4858
4072
  /*
4859
4073
  * Public API Surface of angular-tailwind-components
4860
4074
  */
@@ -4864,5 +4078,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
4864
4078
  * Generated bundle index. Do not edit.
4865
4079
  */
4866
4080
 
4867
- export { TAILWIND_COMPONENTS_SIZE, TAILWIND_DATETIME_LANGUAGE, TAILWIND_ICON_SIZE, TAILWIND_MODAL_DATA, TAILWIND_SOLAR_ICON_NAMES, TW_TABLE_SORT_DIR_ATTR, TW_TABLE_SORT_KEY_ATTR, TailwindAccordion, TailwindAccordionItem, TailwindAlert, TailwindBadge, TailwindBreadcrumb, TailwindButton, TailwindCard, TailwindCheckbox, TailwindDatePicker, TailwindDateTimePicker, TailwindDivider, TailwindDrawer, TailwindIcon, TailwindInput, TailwindInputOtp, TailwindMenu, TailwindMessage, TailwindMeter, TailwindModal, TailwindModalRef, TailwindModalService, TailwindNotification, TailwindPagination, TailwindProgressBar, TailwindRadioGroup, TailwindSelect, TailwindSkeleton, TailwindSlider, TailwindSortHeaderDirective, TailwindSpinner, TailwindStep, TailwindStepper, TailwindTab, TailwindTabGroup, TailwindTable, TailwindTableRowDirective, TailwindTableRowDirective as TailwindTableRowTemplateDirective, TailwindTag, TailwindTextarea, TailwindTimePicker, TailwindTitle, TailwindToast, TailwindToastService, TailwindToggle, TailwindToolbar, TailwindTooltip, TailwindTooltipDirective, TailwindUpload };
4081
+ export { TAILWIND_COMPONENTS_SIZE, TAILWIND_DATETIME_LANGUAGE, TAILWIND_HEROICON_NAMES, TAILWIND_ICON_SIZE, TAILWIND_MODAL_DATA, TAILWIND_PAGINATION_SUMMARY, TW_TABLE_SORT_DIR_ATTR, TW_TABLE_SORT_KEY_ATTR, TailwindAccordion, TailwindAccordionItem, TailwindAlert, TailwindBadge, TailwindBreadcrumb, TailwindButton, TailwindCard, TailwindCheckbox, TailwindDatePicker, TailwindDateTimePicker, TailwindDivider, TailwindDrawer, TailwindIcon, TailwindInput, TailwindInputOtp, TailwindMenu, TailwindMessage, TailwindMeter, TailwindModal, TailwindModalRef, TailwindModalService, TailwindNotification, TailwindPagination, TailwindProgressBar, TailwindRadioGroup, TailwindSelect, TailwindSkeleton, TailwindSlider, TailwindSortHeaderDirective, TailwindSpinner, TailwindStep, TailwindStepper, TailwindTab, TailwindTabGroup, TailwindTable, TailwindTableRowDirective, TailwindTableRowDirective as TailwindTableRowTemplateDirective, TailwindTag, TailwindTextarea, TailwindTimePicker, TailwindTitle, TailwindToast, TailwindToastService, TailwindToggle, TailwindToolbar, TailwindTooltip, TailwindTooltipDirective, TailwindUpload, defineTheme, provideTailwindComponents };
4868
4082
  //# sourceMappingURL=angular-tailwind-components.mjs.map