@beautinique/frontend-components 1.0.8 → 1.0.9

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 (380) hide show
  1. package/README.md +225 -16
  2. package/dist/auth/SocialAuth.d.cts +33 -0
  3. package/dist/auth/SocialAuth.d.cts.map +1 -0
  4. package/dist/auth/SocialAuth.d.ts +33 -0
  5. package/dist/auth/SocialAuth.d.ts.map +1 -0
  6. package/dist/auth/index.cjs +34 -26
  7. package/dist/auth/index.cjs.map +1 -1
  8. package/dist/auth/index.d.cts +1 -0
  9. package/dist/auth/index.d.cts.map +1 -1
  10. package/dist/auth/index.d.ts +1 -0
  11. package/dist/auth/index.d.ts.map +1 -1
  12. package/dist/auth/index.js +32 -25
  13. package/dist/auth/index.js.map +1 -1
  14. package/dist/breadcrumb/Breadcrumb.d.cts +34 -0
  15. package/dist/breadcrumb/Breadcrumb.d.cts.map +1 -0
  16. package/dist/breadcrumb/Breadcrumb.d.ts +34 -0
  17. package/dist/breadcrumb/Breadcrumb.d.ts.map +1 -0
  18. package/dist/breadcrumb/breadcrumb-icons.d.cts +6 -0
  19. package/dist/breadcrumb/breadcrumb-icons.d.cts.map +1 -0
  20. package/dist/breadcrumb/breadcrumb-icons.d.ts +6 -0
  21. package/dist/breadcrumb/breadcrumb-icons.d.ts.map +1 -0
  22. package/dist/breadcrumb/getBreadcrumbItems.d.cts +16 -0
  23. package/dist/breadcrumb/getBreadcrumbItems.d.cts.map +1 -0
  24. package/dist/breadcrumb/getBreadcrumbItems.d.ts +16 -0
  25. package/dist/breadcrumb/getBreadcrumbItems.d.ts.map +1 -0
  26. package/dist/breadcrumb/index.cjs +110 -0
  27. package/dist/breadcrumb/index.cjs.map +1 -0
  28. package/dist/breadcrumb/index.d.cts +3 -0
  29. package/dist/breadcrumb/index.d.cts.map +1 -0
  30. package/dist/breadcrumb/index.d.ts +3 -0
  31. package/dist/breadcrumb/index.d.ts.map +1 -0
  32. package/dist/breadcrumb/index.js +107 -0
  33. package/dist/breadcrumb/index.js.map +1 -0
  34. package/dist/color-input/ColorInput.d.cts +33 -0
  35. package/dist/color-input/ColorInput.d.cts.map +1 -0
  36. package/dist/color-input/ColorInput.d.ts +33 -0
  37. package/dist/color-input/ColorInput.d.ts.map +1 -0
  38. package/dist/color-input/color-input-icons.d.cts +6 -0
  39. package/dist/color-input/color-input-icons.d.cts.map +1 -0
  40. package/dist/color-input/color-input-icons.d.ts +6 -0
  41. package/dist/color-input/color-input-icons.d.ts.map +1 -0
  42. package/dist/color-input/color.d.cts +10 -0
  43. package/dist/color-input/color.d.cts.map +1 -0
  44. package/dist/color-input/color.d.ts +10 -0
  45. package/dist/color-input/color.d.ts.map +1 -0
  46. package/dist/color-input/index.cjs +375 -0
  47. package/dist/color-input/index.cjs.map +1 -0
  48. package/dist/color-input/index.d.cts +2 -0
  49. package/dist/color-input/index.d.cts.map +1 -0
  50. package/dist/color-input/index.d.ts +2 -0
  51. package/dist/color-input/index.d.ts.map +1 -0
  52. package/dist/color-input/index.js +373 -0
  53. package/dist/color-input/index.js.map +1 -0
  54. package/dist/file-input/FileInput.d.cts +53 -0
  55. package/dist/file-input/FileInput.d.cts.map +1 -0
  56. package/dist/file-input/FileInput.d.ts +53 -0
  57. package/dist/file-input/FileInput.d.ts.map +1 -0
  58. package/dist/file-input/file-input-icons.d.cts +6 -0
  59. package/dist/file-input/file-input-icons.d.cts.map +1 -0
  60. package/dist/file-input/file-input-icons.d.ts +6 -0
  61. package/dist/file-input/file-input-icons.d.ts.map +1 -0
  62. package/dist/file-input/index.cjs +259 -0
  63. package/dist/file-input/index.cjs.map +1 -0
  64. package/dist/file-input/index.d.cts +3 -0
  65. package/dist/file-input/index.d.cts.map +1 -0
  66. package/dist/file-input/index.d.ts +3 -0
  67. package/dist/file-input/index.d.ts.map +1 -0
  68. package/dist/file-input/index.js +256 -0
  69. package/dist/file-input/index.js.map +1 -0
  70. package/dist/file-input/media-type.d.cts +8 -0
  71. package/dist/file-input/media-type.d.cts.map +1 -0
  72. package/dist/file-input/media-type.d.ts +8 -0
  73. package/dist/file-input/media-type.d.ts.map +1 -0
  74. package/dist/file-input/useObjectUrls.d.cts +10 -0
  75. package/dist/file-input/useObjectUrls.d.cts.map +1 -0
  76. package/dist/file-input/useObjectUrls.d.ts +10 -0
  77. package/dist/file-input/useObjectUrls.d.ts.map +1 -0
  78. package/dist/hierarchy-select/HierarchySelect.d.cts +58 -0
  79. package/dist/hierarchy-select/HierarchySelect.d.cts.map +1 -0
  80. package/dist/hierarchy-select/HierarchySelect.d.ts +58 -0
  81. package/dist/hierarchy-select/HierarchySelect.d.ts.map +1 -0
  82. package/dist/hierarchy-select/hierarchy-select-icons.d.cts +6 -0
  83. package/dist/hierarchy-select/hierarchy-select-icons.d.cts.map +1 -0
  84. package/dist/hierarchy-select/hierarchy-select-icons.d.ts +6 -0
  85. package/dist/hierarchy-select/hierarchy-select-icons.d.ts.map +1 -0
  86. package/dist/hierarchy-select/index.cjs +596 -0
  87. package/dist/hierarchy-select/index.cjs.map +1 -0
  88. package/dist/hierarchy-select/index.d.cts +2 -0
  89. package/dist/hierarchy-select/index.d.cts.map +1 -0
  90. package/dist/hierarchy-select/index.d.ts +2 -0
  91. package/dist/hierarchy-select/index.d.ts.map +1 -0
  92. package/dist/hierarchy-select/index.js +594 -0
  93. package/dist/hierarchy-select/index.js.map +1 -0
  94. package/dist/hierarchy-select/tree.d.cts +38 -0
  95. package/dist/hierarchy-select/tree.d.cts.map +1 -0
  96. package/dist/hierarchy-select/tree.d.ts +38 -0
  97. package/dist/hierarchy-select/tree.d.ts.map +1 -0
  98. package/dist/index.cjs +7 -0
  99. package/dist/index.d.cts +1 -0
  100. package/dist/index.d.cts.map +1 -1
  101. package/dist/index.d.ts +1 -0
  102. package/dist/index.d.ts.map +1 -1
  103. package/dist/index.js +1 -0
  104. package/dist/inputs/Checkbox.d.cts +21 -0
  105. package/dist/inputs/Checkbox.d.cts.map +1 -0
  106. package/dist/inputs/Checkbox.d.ts +21 -0
  107. package/dist/inputs/Checkbox.d.ts.map +1 -0
  108. package/dist/inputs/Input.d.cts +26 -0
  109. package/dist/inputs/Input.d.cts.map +1 -0
  110. package/dist/inputs/Input.d.ts +26 -0
  111. package/dist/inputs/Input.d.ts.map +1 -0
  112. package/dist/inputs/InputError.d.cts +11 -0
  113. package/dist/inputs/InputError.d.cts.map +1 -0
  114. package/dist/inputs/InputError.d.ts +11 -0
  115. package/dist/inputs/InputError.d.ts.map +1 -0
  116. package/dist/inputs/InputIcon.d.cts +9 -0
  117. package/dist/inputs/InputIcon.d.cts.map +1 -0
  118. package/dist/inputs/InputIcon.d.ts +9 -0
  119. package/dist/inputs/InputIcon.d.ts.map +1 -0
  120. package/dist/inputs/InputLabel.d.cts +8 -0
  121. package/dist/inputs/InputLabel.d.cts.map +1 -0
  122. package/dist/inputs/InputLabel.d.ts +8 -0
  123. package/dist/inputs/InputLabel.d.ts.map +1 -0
  124. package/dist/inputs/Radio.d.cts +25 -0
  125. package/dist/inputs/Radio.d.cts.map +1 -0
  126. package/dist/inputs/Radio.d.ts +25 -0
  127. package/dist/inputs/Radio.d.ts.map +1 -0
  128. package/dist/inputs/Select.d.cts +53 -0
  129. package/dist/inputs/Select.d.cts.map +1 -0
  130. package/dist/inputs/Select.d.ts +53 -0
  131. package/dist/inputs/Select.d.ts.map +1 -0
  132. package/dist/inputs/Textarea.d.cts +19 -0
  133. package/dist/inputs/Textarea.d.cts.map +1 -0
  134. package/dist/inputs/Textarea.d.ts +19 -0
  135. package/dist/inputs/Textarea.d.ts.map +1 -0
  136. package/dist/inputs/index.cjs +746 -0
  137. package/dist/inputs/index.cjs.map +1 -0
  138. package/dist/inputs/index.d.cts +10 -0
  139. package/dist/inputs/index.d.cts.map +1 -0
  140. package/dist/inputs/index.d.ts +10 -0
  141. package/dist/inputs/index.d.ts.map +1 -0
  142. package/dist/inputs/index.js +737 -0
  143. package/dist/inputs/index.js.map +1 -0
  144. package/dist/inputs/inputs-icons.d.cts +6 -0
  145. package/dist/inputs/inputs-icons.d.cts.map +1 -0
  146. package/dist/inputs/inputs-icons.d.ts +6 -0
  147. package/dist/inputs/inputs-icons.d.ts.map +1 -0
  148. package/dist/inputs/types.d.cts +48 -0
  149. package/dist/inputs/types.d.cts.map +1 -0
  150. package/dist/inputs/types.d.ts +48 -0
  151. package/dist/inputs/types.d.ts.map +1 -0
  152. package/dist/inputs/useFieldIds.d.cts +24 -0
  153. package/dist/inputs/useFieldIds.d.cts.map +1 -0
  154. package/dist/inputs/useFieldIds.d.ts +24 -0
  155. package/dist/inputs/useFieldIds.d.ts.map +1 -0
  156. package/dist/layout/ApiStatus.d.cts +20 -0
  157. package/dist/layout/ApiStatus.d.cts.map +1 -0
  158. package/dist/layout/ApiStatus.d.ts +20 -0
  159. package/dist/layout/ApiStatus.d.ts.map +1 -0
  160. package/dist/layout/BorderGradient.d.cts +11 -0
  161. package/dist/layout/BorderGradient.d.cts.map +1 -0
  162. package/dist/layout/BorderGradient.d.ts +11 -0
  163. package/dist/layout/BorderGradient.d.ts.map +1 -0
  164. package/dist/layout/ConfirmModal.d.cts +44 -0
  165. package/dist/layout/ConfirmModal.d.cts.map +1 -0
  166. package/dist/layout/ConfirmModal.d.ts +44 -0
  167. package/dist/layout/ConfirmModal.d.ts.map +1 -0
  168. package/dist/layout/Dropdown.d.cts +33 -0
  169. package/dist/layout/Dropdown.d.cts.map +1 -0
  170. package/dist/layout/Dropdown.d.ts +33 -0
  171. package/dist/layout/Dropdown.d.ts.map +1 -0
  172. package/dist/layout/LoadingPage.d.cts +11 -0
  173. package/dist/layout/LoadingPage.d.cts.map +1 -0
  174. package/dist/layout/LoadingPage.d.ts +11 -0
  175. package/dist/layout/LoadingPage.d.ts.map +1 -0
  176. package/dist/layout/LoadingRings.d.cts +12 -0
  177. package/dist/layout/LoadingRings.d.cts.map +1 -0
  178. package/dist/layout/LoadingRings.d.ts +12 -0
  179. package/dist/layout/LoadingRings.d.ts.map +1 -0
  180. package/dist/layout/LoadingText.d.cts +13 -0
  181. package/dist/layout/LoadingText.d.cts.map +1 -0
  182. package/dist/layout/LoadingText.d.ts +13 -0
  183. package/dist/layout/LoadingText.d.ts.map +1 -0
  184. package/dist/layout/ModalWrapper.d.cts +48 -0
  185. package/dist/layout/ModalWrapper.d.cts.map +1 -0
  186. package/dist/layout/ModalWrapper.d.ts +48 -0
  187. package/dist/layout/ModalWrapper.d.ts.map +1 -0
  188. package/dist/layout/NetworkStatusToaster.d.cts +39 -0
  189. package/dist/layout/NetworkStatusToaster.d.cts.map +1 -0
  190. package/dist/layout/NetworkStatusToaster.d.ts +39 -0
  191. package/dist/layout/NetworkStatusToaster.d.ts.map +1 -0
  192. package/dist/layout/ScrollableGradientContainer.d.cts +28 -0
  193. package/dist/layout/ScrollableGradientContainer.d.cts.map +1 -0
  194. package/dist/layout/ScrollableGradientContainer.d.ts +28 -0
  195. package/dist/layout/ScrollableGradientContainer.d.ts.map +1 -0
  196. package/dist/layout/Skeleton.d.cts +9 -0
  197. package/dist/layout/Skeleton.d.cts.map +1 -0
  198. package/dist/layout/Skeleton.d.ts +9 -0
  199. package/dist/layout/Skeleton.d.ts.map +1 -0
  200. package/dist/layout/Table.d.cts +9 -0
  201. package/dist/layout/Table.d.cts.map +1 -0
  202. package/dist/layout/Table.d.ts +9 -0
  203. package/dist/layout/Table.d.ts.map +1 -0
  204. package/dist/layout/index.cjs +743 -3
  205. package/dist/layout/index.cjs.map +1 -1
  206. package/dist/layout/index.d.cts +12 -0
  207. package/dist/layout/index.d.cts.map +1 -1
  208. package/dist/layout/index.d.ts +12 -0
  209. package/dist/layout/index.d.ts.map +1 -1
  210. package/dist/layout/index.js +724 -2
  211. package/dist/layout/index.js.map +1 -1
  212. package/dist/layout/layout-icons.d.cts +6 -0
  213. package/dist/layout/layout-icons.d.cts.map +1 -0
  214. package/dist/layout/layout-icons.d.ts +6 -0
  215. package/dist/layout/layout-icons.d.ts.map +1 -0
  216. package/dist/lib/dropdown-position.d.cts +33 -0
  217. package/dist/lib/dropdown-position.d.cts.map +1 -0
  218. package/dist/lib/dropdown-position.d.ts +33 -0
  219. package/dist/lib/dropdown-position.d.ts.map +1 -0
  220. package/dist/lib/focus.d.cts +3 -0
  221. package/dist/lib/focus.d.cts.map +1 -0
  222. package/dist/lib/focus.d.ts +3 -0
  223. package/dist/lib/focus.d.ts.map +1 -0
  224. package/dist/lib/icon-registry.d.cts +14 -0
  225. package/dist/lib/icon-registry.d.cts.map +1 -0
  226. package/dist/lib/icon-registry.d.ts +14 -0
  227. package/dist/lib/icon-registry.d.ts.map +1 -0
  228. package/dist/lib/mergeRefs.d.cts +10 -0
  229. package/dist/lib/mergeRefs.d.cts.map +1 -0
  230. package/dist/lib/mergeRefs.d.ts +10 -0
  231. package/dist/lib/mergeRefs.d.ts.map +1 -0
  232. package/dist/lib/scrollRowIntoView.d.cts +7 -0
  233. package/dist/lib/scrollRowIntoView.d.cts.map +1 -0
  234. package/dist/lib/scrollRowIntoView.d.ts +7 -0
  235. package/dist/lib/scrollRowIntoView.d.ts.map +1 -0
  236. package/dist/lib/typeahead.d.cts +21 -0
  237. package/dist/lib/typeahead.d.cts.map +1 -0
  238. package/dist/lib/typeahead.d.ts +21 -0
  239. package/dist/lib/typeahead.d.ts.map +1 -0
  240. package/dist/lib/useAnchoredBox.d.cts +26 -0
  241. package/dist/lib/useAnchoredBox.d.cts.map +1 -0
  242. package/dist/lib/useAnchoredBox.d.ts +26 -0
  243. package/dist/lib/useAnchoredBox.d.ts.map +1 -0
  244. package/dist/lib/useDismiss.d.cts +34 -0
  245. package/dist/lib/useDismiss.d.cts.map +1 -0
  246. package/dist/lib/useDismiss.d.ts +34 -0
  247. package/dist/lib/useDismiss.d.ts.map +1 -0
  248. package/dist/lib/useFocusTrap.d.cts +24 -0
  249. package/dist/lib/useFocusTrap.d.cts.map +1 -0
  250. package/dist/lib/useFocusTrap.d.ts +24 -0
  251. package/dist/lib/useFocusTrap.d.ts.map +1 -0
  252. package/dist/lib/useIsClient.d.cts +7 -0
  253. package/dist/lib/useIsClient.d.cts.map +1 -0
  254. package/dist/lib/useIsClient.d.ts +7 -0
  255. package/dist/lib/useIsClient.d.ts.map +1 -0
  256. package/dist/lib/usePrefersReducedMotion.d.cts +7 -0
  257. package/dist/lib/usePrefersReducedMotion.d.cts.map +1 -0
  258. package/dist/lib/usePrefersReducedMotion.d.ts +7 -0
  259. package/dist/lib/usePrefersReducedMotion.d.ts.map +1 -0
  260. package/dist/lib/useScrollLock.d.cts +7 -0
  261. package/dist/lib/useScrollLock.d.cts.map +1 -0
  262. package/dist/lib/useScrollLock.d.ts +7 -0
  263. package/dist/lib/useScrollLock.d.ts.map +1 -0
  264. package/dist/lib/useScrollable.d.cts +17 -0
  265. package/dist/lib/useScrollable.d.cts.map +1 -0
  266. package/dist/lib/useScrollable.d.ts +17 -0
  267. package/dist/lib/useScrollable.d.ts.map +1 -0
  268. package/dist/loading-screen/LoadingScreen.d.cts +21 -0
  269. package/dist/loading-screen/LoadingScreen.d.cts.map +1 -0
  270. package/dist/loading-screen/LoadingScreen.d.ts +21 -0
  271. package/dist/loading-screen/LoadingScreen.d.ts.map +1 -0
  272. package/dist/loading-screen/Teddy.d.cts +10 -0
  273. package/dist/loading-screen/Teddy.d.cts.map +1 -0
  274. package/dist/loading-screen/Teddy.d.ts +10 -0
  275. package/dist/loading-screen/Teddy.d.ts.map +1 -0
  276. package/dist/loading-screen/WakeUpProgress.d.cts +16 -0
  277. package/dist/loading-screen/WakeUpProgress.d.cts.map +1 -0
  278. package/dist/loading-screen/WakeUpProgress.d.ts +16 -0
  279. package/dist/loading-screen/WakeUpProgress.d.ts.map +1 -0
  280. package/dist/loading-screen/beauty-facts.d.cts +4 -0
  281. package/dist/loading-screen/beauty-facts.d.cts.map +1 -0
  282. package/dist/loading-screen/beauty-facts.d.ts +4 -0
  283. package/dist/loading-screen/beauty-facts.d.ts.map +1 -0
  284. package/dist/loading-screen/index.cjs +405 -0
  285. package/dist/loading-screen/index.cjs.map +1 -0
  286. package/dist/loading-screen/index.d.cts +5 -0
  287. package/dist/loading-screen/index.d.cts.map +1 -0
  288. package/dist/loading-screen/index.d.ts +5 -0
  289. package/dist/loading-screen/index.d.ts.map +1 -0
  290. package/dist/loading-screen/index.js +400 -0
  291. package/dist/loading-screen/index.js.map +1 -0
  292. package/dist/loading-screen/loading-screen-icons.d.cts +6 -0
  293. package/dist/loading-screen/loading-screen-icons.d.cts.map +1 -0
  294. package/dist/loading-screen/loading-screen-icons.d.ts +6 -0
  295. package/dist/loading-screen/loading-screen-icons.d.ts.map +1 -0
  296. package/dist/media/MediaCarousel.d.cts +30 -0
  297. package/dist/media/MediaCarousel.d.cts.map +1 -0
  298. package/dist/media/MediaCarousel.d.ts +30 -0
  299. package/dist/media/MediaCarousel.d.ts.map +1 -0
  300. package/dist/media/MediaCarouselWithModal.d.cts +17 -0
  301. package/dist/media/MediaCarouselWithModal.d.cts.map +1 -0
  302. package/dist/media/MediaCarouselWithModal.d.ts +17 -0
  303. package/dist/media/MediaCarouselWithModal.d.ts.map +1 -0
  304. package/dist/media/MediaCarouselWithParentMedia.d.cts +30 -0
  305. package/dist/media/MediaCarouselWithParentMedia.d.cts.map +1 -0
  306. package/dist/media/MediaCarouselWithParentMedia.d.ts +30 -0
  307. package/dist/media/MediaCarouselWithParentMedia.d.ts.map +1 -0
  308. package/dist/media/MediaModal.d.cts +27 -0
  309. package/dist/media/MediaModal.d.cts.map +1 -0
  310. package/dist/media/MediaModal.d.ts +27 -0
  311. package/dist/media/MediaModal.d.ts.map +1 -0
  312. package/dist/media/VideoPlayer.d.cts +37 -0
  313. package/dist/media/VideoPlayer.d.cts.map +1 -0
  314. package/dist/media/VideoPlayer.d.ts +37 -0
  315. package/dist/media/VideoPlayer.d.ts.map +1 -0
  316. package/dist/media/captureVideoPoster.d.cts +20 -0
  317. package/dist/media/captureVideoPoster.d.cts.map +1 -0
  318. package/dist/media/captureVideoPoster.d.ts +20 -0
  319. package/dist/media/captureVideoPoster.d.ts.map +1 -0
  320. package/dist/media/index.cjs +613 -0
  321. package/dist/media/index.cjs.map +1 -0
  322. package/dist/media/index.d.cts +8 -0
  323. package/dist/media/index.d.cts.map +1 -0
  324. package/dist/media/index.d.ts +8 -0
  325. package/dist/media/index.d.ts.map +1 -0
  326. package/dist/media/index.js +605 -0
  327. package/dist/media/index.js.map +1 -0
  328. package/dist/media/labels.d.cts +33 -0
  329. package/dist/media/labels.d.cts.map +1 -0
  330. package/dist/media/labels.d.ts +33 -0
  331. package/dist/media/labels.d.ts.map +1 -0
  332. package/dist/media/media-icons.d.cts +6 -0
  333. package/dist/media/media-icons.d.cts.map +1 -0
  334. package/dist/media/media-icons.d.ts +6 -0
  335. package/dist/media/media-icons.d.ts.map +1 -0
  336. package/dist/media/streaming.d.cts +18 -0
  337. package/dist/media/streaming.d.cts.map +1 -0
  338. package/dist/media/streaming.d.ts +18 -0
  339. package/dist/media/streaming.d.ts.map +1 -0
  340. package/dist/resend/index.cjs +5 -28
  341. package/dist/resend/index.cjs.map +1 -1
  342. package/dist/resend/index.js +1 -24
  343. package/dist/resend/index.js.map +1 -1
  344. package/dist/static-page/StaticPage.d.cts +91 -0
  345. package/dist/static-page/StaticPage.d.cts.map +1 -0
  346. package/dist/static-page/StaticPage.d.ts +91 -0
  347. package/dist/static-page/StaticPage.d.ts.map +1 -0
  348. package/dist/static-page/index.cjs +247 -0
  349. package/dist/static-page/index.cjs.map +1 -0
  350. package/dist/static-page/index.d.cts +2 -0
  351. package/dist/static-page/index.d.cts.map +1 -0
  352. package/dist/static-page/index.d.ts +2 -0
  353. package/dist/static-page/index.d.ts.map +1 -0
  354. package/dist/static-page/index.js +235 -0
  355. package/dist/static-page/index.js.map +1 -0
  356. package/dist/static-page/static-page-icons.d.cts +6 -0
  357. package/dist/static-page/static-page-icons.d.cts.map +1 -0
  358. package/dist/static-page/static-page-icons.d.ts +6 -0
  359. package/dist/static-page/static-page-icons.d.ts.map +1 -0
  360. package/dist/testimonials/TestimonialCarousel.d.cts +40 -0
  361. package/dist/testimonials/TestimonialCarousel.d.cts.map +1 -0
  362. package/dist/testimonials/TestimonialCarousel.d.ts +40 -0
  363. package/dist/testimonials/TestimonialCarousel.d.ts.map +1 -0
  364. package/dist/testimonials/index.cjs +246 -0
  365. package/dist/testimonials/index.cjs.map +1 -0
  366. package/dist/testimonials/index.d.cts +2 -0
  367. package/dist/testimonials/index.d.cts.map +1 -0
  368. package/dist/testimonials/index.d.ts +2 -0
  369. package/dist/testimonials/index.d.ts.map +1 -0
  370. package/dist/testimonials/index.js +244 -0
  371. package/dist/testimonials/index.js.map +1 -0
  372. package/dist/testimonials/testimonials-icons.d.cts +6 -0
  373. package/dist/testimonials/testimonials-icons.d.cts.map +1 -0
  374. package/dist/testimonials/testimonials-icons.d.ts +6 -0
  375. package/dist/testimonials/testimonials-icons.d.ts.map +1 -0
  376. package/dist/toast/index.cjs +2 -38
  377. package/dist/toast/index.cjs.map +1 -1
  378. package/dist/toast/index.js +1 -37
  379. package/dist/toast/index.js.map +1 -1
  380. package/package.json +67 -1
@@ -0,0 +1,596 @@
1
+ 'use strict';
2
+
3
+ var react = require('@iconify/react');
4
+ var react$1 = require('react');
5
+ var reactDom = require('react-dom');
6
+ var inputs = require('@beautinique/frontend-components/inputs');
7
+ var layout = require('@beautinique/frontend-components/layout');
8
+ var jsxRuntime = require('react/jsx-runtime');
9
+
10
+ var __defProp = Object.defineProperty;
11
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
12
+
13
+ // src/lib/dropdown-position.ts
14
+ var DROPDOWN_GAP = 8;
15
+ var getDropdownPlacement = /* @__PURE__ */ __name(({
16
+ rect,
17
+ viewportHeight,
18
+ desired,
19
+ needed
20
+ }) => {
21
+ const below = viewportHeight - rect.bottom - DROPDOWN_GAP;
22
+ const above = rect.top - DROPDOWN_GAP;
23
+ const room = desired === "bottom" ? below : above;
24
+ const other = desired === "bottom" ? above : below;
25
+ if (room >= needed || other <= room) return desired;
26
+ return desired === "bottom" ? "top" : "bottom";
27
+ }, "getDropdownPlacement");
28
+ var getDropdownStyle = /* @__PURE__ */ __name((rect, placement, viewportHeight) => ({
29
+ left: rect.left,
30
+ width: rect.width,
31
+ ...placement === "top" ? { bottom: viewportHeight - rect.top + DROPDOWN_GAP } : { top: rect.bottom + DROPDOWN_GAP }
32
+ }), "getDropdownStyle");
33
+
34
+ // src/lib/scrollRowIntoView.ts
35
+ var scrollRowIntoView = /* @__PURE__ */ __name((list, row) => {
36
+ const top = row.offsetTop;
37
+ const bottom = top + row.offsetHeight;
38
+ if (top < list.scrollTop) list.scrollTop = top;
39
+ else if (bottom > list.scrollTop + list.clientHeight) list.scrollTop = bottom - list.clientHeight;
40
+ }, "scrollRowIntoView");
41
+
42
+ // src/lib/typeahead.ts
43
+ var findEnabledIndex = /* @__PURE__ */ __name((options, from, step) => {
44
+ for (let index = from + step; index >= 0 && index < options.length; index += step) {
45
+ if (!options[index]?.disabled) return index;
46
+ }
47
+ return -1;
48
+ }, "findEnabledIndex");
49
+ var useAnchoredBox = /* @__PURE__ */ __name(({
50
+ isOpen,
51
+ anchorRef,
52
+ position,
53
+ needed
54
+ }) => {
55
+ const [box, setBox] = react$1.useState(null);
56
+ react$1.useLayoutEffect(() => {
57
+ if (!isOpen) return;
58
+ const update = /* @__PURE__ */ __name(() => {
59
+ const anchor = anchorRef.current;
60
+ if (!anchor) return;
61
+ const rect = anchor.getBoundingClientRect();
62
+ setBox({
63
+ rect,
64
+ placement: getDropdownPlacement({
65
+ rect,
66
+ viewportHeight: window.innerHeight,
67
+ desired: position,
68
+ needed
69
+ })
70
+ });
71
+ }, "update");
72
+ update();
73
+ window.addEventListener("scroll", update, true);
74
+ window.addEventListener("resize", update);
75
+ return () => {
76
+ window.removeEventListener("scroll", update, true);
77
+ window.removeEventListener("resize", update);
78
+ };
79
+ }, [isOpen, anchorRef, position, needed]);
80
+ return box;
81
+ }, "useAnchoredBox");
82
+ var openStack = [];
83
+ var useDismiss = /* @__PURE__ */ __name((onDismiss, { enabled = true, ignore, outside = true, escape = true } = {}) => {
84
+ const ref = react$1.useRef(null);
85
+ const onDismissRef = react$1.useRef(onDismiss);
86
+ const ignoreRef = react$1.useRef(ignore);
87
+ react$1.useLayoutEffect(() => {
88
+ onDismissRef.current = onDismiss;
89
+ ignoreRef.current = ignore;
90
+ });
91
+ react$1.useEffect(() => {
92
+ if (!enabled) return;
93
+ const token = /* @__PURE__ */ Symbol("dismissable");
94
+ if (escape) openStack.push(token);
95
+ const handlePress = /* @__PURE__ */ __name((event) => {
96
+ const element = ref.current;
97
+ if (!outside || !element) return;
98
+ const path = event.composedPath();
99
+ const isInside = path.includes(element) || (ignoreRef.current ?? []).some(({ current }) => current !== null && path.includes(current));
100
+ if (!isInside) onDismissRef.current("outside", event);
101
+ }, "handlePress");
102
+ const handleKey = /* @__PURE__ */ __name((event) => {
103
+ if (!escape || event.key !== "Escape" || event.defaultPrevented) return;
104
+ if (openStack.at(-1) !== token) return;
105
+ onDismissRef.current("escape", event);
106
+ }, "handleKey");
107
+ document.addEventListener("pointerdown", handlePress, true);
108
+ document.addEventListener("keydown", handleKey);
109
+ return () => {
110
+ document.removeEventListener("pointerdown", handlePress, true);
111
+ document.removeEventListener("keydown", handleKey);
112
+ const index = openStack.indexOf(token);
113
+ if (index !== -1) openStack.splice(index, 1);
114
+ };
115
+ }, [enabled, outside, escape]);
116
+ return ref;
117
+ }, "useDismiss");
118
+ var createIconRegistry = /* @__PURE__ */ __name((sets) => {
119
+ let registered = false;
120
+ return {
121
+ register: /* @__PURE__ */ __name(() => {
122
+ if (registered) return;
123
+ for (const set of sets) react.addCollection(set);
124
+ registered = true;
125
+ }, "register"),
126
+ names: sets.flatMap(
127
+ ({ prefix, icons, aliases }) => [...Object.keys(icons), ...Object.keys(aliases ?? {})].map((name) => `${prefix}:${name}`)
128
+ )
129
+ };
130
+ }, "createIconRegistry");
131
+
132
+ // src/hierarchy-select/hierarchy-select-icons.ts
133
+ var ICON_SETS = [
134
+ {
135
+ prefix: "solar",
136
+ width: 24,
137
+ height: 24,
138
+ icons: {
139
+ "alt-arrow-down-linear": {
140
+ body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M19 9L12 15L5 9"/>'
141
+ },
142
+ "alt-arrow-right-linear": {
143
+ body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M9 5L15 12L9 19"/>'
144
+ },
145
+ "folder-open-linear": {
146
+ body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-width="1.5"><path d="M4 11.5V5.71231C4 5.05041 4 4.71946 4.05548 4.44379C4.29971 3.23023 5.31225 2.28098 6.60671 2.05201C6.90076 2 7.25377 2 7.9598 2C8.26914 2 8.42381 2 8.57246 2.01303C9.21332 2.06921 9.82122 2.30528 10.3168 2.69039C10.4317 2.77971 10.5411 2.88224 10.7598 3.08731L11.2 3.5C11.8526 4.11183 12.1789 4.41775 12.5697 4.62157C12.7844 4.73353 13.012 4.82195 13.2483 4.88508C13.6783 5 14.1398 5 15.0627 5H15.3617C17.4676 5 18.5205 5 19.2049 5.5771C19.2679 5.63018 19.3278 5.68635 19.3844 5.74537C20 6.38701 20 7.37415 20 9.34843V11.5"/><path d="M10 17H14"/><path d="M3.47674 17.4839C2.99958 14.7678 2.761 13.4097 3.33908 12.433C3.4866 12.1838 3.66852 11.9582 3.87908 11.7634C4.7042 11 6.0379 11 8.7053 11H15.2947C17.9621 11 19.2958 11 20.1209 11.7634C20.3315 11.9582 20.5134 12.1838 20.6609 12.433C21.239 13.4097 21.0004 14.7678 20.5233 17.4839C20.1798 19.4391 20.008 20.4167 19.4129 21.0655C19.2585 21.2338 19.0858 21.383 18.8982 21.5101C18.175 22 17.2149 22 15.2947 22H8.70531C6.7851 22 5.825 22 5.10183 21.5101C4.9142 21.383 4.74145 21.2338 4.58706 21.0655C3.99198 20.4167 3.82024 19.4391 3.47674 17.4839Z"/></g>'
147
+ },
148
+ "folder-linear": {
149
+ body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-width="1.5"><path d="M18 10L13 10"/><path d="M2 6.94975C2 6.06722 2 5.62595 2.06935 5.25839C2.37464 3.64031 3.64031 2.37464 5.25839 2.06935C5.62595 2 6.06722 2 6.94975 2C7.33642 2 7.52976 2 7.71557 2.01738C8.51665 2.09229 9.27652 2.40704 9.89594 2.92051C10.0396 3.03961 10.1763 3.17633 10.4497 3.44975L11 4C11.8158 4.81578 12.2237 5.22367 12.7121 5.49543C12.9804 5.64471 13.2651 5.7626 13.5604 5.84678C14.0979 6 14.6747 6 15.8284 6H16.2021C18.8345 6 20.1506 6 21.0062 6.76946C21.0849 6.84024 21.1598 6.91514 21.2305 6.99383C22 7.84935 22 9.16554 22 11.7979V14C22 17.7712 22 19.6569 20.8284 20.8284C19.6569 22 17.7712 22 14 22H10C6.22876 22 4.34315 22 3.17157 20.8284C2 19.6569 2 17.7712 2 14V6.94975Z"/></g>'
150
+ },
151
+ "file-linear": {
152
+ body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-width="1.5"><path d="M13 2.2627V5.0003C13 7.35732 13 8.53583 13.7322 9.26806C14.4645 10.0003 15.643 10.0003 18 10.0003H21.58"/><path stroke-linejoin="round" d="M3.17139 3.17157C4.34296 2 6.23851 2 10.0296 2C11.5546 2 12.3173 2.00011 13.0093 2.26562C13.7012 2.53114 14.2651 3.03857 15.3929 4.05365L19.3516 7.61621C20.6558 8.78998 21.3078 9.3774 21.6538 10.1543C21.9998 10.9312 22 11.8079 22 13.5625V14C22 17.7712 22 19.6566 20.8284 20.8281C19.6569 21.9997 17.7712 22 14 22L9.9969 21.9997C6.22761 21.9997 4.34284 21.9997 3.17157 20.8284C2 19.6569 2 17.7712 2 14V9.9982C2 6.22817 2 4.34296 3.17139 3.17157Z"/></g>'
153
+ },
154
+ "unread-linear": {
155
+ body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M7 12.9L10.1429 16.5L18 7.5"/>'
156
+ },
157
+ "magnifier-linear": {
158
+ body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-width="1.5"><circle cx="11.5" cy="11.5" r="9.5"/><path d="M18.2173 18.2178L21.9999 22.0004"/></g>'
159
+ }
160
+ },
161
+ aliases: {
162
+ "magnifer-linear": { parent: "magnifier-linear" }
163
+ }
164
+ },
165
+ {
166
+ prefix: "lucide",
167
+ width: 24,
168
+ height: 24,
169
+ icons: {
170
+ x: {
171
+ body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M18 6L6 18M6 6l12 12"/>'
172
+ }
173
+ }
174
+ }
175
+ ];
176
+ var { register: registerHierarchySelectIcons, names: HIERARCHY_SELECT_ICON_NAMES } = createIconRegistry(ICON_SETS);
177
+
178
+ // src/hierarchy-select/tree.ts
179
+ var searchTextOf = /* @__PURE__ */ __name((node) => node.searchLabel ?? (typeof node.label === "string" ? node.label : String(node.value)), "searchTextOf");
180
+ var filterTree = /* @__PURE__ */ __name((nodes, keyword) => {
181
+ const text = keyword.trim().toLowerCase();
182
+ if (!text) return nodes;
183
+ return nodes.flatMap((node) => {
184
+ if (searchTextOf(node).toLowerCase().includes(text)) return [node];
185
+ const children = node.children ? filterTree(node.children, keyword) : [];
186
+ return children.length > 0 ? [{ ...node, children }] : [];
187
+ });
188
+ }, "filterTree");
189
+ var buildRows = /* @__PURE__ */ __name((nodes, expanded, forceExpanded, level = 1, parent) => nodes.flatMap((node, index) => {
190
+ const isBranch = !!node.children?.length;
191
+ const isExpanded = isBranch && (forceExpanded || expanded.includes(node.value));
192
+ const row = {
193
+ node,
194
+ level,
195
+ position: index + 1,
196
+ size: nodes.length,
197
+ isBranch,
198
+ isExpanded,
199
+ parent
200
+ };
201
+ return isExpanded ? [row, ...buildRows(node.children ?? [], expanded, forceExpanded, level + 1, node.value)] : [row];
202
+ }), "buildRows");
203
+ var findNode = /* @__PURE__ */ __name((nodes, value) => {
204
+ for (const node of nodes) {
205
+ if (node.value === value) return node;
206
+ const found = node.children ? findNode(node.children, value) : void 0;
207
+ if (found) return found;
208
+ }
209
+ return void 0;
210
+ }, "findNode");
211
+ var ancestorsOf = /* @__PURE__ */ __name((nodes, value, path = []) => {
212
+ for (const node of nodes) {
213
+ if (node.value === value) return path;
214
+ const found = node.children ? ancestorsOf(node.children, value, [...path, node.value]) : [];
215
+ if (found.length > 0) return found;
216
+ }
217
+ return [];
218
+ }, "ancestorsOf");
219
+ var LABELS = {
220
+ tree: "Options",
221
+ search: "Search options",
222
+ searchPlaceholder: "Search here...",
223
+ clearSearch: "Clear search",
224
+ noResultsTitle: "No matching options found",
225
+ noResultsDescription: "Try searching with a different keyword or clear the search.",
226
+ results: /* @__PURE__ */ __name((count) => `${String(count)} ${count === 1 ? "option" : "options"} found`, "results")
227
+ };
228
+ var POPUP_MAX_HEIGHT = 330;
229
+ var HierarchySelect = /* @__PURE__ */ __name(({
230
+ label = "",
231
+ className = "",
232
+ error = "",
233
+ containerClassName = "",
234
+ optionsClassName = "",
235
+ icons,
236
+ selectProps,
237
+ options,
238
+ position = "bottom",
239
+ inputProps,
240
+ labels
241
+ }) => {
242
+ registerHierarchySelectIcons();
243
+ const text = {
244
+ tree: labels?.tree ?? LABELS.tree,
245
+ search: labels?.search ?? LABELS.search,
246
+ searchPlaceholder: labels?.searchPlaceholder ?? LABELS.searchPlaceholder,
247
+ clearSearch: labels?.clearSearch ?? LABELS.clearSearch,
248
+ noResultsTitle: labels?.noResultsTitle ?? LABELS.noResultsTitle,
249
+ noResultsDescription: labels?.noResultsDescription ?? LABELS.noResultsDescription,
250
+ results: labels?.results ?? LABELS.results
251
+ };
252
+ const baseId = react$1.useId();
253
+ const triggerId = selectProps.id ?? `${baseId}-field`;
254
+ const popupId = `${baseId}-popup`;
255
+ const treeId = `${baseId}-tree`;
256
+ const errorId = `${baseId}-error`;
257
+ const rowId = /* @__PURE__ */ __name((index) => `${baseId}-row-${String(index)}`, "rowId");
258
+ const [isOpenState, setIsOpen] = react$1.useState(false);
259
+ const [ownSearch, setOwnSearch] = react$1.useState("");
260
+ const [expanded, setExpanded] = react$1.useState([]);
261
+ const [activeValue, setActiveValue] = react$1.useState(void 0);
262
+ const fieldBoxRef = react$1.useRef(null);
263
+ const triggerRef = react$1.useRef(null);
264
+ const popupRef = react$1.useRef(null);
265
+ const listRef = react$1.useRef(null);
266
+ const searchRef = react$1.useRef(null);
267
+ const activeRowRef = react$1.useRef(null);
268
+ const isSearchControlled = typeof inputProps?.value === "string";
269
+ const search = typeof inputProps?.value === "string" ? inputProps.value : ownSearch;
270
+ const isSearching = search.trim() !== "";
271
+ const canOpen = options.length > 0 && !selectProps.disabled;
272
+ if (isOpenState && !canOpen) setIsOpen(false);
273
+ const isOpen = isOpenState && canOpen;
274
+ const selected = findNode(options, selectProps.value);
275
+ const hasValue = selected !== void 0 && selected.value !== "";
276
+ const shown = react$1.useMemo(() => filterTree(options, search), [options, search]);
277
+ const rows = react$1.useMemo(
278
+ () => buildRows(shown, expanded, isSearching),
279
+ [shown, expanded, isSearching]
280
+ );
281
+ const navigable = rows.map((row) => ({ disabled: row.node.disabled }));
282
+ const foundIndex = rows.findIndex((row) => row.node.value === activeValue);
283
+ const firstChoosable = rows.findIndex((row) => !row.isBranch && !row.node.disabled);
284
+ const activeIndex = foundIndex === -1 && isSearching ? firstChoosable : foundIndex;
285
+ const activeRow = activeIndex === -1 ? void 0 : rows.at(activeIndex);
286
+ const popup = useAnchoredBox({
287
+ isOpen,
288
+ anchorRef: fieldBoxRef,
289
+ position,
290
+ needed: POPUP_MAX_HEIGHT
291
+ });
292
+ const close = /* @__PURE__ */ __name((returnFocus) => {
293
+ setIsOpen(false);
294
+ if (!isSearchControlled) setOwnSearch("");
295
+ if (returnFocus) triggerRef.current?.focus();
296
+ }, "close");
297
+ const containerRef = useDismiss(
298
+ (reason) => {
299
+ close(reason === "escape");
300
+ },
301
+ { enabled: isOpen, ignore: [popupRef] }
302
+ );
303
+ const open = /* @__PURE__ */ __name(() => {
304
+ if (!canOpen) return;
305
+ setExpanded(selected ? ancestorsOf(options, selected.value) : []);
306
+ setActiveValue(selected && !selected.disabled ? selected.value : void 0);
307
+ setIsOpen(true);
308
+ }, "open");
309
+ const toggle = /* @__PURE__ */ __name((value) => {
310
+ setExpanded(
311
+ (current) => current.includes(value) ? current.filter((item) => item !== value) : [...current, value]
312
+ );
313
+ }, "toggle");
314
+ const activate = /* @__PURE__ */ __name((row) => {
315
+ if (row.node.disabled) return;
316
+ setActiveValue(row.node.value);
317
+ if (row.isBranch) {
318
+ if (!isSearching) toggle(row.node.value);
319
+ return;
320
+ }
321
+ selectProps.onChange(row.node.value);
322
+ close(true);
323
+ }, "activate");
324
+ react$1.useEffect(() => {
325
+ const list = listRef.current;
326
+ const row = activeRowRef.current;
327
+ if (isOpen && list && row) scrollRowIntoView(list, row);
328
+ }, [isOpen, activeIndex, popup]);
329
+ const handleSearch = /* @__PURE__ */ __name((event) => {
330
+ inputProps?.onChange?.(event);
331
+ if (!isSearchControlled) setOwnSearch(event.target.value);
332
+ }, "handleSearch");
333
+ const clearSearch = /* @__PURE__ */ __name(() => {
334
+ const input = searchRef.current;
335
+ if (!input) return;
336
+ Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "value")?.set?.call(input, "");
337
+ input.dispatchEvent(new Event("input", { bubbles: true }));
338
+ input.focus();
339
+ }, "clearSearch");
340
+ const handleSearchKeyDown = /* @__PURE__ */ __name((event) => {
341
+ inputProps?.onKeyDown?.(event);
342
+ if (event.defaultPrevented || event.altKey || event.ctrlKey || event.metaKey) return;
343
+ switch (event.key) {
344
+ case "ArrowDown":
345
+ case "ArrowUp": {
346
+ event.preventDefault();
347
+ const next = activeIndex === -1 && event.key === "ArrowUp" ? findEnabledIndex(navigable, rows.length, -1) : findEnabledIndex(navigable, activeIndex, event.key === "ArrowDown" ? 1 : -1);
348
+ const target = next === -1 ? void 0 : rows.at(next);
349
+ if (target) setActiveValue(target.node.value);
350
+ return;
351
+ }
352
+ // Right and Left move the cursor in the text while there is a search: there is nothing to open
353
+ // or close then, because every branch is open
354
+ case "ArrowRight": {
355
+ if (isSearching || !activeRow?.isBranch) return;
356
+ event.preventDefault();
357
+ const firstChild = rows.at(activeIndex + 1);
358
+ if (!activeRow.isExpanded) toggle(activeRow.node.value);
359
+ else if (firstChild && !firstChild.node.disabled) setActiveValue(firstChild.node.value);
360
+ return;
361
+ }
362
+ case "ArrowLeft": {
363
+ if (isSearching || !activeRow) return;
364
+ if (activeRow.isExpanded) {
365
+ event.preventDefault();
366
+ toggle(activeRow.node.value);
367
+ } else if (activeRow.parent !== void 0) {
368
+ event.preventDefault();
369
+ setActiveValue(activeRow.parent);
370
+ }
371
+ return;
372
+ }
373
+ case "Enter":
374
+ event.preventDefault();
375
+ if (activeRow) activate(activeRow);
376
+ return;
377
+ case "Tab":
378
+ close(true);
379
+ return;
380
+ }
381
+ }, "handleSearchKeyDown");
382
+ const handleTriggerKeyDown = /* @__PURE__ */ __name((event) => {
383
+ if (isOpen || event.altKey || event.ctrlKey || event.metaKey) return;
384
+ if (event.key === "ArrowDown" || event.key === "ArrowUp") {
385
+ event.preventDefault();
386
+ open();
387
+ }
388
+ }, "handleTriggerKeyDown");
389
+ return /* @__PURE__ */ jsxRuntime.jsxs(
390
+ "div",
391
+ {
392
+ ref: containerRef,
393
+ className: `flex max-w-full min-w-0 flex-col gap-1.5 ${containerClassName}`,
394
+ children: [
395
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", ref: fieldBoxRef, children: [
396
+ /* @__PURE__ */ jsxRuntime.jsx(inputs.InputLabel, { htmlFor: triggerId, className: "z-2", children: label }),
397
+ /* @__PURE__ */ jsxRuntime.jsxs(
398
+ "div",
399
+ {
400
+ "data-invalid": error ? "" : void 0,
401
+ className: `border-primary/10 bg-smoke-eerie focus-within:border-blue-crayola-c data-invalid:border-red-c flex items-center gap-3 overflow-hidden rounded-lg border px-3 ${className}`,
402
+ children: [
403
+ /* @__PURE__ */ jsxRuntime.jsx(inputs.InputIcon, { icon: icons?.left }),
404
+ /* @__PURE__ */ jsxRuntime.jsxs(
405
+ "button",
406
+ {
407
+ id: triggerId,
408
+ ref: triggerRef,
409
+ type: "button",
410
+ "aria-haspopup": "dialog",
411
+ "aria-expanded": isOpen,
412
+ "aria-controls": isOpen ? popupId : void 0,
413
+ "aria-invalid": error ? true : void 0,
414
+ "aria-describedby": error ? errorId : void 0,
415
+ disabled: selectProps.disabled,
416
+ onClick: () => {
417
+ if (isOpen) close(false);
418
+ else open();
419
+ },
420
+ onKeyDown: handleTriggerKeyDown,
421
+ className: `text-primary flex min-w-0 flex-1 items-center justify-between gap-0.5 truncate border-none bg-transparent text-left text-[13px] outline-hidden ${selectProps.disabled ? "cursor-no-drop" : "cursor-pointer"}`,
422
+ children: [
423
+ /* @__PURE__ */ jsxRuntime.jsx(
424
+ "span",
425
+ {
426
+ className: `flex-1 truncate py-2 first-letter:capitalize xl:py-3 ${hasValue ? "" : "text-primary/30"}`,
427
+ children: selected?.label ?? selectProps.placeholder
428
+ }
429
+ ),
430
+ /* @__PURE__ */ jsxRuntime.jsx(
431
+ react.Icon,
432
+ {
433
+ icon: "solar:alt-arrow-down-linear",
434
+ className: `size-4 transition-transform motion-reduce:transition-none md:size-5 ${isOpen ? "rotate-180" : ""} ${hasValue ? "text-primary" : "text-primary/30"}`
435
+ }
436
+ )
437
+ ]
438
+ }
439
+ ),
440
+ /* @__PURE__ */ jsxRuntime.jsx(inputs.InputIcon, { icon: icons?.right })
441
+ ]
442
+ }
443
+ )
444
+ ] }),
445
+ /* @__PURE__ */ jsxRuntime.jsx(inputs.InputError, { id: errorId, error }),
446
+ isOpen && popup && reactDom.createPortal(
447
+ /* @__PURE__ */ jsxRuntime.jsxs(
448
+ "div",
449
+ {
450
+ ref: popupRef,
451
+ id: popupId,
452
+ role: "dialog",
453
+ "aria-label": label || text.tree,
454
+ className: `border-primary/10 bg-smoke-eerie fixed z-3 overflow-hidden rounded-lg border shadow-md ${optionsClassName}`,
455
+ style: getDropdownStyle(popup.rect, popup.placement, window.innerHeight),
456
+ children: [
457
+ /* @__PURE__ */ jsxRuntime.jsx(
458
+ inputs.Input,
459
+ {
460
+ needRef: true,
461
+ ref: searchRef,
462
+ inputProps: {
463
+ ...inputProps,
464
+ value: search,
465
+ onChange: handleSearch,
466
+ onKeyDown: handleSearchKeyDown,
467
+ placeholder: inputProps?.placeholder ?? text.searchPlaceholder,
468
+ role: "combobox",
469
+ "aria-label": inputProps?.["aria-label"] ?? text.search,
470
+ "aria-expanded": true,
471
+ "aria-controls": rows.length > 0 ? treeId : void 0,
472
+ "aria-activedescendant": activeIndex === -1 ? void 0 : rowId(activeIndex),
473
+ "aria-autocomplete": "list",
474
+ autoComplete: "off",
475
+ className: `py-2! ${inputProps?.className ?? ""}`
476
+ },
477
+ icons: {
478
+ right: search ? {
479
+ icon: "lucide:x",
480
+ label: text.clearSearch,
481
+ className: "size-4 text-primary",
482
+ onClick: clearSearch
483
+ } : { icon: "solar:magnifer-linear", className: "size-4 text-primary opacity-30" }
484
+ },
485
+ containerClassName: "p-2 border-b border-b-primary/20",
486
+ className: "bg-silver-jet/8!"
487
+ }
488
+ ),
489
+ /* @__PURE__ */ jsxRuntime.jsx("div", { role: "status", className: "sr-only", children: isSearching && rows.length > 0 ? text.results(rows.length) : "" }),
490
+ rows.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
491
+ "ul",
492
+ {
493
+ ref: listRef,
494
+ id: treeId,
495
+ role: "tree",
496
+ "aria-label": label || text.tree,
497
+ onMouseDown: (event) => {
498
+ event.preventDefault();
499
+ },
500
+ className: "relative flex max-h-60 flex-col gap-0.5 overflow-auto p-1",
501
+ children: rows.map((row, index) => {
502
+ const isSelected = !row.isBranch && row.node.value === selectProps.value;
503
+ const isActive = index === activeIndex;
504
+ const isDisabled = !!row.node.disabled;
505
+ return /* @__PURE__ */ jsxRuntime.jsxs(
506
+ "li",
507
+ {
508
+ id: rowId(index),
509
+ ref: isActive ? activeRowRef : null,
510
+ role: "treeitem",
511
+ "aria-level": row.level,
512
+ "aria-posinset": row.position,
513
+ "aria-setsize": row.size,
514
+ "aria-expanded": row.isBranch ? row.isExpanded : void 0,
515
+ "aria-selected": isSelected,
516
+ "aria-disabled": isDisabled ? true : void 0,
517
+ style: { paddingLeft: `${String(8 + (row.level - 1) * 12)}px` },
518
+ className: `text-tertiary flex items-center gap-2 rounded-sm py-1.5 pr-2 text-[13px] ${isDisabled ? "cursor-not-allowed opacity-50" : "cursor-pointer"} ${isActive ? "bg-primary/5" : ""} ${isSelected ? "bg-primary/8" : ""}`,
519
+ onMouseMove: () => {
520
+ if (!isDisabled && !isActive) setActiveValue(row.node.value);
521
+ },
522
+ onClick: () => {
523
+ activate(row);
524
+ },
525
+ children: [
526
+ /* @__PURE__ */ jsxRuntime.jsx(
527
+ "span",
528
+ {
529
+ "aria-hidden": "true",
530
+ className: "flex size-5 shrink-0 items-center justify-center",
531
+ children: row.isBranch && /* @__PURE__ */ jsxRuntime.jsx(
532
+ react.Icon,
533
+ {
534
+ icon: row.isExpanded ? "solar:alt-arrow-down-linear" : "solar:alt-arrow-right-linear",
535
+ className: "size-4"
536
+ }
537
+ )
538
+ }
539
+ ),
540
+ /* @__PURE__ */ jsxRuntime.jsx(
541
+ "span",
542
+ {
543
+ "aria-hidden": "true",
544
+ className: "flex size-5 shrink-0 items-center justify-center",
545
+ children: /* @__PURE__ */ jsxRuntime.jsx(
546
+ react.Icon,
547
+ {
548
+ icon: row.isBranch ? row.isExpanded ? "solar:folder-open-linear" : "solar:folder-linear" : "solar:file-linear",
549
+ className: "size-4"
550
+ }
551
+ )
552
+ }
553
+ ),
554
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 text-left text-[13px] first-letter:capitalize", children: row.node.label }),
555
+ isSelected && /* @__PURE__ */ jsxRuntime.jsx(
556
+ "span",
557
+ {
558
+ "aria-hidden": "true",
559
+ className: "flex size-5 shrink-0 items-center justify-center",
560
+ children: /* @__PURE__ */ jsxRuntime.jsx(
561
+ react.Icon,
562
+ {
563
+ icon: "solar:unread-linear",
564
+ className: "text-primary size-4 md:size-5"
565
+ }
566
+ )
567
+ }
568
+ )
569
+ ]
570
+ },
571
+ String(row.node.value)
572
+ );
573
+ })
574
+ }
575
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
576
+ layout.ApiStatus,
577
+ {
578
+ status: "empty",
579
+ title: text.noResultsTitle,
580
+ description: text.noResultsDescription,
581
+ className: "min-h-30!"
582
+ }
583
+ )
584
+ ]
585
+ }
586
+ ),
587
+ document.body
588
+ )
589
+ ]
590
+ }
591
+ );
592
+ }, "HierarchySelect");
593
+
594
+ exports.HierarchySelect = HierarchySelect;
595
+ //# sourceMappingURL=index.cjs.map
596
+ //# sourceMappingURL=index.cjs.map