@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-collection.js","sourceRoot":"","sources":["../../src/utils/tree-collection.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * TreeCollection — helper for building tree-view payloads from a nested\n * data structure. Tree-view's state machine only knows about flat lists\n * (visibleItems, visibleLabels) and opaque ids; the collection owns the\n * structure and derives those flat arrays on demand.\n *\n * Typical flow:\n *\n * const col = new TreeCollection(data)\n * state.visibleItems = col.visibleItems(state.expanded)\n * state.visibleLabels = col.visibleLabels(state.expanded)\n *\n * After every `expand` / `collapse` message, the consumer dispatches\n * `setVisibleItems` with the updated arrays. The collection itself is\n * immutable — build a new one when the tree structure changes.\n */\n\nexport interface TreeNode {\n id: string\n label?: string\n disabled?: boolean\n children?: TreeNode[]\n}\n\ninterface NodeInfo {\n node: TreeNode\n parentId: string | null\n depth: number\n childIds: string[]\n}\n\nexport class TreeCollection {\n readonly roots: TreeNode[]\n private readonly info: Map<string, NodeInfo>\n\n constructor(roots: TreeNode | TreeNode[]) {\n this.roots = Array.isArray(roots) ? roots : [roots]\n this.info = new Map()\n this.index()\n }\n\n private index(): void {\n const walk = (node: TreeNode, parentId: string | null, depth: number): void => {\n const children = node.children ?? []\n this.info.set(node.id, {\n node,\n parentId,\n depth,\n childIds: children.map((c) => c.id),\n })\n for (const child of children) walk(child, node.id, depth + 1)\n }\n for (const root of this.roots) walk(root, null, 0)\n }\n\n /** All ids in the collection, in depth-first order. */\n get allIds(): string[] {\n return Array.from(this.info.keys())\n }\n\n getNode(id: string): TreeNode | null {\n return this.info.get(id)?.node ?? null\n }\n\n getLabel(id: string): string {\n const node = this.getNode(id)\n return node?.label ?? id\n }\n\n getParent(id: string): string | null {\n return this.info.get(id)?.parentId ?? null\n }\n\n getDepth(id: string): number {\n return this.info.get(id)?.depth ?? 0\n }\n\n getChildren(id: string): string[] {\n return this.info.get(id)?.childIds ?? []\n }\n\n /** All descendants of id in depth-first order (excluding id itself). */\n getDescendants(id: string): string[] {\n const out: string[] = []\n const walk = (current: string): void => {\n for (const childId of this.getChildren(current)) {\n out.push(childId)\n walk(childId)\n }\n }\n walk(id)\n return out\n }\n\n isBranch(id: string): boolean {\n return this.getChildren(id).length > 0\n }\n\n isDisabled(id: string): boolean {\n return this.info.get(id)?.node.disabled === true\n }\n\n /**\n * The ordered list of visible item ids given a set of expanded branches.\n * A branch's descendants appear only if every ancestor up to a root is\n * in `expanded`.\n */\n visibleItems(expanded: string[]): string[] {\n const expandedSet = new Set(expanded)\n const out: string[] = []\n const walk = (nodes: TreeNode[]): void => {\n for (const node of nodes) {\n out.push(node.id)\n if (expandedSet.has(node.id) && node.children) {\n walk(node.children)\n }\n }\n }\n walk(this.roots)\n return out\n }\n\n /** Parallel array of labels for `visibleItems()`, using `label ?? id`. */\n visibleLabels(expanded: string[]): string[] {\n return this.visibleItems(expanded).map((id) => this.getLabel(id))\n }\n\n /**\n * Ids of all branches in the collection (useful for `expandAll`).\n */\n get branchIds(): string[] {\n const out: string[] = []\n for (const [id, info] of this.info) {\n if (info.childIds.length > 0) out.push(id)\n }\n return out\n }\n\n /**\n * Compute the indeterminate-set from a set of checked ids: any branch\n * whose descendants are partially — but not fully — checked. Useful as\n * a post-toggleChecked reconciler:\n *\n * const indeterminate = col.computeIndeterminate(new Set(state.checked))\n * send({ type: 'setIndeterminate', ids: indeterminate })\n */\n computeIndeterminate(checked: Set<string>): string[] {\n const out: string[] = []\n for (const [id, info] of this.info) {\n if (info.childIds.length === 0) continue\n const desc = this.getDescendants(id)\n if (desc.length === 0) continue\n let checkedCount = 0\n for (const d of desc) if (checked.has(d)) checkedCount++\n if (checkedCount > 0 && checkedCount < desc.length) out.push(id)\n }\n return out\n }\n}\n"]}
@@ -79,3 +79,4 @@ export function isTypeaheadKey(e) {
79
79
  return false;
80
80
  return true;
81
81
  }
82
+ //# sourceMappingURL=typeahead.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeahead.js","sourceRoot":"","sources":["../../src/utils/typeahead.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAA;AAEvC;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,IAAY,EACZ,GAAW,EACX,SAAiB;IAEjB,OAAO,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;AAC7C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAgB,EAChB,YAAuB,EACvB,KAAa,EACb,SAAwB;IAExB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAC1D,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;IAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAA;IACvB,MAAM,KAAK,GAAG,SAAS,IAAI,CAAC,CAAC,CAAA;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;QACxC,IAAI,YAAY,CAAC,GAAG,CAAC;YAAE,SAAQ;QAC/B,IAAI,MAAM,CAAC,GAAG,CAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,GAAG,CAAA;IAC1D,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAe,EACf,QAA2B,EAC3B,KAAa,EACb,SAAwB;IAExB,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAA;IACtB,MAAM,IAAI,GAAG,IAAI,KAAK,CAAU,CAAC,CAAC,CAAA;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAA;IAClE,OAAO,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;AACtD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,CAAgB;IAC7C,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACpD,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACpC,uEAAuE;IACvE,kEAAkE;IAClE,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG;QAAE,OAAO,KAAK,CAAA;IAC/B,OAAO,IAAI,CAAA;AACb,CAAC","sourcesContent":["/**\n * Typeahead search — accumulates keystrokes into a query while the user\n * types rapidly, then matches the first item whose label starts with the\n * query. Used by listbox, menu, select, combobox, tree-view to support\n * WAI-ARIA keyboard navigation patterns.\n *\n * Behavior:\n * - If a keystroke arrives within `TYPEAHEAD_TIMEOUT_MS` of the previous\n * one, append to the existing query (so typing \"sa\" finds \"Saturn\" even\n * if the highlight is currently on \"Jupiter\").\n * - Otherwise, start a fresh single-character query.\n * - Single-character queries advance past the current position (jump to\n * the *next* item starting with that letter), which is the standard\n * WAI-ARIA behavior — rapid repeated presses of \"s\" cycle through\n * items beginning with \"s\".\n * - Multi-character queries search from the current cursor position\n * (inclusive) so if the cursor is already on a matching item, it\n * stays — typing \"ap\" while on \"apricot\" keeps focus on \"apricot\".\n */\n\nexport const TYPEAHEAD_TIMEOUT_MS = 500\n\n/**\n * Advance the typeahead query based on a new keystroke and the previous\n * expiration time. Returns the new query string; callers combine this with\n * `typeaheadMatch()` to produce a new highlight index.\n */\nexport function typeaheadAccumulate(\n prev: string,\n char: string,\n now: number,\n expiresAt: number,\n): string {\n return now < expiresAt ? prev + char : char\n}\n\n/**\n * Find the first enabled item whose label starts with the query\n * (case-insensitive). `labels` and `disabledMask` are parallel arrays.\n * `startFrom` is the current highlighted index; for single-character\n * queries the search begins at `startFrom + 1` (so repeated \"s\" keys\n * cycle), for multi-character queries it begins at `startFrom` (inclusive).\n *\n * Returns the matching index, or `null` if no enabled item matches.\n */\nexport function typeaheadMatch(\n labels: string[],\n disabledMask: boolean[],\n query: string,\n startFrom: number | null,\n): number | null {\n if (labels.length === 0 || query.length === 0) return null\n const q = query.toLowerCase()\n const offset = query.length === 1 ? 1 : 0\n const n = labels.length\n const start = startFrom ?? -1\n for (let i = 0; i < n; i++) {\n const idx = (start + offset + i + n) % n\n if (disabledMask[idx]) continue\n if (labels[idx]!.toLowerCase().startsWith(q)) return idx\n }\n return null\n}\n\n/**\n * Convenience: pass a `disabled` list of values instead of a boolean mask.\n * Builds the mask by checking membership via `===` on the raw string values.\n */\nexport function typeaheadMatchByItems(\n items: string[],\n disabled: readonly string[],\n query: string,\n startFrom: number | null,\n): number | null {\n const n = items.length\n const mask = new Array<boolean>(n)\n for (let i = 0; i < n; i++) mask[i] = disabled.includes(items[i]!)\n return typeaheadMatch(items, mask, query, startFrom)\n}\n\n/**\n * Returns true if the key event should trigger a typeahead query — i.e., a\n * single printable character that isn't a modified keyboard shortcut. Use\n * this in `onKeyDown` handlers to decide whether to dispatch a typeahead\n * message.\n */\nexport function isTypeaheadKey(e: KeyboardEvent): boolean {\n if (e.ctrlKey || e.metaKey || e.altKey) return false\n if (e.key.length !== 1) return false\n // Whitespace isn't a typeahead character in most widgets — Space often\n // activates the highlighted item. Let callers override if needed.\n if (e.key === ' ') return false\n return true\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llui/components",
3
- "version": "0.0.11",
3
+ "version": "0.0.14",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -456,19 +456,13 @@
456
456
  "types": "./dist/styles/classes/tree-view.d.ts"
457
457
  }
458
458
  },
459
- "scripts": {
460
- "build": "tsc -p tsconfig.build.json && mkdir -p dist/styles && cp src/styles/theme.css src/styles/theme-dark.css dist/styles/",
461
- "check": "tsc --noEmit -p tsconfig.check.json",
462
- "lint": "eslint src",
463
- "test": "vitest run"
464
- },
465
459
  "peerDependencies": {
466
- "@llui/dom": "^0.0.11"
460
+ "@llui/dom": "^0.0.14"
467
461
  },
468
462
  "devDependencies": {
469
- "@llui/dom": "workspace:*",
470
463
  "typescript": "^6.0.0",
471
- "vitest": "^4.1.2"
464
+ "vitest": "^4.1.2",
465
+ "@llui/dom": "0.0.14"
472
466
  },
473
467
  "sideEffects": [
474
468
  "./dist/styles/theme.css",
@@ -500,5 +494,11 @@
500
494
  "homepage": "https://github.com/fponticelli/llui/tree/main/packages/components#readme",
501
495
  "files": [
502
496
  "dist"
503
- ]
504
- }
497
+ ],
498
+ "scripts": {
499
+ "build": "tsc -p tsconfig.build.json && mkdir -p dist/styles && cp src/styles/theme.css src/styles/theme-dark.css dist/styles/",
500
+ "check": "tsc --noEmit -p tsconfig.check.json",
501
+ "lint": "eslint src",
502
+ "test": "vitest run"
503
+ }
504
+ }