@llui/components 0.0.11 → 0.0.14

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 (435) hide show
  1. package/dist/components/accordion.js +1 -0
  2. package/dist/components/accordion.js.map +1 -0
  3. package/dist/components/alert-dialog.d.ts +1 -1
  4. package/dist/components/alert-dialog.d.ts.map +1 -1
  5. package/dist/components/alert-dialog.js +2 -1
  6. package/dist/components/alert-dialog.js.map +1 -0
  7. package/dist/components/angle-slider.js +2 -1
  8. package/dist/components/angle-slider.js.map +1 -0
  9. package/dist/components/async-list.js +1 -0
  10. package/dist/components/async-list.js.map +1 -0
  11. package/dist/components/avatar.js +1 -0
  12. package/dist/components/avatar.js.map +1 -0
  13. package/dist/components/carousel.js +2 -1
  14. package/dist/components/carousel.js.map +1 -0
  15. package/dist/components/cascade-select.js +2 -1
  16. package/dist/components/cascade-select.js.map +1 -0
  17. package/dist/components/checkbox.js +1 -0
  18. package/dist/components/checkbox.js.map +1 -0
  19. package/dist/components/clipboard.js +2 -1
  20. package/dist/components/clipboard.js.map +1 -0
  21. package/dist/components/collapsible.js +1 -0
  22. package/dist/components/collapsible.js.map +1 -0
  23. package/dist/components/color-picker.js +2 -1
  24. package/dist/components/color-picker.js.map +1 -0
  25. package/dist/components/combobox.d.ts +1 -1
  26. package/dist/components/combobox.d.ts.map +1 -1
  27. package/dist/components/combobox.js +4 -3
  28. package/dist/components/combobox.js.map +1 -0
  29. package/dist/components/context-menu.js +2 -1
  30. package/dist/components/context-menu.js.map +1 -0
  31. package/dist/components/date-input.js +2 -1
  32. package/dist/components/date-input.js.map +1 -0
  33. package/dist/components/date-picker.js +3 -2
  34. package/dist/components/date-picker.js.map +1 -0
  35. package/dist/components/dialog.js +6 -5
  36. package/dist/components/dialog.js.map +1 -0
  37. package/dist/components/drawer.js +6 -5
  38. package/dist/components/drawer.js.map +1 -0
  39. package/dist/components/editable.js +1 -0
  40. package/dist/components/editable.js.map +1 -0
  41. package/dist/components/file-upload.js +2 -1
  42. package/dist/components/file-upload.js.map +1 -0
  43. package/dist/components/floating-panel.js +2 -1
  44. package/dist/components/floating-panel.js.map +1 -0
  45. package/dist/components/form.js +1 -0
  46. package/dist/components/form.js.map +1 -0
  47. package/dist/components/hover-card.d.ts +1 -1
  48. package/dist/components/hover-card.d.ts.map +1 -1
  49. package/dist/components/hover-card.js +2 -1
  50. package/dist/components/hover-card.js.map +1 -0
  51. package/dist/components/image-cropper.js +2 -1
  52. package/dist/components/image-cropper.js.map +1 -0
  53. package/dist/components/in-view.js +1 -0
  54. package/dist/components/in-view.js.map +1 -0
  55. package/dist/components/index.d.ts +119 -119
  56. package/dist/components/index.d.ts.map +1 -1
  57. package/dist/components/index.js +62 -61
  58. package/dist/components/index.js.map +1 -0
  59. package/dist/components/listbox.js +2 -1
  60. package/dist/components/listbox.js.map +1 -0
  61. package/dist/components/marquee.js +1 -0
  62. package/dist/components/marquee.js.map +1 -0
  63. package/dist/components/menu.d.ts +1 -1
  64. package/dist/components/menu.d.ts.map +1 -1
  65. package/dist/components/menu.js +4 -3
  66. package/dist/components/menu.js.map +1 -0
  67. package/dist/components/navigation-menu.js +2 -1
  68. package/dist/components/navigation-menu.js.map +1 -0
  69. package/dist/components/number-input.js +2 -1
  70. package/dist/components/number-input.js.map +1 -0
  71. package/dist/components/pagination.js +2 -1
  72. package/dist/components/pagination.js.map +1 -0
  73. package/dist/components/password-input.js +2 -1
  74. package/dist/components/password-input.js.map +1 -0
  75. package/dist/components/pin-input.js +3 -2
  76. package/dist/components/pin-input.js.map +1 -0
  77. package/dist/components/popover.d.ts +1 -1
  78. package/dist/components/popover.d.ts.map +1 -1
  79. package/dist/components/popover.js +5 -4
  80. package/dist/components/popover.js.map +1 -0
  81. package/dist/components/presence.js +1 -0
  82. package/dist/components/presence.js.map +1 -0
  83. package/dist/components/progress.js +2 -1
  84. package/dist/components/progress.js.map +1 -0
  85. package/dist/components/qr-code.js +2 -1
  86. package/dist/components/qr-code.js.map +1 -0
  87. package/dist/components/radio-group.js +2 -1
  88. package/dist/components/radio-group.js.map +1 -0
  89. package/dist/components/rating-group.js +2 -1
  90. package/dist/components/rating-group.js.map +1 -0
  91. package/dist/components/scroll-area.js +1 -0
  92. package/dist/components/scroll-area.js.map +1 -0
  93. package/dist/components/select.d.ts +1 -1
  94. package/dist/components/select.d.ts.map +1 -1
  95. package/dist/components/select.js +4 -3
  96. package/dist/components/select.js.map +1 -0
  97. package/dist/components/signature-pad.js +2 -1
  98. package/dist/components/signature-pad.js.map +1 -0
  99. package/dist/components/slider.js +2 -1
  100. package/dist/components/slider.js.map +1 -0
  101. package/dist/components/sortable.js +1 -0
  102. package/dist/components/sortable.js.map +1 -0
  103. package/dist/components/splitter.js +2 -1
  104. package/dist/components/splitter.js.map +1 -0
  105. package/dist/components/steps.js +2 -1
  106. package/dist/components/steps.js.map +1 -0
  107. package/dist/components/switch.js +1 -0
  108. package/dist/components/switch.js.map +1 -0
  109. package/dist/components/tabs.js +2 -1
  110. package/dist/components/tabs.js.map +1 -0
  111. package/dist/components/tags-input.js +3 -2
  112. package/dist/components/tags-input.js.map +1 -0
  113. package/dist/components/theme-switch.js +1 -0
  114. package/dist/components/theme-switch.js.map +1 -0
  115. package/dist/components/time-picker.js +2 -1
  116. package/dist/components/time-picker.js.map +1 -0
  117. package/dist/components/timer.js +2 -1
  118. package/dist/components/timer.js.map +1 -0
  119. package/dist/components/toast.js +2 -1
  120. package/dist/components/toast.js.map +1 -0
  121. package/dist/components/toc.js +2 -1
  122. package/dist/components/toc.js.map +1 -0
  123. package/dist/components/toggle-group.js +2 -1
  124. package/dist/components/toggle-group.js.map +1 -0
  125. package/dist/components/toggle.js +1 -0
  126. package/dist/components/toggle.js.map +1 -0
  127. package/dist/components/tooltip.d.ts +1 -1
  128. package/dist/components/tooltip.d.ts.map +1 -1
  129. package/dist/components/tooltip.js +2 -1
  130. package/dist/components/tooltip.js.map +1 -0
  131. package/dist/components/tour.js +2 -1
  132. package/dist/components/tour.js.map +1 -0
  133. package/dist/components/tree-view.js +3 -2
  134. package/dist/components/tree-view.js.map +1 -0
  135. package/dist/format/cache.js +1 -0
  136. package/dist/format/cache.js.map +1 -0
  137. package/dist/format/defaults.js +1 -0
  138. package/dist/format/defaults.js.map +1 -0
  139. package/dist/format/format-date.js +3 -2
  140. package/dist/format/format-date.js.map +1 -0
  141. package/dist/format/format-display-name.js +3 -2
  142. package/dist/format/format-display-name.js.map +1 -0
  143. package/dist/format/format-file-size.js +3 -2
  144. package/dist/format/format-file-size.js.map +1 -0
  145. package/dist/format/format-list.js +3 -2
  146. package/dist/format/format-list.js.map +1 -0
  147. package/dist/format/format-number.js +3 -2
  148. package/dist/format/format-number.js.map +1 -0
  149. package/dist/format/format-plural.js +3 -2
  150. package/dist/format/format-plural.js.map +1 -0
  151. package/dist/format/format-relative-time.js +3 -2
  152. package/dist/format/format-relative-time.js.map +1 -0
  153. package/dist/format/index.d.ts +7 -7
  154. package/dist/format/index.d.ts.map +1 -1
  155. package/dist/format/index.js +8 -7
  156. package/dist/format/index.js.map +1 -0
  157. package/dist/index.d.ts +4 -4
  158. package/dist/index.d.ts.map +1 -1
  159. package/dist/index.js +5 -4
  160. package/dist/index.js.map +1 -0
  161. package/dist/locale.js +1 -0
  162. package/dist/locale.js.map +1 -0
  163. package/dist/patterns/confirm-dialog.d.ts +1 -1
  164. package/dist/patterns/confirm-dialog.d.ts.map +1 -1
  165. package/dist/patterns/confirm-dialog.js +2 -1
  166. package/dist/patterns/confirm-dialog.js.map +1 -0
  167. package/dist/patterns/index.d.ts +2 -2
  168. package/dist/patterns/index.d.ts.map +1 -1
  169. package/dist/patterns/index.js +2 -1
  170. package/dist/patterns/index.js.map +1 -0
  171. package/dist/styles/classes/accordion.d.ts +1 -1
  172. package/dist/styles/classes/accordion.d.ts.map +1 -1
  173. package/dist/styles/classes/accordion.js +2 -1
  174. package/dist/styles/classes/accordion.js.map +1 -0
  175. package/dist/styles/classes/angle-slider.d.ts +1 -1
  176. package/dist/styles/classes/angle-slider.d.ts.map +1 -1
  177. package/dist/styles/classes/angle-slider.js +2 -1
  178. package/dist/styles/classes/angle-slider.js.map +1 -0
  179. package/dist/styles/classes/async-list.d.ts +1 -1
  180. package/dist/styles/classes/async-list.d.ts.map +1 -1
  181. package/dist/styles/classes/async-list.js +1 -0
  182. package/dist/styles/classes/async-list.js.map +1 -0
  183. package/dist/styles/classes/avatar.d.ts +1 -1
  184. package/dist/styles/classes/avatar.d.ts.map +1 -1
  185. package/dist/styles/classes/avatar.js +2 -1
  186. package/dist/styles/classes/avatar.js.map +1 -0
  187. package/dist/styles/classes/carousel.d.ts +1 -1
  188. package/dist/styles/classes/carousel.d.ts.map +1 -1
  189. package/dist/styles/classes/carousel.js +2 -1
  190. package/dist/styles/classes/carousel.js.map +1 -0
  191. package/dist/styles/classes/cascade-select.d.ts +1 -1
  192. package/dist/styles/classes/cascade-select.d.ts.map +1 -1
  193. package/dist/styles/classes/cascade-select.js +2 -1
  194. package/dist/styles/classes/cascade-select.js.map +1 -0
  195. package/dist/styles/classes/checkbox.d.ts +1 -1
  196. package/dist/styles/classes/checkbox.d.ts.map +1 -1
  197. package/dist/styles/classes/checkbox.js +2 -1
  198. package/dist/styles/classes/checkbox.js.map +1 -0
  199. package/dist/styles/classes/clipboard.d.ts +1 -1
  200. package/dist/styles/classes/clipboard.d.ts.map +1 -1
  201. package/dist/styles/classes/clipboard.js +1 -0
  202. package/dist/styles/classes/clipboard.js.map +1 -0
  203. package/dist/styles/classes/collapsible.d.ts +1 -1
  204. package/dist/styles/classes/collapsible.d.ts.map +1 -1
  205. package/dist/styles/classes/collapsible.js +2 -1
  206. package/dist/styles/classes/collapsible.js.map +1 -0
  207. package/dist/styles/classes/color-picker.d.ts +1 -1
  208. package/dist/styles/classes/color-picker.d.ts.map +1 -1
  209. package/dist/styles/classes/color-picker.js +1 -0
  210. package/dist/styles/classes/color-picker.js.map +1 -0
  211. package/dist/styles/classes/combobox.d.ts +1 -1
  212. package/dist/styles/classes/combobox.d.ts.map +1 -1
  213. package/dist/styles/classes/combobox.js +2 -1
  214. package/dist/styles/classes/combobox.js.map +1 -0
  215. package/dist/styles/classes/context-menu.d.ts +1 -1
  216. package/dist/styles/classes/context-menu.d.ts.map +1 -1
  217. package/dist/styles/classes/context-menu.js +2 -1
  218. package/dist/styles/classes/context-menu.js.map +1 -0
  219. package/dist/styles/classes/date-input.d.ts +1 -1
  220. package/dist/styles/classes/date-input.d.ts.map +1 -1
  221. package/dist/styles/classes/date-input.js +2 -1
  222. package/dist/styles/classes/date-input.js.map +1 -0
  223. package/dist/styles/classes/date-picker.d.ts +1 -1
  224. package/dist/styles/classes/date-picker.d.ts.map +1 -1
  225. package/dist/styles/classes/date-picker.js +2 -1
  226. package/dist/styles/classes/date-picker.js.map +1 -0
  227. package/dist/styles/classes/dialog.d.ts +1 -1
  228. package/dist/styles/classes/dialog.d.ts.map +1 -1
  229. package/dist/styles/classes/dialog.js +2 -1
  230. package/dist/styles/classes/dialog.js.map +1 -0
  231. package/dist/styles/classes/drawer.d.ts +1 -1
  232. package/dist/styles/classes/drawer.d.ts.map +1 -1
  233. package/dist/styles/classes/drawer.js +2 -1
  234. package/dist/styles/classes/drawer.js.map +1 -0
  235. package/dist/styles/classes/editable.d.ts +1 -1
  236. package/dist/styles/classes/editable.d.ts.map +1 -1
  237. package/dist/styles/classes/editable.js +2 -1
  238. package/dist/styles/classes/editable.js.map +1 -0
  239. package/dist/styles/classes/file-upload.d.ts +1 -1
  240. package/dist/styles/classes/file-upload.d.ts.map +1 -1
  241. package/dist/styles/classes/file-upload.js +1 -0
  242. package/dist/styles/classes/file-upload.js.map +1 -0
  243. package/dist/styles/classes/floating-panel.d.ts +1 -1
  244. package/dist/styles/classes/floating-panel.d.ts.map +1 -1
  245. package/dist/styles/classes/floating-panel.js +2 -1
  246. package/dist/styles/classes/floating-panel.js.map +1 -0
  247. package/dist/styles/classes/hover-card.d.ts +1 -1
  248. package/dist/styles/classes/hover-card.d.ts.map +1 -1
  249. package/dist/styles/classes/hover-card.js +2 -1
  250. package/dist/styles/classes/hover-card.js.map +1 -0
  251. package/dist/styles/classes/image-cropper.d.ts +1 -1
  252. package/dist/styles/classes/image-cropper.d.ts.map +1 -1
  253. package/dist/styles/classes/image-cropper.js +1 -0
  254. package/dist/styles/classes/image-cropper.js.map +1 -0
  255. package/dist/styles/classes/index.d.ts +53 -53
  256. package/dist/styles/classes/index.d.ts.map +1 -1
  257. package/dist/styles/classes/index.js +54 -53
  258. package/dist/styles/classes/index.js.map +1 -0
  259. package/dist/styles/classes/listbox.d.ts +1 -1
  260. package/dist/styles/classes/listbox.d.ts.map +1 -1
  261. package/dist/styles/classes/listbox.js +2 -1
  262. package/dist/styles/classes/listbox.js.map +1 -0
  263. package/dist/styles/classes/marquee.d.ts +1 -1
  264. package/dist/styles/classes/marquee.d.ts.map +1 -1
  265. package/dist/styles/classes/marquee.js +1 -0
  266. package/dist/styles/classes/marquee.js.map +1 -0
  267. package/dist/styles/classes/menu.d.ts +1 -1
  268. package/dist/styles/classes/menu.d.ts.map +1 -1
  269. package/dist/styles/classes/menu.js +2 -1
  270. package/dist/styles/classes/menu.js.map +1 -0
  271. package/dist/styles/classes/navigation-menu.d.ts +1 -1
  272. package/dist/styles/classes/navigation-menu.d.ts.map +1 -1
  273. package/dist/styles/classes/navigation-menu.js +1 -0
  274. package/dist/styles/classes/navigation-menu.js.map +1 -0
  275. package/dist/styles/classes/number-input.d.ts +1 -1
  276. package/dist/styles/classes/number-input.d.ts.map +1 -1
  277. package/dist/styles/classes/number-input.js +2 -1
  278. package/dist/styles/classes/number-input.js.map +1 -0
  279. package/dist/styles/classes/pagination.d.ts +1 -1
  280. package/dist/styles/classes/pagination.d.ts.map +1 -1
  281. package/dist/styles/classes/pagination.js +2 -1
  282. package/dist/styles/classes/pagination.js.map +1 -0
  283. package/dist/styles/classes/password-input.d.ts +1 -1
  284. package/dist/styles/classes/password-input.d.ts.map +1 -1
  285. package/dist/styles/classes/password-input.js +2 -1
  286. package/dist/styles/classes/password-input.js.map +1 -0
  287. package/dist/styles/classes/pin-input.d.ts +1 -1
  288. package/dist/styles/classes/pin-input.d.ts.map +1 -1
  289. package/dist/styles/classes/pin-input.js +2 -1
  290. package/dist/styles/classes/pin-input.js.map +1 -0
  291. package/dist/styles/classes/popover.d.ts +1 -1
  292. package/dist/styles/classes/popover.d.ts.map +1 -1
  293. package/dist/styles/classes/popover.js +2 -1
  294. package/dist/styles/classes/popover.js.map +1 -0
  295. package/dist/styles/classes/presence.d.ts +1 -1
  296. package/dist/styles/classes/presence.d.ts.map +1 -1
  297. package/dist/styles/classes/presence.js +1 -0
  298. package/dist/styles/classes/presence.js.map +1 -0
  299. package/dist/styles/classes/progress.d.ts +1 -1
  300. package/dist/styles/classes/progress.d.ts.map +1 -1
  301. package/dist/styles/classes/progress.js +2 -1
  302. package/dist/styles/classes/progress.js.map +1 -0
  303. package/dist/styles/classes/qr-code.d.ts +1 -1
  304. package/dist/styles/classes/qr-code.d.ts.map +1 -1
  305. package/dist/styles/classes/qr-code.js +1 -0
  306. package/dist/styles/classes/qr-code.js.map +1 -0
  307. package/dist/styles/classes/radio-group.d.ts +1 -1
  308. package/dist/styles/classes/radio-group.d.ts.map +1 -1
  309. package/dist/styles/classes/radio-group.js +2 -1
  310. package/dist/styles/classes/radio-group.js.map +1 -0
  311. package/dist/styles/classes/rating-group.d.ts +1 -1
  312. package/dist/styles/classes/rating-group.d.ts.map +1 -1
  313. package/dist/styles/classes/rating-group.js +2 -1
  314. package/dist/styles/classes/rating-group.js.map +1 -0
  315. package/dist/styles/classes/scroll-area.d.ts +1 -1
  316. package/dist/styles/classes/scroll-area.d.ts.map +1 -1
  317. package/dist/styles/classes/scroll-area.js +1 -0
  318. package/dist/styles/classes/scroll-area.js.map +1 -0
  319. package/dist/styles/classes/select.d.ts +1 -1
  320. package/dist/styles/classes/select.d.ts.map +1 -1
  321. package/dist/styles/classes/select.js +2 -1
  322. package/dist/styles/classes/select.js.map +1 -0
  323. package/dist/styles/classes/signature-pad.d.ts +1 -1
  324. package/dist/styles/classes/signature-pad.d.ts.map +1 -1
  325. package/dist/styles/classes/signature-pad.js +1 -0
  326. package/dist/styles/classes/signature-pad.js.map +1 -0
  327. package/dist/styles/classes/slider.d.ts +1 -1
  328. package/dist/styles/classes/slider.d.ts.map +1 -1
  329. package/dist/styles/classes/slider.js +2 -1
  330. package/dist/styles/classes/slider.js.map +1 -0
  331. package/dist/styles/classes/splitter.d.ts +1 -1
  332. package/dist/styles/classes/splitter.d.ts.map +1 -1
  333. package/dist/styles/classes/splitter.js +2 -1
  334. package/dist/styles/classes/splitter.js.map +1 -0
  335. package/dist/styles/classes/steps.d.ts +1 -1
  336. package/dist/styles/classes/steps.d.ts.map +1 -1
  337. package/dist/styles/classes/steps.js +2 -1
  338. package/dist/styles/classes/steps.js.map +1 -0
  339. package/dist/styles/classes/switch.d.ts +1 -1
  340. package/dist/styles/classes/switch.d.ts.map +1 -1
  341. package/dist/styles/classes/switch.js +2 -1
  342. package/dist/styles/classes/switch.js.map +1 -0
  343. package/dist/styles/classes/tabs.d.ts +1 -1
  344. package/dist/styles/classes/tabs.d.ts.map +1 -1
  345. package/dist/styles/classes/tabs.js +2 -1
  346. package/dist/styles/classes/tabs.js.map +1 -0
  347. package/dist/styles/classes/tags-input.d.ts +1 -1
  348. package/dist/styles/classes/tags-input.d.ts.map +1 -1
  349. package/dist/styles/classes/tags-input.js +2 -1
  350. package/dist/styles/classes/tags-input.js.map +1 -0
  351. package/dist/styles/classes/time-picker.d.ts +1 -1
  352. package/dist/styles/classes/time-picker.d.ts.map +1 -1
  353. package/dist/styles/classes/time-picker.js +2 -1
  354. package/dist/styles/classes/time-picker.js.map +1 -0
  355. package/dist/styles/classes/timer.d.ts +1 -1
  356. package/dist/styles/classes/timer.d.ts.map +1 -1
  357. package/dist/styles/classes/timer.js +2 -1
  358. package/dist/styles/classes/timer.js.map +1 -0
  359. package/dist/styles/classes/toast.d.ts +1 -1
  360. package/dist/styles/classes/toast.d.ts.map +1 -1
  361. package/dist/styles/classes/toast.js +2 -1
  362. package/dist/styles/classes/toast.js.map +1 -0
  363. package/dist/styles/classes/toc.d.ts +1 -1
  364. package/dist/styles/classes/toc.d.ts.map +1 -1
  365. package/dist/styles/classes/toc.js +2 -1
  366. package/dist/styles/classes/toc.js.map +1 -0
  367. package/dist/styles/classes/toggle-group.d.ts +1 -1
  368. package/dist/styles/classes/toggle-group.d.ts.map +1 -1
  369. package/dist/styles/classes/toggle-group.js +2 -1
  370. package/dist/styles/classes/toggle-group.js.map +1 -0
  371. package/dist/styles/classes/toggle.d.ts +1 -1
  372. package/dist/styles/classes/toggle.d.ts.map +1 -1
  373. package/dist/styles/classes/toggle.js +2 -1
  374. package/dist/styles/classes/toggle.js.map +1 -0
  375. package/dist/styles/classes/tooltip.d.ts +1 -1
  376. package/dist/styles/classes/tooltip.d.ts.map +1 -1
  377. package/dist/styles/classes/tooltip.js +2 -1
  378. package/dist/styles/classes/tooltip.js.map +1 -0
  379. package/dist/styles/classes/tour.d.ts +1 -1
  380. package/dist/styles/classes/tour.d.ts.map +1 -1
  381. package/dist/styles/classes/tour.js +1 -0
  382. package/dist/styles/classes/tour.js.map +1 -0
  383. package/dist/styles/classes/tree-view.d.ts +1 -1
  384. package/dist/styles/classes/tree-view.d.ts.map +1 -1
  385. package/dist/styles/classes/tree-view.js +2 -1
  386. package/dist/styles/classes/tree-view.js.map +1 -0
  387. package/dist/styles/index.d.ts +4 -4
  388. package/dist/styles/index.d.ts.map +1 -1
  389. package/dist/styles/index.js +3 -2
  390. package/dist/styles/index.js.map +1 -0
  391. package/dist/styles/theme.js +1 -0
  392. package/dist/styles/theme.js.map +1 -0
  393. package/dist/styles/utils/cx.js +1 -0
  394. package/dist/styles/utils/cx.js.map +1 -0
  395. package/dist/styles/utils/index.d.ts +2 -2
  396. package/dist/styles/utils/index.d.ts.map +1 -1
  397. package/dist/styles/utils/index.js +3 -2
  398. package/dist/styles/utils/index.js.map +1 -0
  399. package/dist/styles/utils/variants.js +2 -1
  400. package/dist/styles/utils/variants.js.map +1 -0
  401. package/dist/utils/anatomy.js +1 -0
  402. package/dist/utils/anatomy.js.map +1 -0
  403. package/dist/utils/aria-hidden.js +1 -0
  404. package/dist/utils/aria-hidden.js.map +1 -0
  405. package/dist/utils/direction.js +1 -0
  406. package/dist/utils/direction.js.map +1 -0
  407. package/dist/utils/dismissable.d.ts +1 -1
  408. package/dist/utils/dismissable.d.ts.map +1 -1
  409. package/dist/utils/dismissable.js +2 -1
  410. package/dist/utils/dismissable.js.map +1 -0
  411. package/dist/utils/dom.js +1 -0
  412. package/dist/utils/dom.js.map +1 -0
  413. package/dist/utils/floating.js +1 -0
  414. package/dist/utils/floating.js.map +1 -0
  415. package/dist/utils/focus-trap.d.ts +1 -1
  416. package/dist/utils/focus-trap.d.ts.map +1 -1
  417. package/dist/utils/focus-trap.js +3 -2
  418. package/dist/utils/focus-trap.js.map +1 -0
  419. package/dist/utils/focusables.js +1 -0
  420. package/dist/utils/focusables.js.map +1 -0
  421. package/dist/utils/index.d.ts +18 -18
  422. package/dist/utils/index.d.ts.map +1 -1
  423. package/dist/utils/index.js +12 -11
  424. package/dist/utils/index.js.map +1 -0
  425. package/dist/utils/interact-outside.d.ts +1 -1
  426. package/dist/utils/interact-outside.d.ts.map +1 -1
  427. package/dist/utils/interact-outside.js +2 -1
  428. package/dist/utils/interact-outside.js.map +1 -0
  429. package/dist/utils/remove-scroll.js +1 -0
  430. package/dist/utils/remove-scroll.js.map +1 -0
  431. package/dist/utils/tree-collection.js +1 -0
  432. package/dist/utils/tree-collection.js.map +1 -0
  433. package/dist/utils/typeahead.js +1 -0
  434. package/dist/utils/typeahead.js.map +1 -0
  435. package/package.json +12 -12
@@ -1,4 +1,4 @@
1
- import { createVariants } from '../utils/variants';
1
+ import { createVariants } from '../utils/variants.js';
2
2
  const rootVariants = createVariants({
3
3
  base: 'inline-flex border border-border rounded-md overflow-hidden',
4
4
  variants: {
@@ -26,3 +26,4 @@ export function toggleGroupClasses(props) {
26
26
  item: itemVariants(props),
27
27
  };
28
28
  }
29
+ //# sourceMappingURL=toggle-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle-group.js","sourceRoot":"","sources":["../../../src/styles/classes/toggle-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,sBAAsB,CAAA;AAExE,MAAM,YAAY,GAAG,cAAc,CAAC;IAClC,IAAI,EAAE,6DAA6D;IACnE,QAAQ,EAAE;QACR,WAAW,EAAE;YACX,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,UAAU;SACrB;KACF;IACD,eAAe,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE;CAC/C,CAAC,CAAA;AAEF,MAAM,YAAY,GAAG,cAAc,CAAC;IAClC,IAAI,EAAE,8PAA8P;IACpQ,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,EAAE,EAAE,mBAAmB;YACvB,EAAE,EAAE,aAAa;YACjB,EAAE,EAAE,mBAAmB;SACxB;KACF;IACD,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;CAChC,CAAC,CAAA;AAcF,MAAM,UAAU,kBAAkB,CAAC,KAAgC;IACjE,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC;QACzB,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC;KAC1B,CAAA;AACH,CAAC","sourcesContent":["import { createVariants, type VariantProps } from '../utils/variants.js'\n\nconst rootVariants = createVariants({\n base: 'inline-flex border border-border rounded-md overflow-hidden',\n variants: {\n orientation: {\n horizontal: 'flex-row',\n vertical: 'flex-col',\n },\n },\n defaultVariants: { orientation: 'horizontal' },\n})\n\nconst itemVariants = createVariants({\n base: 'inline-flex items-center justify-center bg-surface cursor-pointer transition-all duration-fast hover:bg-surface-hover data-[state=on]:bg-surface-active data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed border-r border-border last:border-r-0',\n variants: {\n size: {\n sm: 'px-2 py-1 text-sm',\n md: 'px-3 py-1.5',\n lg: 'px-4 py-2 text-lg',\n },\n },\n defaultVariants: { size: 'md' },\n})\n\ntype Variants = {\n size: { sm: string; md: string; lg: string }\n orientation: { horizontal: string; vertical: string }\n}\n\nexport type ToggleGroupStyleVariants = VariantProps<Variants>\n\nexport interface ToggleGroupClasses {\n root: string\n item: string\n}\n\nexport function toggleGroupClasses(props?: ToggleGroupStyleVariants): ToggleGroupClasses {\n return {\n root: rootVariants(props),\n item: itemVariants(props),\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { type VariantProps } from '../utils/variants';
1
+ import { type VariantProps } from '../utils/variants.js';
2
2
  type Variants = {
3
3
  size: {
4
4
  sm: string;
@@ -1 +1 @@
1
- {"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../../src/styles/classes/toggle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAkBrE,KAAK,QAAQ,GAAG;IACd,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5C,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAC5C,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;AAExD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;CACb;AAED,wBAAgB,aAAa,CAAC,KAAK,CAAC,EAAE,mBAAmB,GAAG,aAAa,CAIxE"}
1
+ {"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../../src/styles/classes/toggle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAkBxE,KAAK,QAAQ,GAAG;IACd,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5C,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAC5C,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;AAExD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;CACb;AAED,wBAAgB,aAAa,CAAC,KAAK,CAAC,EAAE,mBAAmB,GAAG,aAAa,CAIxE"}
@@ -1,4 +1,4 @@
1
- import { createVariants } from '../utils/variants';
1
+ import { createVariants } from '../utils/variants.js';
2
2
  const rootVariants = createVariants({
3
3
  base: 'inline-flex items-center justify-center border border-border rounded-md bg-surface cursor-pointer transition-all duration-fast hover:bg-surface-hover data-[state=on]:bg-surface-active data-[state=on]:border-border-hover data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed',
4
4
  variants: {
@@ -19,3 +19,4 @@ export function toggleClasses(props) {
19
19
  root: rootVariants(props),
20
20
  };
21
21
  }
22
+ //# sourceMappingURL=toggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle.js","sourceRoot":"","sources":["../../../src/styles/classes/toggle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,sBAAsB,CAAA;AAExE,MAAM,YAAY,GAAG,cAAc,CAAC;IAClC,IAAI,EAAE,2RAA2R;IACjS,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,EAAE,EAAE,eAAe;YACnB,EAAE,EAAE,KAAK;YACT,EAAE,EAAE,aAAa;SAClB;QACD,OAAO,EAAE;YACP,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,oBAAoB;SAC5B;KACF;IACD,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE;CACpD,CAAC,CAAA;AAaF,MAAM,UAAU,aAAa,CAAC,KAA2B;IACvD,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC;KAC1B,CAAA;AACH,CAAC","sourcesContent":["import { createVariants, type VariantProps } from '../utils/variants.js'\n\nconst rootVariants = createVariants({\n base: 'inline-flex items-center justify-center border border-border rounded-md bg-surface cursor-pointer transition-all duration-fast hover:bg-surface-hover data-[state=on]:bg-surface-active data-[state=on]:border-border-hover data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed',\n variants: {\n size: {\n sm: 'p-1.5 text-sm',\n md: 'p-2',\n lg: 'p-3 text-lg',\n },\n variant: {\n outline: '',\n ghost: 'border-transparent',\n },\n },\n defaultVariants: { size: 'md', variant: 'outline' },\n})\n\ntype Variants = {\n size: { sm: string; md: string; lg: string }\n variant: { outline: string; ghost: string }\n}\n\nexport type ToggleStyleVariants = VariantProps<Variants>\n\nexport interface ToggleClasses {\n root: string\n}\n\nexport function toggleClasses(props?: ToggleStyleVariants): ToggleClasses {\n return {\n root: rootVariants(props),\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { type VariantProps } from '../utils/variants';
1
+ import { type VariantProps } from '../utils/variants.js';
2
2
  type Variants = {
3
3
  size: {
4
4
  sm: string;
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../src/styles/classes/tooltip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAcrE,KAAK,QAAQ,GAAG;IACd,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CAC7C,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;AAEzD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,oBAAoB,GAAG,cAAc,CAO3E"}
1
+ {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../src/styles/classes/tooltip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAcxE,KAAK,QAAQ,GAAG;IACd,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CAC7C,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;AAEzD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,oBAAoB,GAAG,cAAc,CAO3E"}
@@ -1,4 +1,4 @@
1
- import { createVariants } from '../utils/variants';
1
+ import { createVariants } from '../utils/variants.js';
2
2
  const contentVariants = createVariants({
3
3
  base: 'bg-text text-text-inverted shadow-md px-2.5 py-1.5',
4
4
  variants: {
@@ -18,3 +18,4 @@ export function tooltipClasses(props) {
18
18
  arrow: 'fill-text',
19
19
  };
20
20
  }
21
+ //# sourceMappingURL=tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../../src/styles/classes/tooltip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,sBAAsB,CAAA;AAExE,MAAM,eAAe,GAAG,cAAc,CAAC;IACrC,IAAI,EAAE,oDAAoD;IAC1D,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,EAAE,EAAE,6BAA6B;YACjC,EAAE,EAAE,6BAA6B;YACjC,EAAE,EAAE,qBAAqB;SAC1B;KACF;IACD,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;CAChC,CAAC,CAAA;AAeF,MAAM,UAAU,cAAc,CAAC,KAA4B;IACzD,OAAO;QACL,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,oBAAoB;QAChC,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC;QAC/B,KAAK,EAAE,WAAW;KACnB,CAAA;AACH,CAAC","sourcesContent":["import { createVariants, type VariantProps } from '../utils/variants.js'\n\nconst contentVariants = createVariants({\n base: 'bg-text text-text-inverted shadow-md px-2.5 py-1.5',\n variants: {\n size: {\n sm: 'rounded-md text-xs max-w-48',\n md: 'rounded-md text-sm max-w-64',\n lg: 'rounded-lg max-w-80',\n },\n },\n defaultVariants: { size: 'md' },\n})\n\ntype Variants = {\n size: { sm: string; md: string; lg: string }\n}\n\nexport type TooltipStyleVariants = VariantProps<Variants>\n\nexport interface TooltipClasses {\n trigger: string\n positioner: string\n content: string\n arrow: string\n}\n\nexport function tooltipClasses(props?: TooltipStyleVariants): TooltipClasses {\n return {\n trigger: '',\n positioner: 'absolute z-tooltip',\n content: contentVariants(props),\n arrow: 'fill-text',\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { type VariantProps } from '../utils/variants';
1
+ import { type VariantProps } from '../utils/variants.js';
2
2
  type Variants = Record<string, never>;
3
3
  export type TourStyleVariants = VariantProps<Variants>;
4
4
  export interface TourClasses {
@@ -1 +1 @@
1
- {"version":3,"file":"tour.d.ts","sourceRoot":"","sources":["../../../src/styles/classes/tour.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,KAAK,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAErC,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;AAEtD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,wBAAgB,WAAW,IAAI,WAAW,CAezC"}
1
+ {"version":3,"file":"tour.d.ts","sourceRoot":"","sources":["../../../src/styles/classes/tour.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD,KAAK,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAErC,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;AAEtD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,wBAAgB,WAAW,IAAI,WAAW,CAezC"}
@@ -11,3 +11,4 @@ export function tourClasses() {
11
11
  closeTrigger: 'absolute top-2 right-2 bg-transparent border-none cursor-pointer text-text-muted hover:text-text transition-colors duration-fast',
12
12
  };
13
13
  }
14
+ //# sourceMappingURL=tour.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tour.js","sourceRoot":"","sources":["../../../src/styles/classes/tour.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,WAAW;IACzB,OAAO;QACL,IAAI,EAAE,mFAAmF;QACzF,QAAQ,EAAE,oCAAoC;QAC9C,SAAS,EAAE,+DAA+D;QAC1E,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,sBAAsB;QACnC,YAAY,EAAE,yBAAyB;QACvC,WAAW,EACT,2JAA2J;QAC7J,WAAW,EACT,gLAAgL;QAClL,YAAY,EACV,kIAAkI;KACrI,CAAA;AACH,CAAC","sourcesContent":["import { type VariantProps } from '../utils/variants.js'\n\ntype Variants = Record<string, never>\n\nexport type TourStyleVariants = VariantProps<Variants>\n\nexport interface TourClasses {\n root: string\n backdrop: string\n spotlight: string\n title: string\n description: string\n progressText: string\n prevTrigger: string\n nextTrigger: string\n closeTrigger: string\n}\n\nexport function tourClasses(): TourClasses {\n return {\n root: 'fixed z-tooltip bg-surface border border-border shadow-lg rounded-xl p-4 max-w-sm',\n backdrop: 'fixed inset-0 bg-black/50 z-dialog',\n spotlight: 'absolute rounded-md shadow-lg ring-4 ring-primary/30 z-dialog',\n title: 'font-semibold mb-1',\n description: 'text-text-muted mb-3',\n progressText: 'text-xs text-text-muted',\n prevTrigger:\n 'inline-flex items-center justify-center px-3 py-1.5 border border-border rounded-md cursor-pointer transition-colors duration-fast hover:bg-surface-hover',\n nextTrigger:\n 'inline-flex items-center justify-center px-3 py-1.5 bg-primary text-text-inverted rounded-md cursor-pointer font-medium transition-colors duration-fast hover:bg-primary-hover',\n closeTrigger:\n 'absolute top-2 right-2 bg-transparent border-none cursor-pointer text-text-muted hover:text-text transition-colors duration-fast',\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { type VariantProps } from '../utils/variants';
1
+ import { type VariantProps } from '../utils/variants.js';
2
2
  type Variants = {
3
3
  size: {
4
4
  sm: string;
@@ -1 +1 @@
1
- {"version":3,"file":"tree-view.d.ts","sourceRoot":"","sources":["../../../src/styles/classes/tree-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAcrE,KAAK,QAAQ,GAAG;IACd,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CAC7C,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;AAE1D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,qBAAqB,GAAG,eAAe,CAS9E"}
1
+ {"version":3,"file":"tree-view.d.ts","sourceRoot":"","sources":["../../../src/styles/classes/tree-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAcxE,KAAK,QAAQ,GAAG;IACd,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CAC7C,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;AAE1D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,qBAAqB,GAAG,eAAe,CAS9E"}
@@ -1,4 +1,4 @@
1
- import { createVariants } from '../utils/variants';
1
+ import { createVariants } from '../utils/variants.js';
2
2
  const itemVariants = createVariants({
3
3
  base: 'flex items-center cursor-pointer transition-colors duration-fast hover:bg-surface-hover data-[state=selected]:bg-surface-active rounded-md',
4
4
  variants: {
@@ -18,3 +18,4 @@ export function treeViewClasses(props) {
18
18
  checkbox: 'inline-flex items-center justify-center border-2 border-border rounded-sm w-4 h-4 data-[state=checked]:bg-primary data-[state=checked]:border-primary data-[state=indeterminate]:bg-primary data-[state=indeterminate]:border-primary',
19
19
  };
20
20
  }
21
+ //# sourceMappingURL=tree-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-view.js","sourceRoot":"","sources":["../../../src/styles/classes/tree-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,sBAAsB,CAAA;AAExE,MAAM,YAAY,GAAG,cAAc,CAAC;IAClC,IAAI,EAAE,4IAA4I;IAClJ,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,EAAE,EAAE,6BAA6B;YACjC,EAAE,EAAE,iBAAiB;YACrB,EAAE,EAAE,6BAA6B;SAClC;KACF;IACD,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;CAChC,CAAC,CAAA;AAeF,MAAM,UAAU,eAAe,CAAC,KAA6B;IAC3D,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC;QACzB,aAAa,EACX,wHAAwH;QAC1H,QAAQ,EACN,uOAAuO;KAC1O,CAAA;AACH,CAAC","sourcesContent":["import { createVariants, type VariantProps } from '../utils/variants.js'\n\nconst itemVariants = createVariants({\n base: 'flex items-center cursor-pointer transition-colors duration-fast hover:bg-surface-hover data-[state=selected]:bg-surface-active rounded-md',\n variants: {\n size: {\n sm: 'px-2 py-0.5 text-sm gap-1.5',\n md: 'px-2 py-1 gap-2',\n lg: 'px-3 py-1.5 text-lg gap-2.5',\n },\n },\n defaultVariants: { size: 'md' },\n})\n\ntype Variants = {\n size: { sm: string; md: string; lg: string }\n}\n\nexport type TreeViewStyleVariants = VariantProps<Variants>\n\nexport interface TreeViewClasses {\n root: string\n item: string\n branchTrigger: string\n checkbox: string\n}\n\nexport function treeViewClasses(props?: TreeViewStyleVariants): TreeViewClasses {\n return {\n root: 'flex flex-col',\n item: itemVariants(props),\n branchTrigger:\n 'inline-flex items-center justify-center text-text-muted transition-transform duration-fast data-[state=open]:rotate-90',\n checkbox:\n 'inline-flex items-center justify-center border-2 border-border rounded-sm w-4 h-4 data-[state=checked]:bg-primary data-[state=checked]:border-primary data-[state=indeterminate]:bg-primary data-[state=indeterminate]:border-primary',\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
- export type { ThemeTokens, ThemeToken } from './theme';
2
- export { cx, createVariants } from './utils/index';
3
- export type { ClassValue, VariantConfig, VariantProps, VariantRecord } from './utils/index';
4
- export * from './classes/index';
1
+ export type { ThemeTokens, ThemeToken } from './theme.js';
2
+ export { cx, createVariants } from './utils/index.js';
3
+ export type { ClassValue, VariantConfig, VariantProps, VariantRecord } from './utils/index.js';
4
+ export * from './classes/index.js';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/styles/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGtD,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAClD,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAG3F,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/styles/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAGzD,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACrD,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAG9F,cAAc,oBAAoB,CAAA"}
@@ -1,4 +1,5 @@
1
1
  // Variant utilities
2
- export { cx, createVariants } from './utils/index';
2
+ export { cx, createVariants } from './utils/index.js';
3
3
  // Component class helpers
4
- export * from './classes/index';
4
+ export * from './classes/index.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/styles/index.ts"],"names":[],"mappings":"AAGA,oBAAoB;AACpB,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAGrD,0BAA0B;AAC1B,cAAc,oBAAoB,CAAA","sourcesContent":["// Theme token types\nexport type { ThemeTokens, ThemeToken } from './theme.js'\n\n// Variant utilities\nexport { cx, createVariants } from './utils/index.js'\nexport type { ClassValue, VariantConfig, VariantProps, VariantRecord } from './utils/index.js'\n\n// Component class helpers\nexport * from './classes/index.js'\n"]}
@@ -11,3 +11,4 @@
11
11
  * ```
12
12
  */
13
13
  export {};
14
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/styles/theme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG","sourcesContent":["/**\n * Theme token types — documents the CSS custom properties available\n * in theme.css for TypeScript consumers.\n *\n * Override any token via Tailwind 4 `@theme` in your CSS:\n * ```css\n * @theme {\n * --color-primary: #8b5cf6;\n * --radius-lg: 1rem;\n * }\n * ```\n */\n\nexport interface ThemeTokens {\n // Surface\n '--color-surface': string\n '--color-surface-muted': string\n '--color-surface-hover': string\n '--color-surface-active': string\n\n // Border\n '--color-border': string\n '--color-border-hover': string\n '--color-border-focus': string\n\n // Text\n '--color-text': string\n '--color-text-muted': string\n '--color-text-inverted': string\n\n // Primary\n '--color-primary': string\n '--color-primary-hover': string\n '--color-primary-active': string\n\n // Destructive\n '--color-destructive': string\n '--color-destructive-hover': string\n\n // Radius\n '--radius-sm': string\n '--radius-md': string\n '--radius-lg': string\n '--radius-xl': string\n\n // Spacing\n '--space-1': string\n '--space-2': string\n '--space-3': string\n '--space-4': string\n '--space-6': string\n '--space-8': string\n\n // Shadows\n '--shadow-sm': string\n '--shadow-md': string\n '--shadow-lg': string\n\n // Transitions\n '--duration-fast': string\n '--duration-normal': string\n\n // Z-index\n '--z-popover': string\n '--z-dialog': string\n '--z-tooltip': string\n}\n\nexport type ThemeToken = keyof ThemeTokens\n"]}
@@ -10,3 +10,4 @@ export function cx(...classes) {
10
10
  }
11
11
  return result;
12
12
  }
13
+ //# sourceMappingURL=cx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cx.js","sourceRoot":"","sources":["../../../src/styles/utils/cx.ts"],"names":[],"mappings":"AAEA,yDAAyD;AACzD,MAAM,UAAU,EAAE,CAAC,GAAG,OAAqB;IACzC,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,EAAE,CAAC;YACN,IAAI,MAAM;gBAAE,MAAM,IAAI,GAAG,CAAA;YACzB,MAAM,IAAI,CAAC,CAAA;QACb,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC","sourcesContent":["export type ClassValue = string | false | null | undefined\n\n/** Concatenate class strings, filtering falsy values. */\nexport function cx(...classes: ClassValue[]): string {\n let result = ''\n for (const c of classes) {\n if (c) {\n if (result) result += ' '\n result += c\n }\n }\n return result\n}\n"]}
@@ -1,3 +1,3 @@
1
- export { cx, type ClassValue } from './cx';
2
- export { createVariants, type VariantConfig, type VariantProps, type VariantRecord, } from './variants';
1
+ export { cx, type ClassValue } from './cx.js';
2
+ export { createVariants, type VariantConfig, type VariantProps, type VariantRecord, } from './variants.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/styles/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,KAAK,UAAU,EAAE,MAAM,MAAM,CAAA;AAC1C,OAAO,EACL,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/styles/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,EACL,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,eAAe,CAAA"}
@@ -1,2 +1,3 @@
1
- export { cx } from './cx';
2
- export { createVariants, } from './variants';
1
+ export { cx } from './cx.js';
2
+ export { createVariants, } from './variants.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/styles/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAmB,MAAM,SAAS,CAAA;AAC7C,OAAO,EACL,cAAc,GAIf,MAAM,eAAe,CAAA","sourcesContent":["export { cx, type ClassValue } from './cx.js'\nexport {\n createVariants,\n type VariantConfig,\n type VariantProps,\n type VariantRecord,\n} from './variants.js'\n"]}
@@ -1,4 +1,4 @@
1
- import { cx } from './cx';
1
+ import { cx } from './cx.js';
2
2
  export function createVariants(config) {
3
3
  return (props = {}) => {
4
4
  const resolved = {};
@@ -23,3 +23,4 @@ export function createVariants(config) {
23
23
  return cx(...parts);
24
24
  };
25
25
  }
26
+ //# sourceMappingURL=variants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variants.js","sourceRoot":"","sources":["../../../src/styles/utils/variants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAmB,MAAM,SAAS,CAAA;AAe7C,MAAM,UAAU,cAAc,CAC5B,MAAwB;IAExB,OAAO,CAAC,QAAQ,EAAqB,EAAU,EAAE;QAC/C,MAAM,QAAQ,GAAuC,EAAE,CAAA;QAEvD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/C,QAAQ,CAAC,GAAG,CAAC;gBACV,KAAK,CAAC,GAAG,CAAwB,IAAK,MAAM,CAAC,eAAe,EAAE,CAAC,GAAG,CAAwB,CAAA;QAC/F,CAAC;QAED,MAAM,KAAK,GAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpD,IAAI,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAE,CAAC,KAAK,CAAC,CAAC,CAAA;YAC1C,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5B,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAC/C,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,UAAU,EAAE,GAAG,QAAQ,CAAA;gBAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;gBAC7E,IAAI,KAAK;oBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC5B,CAAC;QACH,CAAC;QAED,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,CAAA;IACrB,CAAC,CAAA;AACH,CAAC","sourcesContent":["import { cx, type ClassValue } from './cx.js'\n\nexport type VariantRecord = Record<string, Record<string, string>>\n\nexport interface VariantConfig<V extends VariantRecord> {\n base: string\n variants: V\n defaultVariants?: { [K in keyof V]?: keyof V[K] }\n compoundVariants?: Array<{ [K in keyof V]?: keyof V[K] } & { class: string }>\n}\n\nexport type VariantProps<V extends VariantRecord> = {\n [K in keyof V]?: keyof V[K]\n}\n\nexport function createVariants<V extends VariantRecord>(\n config: VariantConfig<V>,\n): (props?: VariantProps<V>) => string {\n return (props = {} as VariantProps<V>): string => {\n const resolved: Record<string, string | undefined> = {}\n\n for (const key of Object.keys(config.variants)) {\n resolved[key] =\n (props[key] as string | undefined) ?? (config.defaultVariants?.[key] as string | undefined)\n }\n\n const parts: ClassValue[] = [config.base]\n for (const [key, value] of Object.entries(resolved)) {\n if (value != null && config.variants[key]?.[value]) {\n parts.push(config.variants[key]![value])\n }\n }\n\n if (config.compoundVariants) {\n for (const compound of config.compoundVariants) {\n const { class: cls, ...conditions } = compound\n const match = Object.entries(conditions).every(([k, v]) => resolved[k] === v)\n if (match) parts.push(cls)\n }\n }\n\n return cx(...parts)\n }\n}\n"]}
@@ -39,3 +39,4 @@ export function anatomy(name, parts) {
39
39
  },
40
40
  };
41
41
  }
42
+ //# sourceMappingURL=anatomy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anatomy.js","sourceRoot":"","sources":["../../src/utils/anatomy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,IAAI,OAAO,GAAG,CAAC,CAAA;AAEf,kDAAkD;AAClD,MAAM,UAAU,qBAAqB;IACnC,OAAO,GAAG,CAAC,CAAA;AACb,CAAC;AAkBD,MAAM,UAAU,OAAO,CAAmB,IAAY,EAAE,KAAmB;IACzE,OAAO;QACL,IAAI;QACJ,KAAK;QACL,KAAK,CAAC,EAAW;YACf,MAAM,OAAO,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE,OAAO,EAAE,CAAA;YAC5C,OAAO;gBACL,EAAE,EAAE,OAAO;gBACX,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,OAAO,IAAI,IAAI,EAAE;gBACrC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAChB,EAAE,EAAE,GAAG,OAAO,IAAI,IAAI,EAAE;oBACxB,YAAY,EAAE,IAAI;oBAClB,WAAW,EAAE,IAAI;iBAClB,CAAC;aACH,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC","sourcesContent":["/**\n * Anatomy — describes a component's parts and assigns unique ids per instance.\n *\n * Each component (dialog, menu, tabs, ...) declares its parts once. Every\n * mount creates a fresh scope with unique ids used for ARIA wiring\n * (`aria-controls`, `aria-labelledby`) and `data-scope`/`data-part` for CSS.\n *\n * ```ts\n * const DialogAnatomy = anatomy('dialog', [\n * 'trigger', 'positioner', 'backdrop', 'content', 'title', 'description', 'closeTrigger',\n * ] as const)\n *\n * // Per instance:\n * const parts = DialogAnatomy.scope()\n * parts.attrs('trigger') // { id: 'dialog-1:trigger', 'data-scope': 'dialog', 'data-part': 'trigger' }\n * parts.idFor('content') // 'dialog-1:content'\n * ```\n */\n\nlet counter = 0\n\n/** Reset the internal id counter — tests only. */\nexport function resetAnatomyIdCounter(): void {\n counter = 0\n}\n\nexport interface AnatomyScope<P extends string> {\n /** Instance id — unique across all anatomy scopes. */\n readonly id: string\n /** Resolve the id for a specific part (for ARIA wiring). */\n idFor(part: P): string\n /** Build the common data-attrs + id for a part. */\n attrs(part: P): { id: string; 'data-scope': string; 'data-part': P }\n}\n\nexport interface Anatomy<P extends string> {\n readonly name: string\n readonly parts: readonly P[]\n /** Create a new scope instance. Pass an explicit id to force a value (SSR). */\n scope(id?: string): AnatomyScope<P>\n}\n\nexport function anatomy<P extends string>(name: string, parts: readonly P[]): Anatomy<P> {\n return {\n name,\n parts,\n scope(id?: string): AnatomyScope<P> {\n const scopeId = id ?? `${name}-${++counter}`\n return {\n id: scopeId,\n idFor: (part) => `${scopeId}:${part}`,\n attrs: (part) => ({\n id: `${scopeId}:${part}`,\n 'data-scope': name,\n 'data-part': part,\n }),\n }\n },\n }\n}\n"]}
@@ -70,3 +70,4 @@ function shouldSkip(el) {
70
70
  const tag = el.tagName.toLowerCase();
71
71
  return tag === 'script' || tag === 'style' || tag === 'link' || tag === 'meta' || tag === 'title';
72
72
  }
73
+ //# sourceMappingURL=aria-hidden.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aria-hidden.js","sourceRoot":"","sources":["../../src/utils/aria-hidden.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Hide sibling subtrees from assistive tech while an overlay is open.\n *\n * Walks from `target` up to the document root, applying `aria-hidden=\"true\"`\n * and `inert` to every sibling at each level. Previous attribute values are\n * recorded and restored on cleanup.\n *\n * Nested calls are supported — each layer only touches elements that haven't\n * been claimed by a higher layer (tracked via a WeakMap reference count).\n */\n\ninterface Snapshot {\n ariaHidden: string | null\n inert: string | null\n}\n\nconst ownership = new WeakMap<Element, number>()\nconst snapshots = new WeakMap<Element, Snapshot>()\n\nexport function setAriaHiddenOutside(target: Element): () => void {\n if (typeof document === 'undefined') return () => {}\n const claimed: Element[] = []\n\n walkSiblings(target, (sibling) => {\n const count = ownership.get(sibling) ?? 0\n if (count === 0) {\n snapshots.set(sibling, {\n ariaHidden: sibling.getAttribute('aria-hidden'),\n inert: sibling.getAttribute('inert'),\n })\n sibling.setAttribute('aria-hidden', 'true')\n sibling.setAttribute('inert', '')\n }\n ownership.set(sibling, count + 1)\n claimed.push(sibling)\n })\n\n return () => {\n for (const el of claimed) {\n const count = (ownership.get(el) ?? 1) - 1\n if (count <= 0) {\n ownership.delete(el)\n const snap = snapshots.get(el)\n snapshots.delete(el)\n if (snap) {\n if (snap.ariaHidden === null) el.removeAttribute('aria-hidden')\n else el.setAttribute('aria-hidden', snap.ariaHidden)\n if (snap.inert === null) el.removeAttribute('inert')\n else el.setAttribute('inert', snap.inert)\n }\n } else {\n ownership.set(el, count)\n }\n }\n }\n}\n\nfunction walkSiblings(target: Element, visit: (sibling: Element) => void): void {\n let node: Element | null = target\n while (node && node !== document.body && node !== document.documentElement) {\n const parent: HTMLElement | null = node.parentElement\n if (!parent) break\n const siblings = Array.from(parent.children)\n for (const child of siblings) {\n if (child !== node && !shouldSkip(child)) {\n visit(child)\n }\n }\n node = parent\n }\n}\n\nfunction shouldSkip(el: Element): boolean {\n const tag = el.tagName.toLowerCase()\n return tag === 'script' || tag === 'style' || tag === 'link' || tag === 'meta' || tag === 'title'\n}\n"]}
@@ -24,3 +24,4 @@ export function flipArrow(key, el) {
24
24
  return key;
25
25
  return key === 'ArrowLeft' ? 'ArrowRight' : 'ArrowLeft';
26
26
  }
27
+ //# sourceMappingURL=direction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"direction.js","sourceRoot":"","sources":["../../src/utils/direction.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,EAAW;IACpC,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACpC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;IAC3E,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,eAAe,CAAC,GAAG,KAAK,KAAK;QAAE,OAAO,KAAK,CAAA;IAC3F,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,EAAkB;IACvD,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,YAAY;QAAE,OAAO,GAAG,CAAA;IAC3D,IAAI,CAAC,EAAE;QAAE,OAAO,GAAG,CAAA;IACnB,MAAM,GAAG,GAAG,UAAU,CAAC,EAAE,CAAC,KAAK,KAAK,CAAA;IACpC,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAA;IACpB,OAAO,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAA;AACzD,CAAC","sourcesContent":["/**\n * Resolve the text direction for an element by walking up the DOM tree.\n * Returns 'rtl' or 'ltr' (default).\n */\nexport function resolveDir(el: Element): 'ltr' | 'rtl' {\n const ancestor = el.closest('[dir]')\n if (ancestor) return ancestor.getAttribute('dir') === 'rtl' ? 'rtl' : 'ltr'\n if (typeof document !== 'undefined' && document.documentElement.dir === 'rtl') return 'rtl'\n return 'ltr'\n}\n\n/**\n * Map an arrow key to its logical direction, accounting for RTL.\n * In RTL, ArrowLeft and ArrowRight swap; vertical arrows are unchanged.\n */\nexport function flipArrow(key: string, el: Element | null): string {\n if (key !== 'ArrowLeft' && key !== 'ArrowRight') return key\n if (!el) return key\n const rtl = resolveDir(el) === 'rtl'\n if (!rtl) return key\n return key === 'ArrowLeft' ? 'ArrowRight' : 'ArrowLeft'\n}\n"]}
@@ -1,4 +1,4 @@
1
- import type { ElementSource } from './dom';
1
+ import type { ElementSource } from './dom.js';
2
2
  /**
3
3
  * Reason a dismissable layer was closed.
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"dismissable.d.ts","sourceRoot":"","sources":["../../src/utils/dismissable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAE1C;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAA;AAEhD,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,OAAO,EAAE,aAAa,CAAA;IACtB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,gDAAgD;IAChD,SAAS,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IACxD,wDAAwD;IACxD,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,qDAAqD;IACrD,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAgCD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,IAAI,CA6BpE;AAED,4BAA4B;AAC5B,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C"}
1
+ {"version":3,"file":"dismissable.d.ts","sourceRoot":"","sources":["../../src/utils/dismissable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE7C;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAA;AAEhD,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,OAAO,EAAE,aAAa,CAAA;IACtB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,gDAAgD;IAChD,SAAS,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IACxD,wDAAwD;IACxD,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,qDAAqD;IACrD,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAgCD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,IAAI,CA6BpE;AAED,4BAA4B;AAC5B,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C"}
@@ -1,4 +1,4 @@
1
- import { watchInteractOutside } from './interact-outside';
1
+ import { watchInteractOutside } from './interact-outside.js';
2
2
  // Global stack — topmost layer gets to process events first. Only the
3
3
  // topmost claims the escape key.
4
4
  const stack = [];
@@ -63,3 +63,4 @@ export function pushDismissable(opts) {
63
63
  export function _dismissableStackSize() {
64
64
  return stack.length;
65
65
  }
66
+ //# sourceMappingURL=dismissable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dismissable.js","sourceRoot":"","sources":["../../src/utils/dismissable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AA0B5D,sEAAsE;AACtE,iCAAiC;AACjC,MAAM,KAAK,GAAY,EAAE,CAAA;AACzB,IAAI,mBAAmB,GAAG,KAAK,CAAA;AAE/B,SAAS,aAAa,CAAC,KAAoB;IACzC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ;QAAE,OAAM;IAClC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACnC,IAAI,CAAC,GAAG;QAAE,OAAM;IAChB,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IACvC,IAAI,OAAO;QAAE,KAAK,CAAC,eAAe,EAAE,CAAA;AACtC,CAAC;AAED,SAAS,iBAAiB;IACxB,IAAI,mBAAmB,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAM;IAClE,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;IACzD,mBAAmB,GAAG,IAAI,CAAA;AAC5B,CAAC;AAED,SAAS,sBAAsB;IAC7B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAM;IACvF,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;IAC5D,mBAAmB,GAAG,KAAK,CAAA;AAC7B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAwB;IACtD,iBAAiB,EAAE,CAAA;IAEnB,MAAM,KAAK,GAAU;QACnB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,YAAY,CAAC,KAAK;YAChB,IAAI,IAAI,CAAC,aAAa;gBAAE,OAAO,KAAK,CAAA;YACpC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YAC/B,OAAO,IAAI,CAAA;QACb,CAAC;KACF,CAAA;IACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAEjB,IAAI,cAAc,GAAwB,IAAI,CAAA;IAC9C,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QACzB,cAAc,GAAG,oBAAoB,CAAC;YACpC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,cAAc,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK;YACvD,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC;SAC/D,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,GAAG,EAAE;QACV,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAChC,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QACpC,IAAI,cAAc;YAAE,cAAc,EAAE,CAAA;QACpC,sBAAsB,EAAE,CAAA;IAC1B,CAAC,CAAA;AACH,CAAC;AAED,4BAA4B;AAC5B,MAAM,UAAU,qBAAqB;IACnC,OAAO,KAAK,CAAC,MAAM,CAAA;AACrB,CAAC","sourcesContent":["import { watchInteractOutside } from './interact-outside.js'\nimport type { ElementSource } from './dom.js'\n\n/**\n * Reason a dismissable layer was closed.\n */\nexport type DismissSource = 'escape' | 'outside'\n\nexport interface DismissableOptions {\n /** The layer element (e.g. a dialog content or popover). */\n element: ElementSource\n /** Trigger / anchor elements that should not count as outside interactions. */\n ignore?: ElementSource\n /** Called when the user dismisses the layer. */\n onDismiss: (source: DismissSource, event: Event) => void\n /** Disable outside-click dismissal (default: false). */\n disableOutside?: boolean\n /** Disable Escape-key dismissal (default: false). */\n disableEscape?: boolean\n}\n\ninterface Layer {\n element: ElementSource\n handleEscape(event: KeyboardEvent): boolean\n}\n\n// Global stack — topmost layer gets to process events first. Only the\n// topmost claims the escape key.\nconst stack: Layer[] = []\nlet keyListenerAttached = false\n\nfunction handleKeydown(event: KeyboardEvent): void {\n if (event.key !== 'Escape') return\n const top = stack[stack.length - 1]\n if (!top) return\n const claimed = top.handleEscape(event)\n if (claimed) event.stopPropagation()\n}\n\nfunction ensureKeyListener(): void {\n if (keyListenerAttached || typeof document === 'undefined') return\n document.addEventListener('keydown', handleKeydown, true)\n keyListenerAttached = true\n}\n\nfunction maybeRemoveKeyListener(): void {\n if (stack.length > 0 || !keyListenerAttached || typeof document === 'undefined') return\n document.removeEventListener('keydown', handleKeydown, true)\n keyListenerAttached = false\n}\n\n/**\n * Register a dismissable layer. Handles Escape (topmost only) and\n * outside-click. Returns a cleanup that removes the layer from the stack.\n */\nexport function pushDismissable(opts: DismissableOptions): () => void {\n ensureKeyListener()\n\n const layer: Layer = {\n element: opts.element,\n handleEscape(event) {\n if (opts.disableEscape) return false\n opts.onDismiss('escape', event)\n return true\n },\n }\n stack.push(layer)\n\n let cleanupOutside: (() => void) | null = null\n if (!opts.disableOutside) {\n cleanupOutside = watchInteractOutside({\n element: opts.element,\n ignore: opts.ignore,\n shouldDispatch: () => stack[stack.length - 1] === layer,\n onInteractOutside: (event) => opts.onDismiss('outside', event),\n })\n }\n\n return () => {\n const idx = stack.indexOf(layer)\n if (idx !== -1) stack.splice(idx, 1)\n if (cleanupOutside) cleanupOutside()\n maybeRemoveKeyListener()\n }\n}\n\n/** @internal — for tests */\nexport function _dismissableStackSize(): number {\n return stack.length\n}\n"]}
package/dist/utils/dom.js CHANGED
@@ -19,3 +19,4 @@ export function isInAnyElement(target, elements) {
19
19
  }
20
20
  return false;
21
21
  }
22
+ //# sourceMappingURL=dom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.js","sourceRoot":"","sources":["../../src/utils/dom.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,UAAU,eAAe,CAAoB,MAAwB;IACzE,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;IACjE,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAA;IACxB,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;AACxD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAkB,EAAE,MAAmB;IACtE,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACzB,OAAO,SAAS,KAAK,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAC3D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAmB,EAAE,QAAmB;IACrE,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,IAAI,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC;YAAE,OAAO,IAAI,CAAA;IAC/C,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC","sourcesContent":["/**\n * Shared DOM helpers used by interaction utilities.\n */\n\nexport type ElementSource<T extends Element = Element> = T | T[] | (() => T | T[] | null)\n\nexport function resolveElements<T extends Element>(source: ElementSource<T>): T[] {\n const resolved = typeof source === 'function' ? source() : source\n if (!resolved) return []\n return Array.isArray(resolved) ? resolved : [resolved]\n}\n\nexport function containsOrEquals(container: Element, target: Node | null): boolean {\n if (!target) return false\n return container === target || container.contains(target)\n}\n\nexport function isInAnyElement(target: Node | null, elements: Element[]): boolean {\n for (const el of elements) {\n if (containsOrEquals(el, target)) return true\n }\n return false\n}\n"]}
@@ -42,3 +42,4 @@ export function attachFloating(opts) {
42
42
  };
43
43
  return autoUpdate(anchor, floating, update);
44
44
  }
45
+ //# sourceMappingURL=floating.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floating.js","sourceRoot":"","sources":["../../src/utils/floating.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,UAAU,EACV,MAAM,IAAI,QAAQ,EAClB,IAAI,IAAI,MAAM,EACd,KAAK,IAAI,OAAO,EAChB,KAAK,IAAI,OAAO,GAGjB,MAAM,kBAAkB,CAAA;AAqCzB;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAqB;IAClD,MAAM,EACJ,MAAM,EACN,QAAQ,EACR,SAAS,GAAG,QAAQ,EACpB,MAAM,GAAG,CAAC,EACV,IAAI,GAAG,IAAI,EACX,KAAK,GAAG,IAAI,EACZ,KAAK,EACL,QAAQ,GACT,GAAG,IAAI,CAAA;IAER,MAAM,UAAU,GAAiB,EAAE,CAAA;IACnC,IAAI,MAAM,GAAG,CAAC;QAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;IACjD,IAAI,IAAI;QAAE,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;IACnC,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACpE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;IACvC,CAAC;IACD,IAAI,KAAK;QAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IAEvD,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAA;IACpC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAA;IAEzB,MAAM,MAAM,GAAG,GAAS,EAAE;QACxB,KAAK,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,CACpE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE;YAC9C,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,aAAa,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;YAC9E,QAAQ,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAA;YACnC,IAAI,KAAK,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;gBAClC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,cAAc,CAAC,KAAK,CAAA;gBAC7C,IAAI,EAAE,IAAI,IAAI;oBAAE,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,CAAA;gBAC5C,IAAI,EAAE,IAAI,IAAI;oBAAE,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,CAAA;YAC7C,CAAC;YACD,QAAQ,EAAE,CAAC;gBACT,CAAC;gBACD,CAAC;gBACD,SAAS,EAAE,MAAM;gBACjB,KAAK,EAAE,cAAc,CAAC,KAAK;oBACzB,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE;oBAC1D,CAAC,CAAC,SAAS;aACd,CAAC,CAAA;QACJ,CAAC,CACF,CAAA;IACH,CAAC,CAAA;IAED,OAAO,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;AAC7C,CAAC","sourcesContent":["import {\n computePosition,\n autoUpdate,\n offset as offsetMw,\n flip as flipMw,\n shift as shiftMw,\n arrow as arrowMw,\n type Placement,\n type Middleware,\n} from '@floating-ui/dom'\n\n/**\n * Thin wrapper around `@floating-ui/dom` for anchored positioning. Used by\n * popover, tooltip, menu, and any other component that attaches a floating\n * element to an anchor.\n *\n * Returns a cleanup function that removes scroll/resize listeners and stops\n * position updates.\n */\n\nexport type { Placement }\n\nexport interface FloatingOptions {\n /** The reference element (trigger/anchor). */\n anchor: Element\n /** The floating element (content). */\n floating: HTMLElement\n /** Preferred placement (default: 'bottom'). */\n placement?: Placement\n /** Gap between anchor and floating, in px (default: 0). */\n offset?: number\n /** Flip to opposite side when there isn't enough room (default: true). */\n flip?: boolean\n /** Shift along axis to stay in view (default: padding 8 unless false). */\n shift?: boolean | { padding?: number }\n /** Optional arrow element to position. */\n arrow?: HTMLElement\n /** Notify after each position computation. */\n onUpdate?: (data: {\n x: number\n y: number\n placement: Placement\n arrow?: { x?: number; y?: number }\n }) => void\n}\n\n/**\n * Position `floating` relative to `anchor` with live updates on scroll/resize.\n * Applies `left` + `top` styles to the floating element. Returns a cleanup.\n */\nexport function attachFloating(opts: FloatingOptions): () => void {\n const {\n anchor,\n floating,\n placement = 'bottom',\n offset = 0,\n flip = true,\n shift = true,\n arrow,\n onUpdate,\n } = opts\n\n const middleware: Middleware[] = []\n if (offset > 0) middleware.push(offsetMw(offset))\n if (flip) middleware.push(flipMw())\n if (shift !== false) {\n const padding = typeof shift === 'object' ? (shift.padding ?? 8) : 8\n middleware.push(shiftMw({ padding }))\n }\n if (arrow) middleware.push(arrowMw({ element: arrow }))\n\n floating.style.position = 'absolute'\n floating.style.top = '0'\n floating.style.left = '0'\n\n const update = (): void => {\n void computePosition(anchor, floating, { placement, middleware }).then(\n ({ x, y, placement: actual, middlewareData }) => {\n floating.style.transform = `translate(${Math.round(x)}px, ${Math.round(y)}px)`\n floating.dataset.placement = actual\n if (arrow && middlewareData.arrow) {\n const { x: ax, y: ay } = middlewareData.arrow\n if (ax != null) arrow.style.left = `${ax}px`\n if (ay != null) arrow.style.top = `${ay}px`\n }\n onUpdate?.({\n x,\n y,\n placement: actual,\n arrow: middlewareData.arrow\n ? { x: middlewareData.arrow.x, y: middlewareData.arrow.y }\n : undefined,\n })\n },\n )\n }\n\n return autoUpdate(anchor, floating, update)\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { type ElementSource } from './dom';
1
+ import { type ElementSource } from './dom.js';
2
2
  export interface FocusTrapOptions {
3
3
  /** The container whose focusable descendants form the trap. */
4
4
  container: ElementSource;
@@ -1 +1 @@
1
- {"version":3,"file":"focus-trap.d.ts","sourceRoot":"","sources":["../../src/utils/focus-trap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;AAG3D,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,SAAS,EAAE,aAAa,CAAA;IACxB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAA;IAC/C,iFAAiF;IACjF,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAsDD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,IAAI,CA2BhE;AAED,6BAA6B;AAC7B,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}
1
+ {"version":3,"file":"focus-trap.d.ts","sourceRoot":"","sources":["../../src/utils/focus-trap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,UAAU,CAAA;AAG9D,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,SAAS,EAAE,aAAa,CAAA;IACxB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAA;IAC/C,iFAAiF;IACjF,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAsDD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,IAAI,CA2BhE;AAED,6BAA6B;AAC7B,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}
@@ -1,5 +1,5 @@
1
- import { resolveElements } from './dom';
2
- import { getFocusables } from './focusables';
1
+ import { resolveElements } from './dom.js';
2
+ import { getFocusables } from './focusables.js';
3
3
  const stack = [];
4
4
  let keyListenerAttached = false;
5
5
  function handleKeydown(event) {
@@ -83,3 +83,4 @@ export function pushFocusTrap(opts) {
83
83
  export function _focusTrapStackSize() {
84
84
  return stack.length;
85
85
  }
86
+ //# sourceMappingURL=focus-trap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-trap.js","sourceRoot":"","sources":["../../src/utils/focus-trap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAsB,MAAM,UAAU,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAe/C,MAAM,KAAK,GAAW,EAAE,CAAA;AACxB,IAAI,mBAAmB,GAAG,KAAK,CAAA;AAE/B,SAAS,aAAa,CAAC,KAAoB;IACzC,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK;QAAE,OAAM;IAC/B,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACnC,IAAI,CAAC,GAAG;QAAE,OAAM;IAChB,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACjD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAEnC,kDAAkD;IAClD,MAAM,UAAU,GAAkB,EAAE,CAAA;IACpC,KAAK,MAAM,CAAC,IAAI,UAAU;QAAE,UAAU,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IAChE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,cAAc,EAAE,CAAA;QACtB,OAAM;IACR,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAE,CAAA;IAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;IAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAmC,CAAA;IAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAE5E,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YAClC,KAAK,CAAC,cAAc,EAAE,CAAA;YACtB,IAAI,CAAC,KAAK,EAAE,CAAA;QACd,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACjC,KAAK,CAAC,cAAc,EAAE,CAAA;YACtB,KAAK,CAAC,KAAK,EAAE,CAAA;QACf,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,cAAc;IACrB,IAAI,mBAAmB,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAM;IAClE,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;IACzD,mBAAmB,GAAG,IAAI,CAAA;AAC5B,CAAC;AAED,SAAS,mBAAmB;IAC1B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAM;IACvF,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;IAC5D,mBAAmB,GAAG,KAAK,CAAA;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAsB;IAClD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,KAAK,KAAK,CAAA;IAChD,MAAM,iBAAiB,GAAG,YAAY,CAAC,CAAC,CAAE,QAAQ,CAAC,aAAoC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC9F,cAAc,EAAE,CAAA;IAEhB,MAAM,IAAI,GAAS,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAA;IAChD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEhB,6BAA6B;IAC7B,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAClD,MAAM,OAAO,GACX,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAA;IAC7F,IAAI,OAAO,IAAI,OAAO,YAAY,WAAW,EAAE,CAAC;QAC9C,OAAO,CAAC,KAAK,EAAE,CAAA;IACjB,CAAC;SAAM,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,CAAA;QAChD,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAA;IACxB,CAAC;IAED,OAAO,GAAG,EAAE;QACV,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QACpC,mBAAmB,EAAE,CAAA;QACrB,IAAI,YAAY,IAAI,iBAAiB,IAAI,OAAO,iBAAiB,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YACvF,iBAAiB,CAAC,KAAK,EAAE,CAAA;QAC3B,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,mBAAmB;IACjC,OAAO,KAAK,CAAC,MAAM,CAAA;AACrB,CAAC","sourcesContent":["import { resolveElements, type ElementSource } from './dom.js'\nimport { getFocusables } from './focusables.js'\n\nexport interface FocusTrapOptions {\n /** The container whose focusable descendants form the trap. */\n container: ElementSource\n /** Element to focus when the trap activates. Defaults to first focusable. */\n initialFocus?: Element | (() => Element | null)\n /** Restore focus to the previously active element on release (default: true). */\n restoreFocus?: boolean\n}\n\ninterface Trap {\n container: ElementSource\n}\n\nconst stack: Trap[] = []\nlet keyListenerAttached = false\n\nfunction handleKeydown(event: KeyboardEvent): void {\n if (event.key !== 'Tab') return\n const top = stack[stack.length - 1]\n if (!top) return\n const containers = resolveElements(top.container)\n if (containers.length === 0) return\n\n // Combine focusables from all container elements.\n const focusables: HTMLElement[] = []\n for (const c of containers) focusables.push(...getFocusables(c))\n if (focusables.length === 0) {\n event.preventDefault()\n return\n }\n\n const first = focusables[0]!\n const last = focusables[focusables.length - 1]!\n const active = document.activeElement as HTMLElement | null\n const isInside = active ? containers.some((c) => c.contains(active)) : false\n\n if (event.shiftKey) {\n if (!isInside || active === first) {\n event.preventDefault()\n last.focus()\n }\n } else {\n if (!isInside || active === last) {\n event.preventDefault()\n first.focus()\n }\n }\n}\n\nfunction ensureListener(): void {\n if (keyListenerAttached || typeof document === 'undefined') return\n document.addEventListener('keydown', handleKeydown, true)\n keyListenerAttached = true\n}\n\nfunction maybeRemoveListener(): void {\n if (stack.length > 0 || !keyListenerAttached || typeof document === 'undefined') return\n document.removeEventListener('keydown', handleKeydown, true)\n keyListenerAttached = false\n}\n\n/**\n * Push a focus trap onto the stack. Tab/Shift+Tab will cycle within the\n * container's focusable descendants. Returns a cleanup that removes the\n * trap and (optionally) restores focus to the element active before push.\n */\nexport function pushFocusTrap(opts: FocusTrapOptions): () => void {\n const restoreFocus = opts.restoreFocus !== false\n const previouslyFocused = restoreFocus ? (document.activeElement as HTMLElement | null) : null\n ensureListener()\n\n const trap: Trap = { container: opts.container }\n stack.push(trap)\n\n // Move focus inside the trap\n const containers = resolveElements(opts.container)\n const initial =\n typeof opts.initialFocus === 'function' ? opts.initialFocus() : (opts.initialFocus ?? null)\n if (initial && initial instanceof HTMLElement) {\n initial.focus()\n } else if (containers.length > 0) {\n const focusables = getFocusables(containers[0]!)\n focusables[0]?.focus()\n }\n\n return () => {\n const idx = stack.indexOf(trap)\n if (idx !== -1) stack.splice(idx, 1)\n maybeRemoveListener()\n if (restoreFocus && previouslyFocused && typeof previouslyFocused.focus === 'function') {\n previouslyFocused.focus()\n }\n }\n}\n\n/** @internal — tests only */\nexport function _focusTrapStackSize(): number {\n return stack.length\n}\n"]}
@@ -63,3 +63,4 @@ function isInsideInert(el, container) {
63
63
  }
64
64
  return false;
65
65
  }
66
+ //# sourceMappingURL=focusables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focusables.js","sourceRoot":"","sources":["../../src/utils/focusables.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,2EAA2E;AAC3E,uEAAuE;AACvE,oCAAoC;AACpC,MAAM,kBAAkB,GAAG;IACzB,SAAS;IACT,YAAY;IACZ,wBAAwB;IACxB,4CAA4C;IAC5C,wBAAwB;IACxB,0BAA0B;IAC1B,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,iBAAiB;IACjB,iBAAiB;IACjB,kDAAkD;IAClD,iCAAiC;CAClC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEX,MAAM,UAAU,WAAW,CAAC,EAAW;IACrC,IAAI,CAAC,CAAC,EAAE,YAAY,WAAW,CAAC;QAAE,OAAO,KAAK,CAAA;IAC9C,IAAI,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAA;IAC7C,IAAI,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,MAAM;QAAE,OAAO,KAAK,CAAA;IAC3D,IAAI,EAAE,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IAC3B,iBAAiB;IACjB,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;IAC5C,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IACjE,OAAO,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAAkB;IAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAc,kBAAkB,CAAC,CAAC,CAAA;IACrF,MAAM,GAAG,GAAkB,EAAE,CAAA;IAC7B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC/D,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,SAAS,CAAC,EAAe;IAChC,IAAI,EAAE,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IAC3B,oFAAoF;IACpF,8DAA8D;IAC9D,IAAI,OAAO,EAAE,CAAC,YAAY,KAAK,WAAW;QAAE,OAAO,IAAI,CAAA;IACvD,uFAAuF;IACvF,gFAAgF;IAChF,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,aAAa,CAAC,EAAW,EAAE,SAAkB;IACpD,IAAI,OAAO,GAAmB,EAAE,CAAA;IAChC,OAAO,OAAO,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAA;QAC9C,OAAO,GAAG,OAAO,CAAC,aAAa,CAAA;IACjC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC","sourcesContent":["/**\n * Find focusable descendants within a container.\n */\n\n// Matches elements that can receive keyboard focus. Excludes elements with\n// `tabindex=-1` (programmatically focusable but not tab-reachable) and\n// elements inside `inert` subtrees.\nconst FOCUSABLE_SELECTOR = [\n 'a[href]',\n 'area[href]',\n 'button:not([disabled])',\n 'input:not([disabled]):not([type=\"hidden\"])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n '[tabindex]:not([tabindex=\"-1\"])',\n].join(',')\n\nexport function isFocusable(el: Element): boolean {\n if (!(el instanceof HTMLElement)) return false\n if (el.hasAttribute('disabled')) return false\n if (el.getAttribute('aria-hidden') === 'true') return false\n if (el.hidden) return false\n // Check tabindex\n const tabIndex = el.getAttribute('tabindex')\n if (tabIndex !== null && parseInt(tabIndex, 10) < 0) return false\n return el.matches(FOCUSABLE_SELECTOR)\n}\n\nexport function getFocusables(container: Element): HTMLElement[] {\n const nodes = Array.from(container.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR))\n const out: HTMLElement[] = []\n for (const n of nodes) {\n if (isVisible(n) && !isInsideInert(n, container)) out.push(n)\n }\n return out\n}\n\nfunction isVisible(el: HTMLElement): boolean {\n if (el.hidden) return false\n // offsetParent is null for display:none (not position:fixed roots, but good enough)\n // jsdom returns null for disconnected; skip this check there.\n if (typeof el.offsetParent === 'undefined') return true\n // For root elements with position:fixed, offsetParent can be null but they're visible.\n // Use getClientRects as a fallback. jsdom returns empty rects, so accept those.\n return true\n}\n\nfunction isInsideInert(el: Element, container: Element): boolean {\n let current: Element | null = el\n while (current && current !== container) {\n if (current.hasAttribute('inert')) return true\n current = current.parentElement\n }\n return false\n}\n"]}
@@ -1,19 +1,19 @@
1
- export { anatomy, resetAnatomyIdCounter } from './anatomy';
2
- export type { Anatomy, AnatomyScope } from './anatomy';
3
- export { watchInteractOutside } from './interact-outside';
4
- export type { InteractOutsideOptions } from './interact-outside';
5
- export { pushDismissable } from './dismissable';
6
- export type { DismissableOptions, DismissSource } from './dismissable';
7
- export { pushFocusTrap } from './focus-trap';
8
- export type { FocusTrapOptions } from './focus-trap';
9
- export { setAriaHiddenOutside } from './aria-hidden';
10
- export { lockBodyScroll } from './remove-scroll';
11
- export { getFocusables, isFocusable } from './focusables';
12
- export type { ElementSource } from './dom';
13
- export { attachFloating } from './floating';
14
- export type { FloatingOptions, Placement } from './floating';
15
- export { typeaheadAccumulate, typeaheadMatch, typeaheadMatchByItems, isTypeaheadKey, TYPEAHEAD_TIMEOUT_MS, } from './typeahead';
16
- export { TreeCollection } from './tree-collection';
17
- export type { TreeNode } from './tree-collection';
18
- export { resolveDir, flipArrow } from './direction';
1
+ export { anatomy, resetAnatomyIdCounter } from './anatomy.js';
2
+ export type { Anatomy, AnatomyScope } from './anatomy.js';
3
+ export { watchInteractOutside } from './interact-outside.js';
4
+ export type { InteractOutsideOptions } from './interact-outside.js';
5
+ export { pushDismissable } from './dismissable.js';
6
+ export type { DismissableOptions, DismissSource } from './dismissable.js';
7
+ export { pushFocusTrap } from './focus-trap.js';
8
+ export type { FocusTrapOptions } from './focus-trap.js';
9
+ export { setAriaHiddenOutside } from './aria-hidden.js';
10
+ export { lockBodyScroll } from './remove-scroll.js';
11
+ export { getFocusables, isFocusable } from './focusables.js';
12
+ export type { ElementSource } from './dom.js';
13
+ export { attachFloating } from './floating.js';
14
+ export type { FloatingOptions, Placement } from './floating.js';
15
+ export { typeaheadAccumulate, typeaheadMatch, typeaheadMatchByItems, isTypeaheadKey, TYPEAHEAD_TIMEOUT_MS, } from './typeahead.js';
16
+ export { TreeCollection } from './tree-collection.js';
17
+ export type { TreeNode } from './tree-collection.js';
18
+ export { resolveDir, flipArrow } from './direction.js';
19
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AAC1D,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAEtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACzD,YAAY,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE5D,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,oBAAoB,GACrB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAC7D,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,YAAY,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC5D,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE/D,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,oBAAoB,GACrB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAEpD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA"}
@@ -1,11 +1,12 @@
1
- export { anatomy, resetAnatomyIdCounter } from './anatomy';
2
- export { watchInteractOutside } from './interact-outside';
3
- export { pushDismissable } from './dismissable';
4
- export { pushFocusTrap } from './focus-trap';
5
- export { setAriaHiddenOutside } from './aria-hidden';
6
- export { lockBodyScroll } from './remove-scroll';
7
- export { getFocusables, isFocusable } from './focusables';
8
- export { attachFloating } from './floating';
9
- export { typeaheadAccumulate, typeaheadMatch, typeaheadMatchByItems, isTypeaheadKey, TYPEAHEAD_TIMEOUT_MS, } from './typeahead';
10
- export { TreeCollection } from './tree-collection';
11
- export { resolveDir, flipArrow } from './direction';
1
+ export { anatomy, resetAnatomyIdCounter } from './anatomy.js';
2
+ export { watchInteractOutside } from './interact-outside.js';
3
+ export { pushDismissable } from './dismissable.js';
4
+ export { pushFocusTrap } from './focus-trap.js';
5
+ export { setAriaHiddenOutside } from './aria-hidden.js';
6
+ export { lockBodyScroll } from './remove-scroll.js';
7
+ export { getFocusables, isFocusable } from './focusables.js';
8
+ export { attachFloating } from './floating.js';
9
+ export { typeaheadAccumulate, typeaheadMatch, typeaheadMatchByItems, isTypeaheadKey, TYPEAHEAD_TIMEOUT_MS, } from './typeahead.js';
10
+ export { TreeCollection } from './tree-collection.js';
11
+ export { resolveDir, flipArrow } from './direction.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAG7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAG5D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAGlD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAG/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAG9C,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,oBAAoB,GACrB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA","sourcesContent":["export { anatomy, resetAnatomyIdCounter } from './anatomy.js'\nexport type { Anatomy, AnatomyScope } from './anatomy.js'\n\nexport { watchInteractOutside } from './interact-outside.js'\nexport type { InteractOutsideOptions } from './interact-outside.js'\n\nexport { pushDismissable } from './dismissable.js'\nexport type { DismissableOptions, DismissSource } from './dismissable.js'\n\nexport { pushFocusTrap } from './focus-trap.js'\nexport type { FocusTrapOptions } from './focus-trap.js'\n\nexport { setAriaHiddenOutside } from './aria-hidden.js'\nexport { lockBodyScroll } from './remove-scroll.js'\n\nexport { getFocusables, isFocusable } from './focusables.js'\nexport type { ElementSource } from './dom.js'\n\nexport { attachFloating } from './floating.js'\nexport type { FloatingOptions, Placement } from './floating.js'\n\nexport {\n typeaheadAccumulate,\n typeaheadMatch,\n typeaheadMatchByItems,\n isTypeaheadKey,\n TYPEAHEAD_TIMEOUT_MS,\n} from './typeahead.js'\n\nexport { TreeCollection } from './tree-collection.js'\nexport type { TreeNode } from './tree-collection.js'\n\nexport { resolveDir, flipArrow } from './direction.js'\n"]}
@@ -1,4 +1,4 @@
1
- import { type ElementSource } from './dom';
1
+ import { type ElementSource } from './dom.js';
2
2
  export interface InteractOutsideOptions {
3
3
  /** Element(s) that define the "inside" region. */
4
4
  element: ElementSource;
@@ -1 +1 @@
1
- {"version":3,"file":"interact-outside.d.ts","sourceRoot":"","sources":["../../src/utils/interact-outside.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;AAE3E,MAAM,WAAW,sBAAsB;IACrC,kDAAkD;IAClD,OAAO,EAAE,aAAa,CAAA;IACtB,0FAA0F;IAC1F,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,gEAAgE;IAChE,iBAAiB,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IACzC;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAA;CAC3C;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,sBAAsB,GAAG,MAAM,IAAI,CA+B7E"}
1
+ {"version":3,"file":"interact-outside.d.ts","sourceRoot":"","sources":["../../src/utils/interact-outside.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,KAAK,aAAa,EAAE,MAAM,UAAU,CAAA;AAE9E,MAAM,WAAW,sBAAsB;IACrC,kDAAkD;IAClD,OAAO,EAAE,aAAa,CAAA;IACtB,0FAA0F;IAC1F,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,gEAAgE;IAChE,iBAAiB,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IACzC;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAA;CAC3C;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,sBAAsB,GAAG,MAAM,IAAI,CA+B7E"}
@@ -1,4 +1,4 @@
1
- import { resolveElements, isInAnyElement } from './dom';
1
+ import { resolveElements, isInAnyElement } from './dom.js';
2
2
  /**
3
3
  * Watch for pointer or focus events outside a given element. Returns a
4
4
  * cleanup function. Uses the capture phase so upstream `stopPropagation`
@@ -44,3 +44,4 @@ export function watchInteractOutside(opts) {
44
44
  document.removeEventListener('focusin', handleFocus, true);
45
45
  };
46
46
  }
47
+ //# sourceMappingURL=interact-outside.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interact-outside.js","sourceRoot":"","sources":["../../src/utils/interact-outside.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAsB,MAAM,UAAU,CAAA;AAgB9E;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAA4B;IAC/D,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;IAEpD,MAAM,aAAa,GAAG,CAAC,KAAY,EAAQ,EAAE;QAC3C,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YAAE,OAAM;QAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAA;QAC1C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC5C,IAAI,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;YAAE,OAAM;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC9D,IAAI,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;YAAE,OAAM;QAC1C,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,CAAC,KAAiB,EAAQ,EAAE;QAC9C,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YAAE,OAAM;QAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAA;QAC1C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC5C,IAAI,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;YAAE,OAAM;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC9D,IAAI,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;YAAE,OAAM;QAC1C,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC,CAAA;IAED,6EAA6E;IAC7E,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;IAC7D,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,CAAA;IAEvD,OAAO,GAAG,EAAE;QACV,QAAQ,CAAC,mBAAmB,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;QAChE,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,CAAA;IAC5D,CAAC,CAAA;AACH,CAAC","sourcesContent":["import { resolveElements, isInAnyElement, type ElementSource } from './dom.js'\n\nexport interface InteractOutsideOptions {\n /** Element(s) that define the \"inside\" region. */\n element: ElementSource\n /** Additional elements whose interactions should not count as outside (e.g. triggers). */\n ignore?: ElementSource\n /** Called on pointerdown or focus outside the inside region. */\n onInteractOutside: (event: Event) => void\n /**\n * If provided, called first with the event. Return `false` to suppress the\n * outside callback (for an in-flight layer to claim the event).\n */\n shouldDispatch?: (event: Event) => boolean\n}\n\n/**\n * Watch for pointer or focus events outside a given element. Returns a\n * cleanup function. Uses the capture phase so upstream `stopPropagation`\n * calls cannot hide events.\n *\n * - pointerdown (or mousedown/touchstart fallback) triggers \"outside\" if the\n * target is not contained by `element` or `ignore`.\n * - focusin triggers \"outside\" when focus moves outside the element, except\n * when the new target is in `ignore`.\n */\nexport function watchInteractOutside(opts: InteractOutsideOptions): () => void {\n if (typeof document === 'undefined') return () => {}\n\n const handlePointer = (event: Event): void => {\n if (opts.shouldDispatch && !opts.shouldDispatch(event)) return\n const target = event.target as Node | null\n const inside = resolveElements(opts.element)\n if (isInAnyElement(target, inside)) return\n const ignore = opts.ignore ? resolveElements(opts.ignore) : []\n if (isInAnyElement(target, ignore)) return\n opts.onInteractOutside(event)\n }\n\n const handleFocus = (event: FocusEvent): void => {\n if (opts.shouldDispatch && !opts.shouldDispatch(event)) return\n const target = event.target as Node | null\n const inside = resolveElements(opts.element)\n if (isInAnyElement(target, inside)) return\n const ignore = opts.ignore ? resolveElements(opts.ignore) : []\n if (isInAnyElement(target, ignore)) return\n opts.onInteractOutside(event)\n }\n\n // Prefer pointerdown (unified); fall back already covered by pointer events.\n document.addEventListener('pointerdown', handlePointer, true)\n document.addEventListener('focusin', handleFocus, true)\n\n return () => {\n document.removeEventListener('pointerdown', handlePointer, true)\n document.removeEventListener('focusin', handleFocus, true)\n }\n}\n"]}
@@ -35,3 +35,4 @@ export function lockBodyScroll() {
35
35
  export function _scrollLockCount() {
36
36
  return lockCount;
37
37
  }
38
+ //# sourceMappingURL=remove-scroll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-scroll.js","sourceRoot":"","sources":["../../src/utils/remove-scroll.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,IAAI,SAAS,GAAG,CAAC,CAAA;AACjB,IAAI,QAAQ,GAAwB,IAAI,CAAA;AAExC,MAAM,UAAU,cAAc;IAC5B,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;IACpD,SAAS,EAAE,CAAA;IACX,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;QAC1B,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAA;QAC/E,QAAQ,GAAG;YACT,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;YACjC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;SAC1C,CAAA;QACD,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAC9B,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,YAAY,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;YAC7E,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,OAAO,GAAG,cAAc,IAAI,CAAA;QAC3D,CAAC;IACH,CAAC;IACD,OAAO,GAAG,EAAE;QACV,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAA;QACtC,IAAI,SAAS,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;YAC1B,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAA;YAC3C,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,gBAAgB,CAAA;YACnD,QAAQ,GAAG,IAAI,CAAA;QACjB,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,gBAAgB;IAC9B,OAAO,SAAS,CAAA;AAClB,CAAC","sourcesContent":["/**\n * Lock body scroll while an overlay is open, preserving scrollbar width to\n * avoid layout shift. Reference-counted so nested locks compose cleanly.\n */\n\ninterface LockSnapshot {\n bodyOverflow: string\n bodyPaddingRight: string\n}\n\nlet lockCount = 0\nlet snapshot: LockSnapshot | null = null\n\nexport function lockBodyScroll(): () => void {\n if (typeof document === 'undefined') return () => {}\n lockCount++\n if (lockCount === 1) {\n const body = document.body\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth\n snapshot = {\n bodyOverflow: body.style.overflow,\n bodyPaddingRight: body.style.paddingRight,\n }\n body.style.overflow = 'hidden'\n if (scrollbarWidth > 0) {\n const current = parseInt(getComputedStyle(body).paddingRight || '0', 10) || 0\n body.style.paddingRight = `${current + scrollbarWidth}px`\n }\n }\n return () => {\n lockCount = Math.max(0, lockCount - 1)\n if (lockCount === 0 && snapshot) {\n const body = document.body\n body.style.overflow = snapshot.bodyOverflow\n body.style.paddingRight = snapshot.bodyPaddingRight\n snapshot = null\n }\n }\n}\n\n/** @internal — tests only */\nexport function _scrollLockCount(): number {\n return lockCount\n}\n"]}
@@ -135,3 +135,4 @@ export class TreeCollection {
135
135
  return out;
136
136
  }
137
137
  }
138
+ //# sourceMappingURL=tree-collection.js.map