@navette-js/support 0.0.0-stage → 1.0.0-beta.2

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 (1304) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +8 -2
  3. package/THIRD-PARTY-NOTICES.md +12 -0
  4. package/data/lang.en-fr.json +2090 -0
  5. package/data/palettes.json +340 -0
  6. package/icons/HEROICONS-LICENSE.md +21 -0
  7. package/icons/heroicons/c-academic-cap.svg +4 -0
  8. package/icons/heroicons/c-adjustments-horizontal.svg +3 -0
  9. package/icons/heroicons/c-adjustments-vertical.svg +3 -0
  10. package/icons/heroicons/c-archive-box-arrow-down.svg +4 -0
  11. package/icons/heroicons/c-archive-box-x-mark.svg +4 -0
  12. package/icons/heroicons/c-archive-box.svg +4 -0
  13. package/icons/heroicons/c-arrow-down-circle.svg +3 -0
  14. package/icons/heroicons/c-arrow-down-left.svg +3 -0
  15. package/icons/heroicons/c-arrow-down-on-square-stack.svg +4 -0
  16. package/icons/heroicons/c-arrow-down-on-square.svg +3 -0
  17. package/icons/heroicons/c-arrow-down-right.svg +3 -0
  18. package/icons/heroicons/c-arrow-down-tray.svg +4 -0
  19. package/icons/heroicons/c-arrow-down.svg +3 -0
  20. package/icons/heroicons/c-arrow-left-circle.svg +3 -0
  21. package/icons/heroicons/c-arrow-left-end-on-rectangle.svg +4 -0
  22. package/icons/heroicons/c-arrow-left-start-on-rectangle.svg +3 -0
  23. package/icons/heroicons/c-arrow-left.svg +3 -0
  24. package/icons/heroicons/c-arrow-long-down.svg +3 -0
  25. package/icons/heroicons/c-arrow-long-left.svg +3 -0
  26. package/icons/heroicons/c-arrow-long-right.svg +3 -0
  27. package/icons/heroicons/c-arrow-long-up.svg +3 -0
  28. package/icons/heroicons/c-arrow-path-rounded-square.svg +3 -0
  29. package/icons/heroicons/c-arrow-path.svg +3 -0
  30. package/icons/heroicons/c-arrow-right-circle.svg +3 -0
  31. package/icons/heroicons/c-arrow-right-end-on-rectangle.svg +4 -0
  32. package/icons/heroicons/c-arrow-right-start-on-rectangle.svg +3 -0
  33. package/icons/heroicons/c-arrow-right.svg +3 -0
  34. package/icons/heroicons/c-arrow-top-right-on-square.svg +4 -0
  35. package/icons/heroicons/c-arrow-trending-down.svg +3 -0
  36. package/icons/heroicons/c-arrow-trending-up.svg +3 -0
  37. package/icons/heroicons/c-arrow-turn-down-left.svg +3 -0
  38. package/icons/heroicons/c-arrow-turn-down-right.svg +3 -0
  39. package/icons/heroicons/c-arrow-turn-left-down.svg +3 -0
  40. package/icons/heroicons/c-arrow-turn-left-up.svg +3 -0
  41. package/icons/heroicons/c-arrow-turn-right-down.svg +3 -0
  42. package/icons/heroicons/c-arrow-turn-right-up.svg +3 -0
  43. package/icons/heroicons/c-arrow-turn-up-left.svg +3 -0
  44. package/icons/heroicons/c-arrow-turn-up-right.svg +3 -0
  45. package/icons/heroicons/c-arrow-up-circle.svg +3 -0
  46. package/icons/heroicons/c-arrow-up-left.svg +3 -0
  47. package/icons/heroicons/c-arrow-up-on-square-stack.svg +4 -0
  48. package/icons/heroicons/c-arrow-up-on-square.svg +3 -0
  49. package/icons/heroicons/c-arrow-up-right.svg +3 -0
  50. package/icons/heroicons/c-arrow-up-tray.svg +4 -0
  51. package/icons/heroicons/c-arrow-up.svg +3 -0
  52. package/icons/heroicons/c-arrow-uturn-down.svg +3 -0
  53. package/icons/heroicons/c-arrow-uturn-left.svg +3 -0
  54. package/icons/heroicons/c-arrow-uturn-right.svg +3 -0
  55. package/icons/heroicons/c-arrow-uturn-up.svg +3 -0
  56. package/icons/heroicons/c-arrows-pointing-in.svg +3 -0
  57. package/icons/heroicons/c-arrows-pointing-out.svg +3 -0
  58. package/icons/heroicons/c-arrows-right-left.svg +3 -0
  59. package/icons/heroicons/c-arrows-up-down.svg +3 -0
  60. package/icons/heroicons/c-at-symbol.svg +3 -0
  61. package/icons/heroicons/c-backspace.svg +3 -0
  62. package/icons/heroicons/c-backward.svg +3 -0
  63. package/icons/heroicons/c-banknotes.svg +4 -0
  64. package/icons/heroicons/c-bars-2.svg +3 -0
  65. package/icons/heroicons/c-bars-3-bottom-left.svg +3 -0
  66. package/icons/heroicons/c-bars-3-bottom-right.svg +3 -0
  67. package/icons/heroicons/c-bars-3-center-left.svg +3 -0
  68. package/icons/heroicons/c-bars-3.svg +3 -0
  69. package/icons/heroicons/c-bars-4.svg +3 -0
  70. package/icons/heroicons/c-bars-arrow-down.svg +3 -0
  71. package/icons/heroicons/c-bars-arrow-up.svg +3 -0
  72. package/icons/heroicons/c-battery-0.svg +3 -0
  73. package/icons/heroicons/c-battery-100.svg +4 -0
  74. package/icons/heroicons/c-battery-50.svg +4 -0
  75. package/icons/heroicons/c-beaker.svg +3 -0
  76. package/icons/heroicons/c-bell-alert.svg +4 -0
  77. package/icons/heroicons/c-bell-slash.svg +4 -0
  78. package/icons/heroicons/c-bell-snooze.svg +3 -0
  79. package/icons/heroicons/c-bell.svg +3 -0
  80. package/icons/heroicons/c-bold.svg +3 -0
  81. package/icons/heroicons/c-bolt-slash.svg +3 -0
  82. package/icons/heroicons/c-bolt.svg +3 -0
  83. package/icons/heroicons/c-book-open.svg +3 -0
  84. package/icons/heroicons/c-bookmark-slash.svg +3 -0
  85. package/icons/heroicons/c-bookmark-square.svg +3 -0
  86. package/icons/heroicons/c-bookmark.svg +3 -0
  87. package/icons/heroicons/c-briefcase.svg +4 -0
  88. package/icons/heroicons/c-bug-ant.svg +3 -0
  89. package/icons/heroicons/c-building-library.svg +3 -0
  90. package/icons/heroicons/c-building-office-2.svg +3 -0
  91. package/icons/heroicons/c-building-office.svg +3 -0
  92. package/icons/heroicons/c-building-storefront.svg +3 -0
  93. package/icons/heroicons/c-cake.svg +3 -0
  94. package/icons/heroicons/c-calculator.svg +3 -0
  95. package/icons/heroicons/c-calendar-date-range.svg +4 -0
  96. package/icons/heroicons/c-calendar-days.svg +4 -0
  97. package/icons/heroicons/c-calendar.svg +3 -0
  98. package/icons/heroicons/c-camera.svg +4 -0
  99. package/icons/heroicons/c-chart-bar-square.svg +3 -0
  100. package/icons/heroicons/c-chart-bar.svg +3 -0
  101. package/icons/heroicons/c-chart-pie.svg +4 -0
  102. package/icons/heroicons/c-chat-bubble-bottom-center-text.svg +3 -0
  103. package/icons/heroicons/c-chat-bubble-bottom-center.svg +3 -0
  104. package/icons/heroicons/c-chat-bubble-left-ellipsis.svg +3 -0
  105. package/icons/heroicons/c-chat-bubble-left-right.svg +4 -0
  106. package/icons/heroicons/c-chat-bubble-left.svg +3 -0
  107. package/icons/heroicons/c-chat-bubble-oval-left-ellipsis.svg +3 -0
  108. package/icons/heroicons/c-chat-bubble-oval-left.svg +3 -0
  109. package/icons/heroicons/c-check-badge.svg +3 -0
  110. package/icons/heroicons/c-check-circle.svg +3 -0
  111. package/icons/heroicons/c-check.svg +3 -0
  112. package/icons/heroicons/c-chevron-double-down.svg +3 -0
  113. package/icons/heroicons/c-chevron-double-left.svg +3 -0
  114. package/icons/heroicons/c-chevron-double-right.svg +3 -0
  115. package/icons/heroicons/c-chevron-double-up.svg +3 -0
  116. package/icons/heroicons/c-chevron-down.svg +3 -0
  117. package/icons/heroicons/c-chevron-left.svg +3 -0
  118. package/icons/heroicons/c-chevron-right.svg +3 -0
  119. package/icons/heroicons/c-chevron-up-down.svg +3 -0
  120. package/icons/heroicons/c-chevron-up.svg +3 -0
  121. package/icons/heroicons/c-circle-stack.svg +5 -0
  122. package/icons/heroicons/c-clipboard-document-check.svg +4 -0
  123. package/icons/heroicons/c-clipboard-document-list.svg +4 -0
  124. package/icons/heroicons/c-clipboard-document.svg +4 -0
  125. package/icons/heroicons/c-clipboard.svg +3 -0
  126. package/icons/heroicons/c-clock.svg +3 -0
  127. package/icons/heroicons/c-cloud-arrow-down.svg +3 -0
  128. package/icons/heroicons/c-cloud-arrow-up.svg +3 -0
  129. package/icons/heroicons/c-cloud.svg +3 -0
  130. package/icons/heroicons/c-code-bracket-square.svg +3 -0
  131. package/icons/heroicons/c-code-bracket.svg +3 -0
  132. package/icons/heroicons/c-cog-6-tooth.svg +3 -0
  133. package/icons/heroicons/c-cog-8-tooth.svg +3 -0
  134. package/icons/heroicons/c-cog.svg +3 -0
  135. package/icons/heroicons/c-command-line.svg +3 -0
  136. package/icons/heroicons/c-computer-desktop.svg +3 -0
  137. package/icons/heroicons/c-cpu-chip.svg +4 -0
  138. package/icons/heroicons/c-credit-card.svg +4 -0
  139. package/icons/heroicons/c-cube-transparent.svg +3 -0
  140. package/icons/heroicons/c-cube.svg +3 -0
  141. package/icons/heroicons/c-currency-bangladeshi.svg +3 -0
  142. package/icons/heroicons/c-currency-dollar.svg +4 -0
  143. package/icons/heroicons/c-currency-euro.svg +3 -0
  144. package/icons/heroicons/c-currency-pound.svg +3 -0
  145. package/icons/heroicons/c-currency-rupee.svg +3 -0
  146. package/icons/heroicons/c-currency-yen.svg +3 -0
  147. package/icons/heroicons/c-cursor-arrow-rays.svg +3 -0
  148. package/icons/heroicons/c-cursor-arrow-ripple.svg +5 -0
  149. package/icons/heroicons/c-device-phone-mobile.svg +4 -0
  150. package/icons/heroicons/c-device-tablet.svg +4 -0
  151. package/icons/heroicons/c-divide.svg +4 -0
  152. package/icons/heroicons/c-document-arrow-down.svg +3 -0
  153. package/icons/heroicons/c-document-arrow-up.svg +3 -0
  154. package/icons/heroicons/c-document-chart-bar.svg +3 -0
  155. package/icons/heroicons/c-document-check.svg +3 -0
  156. package/icons/heroicons/c-document-currency-bangladeshi.svg +3 -0
  157. package/icons/heroicons/c-document-currency-dollar.svg +4 -0
  158. package/icons/heroicons/c-document-currency-euro.svg +3 -0
  159. package/icons/heroicons/c-document-currency-pound.svg +3 -0
  160. package/icons/heroicons/c-document-currency-rupee.svg +3 -0
  161. package/icons/heroicons/c-document-currency-yen.svg +3 -0
  162. package/icons/heroicons/c-document-duplicate.svg +4 -0
  163. package/icons/heroicons/c-document-magnifying-glass.svg +4 -0
  164. package/icons/heroicons/c-document-minus.svg +3 -0
  165. package/icons/heroicons/c-document-plus.svg +3 -0
  166. package/icons/heroicons/c-document-text.svg +3 -0
  167. package/icons/heroicons/c-document.svg +3 -0
  168. package/icons/heroicons/c-ellipsis-horizontal-circle.svg +3 -0
  169. package/icons/heroicons/c-ellipsis-horizontal.svg +3 -0
  170. package/icons/heroicons/c-ellipsis-vertical.svg +3 -0
  171. package/icons/heroicons/c-envelope-open.svg +3 -0
  172. package/icons/heroicons/c-envelope.svg +4 -0
  173. package/icons/heroicons/c-equals.svg +3 -0
  174. package/icons/heroicons/c-exclamation-circle.svg +3 -0
  175. package/icons/heroicons/c-exclamation-triangle.svg +3 -0
  176. package/icons/heroicons/c-eye-dropper.svg +3 -0
  177. package/icons/heroicons/c-eye-slash.svg +4 -0
  178. package/icons/heroicons/c-eye.svg +4 -0
  179. package/icons/heroicons/c-face-frown.svg +3 -0
  180. package/icons/heroicons/c-face-smile.svg +3 -0
  181. package/icons/heroicons/c-film.svg +3 -0
  182. package/icons/heroicons/c-finger-print.svg +3 -0
  183. package/icons/heroicons/c-fire.svg +3 -0
  184. package/icons/heroicons/c-flag.svg +3 -0
  185. package/icons/heroicons/c-folder-arrow-down.svg +3 -0
  186. package/icons/heroicons/c-folder-minus.svg +3 -0
  187. package/icons/heroicons/c-folder-open.svg +3 -0
  188. package/icons/heroicons/c-folder-plus.svg +3 -0
  189. package/icons/heroicons/c-folder.svg +3 -0
  190. package/icons/heroicons/c-forward.svg +3 -0
  191. package/icons/heroicons/c-funnel.svg +3 -0
  192. package/icons/heroicons/c-gif.svg +3 -0
  193. package/icons/heroicons/c-gift-top.svg +4 -0
  194. package/icons/heroicons/c-gift.svg +4 -0
  195. package/icons/heroicons/c-globe-alt.svg +3 -0
  196. package/icons/heroicons/c-globe-americas.svg +3 -0
  197. package/icons/heroicons/c-globe-asia-australia.svg +3 -0
  198. package/icons/heroicons/c-globe-europe-africa.svg +3 -0
  199. package/icons/heroicons/c-h1.svg +3 -0
  200. package/icons/heroicons/c-h2.svg +3 -0
  201. package/icons/heroicons/c-h3.svg +3 -0
  202. package/icons/heroicons/c-hand-raised.svg +3 -0
  203. package/icons/heroicons/c-hand-thumb-down.svg +3 -0
  204. package/icons/heroicons/c-hand-thumb-up.svg +3 -0
  205. package/icons/heroicons/c-hashtag.svg +3 -0
  206. package/icons/heroicons/c-heart.svg +3 -0
  207. package/icons/heroicons/c-home-modern.svg +3 -0
  208. package/icons/heroicons/c-home.svg +3 -0
  209. package/icons/heroicons/c-identification.svg +3 -0
  210. package/icons/heroicons/c-inbox-arrow-down.svg +4 -0
  211. package/icons/heroicons/c-inbox-stack.svg +4 -0
  212. package/icons/heroicons/c-inbox.svg +3 -0
  213. package/icons/heroicons/c-information-circle.svg +3 -0
  214. package/icons/heroicons/c-italic.svg +3 -0
  215. package/icons/heroicons/c-key.svg +3 -0
  216. package/icons/heroicons/c-language.svg +3 -0
  217. package/icons/heroicons/c-lifebuoy.svg +3 -0
  218. package/icons/heroicons/c-light-bulb.svg +3 -0
  219. package/icons/heroicons/c-link-slash.svg +3 -0
  220. package/icons/heroicons/c-link.svg +4 -0
  221. package/icons/heroicons/c-list-bullet.svg +3 -0
  222. package/icons/heroicons/c-lock-closed.svg +3 -0
  223. package/icons/heroicons/c-lock-open.svg +3 -0
  224. package/icons/heroicons/c-magnifying-glass-circle.svg +4 -0
  225. package/icons/heroicons/c-magnifying-glass-minus.svg +4 -0
  226. package/icons/heroicons/c-magnifying-glass-plus.svg +4 -0
  227. package/icons/heroicons/c-magnifying-glass.svg +3 -0
  228. package/icons/heroicons/c-map-pin.svg +3 -0
  229. package/icons/heroicons/c-map.svg +3 -0
  230. package/icons/heroicons/c-megaphone.svg +3 -0
  231. package/icons/heroicons/c-microphone.svg +4 -0
  232. package/icons/heroicons/c-minus-circle.svg +3 -0
  233. package/icons/heroicons/c-minus.svg +3 -0
  234. package/icons/heroicons/c-moon.svg +3 -0
  235. package/icons/heroicons/c-musical-note.svg +3 -0
  236. package/icons/heroicons/c-newspaper.svg +4 -0
  237. package/icons/heroicons/c-no-symbol.svg +3 -0
  238. package/icons/heroicons/c-numbered-list.svg +3 -0
  239. package/icons/heroicons/c-paint-brush.svg +3 -0
  240. package/icons/heroicons/c-paper-airplane.svg +3 -0
  241. package/icons/heroicons/c-paper-clip.svg +3 -0
  242. package/icons/heroicons/c-pause-circle.svg +3 -0
  243. package/icons/heroicons/c-pause.svg +3 -0
  244. package/icons/heroicons/c-pencil-square.svg +4 -0
  245. package/icons/heroicons/c-pencil.svg +3 -0
  246. package/icons/heroicons/c-percent-badge.svg +3 -0
  247. package/icons/heroicons/c-phone-arrow-down-left.svg +4 -0
  248. package/icons/heroicons/c-phone-arrow-up-right.svg +4 -0
  249. package/icons/heroicons/c-phone-x-mark.svg +4 -0
  250. package/icons/heroicons/c-phone.svg +3 -0
  251. package/icons/heroicons/c-photo.svg +3 -0
  252. package/icons/heroicons/c-play-circle.svg +3 -0
  253. package/icons/heroicons/c-play-pause.svg +3 -0
  254. package/icons/heroicons/c-play.svg +3 -0
  255. package/icons/heroicons/c-plus-circle.svg +3 -0
  256. package/icons/heroicons/c-plus.svg +3 -0
  257. package/icons/heroicons/c-power.svg +3 -0
  258. package/icons/heroicons/c-presentation-chart-bar.svg +3 -0
  259. package/icons/heroicons/c-presentation-chart-line.svg +3 -0
  260. package/icons/heroicons/c-printer.svg +3 -0
  261. package/icons/heroicons/c-puzzle-piece.svg +3 -0
  262. package/icons/heroicons/c-qr-code.svg +9 -0
  263. package/icons/heroicons/c-question-mark-circle.svg +3 -0
  264. package/icons/heroicons/c-queue-list.svg +3 -0
  265. package/icons/heroicons/c-radio.svg +3 -0
  266. package/icons/heroicons/c-receipt-percent.svg +3 -0
  267. package/icons/heroicons/c-receipt-refund.svg +3 -0
  268. package/icons/heroicons/c-rectangle-group.svg +3 -0
  269. package/icons/heroicons/c-rectangle-stack.svg +3 -0
  270. package/icons/heroicons/c-rocket-launch.svg +4 -0
  271. package/icons/heroicons/c-rss.svg +3 -0
  272. package/icons/heroicons/c-scale.svg +3 -0
  273. package/icons/heroicons/c-scissors.svg +4 -0
  274. package/icons/heroicons/c-server-stack.svg +4 -0
  275. package/icons/heroicons/c-server.svg +4 -0
  276. package/icons/heroicons/c-share.svg +3 -0
  277. package/icons/heroicons/c-shield-check.svg +3 -0
  278. package/icons/heroicons/c-shield-exclamation.svg +3 -0
  279. package/icons/heroicons/c-shopping-bag.svg +3 -0
  280. package/icons/heroicons/c-shopping-cart.svg +3 -0
  281. package/icons/heroicons/c-signal-slash.svg +3 -0
  282. package/icons/heroicons/c-signal.svg +5 -0
  283. package/icons/heroicons/c-slash.svg +3 -0
  284. package/icons/heroicons/c-sparkles.svg +3 -0
  285. package/icons/heroicons/c-speaker-wave.svg +4 -0
  286. package/icons/heroicons/c-speaker-x-mark.svg +3 -0
  287. package/icons/heroicons/c-square-2-stack.svg +4 -0
  288. package/icons/heroicons/c-square-3-stack-3d.svg +5 -0
  289. package/icons/heroicons/c-squares-2x2.svg +3 -0
  290. package/icons/heroicons/c-squares-plus.svg +3 -0
  291. package/icons/heroicons/c-star.svg +3 -0
  292. package/icons/heroicons/c-stop-circle.svg +3 -0
  293. package/icons/heroicons/c-stop.svg +3 -0
  294. package/icons/heroicons/c-strikethrough.svg +3 -0
  295. package/icons/heroicons/c-sun.svg +3 -0
  296. package/icons/heroicons/c-swatch.svg +4 -0
  297. package/icons/heroicons/c-table-cells.svg +3 -0
  298. package/icons/heroicons/c-tag.svg +3 -0
  299. package/icons/heroicons/c-ticket.svg +3 -0
  300. package/icons/heroicons/c-trash.svg +3 -0
  301. package/icons/heroicons/c-trophy.svg +3 -0
  302. package/icons/heroicons/c-truck.svg +5 -0
  303. package/icons/heroicons/c-tv.svg +4 -0
  304. package/icons/heroicons/c-underline.svg +3 -0
  305. package/icons/heroicons/c-user-circle.svg +3 -0
  306. package/icons/heroicons/c-user-group.svg +3 -0
  307. package/icons/heroicons/c-user-minus.svg +3 -0
  308. package/icons/heroicons/c-user-plus.svg +3 -0
  309. package/icons/heroicons/c-user.svg +3 -0
  310. package/icons/heroicons/c-users.svg +3 -0
  311. package/icons/heroicons/c-variable.svg +3 -0
  312. package/icons/heroicons/c-video-camera-slash.svg +3 -0
  313. package/icons/heroicons/c-video-camera.svg +3 -0
  314. package/icons/heroicons/c-view-columns.svg +3 -0
  315. package/icons/heroicons/c-viewfinder-circle.svg +3 -0
  316. package/icons/heroicons/c-wallet.svg +3 -0
  317. package/icons/heroicons/c-wifi.svg +3 -0
  318. package/icons/heroicons/c-window.svg +3 -0
  319. package/icons/heroicons/c-wrench-screwdriver.svg +4 -0
  320. package/icons/heroicons/c-wrench.svg +3 -0
  321. package/icons/heroicons/c-x-circle.svg +3 -0
  322. package/icons/heroicons/c-x-mark.svg +3 -0
  323. package/icons/heroicons/m-academic-cap.svg +3 -0
  324. package/icons/heroicons/m-adjustments-horizontal.svg +3 -0
  325. package/icons/heroicons/m-adjustments-vertical.svg +3 -0
  326. package/icons/heroicons/m-archive-box-arrow-down.svg +3 -0
  327. package/icons/heroicons/m-archive-box-x-mark.svg +4 -0
  328. package/icons/heroicons/m-archive-box.svg +4 -0
  329. package/icons/heroicons/m-arrow-down-circle.svg +3 -0
  330. package/icons/heroicons/m-arrow-down-left.svg +3 -0
  331. package/icons/heroicons/m-arrow-down-on-square-stack.svg +3 -0
  332. package/icons/heroicons/m-arrow-down-on-square.svg +3 -0
  333. package/icons/heroicons/m-arrow-down-right.svg +3 -0
  334. package/icons/heroicons/m-arrow-down-tray.svg +4 -0
  335. package/icons/heroicons/m-arrow-down.svg +3 -0
  336. package/icons/heroicons/m-arrow-left-circle.svg +3 -0
  337. package/icons/heroicons/m-arrow-left-end-on-rectangle.svg +4 -0
  338. package/icons/heroicons/m-arrow-left-on-rectangle.svg +4 -0
  339. package/icons/heroicons/m-arrow-left-start-on-rectangle.svg +4 -0
  340. package/icons/heroicons/m-arrow-left.svg +3 -0
  341. package/icons/heroicons/m-arrow-long-down.svg +3 -0
  342. package/icons/heroicons/m-arrow-long-left.svg +3 -0
  343. package/icons/heroicons/m-arrow-long-right.svg +3 -0
  344. package/icons/heroicons/m-arrow-long-up.svg +3 -0
  345. package/icons/heroicons/m-arrow-path-rounded-square.svg +3 -0
  346. package/icons/heroicons/m-arrow-path.svg +3 -0
  347. package/icons/heroicons/m-arrow-right-circle.svg +3 -0
  348. package/icons/heroicons/m-arrow-right-end-on-rectangle.svg +4 -0
  349. package/icons/heroicons/m-arrow-right-on-rectangle.svg +4 -0
  350. package/icons/heroicons/m-arrow-right-start-on-rectangle.svg +4 -0
  351. package/icons/heroicons/m-arrow-right.svg +3 -0
  352. package/icons/heroicons/m-arrow-small-down.svg +3 -0
  353. package/icons/heroicons/m-arrow-small-left.svg +3 -0
  354. package/icons/heroicons/m-arrow-small-right.svg +3 -0
  355. package/icons/heroicons/m-arrow-small-up.svg +3 -0
  356. package/icons/heroicons/m-arrow-top-right-on-square.svg +4 -0
  357. package/icons/heroicons/m-arrow-trending-down.svg +3 -0
  358. package/icons/heroicons/m-arrow-trending-up.svg +3 -0
  359. package/icons/heroicons/m-arrow-turn-down-left.svg +3 -0
  360. package/icons/heroicons/m-arrow-turn-down-right.svg +3 -0
  361. package/icons/heroicons/m-arrow-turn-left-down.svg +3 -0
  362. package/icons/heroicons/m-arrow-turn-left-up.svg +3 -0
  363. package/icons/heroicons/m-arrow-turn-right-down.svg +3 -0
  364. package/icons/heroicons/m-arrow-turn-right-up.svg +3 -0
  365. package/icons/heroicons/m-arrow-turn-up-left.svg +3 -0
  366. package/icons/heroicons/m-arrow-turn-up-right.svg +3 -0
  367. package/icons/heroicons/m-arrow-up-circle.svg +3 -0
  368. package/icons/heroicons/m-arrow-up-left.svg +3 -0
  369. package/icons/heroicons/m-arrow-up-on-square-stack.svg +3 -0
  370. package/icons/heroicons/m-arrow-up-on-square.svg +3 -0
  371. package/icons/heroicons/m-arrow-up-right.svg +3 -0
  372. package/icons/heroicons/m-arrow-up-tray.svg +4 -0
  373. package/icons/heroicons/m-arrow-up.svg +3 -0
  374. package/icons/heroicons/m-arrow-uturn-down.svg +3 -0
  375. package/icons/heroicons/m-arrow-uturn-left.svg +3 -0
  376. package/icons/heroicons/m-arrow-uturn-right.svg +3 -0
  377. package/icons/heroicons/m-arrow-uturn-up.svg +3 -0
  378. package/icons/heroicons/m-arrows-pointing-in.svg +3 -0
  379. package/icons/heroicons/m-arrows-pointing-out.svg +3 -0
  380. package/icons/heroicons/m-arrows-right-left.svg +3 -0
  381. package/icons/heroicons/m-arrows-up-down.svg +3 -0
  382. package/icons/heroicons/m-at-symbol.svg +3 -0
  383. package/icons/heroicons/m-backspace.svg +3 -0
  384. package/icons/heroicons/m-backward.svg +3 -0
  385. package/icons/heroicons/m-banknotes.svg +3 -0
  386. package/icons/heroicons/m-bars-2.svg +3 -0
  387. package/icons/heroicons/m-bars-3-bottom-left.svg +3 -0
  388. package/icons/heroicons/m-bars-3-bottom-right.svg +3 -0
  389. package/icons/heroicons/m-bars-3-center-left.svg +3 -0
  390. package/icons/heroicons/m-bars-3.svg +3 -0
  391. package/icons/heroicons/m-bars-4.svg +3 -0
  392. package/icons/heroicons/m-bars-arrow-down.svg +3 -0
  393. package/icons/heroicons/m-bars-arrow-up.svg +3 -0
  394. package/icons/heroicons/m-battery-0.svg +3 -0
  395. package/icons/heroicons/m-battery-100.svg +4 -0
  396. package/icons/heroicons/m-battery-50.svg +4 -0
  397. package/icons/heroicons/m-beaker.svg +3 -0
  398. package/icons/heroicons/m-bell-alert.svg +4 -0
  399. package/icons/heroicons/m-bell-slash.svg +3 -0
  400. package/icons/heroicons/m-bell-snooze.svg +3 -0
  401. package/icons/heroicons/m-bell.svg +3 -0
  402. package/icons/heroicons/m-bold.svg +3 -0
  403. package/icons/heroicons/m-bolt-slash.svg +4 -0
  404. package/icons/heroicons/m-bolt.svg +3 -0
  405. package/icons/heroicons/m-book-open.svg +3 -0
  406. package/icons/heroicons/m-bookmark-slash.svg +3 -0
  407. package/icons/heroicons/m-bookmark-square.svg +3 -0
  408. package/icons/heroicons/m-bookmark.svg +3 -0
  409. package/icons/heroicons/m-briefcase.svg +4 -0
  410. package/icons/heroicons/m-bug-ant.svg +3 -0
  411. package/icons/heroicons/m-building-library.svg +3 -0
  412. package/icons/heroicons/m-building-office-2.svg +3 -0
  413. package/icons/heroicons/m-building-office.svg +3 -0
  414. package/icons/heroicons/m-building-storefront.svg +3 -0
  415. package/icons/heroicons/m-cake.svg +3 -0
  416. package/icons/heroicons/m-calculator.svg +3 -0
  417. package/icons/heroicons/m-calendar-date-range.svg +4 -0
  418. package/icons/heroicons/m-calendar-days.svg +4 -0
  419. package/icons/heroicons/m-calendar.svg +3 -0
  420. package/icons/heroicons/m-camera.svg +3 -0
  421. package/icons/heroicons/m-chart-bar-square.svg +3 -0
  422. package/icons/heroicons/m-chart-bar.svg +3 -0
  423. package/icons/heroicons/m-chart-pie.svg +4 -0
  424. package/icons/heroicons/m-chat-bubble-bottom-center-text.svg +3 -0
  425. package/icons/heroicons/m-chat-bubble-bottom-center.svg +3 -0
  426. package/icons/heroicons/m-chat-bubble-left-ellipsis.svg +3 -0
  427. package/icons/heroicons/m-chat-bubble-left-right.svg +4 -0
  428. package/icons/heroicons/m-chat-bubble-left.svg +3 -0
  429. package/icons/heroicons/m-chat-bubble-oval-left-ellipsis.svg +3 -0
  430. package/icons/heroicons/m-chat-bubble-oval-left.svg +3 -0
  431. package/icons/heroicons/m-check-badge.svg +3 -0
  432. package/icons/heroicons/m-check-circle.svg +3 -0
  433. package/icons/heroicons/m-check.svg +3 -0
  434. package/icons/heroicons/m-chevron-double-down.svg +3 -0
  435. package/icons/heroicons/m-chevron-double-left.svg +3 -0
  436. package/icons/heroicons/m-chevron-double-right.svg +3 -0
  437. package/icons/heroicons/m-chevron-double-up.svg +3 -0
  438. package/icons/heroicons/m-chevron-down.svg +3 -0
  439. package/icons/heroicons/m-chevron-left.svg +3 -0
  440. package/icons/heroicons/m-chevron-right.svg +3 -0
  441. package/icons/heroicons/m-chevron-up-down.svg +3 -0
  442. package/icons/heroicons/m-chevron-up.svg +3 -0
  443. package/icons/heroicons/m-circle-stack.svg +3 -0
  444. package/icons/heroicons/m-clipboard-document-check.svg +4 -0
  445. package/icons/heroicons/m-clipboard-document-list.svg +4 -0
  446. package/icons/heroicons/m-clipboard-document.svg +4 -0
  447. package/icons/heroicons/m-clipboard.svg +3 -0
  448. package/icons/heroicons/m-clock.svg +3 -0
  449. package/icons/heroicons/m-cloud-arrow-down.svg +3 -0
  450. package/icons/heroicons/m-cloud-arrow-up.svg +3 -0
  451. package/icons/heroicons/m-cloud.svg +3 -0
  452. package/icons/heroicons/m-code-bracket-square.svg +3 -0
  453. package/icons/heroicons/m-code-bracket.svg +3 -0
  454. package/icons/heroicons/m-cog-6-tooth.svg +3 -0
  455. package/icons/heroicons/m-cog-8-tooth.svg +3 -0
  456. package/icons/heroicons/m-cog.svg +4 -0
  457. package/icons/heroicons/m-command-line.svg +3 -0
  458. package/icons/heroicons/m-computer-desktop.svg +3 -0
  459. package/icons/heroicons/m-cpu-chip.svg +4 -0
  460. package/icons/heroicons/m-credit-card.svg +3 -0
  461. package/icons/heroicons/m-cube-transparent.svg +3 -0
  462. package/icons/heroicons/m-cube.svg +3 -0
  463. package/icons/heroicons/m-currency-bangladeshi.svg +3 -0
  464. package/icons/heroicons/m-currency-dollar.svg +4 -0
  465. package/icons/heroicons/m-currency-euro.svg +3 -0
  466. package/icons/heroicons/m-currency-pound.svg +3 -0
  467. package/icons/heroicons/m-currency-rupee.svg +3 -0
  468. package/icons/heroicons/m-currency-yen.svg +3 -0
  469. package/icons/heroicons/m-cursor-arrow-rays.svg +3 -0
  470. package/icons/heroicons/m-cursor-arrow-ripple.svg +5 -0
  471. package/icons/heroicons/m-device-phone-mobile.svg +4 -0
  472. package/icons/heroicons/m-device-tablet.svg +3 -0
  473. package/icons/heroicons/m-divide.svg +3 -0
  474. package/icons/heroicons/m-document-arrow-down.svg +3 -0
  475. package/icons/heroicons/m-document-arrow-up.svg +3 -0
  476. package/icons/heroicons/m-document-chart-bar.svg +3 -0
  477. package/icons/heroicons/m-document-check.svg +3 -0
  478. package/icons/heroicons/m-document-currency-bangladeshi.svg +3 -0
  479. package/icons/heroicons/m-document-currency-dollar.svg +3 -0
  480. package/icons/heroicons/m-document-currency-euro.svg +3 -0
  481. package/icons/heroicons/m-document-currency-pound.svg +3 -0
  482. package/icons/heroicons/m-document-currency-rupee.svg +3 -0
  483. package/icons/heroicons/m-document-currency-yen.svg +3 -0
  484. package/icons/heroicons/m-document-duplicate.svg +4 -0
  485. package/icons/heroicons/m-document-magnifying-glass.svg +4 -0
  486. package/icons/heroicons/m-document-minus.svg +3 -0
  487. package/icons/heroicons/m-document-plus.svg +3 -0
  488. package/icons/heroicons/m-document-text.svg +3 -0
  489. package/icons/heroicons/m-document.svg +3 -0
  490. package/icons/heroicons/m-ellipsis-horizontal-circle.svg +3 -0
  491. package/icons/heroicons/m-ellipsis-horizontal.svg +3 -0
  492. package/icons/heroicons/m-ellipsis-vertical.svg +3 -0
  493. package/icons/heroicons/m-envelope-open.svg +3 -0
  494. package/icons/heroicons/m-envelope.svg +4 -0
  495. package/icons/heroicons/m-equals.svg +3 -0
  496. package/icons/heroicons/m-exclamation-circle.svg +3 -0
  497. package/icons/heroicons/m-exclamation-triangle.svg +3 -0
  498. package/icons/heroicons/m-eye-dropper.svg +3 -0
  499. package/icons/heroicons/m-eye-slash.svg +4 -0
  500. package/icons/heroicons/m-eye.svg +4 -0
  501. package/icons/heroicons/m-face-frown.svg +3 -0
  502. package/icons/heroicons/m-face-smile.svg +3 -0
  503. package/icons/heroicons/m-film.svg +3 -0
  504. package/icons/heroicons/m-finger-print.svg +3 -0
  505. package/icons/heroicons/m-fire.svg +3 -0
  506. package/icons/heroicons/m-flag.svg +3 -0
  507. package/icons/heroicons/m-folder-arrow-down.svg +3 -0
  508. package/icons/heroicons/m-folder-minus.svg +3 -0
  509. package/icons/heroicons/m-folder-open.svg +3 -0
  510. package/icons/heroicons/m-folder-plus.svg +3 -0
  511. package/icons/heroicons/m-folder.svg +3 -0
  512. package/icons/heroicons/m-forward.svg +3 -0
  513. package/icons/heroicons/m-funnel.svg +3 -0
  514. package/icons/heroicons/m-gif.svg +3 -0
  515. package/icons/heroicons/m-gift-top.svg +3 -0
  516. package/icons/heroicons/m-gift.svg +4 -0
  517. package/icons/heroicons/m-globe-alt.svg +3 -0
  518. package/icons/heroicons/m-globe-americas.svg +3 -0
  519. package/icons/heroicons/m-globe-asia-australia.svg +3 -0
  520. package/icons/heroicons/m-globe-europe-africa.svg +3 -0
  521. package/icons/heroicons/m-h1.svg +3 -0
  522. package/icons/heroicons/m-h2.svg +3 -0
  523. package/icons/heroicons/m-h3.svg +3 -0
  524. package/icons/heroicons/m-hand-raised.svg +3 -0
  525. package/icons/heroicons/m-hand-thumb-down.svg +3 -0
  526. package/icons/heroicons/m-hand-thumb-up.svg +3 -0
  527. package/icons/heroicons/m-hashtag.svg +3 -0
  528. package/icons/heroicons/m-heart.svg +3 -0
  529. package/icons/heroicons/m-home-modern.svg +3 -0
  530. package/icons/heroicons/m-home.svg +3 -0
  531. package/icons/heroicons/m-identification.svg +3 -0
  532. package/icons/heroicons/m-inbox-arrow-down.svg +4 -0
  533. package/icons/heroicons/m-inbox-stack.svg +4 -0
  534. package/icons/heroicons/m-inbox.svg +3 -0
  535. package/icons/heroicons/m-information-circle.svg +3 -0
  536. package/icons/heroicons/m-italic.svg +3 -0
  537. package/icons/heroicons/m-key.svg +3 -0
  538. package/icons/heroicons/m-language.svg +4 -0
  539. package/icons/heroicons/m-lifebuoy.svg +3 -0
  540. package/icons/heroicons/m-light-bulb.svg +3 -0
  541. package/icons/heroicons/m-link-slash.svg +3 -0
  542. package/icons/heroicons/m-link.svg +4 -0
  543. package/icons/heroicons/m-list-bullet.svg +3 -0
  544. package/icons/heroicons/m-lock-closed.svg +3 -0
  545. package/icons/heroicons/m-lock-open.svg +3 -0
  546. package/icons/heroicons/m-magnifying-glass-circle.svg +4 -0
  547. package/icons/heroicons/m-magnifying-glass-minus.svg +4 -0
  548. package/icons/heroicons/m-magnifying-glass-plus.svg +4 -0
  549. package/icons/heroicons/m-magnifying-glass.svg +3 -0
  550. package/icons/heroicons/m-map-pin.svg +3 -0
  551. package/icons/heroicons/m-map.svg +3 -0
  552. package/icons/heroicons/m-megaphone.svg +3 -0
  553. package/icons/heroicons/m-microphone.svg +4 -0
  554. package/icons/heroicons/m-minus-circle.svg +3 -0
  555. package/icons/heroicons/m-minus-small.svg +3 -0
  556. package/icons/heroicons/m-minus.svg +3 -0
  557. package/icons/heroicons/m-moon.svg +3 -0
  558. package/icons/heroicons/m-musical-note.svg +3 -0
  559. package/icons/heroicons/m-newspaper.svg +4 -0
  560. package/icons/heroicons/m-no-symbol.svg +3 -0
  561. package/icons/heroicons/m-numbered-list.svg +3 -0
  562. package/icons/heroicons/m-paint-brush.svg +3 -0
  563. package/icons/heroicons/m-paper-airplane.svg +3 -0
  564. package/icons/heroicons/m-paper-clip.svg +3 -0
  565. package/icons/heroicons/m-pause-circle.svg +3 -0
  566. package/icons/heroicons/m-pause.svg +3 -0
  567. package/icons/heroicons/m-pencil-square.svg +4 -0
  568. package/icons/heroicons/m-pencil.svg +3 -0
  569. package/icons/heroicons/m-percent-badge.svg +3 -0
  570. package/icons/heroicons/m-phone-arrow-down-left.svg +3 -0
  571. package/icons/heroicons/m-phone-arrow-up-right.svg +3 -0
  572. package/icons/heroicons/m-phone-x-mark.svg +3 -0
  573. package/icons/heroicons/m-phone.svg +3 -0
  574. package/icons/heroicons/m-photo.svg +3 -0
  575. package/icons/heroicons/m-play-circle.svg +3 -0
  576. package/icons/heroicons/m-play-pause.svg +3 -0
  577. package/icons/heroicons/m-play.svg +3 -0
  578. package/icons/heroicons/m-plus-circle.svg +3 -0
  579. package/icons/heroicons/m-plus-small.svg +3 -0
  580. package/icons/heroicons/m-plus.svg +3 -0
  581. package/icons/heroicons/m-power.svg +3 -0
  582. package/icons/heroicons/m-presentation-chart-bar.svg +3 -0
  583. package/icons/heroicons/m-presentation-chart-line.svg +3 -0
  584. package/icons/heroicons/m-printer.svg +3 -0
  585. package/icons/heroicons/m-puzzle-piece.svg +3 -0
  586. package/icons/heroicons/m-qr-code.svg +3 -0
  587. package/icons/heroicons/m-question-mark-circle.svg +3 -0
  588. package/icons/heroicons/m-queue-list.svg +3 -0
  589. package/icons/heroicons/m-radio.svg +3 -0
  590. package/icons/heroicons/m-receipt-percent.svg +3 -0
  591. package/icons/heroicons/m-receipt-refund.svg +3 -0
  592. package/icons/heroicons/m-rectangle-group.svg +3 -0
  593. package/icons/heroicons/m-rectangle-stack.svg +3 -0
  594. package/icons/heroicons/m-rocket-launch.svg +4 -0
  595. package/icons/heroicons/m-rss.svg +4 -0
  596. package/icons/heroicons/m-scale.svg +3 -0
  597. package/icons/heroicons/m-scissors.svg +4 -0
  598. package/icons/heroicons/m-server-stack.svg +4 -0
  599. package/icons/heroicons/m-server.svg +4 -0
  600. package/icons/heroicons/m-share.svg +3 -0
  601. package/icons/heroicons/m-shield-check.svg +3 -0
  602. package/icons/heroicons/m-shield-exclamation.svg +3 -0
  603. package/icons/heroicons/m-shopping-bag.svg +3 -0
  604. package/icons/heroicons/m-shopping-cart.svg +3 -0
  605. package/icons/heroicons/m-signal-slash.svg +3 -0
  606. package/icons/heroicons/m-signal.svg +4 -0
  607. package/icons/heroicons/m-slash.svg +3 -0
  608. package/icons/heroicons/m-sparkles.svg +3 -0
  609. package/icons/heroicons/m-speaker-wave.svg +4 -0
  610. package/icons/heroicons/m-speaker-x-mark.svg +3 -0
  611. package/icons/heroicons/m-square-2-stack.svg +4 -0
  612. package/icons/heroicons/m-square-3-stack-3d.svg +5 -0
  613. package/icons/heroicons/m-squares-2x2.svg +3 -0
  614. package/icons/heroicons/m-squares-plus.svg +3 -0
  615. package/icons/heroicons/m-star.svg +3 -0
  616. package/icons/heroicons/m-stop-circle.svg +3 -0
  617. package/icons/heroicons/m-stop.svg +3 -0
  618. package/icons/heroicons/m-strikethrough.svg +3 -0
  619. package/icons/heroicons/m-sun.svg +3 -0
  620. package/icons/heroicons/m-swatch.svg +3 -0
  621. package/icons/heroicons/m-table-cells.svg +3 -0
  622. package/icons/heroicons/m-tag.svg +3 -0
  623. package/icons/heroicons/m-ticket.svg +3 -0
  624. package/icons/heroicons/m-trash.svg +3 -0
  625. package/icons/heroicons/m-trophy.svg +3 -0
  626. package/icons/heroicons/m-truck.svg +4 -0
  627. package/icons/heroicons/m-tv.svg +4 -0
  628. package/icons/heroicons/m-underline.svg +3 -0
  629. package/icons/heroicons/m-user-circle.svg +3 -0
  630. package/icons/heroicons/m-user-group.svg +3 -0
  631. package/icons/heroicons/m-user-minus.svg +3 -0
  632. package/icons/heroicons/m-user-plus.svg +3 -0
  633. package/icons/heroicons/m-user.svg +3 -0
  634. package/icons/heroicons/m-users.svg +3 -0
  635. package/icons/heroicons/m-variable.svg +3 -0
  636. package/icons/heroicons/m-video-camera-slash.svg +3 -0
  637. package/icons/heroicons/m-video-camera.svg +3 -0
  638. package/icons/heroicons/m-view-columns.svg +3 -0
  639. package/icons/heroicons/m-viewfinder-circle.svg +3 -0
  640. package/icons/heroicons/m-wallet.svg +3 -0
  641. package/icons/heroicons/m-wifi.svg +3 -0
  642. package/icons/heroicons/m-window.svg +3 -0
  643. package/icons/heroicons/m-wrench-screwdriver.svg +4 -0
  644. package/icons/heroicons/m-wrench.svg +3 -0
  645. package/icons/heroicons/m-x-circle.svg +3 -0
  646. package/icons/heroicons/m-x-mark.svg +3 -0
  647. package/icons/heroicons/o-academic-cap.svg +3 -0
  648. package/icons/heroicons/o-adjustments-horizontal.svg +3 -0
  649. package/icons/heroicons/o-adjustments-vertical.svg +3 -0
  650. package/icons/heroicons/o-archive-box-arrow-down.svg +3 -0
  651. package/icons/heroicons/o-archive-box-x-mark.svg +3 -0
  652. package/icons/heroicons/o-archive-box.svg +3 -0
  653. package/icons/heroicons/o-arrow-down-circle.svg +3 -0
  654. package/icons/heroicons/o-arrow-down-left.svg +3 -0
  655. package/icons/heroicons/o-arrow-down-on-square-stack.svg +3 -0
  656. package/icons/heroicons/o-arrow-down-on-square.svg +3 -0
  657. package/icons/heroicons/o-arrow-down-right.svg +3 -0
  658. package/icons/heroicons/o-arrow-down-tray.svg +3 -0
  659. package/icons/heroicons/o-arrow-down.svg +3 -0
  660. package/icons/heroicons/o-arrow-left-circle.svg +3 -0
  661. package/icons/heroicons/o-arrow-left-end-on-rectangle.svg +3 -0
  662. package/icons/heroicons/o-arrow-left-on-rectangle.svg +3 -0
  663. package/icons/heroicons/o-arrow-left-start-on-rectangle.svg +3 -0
  664. package/icons/heroicons/o-arrow-left.svg +3 -0
  665. package/icons/heroicons/o-arrow-long-down.svg +3 -0
  666. package/icons/heroicons/o-arrow-long-left.svg +3 -0
  667. package/icons/heroicons/o-arrow-long-right.svg +3 -0
  668. package/icons/heroicons/o-arrow-long-up.svg +3 -0
  669. package/icons/heroicons/o-arrow-path-rounded-square.svg +3 -0
  670. package/icons/heroicons/o-arrow-path.svg +3 -0
  671. package/icons/heroicons/o-arrow-right-circle.svg +3 -0
  672. package/icons/heroicons/o-arrow-right-end-on-rectangle.svg +3 -0
  673. package/icons/heroicons/o-arrow-right-on-rectangle.svg +3 -0
  674. package/icons/heroicons/o-arrow-right-start-on-rectangle.svg +3 -0
  675. package/icons/heroicons/o-arrow-right.svg +3 -0
  676. package/icons/heroicons/o-arrow-small-down.svg +3 -0
  677. package/icons/heroicons/o-arrow-small-left.svg +3 -0
  678. package/icons/heroicons/o-arrow-small-right.svg +3 -0
  679. package/icons/heroicons/o-arrow-small-up.svg +3 -0
  680. package/icons/heroicons/o-arrow-top-right-on-square.svg +3 -0
  681. package/icons/heroicons/o-arrow-trending-down.svg +3 -0
  682. package/icons/heroicons/o-arrow-trending-up.svg +3 -0
  683. package/icons/heroicons/o-arrow-turn-down-left.svg +3 -0
  684. package/icons/heroicons/o-arrow-turn-down-right.svg +3 -0
  685. package/icons/heroicons/o-arrow-turn-left-down.svg +3 -0
  686. package/icons/heroicons/o-arrow-turn-left-up.svg +3 -0
  687. package/icons/heroicons/o-arrow-turn-right-down.svg +3 -0
  688. package/icons/heroicons/o-arrow-turn-right-up.svg +3 -0
  689. package/icons/heroicons/o-arrow-turn-up-left.svg +3 -0
  690. package/icons/heroicons/o-arrow-turn-up-right.svg +3 -0
  691. package/icons/heroicons/o-arrow-up-circle.svg +3 -0
  692. package/icons/heroicons/o-arrow-up-left.svg +3 -0
  693. package/icons/heroicons/o-arrow-up-on-square-stack.svg +3 -0
  694. package/icons/heroicons/o-arrow-up-on-square.svg +3 -0
  695. package/icons/heroicons/o-arrow-up-right.svg +3 -0
  696. package/icons/heroicons/o-arrow-up-tray.svg +3 -0
  697. package/icons/heroicons/o-arrow-up.svg +3 -0
  698. package/icons/heroicons/o-arrow-uturn-down.svg +3 -0
  699. package/icons/heroicons/o-arrow-uturn-left.svg +3 -0
  700. package/icons/heroicons/o-arrow-uturn-right.svg +3 -0
  701. package/icons/heroicons/o-arrow-uturn-up.svg +3 -0
  702. package/icons/heroicons/o-arrows-pointing-in.svg +3 -0
  703. package/icons/heroicons/o-arrows-pointing-out.svg +3 -0
  704. package/icons/heroicons/o-arrows-right-left.svg +3 -0
  705. package/icons/heroicons/o-arrows-up-down.svg +3 -0
  706. package/icons/heroicons/o-at-symbol.svg +3 -0
  707. package/icons/heroicons/o-backspace.svg +3 -0
  708. package/icons/heroicons/o-backward.svg +3 -0
  709. package/icons/heroicons/o-banknotes.svg +3 -0
  710. package/icons/heroicons/o-bars-2.svg +3 -0
  711. package/icons/heroicons/o-bars-3-bottom-left.svg +3 -0
  712. package/icons/heroicons/o-bars-3-bottom-right.svg +3 -0
  713. package/icons/heroicons/o-bars-3-center-left.svg +3 -0
  714. package/icons/heroicons/o-bars-3.svg +3 -0
  715. package/icons/heroicons/o-bars-4.svg +3 -0
  716. package/icons/heroicons/o-bars-arrow-down.svg +3 -0
  717. package/icons/heroicons/o-bars-arrow-up.svg +3 -0
  718. package/icons/heroicons/o-battery-0.svg +3 -0
  719. package/icons/heroicons/o-battery-100.svg +3 -0
  720. package/icons/heroicons/o-battery-50.svg +3 -0
  721. package/icons/heroicons/o-beaker.svg +3 -0
  722. package/icons/heroicons/o-bell-alert.svg +3 -0
  723. package/icons/heroicons/o-bell-slash.svg +3 -0
  724. package/icons/heroicons/o-bell-snooze.svg +3 -0
  725. package/icons/heroicons/o-bell.svg +3 -0
  726. package/icons/heroicons/o-bold.svg +3 -0
  727. package/icons/heroicons/o-bolt-slash.svg +3 -0
  728. package/icons/heroicons/o-bolt.svg +3 -0
  729. package/icons/heroicons/o-book-open.svg +3 -0
  730. package/icons/heroicons/o-bookmark-slash.svg +3 -0
  731. package/icons/heroicons/o-bookmark-square.svg +3 -0
  732. package/icons/heroicons/o-bookmark.svg +3 -0
  733. package/icons/heroicons/o-briefcase.svg +3 -0
  734. package/icons/heroicons/o-bug-ant.svg +3 -0
  735. package/icons/heroicons/o-building-library.svg +3 -0
  736. package/icons/heroicons/o-building-office-2.svg +3 -0
  737. package/icons/heroicons/o-building-office.svg +3 -0
  738. package/icons/heroicons/o-building-storefront.svg +3 -0
  739. package/icons/heroicons/o-cake.svg +3 -0
  740. package/icons/heroicons/o-calculator.svg +3 -0
  741. package/icons/heroicons/o-calendar-date-range.svg +3 -0
  742. package/icons/heroicons/o-calendar-days.svg +3 -0
  743. package/icons/heroicons/o-calendar.svg +3 -0
  744. package/icons/heroicons/o-camera.svg +4 -0
  745. package/icons/heroicons/o-chart-bar-square.svg +3 -0
  746. package/icons/heroicons/o-chart-bar.svg +3 -0
  747. package/icons/heroicons/o-chart-pie.svg +4 -0
  748. package/icons/heroicons/o-chat-bubble-bottom-center-text.svg +3 -0
  749. package/icons/heroicons/o-chat-bubble-bottom-center.svg +3 -0
  750. package/icons/heroicons/o-chat-bubble-left-ellipsis.svg +3 -0
  751. package/icons/heroicons/o-chat-bubble-left-right.svg +3 -0
  752. package/icons/heroicons/o-chat-bubble-left.svg +3 -0
  753. package/icons/heroicons/o-chat-bubble-oval-left-ellipsis.svg +3 -0
  754. package/icons/heroicons/o-chat-bubble-oval-left.svg +3 -0
  755. package/icons/heroicons/o-check-badge.svg +3 -0
  756. package/icons/heroicons/o-check-circle.svg +3 -0
  757. package/icons/heroicons/o-check.svg +3 -0
  758. package/icons/heroicons/o-chevron-double-down.svg +3 -0
  759. package/icons/heroicons/o-chevron-double-left.svg +3 -0
  760. package/icons/heroicons/o-chevron-double-right.svg +3 -0
  761. package/icons/heroicons/o-chevron-double-up.svg +4 -0
  762. package/icons/heroicons/o-chevron-down.svg +3 -0
  763. package/icons/heroicons/o-chevron-left.svg +3 -0
  764. package/icons/heroicons/o-chevron-right.svg +3 -0
  765. package/icons/heroicons/o-chevron-up-down.svg +3 -0
  766. package/icons/heroicons/o-chevron-up.svg +3 -0
  767. package/icons/heroicons/o-circle-stack.svg +3 -0
  768. package/icons/heroicons/o-clipboard-document-check.svg +3 -0
  769. package/icons/heroicons/o-clipboard-document-list.svg +3 -0
  770. package/icons/heroicons/o-clipboard-document.svg +3 -0
  771. package/icons/heroicons/o-clipboard.svg +3 -0
  772. package/icons/heroicons/o-clock.svg +3 -0
  773. package/icons/heroicons/o-cloud-arrow-down.svg +3 -0
  774. package/icons/heroicons/o-cloud-arrow-up.svg +3 -0
  775. package/icons/heroicons/o-cloud.svg +3 -0
  776. package/icons/heroicons/o-code-bracket-square.svg +3 -0
  777. package/icons/heroicons/o-code-bracket.svg +3 -0
  778. package/icons/heroicons/o-cog-6-tooth.svg +4 -0
  779. package/icons/heroicons/o-cog-8-tooth.svg +4 -0
  780. package/icons/heroicons/o-cog.svg +3 -0
  781. package/icons/heroicons/o-command-line.svg +3 -0
  782. package/icons/heroicons/o-computer-desktop.svg +3 -0
  783. package/icons/heroicons/o-cpu-chip.svg +3 -0
  784. package/icons/heroicons/o-credit-card.svg +3 -0
  785. package/icons/heroicons/o-cube-transparent.svg +3 -0
  786. package/icons/heroicons/o-cube.svg +3 -0
  787. package/icons/heroicons/o-currency-bangladeshi.svg +3 -0
  788. package/icons/heroicons/o-currency-dollar.svg +3 -0
  789. package/icons/heroicons/o-currency-euro.svg +3 -0
  790. package/icons/heroicons/o-currency-pound.svg +3 -0
  791. package/icons/heroicons/o-currency-rupee.svg +3 -0
  792. package/icons/heroicons/o-currency-yen.svg +3 -0
  793. package/icons/heroicons/o-cursor-arrow-rays.svg +3 -0
  794. package/icons/heroicons/o-cursor-arrow-ripple.svg +3 -0
  795. package/icons/heroicons/o-device-phone-mobile.svg +3 -0
  796. package/icons/heroicons/o-device-tablet.svg +3 -0
  797. package/icons/heroicons/o-divide.svg +3 -0
  798. package/icons/heroicons/o-document-arrow-down.svg +3 -0
  799. package/icons/heroicons/o-document-arrow-up.svg +3 -0
  800. package/icons/heroicons/o-document-chart-bar.svg +3 -0
  801. package/icons/heroicons/o-document-check.svg +3 -0
  802. package/icons/heroicons/o-document-currency-bangladeshi.svg +3 -0
  803. package/icons/heroicons/o-document-currency-dollar.svg +3 -0
  804. package/icons/heroicons/o-document-currency-euro.svg +3 -0
  805. package/icons/heroicons/o-document-currency-pound.svg +3 -0
  806. package/icons/heroicons/o-document-currency-rupee.svg +3 -0
  807. package/icons/heroicons/o-document-currency-yen.svg +3 -0
  808. package/icons/heroicons/o-document-duplicate.svg +3 -0
  809. package/icons/heroicons/o-document-magnifying-glass.svg +3 -0
  810. package/icons/heroicons/o-document-minus.svg +3 -0
  811. package/icons/heroicons/o-document-plus.svg +3 -0
  812. package/icons/heroicons/o-document-text.svg +3 -0
  813. package/icons/heroicons/o-document.svg +3 -0
  814. package/icons/heroicons/o-ellipsis-horizontal-circle.svg +3 -0
  815. package/icons/heroicons/o-ellipsis-horizontal.svg +3 -0
  816. package/icons/heroicons/o-ellipsis-vertical.svg +3 -0
  817. package/icons/heroicons/o-envelope-open.svg +3 -0
  818. package/icons/heroicons/o-envelope.svg +3 -0
  819. package/icons/heroicons/o-equals.svg +3 -0
  820. package/icons/heroicons/o-exclamation-circle.svg +3 -0
  821. package/icons/heroicons/o-exclamation-triangle.svg +3 -0
  822. package/icons/heroicons/o-eye-dropper.svg +3 -0
  823. package/icons/heroicons/o-eye-slash.svg +3 -0
  824. package/icons/heroicons/o-eye.svg +4 -0
  825. package/icons/heroicons/o-face-frown.svg +3 -0
  826. package/icons/heroicons/o-face-smile.svg +3 -0
  827. package/icons/heroicons/o-film.svg +3 -0
  828. package/icons/heroicons/o-finger-print.svg +3 -0
  829. package/icons/heroicons/o-fire.svg +4 -0
  830. package/icons/heroicons/o-flag.svg +3 -0
  831. package/icons/heroicons/o-folder-arrow-down.svg +3 -0
  832. package/icons/heroicons/o-folder-minus.svg +3 -0
  833. package/icons/heroicons/o-folder-open.svg +3 -0
  834. package/icons/heroicons/o-folder-plus.svg +3 -0
  835. package/icons/heroicons/o-folder.svg +3 -0
  836. package/icons/heroicons/o-forward.svg +3 -0
  837. package/icons/heroicons/o-funnel.svg +3 -0
  838. package/icons/heroicons/o-gif.svg +3 -0
  839. package/icons/heroicons/o-gift-top.svg +3 -0
  840. package/icons/heroicons/o-gift.svg +3 -0
  841. package/icons/heroicons/o-globe-alt.svg +3 -0
  842. package/icons/heroicons/o-globe-americas.svg +3 -0
  843. package/icons/heroicons/o-globe-asia-australia.svg +3 -0
  844. package/icons/heroicons/o-globe-europe-africa.svg +3 -0
  845. package/icons/heroicons/o-h1.svg +3 -0
  846. package/icons/heroicons/o-h2.svg +3 -0
  847. package/icons/heroicons/o-h3.svg +3 -0
  848. package/icons/heroicons/o-hand-raised.svg +3 -0
  849. package/icons/heroicons/o-hand-thumb-down.svg +3 -0
  850. package/icons/heroicons/o-hand-thumb-up.svg +3 -0
  851. package/icons/heroicons/o-hashtag.svg +3 -0
  852. package/icons/heroicons/o-heart.svg +3 -0
  853. package/icons/heroicons/o-home-modern.svg +3 -0
  854. package/icons/heroicons/o-home.svg +3 -0
  855. package/icons/heroicons/o-identification.svg +3 -0
  856. package/icons/heroicons/o-inbox-arrow-down.svg +3 -0
  857. package/icons/heroicons/o-inbox-stack.svg +3 -0
  858. package/icons/heroicons/o-inbox.svg +3 -0
  859. package/icons/heroicons/o-information-circle.svg +3 -0
  860. package/icons/heroicons/o-italic.svg +3 -0
  861. package/icons/heroicons/o-key.svg +3 -0
  862. package/icons/heroicons/o-language.svg +3 -0
  863. package/icons/heroicons/o-lifebuoy.svg +3 -0
  864. package/icons/heroicons/o-light-bulb.svg +3 -0
  865. package/icons/heroicons/o-link-slash.svg +3 -0
  866. package/icons/heroicons/o-link.svg +3 -0
  867. package/icons/heroicons/o-list-bullet.svg +3 -0
  868. package/icons/heroicons/o-lock-closed.svg +3 -0
  869. package/icons/heroicons/o-lock-open.svg +3 -0
  870. package/icons/heroicons/o-magnifying-glass-circle.svg +3 -0
  871. package/icons/heroicons/o-magnifying-glass-minus.svg +3 -0
  872. package/icons/heroicons/o-magnifying-glass-plus.svg +3 -0
  873. package/icons/heroicons/o-magnifying-glass.svg +3 -0
  874. package/icons/heroicons/o-map-pin.svg +4 -0
  875. package/icons/heroicons/o-map.svg +3 -0
  876. package/icons/heroicons/o-megaphone.svg +3 -0
  877. package/icons/heroicons/o-microphone.svg +3 -0
  878. package/icons/heroicons/o-minus-circle.svg +3 -0
  879. package/icons/heroicons/o-minus-small.svg +3 -0
  880. package/icons/heroicons/o-minus.svg +3 -0
  881. package/icons/heroicons/o-moon.svg +3 -0
  882. package/icons/heroicons/o-musical-note.svg +3 -0
  883. package/icons/heroicons/o-newspaper.svg +3 -0
  884. package/icons/heroicons/o-no-symbol.svg +3 -0
  885. package/icons/heroicons/o-numbered-list.svg +3 -0
  886. package/icons/heroicons/o-paint-brush.svg +3 -0
  887. package/icons/heroicons/o-paper-airplane.svg +3 -0
  888. package/icons/heroicons/o-paper-clip.svg +3 -0
  889. package/icons/heroicons/o-pause-circle.svg +3 -0
  890. package/icons/heroicons/o-pause.svg +3 -0
  891. package/icons/heroicons/o-pencil-square.svg +3 -0
  892. package/icons/heroicons/o-pencil.svg +3 -0
  893. package/icons/heroicons/o-percent-badge.svg +3 -0
  894. package/icons/heroicons/o-phone-arrow-down-left.svg +3 -0
  895. package/icons/heroicons/o-phone-arrow-up-right.svg +3 -0
  896. package/icons/heroicons/o-phone-x-mark.svg +3 -0
  897. package/icons/heroicons/o-phone.svg +3 -0
  898. package/icons/heroicons/o-photo.svg +3 -0
  899. package/icons/heroicons/o-play-circle.svg +4 -0
  900. package/icons/heroicons/o-play-pause.svg +3 -0
  901. package/icons/heroicons/o-play.svg +3 -0
  902. package/icons/heroicons/o-plus-circle.svg +3 -0
  903. package/icons/heroicons/o-plus-small.svg +3 -0
  904. package/icons/heroicons/o-plus.svg +3 -0
  905. package/icons/heroicons/o-power.svg +3 -0
  906. package/icons/heroicons/o-presentation-chart-bar.svg +3 -0
  907. package/icons/heroicons/o-presentation-chart-line.svg +3 -0
  908. package/icons/heroicons/o-printer.svg +3 -0
  909. package/icons/heroicons/o-puzzle-piece.svg +3 -0
  910. package/icons/heroicons/o-qr-code.svg +4 -0
  911. package/icons/heroicons/o-question-mark-circle.svg +3 -0
  912. package/icons/heroicons/o-queue-list.svg +3 -0
  913. package/icons/heroicons/o-radio.svg +3 -0
  914. package/icons/heroicons/o-receipt-percent.svg +3 -0
  915. package/icons/heroicons/o-receipt-refund.svg +3 -0
  916. package/icons/heroicons/o-rectangle-group.svg +3 -0
  917. package/icons/heroicons/o-rectangle-stack.svg +3 -0
  918. package/icons/heroicons/o-rocket-launch.svg +3 -0
  919. package/icons/heroicons/o-rss.svg +3 -0
  920. package/icons/heroicons/o-scale.svg +3 -0
  921. package/icons/heroicons/o-scissors.svg +3 -0
  922. package/icons/heroicons/o-server-stack.svg +3 -0
  923. package/icons/heroicons/o-server.svg +3 -0
  924. package/icons/heroicons/o-share.svg +3 -0
  925. package/icons/heroicons/o-shield-check.svg +3 -0
  926. package/icons/heroicons/o-shield-exclamation.svg +3 -0
  927. package/icons/heroicons/o-shopping-bag.svg +3 -0
  928. package/icons/heroicons/o-shopping-cart.svg +3 -0
  929. package/icons/heroicons/o-signal-slash.svg +3 -0
  930. package/icons/heroicons/o-signal.svg +3 -0
  931. package/icons/heroicons/o-slash.svg +3 -0
  932. package/icons/heroicons/o-sparkles.svg +3 -0
  933. package/icons/heroicons/o-speaker-wave.svg +3 -0
  934. package/icons/heroicons/o-speaker-x-mark.svg +3 -0
  935. package/icons/heroicons/o-square-2-stack.svg +3 -0
  936. package/icons/heroicons/o-square-3-stack-3d.svg +3 -0
  937. package/icons/heroicons/o-squares-2x2.svg +3 -0
  938. package/icons/heroicons/o-squares-plus.svg +3 -0
  939. package/icons/heroicons/o-star.svg +3 -0
  940. package/icons/heroicons/o-stop-circle.svg +4 -0
  941. package/icons/heroicons/o-stop.svg +3 -0
  942. package/icons/heroicons/o-strikethrough.svg +3 -0
  943. package/icons/heroicons/o-sun.svg +3 -0
  944. package/icons/heroicons/o-swatch.svg +3 -0
  945. package/icons/heroicons/o-table-cells.svg +3 -0
  946. package/icons/heroicons/o-tag.svg +4 -0
  947. package/icons/heroicons/o-ticket.svg +3 -0
  948. package/icons/heroicons/o-trash.svg +3 -0
  949. package/icons/heroicons/o-trophy.svg +3 -0
  950. package/icons/heroicons/o-truck.svg +3 -0
  951. package/icons/heroicons/o-tv.svg +3 -0
  952. package/icons/heroicons/o-underline.svg +3 -0
  953. package/icons/heroicons/o-user-circle.svg +3 -0
  954. package/icons/heroicons/o-user-group.svg +3 -0
  955. package/icons/heroicons/o-user-minus.svg +3 -0
  956. package/icons/heroicons/o-user-plus.svg +3 -0
  957. package/icons/heroicons/o-user.svg +3 -0
  958. package/icons/heroicons/o-users.svg +3 -0
  959. package/icons/heroicons/o-variable.svg +3 -0
  960. package/icons/heroicons/o-video-camera-slash.svg +3 -0
  961. package/icons/heroicons/o-video-camera.svg +3 -0
  962. package/icons/heroicons/o-view-columns.svg +3 -0
  963. package/icons/heroicons/o-viewfinder-circle.svg +3 -0
  964. package/icons/heroicons/o-wallet.svg +3 -0
  965. package/icons/heroicons/o-wifi.svg +3 -0
  966. package/icons/heroicons/o-window.svg +3 -0
  967. package/icons/heroicons/o-wrench-screwdriver.svg +3 -0
  968. package/icons/heroicons/o-wrench.svg +4 -0
  969. package/icons/heroicons/o-x-circle.svg +3 -0
  970. package/icons/heroicons/o-x-mark.svg +3 -0
  971. package/icons/heroicons/s-academic-cap.svg +5 -0
  972. package/icons/heroicons/s-adjustments-horizontal.svg +3 -0
  973. package/icons/heroicons/s-adjustments-vertical.svg +3 -0
  974. package/icons/heroicons/s-archive-box-arrow-down.svg +4 -0
  975. package/icons/heroicons/s-archive-box-x-mark.svg +4 -0
  976. package/icons/heroicons/s-archive-box.svg +4 -0
  977. package/icons/heroicons/s-arrow-down-circle.svg +3 -0
  978. package/icons/heroicons/s-arrow-down-left.svg +3 -0
  979. package/icons/heroicons/s-arrow-down-on-square-stack.svg +4 -0
  980. package/icons/heroicons/s-arrow-down-on-square.svg +3 -0
  981. package/icons/heroicons/s-arrow-down-right.svg +3 -0
  982. package/icons/heroicons/s-arrow-down-tray.svg +3 -0
  983. package/icons/heroicons/s-arrow-down.svg +3 -0
  984. package/icons/heroicons/s-arrow-left-circle.svg +3 -0
  985. package/icons/heroicons/s-arrow-left-end-on-rectangle.svg +3 -0
  986. package/icons/heroicons/s-arrow-left-on-rectangle.svg +3 -0
  987. package/icons/heroicons/s-arrow-left-start-on-rectangle.svg +3 -0
  988. package/icons/heroicons/s-arrow-left.svg +3 -0
  989. package/icons/heroicons/s-arrow-long-down.svg +3 -0
  990. package/icons/heroicons/s-arrow-long-left.svg +3 -0
  991. package/icons/heroicons/s-arrow-long-right.svg +3 -0
  992. package/icons/heroicons/s-arrow-long-up.svg +3 -0
  993. package/icons/heroicons/s-arrow-path-rounded-square.svg +3 -0
  994. package/icons/heroicons/s-arrow-path.svg +3 -0
  995. package/icons/heroicons/s-arrow-right-circle.svg +3 -0
  996. package/icons/heroicons/s-arrow-right-end-on-rectangle.svg +3 -0
  997. package/icons/heroicons/s-arrow-right-on-rectangle.svg +3 -0
  998. package/icons/heroicons/s-arrow-right-start-on-rectangle.svg +3 -0
  999. package/icons/heroicons/s-arrow-right.svg +3 -0
  1000. package/icons/heroicons/s-arrow-small-down.svg +3 -0
  1001. package/icons/heroicons/s-arrow-small-left.svg +3 -0
  1002. package/icons/heroicons/s-arrow-small-right.svg +3 -0
  1003. package/icons/heroicons/s-arrow-small-up.svg +3 -0
  1004. package/icons/heroicons/s-arrow-top-right-on-square.svg +3 -0
  1005. package/icons/heroicons/s-arrow-trending-down.svg +3 -0
  1006. package/icons/heroicons/s-arrow-trending-up.svg +3 -0
  1007. package/icons/heroicons/s-arrow-turn-down-left.svg +3 -0
  1008. package/icons/heroicons/s-arrow-turn-down-right.svg +3 -0
  1009. package/icons/heroicons/s-arrow-turn-left-down.svg +3 -0
  1010. package/icons/heroicons/s-arrow-turn-left-up.svg +3 -0
  1011. package/icons/heroicons/s-arrow-turn-right-down.svg +3 -0
  1012. package/icons/heroicons/s-arrow-turn-right-up.svg +3 -0
  1013. package/icons/heroicons/s-arrow-turn-up-left.svg +3 -0
  1014. package/icons/heroicons/s-arrow-turn-up-right.svg +3 -0
  1015. package/icons/heroicons/s-arrow-up-circle.svg +3 -0
  1016. package/icons/heroicons/s-arrow-up-left.svg +3 -0
  1017. package/icons/heroicons/s-arrow-up-on-square-stack.svg +4 -0
  1018. package/icons/heroicons/s-arrow-up-on-square.svg +3 -0
  1019. package/icons/heroicons/s-arrow-up-right.svg +3 -0
  1020. package/icons/heroicons/s-arrow-up-tray.svg +3 -0
  1021. package/icons/heroicons/s-arrow-up.svg +3 -0
  1022. package/icons/heroicons/s-arrow-uturn-down.svg +3 -0
  1023. package/icons/heroicons/s-arrow-uturn-left.svg +3 -0
  1024. package/icons/heroicons/s-arrow-uturn-right.svg +3 -0
  1025. package/icons/heroicons/s-arrow-uturn-up.svg +3 -0
  1026. package/icons/heroicons/s-arrows-pointing-in.svg +3 -0
  1027. package/icons/heroicons/s-arrows-pointing-out.svg +3 -0
  1028. package/icons/heroicons/s-arrows-right-left.svg +3 -0
  1029. package/icons/heroicons/s-arrows-up-down.svg +3 -0
  1030. package/icons/heroicons/s-at-symbol.svg +3 -0
  1031. package/icons/heroicons/s-backspace.svg +3 -0
  1032. package/icons/heroicons/s-backward.svg +3 -0
  1033. package/icons/heroicons/s-banknotes.svg +5 -0
  1034. package/icons/heroicons/s-bars-2.svg +3 -0
  1035. package/icons/heroicons/s-bars-3-bottom-left.svg +3 -0
  1036. package/icons/heroicons/s-bars-3-bottom-right.svg +3 -0
  1037. package/icons/heroicons/s-bars-3-center-left.svg +3 -0
  1038. package/icons/heroicons/s-bars-3.svg +3 -0
  1039. package/icons/heroicons/s-bars-4.svg +3 -0
  1040. package/icons/heroicons/s-bars-arrow-down.svg +3 -0
  1041. package/icons/heroicons/s-bars-arrow-up.svg +3 -0
  1042. package/icons/heroicons/s-battery-0.svg +3 -0
  1043. package/icons/heroicons/s-battery-100.svg +3 -0
  1044. package/icons/heroicons/s-battery-50.svg +4 -0
  1045. package/icons/heroicons/s-beaker.svg +3 -0
  1046. package/icons/heroicons/s-bell-alert.svg +4 -0
  1047. package/icons/heroicons/s-bell-slash.svg +4 -0
  1048. package/icons/heroicons/s-bell-snooze.svg +3 -0
  1049. package/icons/heroicons/s-bell.svg +3 -0
  1050. package/icons/heroicons/s-bold.svg +3 -0
  1051. package/icons/heroicons/s-bolt-slash.svg +3 -0
  1052. package/icons/heroicons/s-bolt.svg +3 -0
  1053. package/icons/heroicons/s-book-open.svg +3 -0
  1054. package/icons/heroicons/s-bookmark-slash.svg +3 -0
  1055. package/icons/heroicons/s-bookmark-square.svg +3 -0
  1056. package/icons/heroicons/s-bookmark.svg +3 -0
  1057. package/icons/heroicons/s-briefcase.svg +4 -0
  1058. package/icons/heroicons/s-bug-ant.svg +3 -0
  1059. package/icons/heroicons/s-building-library.svg +5 -0
  1060. package/icons/heroicons/s-building-office-2.svg +3 -0
  1061. package/icons/heroicons/s-building-office.svg +3 -0
  1062. package/icons/heroicons/s-building-storefront.svg +4 -0
  1063. package/icons/heroicons/s-cake.svg +3 -0
  1064. package/icons/heroicons/s-calculator.svg +3 -0
  1065. package/icons/heroicons/s-calendar-date-range.svg +4 -0
  1066. package/icons/heroicons/s-calendar-days.svg +4 -0
  1067. package/icons/heroicons/s-calendar.svg +3 -0
  1068. package/icons/heroicons/s-camera.svg +4 -0
  1069. package/icons/heroicons/s-chart-bar-square.svg +3 -0
  1070. package/icons/heroicons/s-chart-bar.svg +3 -0
  1071. package/icons/heroicons/s-chart-pie.svg +4 -0
  1072. package/icons/heroicons/s-chat-bubble-bottom-center-text.svg +3 -0
  1073. package/icons/heroicons/s-chat-bubble-bottom-center.svg +3 -0
  1074. package/icons/heroicons/s-chat-bubble-left-ellipsis.svg +3 -0
  1075. package/icons/heroicons/s-chat-bubble-left-right.svg +4 -0
  1076. package/icons/heroicons/s-chat-bubble-left.svg +3 -0
  1077. package/icons/heroicons/s-chat-bubble-oval-left-ellipsis.svg +3 -0
  1078. package/icons/heroicons/s-chat-bubble-oval-left.svg +3 -0
  1079. package/icons/heroicons/s-check-badge.svg +3 -0
  1080. package/icons/heroicons/s-check-circle.svg +3 -0
  1081. package/icons/heroicons/s-check.svg +3 -0
  1082. package/icons/heroicons/s-chevron-double-down.svg +4 -0
  1083. package/icons/heroicons/s-chevron-double-left.svg +4 -0
  1084. package/icons/heroicons/s-chevron-double-right.svg +4 -0
  1085. package/icons/heroicons/s-chevron-double-up.svg +4 -0
  1086. package/icons/heroicons/s-chevron-down.svg +3 -0
  1087. package/icons/heroicons/s-chevron-left.svg +3 -0
  1088. package/icons/heroicons/s-chevron-right.svg +3 -0
  1089. package/icons/heroicons/s-chevron-up-down.svg +3 -0
  1090. package/icons/heroicons/s-chevron-up.svg +3 -0
  1091. package/icons/heroicons/s-circle-stack.svg +6 -0
  1092. package/icons/heroicons/s-clipboard-document-check.svg +4 -0
  1093. package/icons/heroicons/s-clipboard-document-list.svg +4 -0
  1094. package/icons/heroicons/s-clipboard-document.svg +5 -0
  1095. package/icons/heroicons/s-clipboard.svg +3 -0
  1096. package/icons/heroicons/s-clock.svg +3 -0
  1097. package/icons/heroicons/s-cloud-arrow-down.svg +3 -0
  1098. package/icons/heroicons/s-cloud-arrow-up.svg +3 -0
  1099. package/icons/heroicons/s-cloud.svg +3 -0
  1100. package/icons/heroicons/s-code-bracket-square.svg +3 -0
  1101. package/icons/heroicons/s-code-bracket.svg +3 -0
  1102. package/icons/heroicons/s-cog-6-tooth.svg +3 -0
  1103. package/icons/heroicons/s-cog-8-tooth.svg +3 -0
  1104. package/icons/heroicons/s-cog.svg +4 -0
  1105. package/icons/heroicons/s-command-line.svg +3 -0
  1106. package/icons/heroicons/s-computer-desktop.svg +3 -0
  1107. package/icons/heroicons/s-cpu-chip.svg +4 -0
  1108. package/icons/heroicons/s-credit-card.svg +4 -0
  1109. package/icons/heroicons/s-cube-transparent.svg +3 -0
  1110. package/icons/heroicons/s-cube.svg +3 -0
  1111. package/icons/heroicons/s-currency-bangladeshi.svg +3 -0
  1112. package/icons/heroicons/s-currency-dollar.svg +4 -0
  1113. package/icons/heroicons/s-currency-euro.svg +3 -0
  1114. package/icons/heroicons/s-currency-pound.svg +3 -0
  1115. package/icons/heroicons/s-currency-rupee.svg +3 -0
  1116. package/icons/heroicons/s-currency-yen.svg +3 -0
  1117. package/icons/heroicons/s-cursor-arrow-rays.svg +3 -0
  1118. package/icons/heroicons/s-cursor-arrow-ripple.svg +3 -0
  1119. package/icons/heroicons/s-device-phone-mobile.svg +4 -0
  1120. package/icons/heroicons/s-device-tablet.svg +4 -0
  1121. package/icons/heroicons/s-divide.svg +3 -0
  1122. package/icons/heroicons/s-document-arrow-down.svg +4 -0
  1123. package/icons/heroicons/s-document-arrow-up.svg +4 -0
  1124. package/icons/heroicons/s-document-chart-bar.svg +4 -0
  1125. package/icons/heroicons/s-document-check.svg +4 -0
  1126. package/icons/heroicons/s-document-currency-bangladeshi.svg +3 -0
  1127. package/icons/heroicons/s-document-currency-dollar.svg +3 -0
  1128. package/icons/heroicons/s-document-currency-euro.svg +4 -0
  1129. package/icons/heroicons/s-document-currency-pound.svg +3 -0
  1130. package/icons/heroicons/s-document-currency-rupee.svg +3 -0
  1131. package/icons/heroicons/s-document-currency-yen.svg +3 -0
  1132. package/icons/heroicons/s-document-duplicate.svg +4 -0
  1133. package/icons/heroicons/s-document-magnifying-glass.svg +5 -0
  1134. package/icons/heroicons/s-document-minus.svg +4 -0
  1135. package/icons/heroicons/s-document-plus.svg +4 -0
  1136. package/icons/heroicons/s-document-text.svg +4 -0
  1137. package/icons/heroicons/s-document.svg +4 -0
  1138. package/icons/heroicons/s-ellipsis-horizontal-circle.svg +3 -0
  1139. package/icons/heroicons/s-ellipsis-horizontal.svg +3 -0
  1140. package/icons/heroicons/s-ellipsis-vertical.svg +3 -0
  1141. package/icons/heroicons/s-envelope-open.svg +4 -0
  1142. package/icons/heroicons/s-envelope.svg +4 -0
  1143. package/icons/heroicons/s-equals.svg +3 -0
  1144. package/icons/heroicons/s-exclamation-circle.svg +3 -0
  1145. package/icons/heroicons/s-exclamation-triangle.svg +3 -0
  1146. package/icons/heroicons/s-eye-dropper.svg +3 -0
  1147. package/icons/heroicons/s-eye-slash.svg +5 -0
  1148. package/icons/heroicons/s-eye.svg +4 -0
  1149. package/icons/heroicons/s-face-frown.svg +3 -0
  1150. package/icons/heroicons/s-face-smile.svg +3 -0
  1151. package/icons/heroicons/s-film.svg +3 -0
  1152. package/icons/heroicons/s-finger-print.svg +3 -0
  1153. package/icons/heroicons/s-fire.svg +3 -0
  1154. package/icons/heroicons/s-flag.svg +3 -0
  1155. package/icons/heroicons/s-folder-arrow-down.svg +3 -0
  1156. package/icons/heroicons/s-folder-minus.svg +3 -0
  1157. package/icons/heroicons/s-folder-open.svg +3 -0
  1158. package/icons/heroicons/s-folder-plus.svg +3 -0
  1159. package/icons/heroicons/s-folder.svg +3 -0
  1160. package/icons/heroicons/s-forward.svg +3 -0
  1161. package/icons/heroicons/s-funnel.svg +3 -0
  1162. package/icons/heroicons/s-gif.svg +3 -0
  1163. package/icons/heroicons/s-gift-top.svg +4 -0
  1164. package/icons/heroicons/s-gift.svg +3 -0
  1165. package/icons/heroicons/s-globe-alt.svg +3 -0
  1166. package/icons/heroicons/s-globe-americas.svg +3 -0
  1167. package/icons/heroicons/s-globe-asia-australia.svg +4 -0
  1168. package/icons/heroicons/s-globe-europe-africa.svg +3 -0
  1169. package/icons/heroicons/s-h1.svg +3 -0
  1170. package/icons/heroicons/s-h2.svg +3 -0
  1171. package/icons/heroicons/s-h3.svg +3 -0
  1172. package/icons/heroicons/s-hand-raised.svg +3 -0
  1173. package/icons/heroicons/s-hand-thumb-down.svg +3 -0
  1174. package/icons/heroicons/s-hand-thumb-up.svg +3 -0
  1175. package/icons/heroicons/s-hashtag.svg +3 -0
  1176. package/icons/heroicons/s-heart.svg +3 -0
  1177. package/icons/heroicons/s-home-modern.svg +4 -0
  1178. package/icons/heroicons/s-home.svg +4 -0
  1179. package/icons/heroicons/s-identification.svg +3 -0
  1180. package/icons/heroicons/s-inbox-arrow-down.svg +4 -0
  1181. package/icons/heroicons/s-inbox-stack.svg +4 -0
  1182. package/icons/heroicons/s-inbox.svg +3 -0
  1183. package/icons/heroicons/s-information-circle.svg +3 -0
  1184. package/icons/heroicons/s-italic.svg +3 -0
  1185. package/icons/heroicons/s-key.svg +3 -0
  1186. package/icons/heroicons/s-language.svg +3 -0
  1187. package/icons/heroicons/s-lifebuoy.svg +3 -0
  1188. package/icons/heroicons/s-light-bulb.svg +4 -0
  1189. package/icons/heroicons/s-link-slash.svg +3 -0
  1190. package/icons/heroicons/s-link.svg +3 -0
  1191. package/icons/heroicons/s-list-bullet.svg +3 -0
  1192. package/icons/heroicons/s-lock-closed.svg +3 -0
  1193. package/icons/heroicons/s-lock-open.svg +3 -0
  1194. package/icons/heroicons/s-magnifying-glass-circle.svg +4 -0
  1195. package/icons/heroicons/s-magnifying-glass-minus.svg +3 -0
  1196. package/icons/heroicons/s-magnifying-glass-plus.svg +3 -0
  1197. package/icons/heroicons/s-magnifying-glass.svg +3 -0
  1198. package/icons/heroicons/s-map-pin.svg +3 -0
  1199. package/icons/heroicons/s-map.svg +3 -0
  1200. package/icons/heroicons/s-megaphone.svg +3 -0
  1201. package/icons/heroicons/s-microphone.svg +4 -0
  1202. package/icons/heroicons/s-minus-circle.svg +3 -0
  1203. package/icons/heroicons/s-minus-small.svg +3 -0
  1204. package/icons/heroicons/s-minus.svg +3 -0
  1205. package/icons/heroicons/s-moon.svg +3 -0
  1206. package/icons/heroicons/s-musical-note.svg +3 -0
  1207. package/icons/heroicons/s-newspaper.svg +4 -0
  1208. package/icons/heroicons/s-no-symbol.svg +3 -0
  1209. package/icons/heroicons/s-numbered-list.svg +3 -0
  1210. package/icons/heroicons/s-paint-brush.svg +3 -0
  1211. package/icons/heroicons/s-paper-airplane.svg +3 -0
  1212. package/icons/heroicons/s-paper-clip.svg +3 -0
  1213. package/icons/heroicons/s-pause-circle.svg +3 -0
  1214. package/icons/heroicons/s-pause.svg +3 -0
  1215. package/icons/heroicons/s-pencil-square.svg +4 -0
  1216. package/icons/heroicons/s-pencil.svg +3 -0
  1217. package/icons/heroicons/s-percent-badge.svg +3 -0
  1218. package/icons/heroicons/s-phone-arrow-down-left.svg +4 -0
  1219. package/icons/heroicons/s-phone-arrow-up-right.svg +4 -0
  1220. package/icons/heroicons/s-phone-x-mark.svg +3 -0
  1221. package/icons/heroicons/s-phone.svg +3 -0
  1222. package/icons/heroicons/s-photo.svg +3 -0
  1223. package/icons/heroicons/s-play-circle.svg +3 -0
  1224. package/icons/heroicons/s-play-pause.svg +3 -0
  1225. package/icons/heroicons/s-play.svg +3 -0
  1226. package/icons/heroicons/s-plus-circle.svg +3 -0
  1227. package/icons/heroicons/s-plus-small.svg +3 -0
  1228. package/icons/heroicons/s-plus.svg +3 -0
  1229. package/icons/heroicons/s-power.svg +3 -0
  1230. package/icons/heroicons/s-presentation-chart-bar.svg +3 -0
  1231. package/icons/heroicons/s-presentation-chart-line.svg +3 -0
  1232. package/icons/heroicons/s-printer.svg +3 -0
  1233. package/icons/heroicons/s-puzzle-piece.svg +3 -0
  1234. package/icons/heroicons/s-qr-code.svg +3 -0
  1235. package/icons/heroicons/s-question-mark-circle.svg +3 -0
  1236. package/icons/heroicons/s-queue-list.svg +3 -0
  1237. package/icons/heroicons/s-radio.svg +3 -0
  1238. package/icons/heroicons/s-receipt-percent.svg +3 -0
  1239. package/icons/heroicons/s-receipt-refund.svg +3 -0
  1240. package/icons/heroicons/s-rectangle-group.svg +3 -0
  1241. package/icons/heroicons/s-rectangle-stack.svg +3 -0
  1242. package/icons/heroicons/s-rocket-launch.svg +4 -0
  1243. package/icons/heroicons/s-rss.svg +3 -0
  1244. package/icons/heroicons/s-scale.svg +3 -0
  1245. package/icons/heroicons/s-scissors.svg +4 -0
  1246. package/icons/heroicons/s-server-stack.svg +4 -0
  1247. package/icons/heroicons/s-server.svg +4 -0
  1248. package/icons/heroicons/s-share.svg +3 -0
  1249. package/icons/heroicons/s-shield-check.svg +3 -0
  1250. package/icons/heroicons/s-shield-exclamation.svg +3 -0
  1251. package/icons/heroicons/s-shopping-bag.svg +3 -0
  1252. package/icons/heroicons/s-shopping-cart.svg +3 -0
  1253. package/icons/heroicons/s-signal-slash.svg +3 -0
  1254. package/icons/heroicons/s-signal.svg +3 -0
  1255. package/icons/heroicons/s-slash.svg +3 -0
  1256. package/icons/heroicons/s-sparkles.svg +3 -0
  1257. package/icons/heroicons/s-speaker-wave.svg +4 -0
  1258. package/icons/heroicons/s-speaker-x-mark.svg +3 -0
  1259. package/icons/heroicons/s-square-2-stack.svg +4 -0
  1260. package/icons/heroicons/s-square-3-stack-3d.svg +5 -0
  1261. package/icons/heroicons/s-squares-2x2.svg +3 -0
  1262. package/icons/heroicons/s-squares-plus.svg +3 -0
  1263. package/icons/heroicons/s-star.svg +3 -0
  1264. package/icons/heroicons/s-stop-circle.svg +3 -0
  1265. package/icons/heroicons/s-stop.svg +3 -0
  1266. package/icons/heroicons/s-strikethrough.svg +3 -0
  1267. package/icons/heroicons/s-sun.svg +3 -0
  1268. package/icons/heroicons/s-swatch.svg +4 -0
  1269. package/icons/heroicons/s-table-cells.svg +3 -0
  1270. package/icons/heroicons/s-tag.svg +3 -0
  1271. package/icons/heroicons/s-ticket.svg +3 -0
  1272. package/icons/heroicons/s-trash.svg +3 -0
  1273. package/icons/heroicons/s-trophy.svg +3 -0
  1274. package/icons/heroicons/s-truck.svg +5 -0
  1275. package/icons/heroicons/s-tv.svg +4 -0
  1276. package/icons/heroicons/s-underline.svg +3 -0
  1277. package/icons/heroicons/s-user-circle.svg +3 -0
  1278. package/icons/heroicons/s-user-group.svg +4 -0
  1279. package/icons/heroicons/s-user-minus.svg +3 -0
  1280. package/icons/heroicons/s-user-plus.svg +3 -0
  1281. package/icons/heroicons/s-user.svg +3 -0
  1282. package/icons/heroicons/s-users.svg +3 -0
  1283. package/icons/heroicons/s-variable.svg +3 -0
  1284. package/icons/heroicons/s-video-camera-slash.svg +3 -0
  1285. package/icons/heroicons/s-video-camera.svg +3 -0
  1286. package/icons/heroicons/s-view-columns.svg +3 -0
  1287. package/icons/heroicons/s-viewfinder-circle.svg +3 -0
  1288. package/icons/heroicons/s-wallet.svg +3 -0
  1289. package/icons/heroicons/s-wifi.svg +3 -0
  1290. package/icons/heroicons/s-window.svg +3 -0
  1291. package/icons/heroicons/s-wrench-screwdriver.svg +5 -0
  1292. package/icons/heroicons/s-wrench.svg +3 -0
  1293. package/icons/heroicons/s-x-circle.svg +3 -0
  1294. package/icons/heroicons/s-x-mark.svg +3 -0
  1295. package/lib/i18n.d.ts +8 -0
  1296. package/lib/i18n.js +70 -0
  1297. package/lib/index.d.ts +165 -0
  1298. package/lib/index.js +514 -0
  1299. package/lib/ui.d.ts +261 -0
  1300. package/lib/ui.js +254 -0
  1301. package/package.json +56 -4
  1302. package/views/components/badge.ejs +8 -0
  1303. package/views/components/icon-button.ejs +6 -0
  1304. package/views/components/pagination.ejs +88 -0
package/lib/index.js ADDED
@@ -0,0 +1,514 @@
1
+ import { AsyncLocalStorage } from 'node:async_hooks';
2
+ // @navette-js/support — shared building blocks: escaping, attribute bags, JS serialization, lazy evaluation, colors, icons,
3
+ // namespaced EJS views.
4
+ import ejs from 'ejs';
5
+ import { existsSync, readFileSync } from 'node:fs';
6
+ import path from 'node:path';
7
+ import { fileURLToPath } from 'node:url';
8
+ // ------------------------------------------------------------------ escaping
9
+ /** Escapes `&`, `<`, `>`, `"` and `'` for HTML. */
10
+ export function e(value) {
11
+ return String(value ?? '').replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/'/g, '&#039;');
12
+ }
13
+ /** Trusted HTML string: views do not escape it again. */
14
+ export class HtmlString {
15
+ html;
16
+ constructor(html) { this.html = html; }
17
+ toString() { return this.html; }
18
+ }
19
+ export const raw = (html) => new HtmlString(html);
20
+ // ------------------------------------------------------------------ JS serialization
21
+ // Quotes, `<`, `>` and `&` are written as `\uXXXX` so the output is safe inside HTML attributes and `<script>`.
22
+ const BS = String.fromCharCode(92);
23
+ const HEX = { '"': 'u0022', "'": 'u0027', '<': 'u003C', '>': 'u003E', '&': 'u0026', '/': '/' };
24
+ function phpString(value) {
25
+ let out = '';
26
+ for (const ch of value) {
27
+ if (ch in HEX)
28
+ out += BS + HEX[ch];
29
+ else if (ch === BS)
30
+ out += BS + BS;
31
+ else if (ch < ' ')
32
+ out += JSON.stringify(ch).slice(1, -1);
33
+ else
34
+ out += ch;
35
+ }
36
+ return out;
37
+ }
38
+ /** JSON where `'`, `"`, `<`, `>` and `&` inside strings become `\uXXXX` (structural quotes are kept) and `/` is escaped. */
39
+ function phpJson(value) {
40
+ const json = JSON.stringify(value);
41
+ const HEX = { "'": BS + 'u0027', '<': BS + 'u003C', '>': BS + 'u003E', '&': BS + 'u0026', '/': BS + '/' };
42
+ let out = '';
43
+ for (let i = 0; i < json.length; i++) {
44
+ const c = json[i];
45
+ if (c === BS) {
46
+ const next = json[++i];
47
+ out += next === '"' ? BS + 'u0022' : BS + next;
48
+ continue;
49
+ }
50
+ out += HEX[c] ?? c;
51
+ }
52
+ return out;
53
+ }
54
+ /** Serializes a value into a JavaScript expression that is safe to embed in HTML. */
55
+ export function js(value) {
56
+ if (value === null || value === undefined)
57
+ return 'null';
58
+ if (typeof value === 'string')
59
+ return "'" + phpString(value) + "'";
60
+ if (typeof value === 'number' || typeof value === 'boolean')
61
+ return String(value);
62
+ return "JSON.parse('" + phpString(phpJson(value)) + "')";
63
+ }
64
+ export function cls(list) {
65
+ const out = [];
66
+ const items = Array.isArray(list) ? list : [list];
67
+ for (const item of items) {
68
+ if (!item)
69
+ continue;
70
+ if (typeof item === 'string')
71
+ out.push(item);
72
+ else
73
+ for (const [k, on] of Object.entries(item))
74
+ if (on)
75
+ out.push(k);
76
+ }
77
+ return out.join(' ');
78
+ }
79
+ export class Attributes {
80
+ map = new Map();
81
+ constructor(initial = {}) { for (const [k, v] of Object.entries(initial))
82
+ this.map.set(k, v); }
83
+ get(key) { return this.map.get(key); }
84
+ has(key) { return this.map.has(key); }
85
+ /** Defaults come first, then existing attributes (`class` and `style` are concatenated); null/false defaults are skipped. */
86
+ merge(defaults) {
87
+ const out = new Attributes();
88
+ for (const [k, v] of Object.entries(defaults)) {
89
+ if (v === null || v === undefined || v === false)
90
+ continue;
91
+ out.map.set(k, v);
92
+ }
93
+ for (const [k, v] of this.map) {
94
+ const merged = (k === 'class' || k === 'style') && out.map.has(k) ? [out.map.get(k), v].filter((x) => x !== '' && x != null).join(' ') : v;
95
+ out.map.delete(k);
96
+ out.map.set(k, merged);
97
+ }
98
+ return out;
99
+ }
100
+ /** Adds (or replaces) an attribute at the end. */
101
+ set(key, value) { const out = this.clone(); out.map.delete(key); out.map.set(key, value); return out; }
102
+ clone() { const out = new Attributes(); for (const [k, v] of this.map)
103
+ out.map.set(k, v); return out; }
104
+ /** Appends classes after the existing ones; the attribute keeps its position, or goes last. */
105
+ class(list) {
106
+ const out = this.clone();
107
+ out.map.set('class', [out.map.get('class'), cls(list)].filter((x) => x !== '' && x != null).join(' '));
108
+ return out;
109
+ }
110
+ style(list) {
111
+ const added = list.filter(Boolean).join('; ');
112
+ if (!added)
113
+ return this;
114
+ const out = this.clone();
115
+ const existing = String(out.map.get('style') ?? '').replace(/;+$/, '');
116
+ out.map.set('style', [existing, added].filter(Boolean).join('; ') + ';');
117
+ return out;
118
+ }
119
+ when(condition, fn) { return condition ? fn(this) : this; }
120
+ /** Grid container: `fi-grid` classes and `--cols-*` variables per breakpoint. */
121
+ grid(columns = {}) {
122
+ const cols = typeof columns === 'number' ? { lg: columns } : { ...(columns ?? {}) };
123
+ for (const k of Object.keys(cols))
124
+ if (!cols[k])
125
+ delete cols[k];
126
+ cols.default ??= 1;
127
+ const v = (bp) => bp.replace(/@/g, 'c').replace(/!/g, 'n');
128
+ return this
129
+ .class(['fi-grid', ...Object.keys(cols).map((bp) => (bp === 'default' ? (cols[bp] > 1 ? 'fi-grid-cols' : '') : `${bp}:fi-grid-cols`))])
130
+ .style(Object.entries(cols).map(([bp, n]) => `--cols-${v(bp)}: repeat(${n}, minmax(0, 1fr))`));
131
+ }
132
+ /** Grid column: `fi-grid-col` classes and `--col-span-*` variables per breakpoint. */
133
+ gridColumn(span = {}, isHidden = false) {
134
+ const s = span !== null && typeof span === 'object' ? { ...span } : span ? { lg: span } : {};
135
+ for (const k of Object.keys(s))
136
+ if (!s[k])
137
+ delete s[k];
138
+ const v = (bp) => bp.replace(/@/g, 'c').replace(/!/g, 'n');
139
+ return this
140
+ .class(['fi-grid-col', { 'fi-hidden': isHidden || s.default === 'hidden' }, ...Object.keys(s).map((bp) => (bp === 'default' ? '' : `${bp}:fi-grid-col-span`))])
141
+ .style(Object.entries(s).map(([bp, n]) => `--col-span-${v(bp)}: ${n === 'full' ? '1 / -1' : `span ${n} / span ${n}`}`));
142
+ }
143
+ /** Renders `key="value"` pairs; `true` becomes `key="key"` (or `""` for x-data and wire:*). Values are not escaped again, except `"`. */
144
+ toHtml() {
145
+ const parts = [];
146
+ for (const [k, v] of this.map) {
147
+ if (v === false || v === null || v === undefined)
148
+ continue;
149
+ const value = v === true ? (k === 'x-data' || k.startsWith('wire:') ? '' : k) : String(v);
150
+ parts.push(`${k}="${value.replace(/"/g, '&quot;')}"`);
151
+ }
152
+ return parts.join(' ');
153
+ }
154
+ toString() { return this.toHtml(); }
155
+ }
156
+ export const attrs = (initial = {}) => new Attributes(initial);
157
+ export async function evaluate(value, ctx) {
158
+ return typeof value === 'function' ? await value(ctx) : value;
159
+ }
160
+ // ------------------------------------------------------------------ colors
161
+ const here = (p) => fileURLToPath(new URL(p, import.meta.url));
162
+ export const Color = JSON.parse(readFileSync(here('../data/palettes.json'), 'utf8'));
163
+ export const WCAG_AA_TEXT = 4.5;
164
+ /** Converts `#rrggbb`, `rgb(r, g, b)` or `r, g, b` to `oklch(L C h)`, rounded to three decimals. */
165
+ export function convertToOklch(color) {
166
+ if (color.startsWith('oklch('))
167
+ return color;
168
+ const compact = color.replace(/\s+/g, '');
169
+ const [r, g, b] = (compact.startsWith('#') ? convertToRgb(compact) : compact.replace(/^rgb\(|\)$/g, '').split(',').map(Number)).map((channel) => {
170
+ const c = channel / 255;
171
+ return c <= 0.04045 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;
172
+ });
173
+ if (![r, g, b].every(Number.isFinite))
174
+ throw new Error(`Unsupported color: ${color}`);
175
+ const l = Math.cbrt(0.4122214708 * r + 0.5363325363 * g + 0.0514459929 * b), m = Math.cbrt(0.2119034982 * r + 0.6806995451 * g + 0.1073969566 * b), s = Math.cbrt(0.0883024619 * r + 0.2817188376 * g + 0.6299787005 * b);
176
+ const lightness = 0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s;
177
+ const a = 1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s, bb = 0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s;
178
+ let hue = (Math.atan2(bb, a) * 180) / Math.PI;
179
+ if (hue < 0)
180
+ hue += 360;
181
+ const round = (n) => String(Math.round(n * 1000) / 1000);
182
+ return `oklch(${round(lightness)} ${round(Math.sqrt(a * a + bb * bb))} ${round(hue)})`;
183
+ }
184
+ /** Lightness and chroma of each shade of a generated palette. */
185
+ const GENERATED_SHADES = [
186
+ [50, '0.97717647058824', '0.01395454545455'], [100, '0.95035294117647', '0.03272727272727'], [200, '0.90547058823529', '0.06318181818182'],
187
+ [300, '0.84047058823529', '0.10604545454546'], [400, '0.75352941176471', '0.15027272727273'], [500, '0.68270588235294', '0.17009090909091'],
188
+ [600, '0.59782352941176', '0.16913636363636'], [700, '0.51494117647059', '0.14940909090909'], [800, '0.44611764705882', '0.12331818181818'],
189
+ [900, '0.39458823529412', '0.09963636363636'], [950, '0.27788235294118', '0.07136363636364'],
190
+ ];
191
+ /** Builds an eleven-shade palette from a single color, keeping its hue. */
192
+ export function generatePalette(color) {
193
+ const [, , chroma, hue] = /^oklch\(([\d.]+) ([\d.]+) ([\d.]+)\)$/.exec(convertToOklch(color)).map(Number);
194
+ const achromatic = chroma < 0.03;
195
+ return Object.fromEntries(GENERATED_SHADES.map(([shade, lightness, saturation]) => [shade, `oklch(${lightness} ${achromatic ? '0' : saturation} ${hue})`]));
196
+ }
197
+ const toPalette = (color) => (typeof color === 'string' ? generatePalette(color) : color);
198
+ export function convertToRgb(color) {
199
+ const rgb = /^rgb\((\d+),\s*(\d+),\s*(\d+)\)/.exec(color);
200
+ if (rgb)
201
+ return [+rgb[1], +rgb[2], +rgb[3]];
202
+ if (color.startsWith('#')) {
203
+ const hex = color.length === 4 ? color.replace(/[0-9a-f]/gi, (c) => c + c) : color;
204
+ return [1, 3, 5].map((i) => parseInt(hex.slice(i, i + 2), 16));
205
+ }
206
+ const m = /^oklch\(([\d.]+)\s+([\d.]+)(?:\s+([\d.]+))?\)/.exec(color);
207
+ if (!m)
208
+ throw new Error(`Unsupported color: ${color}`);
209
+ const L = +m[1], C = +m[2], h = ((+m[3] || 0) * Math.PI) / 180;
210
+ const a = C * Math.cos(h), b = C * Math.sin(h);
211
+ const l = (L + 0.3963377774 * a + 0.2158037573 * b) ** 3, md = (L - 0.1055613458 * a - 0.0638541728 * b) ** 3, s = (L - 0.0894841775 * a - 1.291485548 * b) ** 3;
212
+ const lin = [4.0767416621 * l - 3.3077115913 * md + 0.2309699292 * s, -1.2684380046 * l + 2.6097574011 * md - 0.3413193965 * s, -0.0041960863 * l - 0.7034186147 * md + 1.707614701 * s];
213
+ return lin.map((x) => Math.max(0, Math.min(255, Math.round((x <= 0.0031308 ? 12.92 * x : 1.055 * x ** (1 / 2.4) - 0.055) * 255))));
214
+ }
215
+ /** Contrast ratio with luminance approximated by a 2.2 gamma (intentionally not the exact WCAG formula; shade choices depend on it). */
216
+ export function calculateContrastRatio(c1, c2) {
217
+ const lum = (c) => { const [r, g, b] = convertToRgb(c); return 0.2126 * (r / 255) ** 2.2 + 0.7152 * (g / 255) ** 2.2 + 0.0722 * (b / 255) ** 2.2; };
218
+ const a = lum(c1), b = lum(c2);
219
+ return (Math.max(a, b) + 0.05) / (Math.min(a, b) + 0.05);
220
+ }
221
+ export function isLight(color) {
222
+ const m = /^oklch\(([\d.]+)/.exec(color);
223
+ if (!m)
224
+ throw new Error(`isLight: only oklch colors are supported (${color})`);
225
+ return +m[1] >= 0.65;
226
+ }
227
+ /** Picks accessible background and text shades for a filled button. */
228
+ export function buttonColorMap(palette, minRatio = WCAG_AA_TEXT) {
229
+ const light = [{ bg: 600, hover: 500, alternateHover: null }, { bg: 400, hover: 300, alternateHover: 500 }];
230
+ const dark = [{ bg: 600, hover: 500, alternateHover: 700 }];
231
+ const shades = Object.keys(palette).map(Number).sort((a, b) => a - b);
232
+ const textForBg = {};
233
+ const possibleDark = shades.slice(1);
234
+ let fallbackOk = true;
235
+ outer: for (const bg of shades) {
236
+ while (possibleDark.length) {
237
+ const t = possibleDark[0];
238
+ if (t >= 800 && calculateContrastRatio(palette[bg], palette[t]) >= minRatio) {
239
+ textForBg[bg] = t;
240
+ continue outer;
241
+ }
242
+ possibleDark.shift();
243
+ }
244
+ if (fallbackOk && palette[50] !== undefined) {
245
+ if (calculateContrastRatio(palette[bg], palette[50]) >= minRatio) {
246
+ textForBg[bg] = 50;
247
+ continue;
248
+ }
249
+ fallbackOk = false;
250
+ }
251
+ textForBg[bg] = 0;
252
+ }
253
+ const lightness = {};
254
+ for (const c of [...light, ...dark])
255
+ for (const s of [c.bg, c.hover, c.alternateHover]) {
256
+ if (s === null)
257
+ continue;
258
+ const t = textForBg[s] ?? 0;
259
+ lightness[s] = t === 0 || isLight(palette[t] ?? 'oklch(1 0 0)');
260
+ }
261
+ const pick = (cands) => {
262
+ for (const c of cands) {
263
+ if (!lightness[c.bg])
264
+ continue;
265
+ if (lightness[c.hover])
266
+ return [c.bg, c.hover];
267
+ if (c.alternateHover !== null && lightness[c.alternateHover])
268
+ return [c.bg, c.alternateHover];
269
+ }
270
+ const f = cands[cands.length - 1];
271
+ return [f.bg, lightness[f.bg] === lightness[f.hover] ? f.hover : (f.alternateHover ?? f.hover)];
272
+ };
273
+ const [bg, hoverBg] = pick(light), [darkBg, darkHoverBg] = pick(dark);
274
+ return { bg, 'hover:bg': hoverBg, 'dark:bg': darkBg, 'dark:hover:bg': darkHoverBg, text: textForBg[bg] ?? 0, 'hover:text': textForBg[hoverBg] ?? 0, 'dark:text': textForBg[darkBg] ?? 0, 'dark:hover:text': textForBg[darkHoverBg] ?? 0 };
275
+ }
276
+ /** First shade of the palette with enough contrast against a surface. */
277
+ export function findShade(palette, surface, options = {}) {
278
+ const shades = Object.keys(palette).map(Number).sort((a, b) => (options.fromDarkest ? b - a : a - b));
279
+ for (const shade of shades) {
280
+ if (options.maxShade !== undefined && shade > options.maxShade)
281
+ continue;
282
+ if (options.minShade !== undefined && shade < options.minShade)
283
+ continue;
284
+ if (calculateContrastRatio(surface, palette[shade]) >= (options.minRatio ?? WCAG_AA_TEXT))
285
+ return shade;
286
+ }
287
+ return null;
288
+ }
289
+ /** Color map of badges. */
290
+ export function badgeColorMap(palette, gray) {
291
+ return { text: findShade(palette, palette[50]) ?? 900, 'dark:text': findShade(palette, gray[600], { maxShade: 500, fromDarkest: true }) ?? 200 };
292
+ }
293
+ /** Color map of dropdown items. */
294
+ export function dropdownItemColorMap(palette, gray) {
295
+ return {
296
+ text: findShade(palette, 'oklch(1 0 0)', { minShade: 600 }) ?? 950,
297
+ 'hover:text': findShade(palette, palette[50], { minShade: 600 }) ?? 950,
298
+ 'dark:text': findShade(palette, gray[900], { maxShade: 400, fromDarkest: true }) ?? 200,
299
+ 'dark:hover:text': findShade(palette, palette[950], { maxShade: 400, fromDarkest: true }) ?? 100,
300
+ };
301
+ }
302
+ /** Color map of icon columns (non-text contrast, 3:1). */
303
+ export function iconColumnColorMap(palette, gray) {
304
+ return { text: findShade(palette, 'oklch(1 0 0)', { minRatio: 3 }) ?? 900, 'dark:text': findShade(palette, gray[800], { minRatio: 3, maxShade: 600, fromDarkest: true }) ?? 200 };
305
+ }
306
+ /** Color map of icon buttons (non-text contrast 3:1 on gray-50 / gray-700). */
307
+ export function iconButtonColorMap(palette, gray) {
308
+ const light = findShade(palette, gray[50], { minRatio: 3 });
309
+ const dark = findShade(palette, gray[700], { minRatio: 3, maxShade: 500, fromDarkest: true });
310
+ // Above 500 the shade is already dark: hover darkens it instead of lightening it.
311
+ const [text, hoverText] = light === null ? [900, 800] : light > 500 ? [light, light + 100] : [light + 100, light];
312
+ return { text, 'hover:text': hoverText, 'dark:text': dark ?? 200, 'dark:hover:text': dark === null ? 100 : dark - 100 };
313
+ }
314
+ /** Color map of toggles (non-text contrast, 3:1). */
315
+ export function toggleColorMap(palette, gray) {
316
+ return { bg: findShade(palette, gray[50], { minRatio: 3 }) ?? 900, text: findShade(palette, 'oklch(1 0 0)', { minRatio: 3 }) ?? 900, 'dark:bg': findShade(palette, gray[700], { minRatio: 3, fromDarkest: true }) ?? 200 };
317
+ }
318
+ export function linkColorMap(palette, gray) {
319
+ return { text: findShade(palette, gray[50]) ?? 900, 'dark:text': findShade(palette, gray[700], { maxShade: 400, fromDarkest: true }) ?? 200 };
320
+ }
321
+ /** Outlined button: only the text color depends on the palette. */
322
+ export function outlinedButtonColorMap(palette, gray) {
323
+ return { text: findShade(palette, gray[50]) ?? 900, 'dark:text': findShade(palette, gray[700], { maxShade: 500, fromDarkest: true }) ?? 200 };
324
+ }
325
+ /** Color map of each colored component. */
326
+ const COMPONENT_COLOR_MAPS = {
327
+ button: (palette) => buttonColorMap(palette),
328
+ 'button-outlined': outlinedButtonColorMap,
329
+ badge: badgeColorMap,
330
+ link: linkColorMap,
331
+ 'dropdown-item': dropdownItemColorMap,
332
+ 'icon-column': iconColumnColorMap,
333
+ 'icon-button': iconButtonColorMap,
334
+ toggle: toggleColorMap,
335
+ // Stat description and stat chart (the chart only gets `fi-color`).
336
+ 'stat-description': (palette, gray) => ({ text: findShade(palette, 'oklch(1 0 0)', { minShade: 600 }) ?? 950, 'dark:text': findShade(palette, gray[900], { maxShade: 400, fromDarkest: true }) ?? 200 }),
337
+ 'stat-chart': () => ({}),
338
+ // Colored text of a column or entry: fixed 500 / 400 for gray, otherwise the same contrast search as stat descriptions.
339
+ text: (palette, gray) => (palette === gray ? { text: 500, 'dark:text': 400 } : { text: findShade(palette, 'oklch(1 0 0)', { minShade: 600 }) ?? 950, 'dark:text': findShade(palette, gray[900], { maxShade: 400, fromDarkest: true }) ?? 50 }),
340
+ };
341
+ const CLASS_FOR = {
342
+ bg: (s) => `fi-bg-color-${s}`, 'hover:bg': (s) => `hover:fi-bg-color-${s}`, 'dark:bg': (s) => `dark:fi-bg-color-${s}`, 'dark:hover:bg': (s) => `dark:hover:fi-bg-color-${s}`,
343
+ text: (s) => `fi-text-color-${s}`, 'hover:text': (s) => `hover:fi-text-color-${s}`, 'dark:text': (s) => `dark:fi-text-color-${s}`, 'dark:hover:text': (s) => `dark:hover:fi-text-color-${s}`,
344
+ };
345
+ /** Registers named palettes and computes the color classes of components. */
346
+ export class ColorManager {
347
+ static DEFAULT_COLORS = { danger: Color.Red, gray: Color.Zinc, info: Color.Blue, primary: Color.Amber, success: Color.Green, warning: Color.Amber };
348
+ colors = { ...ColorManager.DEFAULT_COLORS };
349
+ cache = new Map();
350
+ /** Per-request colors (theme picked by the user); they take precedence over the panel's colors. */
351
+ scope = new AsyncLocalStorage();
352
+ register(colors) { for (const [name, color] of Object.entries(colors))
353
+ this.colors[name] = toPalette(color); this.cache.clear(); return this; }
354
+ /** Runs `fn` with colors that only apply to this request; `key` identifies the color set for caching. */
355
+ runWith(key, colors, fn) {
356
+ return this.scope.run({ key, colors: Object.fromEntries(Object.entries(colors).map(([name, color]) => [name, toPalette(color)])) }, fn);
357
+ }
358
+ getColors() { return { ...this.colors, ...(this.scope.getStore()?.colors ?? {}) }; }
359
+ getColor(name) { return this.scope.getStore()?.colors[name] ?? this.colors[name]; }
360
+ /** Color classes of a colored component. */
361
+ getComponentClasses(component, color) {
362
+ if (!color)
363
+ return [];
364
+ const key = `${this.scope.getStore()?.key ?? ''}:${component}:${color}`;
365
+ const hit = this.cache.get(key);
366
+ if (hit)
367
+ return hit;
368
+ let classes = [];
369
+ // Gray is the button's default color and gets no color classes; other components still get them.
370
+ if (color !== 'gray' || component !== 'button') {
371
+ classes = ['fi-color', 'fi-color-' + color.replace(/[^a-zA-Z0-9_-]/g, '')];
372
+ const palette = this.getColor(color);
373
+ if (palette) {
374
+ const gray = this.getColor('gray');
375
+ const map = COMPONENT_COLOR_MAPS[component](palette, gray);
376
+ classes.push(...Object.entries(map).map(([k, shade]) => CLASS_FOR[k](shade)));
377
+ }
378
+ }
379
+ this.cache.set(key, classes);
380
+ return classes;
381
+ }
382
+ /** `<style>` block defining the `--<color>-<shade>` variables, injected into `<head>`. */
383
+ renderCssVariables() {
384
+ const vars = Object.entries(this.getColors()).map(([name, palette]) => Object.entries(palette).map(([shade, value]) => ` --${name}-${shade}:${value}; `).join('')).join('');
385
+ return `<style>\n :root {\n ${vars}}\n</style>`;
386
+ }
387
+ }
388
+ // ------------------------------------------------------------------ icons
389
+ const iconCache = new Map();
390
+ /** Heroicons icon (`m-eye`, `o-user`, `s-…`, `c-…`) with the `fi-icon fi-size-<size>` classes. */
391
+ export function icon(name, options = {}) {
392
+ let svg = iconCache.get(name);
393
+ if (svg === undefined) {
394
+ const file = here(`../icons/heroicons/${name.replace(/^heroicon-/, '')}.svg`);
395
+ if (!existsSync(file))
396
+ throw new Error(`Icon not found: ${name}`);
397
+ svg = readFileSync(file, 'utf8').trim();
398
+ iconCache.set(name, svg);
399
+ }
400
+ const a = (options.attributes ?? new Attributes()).class(['fi-icon', `fi-size-${options.size ?? 'md'}`]);
401
+ return svg.replace(/^<svg/, `<svg ${a.toHtml()}`);
402
+ }
403
+ /** Registers a non-Heroicons icon (brand logo, custom glyph): a full `<svg>` supplied by the application, never by end users (it is not sanitized). */
404
+ export function registerIcon(name, svg) {
405
+ if (!/^<svg[\s>]/.test(svg.trim()))
406
+ throw new Error(`registerIcon(${name}) expects an <svg> element.`);
407
+ iconCache.set(name, svg.trim());
408
+ }
409
+ /** Loading spinner SVG. */
410
+ export function loadingIndicator(attributes = new Attributes(), size = 'md') {
411
+ const a = attributes.class(['fi-icon fi-loading-indicator', `fi-size-${size}`]);
412
+ return `<svg fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" ${a.toHtml()}><path clip-rule="evenodd" d="M12 19C15.866 19 19 15.866 19 12C19 8.13401 15.866 5 12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19ZM12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z" fill-rule="evenodd" fill="currentColor" opacity="0.2"></path><path d="M2 12C2 6.47715 6.47715 2 12 2V5C8.13401 5 5 8.13401 5 12H2Z" fill="currentColor"></path></svg>`;
413
+ }
414
+ // ------------------------------------------------------------------ namespaced, overridable EJS views
415
+ /** View registry: `filament-forms::components.text-input` resolves to an EJS file; override directories are checked first. */
416
+ export class ViewRegistry {
417
+ namespaces = new Map();
418
+ overrides = [];
419
+ compiled = new Map();
420
+ shared = {};
421
+ namespace(name, dir) { this.namespaces.set(name, dir); return this; }
422
+ /** Application override directory: `<dir>/<namespace>/<path>.ejs` replaces the package view. */
423
+ overrideFrom(dir) { this.overrides.unshift(dir); this.compiled.clear(); return this; }
424
+ share(data) { Object.assign(this.shared, data); return this; }
425
+ resolve(view) {
426
+ const [ns, name] = view.split('::');
427
+ const rel = name.replace(/\./g, '/') + '.ejs';
428
+ for (const dir of this.overrides) {
429
+ const f = path.join(dir, ns, rel);
430
+ if (existsSync(f))
431
+ return f;
432
+ }
433
+ const base = this.namespaces.get(ns);
434
+ if (!base)
435
+ throw new Error(`Unknown view namespace: ${ns}`);
436
+ return path.join(base, rel);
437
+ }
438
+ render(view, data = {}) {
439
+ let fn = this.compiled.get(view);
440
+ if (!fn) {
441
+ const file = this.resolve(view);
442
+ fn = ejs.compile(readFileSync(file, 'utf8'), { filename: file });
443
+ this.compiled.set(view, fn);
444
+ }
445
+ return fn({ e, js, cls, attrs, icon, loadingIndicator, view: (v, d) => this.render(v, d), ...this.shared, ...data });
446
+ }
447
+ }
448
+ export const views = new ViewRegistry();
449
+ // ------------------------------------------------------------------ global configuration
450
+ const configurators = new Map();
451
+ /** Registers a callback applied to every instance of the class (and its subclasses) created afterwards by `make()`. */
452
+ export function configureUsing(cls, configure) {
453
+ configurators.set(cls, [...(configurators.get(cls) ?? []), configure]);
454
+ }
455
+ /** Applies the global callbacks to a new instance, from the most general class to the most specific. */
456
+ export function configured(instance) {
457
+ if (!configurators.size)
458
+ return instance;
459
+ const chain = [];
460
+ for (let cls = instance.constructor; cls && cls !== Object && cls !== Function.prototype; cls = Object.getPrototypeOf(cls))
461
+ chain.unshift(cls);
462
+ for (const cls of chain)
463
+ for (const configure of configurators.get(cls) ?? [])
464
+ configure(instance);
465
+ return instance;
466
+ }
467
+ /** Forgets all global callbacks (for tests). */
468
+ export function resetConfigurators() { configurators.clear(); }
469
+ const UNSCOPED = Symbol('unscoped');
470
+ /** Render hook registry. Unscoped hooks render everywhere; scoped hooks only when the call carries one of their scopes. */
471
+ export class RenderHookRegistry {
472
+ hooks = new Map();
473
+ register(name, hook, scopes = null) {
474
+ const byScope = this.hooks.get(name) ?? new Map();
475
+ this.hooks.set(name, byScope);
476
+ const list = scopes === null || scopes === undefined ? [UNSCOPED] : Array.isArray(scopes) ? scopes : [scopes];
477
+ for (const scope of list)
478
+ byScope.set(scope, [...(byScope.get(scope) ?? []), hook]);
479
+ return this;
480
+ }
481
+ /** Hooks to render for a call: unscoped first, then scope by scope, each hook once. */
482
+ collect(name, scopes) {
483
+ const byScope = this.hooks.get(name);
484
+ if (!byScope)
485
+ return [];
486
+ const found = [];
487
+ for (const scope of [UNSCOPED, ...scopes])
488
+ for (const hook of byScope.get(scope) ?? [])
489
+ if (!found.includes(hook))
490
+ found.push(hook);
491
+ return found;
492
+ }
493
+ has(name, scopes = null) { return this.collect(name, toScopes(scopes)).length > 0; }
494
+ render(name, scopes = null, data = {}) {
495
+ const list = toScopes(scopes);
496
+ return this.collect(name, list).map((hook) => hook({ scopes: list, data }) ?? '').join('');
497
+ }
498
+ clear() { this.hooks.clear(); }
499
+ }
500
+ const toScopes = (scopes) => (scopes === null || scopes === undefined ? [] : Array.isArray(scopes) ? scopes : [scopes]);
501
+ /** Process-wide hooks (all panels). */
502
+ export const renderHooks = new RenderHookRegistry();
503
+ const renderHookScope = new AsyncLocalStorage();
504
+ /** Renders with an extra registry (the request panel's) on top of the process-wide hooks. */
505
+ export function runWithRenderHooks(registry, fn) { return renderHookScope.run(registry, fn); }
506
+ const activeRegistries = () => { const own = renderHookScope.getStore(); return own && own !== renderHooks ? [renderHooks, own] : [renderHooks]; };
507
+ /** Renders a slot: process-wide hooks, then the current panel's hooks. */
508
+ export function renderHook(name, scopes = null, data = {}) {
509
+ return activeRegistries().map((registry) => registry.render(name, scopes, data)).join('');
510
+ }
511
+ export function hasRenderHook(name, scopes = null) {
512
+ return activeRegistries().some((registry) => registry.has(name, scopes));
513
+ }
514
+ views.share({ renderHook, hasRenderHook });